@opcua/for-node-red 2.6.2 → 2.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,11 +1,11 @@
1
1
  <style>
2
- .sterfive-combo-box{position:relative;width:100%}.sterfive-combo-box .sterfive-dropdown{background-color:#fff;border:1px solid #ccc;display:none;left:0;max-height:150px;overflow-y:auto;position:absolute;top:100%;width:100%;z-index:1000}.sterfive-combo-box li:before{content:none}.sterfive-tree li.expandable:before,.sterfive-tree li.no-expandable:before{content:"\f0da";cursor:pointer;font-family:FontAwesome;font-size:8pt;font-weight:900;margin-right:5px}.sterfive-tree li.no-expandable:before{opacity:0}.sterfive-tree li.expanded:before{content:"\f0d7";cursor:pointer;font-family:FontAwesome;font-size:8pt;font-weight:900;margin-right:5px}.sterfive-tree .fa{color:#333;margin-right:10px}.sterfive-tree ul{list-style:none;padding-left:15px}.sterfive-tree li{cursor:pointer;padding:5px}.sterfive-tree{list-style-type:none}.sterfive-tree,.sterfive-tree ol,.sterfive-tree ul{list-style-type:none;margin:0;padding:0}.sterfive-tree li:hover{background-color:#eee}.sterfive-tree li.loading:before{animation:fa-spin 1s linear infinite;content:"\f110";cursor:pointer;font-family:FontAwesome;font-weight:900;margin-right:5px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.sterfive-tree .spinner{animation:spin .7s linear infinite;border:2px solid transparent;border-radius:50%;border-top-color:#666;display:inline-block;height:16px;width:16px}.sterfive-info{background-color:#fafad2;border-radius:10px;border-style:groove;display:block;font-size:10pt;margin:5px 0;padding:5px}.sterfive-info .ok{color:green}.sterfive-info .warning{color:darkred}.input-wrapper{border:0 solid #ccc;border-radius:5px;padding:0}.input-group{align-items:center;border:1px solid #ccc;border-radius:5px;display:flex;overflow:hidden}.input-group input{border:none;flex:1;outline:none;padding:8px}.input-group button{background-color:#f1f1f1;border:none;border-left:1px solid #ccc;cursor:pointer;padding:8px 16px}.input-group button:hover{background-color:#ddd}.info-text{color:#777;font-size:12px;margin-left:10px;margin-top:5px}.custom-checkbox{cursor:pointer;display:inline-block;font-family:FontAwesome;font-size:16px;font-weight:900;margin-right:10px;text-align:center;width:1em}.custom-checkbox.unchecked:before{content:"\f096"}.custom-checkbox.checked:before{content:"\f046"}.validate-cancel-buttons{background-color:#fff;position:sticky;right:0;top:0;z-index:1001}.cancel-button,.validate-button{cursor:pointer;font-size:16px;margin:5px}.sterfive-combo-box .sterfive-dropdown{position:relative}.floating-buttons{position:fixed;z-index:1003}
2
+ .sterfive-combo-box{position:relative;width:100%}.sterfive-combo-box .sterfive-dropdown{background-color:#fff;border:1px solid #ccc;display:none;left:0;max-height:150px;overflow-y:auto;position:absolute;top:100%;width:100%;z-index:1000}.sterfive-combo-box li:before{content:none}.sterfive-tree li.expandable:before,.sterfive-tree li.no-expandable:before{content:"\f0da";cursor:pointer;font-family:FontAwesome;font-size:12pt;font-weight:900;margin-right:5px}.sterfive-tree li.no-expandable:before{opacity:0}.sterfive-tree li.expanded:before{content:"\f0d7";cursor:pointer;font-family:FontAwesome;font-size:12pt;font-weight:900;margin-right:5px}.sterfive-tree li span.selected{border:.5px dotted #33f}.sterfive-tree .fa{color:#333;margin-right:10px}.sterfive-tree ul{list-style:none;padding-inline-start:2%!important}.sterfive-tree li{cursor:pointer;padding:5px}.sterfive-tree{list-style-type:none}.sterfive-tree,.sterfive-tree ol,.sterfive-tree ul{list-style-type:none;margin:0;padding:0}.sterfive-tree li:hover{background-color:#eee}.sterfive-tree li.loading:before{animation:fa-spin 1s linear infinite;content:"\f110";cursor:pointer;font-family:FontAwesome;font-weight:900;margin-right:5px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.sterfive-tree .spinner{animation:spin .7s linear infinite;border:2px solid transparent;border-radius:50%;border-top-color:#666;display:inline-block;height:16px;width:16px}.sterfive-info{background-color:#fafad2;border-radius:10px;border-style:groove;display:block;font-size:10pt;margin:5px 0;padding:5px}.sterfive-info .ok{color:green}.sterfive-info .warning{color:darkred}.input-wrapper{border:0 solid #ccc;border-radius:5px;padding:0}.input-group{align-items:center;border:1px solid #ccc;border-radius:5px;display:flex;overflow:hidden}.input-group input{border:none;flex:1;outline:none;padding:8px}.input-group button{background-color:#f1f1f1;border:none;border-left:1px solid #ccc;cursor:pointer;padding:8px 16px}.input-group button:hover{background-color:#ddd}.info-text{color:#777;font-size:12px;margin-left:10px;margin-top:5px}.custom-checkbox{cursor:pointer;display:inline-block;font-family:FontAwesome;font-size:16px;font-weight:900;margin-right:10px;text-align:center;width:1em}.custom-checkbox.unchecked:before{content:"\f096"}.custom-checkbox.checked:before{content:"\f046"}.validate-cancel-buttons{background-color:#fff;position:sticky;right:0;top:0;z-index:1001}.cancel-button,.validate-button{cursor:pointer;font-size:16px;margin:5px}.sterfive-combo-box .sterfive-dropdown{position:relative}.floating-buttons{position:fixed;z-index:1003}
3
3
  /*# sourceMappingURL=OpcUa-Client2-MonitorEvent.css.map */
4
4
  </style>
5
5
 
6
6
  <script type="text/javascript">
7
- function _0x5dbd(_0x3af54e,_0x301274){const _0x56aa72=_0x56aa();return _0x5dbd=function(_0x5dbd85,_0x20f0b5){_0x5dbd85=_0x5dbd85-0xfb;let _0x3525f2=_0x56aa72[_0x5dbd85];return _0x3525f2;},_0x5dbd(_0x3af54e,_0x301274);}function _0x56aa(){const _0x53b63e=['show','sort','status','attr','width','target','endpoint','left','verify','<span\x20class=\x22cancel-button\x22>✖</span>',':visible','#node-input-selectClauses','sterfive-info','fa-list-alt','#node-input-endpoint','span.custom-checkbox','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','find','$toggleTreeBtn','change','browseResult','json','grey','/extractEventTypes','Organizes','hide','752269QWSPxf','message','data','Variable','registerType','HasTypeDefinition','calc(100%\x20-\x20','10PFKjgb','reference','ObjectType','subTypes','TypeDefinition','<div\x20class=\x22spinner\x22></div>','expanded','fetched\x20:\x20','22026492YwfyVs','ns=0;i=40','4895600KRSZhC','DodgerBlue','class','children','<option/>','toggle','reset','<div\x20class=\x22floating-buttons\x22></div>','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','10381712dYIXWl','9AHjYCq','error','then','endpointNode','$info','_populate','i=61','node-input-startImmediately','application/json','match','fa-question','2452OqYDmu','2055450oakwWE','addClass','IsForward','ns=0;i=34','monitor\x20events','CadetBlue','fa-sliders','Both','err','fa-cog','nodeAddressString','options','stringify','pageX','top','already\x20loading','displayName','apply','px)','name','function','assign','each','sterfive.eventFieldSelector','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','replaceChild','offset','#node-input-subscription','Good','referenceTypeId','replaceWith','catch','expandable\x20expanded','removeClass','ns=0;i=35','already\x20fetched','data-value','nodeId','<div\x20class=\x22info-text\x22></div>','3ybQWUf','parentNode','inputs','269NYnMIB','sterfive.nodeBrowser','Unspecified','toString','HasChild','ns=0;i=61','done','.spinner','SandyBrown','right','/checkNodeId','length','ReferenceType','#node-input-inputs','closest','text','element','_updateSelectedFields','</li>','5063636AoDlSs','nodeBrowser','split','unchecked','_updateValues','Invalid','css','nodeClass','<span\x20class=\x22custom-checkbox\x20unchecked\x22></span>','NodeClass','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','#node-input-nodeId','val','fa-text-width','append','VariableType','placeholder','#C0DEED','toggleClass','_installChildren','filter','$dropdown','<div/>','fetched','loading','opcua','join','isSelectable','fetching\x20failed\x20with\x20error','$verifyBtn','View','#node-input-whereClause','sterfive-dropdown','hasClass','has','remove','_installTree','POST','click','DarkOrange','$inputGroup','\x22\x20style=\x22color:','stopPropagation','sterfive-combo-box','HasProperty','HasSubtype','empty','typeDefinition','references','focus\x20click','Inverse','baseUrl','input-group','DataType','.sterfive-tree\x20li','\x20(ns=','Object','statusCode','$input','parentElement','appendTo','next','\x20Fetching\x20done','<ul></ul></li>','BrowseName','/opcua-endpoint2','<ul\x20class=\x22sterfive-tree\x22></ul>','browseName','statusText','HasComponent','#node-input-startImmediately','clicked\x20on\x20icon','eventFieldSelector','ns=0;i=45','SteelBlue','currentParent','widget','push','clicked\x20on\x20','Method','ns=0;i=46','<li>error\x20','pageY','resolveParentNode','6OLaZvp','DisplayName','ns=0;i=85','value','prop','Forward','events','failure','$combo','checked',';\x22></i>\x20','nodes','opc.tcp://opcuademo.sterfive.com:26543','expandable','log','$tree','no-expandable'];_0x56aa=function(){return _0x53b63e;};return _0x56aa();}(function(_0xbfdfd,_0x5e839c){const _0x55a239=_0x5dbd,_0x2ea27c=_0xbfdfd();while(!![]){try{const _0x26b4d6=parseInt(_0x55a239(0x143))/0x1*(parseInt(_0x55a239(0x118))/0x2)+-parseInt(_0x55a239(0x140))/0x3*(-parseInt(_0x55a239(0x156))/0x4)+-parseInt(_0x55a239(0x119))/0x5+-parseInt(_0x55a239(0x1aa))/0x6*(parseInt(_0x55a239(0x1d5))/0x7)+parseInt(_0x55a239(0x103))/0x8*(parseInt(_0x55a239(0x10d))/0x9)+parseInt(_0x55a239(0x1dc))/0xa*(parseInt(_0x55a239(0x10c))/0xb)+-parseInt(_0x55a239(0x101))/0xc;if(_0x26b4d6===_0x5e839c)break;else _0x2ea27c['push'](_0x2ea27c['shift']());}catch(_0x1cab01){_0x2ea27c['push'](_0x2ea27c['shift']());}}}(_0x56aa,0xc2aa3),(function(){'use strict';const _0x278997=_0x5dbd;function _0x44c0a2(_0x27a754,_0x1dbf68){const _0x290e3f=_0x5dbd,_0x176792=$(_0x290e3f(0x1c9)),_0x300f39=$(_0x290e3f(0x134)),_0x487f80=()=>{const _0x5a709d=_0x290e3f,_0x28bd3a=_0x27a754[_0x5a709d(0x1b5)]['node'](_0x176792[_0x5a709d(0x162)]());_0x300f39[_0x5a709d(0x184)]();if(!_0x28bd3a||!_0x28bd3a['subscriptions'])return;if(_0x28bd3a['subscriptions'])for(const _0x4ae2de of _0x28bd3a['subscriptions']){const _0x573c9c=_0x4ae2de[_0x5a709d(0x12c)]||_0x4ae2de['id'];$(_0x5a709d(0x107),{'value':_0x4ae2de['id'],'label':_0x573c9c,'selected':_0x4ae2de['id']===_0x1dbf68['subscription']})[_0x5a709d(0x152)](_0x573c9c)[_0x5a709d(0x192)](_0x300f39);}};_0x487f80(),_0x300f39['on'](_0x290e3f(0x187),()=>{_0x487f80();}),_0x176792['on'](_0x290e3f(0x1ce),()=>{_0x487f80();});}function _0x46ac0f(_0x1649f2,_0x176cb5,_0x57b1de,_0xd21017){function _0x319f20(_0x34fcc8){return _0x34fcc8 instanceof _0x57b1de?_0x34fcc8:new _0x57b1de(function(_0x5c8aa0){_0x5c8aa0(_0x34fcc8);});}return new(_0x57b1de||(_0x57b1de=Promise))(function(_0x198778,_0x5f98cf){const _0x19eb4a=_0x5dbd;function _0x2c602d(_0x256015){try{_0x2dd92a(_0xd21017['next'](_0x256015));}catch(_0x3c6315){_0x5f98cf(_0x3c6315);}}function _0x1cda43(_0x31ccb5){try{_0x2dd92a(_0xd21017['throw'](_0x31ccb5));}catch(_0x5d972c){_0x5f98cf(_0x5d972c);}}function _0x2dd92a(_0x4808f3){const _0x4b7c4c=_0x5dbd;_0x4808f3[_0x4b7c4c(0x149)]?_0x198778(_0x4808f3[_0x4b7c4c(0x1ad)]):_0x319f20(_0x4808f3[_0x4b7c4c(0x1ad)])[_0x4b7c4c(0x10f)](_0x2c602d,_0x1cda43);}_0x2dd92a((_0xd21017=_0xd21017[_0x19eb4a(0x12a)](_0x1649f2,_0x176cb5||[]))[_0x19eb4a(0x193)]());});}typeof SuppressedError===_0x278997(0x12d)?SuppressedError:function(_0x252fcc,_0x47da3a,_0x5cbb84){const _0x153f7d=_0x278997;var _0x65a33=new Error(_0x5cbb84);return _0x65a33[_0x153f7d(0x12c)]='SuppressedError',_0x65a33[_0x153f7d(0x10e)]=_0x252fcc,_0x65a33['suppressed']=_0x47da3a,_0x65a33;};const _0x1f6fe5=_0x278997(0x13b),_0x550966=_0x278997(0x148),_0x5444b6='ns=0;i=47',_0x23495a=_0x278997(0x1a6),_0xc8440f=_0x278997(0x11c),_0x56517b=_0x278997(0x19f),_0x4715bb=_0x278997(0x102);var _0x211473;(function(_0x366d84){const _0x152bd0=_0x278997;_0x366d84[_0x366d84[_0x152bd0(0x1af)]=0x0]=_0x152bd0(0x1af),_0x366d84[_0x366d84['Inverse']=0x1]=_0x152bd0(0x188),_0x366d84[_0x366d84[_0x152bd0(0x120)]=0x2]=_0x152bd0(0x120),_0x366d84[_0x366d84[_0x152bd0(0x15b)]=0x3]='Invalid';}(_0x211473||(_0x211473={})));var _0x16d592;(function(_0x592bba){const _0x3f8bee=_0x278997;_0x592bba[_0x592bba[_0x3f8bee(0x145)]=0x0]=_0x3f8bee(0x145),_0x592bba[_0x592bba['Object']=0x1]='Object',_0x592bba[_0x592bba[_0x3f8bee(0x1d8)]=0x2]=_0x3f8bee(0x1d8),_0x592bba[_0x592bba[_0x3f8bee(0x1a5)]=0x4]=_0x3f8bee(0x1a5),_0x592bba[_0x592bba[_0x3f8bee(0xfb)]=0x8]=_0x3f8bee(0xfb),_0x592bba[_0x592bba[_0x3f8bee(0x165)]=0x10]=_0x3f8bee(0x165),_0x592bba[_0x592bba[_0x3f8bee(0x14f)]=0x20]=_0x3f8bee(0x14f),_0x592bba[_0x592bba[_0x3f8bee(0x18b)]=0x40]=_0x3f8bee(0x18b),_0x592bba[_0x592bba['View']=0x80]=_0x3f8bee(0x174);}(_0x16d592||(_0x16d592={})));var _0x18e624;(function(_0x33cf60){const _0x127ce2=_0x278997;_0x33cf60[_0x33cf60[_0x127ce2(0x18e)]=0x1]=_0x127ce2(0x18e),_0x33cf60[_0x33cf60[_0x127ce2(0x1d8)]=0x2]=_0x127ce2(0x1d8),_0x33cf60[_0x33cf60[_0x127ce2(0x1a5)]=0x4]=_0x127ce2(0x1a5),_0x33cf60[_0x33cf60[_0x127ce2(0xfb)]=0x8]=_0x127ce2(0xfb),_0x33cf60[_0x33cf60[_0x127ce2(0x165)]=0x10]=_0x127ce2(0x165),_0x33cf60[_0x33cf60[_0x127ce2(0x14f)]=0x20]=_0x127ce2(0x14f),_0x33cf60[_0x33cf60[_0x127ce2(0x18b)]=0x40]=_0x127ce2(0x18b),_0x33cf60[_0x33cf60['View']=0x80]=_0x127ce2(0x174);}(_0x18e624||(_0x18e624={})));var _0x4b6a11;(function(_0x2cff24){const _0x2e77d5=_0x278997;_0x2cff24[_0x2cff24[_0x2e77d5(0x14f)]=0x1]=_0x2e77d5(0x14f),_0x2cff24[_0x2cff24['IsForward']=0x2]=_0x2e77d5(0x11b),_0x2cff24[_0x2cff24[_0x2e77d5(0x15f)]=0x4]=_0x2e77d5(0x15f),_0x2cff24[_0x2cff24[_0x2e77d5(0x196)]=0x8]=_0x2e77d5(0x196),_0x2cff24[_0x2cff24[_0x2e77d5(0x1ab)]=0x10]=_0x2e77d5(0x1ab),_0x2cff24[_0x2cff24[_0x2e77d5(0xfd)]=0x20]=_0x2e77d5(0xfd);}(_0x4b6a11||(_0x4b6a11={})));function _0x17e16a(_0x48b787){const _0x452ccd=_0x278997;switch(_0x48b787){case'Organizes':return _0x1f6fe5;case _0x452ccd(0x182):return _0x23495a;case _0x452ccd(0x19b):return _0x5444b6;case _0x452ccd(0x147):return _0xc8440f;case _0x452ccd(0x183):return _0x56517b;case _0x452ccd(0x1da):return _0x4715bb;}}const _0x55c69f=_0xb2ad4d=>{const _0x2c9ebe=_0x278997;switch(_0xb2ad4d[_0x2c9ebe(0x15d)]){case _0x2c9ebe(0x18e):if(_0xb2ad4d[_0x2c9ebe(0x136)]===_0x1f6fe5);if(_0xb2ad4d[_0x2c9ebe(0x185)]===_0x550966||_0xb2ad4d[_0x2c9ebe(0x136)]===_0x2c9ebe(0x113))return{'icon':'fa-folder','color':'rgba(61,\x2060,\x204,\x200.525)'};return{'icon':'fa-object-group','color':'SeaGreen'};case'Variable':if(_0xb2ad4d[_0x2c9ebe(0x136)]===_0x5444b6)return{'icon':'fa-list-alt','color':_0x2c9ebe(0x1a0)};else return _0xb2ad4d[_0x2c9ebe(0x136)]===_0x23495a?{'icon':_0x2c9ebe(0x1c8),'color':_0x2c9ebe(0x104)}:{'icon':_0x2c9ebe(0x1c8),'color':_0x2c9ebe(0x11e)};case'Method':return{'icon':_0x2c9ebe(0x122),'color':_0x2c9ebe(0x14b)};case _0x2c9ebe(0xfb):return{'icon':'fa-object-group','color':_0x2c9ebe(0x17d)};case _0x2c9ebe(0x165):return{'icon':_0x2c9ebe(0x11f),'color':_0x2c9ebe(0x17d)};case _0x2c9ebe(0x18b):return{'icon':_0x2c9ebe(0x163),'color':_0x2c9ebe(0x11e)};}return{'icon':_0x2c9ebe(0x117),'color':_0x2c9ebe(0x1d1)};},_0xc04b0f=({endpointNode:_0xb9b30d,endpoint:_0x42005d,baseUrl:_0x20f312},_0x231334,_0x12fc48)=>_0x46ac0f(void 0x0,void 0x0,void 0x0,function*(){const _0x55dbac=_0x278997,_0xb85709=_0x20f312+_0x55dbac(0x197),_0x423d5f=_0xb85709+'/browse',_0x550b2e=Object['assign'](Object[_0x55dbac(0x12e)]({},_0x12fc48),{'nodeId':_0x231334,'resultMask':0x3f}),_0x1f945b=yield fetch(_0x423d5f,{'method':_0x55dbac(0x17b),'body':JSON[_0x55dbac(0x125)]({'endpointNode':_0xb9b30d,'endpoint':_0x42005d,'browseDescription':_0x550b2e}),'headers':{'Content-Type':_0x55dbac(0x115)}});if(_0x1f945b[_0x55dbac(0x1bd)]!==0xc8)return console[_0x55dbac(0x1b8)](_0x55dbac(0x172),_0x1f945b[_0x55dbac(0x1bd)],_0x1f945b[_0x55dbac(0x19a)]),{'references':[]};console[_0x55dbac(0x1b8)](_0x55dbac(0x100),_0x1f945b[_0x55dbac(0x1bd)],_0x1f945b[_0x55dbac(0x19a)]);const _0x24ad53=yield _0x1f945b[_0x55dbac(0x1d0)](),_0x3550de=_0x24ad53[_0x55dbac(0x1cf)][_0x55dbac(0x186)]||[];return{'references':_0x3550de};}),_0x1a038b={'referenceTypeId':_0x17e16a(_0x278997(0x147)),'includeSubtypes':!![],'browseDirection':_0x211473[_0x278997(0x1af)],'nodeClassMask':_0x16d592[_0x278997(0x1d8)]|_0x16d592['Object']|_0x16d592[_0x278997(0x1a5)],'resultMask':0x3f},_0xe0b970={'referenceTypeId':_0x17e16a(_0x278997(0x1d3)),'includeSubtypes':!![],'browseDirection':_0x211473['Forward'],'nodeClassMask':_0x16d592[_0x278997(0x1d8)]|_0x16d592[_0x278997(0x18e)]|_0x16d592[_0x278997(0x1a5)],'resultMask':0x3f},_0x5d5d00=({endpointNode:_0x371f99,endpoint:_0x30cec9,baseUrl:_0x2a8e6f},_0x444e18,_0x261f27)=>_0x46ac0f(void 0x0,void 0x0,void 0x0,function*(){const _0x3eedd7=_0x278997,_0x241f2b=_0x2a8e6f+_0x3eedd7(0x197),_0x16c9e2=_0x444e18[_0x3eedd7(0x162)](),_0x9a158f=yield fetch(_0x241f2b+_0x3eedd7(0x14d),{'method':_0x3eedd7(0x17b),'body':JSON[_0x3eedd7(0x125)]({'endpointNode':_0x371f99,'endpoint':_0x30cec9,'nodeId':_0x16c9e2}),'headers':{'Content-Type':'application/json'}}),_0x2fd2f0=(_0x5db0c5,_0x5d9b36)=>{const _0x3ea7fa=_0x3eedd7;_0x261f27[_0x3ea7fa(0x152)](_0x5db0c5)[_0x3ea7fa(0x11a)](_0x3ea7fa(0x1c7))[_0x3ea7fa(0x11a)](_0x5d9b36),_0x261f27[_0x3ea7fa(0x1bb)](),setTimeout(()=>{const _0x290a1d=_0x3ea7fa;_0x261f27['removeClass'](_0x5d9b36),_0x261f27[_0x290a1d(0x1d4)]();},0xbb8);},_0x493e1e=yield _0x9a158f[_0x3eedd7(0x1d0)]();_0x9a158f[_0x3eedd7(0x1bd)]!==0xc8?_0x2fd2f0('!!failure!!'+_0x16c9e2,_0x3eedd7(0x1b1)):_0x493e1e[_0x3eedd7(0x18f)]['match'](/Good/)?(_0x444e18[_0x3eedd7(0x162)](_0x493e1e[_0x3eedd7(0x123)]),_0x444e18['trigger'](_0x3eedd7(0x1ce)),_0x2fd2f0(_0x3eedd7(0x135),'ok')):(_0x444e18[_0x3eedd7(0x162)](''+_0x16c9e2),_0x2fd2f0(_0x493e1e[_0x3eedd7(0x18f)]+'\x20'+_0x9a158f[_0x3eedd7(0x19a)],_0x3eedd7(0x1b1)));});function _0x23f6df(_0x2eaf0f,_0x45e9a5){return _0x46ac0f(this,void 0x0,void 0x0,function*(){const _0x19af8d=_0x5dbd,_0x5bd71d=_0x2eaf0f[_0x19af8d(0x1d7)](_0x19af8d(0x1ad)),_0x3a7d2d=yield _0xc04b0f(_0x45e9a5,_0x5bd71d,_0x1a038b),_0x307b00=yield _0xc04b0f(_0x45e9a5,_0x5bd71d,_0xe0b970);return{'references':[..._0x3a7d2d[_0x19af8d(0x186)],..._0x307b00[_0x19af8d(0x186)]]};});}const _0x22e3ce={'referenceTypeId':_0x17e16a(_0x278997(0x183)),'includeSubtypes':!![],'browseDirection':_0x211473['Forward'],'nodeClassMask':_0x16d592[_0x278997(0x14f)]|_0x16d592['ObjectType']|_0x16d592[_0x278997(0x18b)]|_0x16d592[_0x278997(0x165)],'resultMask':0x3f};function _0x379281(_0x54a2cf,_0x474ab4){return _0x46ac0f(this,void 0x0,void 0x0,function*(){const _0xbb9c93=_0x54a2cf['data']('value'),_0x1eb42a=yield _0xc04b0f(_0x474ab4,_0xbb9c93,_0x22e3ce);return _0x1eb42a;});}const _0x2252aa=_0x81fd4d=>{const _0x3d6163=_0x278997;var _0x33f018,_0x2e73cf;if(!_0x81fd4d){const _0xc629aa=$(_0x3d6163(0x160));return _0xc629aa;}const _0x5c791c=_0x81fd4d[_0x3d6163(0x13e)][_0x3d6163(0x146)](),_0x58038c=((_0x33f018=_0x81fd4d[_0x3d6163(0x129)])===null||_0x33f018===void 0x0?void 0x0:_0x33f018[_0x3d6163(0x152)])||((_0x2e73cf=_0x81fd4d[_0x3d6163(0x199)])===null||_0x2e73cf===void 0x0?void 0x0:_0x2e73cf[_0x3d6163(0x12c)])||_0x81fd4d[_0x3d6163(0x13e)]['toString'](),{icon:_0x265e29,color:_0x1ba82d}=_0x55c69f(_0x81fd4d),_0x315e67=$('<li><i\x20class=\x22fa\x20'+_0x265e29+_0x3d6163(0x17f)+_0x1ba82d+_0x3d6163(0x1b4)+_0x58038c+_0x3d6163(0x195));return _0x315e67[_0x3d6163(0x11a)](_0x3d6163(0x1b7)),_0x315e67['data'](_0x3d6163(0x1ad),_0x5c791c),_0x315e67[_0x3d6163(0x1d7)]('reference',_0x81fd4d),_0x315e67;},_0x2d65cd=()=>{const _0xac906c=_0x278997;$[_0xac906c(0x1a2)](_0xac906c(0x144),{'options':{'endpointNode':()=>({'endpoint':_0xac906c(0x1b6)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':'Objects'},'nodeClass':_0xac906c(0x18e),'nodeId':_0xac906c(0x1ac),'displayName':{'text':'Objects'},'typeDefinition':_0x550966}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x46ac0f(this,void 0x0,void 0x0,function*(){const _0x103080=_0x5dbd,_0x539771=this,_0x184206=typeof _0x539771[_0x103080(0x124)][_0x103080(0x141)]===_0x103080(0x12d)?_0x539771[_0x103080(0x124)]['parentNode']():_0x539771['options'][_0x103080(0x141)];if(_0x184206 instanceof Promise)return yield _0x184206;return _0x184206;});},'reset'(){const _0x1793c3=_0xac906c,_0x1bc71b=this;_0x1bc71b['$tree'][_0x1793c3(0x184)](),this[_0x1793c3(0x1a9)]()[_0x1793c3(0x10f)](_0x1e97f3=>{const _0x37fa26=_0x1793c3,_0x602e92=_0x2252aa(_0x1e97f3);_0x1bc71b[_0x37fa26(0x1b9)][_0x37fa26(0x164)](_0x602e92),_0x1bc71b[_0x37fa26(0x1a1)]=_0x1e97f3;});},'verify'(){const _0x5c29a3=_0xac906c,_0x3e8c8f=this,_0x137321={'baseUrl':_0x3e8c8f[_0x5c29a3(0x124)]['baseUrl'],'endpointNode':typeof _0x3e8c8f['options'][_0x5c29a3(0x110)]==='function'?_0x3e8c8f[_0x5c29a3(0x124)][_0x5c29a3(0x110)]():_0x3e8c8f[_0x5c29a3(0x124)][_0x5c29a3(0x110)],'endpoint':typeof _0x3e8c8f[_0x5c29a3(0x124)][_0x5c29a3(0x1c1)]==='function'?_0x3e8c8f[_0x5c29a3(0x124)][_0x5c29a3(0x1c1)]():_0x3e8c8f['options'][_0x5c29a3(0x1c1)]};_0x5d5d00(_0x137321,_0x3e8c8f[_0x5c29a3(0x190)],_0x3e8c8f[_0x5c29a3(0x111)]);},'_create'(){const _0x394811=_0xac906c,_0x2f2138=this;function _0x25fe82(_0x456c96,_0x46357b,_0x272ecb){return _0x46ac0f(this,void 0x0,void 0x0,function*(){const _0x491788=_0x5dbd;if(_0x456c96[_0x491788(0x177)](_0x491788(0x16d))){console[_0x491788(0x1b8)](_0x491788(0x13c));return;}if(_0x456c96[_0x491788(0x177)](_0x491788(0x16e))){console[_0x491788(0x1b8)](_0x491788(0x128));return;}_0x456c96[_0x491788(0x11a)]('loading'),_0x456c96[_0x491788(0x164)](_0x491788(0xfe));try{_0x456c96[_0x491788(0x106)]('ul')[_0x491788(0x184)]();const {references:_0x3ba7de}=yield _0x46357b(_0x456c96,_0x272ecb);for(const _0x27b0d3 of _0x3ba7de){if(_0x2f2138[_0x491788(0x124)][_0x491788(0x16a)]&&!_0x2f2138[_0x491788(0x124)][_0x491788(0x16a)](_0x27b0d3))continue;const _0x2676e8=_0x2252aa(_0x27b0d3);_0x456c96[_0x491788(0x106)]('ul')[_0x491788(0x164)](_0x2676e8);}_0x456c96[_0x491788(0x11a)](_0x491788(0x16d));}catch(_0x380b95){_0x456c96[_0x491788(0x106)]('ul')[_0x491788(0x164)](_0x491788(0x1a7)+_0x380b95[_0x491788(0x1d6)]+_0x491788(0x155)),console['log'](_0x491788(0x121),_0x380b95);}_0x456c96[_0x491788(0x1cc)](_0x491788(0x14a))[_0x491788(0x179)](),_0x456c96['removeClass'](_0x491788(0x16e));});}_0x2f2138[_0x394811(0x190)]=this[_0x394811(0x153)],_0x2f2138[_0x394811(0x1b2)]=$(_0x394811(0x16c)),_0x2f2138[_0x394811(0x1b2)][_0x394811(0x11a)](_0x394811(0x181)),this[_0x394811(0x153)][_0x394811(0x137)](_0x2f2138[_0x394811(0x1b2)]),_0x2f2138[_0x394811(0x17e)]=$(_0x394811(0x16c))[_0x394811(0x11a)](_0x394811(0x18a)),_0x2f2138['$combo'][_0x394811(0x164)](_0x2f2138[_0x394811(0x17e)]),_0x2f2138[_0x394811(0x17e)][_0x394811(0x164)](_0x2f2138[_0x394811(0x190)]),_0x2f2138[_0x394811(0x1cd)]=$(_0x394811(0x131)),_0x2f2138[_0x394811(0x17e)]['append'](_0x2f2138[_0x394811(0x1cd)]),_0x2f2138['$toggleTreeBtn']['on'](_0x394811(0x17c),function(){const _0x221ca7=_0x394811;!_0x2f2138[_0x221ca7(0x16b)]['is'](':visible')&&(_0x2f2138[_0x221ca7(0x1a9)]()[_0x221ca7(0x10f)](_0x3c0e4b=>{const _0x4cb7ab=_0x221ca7;var _0x30d24f;(_0x3c0e4b!==_0x2f2138[_0x4cb7ab(0x1a1)]||((_0x30d24f=_0x2f2138['currentParent'])===null||_0x30d24f===void 0x0?void 0x0:_0x30d24f['nodeId'])!==_0x3c0e4b[_0x4cb7ab(0x13e)])&&_0x2f2138[_0x4cb7ab(0x109)]();}),_0x2f2138[_0x221ca7(0x111)]['hide']()),_0x2f2138['$dropdown']['toggle']();}),_0x2f2138[_0x394811(0x173)]=$(_0x394811(0x1cb)),_0x2f2138[_0x394811(0x17e)]['append'](_0x2f2138[_0x394811(0x173)]),_0x2f2138['$verifyBtn']['on'](_0x394811(0x17c),()=>{const _0xc09511=_0x394811;this[_0xc09511(0x1c3)]();}),!_0x2f2138[_0x394811(0x190)][_0x394811(0x1be)](_0x394811(0x166))&&_0x2f2138[_0x394811(0x190)][_0x394811(0x1be)](_0x394811(0x166),_0x394811(0x10b)),_0x2f2138[_0x394811(0x111)]=$(_0x394811(0x13f)),_0x2f2138[_0x394811(0x111)][_0x394811(0x1d4)](),{'baseUrl':_0x2f2138['options'][_0x394811(0x189)],'endpointNode':typeof _0x2f2138[_0x394811(0x124)][_0x394811(0x110)]===_0x394811(0x12d)?_0x2f2138[_0x394811(0x124)][_0x394811(0x110)]():_0x2f2138[_0x394811(0x124)]['endpointNode'],'endpoint':typeof _0x2f2138[_0x394811(0x124)][_0x394811(0x1c1)]===_0x394811(0x12d)?_0x2f2138[_0x394811(0x124)][_0x394811(0x1c1)]():_0x2f2138[_0x394811(0x124)][_0x394811(0x1c1)]},_0x2f2138[_0x394811(0x16b)]=$('<div/>')[_0x394811(0x11a)](_0x394811(0x176))['hide'](),_0x2f2138['$combo'][_0x394811(0x164)](_0x2f2138[_0x394811(0x111)]),_0x2f2138[_0x394811(0x1b2)][_0x394811(0x164)](_0x2f2138[_0x394811(0x16b)]),_0x2f2138[_0x394811(0x1b9)]=$('<ul\x20class=\x22sterfive-tree\x22></ul>')['appendTo'](_0x2f2138[_0x394811(0x16b)]),this['reset'](),_0x2f2138[_0x394811(0x1b9)]['on'](_0x394811(0x17c),'li',function(_0x48deb7){const _0x134d95=_0x394811;var _0x1fa4ea,_0xaeb495;_0x48deb7['stopPropagation']();let _0x38c373=$(this);const _0x57990d=0x14,_0x249e69=0x14,_0x8cb000=$(this)[_0x134d95(0x133)](),_0x219885=_0x48deb7;if(_0x219885[_0x134d95(0x126)]>=_0x8cb000[_0x134d95(0x1c2)]&&_0x219885[_0x134d95(0x126)]<=_0x8cb000[_0x134d95(0x1c2)]+_0x57990d&&_0x219885[_0x134d95(0x1a8)]>=_0x8cb000[_0x134d95(0x127)]&&_0x219885[_0x134d95(0x1a8)]<=_0x8cb000[_0x134d95(0x127)]+_0x249e69){if(_0x38c373[_0x134d95(0x177)](_0x134d95(0x1b7))){if(_0x38c373['hasClass'](_0x134d95(0x16d))){_0x38c373['removeClass']('expandable')['addClass'](_0x134d95(0xff)),_0x38c373[_0x134d95(0x106)]('ul')[_0x134d95(0x108)]();return;}const _0x203a3e={'baseUrl':_0x2f2138[_0x134d95(0x124)]['baseUrl'],'endpointNode':typeof _0x2f2138[_0x134d95(0x124)][_0x134d95(0x110)]==='function'?_0x2f2138['options'][_0x134d95(0x110)]():_0x2f2138[_0x134d95(0x124)][_0x134d95(0x110)],'endpoint':typeof _0x2f2138[_0x134d95(0x124)]['endpoint']===_0x134d95(0x12d)?_0x2f2138['options'][_0x134d95(0x1c1)]():_0x2f2138['options'][_0x134d95(0x1c1)]},_0x1dc7b9=!_0x2f2138[_0x134d95(0x124)]['isTypeRef']?_0x23f6df:_0x379281;_0x25fe82(_0x38c373,_0x1dc7b9,_0x203a3e)[_0x134d95(0x10f)](()=>{const _0x37e225=_0x134d95;console[_0x37e225(0x1b8)](_0x37e225(0x194)),console[_0x37e225(0x1b8)]('fetched'),_0x38c373[_0x37e225(0x13a)](_0x37e225(0x1b7))[_0x37e225(0x11a)]('expanded');})[_0x134d95(0x138)](_0x2a22b2=>{const _0x15a91d=_0x134d95;_0x38c373['removeClass'](_0x15a91d(0x1b7))[_0x15a91d(0x11a)](_0x15a91d(0xff)),console[_0x15a91d(0x1b8)]('error',_0x2a22b2);});}else{if(_0x38c373[_0x134d95(0x177)]('expanded'))_0x38c373[_0x134d95(0x106)]('ul')[_0x134d95(0x108)](),_0x38c373[_0x134d95(0x168)](_0x134d95(0x139));else{if(_0x38c373['children']('ul')[_0x134d95(0x106)]()[_0x134d95(0x14e)]>0x0)_0x38c373['children']('ul')['toggle'](),_0x38c373[_0x134d95(0x168)](_0x134d95(0x139));else;}}}else{const _0x10ec20=_0x38c373[_0x134d95(0x1d7)](_0x134d95(0x1ad)),_0x4a3f2b=_0x38c373[_0x134d95(0x1d7)](_0x134d95(0x1dd));if(_0x2f2138[_0x134d95(0x124)][_0x134d95(0x171)]&&!_0x2f2138[_0x134d95(0x124)]['isSelectable'](_0x4a3f2b))return;_0x2f2138['$input'][_0x134d95(0x1d7)]('reference',_0x4a3f2b);const _0x123aea=((_0x1fa4ea=_0x4a3f2b[_0x134d95(0x129)])===null||_0x1fa4ea===void 0x0?void 0x0:_0x1fa4ea[_0x134d95(0x152)])||((_0xaeb495=_0x4a3f2b['browseName'])===null||_0xaeb495===void 0x0?void 0x0:_0xaeb495[_0x134d95(0x12c)])||_0x4a3f2b[_0x134d95(0x13e)]['toString'](),_0xf94ac0='['+_0x123aea+']('+_0x10ec20+')';_0x2f2138[_0x134d95(0x190)]['val'](_0xf94ac0),_0x2f2138[_0x134d95(0x190)]['trigger'](_0x134d95(0x1ce)),_0x2f2138[_0x134d95(0x16b)][_0x134d95(0x1d4)]();}}),$(document)['on'](_0x394811(0x17c),function(_0x7ae843){const _0xfc2fa4=_0x394811;!$(_0x7ae843[_0xfc2fa4(0x1c0)])['closest'](_0x2f2138['$combo'])[_0xfc2fa4(0x14e)]&&_0x2f2138[_0xfc2fa4(0x16b)]['hide']();});}});},_0xb955c1=_0x5f455c=>{const _0x45c2ef=_0x278997;var _0x2553d5,_0x1c9f2c,_0x32e8b3;if(!_0x5f455c){const _0x191001=$(_0x45c2ef(0x160));return _0x191001;}const _0x279a7a=_0x5f455c[_0x45c2ef(0x13e)][_0x45c2ef(0x146)]();let _0x36d68c=((_0x2553d5=_0x5f455c['displayName'])===null||_0x2553d5===void 0x0?void 0x0:_0x2553d5[_0x45c2ef(0x152)])||((_0x1c9f2c=_0x5f455c['browseName'])===null||_0x1c9f2c===void 0x0?void 0x0:_0x1c9f2c['name'])||_0x5f455c[_0x45c2ef(0x13e)]['toString'](),_0xade0bb=(_0x32e8b3=_0x5f455c[_0x45c2ef(0x199)])===null||_0x32e8b3===void 0x0?void 0x0:_0x32e8b3['namespaceIndex'];_0x36d68c+=_0xade0bb!==undefined&&_0x5f455c[_0x45c2ef(0x15d)][_0x45c2ef(0x116)](/Type/)?_0x45c2ef(0x18d)+_0xade0bb+')':'';const {icon:_0x411844,color:_0x2af5d2}=_0x55c69f(_0x5f455c),_0xb84bd0=$('<li>');if(_0x5f455c[_0x45c2ef(0x15d)]==='Variable'){const _0x527e39=$(_0x45c2ef(0x15e));_0xb84bd0['append'](_0x527e39),_0x527e39['on'](_0x45c2ef(0x17c),function(){const _0x538c08=_0x45c2ef;_0x527e39[_0x538c08(0x177)](_0x538c08(0x159))?_0x527e39['removeClass'](_0x538c08(0x159))[_0x538c08(0x11a)]('checked'):_0x527e39[_0x538c08(0x13a)](_0x538c08(0x1b3))[_0x538c08(0x11a)](_0x538c08(0x159));});}return _0xb84bd0['append']($('<i\x20class=\x22fa\x20'+_0x411844+_0x45c2ef(0x17f)+_0x2af5d2+';\x22></i>'+_0x36d68c+'<ul></ul>')),_0xb84bd0[_0x45c2ef(0x11a)]('expandable'),_0xb84bd0['data'](_0x45c2ef(0x1ad),_0x279a7a),_0xb84bd0['data'](_0x45c2ef(0x1dd),_0x5f455c),_0xb84bd0;},_0x3168d5=()=>{const _0x14d12a=_0x278997;$[_0x14d12a(0x1a2)](_0x14d12a(0x130),{'options':{'endpointNode':()=>({'endpoint':'opc.tcp://opcuademo.sterfive.com:26543'}),'endpoint':()=>undefined,'baseUrl':''},'_populate'(){var _0x493854;return _0x46ac0f(this,void 0x0,void 0x0,function*(){const _0x1258d9=_0x5dbd,_0x11609d=this,_0x460c1f=new Set((_0x493854=_0x11609d[_0x1258d9(0x190)][_0x1258d9(0x162)]())===null||_0x493854===void 0x0?void 0x0:_0x493854[_0x1258d9(0x146)]()[_0x1258d9(0x158)](';')),_0x4176e4={'baseUrl':_0x11609d[_0x1258d9(0x124)][_0x1258d9(0x189)],'endpointNode':typeof _0x11609d[_0x1258d9(0x124)][_0x1258d9(0x110)]==='function'?_0x11609d['options'][_0x1258d9(0x110)]():_0x11609d[_0x1258d9(0x124)]['endpointNode'],'endpoint':typeof _0x11609d[_0x1258d9(0x124)][_0x1258d9(0x1c1)]===_0x1258d9(0x12d)?_0x11609d[_0x1258d9(0x124)]['endpoint']():_0x11609d[_0x1258d9(0x124)][_0x1258d9(0x1c1)]},_0x56ae0e=yield _0x5ec00f(_0x4176e4);this[_0x1258d9(0x17a)](_0x56ae0e,_0x460c1f);});},'_installTree'(_0x5d4742,_0x3599b7){const _0x534b57=_0x14d12a,_0x7e1e75=this;_0x7e1e75[_0x534b57(0x1b9)][_0x534b57(0x184)]();if(!_0x5d4742['events'])return;const _0x26b6b1=_0x5d4742[_0x534b57(0x1b0)],_0x3b1952=_0xb955c1(_0x26b6b1);_0x7e1e75[_0x534b57(0x1b9)][_0x534b57(0x164)](_0x3b1952);const _0x17d29a='';this[_0x534b57(0x169)](_0x3b1952[_0x534b57(0x106)]('ul'),_0x26b6b1,_0x17d29a,_0x3599b7),_0x3b1952[_0x534b57(0x13a)]('expandable')[_0x534b57(0x11a)]('expanded'),this[_0x534b57(0x15a)](_0x3599b7);},'_installChildren'(_0x17bbf3,_0x33b82a,_0x17d56f,_0x1a93e5){const _0x94501d=_0x14d12a,_0x264091=({name:_0x264fc2,namespaceIndex:_0x177dae})=>{if(_0x177dae===0x0)return _0x264fc2;return _0x177dae+':'+_0x264fc2;},_0x18d1f2=_0x33b82a[_0x94501d(0x106)]||[],_0x23fe28=_0x33b82a[_0x94501d(0xfc)]||[],_0x2c7807=[..._0x18d1f2,..._0x23fe28];for(const _0x59b080 of _0x2c7807){const _0x210e0f=_0xb955c1(_0x59b080);_0x17bbf3[_0x94501d(0x164)](_0x210e0f);let _0x35af37='';_0x59b080[_0x94501d(0x15d)]===_0x94501d(0x1d8)&&(_0x17d56f?_0x35af37=_0x17d56f+'.'+_0x264091(_0x59b080[_0x94501d(0x199)]):_0x35af37=_0x264091(_0x59b080[_0x94501d(0x199)]),_0x210e0f[_0x94501d(0x1be)](_0x94501d(0x13d),_0x35af37));const _0x92d2f9=_0x59b080[_0x94501d(0x106)]&&_0x59b080[_0x94501d(0x106)][_0x94501d(0x14e)],_0x57620b=_0x59b080[_0x94501d(0xfc)]&&_0x59b080['subTypes'][_0x94501d(0x14e)];!_0x92d2f9&&!_0x57620b?_0x210e0f[_0x94501d(0x13a)](_0x94501d(0x1b7))[_0x94501d(0x11a)](_0x94501d(0x1ba)):(this[_0x94501d(0x169)](_0x210e0f['children']('ul'),_0x59b080,_0x35af37,_0x1a93e5),_0x210e0f[_0x94501d(0x13a)](_0x94501d(0x1b7))['addClass'](_0x94501d(0xff)));}},'_updateSelectedFields'(){const _0xce3af2=_0x14d12a;var _0x34d180;const _0x22d0d4=this,_0x4fcbb6=new Set((_0x34d180=_0x22d0d4[_0xce3af2(0x190)][_0xce3af2(0x162)]())===null||_0x34d180===void 0x0?void 0x0:_0x34d180[_0xce3af2(0x146)]()['split'](';'));this[_0xce3af2(0x15a)](_0x4fcbb6);},'_updateValues'(_0x86776a){const _0x24e20a=_0x14d12a;$(_0x24e20a(0x18c))[_0x24e20a(0x12f)](function(){const _0x187f44=_0x24e20a,_0x246e1e=$(this),_0x3664b5=_0x246e1e[_0x187f44(0x1be)](_0x187f44(0x13d));_0x3664b5&&_0x86776a[_0x187f44(0x178)](_0x3664b5)&&_0x246e1e[_0x187f44(0x106)](_0x187f44(0x1ca))[_0x187f44(0x13a)](_0x187f44(0x159))[_0x187f44(0x11a)]('checked');});},'_setInputValue'(){const _0x118c69=_0x14d12a,_0x365a10=this,_0x25d0cf=[];$(_0x118c69(0x18c))[_0x118c69(0x12f)](function(){const _0x5b1dd9=_0x118c69,_0x12b078=$(this);if(_0x12b078[_0x5b1dd9(0x106)]('span.custom-checkbox.checked')[_0x5b1dd9(0x14e)]>0x0){const _0xf9ffdd=_0x12b078[_0x5b1dd9(0x1be)](_0x5b1dd9(0x13d));if(_0xf9ffdd)_0x25d0cf[_0x5b1dd9(0x1a3)](_0xf9ffdd);}});const _0x24d98a=[...new Set(_0x25d0cf)][_0x118c69(0x1bc)]()[_0x118c69(0x170)](';');_0x365a10['$input'][_0x118c69(0x162)](_0x24d98a),_0x365a10[_0x118c69(0x190)]['trigger']('change');},'_create'(){const _0x281a18=_0x14d12a,_0x121652=this;_0x121652[_0x281a18(0x190)]=this[_0x281a18(0x153)],_0x121652[_0x281a18(0x1b2)]=$(_0x281a18(0x16c)),_0x121652[_0x281a18(0x1b2)]['addClass']('sterfive-combo-box'),this['element'][0x0][_0x281a18(0x191)][_0x281a18(0x132)](_0x121652[_0x281a18(0x1b2)][0x0],this['element'][0x0]),_0x121652[_0x281a18(0x17e)]=$(_0x281a18(0x16c))[_0x281a18(0x11a)](_0x281a18(0x18a)),_0x121652['$combo'][_0x281a18(0x164)](_0x121652[_0x281a18(0x17e)]),_0x121652[_0x281a18(0x17e)][_0x281a18(0x164)](_0x121652[_0x281a18(0x190)]),_0x121652[_0x281a18(0x1cd)]=$(_0x281a18(0x131)),_0x121652['$inputGroup'][_0x281a18(0x164)](_0x121652[_0x281a18(0x1cd)]),_0x121652[_0x281a18(0x1cd)]['on'](_0x281a18(0x17c),function(){const _0x20d6bd=_0x281a18;_0x121652[_0x20d6bd(0x16b)][_0x20d6bd(0x108)](),_0x121652[_0x20d6bd(0x111)][_0x20d6bd(0x108)]();if(_0x121652[_0x20d6bd(0x16b)]['is'](_0x20d6bd(0x1c5))){_0x513392['show']();const _0x31f613=_0x121652[_0x20d6bd(0x16b)][_0x20d6bd(0x133)]();_0x513392[_0x20d6bd(0x15c)]({'top':_0x31f613[_0x20d6bd(0x127)]+'px','right':_0x20d6bd(0x1db)+(_0x31f613[_0x20d6bd(0x1c2)]+_0x121652[_0x20d6bd(0x16b)][_0x20d6bd(0x1bf)]())+_0x20d6bd(0x12b)}),_0x121652[_0x20d6bd(0x112)](),_0x121652[_0x20d6bd(0x154)]();}else _0x513392[_0x20d6bd(0x1d4)]();});!_0x121652[_0x281a18(0x190)][_0x281a18(0x1be)](_0x281a18(0x166))&&_0x121652[_0x281a18(0x190)][_0x281a18(0x1be)]('placeholder','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20');_0x121652[_0x281a18(0x111)]=$('<div\x20class=\x22info-text\x22></div>'),_0x121652[_0x281a18(0x111)][_0x281a18(0x1d4)](),_0x121652[_0x281a18(0x16b)]=$('<div/>')[_0x281a18(0x11a)](_0x281a18(0x176))[_0x281a18(0x1d4)]();const _0x2e667b=$('<span\x20class=\x22validate-button\x22>✔</span>'),_0x59d483=$(_0x281a18(0x1c4)),_0x513392=$(_0x281a18(0x10a))['append'](_0x2e667b,_0x59d483);_0x513392['hide'](),_0x2e667b['on'](_0x281a18(0x17c),()=>{const _0x520f84=_0x281a18;_0x121652['_setInputValue'](),_0x121652[_0x520f84(0x16b)][_0x520f84(0x1d4)]();}),_0x59d483['on'](_0x281a18(0x17c),()=>{const _0x4fba49=_0x281a18;_0x121652[_0x4fba49(0x16b)]['hide']();}),_0x121652[_0x281a18(0x1b2)]['append'](_0x121652[_0x281a18(0x111)]),_0x121652[_0x281a18(0x1b2)][_0x281a18(0x164)](_0x121652[_0x281a18(0x16b)]),_0x121652[_0x281a18(0x1b9)]=$(_0x281a18(0x198)),_0x121652[_0x281a18(0x16b)][_0x281a18(0x184)]()[_0x281a18(0x164)](_0x121652['$tree'],_0x513392),_0x121652['$tree']['on'](_0x281a18(0x17c),'li',function(_0x5e0d95){const _0x1d6515=_0x281a18;_0x5e0d95[_0x1d6515(0x180)]();let _0x142bec=$(this);const _0x54b56f=0x14,_0x18ae43=0x14,_0x385b72=$(this)[_0x1d6515(0x133)](),_0x521165=_0x5e0d95;if(_0x521165['pageX']>=_0x385b72[_0x1d6515(0x1c2)]&&_0x521165['pageX']<=_0x385b72[_0x1d6515(0x1c2)]+_0x54b56f&&_0x521165[_0x1d6515(0x1a8)]>=_0x385b72['top']&&_0x521165['pageY']<=_0x385b72[_0x1d6515(0x127)]+_0x18ae43){console['log'](_0x1d6515(0x19d)),console[_0x1d6515(0x1b8)](_0x1d6515(0x1a4),_0x142bec['data']('value'),_0x142bec[_0x1d6515(0x1be)](_0x1d6515(0x105)));if(_0x142bec[_0x1d6515(0x177)]('expandable'))_0x142bec[_0x1d6515(0x13a)](_0x1d6515(0x1b7))[_0x1d6515(0x11a)](_0x1d6515(0xff)),_0x142bec[_0x1d6515(0x106)]('ul')[_0x1d6515(0x108)]();else{if(_0x142bec[_0x1d6515(0x177)](_0x1d6515(0xff)))_0x142bec[_0x1d6515(0x106)]('ul')['toggle'](),_0x142bec['toggleClass']('expandable\x20expanded');else{if(_0x142bec[_0x1d6515(0x106)]('ul')[_0x1d6515(0x106)]()[_0x1d6515(0x14e)]>0x0)_0x142bec[_0x1d6515(0x106)]('ul')[_0x1d6515(0x108)](),_0x142bec[_0x1d6515(0x168)](_0x1d6515(0x139));else;}}}}),$(document)['on'](_0x281a18(0x17c),function(_0x34daf7){const _0x4dee2a=_0x281a18;!$(_0x34daf7['target'])[_0x4dee2a(0x151)](_0x121652[_0x4dee2a(0x1b2)])['length']&&_0x121652[_0x4dee2a(0x16b)][_0x4dee2a(0x1d4)]();}),this[_0x281a18(0x112)]();}});},_0x5ec00f=({endpointNode:_0x140f04,endpoint:_0x5822c6,baseUrl:_0x11bea3})=>_0x46ac0f(void 0x0,void 0x0,void 0x0,function*(){const _0x5c0e77=_0x278997,_0x4440ea=_0x11bea3+'/opcua-endpoint2',_0x194986=_0x4440ea+_0x5c0e77(0x1d2),_0x49a3fe=yield fetch(_0x194986,{'method':'POST','body':JSON[_0x5c0e77(0x125)]({'endpointNode':_0x140f04,'endpoint':_0x5822c6}),'headers':{'Content-Type':_0x5c0e77(0x115)}});if(_0x49a3fe['status']!==0xc8)return console[_0x5c0e77(0x1b8)](_0x5c0e77(0x172),_0x49a3fe[_0x5c0e77(0x1bd)],_0x49a3fe[_0x5c0e77(0x19a)]),{'events':null};console[_0x5c0e77(0x1b8)]('fetched\x20:\x20',_0x49a3fe['status'],_0x49a3fe[_0x5c0e77(0x19a)]);const _0x7f4538=yield _0x49a3fe[_0x5c0e77(0x1d0)](),_0x59e90d=_0x7f4538['events'];return{'events':_0x59e90d};}),_0x3ac61b=()=>{const _0x11efe2=_0x278997,_0x1926bd=$(_0x11efe2(0x1c9)),_0x14c656=_0x1926bd['val'](),_0x1e22de=RED[_0x11efe2(0x1b5)]['node'](_0x14c656);if(!_0x1e22de)return undefined;const {endpoint:_0x40e8d4,securityMode:_0x1f0335,securityPolicy:_0x34fff5,userIdentityType:_0x167cfb,credentials:_0x4525bd}=_0x1e22de,_0x306bf6={'endpoint':_0x40e8d4,'securityMode':_0x1f0335,'securityPolicy':_0x34fff5,'userIdentityType':_0x167cfb,'credentials':_0x4525bd};return _0x306bf6;},_0x367f21=()=>{return{'endpointNode':_0x5785b3};},_0x5785b3=()=>{const _0x360b02=_0x278997,_0x534763=$('#node-input-endpoint'),_0x304f06=_0x534763[_0x360b02(0x162)](),_0x2ec9c2=_0x3ac61b();if(!_0x2ec9c2)return undefined;return{'id':_0x304f06};};RED[_0x278997(0x1b5)][_0x278997(0x1d9)]('OpcUa-Client2-MonitorEvent',{'category':_0x278997(0x16f),'color':_0x278997(0x167),'align':_0x278997(0x14c),'icon':'opcualogobig.png','paletteLabel':_0x278997(0x11d),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':'OpcUa-Endpoint2'},'subscription':{'value':'','required':!![],'validate':_0x18277b=>{if(_0x18277b==='')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 _0x409d93=_0x278997;return this[_0x409d93(0x12c)]||'OPCUA\x20Monitor';},'labelStyle'(){const _0x570dc3=_0x278997;return this[_0x570dc3(0x12c)]?'node_label_italic':'';},'oneditprepare'(){const _0x403c40=_0x278997;_0x2d65cd(),_0x3168d5(),_0x44c0a2(RED,this),$(_0x403c40(0x114))['on'](_0x403c40(0x1ce),()=>{const _0x212ef0=_0x403c40,_0x1abff4=$(_0x212ef0(0x19c))[_0x212ef0(0x1ae)](_0x212ef0(0x1b3));_0x1abff4?$(_0x212ef0(0x150))[_0x212ef0(0x162)](0x0):$('#node-input-inputs')[_0x212ef0(0x162)](0x1);});const _0xebb93b=$(_0x403c40(0x161));_0xebb93b[_0x403c40(0x157)](Object['assign'](Object['assign']({},_0x367f21()),{'filter'(_0x4aa496){const _0x1f5d1b=_0x403c40;return _0x4aa496[_0x1f5d1b(0x15d)]==='Object';},'isSelectable'(_0x503a08){const _0x445284=_0x403c40;return _0x503a08[_0x445284(0x15d)]==='Object';}})),$(_0x403c40(0x175));const _0x2463f4=$(_0x403c40(0x1c6));_0x2463f4[_0x403c40(0x19e)](Object[_0x403c40(0x12e)]({},_0x367f21()));},'oneditsave'(){const _0x37fef3=_0x278997,_0x3a3e0a=$(_0x37fef3(0x19c))[_0x37fef3(0x1ae)]('checked');_0x3a3e0a?($(_0x37fef3(0x19c))[_0x37fef3(0x162)](_0x3a3e0a?0x0:0x1),this[_0x37fef3(0x142)]=_0x3a3e0a?0x0:0x1):($('#node-input-startImmediately')[_0x37fef3(0x162)](0x1),this[_0x37fef3(0x142)]=0x1);}});}()));
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg0NGMwYTIiLCJfMHgyN2E3NTQiLCJfMHgxZGJmNjgiLCJfMHgxNzY3OTIiLCIkIiwiXzB4MzAwZjM5IiwiXzB4NDg3ZjgwIiwiXzB4MjhiZDNhIiwiXzB4NGFlMmRlIiwiXzB4NTczYzljIiwiXzB4NDZhYzBmIiwiXzB4MTY0OWYyIiwiXzB4MTc2Y2I1IiwiXzB4NTdiMWRlIiwiXzB4ZDIxMDE3IiwiXzB4MzE5ZjIwIiwiXzB4MzRmY2M4IiwiXzB4NWM4YWEwIiwiUHJvbWlzZSIsIl8weDE5ODc3OCIsIl8weDVmOThjZiIsIl8weDJjNjAyZCIsIl8weDI1NjAxNSIsIl8weDJkZDkyYSIsIl8weDNjNjMxNSIsIl8weDFjZGE0MyIsIl8weDMxY2NiNSIsIl8weDVkOTcyYyIsIl8weDQ4MDhmMyIsIlN1cHByZXNzZWRFcnJvciIsIl8weDI1MmZjYyIsIl8weDQ3ZGEzYSIsIl8weDVjYmI4NCIsIl8weDY1YTMzIiwiRXJyb3IiLCJfMHgxZjZmZTUiLCJfMHg1NTA5NjYiLCJfMHg1NDQ0YjYiLCJfMHgyMzQ5NWEiLCJfMHhjODQ0MGYiLCJfMHg1NjUxN2IiLCJfMHg0NzE1YmIiLCJfMHgyMTE0NzMiLCJfMHgzNjZkODQiLCJfMHgxNmQ1OTIiLCJfMHg1OTJiYmEiLCJfMHgxOGU2MjQiLCJfMHgzM2NmNjAiLCJfMHg0YjZhMTEiLCJfMHgyY2ZmMjQiLCJfMHgxN2UxNmEiLCJfMHg0OGI3ODciLCJfMHg1NWM2OWYiLCJfMHhiMmFkNGQiLCJfMHhjMDRiMGYiLCJlbmRwb2ludE5vZGUiLCJfMHhiOWIzMGQiLCJlbmRwb2ludCIsIl8weDQyMDA1ZCIsImJhc2VVcmwiLCJfMHgyMGYzMTIiLCJfMHgyMzEzMzQiLCJfMHgxMmZjNDgiLCJfMHhiODU3MDkiLCJfMHg0MjNkNWYiLCJfMHg1NTBiMmUiLCJPYmplY3QiLCJfMHgxZjk0NWIiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4MjRhZDUzIiwiXzB4MzU1MGRlIiwiXzB4MWEwMzhiIiwiXzB4ZTBiOTcwIiwiXzB4NWQ1ZDAwIiwiXzB4MzcxZjk5IiwiXzB4MzBjZWM5IiwiXzB4MmE4ZTZmIiwiXzB4NDQ0ZTE4IiwiXzB4MjYxZjI3IiwiXzB4MjQxZjJiIiwiXzB4MTZjOWUyIiwiXzB4OWExNThmIiwiXzB4MmZkMmYwIiwiXzB4NWRiMGM1IiwiXzB4NWQ5YjM2Iiwic2V0VGltZW91dCIsIl8weDQ5M2UxZSIsIl8weDIzZjZkZiIsIl8weDJlYWYwZiIsIl8weDQ1ZTlhNSIsIl8weDViZDcxZCIsIl8weDNhN2QyZCIsIl8weDMwN2IwMCIsIl8weDIyZTNjZSIsIl8weDM3OTI4MSIsIl8weDU0YTJjZiIsIl8weDQ3NGFiNCIsIl8weGJiOWM5MyIsIl8weDFlYjQyYSIsIl8weDIyNTJhYSIsIl8weDgxZmQ0ZCIsIl8weDMzZjAxOCIsIl8weDJlNzNjZiIsIl8weGM2MjlhYSIsIl8weDVjNzkxYyIsIl8weDU4MDM4YyIsImljb24iLCJfMHgyNjVlMjkiLCJjb2xvciIsIl8weDFiYTgyZCIsIl8weDMxNWU2NyIsIl8weDJkNjVjZCIsInVuZGVmaW5lZCIsIl8weDUzOTc3MSIsIl8weDE4NDIwNiIsIl8weDFiYzcxYiIsIl8weDFlOTdmMyIsIl8weDYwMmU5MiIsIl8weDNlOGM4ZiIsIl8weDEzNzMyMSIsIl8weDJmMjEzOCIsIl8weDI1ZmU4MiIsIl8weDQ1NmM5NiIsIl8weDQ2MzU3YiIsIl8weDI3MmVjYiIsInJlZmVyZW5jZXMiLCJfMHgzYmE3ZGUiLCJfMHgyN2IwZDMiLCJfMHgyNjc2ZTgiLCJfMHgzODBiOTUiLCJfMHgzYzBlNGIiLCJfMHgzMGQyNGYiLCJfMHg0OGRlYjciLCJfMHgxZmE0ZWEiLCJfMHhhZWI0OTUiLCJfMHgzOGMzNzMiLCJfMHg1Nzk5MGQiLCJfMHgyNDllNjkiLCJfMHg4Y2IwMDAiLCJfMHgyMTk4ODUiLCJfMHgyMDNhM2UiLCJfMHgxZGM3YjkiLCJfMHgyYTIyYjIiLCJfMHgxMGVjMjAiLCJfMHg0YTNmMmIiLCJfMHgxMjNhZWEiLCJfMHhmOTRhYzAiLCJkb2N1bWVudCIsIl8weDdhZTg0MyIsIl8weGI5NTVjMSIsIl8weDVmNDU1YyIsIl8weDI1NTNkNSIsIl8weDFjOWYyYyIsIl8weDMyZThiMyIsIl8weDE5MTAwMSIsIl8weDI3OWE3YSIsIl8weDM2ZDY4YyIsIl8weGFkZTBiYiIsIl8weDQxMTg0NCIsIl8weDJhZjVkMiIsIl8weGI4NGJkMCIsIl8weDUyN2UzOSIsIl8weDMxNjhkNSIsIl8weDQ5Mzg1NCIsIl8weDExNjA5ZCIsIl8weDQ2MGMxZiIsIlNldCIsIl8weDQxNzZlNCIsIl8weDU2YWUwZSIsIl8weDVlYzAwZiIsIl8weDVkNDc0MiIsIl8weDM1OTliNyIsIl8weDdlMWU3NSIsIl8weDI2YjZiMSIsIl8weDNiMTk1MiIsIl8weDE3ZDI5YSIsIl8weDE3YmJmMyIsIl8weDMzYjgyYSIsIl8weDE3ZDU2ZiIsIl8weDFhOTNlNSIsIl8weDI2NDA5MSIsIm5hbWUiLCJfMHgyNjRmYzIiLCJuYW1lc3BhY2VJbmRleCIsIl8weDE3N2RhZSIsIl8weDE4ZDFmMiIsIl8weDIzZmUyOCIsIl8weDJjNzgwNyIsIl8weDU5YjA4MCIsIl8weDIxMGUwZiIsIl8weDM1YWYzNyIsIl8weDkyZDJmOSIsIl8weDU3NjIwYiIsIl8weDM0ZDE4MCIsIl8weDIyZDBkNCIsIl8weDRmY2JiNiIsIl8weDg2Nzc2YSIsIl8weDI0NmUxZSIsIl8weDM2NjRiNSIsIl8weDM2NWExMCIsIl8weDI1ZDBjZiIsIl8weDEyYjA3OCIsIl8weGY5ZmZkZCIsIl8weDI0ZDk4YSIsIl8weDEyMTY1MiIsIl8weDUxMzM5MiIsIl8weDMxZjYxMyIsIl8weDJlNjY3YiIsIl8weDU5ZDQ4MyIsIl8weDVlMGQ5NSIsIl8weDE0MmJlYyIsIl8weDU0YjU2ZiIsIl8weDE4YWU0MyIsIl8weDM4NWI3MiIsIl8weDUyMTE2NSIsIl8weDM0ZGFmNyIsIl8weDE0MGYwNCIsIl8weDU4MjJjNiIsIl8weDExYmVhMyIsIl8weDQ0NDBlYSIsIl8weDE5NDk4NiIsIl8weDQ5YTNmZSIsIl8weDdmNDUzOCIsIl8weDU5ZTkwZCIsIl8weDNhYzYxYiIsIl8weDE5MjZiZCIsIl8weDE0YzY1NiIsIl8weDFlMjJkZSIsIlJFRCIsIl8weDQwZThkNCIsInNlY3VyaXR5TW9kZSIsIl8weDFmMDMzNSIsInNlY3VyaXR5UG9saWN5IiwiXzB4MzRmZmY1IiwidXNlcklkZW50aXR5VHlwZSIsIl8weDE2N2NmYiIsImNyZWRlbnRpYWxzIiwiXzB4NDUyNWJkIiwiXzB4MzA2YmY2IiwiXzB4MzY3ZjIxIiwiXzB4NTc4NWIzIiwiXzB4NTM0NzYzIiwiXzB4MzA0ZjA2IiwiXzB4MmVjOWMyIiwiXzB4MTgyNzdiIiwiXzB4MWFiZmY0IiwiXzB4ZWJiOTNiIiwiXzB4NGFhNDk2IiwiXzB4NTAzYTA4IiwiXzB4MjQ2M2Y0IiwiXzB4M2EzZTBhIl0sIm1hcHBpbmdzIjoidXdJQUFBLENBQUMsVSxDQUNHLGEsd0JBRUEsU0FBU0EsU0FBVCxDQUFxQ0MsU0FBckMsQ0FBMENDLFNBQTFDLEMseUJBQ1VDLFNBQUEsQ0FBWUMsQ0FBQSxDLGdCQUFBLEMsQ0FDWkMsU0FBQSxDQUFnQkQsQ0FBQSxDLGdCQUFBLEMsQ0FDaEJFLFNBQUEsQ0FBNkIsSSwyQkFDekJDLFNBQUEsQ0FBV04sU0FBQSxDLGdCQUFBLEUsTUFBQSxFQUFlRSxTQUFBLEMsZ0JBQUEsR0FBZixDLENBQ2pCRSxTQUFBLEMsZ0JBQUEsSSxHQUNJLENBQUNFLFNBQUQsRUFBYSxDQUFDQSxTQUFBLEMsZUFBQSxDLENBQ2QsTyxHQUVBQSxTQUFBLEMsZUFBQSxDLENBQ0EsVUFBV0MsU0FBWCxJQUFnQkQsU0FBQSxDLGVBQUEsQ0FBaEIsQyxDQUNJLE1BQU1FLFNBQUEsQ0FBUUQsU0FBQSxDLGdCQUFBLEdBQVVBLFNBQUEsQyxJQUFBLENBQXhCLENBQ0FKLENBQUEsQyxnQkFBQSxDQUFlLEMsT0FDWCxDQUFPSSxTQUFBLEMsSUFBQSxDQURJLEMsT0FFWCxDQUFPQyxTQUZJLEMsVUFHWCxDQUFVRCxTQUFBLEMsSUFBQSxJQUFTTixTQUFBLEMsY0FBQSxDQUhSLENB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QyxDQUNBLEssZ0JBQUEsRSxNQTlFeUMsQ0FBckQsQyxFQWh5QkosRyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgZnVuY3Rpb24gaW5zdGFsbFN1YnNjcmlwdGlvblNlbGVjdG9yKFJFRCwgbm9kZSkge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0ICRzdWJzY3JpcHRpb24gPSAkKFwiI25vZGUtaW5wdXQtc3Vic2NyaXB0aW9uXCIpO1xuICAgICAgICBjb25zdCBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucyA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGVuZHBvaW50ID0gUkVELm5vZGVzLm5vZGUoJGVuZHBvaW50LnZhbCgpKTtcbiAgICAgICAgICAgICRzdWJzY3JpcHRpb24uZW1wdHkoKTtcbiAgICAgICAgICAgIGlmICghZW5kcG9pbnQgfHwgIWVuZHBvaW50LnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZW5kcG9pbnQuc3Vic2NyaXB0aW9ucykge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcyBvZiBlbmRwb2ludC5zdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gcy5uYW1lIHx8IHMuaWQ7XG4gICAgICAgICAgICAgICAgICAgICQoXCI8b3B0aW9uLz5cIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHMuaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogbGFiZWwsXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZDogcy5pZCA9PT0gbm9kZS5zdWJzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAudGV4dChsYWJlbClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbygkc3Vic2NyaXB0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGluc3RhbGxTdWJzY3JpcHRpb25PcHRpb25zKCk7XG4gICAgICAgIC8vIGhhY2tcbiAgICAgICAgLy8gJGlucHV0QWN0aW9uLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgLy8gICAgICRlbmRwb2ludC5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgIC8vICAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMoKTtcbiAgICAgICAgLy8gICAgIH0pO1xuICAgICAgICAvLyB9KTtcbiAgICAgICAgJHN1YnNjcmlwdGlvbi5vbihcImZvY3VzIGNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgIGluc3RhbGxTdWJzY3JpcHRpb25PcHRpb25zKCk7XG4gICAgICAgIH0pO1xuICAgICAgICAkZW5kcG9pbnQub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIGNvbnN0IE9yZ2FuaXplc1JlZk5vZGVJZCA9IFwibnM9MDtpPTM1XCI7XG4gICAgY29uc3QgRm9sZGVyVHlwZSA9IFwibnM9MDtpPTYxXCI7XG4gICAgY29uc3QgSGFzQ29tcG9uZW50UmVmTm9kZUlkID0gXCJucz0wO2k9NDdcIjtcbiAgICBjb25zdCBIYXNQcm9wZXJ0eVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ2XCI7XG4gICAgY29uc3QgSGFzQ2hpbGRSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNFwiO1xuICAgIGNvbnN0IEhhc1N1YnR5cGVSZWZOb2RlSWQgPSBcIm5zPTA7aT00NVwiO1xuICAgIGNvbnN0IEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkID0gXCJucz0wO2k9NDBcIjtcblxuICAgIHZhciBCcm93c2VEaXJlY3Rpb247XG4gICAgKGZ1bmN0aW9uIChCcm93c2VEaXJlY3Rpb24pIHtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkZvcndhcmRcIl0gPSAwXSA9IFwiRm9yd2FyZFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52ZXJzZVwiXSA9IDFdID0gXCJJbnZlcnNlXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJCb3RoXCJdID0gMl0gPSBcIkJvdGhcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmFsaWRcIl0gPSAzXSA9IFwiSW52YWxpZFwiO1xuICAgIH0pKEJyb3dzZURpcmVjdGlvbiB8fCAoQnJvd3NlRGlyZWN0aW9uID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzKSB7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJVbnNwZWNpZmllZFwiXSA9IDBdID0gXCJVbnNwZWNpZmllZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3MgfHwgKE5vZGVDbGFzcyA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzc01hc2s7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3NNYXNrKSB7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3NNYXNrIHx8IChOb2RlQ2xhc3NNYXNrID0ge30pKTtcbiAgICB2YXIgUmVzdWx0TWFzaztcbiAgICAoZnVuY3Rpb24gKFJlc3VsdE1hc2spIHtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDFdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIklzRm9yd2FyZFwiXSA9IDJdID0gXCJJc0ZvcndhcmRcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiTm9kZUNsYXNzXCJdID0gNF0gPSBcIk5vZGVDbGFzc1wiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJCcm93c2VOYW1lXCJdID0gOF0gPSBcIkJyb3dzZU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiRGlzcGxheU5hbWVcIl0gPSAxNl0gPSBcIkRpc3BsYXlOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlR5cGVEZWZpbml0aW9uXCJdID0gMzJdID0gXCJUeXBlRGVmaW5pdGlvblwiO1xuICAgIH0pKFJlc3VsdE1hc2sgfHwgKFJlc3VsdE1hc2sgPSB7fSkpO1xuICAgIC8vICBjb25zdCBxID0gUmVmZXJlbmNlVHlwZUlkcy5Pcmdhbml6ZXM7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZU5vZGVJZChub2RlSWRMaWtlKSB7XG4gICAgICAgIHN3aXRjaCAobm9kZUlkTGlrZSkge1xuICAgICAgICAgICAgY2FzZSBcIk9yZ2FuaXplc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBPcmdhbml6ZXNSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzUHJvcGVydHlcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzUHJvcGVydHlSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ29tcG9uZW50XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NvbXBvbmVudFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDaGlsZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDaGlsZFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNTdWJ0eXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1N1YnR5cGVSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzVHlwZURlZmluaXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBnZXRJY29uID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHJlZmVyZW5jZS5ub2RlQ2xhc3MpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gT3JnYW5pemVzUmVmTm9kZUlkKSA7XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS50eXBlRGVmaW5pdGlvbiA9PT0gRm9sZGVyVHlwZSB8fCByZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBcImk9NjFcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWZvbGRlclwiLCBjb2xvcjogXCJyZ2JhKDYxLCA2MCwgNCwgMC41MjUpXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiU2VhR3JlZW5cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlXCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc0NvbXBvbmVudFJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIlN0ZWVsQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc1Byb3BlcnR5UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiRG9kZ2VyQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcIk1ldGhvZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtY29nXCIsIGNvbG9yOiBcIlNhbmR5QnJvd25cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXNsaWRlcnNcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiRGF0YVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXRleHQtd2lkdGhcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgdGVtcGxhdGUpID0+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+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vZXh0cmFjdEV2ZW50VHlwZXNgO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyBldmVudHM6IG51bGwgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIGNvbnN0IGV2ZW50cyA9IHJlc3BvbnNlLmV2ZW50cztcbiAgICAgICAgcmV0dXJuIHsgZXZlbnRzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCBnZXRFbmRQb2ludEF0dHJpYnV0ZXMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgcmVkTm9kZSA9IFJFRC5ub2Rlcy5ub2RlKGVuZHBvaW50SWQpO1xuICAgICAgICBpZiAoIXJlZE5vZGUpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAvLyBjb25zdCBjcmVkZW50aWFscyA9IFJFRC4oZW5kcG9pbnRJZCk7XG4gICAgICAgIC8vIHdlIG5lZWQgdG8gc2FuaXRpemUgYW5kIGV4dHJhY3QgdGhlIGVuZHBvaW50IGF0dHJpYnV0ZXMgb25seSAoIG5vdCB0aGUgbm9kZS1yZWQgc3R1ZmYpXG4gICAgICAgIGNvbnN0IHsgZW5kcG9pbnQsIHNlY3VyaXR5TW9kZSwgc2VjdXJpdHlQb2xpY3ksIHVzZXJJZGVudGl0eVR5cGUsIGNyZWRlbnRpYWxzIH0gPSByZWROb2RlO1xuICAgICAgICBjb25zdCByZXRWYWx1ZSA9IHtcbiAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgY3JlZGVudGlhbHMsXG4gICAgICAgIH07XG4gICAgICAgIC8vIHh4IGNvbnNvbGUubG9nKFwieHh4XCIsIHJldFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHJldFZhbHVlO1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50TnIgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgaWYgKCFlbmRwb2ludE5yKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogZW5kcG9pbnRJZCxcbiAgICAgICAgICAgIC8vIGVuZHBvaW50OiBlbmRwb2ludE5yLmVuZHBvaW50LFxuICAgICAgICAgICAgLy8gc2VjdXJpdHlNb2RlOiBlbmRwb2ludE5yLnNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIC8vIHNlY3VyaXR5UG9saWN5OiBlbmRwb2ludE5yLnNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIHVzZXJJZGVudGl0eVR5cGU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIC8vIGNyZWRlbnRpYWw6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gdXNlck5hbWU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyTmFtZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC8vIHBhc3N3b3JkOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIuY3JlZGVudGlhbHMucGFzc3dvcmQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyB1c2VyQ2VydGlmaWNhdGU6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlckNlcnRpZmljYXRlLFxuICAgICAgICAgICAgLy8gdXNlclByaXZhdGVrZXk6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlclByaXZhdGVrZXksXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1DbGllbnQyLU1vbml0b3JFdmVudFwiLCB7XG4gICAgICAgIGNhdGVnb3J5OiBcIm9wY3VhXCIsXG4gICAgICAgIGNvbG9yOiBcIiNDMERFRURcIixcbiAgICAgICAgYWxpZ246IFwicmlnaHRcIixcbiAgICAgICAgaWNvbjogXCJvcGN1YWxvZ29iaWcucG5nXCIsXG4gICAgICAgIHBhbGV0dGVMYWJlbDogXCJtb25pdG9yIGV2ZW50c1wiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgaW5wdXRzOiB7IHZhbHVlOiAxIH0sXG4gICAgICAgICAgICBvdXRwdXQ6IHsgdmFsdWU6IDQgfSxcbiAgICAgICAgICAgIG5hbWU6IHsgdmFsdWU6IFwiXCIgfSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSwgdHlwZTogXCJPcGNVYS1FbmRwb2ludDJcIiB9LFxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiXCIsXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgdmFsaWRhdGU6ICh2YWwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbCA9PT0gXCJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdGFydEltbWVkaWF0ZWx5OiB7IHZhbHVlOiB0cnVlLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgLy8gd2UgdXNlIGEgZGlmZmVyZW50IHdpZGdldCBmb3IgZWRpdGluZyB0aGUgbm9kZUlkLCBiZWNhdXNlIHRoZSBiZWhhdmlvclxuICAgICAgICAgICAgLy8gaXMgc3BlY2lmaWMgdG8gbW9uaXRvciwgaG93ZXZlciBwcm9wZXJ0eSB3aWxsIGJlIHN0b3JlZCBpbiBub2RlSWRcbiAgICAgICAgICAgIG5vZGVJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IGZhbHNlLCB2YWxpZGF0ZTogKCkgPT4gdHJ1ZSB9LFxuICAgICAgICAgICAgc2FtcGxpbmdJbnRlcnZhbDogeyB2YWx1ZTogMTAwMCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIGRpc2NhcmRPbGRlc3Q6IHsgdmFsdWU6IHRydWUsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBxdWV1ZVNpemU6IHsgdmFsdWU6IDEwLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgc2VsZWN0Q2xhdXNlczogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHdoZXJlQ2xhdXNlOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gaW5wdXRzOixcbiAgICAgICAgb3V0cHV0czogMiwgLy8gMiBvdXRwdXQsIHNlY29uZCBmb3IgcmF3IG5vZGUtb3BjdWEgZGlhZ25vc3RpY3Mgb3IgbW9yZSBjb21wbGV0ZSBtZXNzYWdlXG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCBcIk9QQ1VBIE1vbml0b3JcIjtcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWxTdHlsZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgPyBcIm5vZGVfbGFiZWxfaXRhbGljXCIgOiBcIlwiO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0KCk7XG4gICAgICAgICAgICBkZWNsYXJlRXZlbnRGaWVsZFNlbGVjdG9yV2lkZ2V0KCk7XG4gICAgICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uU2VsZWN0b3IoUkVELCB0aGlzKTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgQWN0aW9uIE1vbml0b3IgQ29tbW9uXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gLS0gaW5zdGFsbCBzdWJzY3JpcHRpb24gc2VsZWN0aW9uXG4gICAgICAgICAgICAkKFwibm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGVja2VkID0gJChcIiNub2RlLWlucHV0LXN0YXJ0SW1tZWRpYXRlbHlcIikucHJvcChcImNoZWNrZWRcIik7XG4gICAgICAgICAgICAgICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LWlucHV0c1wiKS52YWwoMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtaW5wdXRzXCIpLnZhbCgxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgQWN0aW9uIE1vbml0b3JcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICBjb25zdCAkbm9kZUlkID0gJChcIiNub2RlLWlucHV0LW5vZGVJZFwiKTtcbiAgICAgICAgICAgICRub2RlSWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IGZpbHRlcihub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgaXNTZWxlY3RhYmxlKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiT2JqZWN0XCIgLyogdG8gZG8gfHwgbm9kZURlc2MuZXZlbnROb3RpZmllciA9PT0gMSAqLztcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgICAgIC8vIC0tLS0tLSBpbnN0YWxsIGV2ZW50IGZpZWxkIHNlbGVjdG9yXG4gICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtd2hlcmVDbGF1c2VcIik7XG4gICAgICAgICAgICBjb25zdCAkc2VsZWN0Q2xhdXNlcyA9ICQoXCIjbm9kZS1pbnB1dC1zZWxlY3RDbGF1c2VzXCIpO1xuICAgICAgICAgICAgJHNlbGVjdENsYXVzZXMuZXZlbnRGaWVsZFNlbGVjdG9yKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSkpO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnRJbW1lZGlhdGVseSA9ICQoXCIjbm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLnByb3AoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgaWYgKHN0YXJ0SW1tZWRpYXRlbHkpIHtcbiAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS52YWwoc3RhcnRJbW1lZGlhdGVseSA/IDAgOiAxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0cyA9IHN0YXJ0SW1tZWRpYXRlbHkgPyAwIDogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLnZhbCgxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0cyA9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
7
+ function _0x5bf9(){const _0x259940=['trigger','<option/>','monitor\x20events','next','nodeBrowser','reference','parentElement','1686615gYwxGe','animate','currentParent','#node-input-inputs','position','#node-input-nodeId','no-expandable','<span\x20class=\x22cancel-button\x22>✖</span>','height','fa-list-alt','DarkOrange','HasChild','/browse','typeDefinition','toggle','loading','$info','show','apply','sterfive.nodeBrowser','TypeDefinition','#node-input-whereClause','browseName','707556EKvBiC','Organizes','ns=0;i=45','parentNode','removeClass','input-group','</li>','log','text','<i\x20class=\x22fa\x20','IsForward','grey','sterfive.eventFieldSelector','fa-object-group','#node-input-subscription','placeholder','change','nodeId','$inputGroup','endpoint','fetching\x20failed\x20with\x20error','_setInputValue','left','function','stringify','ns=0;i=46','Inverse','nodes','clicked\x20on\x20','options','CadetBlue','OPCUA\x20Monitor','reset','subscriptions','fa-folder','events','already\x20fetched','Both','already\x20loading','View','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','<ul\x20class=\x22sterfive-tree\x22></ul>','#C0DEED','namespaceIndex','click','appendTo','focus\x20click','$toggleTreeBtn','err',';\x22></i>','ns=0;i=35','push','referenceTypeId','970sICceF','<li>','#node-input-selectClauses','Unspecified','BrowseName','.spinner','json','isTypeRef','_populate','sort','expandable\x20expanded','7OidKlv','/opcua-endpoint2','DisplayName','.tree-text:first','sterfive-dropdown','1372psNJOp','replaceChild','$combo','children','statusCode','HasComponent','4314HoRGWX','3515272Demtat','<div\x20class=\x22floating-buttons\x22></div>','node-input-startImmediately','assign','each','application/json','Method','DataType','references','data-value','__parentNode','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','$verifyBtn','nodeIds','span.custom-checkbox','call','addClass','attr','failure','.sterfive-tree\x20li','VariableType','inputs','DodgerBlue','<div\x20class=\x22spinner\x22></div>','name','hide','expandable','browseResult','opcualogobig.png','fa-cog','value','offset','css','Invalid','toggleClass','_installChildren','</span><ul></ul></li>','pageY','><i\x20class=\x22fa\x20','nodeAddressString','baseUrl','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','data','fetched','remove','split','join','status','find','filter','Variable','$input','SuppressedError','Object','node_label_italic','<div\x20class=\x22info-text\x22></div>','pageX','isSelectable','prop','_updateValues',':visible','$tree','append','match','calc(100%\x20-\x20','66737ByvZOz','replaceWith','right','SeaGreen','HasSubtype','browsePath','#node-input-endpoint','sterfive-combo-box','fetched\x20:\x20','element','ns=0;i=85','width','val','$dropdown','top','closest','widget','displayName','_installTree','throw','selected','resolveParentNode','li[key=\x22','class','checked','ns=0;i=40','OpcUa-Client2-MonitorEvent','stopPropagation','toString','ObjectType','SandyBrown','opc.tcp://opcuademo.sterfive.com:26543','registerType','opcua',':first','3423321rwKMPQ','ReferenceType','sterfive-info','subTypes','54359RtAbYn','hasClass','/walk-backward','suppressed','statusText','has','SteelBlue','length','verify','empty','Forward','expanded','elements','px)',';\x22></i>\x20','<div/>','POST','<ul></ul>','nodeClass','then','NodeClass','endpointNode','node','ns=0;i=47','\x22\x20style=\x22color:','ns=0;i=34','8mukTwc','unchecked','#node-input-startImmediately'];_0x5bf9=function(){return _0x259940;};return _0x5bf9();}function _0x5ba4(_0x288e1d,_0x443006){const _0x5bf92b=_0x5bf9();return _0x5ba4=function(_0x5ba488,_0x25ba7c){_0x5ba488=_0x5ba488-0x168;let _0x4f4ad0=_0x5bf92b[_0x5ba488];return _0x4f4ad0;},_0x5ba4(_0x288e1d,_0x443006);}(function(_0x505174,_0x25a8f0){const _0x5c9a54=_0x5ba4,_0x559ad4=_0x505174();while(!![]){try{const _0x4f3a44=parseInt(_0x5c9a54(0x1a6))/0x1*(-parseInt(_0x5c9a54(0x1c0))/0x2)+-parseInt(_0x5c9a54(0x22c))/0x3*(parseInt(_0x5c9a54(0x226))/0x4)+parseInt(_0x5c9a54(0x1ca))/0x5+parseInt(_0x5c9a54(0x1e1))/0x6+parseInt(_0x5c9a54(0x221))/0x7*(-parseInt(_0x5c9a54(0x22d))/0x8)+parseInt(_0x5c9a54(0x1a2))/0x9+parseInt(_0x5c9a54(0x216))/0xa*(parseInt(_0x5c9a54(0x17f))/0xb);if(_0x4f3a44===_0x25a8f0)break;else _0x559ad4['push'](_0x559ad4['shift']());}catch(_0x213743){_0x559ad4['push'](_0x559ad4['shift']());}}}(_0x5bf9,0x42e76),(function(){'use strict';const _0x307837=_0x5ba4;function _0x4f82bd(_0x2edad6,_0x5a1393){const _0x15a5ed=_0x5ba4,_0x13b1a7=$('#node-input-endpoint'),_0x51b452=$(_0x15a5ed(0x1ef)),_0xca3c7c=()=>{const _0x5936bb=_0x15a5ed,_0x38c0b0=_0x2edad6[_0x5936bb(0x1fc)][_0x5936bb(0x1bc)](_0x13b1a7[_0x5936bb(0x18b)]());_0x51b452[_0x5936bb(0x1af)]();if(!_0x38c0b0||!_0x38c0b0[_0x5936bb(0x202)])return;if(_0x38c0b0['subscriptions'])for(const _0x38680b of _0x38c0b0['subscriptions']){const _0x410f4d=_0x38680b['name']||_0x38680b['id'];$(_0x5936bb(0x1c4),{'value':_0x38680b['id'],'label':_0x410f4d,'selected':_0x38680b['id']===_0x5a1393['subscription']})[_0x5936bb(0x1e9)](_0x410f4d)[_0x5936bb(0x20e)](_0x51b452);}};_0xca3c7c(),_0x51b452['on'](_0x15a5ed(0x20f),()=>{_0xca3c7c();}),_0x13b1a7['on'](_0x15a5ed(0x1f1),()=>{_0xca3c7c();});}function _0x2e80f1(_0x54b339,_0x5bc31e,_0x405108,_0x1241bd){function _0x268acb(_0x26889d){return _0x26889d instanceof _0x405108?_0x26889d:new _0x405108(function(_0x49f71f){_0x49f71f(_0x26889d);});}return new(_0x405108||(_0x405108=Promise))(function(_0x4856af,_0x4bd725){const _0x30c24d=_0x5ba4;function _0x138ca6(_0x51e06b){try{_0x351877(_0x1241bd['next'](_0x51e06b));}catch(_0x510aa2){_0x4bd725(_0x510aa2);}}function _0x28eeb1(_0x4b2743){const _0xfa5f23=_0x5ba4;try{_0x351877(_0x1241bd[_0xfa5f23(0x192)](_0x4b2743));}catch(_0x231e45){_0x4bd725(_0x231e45);}}function _0x351877(_0x43271a){const _0x5b58f5=_0x5ba4;_0x43271a['done']?_0x4856af(_0x43271a[_0x5b58f5(0x24b)]):_0x268acb(_0x43271a[_0x5b58f5(0x24b)])[_0x5b58f5(0x1b9)](_0x138ca6,_0x28eeb1);}_0x351877((_0x1241bd=_0x1241bd[_0x30c24d(0x1dc)](_0x54b339,_0x5bc31e||[]))[_0x30c24d(0x1c6)]());});}typeof SuppressedError===_0x307837(0x1f8)?SuppressedError:function(_0x55cc02,_0x55a0f7,_0x1961ee){const _0x59f01a=_0x307837;var _0x2cace1=new Error(_0x1961ee);return _0x2cace1[_0x59f01a(0x245)]=_0x59f01a(0x172),_0x2cace1['error']=_0x55cc02,_0x2cace1[_0x59f01a(0x1a9)]=_0x55a0f7,_0x2cace1;};const _0x524045=_0x307837(0x213),_0x577c01='ns=0;i=61',_0x197c96=_0x307837(0x1bd),_0x290296=_0x307837(0x1fa),_0x29678a=_0x307837(0x1bf),_0x30a2c1=_0x307837(0x1e3),_0x8d995b=_0x307837(0x198);var _0x1b3e70;(function(_0x9ae2d2){const _0x1d13ad=_0x307837;_0x9ae2d2[_0x9ae2d2[_0x1d13ad(0x1b0)]=0x0]=_0x1d13ad(0x1b0),_0x9ae2d2[_0x9ae2d2[_0x1d13ad(0x1fb)]=0x1]=_0x1d13ad(0x1fb),_0x9ae2d2[_0x9ae2d2[_0x1d13ad(0x206)]=0x2]=_0x1d13ad(0x206),_0x9ae2d2[_0x9ae2d2[_0x1d13ad(0x24e)]=0x3]=_0x1d13ad(0x24e);}(_0x1b3e70||(_0x1b3e70={})));var _0x4f2148;(function(_0x389988){const _0x3d26bc=_0x307837;_0x389988[_0x389988[_0x3d26bc(0x219)]=0x0]=_0x3d26bc(0x219),_0x389988[_0x389988[_0x3d26bc(0x173)]=0x1]='Object',_0x389988[_0x389988[_0x3d26bc(0x170)]=0x2]=_0x3d26bc(0x170),_0x389988[_0x389988[_0x3d26bc(0x233)]=0x4]=_0x3d26bc(0x233),_0x389988[_0x389988[_0x3d26bc(0x19c)]=0x8]='ObjectType',_0x389988[_0x389988[_0x3d26bc(0x241)]=0x10]=_0x3d26bc(0x241),_0x389988[_0x389988[_0x3d26bc(0x1a3)]=0x20]=_0x3d26bc(0x1a3),_0x389988[_0x389988[_0x3d26bc(0x234)]=0x40]=_0x3d26bc(0x234),_0x389988[_0x389988[_0x3d26bc(0x208)]=0x80]=_0x3d26bc(0x208);}(_0x4f2148||(_0x4f2148={})));var _0x302a27;(function(_0x3941ac){const _0x5a0d2a=_0x307837;_0x3941ac[_0x3941ac[_0x5a0d2a(0x173)]=0x1]=_0x5a0d2a(0x173),_0x3941ac[_0x3941ac['Variable']=0x2]=_0x5a0d2a(0x170),_0x3941ac[_0x3941ac[_0x5a0d2a(0x233)]=0x4]=_0x5a0d2a(0x233),_0x3941ac[_0x3941ac[_0x5a0d2a(0x19c)]=0x8]='ObjectType',_0x3941ac[_0x3941ac[_0x5a0d2a(0x241)]=0x10]='VariableType',_0x3941ac[_0x3941ac[_0x5a0d2a(0x1a3)]=0x20]='ReferenceType',_0x3941ac[_0x3941ac[_0x5a0d2a(0x234)]=0x40]=_0x5a0d2a(0x234),_0x3941ac[_0x3941ac[_0x5a0d2a(0x208)]=0x80]=_0x5a0d2a(0x208);}(_0x302a27||(_0x302a27={})));var _0x15eeff;(function(_0x542f38){const _0x4bc5f7=_0x307837;_0x542f38[_0x542f38[_0x4bc5f7(0x1a3)]=0x1]=_0x4bc5f7(0x1a3),_0x542f38[_0x542f38[_0x4bc5f7(0x1eb)]=0x2]='IsForward',_0x542f38[_0x542f38[_0x4bc5f7(0x1ba)]=0x4]=_0x4bc5f7(0x1ba),_0x542f38[_0x542f38[_0x4bc5f7(0x21a)]=0x8]=_0x4bc5f7(0x21a),_0x542f38[_0x542f38[_0x4bc5f7(0x223)]=0x10]=_0x4bc5f7(0x223),_0x542f38[_0x542f38['TypeDefinition']=0x20]=_0x4bc5f7(0x1de);}(_0x15eeff||(_0x15eeff={})));function _0x20f125(_0x341ec7){const _0x15e43c=_0x307837;switch(_0x341ec7){case _0x15e43c(0x1e2):return _0x524045;case'HasProperty':return _0x290296;case _0x15e43c(0x22b):return _0x197c96;case'HasChild':return _0x29678a;case _0x15e43c(0x183):return _0x30a2c1;case'HasTypeDefinition':return _0x8d995b;}}const _0x12e418=_0x3a6faa=>{const _0x5a5948=_0x307837;switch(_0x3a6faa[_0x5a5948(0x1b8)]){case _0x5a5948(0x173):if(_0x3a6faa[_0x5a5948(0x215)]===_0x524045);if(_0x3a6faa[_0x5a5948(0x1d7)]===_0x577c01||_0x3a6faa['referenceTypeId']==='i=61')return{'icon':_0x5a5948(0x203),'color':'rgba(61,\x2060,\x204,\x200.525)'};return{'icon':_0x5a5948(0x1ee),'color':_0x5a5948(0x182)};case _0x5a5948(0x170):if(_0x3a6faa[_0x5a5948(0x215)]===_0x197c96)return{'icon':_0x5a5948(0x1d3),'color':_0x5a5948(0x1ac)};else return _0x3a6faa[_0x5a5948(0x215)]===_0x290296?{'icon':'fa-list-alt','color':_0x5a5948(0x243)}:{'icon':_0x5a5948(0x1d3),'color':'CadetBlue'};case'Method':return{'icon':_0x5a5948(0x24a),'color':_0x5a5948(0x19d)};case _0x5a5948(0x19c):return{'icon':_0x5a5948(0x1ee),'color':_0x5a5948(0x1d4)};case _0x5a5948(0x241):return{'icon':'fa-sliders','color':_0x5a5948(0x1d4)};case'DataType':return{'icon':'fa-text-width','color':_0x5a5948(0x1ff)};}return{'icon':'fa-question','color':_0x5a5948(0x1ec)};},_0x3c08e3=({endpointNode:_0x22253f,endpoint:_0xeeb984,baseUrl:_0x5a9707},_0x27ad29,_0x20bf74)=>_0x2e80f1(void 0x0,void 0x0,void 0x0,function*(){const _0x12f07d=_0x307837,_0x59a7cd=_0x5a9707+_0x12f07d(0x222),_0x1832ff=_0x59a7cd+_0x12f07d(0x1d6),_0x42b7a8=Object[_0x12f07d(0x230)](Object['assign']({},_0x20bf74),{'nodeId':_0x27ad29,'resultMask':0x3f}),_0x25516c=yield fetch(_0x1832ff,{'method':'POST','body':JSON[_0x12f07d(0x1f9)]({'endpointNode':_0x22253f,'endpoint':_0xeeb984,'browseDescription':_0x42b7a8}),'headers':{'Content-Type':_0x12f07d(0x232)}});if(_0x25516c[_0x12f07d(0x16d)]!==0xc8)return console[_0x12f07d(0x1e8)](_0x12f07d(0x1f5),_0x25516c[_0x12f07d(0x16d)],_0x25516c[_0x12f07d(0x1aa)]),{'references':[]};const _0x504190=yield _0x25516c[_0x12f07d(0x21c)](),_0x33b8bb=_0x504190[_0x12f07d(0x248)][_0x12f07d(0x235)]||[];return{'references':_0x33b8bb};}),_0x3a636d={'referenceTypeId':_0x20f125(_0x307837(0x1d5)),'includeSubtypes':!![],'browseDirection':_0x1b3e70['Forward'],'nodeClassMask':_0x4f2148[_0x307837(0x170)]|_0x4f2148['Object']|_0x4f2148[_0x307837(0x233)],'resultMask':0x3f},_0x4f4346={'referenceTypeId':_0x20f125(_0x307837(0x1e2)),'includeSubtypes':!![],'browseDirection':_0x1b3e70[_0x307837(0x1b0)],'nodeClassMask':_0x4f2148[_0x307837(0x170)]|_0x4f2148[_0x307837(0x173)]|_0x4f2148[_0x307837(0x233)],'resultMask':0x3f},_0x5e143e=({endpointNode:_0x711ae,endpoint:_0x179389,baseUrl:_0x4b2758},{nodeId:_0x2524b2,rootNodeId:_0x12e25e,isType:_0x16641c})=>_0x2e80f1(void 0x0,void 0x0,void 0x0,function*(){const _0x37de35=_0x307837,_0x1ab87c=_0x4b2758+_0x37de35(0x222),_0xa3df84=_0x1ab87c+_0x37de35(0x1a8),_0x1b245c=yield fetch(_0xa3df84,{'method':_0x37de35(0x1b6),'body':JSON[_0x37de35(0x1f9)]({'endpointNode':_0x711ae,'endpoint':_0x179389,'nodeId':_0x2524b2,'rootNodeId':_0x12e25e,'isType':_0x16641c}),'headers':{'Content-Type':_0x37de35(0x232)}});if(_0x1b245c[_0x37de35(0x16d)]!==0xc8)return null;const _0x1875a5=yield _0x1b245c[_0x37de35(0x21c)]();return _0x1875a5[_0x37de35(0x184)];}),_0xf075ce=({endpointNode:_0xf92619,endpoint:_0x5f049c,baseUrl:_0x530504},_0xa9d5f1,_0x1dd2ae)=>_0x2e80f1(void 0x0,void 0x0,void 0x0,function*(){const _0x5ead6b=_0x307837,_0x109d52=_0x530504+_0x5ead6b(0x222),_0x12eb29=_0x109d52+'/checkNodeId',_0x3853f9=_0xa9d5f1[_0x5ead6b(0x18b)](),_0x47b5c5=yield fetch(_0x12eb29,{'method':_0x5ead6b(0x1b6),'body':JSON['stringify']({'endpointNode':_0xf92619,'endpoint':_0x5f049c,'nodeId':_0x3853f9}),'headers':{'Content-Type':_0x5ead6b(0x232)}}),_0x93705b=(_0x2dec20,_0x3561d4)=>{const _0x471e07=_0x5ead6b;_0x1dd2ae[_0x471e07(0x1e9)](_0x2dec20)['addClass'](_0x471e07(0x1a4))[_0x471e07(0x23d)](_0x3561d4),_0x1dd2ae[_0x471e07(0x1db)](),setTimeout(()=>{const _0x120eaa=_0x471e07;_0x1dd2ae[_0x120eaa(0x1e5)](_0x3561d4),_0x1dd2ae['hide']();},0xbb8);},_0x1ee6d1=yield _0x47b5c5[_0x5ead6b(0x21c)]();_0x47b5c5[_0x5ead6b(0x16d)]!==0xc8?_0x93705b('!!failure!!'+_0x3853f9,_0x5ead6b(0x23f)):_0x1ee6d1[_0x5ead6b(0x22a)][_0x5ead6b(0x17d)](/Good/)?(_0xa9d5f1[_0x5ead6b(0x18b)](_0x1ee6d1[_0x5ead6b(0x254)]),_0xa9d5f1[_0x5ead6b(0x1c3)](_0x5ead6b(0x1f1)),_0x93705b('Good','ok')):(_0xa9d5f1[_0x5ead6b(0x18b)](''+_0x3853f9),_0x93705b(_0x1ee6d1[_0x5ead6b(0x22a)]+'\x20'+_0x47b5c5[_0x5ead6b(0x1aa)],_0x5ead6b(0x23f)));});function _0x1efe3f(_0xd3e06c,_0x6ba436){return _0x2e80f1(this,void 0x0,void 0x0,function*(){const _0x2e89ca=_0x5ba4,_0x5094d6=_0xd3e06c['data'](_0x2e89ca(0x24b)),_0x563fee=yield _0x3c08e3(_0x6ba436,_0x5094d6,_0x3a636d),_0x2fbf01=yield _0x3c08e3(_0x6ba436,_0x5094d6,_0x4f4346);return{'references':[..._0x563fee[_0x2e89ca(0x235)],..._0x2fbf01['references']]};});}const _0x51a35b={'referenceTypeId':_0x20f125('HasSubtype'),'includeSubtypes':!![],'browseDirection':_0x1b3e70['Forward'],'nodeClassMask':_0x4f2148['ReferenceType']|_0x4f2148[_0x307837(0x19c)]|_0x4f2148[_0x307837(0x234)]|_0x4f2148[_0x307837(0x241)],'resultMask':0x3f};function _0x151fa6(_0xbd0fb,_0x29c61f){return _0x2e80f1(this,void 0x0,void 0x0,function*(){const _0x40d252=_0x5ba4,_0xfa6b53=_0xbd0fb[_0x40d252(0x168)](_0x40d252(0x24b)),_0x3d510a=yield _0x3c08e3(_0x29c61f,_0xfa6b53,_0x51a35b);return _0x3d510a;});}const _0x568ab1=_0x5ec1d9=>{const _0x2c429c=_0x307837;var _0x4c171e,_0x294fe1,_0x196904,_0x5554e4;if(!_0x5ec1d9||!_0x5ec1d9[_0x2c429c(0x1f2)]){const _0x423780=$(_0x2c429c(0x238));return _0x423780;}const _0x5c6b0c=_0x5ec1d9['nodeId']['toString'](),_0x111e34=((_0x4c171e=_0x5ec1d9[_0x2c429c(0x190)])===null||_0x4c171e===void 0x0?void 0x0:_0x4c171e[_0x2c429c(0x1e9)])||((_0x294fe1=_0x5ec1d9[_0x2c429c(0x1e0)])===null||_0x294fe1===void 0x0?void 0x0:_0x294fe1[_0x2c429c(0x245)])||_0x5ec1d9[_0x2c429c(0x1f2)]['toString'](),{icon:_0xd7183a,color:_0x3d2a14}=_0x12e418(_0x5ec1d9),_0x2ab396='('+_0x5ec1d9[_0x2c429c(0x1f2)]['toString']()+')\x20'+(((_0x196904=_0x5ec1d9[_0x2c429c(0x1e0)])===null||_0x196904===void 0x0?void 0x0:_0x196904[_0x2c429c(0x245)])||((_0x5554e4=_0x5ec1d9[_0x2c429c(0x190)])===null||_0x5554e4===void 0x0?void 0x0:_0x5554e4[_0x2c429c(0x1e9)])||''),_0x5eec6c=$('<li\x20key=\x22'+_0x5ec1d9[_0x2c429c(0x1f2)][_0x2c429c(0x19b)]()+'\x22}><span\x20class=\x22tree-text\x22\x20title='+_0x2ab396+_0x2c429c(0x253)+_0xd7183a+_0x2c429c(0x1be)+_0x3d2a14+_0x2c429c(0x1b4)+_0x111e34+_0x2c429c(0x251));return _0x5eec6c[_0x2c429c(0x23d)](_0x2c429c(0x247)),_0x5eec6c[_0x2c429c(0x168)](_0x2c429c(0x24b),_0x5c6b0c),_0x5eec6c[_0x2c429c(0x168)]('reference',_0x5ec1d9),_0x5eec6c;},_0x16384c=(_0xfe8ef8,_0x114292)=>{const _0x4cfc0f=_0x307837;return _0x114292['find'](_0x4cfc0f(0x195)+_0xfe8ef8+'\x22]');},_0x43f238=(_0x5701a9,_0x36922e)=>{const _0x14cda1=_0x307837;_0x5701a9[_0x14cda1(0x17b)]['find']('li\x20>\x20.tree-text')[_0x14cda1(0x1e5)](_0x14cda1(0x193)),_0x36922e['find'](_0x14cda1(0x224))['addClass'](_0x14cda1(0x193));},_0x3b704b=(_0x39f3a8,_0x25a9cd,_0x337cf1)=>_0x2e80f1(void 0x0,void 0x0,void 0x0,function*(){const _0x34265d=_0x307837;let _0x41d183=_0x337cf1[_0x34265d(0x229)](_0x34265d(0x1a1));_0x25a9cd['relativePath'][_0x34265d(0x1b2)]||[];const _0x597953=_0x25a9cd[_0x34265d(0x23a)]||[];if(_0x597953['length']===0x0)return;for(const _0x442452 of _0x597953){_0x41d183[_0x34265d(0x1a7)](_0x34265d(0x247))&&(yield _0xb04759(_0x39f3a8,_0x41d183));const _0x4bb7d1=_0x16384c(_0x442452,_0x41d183);if(_0x4bb7d1[_0x34265d(0x1ad)]===0x0)return;_0x41d183=_0x4bb7d1;}_0x43f238(_0x39f3a8,_0x41d183),_0x248208(_0x39f3a8['$dropdown'],_0x41d183);});function _0x248208(_0x4d2328,_0x552aef){const _0x54a23a=_0x307837,_0xb5c249=_0x552aef[_0x54a23a(0x1ce)]()[_0x54a23a(0x18d)],_0x5405a7=_0x4d2328['scrollTop']();if(_0x5405a7==undefined)return;const _0x129959=_0x5405a7+_0xb5c249-_0x4d2328[_0x54a23a(0x1d2)]()/0x2+_0x552aef[_0x54a23a(0x1d2)]()/0x2;_0x4d2328[_0x54a23a(0x1cb)]({'scrollTop':_0x129959},0x1f4);}const _0x5d8a75=(_0x2888e8,_0x23228f)=>_0x2e80f1(void 0x0,void 0x0,void 0x0,function*(){const _0x587f9c=_0x307837,_0x46ebb5=_0x2888e8[_0x587f9c(0x171)]['val'](),_0x9fdb6f={'nodeId':_0x46ebb5,'rootNodeId':_0x23228f['nodeId'],'isType':_0x2888e8[_0x587f9c(0x1fe)][_0x587f9c(0x21d)]||![]},_0x4c6a57=_0x17a372(_0x2888e8),_0x3884c7=yield _0x5e143e(_0x4c6a57,_0x9fdb6f);if(!_0x3884c7)return;yield _0x3b704b(_0x2888e8,_0x3884c7,_0x2888e8[_0x587f9c(0x17b)]);});function _0x20542c(_0x17d611,_0x4f149d,_0x376b97,_0x24272c){return _0x2e80f1(this,void 0x0,void 0x0,function*(){const _0x4b8ee9=_0x5ba4;if(_0x4f149d[_0x4b8ee9(0x1a7)]('fetched')){console[_0x4b8ee9(0x1e8)](_0x4b8ee9(0x205));return;}if(_0x4f149d[_0x4b8ee9(0x1a7)](_0x4b8ee9(0x1d9))){console['log'](_0x4b8ee9(0x207));return;}_0x4f149d[_0x4b8ee9(0x23d)](_0x4b8ee9(0x1d9)),_0x4f149d['append'](_0x4b8ee9(0x244));try{_0x4f149d['children']('ul')['empty']();const {references:_0xfcafc5}=yield _0x376b97(_0x4f149d,_0x24272c);for(const _0x5ac598 of _0xfcafc5){if(_0x17d611[_0x4b8ee9(0x1fe)][_0x4b8ee9(0x16f)]&&!_0x17d611[_0x4b8ee9(0x1fe)][_0x4b8ee9(0x16f)](_0x5ac598))continue;const _0x49f9aa=_0x568ab1(_0x5ac598);_0x4f149d[_0x4b8ee9(0x229)]('ul')[_0x4b8ee9(0x17c)](_0x49f9aa);}_0x4f149d[_0x4b8ee9(0x23d)]('fetched');}catch(_0x159456){_0x4f149d[_0x4b8ee9(0x229)]('ul')[_0x4b8ee9(0x17c)]('<li>error\x20'+_0x159456['message']+_0x4b8ee9(0x1e7)),console[_0x4b8ee9(0x1e8)](_0x4b8ee9(0x211),_0x159456);}_0x4f149d[_0x4b8ee9(0x16e)](_0x4b8ee9(0x21b))[_0x4b8ee9(0x16a)](),_0x4f149d[_0x4b8ee9(0x1e5)]('loading');});}function _0x17a372(_0x46b2b6){const _0xff3a85=_0x307837,_0x146f8b={'baseUrl':_0x46b2b6[_0xff3a85(0x1fe)][_0xff3a85(0x255)],'endpointNode':typeof _0x46b2b6[_0xff3a85(0x1fe)][_0xff3a85(0x1bb)]===_0xff3a85(0x1f8)?_0x46b2b6['options']['endpointNode']():_0x46b2b6[_0xff3a85(0x1fe)][_0xff3a85(0x1bb)],'endpoint':typeof _0x46b2b6[_0xff3a85(0x1fe)][_0xff3a85(0x1f4)]===_0xff3a85(0x1f8)?_0x46b2b6[_0xff3a85(0x1fe)][_0xff3a85(0x1f4)]():_0x46b2b6[_0xff3a85(0x1fe)][_0xff3a85(0x1f4)]};return _0x146f8b;}function _0xb04759(_0x3bf7c8,_0x29ffcc){return _0x2e80f1(this,void 0x0,void 0x0,function*(){const _0x23ebd5=_0x5ba4;if(_0x29ffcc[_0x23ebd5(0x1a7)](_0x23ebd5(0x169))){_0x29ffcc['removeClass']('expandable')[_0x23ebd5(0x23d)]('expanded'),_0x29ffcc[_0x23ebd5(0x229)]('ul')['toggle']();return;}const _0x34205d=_0x17a372(_0x3bf7c8),_0x5e0cdf=!_0x3bf7c8[_0x23ebd5(0x1fe)][_0x23ebd5(0x21d)]?_0x1efe3f:_0x151fa6;try{yield _0x20542c(_0x3bf7c8,_0x29ffcc,_0x5e0cdf,_0x34205d),_0x29ffcc['removeClass'](_0x23ebd5(0x247))[_0x23ebd5(0x23d)](_0x23ebd5(0x1b1));}catch(_0x2bbc91){_0x29ffcc[_0x23ebd5(0x1e5)](_0x23ebd5(0x247))[_0x23ebd5(0x23d)]('expanded'),console[_0x23ebd5(0x1e8)]('error',_0x2bbc91);}});}const _0xd77f70=()=>{const _0x66988e=_0x307837;$['widget'](_0x66988e(0x1dd),{'options':{'endpointNode':()=>({'endpoint':_0x66988e(0x19e)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':'Objects'},'nodeClass':_0x66988e(0x173),'nodeId':_0x66988e(0x189),'displayName':{'text':'Objects'},'typeDefinition':_0x577c01}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x2e80f1(this,void 0x0,void 0x0,function*(){const _0x3284d4=_0x5ba4,_0x11c652=this;if(!_0x11c652[_0x3284d4(0x237)]){const _0x52610f=typeof _0x11c652[_0x3284d4(0x1fe)][_0x3284d4(0x1e4)]===_0x3284d4(0x1f8)?_0x11c652['options']['parentNode'][_0x3284d4(0x23c)](_0x11c652):_0x11c652['options'][_0x3284d4(0x1e4)];if(_0x52610f instanceof Promise){const _0x60bb74=yield _0x52610f;_0x11c652['__parentNode']=_0x60bb74;}else _0x11c652[_0x3284d4(0x237)]=_0x52610f;}return _0x11c652[_0x3284d4(0x237)];});},'reset'(){return _0x2e80f1(this,void 0x0,void 0x0,function*(){const _0x574911=_0x5ba4,_0x320331=this,_0x37bf0f=_0x320331;_0x37bf0f[_0x574911(0x237)]=undefined,_0x320331[_0x574911(0x17b)][_0x574911(0x1af)]();const _0x796e89=yield this[_0x574911(0x194)](),_0x3216bb=_0x568ab1(_0x796e89);_0x320331[_0x574911(0x17b)]['append'](_0x3216bb),_0x320331[_0x574911(0x1cc)]=_0x796e89;});},'verify'(){const _0x5180cb=_0x66988e,_0x17dae1=this,_0x3b20e4=_0x17a372(_0x17dae1);_0xf075ce(_0x3b20e4,_0x17dae1[_0x5180cb(0x171)],_0x17dae1[_0x5180cb(0x1da)]);},'_create'(){const _0x49eb80=_0x66988e,_0x455a0f=this;_0x455a0f[_0x49eb80(0x171)]=this[_0x49eb80(0x188)],_0x455a0f[_0x49eb80(0x228)]=$(_0x49eb80(0x1b5)),_0x455a0f['$combo'][_0x49eb80(0x23d)](_0x49eb80(0x186)),this['element'][_0x49eb80(0x180)](_0x455a0f[_0x49eb80(0x228)]),_0x455a0f[_0x49eb80(0x1f3)]=$(_0x49eb80(0x1b5))['addClass'](_0x49eb80(0x1e6)),_0x455a0f[_0x49eb80(0x228)][_0x49eb80(0x17c)](_0x455a0f[_0x49eb80(0x1f3)]),_0x455a0f[_0x49eb80(0x1f3)][_0x49eb80(0x17c)](_0x455a0f[_0x49eb80(0x171)]),_0x455a0f[_0x49eb80(0x210)]=$('<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>'),_0x455a0f[_0x49eb80(0x1f3)][_0x49eb80(0x17c)](_0x455a0f[_0x49eb80(0x210)]),_0x455a0f[_0x49eb80(0x210)]['on'](_0x49eb80(0x20d),function(){var _0x4aec25;return _0x2e80f1(this,void 0x0,void 0x0,function*(){const _0x2bceb2=_0x5ba4;let _0x331060=![],_0x391532;!_0x455a0f['$dropdown']['is'](_0x2bceb2(0x17a))&&(_0x455a0f[_0x2bceb2(0x1da)][_0x2bceb2(0x246)](),_0x391532=yield _0x455a0f[_0x2bceb2(0x194)](),(_0x391532!==_0x455a0f[_0x2bceb2(0x1cc)]||((_0x4aec25=_0x455a0f['currentParent'])===null||_0x4aec25===void 0x0?void 0x0:_0x4aec25[_0x2bceb2(0x1f2)])!==_0x391532[_0x2bceb2(0x1f2)])&&(yield _0x455a0f[_0x2bceb2(0x201)]()),_0x331060=!![]),_0x455a0f[_0x2bceb2(0x18c)]['toggle'](),_0x331060&&(yield _0x5d8a75(_0x455a0f,_0x391532));});}),_0x455a0f[_0x49eb80(0x239)]=$('<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>'),_0x455a0f[_0x49eb80(0x1f3)][_0x49eb80(0x17c)](_0x455a0f[_0x49eb80(0x239)]),_0x455a0f['$verifyBtn']['on']('click',()=>{const _0x37ad7c=_0x49eb80;this[_0x37ad7c(0x1ae)]();});!_0x455a0f[_0x49eb80(0x171)][_0x49eb80(0x23e)](_0x49eb80(0x1f0))&&_0x455a0f[_0x49eb80(0x171)][_0x49eb80(0x23e)](_0x49eb80(0x1f0),_0x49eb80(0x256));_0x455a0f[_0x49eb80(0x1da)]=$('<div\x20class=\x22info-text\x22></div>'),_0x455a0f[_0x49eb80(0x1da)][_0x49eb80(0x246)](),_0x455a0f[_0x49eb80(0x18c)]=$(_0x49eb80(0x1b5))[_0x49eb80(0x23d)]('sterfive-dropdown')[_0x49eb80(0x246)](),_0x455a0f[_0x49eb80(0x228)][_0x49eb80(0x17c)](_0x455a0f[_0x49eb80(0x1da)]),_0x455a0f[_0x49eb80(0x228)]['append'](_0x455a0f[_0x49eb80(0x18c)]),_0x455a0f[_0x49eb80(0x17b)]=$(_0x49eb80(0x20a))[_0x49eb80(0x20e)](_0x455a0f['$dropdown']),this['reset']();const _0x1e83e3=(_0x1f05a9,_0x48a3bb)=>{const _0x4934ca=_0x49eb80,_0x39ddf4=0x14,_0x4707b8=0x14,_0x5b0f3e=_0x1f05a9['offset'](),_0x4aca16=_0x48a3bb;if(_0x4aca16['pageX']>=_0x5b0f3e['left']&&_0x4aca16[_0x4934ca(0x176)]<=_0x5b0f3e[_0x4934ca(0x1f7)]+_0x39ddf4&&_0x4aca16['pageY']>=_0x5b0f3e['top']&&_0x4aca16[_0x4934ca(0x252)]<=_0x5b0f3e['top']+_0x4707b8)return!![];return![];},_0xd5b5db=_0x36ede3=>_0x2e80f1(this,void 0x0,void 0x0,function*(){const _0xf926f2=_0x49eb80;if(_0x36ede3['hasClass'](_0xf926f2(0x247)))_0xb04759(_0x455a0f,_0x36ede3);else{if(_0x36ede3[_0xf926f2(0x1a7)]('expanded'))_0x36ede3[_0xf926f2(0x229)]('ul')['toggle'](),_0x36ede3[_0xf926f2(0x24f)](_0xf926f2(0x220));else{if(_0x36ede3[_0xf926f2(0x229)]('ul')[_0xf926f2(0x229)]()[_0xf926f2(0x1ad)]>0x0)_0x36ede3[_0xf926f2(0x229)]('ul')[_0xf926f2(0x1d8)](),_0x36ede3[_0xf926f2(0x24f)](_0xf926f2(0x220));else;}}});_0x455a0f[_0x49eb80(0x17b)]['on']('dblclick','li',function(_0x226717){const _0x15df9d=_0x49eb80;var _0x4814a6,_0x34595e;_0x226717[_0x15df9d(0x19a)]();let _0x3cbddd=$(this);if(_0x1e83e3(_0x3cbddd,_0x226717))_0xd5b5db(_0x3cbddd);else{const _0x5a1951=_0x3cbddd[_0x15df9d(0x168)](_0x15df9d(0x24b)),_0x3a0de3=_0x3cbddd[_0x15df9d(0x168)](_0x15df9d(0x1c8));if(_0x455a0f[_0x15df9d(0x1fe)][_0x15df9d(0x177)]&&!_0x455a0f[_0x15df9d(0x1fe)][_0x15df9d(0x177)](_0x3a0de3))return;_0x455a0f[_0x15df9d(0x171)][_0x15df9d(0x168)](_0x15df9d(0x1c8),_0x3a0de3);const _0x384472=((_0x4814a6=_0x3a0de3['displayName'])===null||_0x4814a6===void 0x0?void 0x0:_0x4814a6[_0x15df9d(0x1e9)])||((_0x34595e=_0x3a0de3[_0x15df9d(0x1e0)])===null||_0x34595e===void 0x0?void 0x0:_0x34595e[_0x15df9d(0x245)])||_0x3a0de3[_0x15df9d(0x1f2)]['toString'](),_0x17b4fc='['+_0x384472+']('+_0x5a1951+')';_0x455a0f[_0x15df9d(0x171)][_0x15df9d(0x18b)](_0x17b4fc),_0x455a0f[_0x15df9d(0x171)][_0x15df9d(0x1c3)](_0x15df9d(0x1f1)),_0x455a0f[_0x15df9d(0x18c)]['hide']();}}),_0x455a0f[_0x49eb80(0x17b)]['on'](_0x49eb80(0x20d),'li',function(_0x4ba434){_0x4ba434['stopPropagation']();let _0x4f6f85=$(this);_0x1e83e3(_0x4f6f85,_0x4ba434)&&_0xd5b5db(_0x4f6f85),_0x43f238(_0x455a0f,_0x4f6f85);}),$(document)['on'](_0x49eb80(0x20d),function(_0x5e5034){const _0xb08316=_0x49eb80;!$(_0x5e5034['target'])[_0xb08316(0x18e)](_0x455a0f[_0xb08316(0x228)])['length']&&_0x455a0f['$dropdown'][_0xb08316(0x246)]();});}});},_0x47222c=_0x83f647=>{const _0x6615d=_0x307837;var _0x40901b,_0x55b5b0,_0x26c25b;if(!_0x83f647){const _0x4c047f=$(_0x6615d(0x238));return _0x4c047f;}const _0x318604=_0x83f647[_0x6615d(0x1f2)][_0x6615d(0x19b)]();let _0x201648=((_0x40901b=_0x83f647['displayName'])===null||_0x40901b===void 0x0?void 0x0:_0x40901b['text'])||((_0x55b5b0=_0x83f647['browseName'])===null||_0x55b5b0===void 0x0?void 0x0:_0x55b5b0[_0x6615d(0x245)])||_0x83f647[_0x6615d(0x1f2)][_0x6615d(0x19b)](),_0x4150b2=(_0x26c25b=_0x83f647[_0x6615d(0x1e0)])===null||_0x26c25b===void 0x0?void 0x0:_0x26c25b[_0x6615d(0x20c)];_0x201648+=_0x4150b2!==undefined&&_0x83f647['nodeClass'][_0x6615d(0x17d)](/Type/)?'\x20(ns='+_0x4150b2+')':'';const {icon:_0x4fd877,color:_0x5d4e94}=_0x12e418(_0x83f647),_0x388de5=$(_0x6615d(0x217));if(_0x83f647['nodeClass']===_0x6615d(0x170)){const _0x4dcca6=$('<span\x20class=\x22custom-checkbox\x20unchecked\x22></span>');_0x388de5[_0x6615d(0x17c)](_0x4dcca6),_0x4dcca6['on']('click',function(){const _0x5df917=_0x6615d;_0x4dcca6[_0x5df917(0x1a7)](_0x5df917(0x1c1))?_0x4dcca6[_0x5df917(0x1e5)](_0x5df917(0x1c1))['addClass'](_0x5df917(0x197)):_0x4dcca6[_0x5df917(0x1e5)](_0x5df917(0x197))[_0x5df917(0x23d)](_0x5df917(0x1c1));});}return _0x388de5[_0x6615d(0x17c)]($(_0x6615d(0x1ea)+_0x4fd877+'\x22\x20style=\x22color:'+_0x5d4e94+_0x6615d(0x212)+_0x201648+_0x6615d(0x1b7))),_0x388de5[_0x6615d(0x23d)]('expandable'),_0x388de5[_0x6615d(0x168)](_0x6615d(0x24b),_0x318604),_0x388de5[_0x6615d(0x168)](_0x6615d(0x1c8),_0x83f647),_0x388de5;},_0x7abaaa=()=>{const _0x4225e2=_0x307837;$[_0x4225e2(0x18f)](_0x4225e2(0x1ed),{'options':{'endpointNode':()=>({'endpoint':_0x4225e2(0x19e)}),'endpoint':()=>undefined,'baseUrl':''},'_populate'(){var _0x421f7c;return _0x2e80f1(this,void 0x0,void 0x0,function*(){const _0x315e11=_0x5ba4,_0x16279c=this,_0x3ee876=new Set((_0x421f7c=_0x16279c[_0x315e11(0x171)][_0x315e11(0x18b)]())===null||_0x421f7c===void 0x0?void 0x0:_0x421f7c[_0x315e11(0x19b)]()[_0x315e11(0x16b)](';')),_0x9f8c04={'baseUrl':_0x16279c[_0x315e11(0x1fe)]['baseUrl'],'endpointNode':typeof _0x16279c['options'][_0x315e11(0x1bb)]===_0x315e11(0x1f8)?_0x16279c['options'][_0x315e11(0x1bb)]():_0x16279c['options'][_0x315e11(0x1bb)],'endpoint':typeof _0x16279c['options'][_0x315e11(0x1f4)]===_0x315e11(0x1f8)?_0x16279c['options'][_0x315e11(0x1f4)]():_0x16279c[_0x315e11(0x1fe)][_0x315e11(0x1f4)]},_0x182c48=yield _0x56da8b(_0x9f8c04);this[_0x315e11(0x191)](_0x182c48,_0x3ee876);});},'_installTree'(_0x3b0e70,_0x8f1beb){const _0x372d9e=_0x4225e2,_0x1289f1=this;_0x1289f1['$tree'][_0x372d9e(0x1af)]();if(!_0x3b0e70['events'])return;const _0x1d6358=_0x3b0e70[_0x372d9e(0x204)],_0x2aebc5=_0x47222c(_0x1d6358);_0x1289f1['$tree'][_0x372d9e(0x17c)](_0x2aebc5);const _0x29d038='';this[_0x372d9e(0x250)](_0x2aebc5[_0x372d9e(0x229)]('ul'),_0x1d6358,_0x29d038,_0x8f1beb),_0x2aebc5[_0x372d9e(0x1e5)](_0x372d9e(0x247))[_0x372d9e(0x23d)](_0x372d9e(0x1b1)),this[_0x372d9e(0x179)](_0x8f1beb);},'_installChildren'(_0x2e8eec,_0x5cdade,_0x19c96f,_0x1eba30){const _0x2988fb=_0x4225e2,_0x5613d3=({name:_0x16436a,namespaceIndex:_0x1dec2b})=>{if(_0x1dec2b===0x0)return _0x16436a;return _0x1dec2b+':'+_0x16436a;},_0x51c1b6=_0x5cdade[_0x2988fb(0x229)]||[],_0x4e1a6e=_0x5cdade[_0x2988fb(0x1a5)]||[],_0xdb9714=[..._0x51c1b6,..._0x4e1a6e];for(const _0x239de8 of _0xdb9714){const _0x1e49da=_0x47222c(_0x239de8);_0x2e8eec[_0x2988fb(0x17c)](_0x1e49da);let _0x44d886='';_0x239de8[_0x2988fb(0x1b8)]==='Variable'&&(_0x19c96f?_0x44d886=_0x19c96f+'.'+_0x5613d3(_0x239de8[_0x2988fb(0x1e0)]):_0x44d886=_0x5613d3(_0x239de8['browseName']),_0x1e49da[_0x2988fb(0x23e)](_0x2988fb(0x236),_0x44d886));const _0x2e237e=_0x239de8['children']&&_0x239de8[_0x2988fb(0x229)]['length'],_0x5bdc95=_0x239de8[_0x2988fb(0x1a5)]&&_0x239de8[_0x2988fb(0x1a5)][_0x2988fb(0x1ad)];!_0x2e237e&&!_0x5bdc95?_0x1e49da[_0x2988fb(0x1e5)](_0x2988fb(0x247))[_0x2988fb(0x23d)](_0x2988fb(0x1d0)):(this[_0x2988fb(0x250)](_0x1e49da[_0x2988fb(0x229)]('ul'),_0x239de8,_0x44d886,_0x1eba30),_0x1e49da[_0x2988fb(0x1e5)](_0x2988fb(0x247))[_0x2988fb(0x23d)]('expanded'));}},'_updateSelectedFields'(){const _0x13ae60=_0x4225e2;var _0x84561d;const _0x61f46e=this,_0x5375da=new Set((_0x84561d=_0x61f46e['$input'][_0x13ae60(0x18b)]())===null||_0x84561d===void 0x0?void 0x0:_0x84561d[_0x13ae60(0x19b)]()[_0x13ae60(0x16b)](';'));this[_0x13ae60(0x179)](_0x5375da);},'_updateValues'(_0x74a8a0){const _0x1cd952=_0x4225e2;$('.sterfive-tree\x20li')[_0x1cd952(0x231)](function(){const _0x1e269a=_0x1cd952,_0x39f995=$(this),_0x308115=_0x39f995[_0x1e269a(0x23e)](_0x1e269a(0x236));_0x308115&&_0x74a8a0[_0x1e269a(0x1ab)](_0x308115)&&_0x39f995[_0x1e269a(0x229)](_0x1e269a(0x23b))[_0x1e269a(0x1e5)]('unchecked')[_0x1e269a(0x23d)](_0x1e269a(0x197));});},'_setInputValue'(){const _0x4f04f0=_0x4225e2,_0x59e0ac=this,_0x3f82f9=[];$(_0x4f04f0(0x240))['each'](function(){const _0x41900a=_0x4f04f0,_0x1bbfc5=$(this);if(_0x1bbfc5[_0x41900a(0x229)]('span.custom-checkbox.checked')[_0x41900a(0x1ad)]>0x0){const _0x479545=_0x1bbfc5[_0x41900a(0x23e)]('data-value');if(_0x479545)_0x3f82f9[_0x41900a(0x214)](_0x479545);}});const _0x50d28e=[...new Set(_0x3f82f9)][_0x4f04f0(0x21f)]()[_0x4f04f0(0x16c)](';');_0x59e0ac[_0x4f04f0(0x171)]['val'](_0x50d28e),_0x59e0ac[_0x4f04f0(0x171)][_0x4f04f0(0x1c3)](_0x4f04f0(0x1f1));},'_create'(){const _0x23e28d=_0x4225e2,_0x5373ce=this;_0x5373ce[_0x23e28d(0x171)]=this[_0x23e28d(0x188)],_0x5373ce[_0x23e28d(0x228)]=$(_0x23e28d(0x1b5)),_0x5373ce[_0x23e28d(0x228)][_0x23e28d(0x23d)](_0x23e28d(0x186)),this[_0x23e28d(0x188)][0x0][_0x23e28d(0x1c9)][_0x23e28d(0x227)](_0x5373ce['$combo'][0x0],this[_0x23e28d(0x188)][0x0]),_0x5373ce[_0x23e28d(0x1f3)]=$(_0x23e28d(0x1b5))[_0x23e28d(0x23d)](_0x23e28d(0x1e6)),_0x5373ce['$combo']['append'](_0x5373ce['$inputGroup']),_0x5373ce[_0x23e28d(0x1f3)][_0x23e28d(0x17c)](_0x5373ce[_0x23e28d(0x171)]),_0x5373ce['$toggleTreeBtn']=$(_0x23e28d(0x209)),_0x5373ce[_0x23e28d(0x1f3)][_0x23e28d(0x17c)](_0x5373ce[_0x23e28d(0x210)]),_0x5373ce[_0x23e28d(0x210)]['on']('click',function(){const _0x2552fa=_0x23e28d;_0x5373ce[_0x2552fa(0x18c)][_0x2552fa(0x1d8)](),_0x5373ce['$info'][_0x2552fa(0x1d8)]();if(_0x5373ce['$dropdown']['is'](':visible')){_0x5d9001['show']();const _0x294934=_0x5373ce[_0x2552fa(0x18c)]['offset']();_0x5d9001[_0x2552fa(0x24d)]({'top':_0x294934['top']+'px','right':_0x2552fa(0x17e)+(_0x294934[_0x2552fa(0x1f7)]+_0x5373ce[_0x2552fa(0x18c)][_0x2552fa(0x18a)]())+_0x2552fa(0x1b3)}),_0x5373ce[_0x2552fa(0x21e)](),_0x5373ce['_updateSelectedFields']();}else _0x5d9001[_0x2552fa(0x246)]();});!_0x5373ce[_0x23e28d(0x171)][_0x23e28d(0x23e)](_0x23e28d(0x1f0))&&_0x5373ce[_0x23e28d(0x171)][_0x23e28d(0x23e)](_0x23e28d(0x1f0),_0x23e28d(0x256));_0x5373ce[_0x23e28d(0x1da)]=$(_0x23e28d(0x175)),_0x5373ce[_0x23e28d(0x1da)]['hide'](),_0x5373ce[_0x23e28d(0x18c)]=$(_0x23e28d(0x1b5))[_0x23e28d(0x23d)](_0x23e28d(0x225))[_0x23e28d(0x246)]();const _0x3277cc=$('<span\x20class=\x22validate-button\x22>✔</span>'),_0x71fac5=$(_0x23e28d(0x1d1)),_0x5d9001=$(_0x23e28d(0x22e))['append'](_0x3277cc,_0x71fac5);_0x5d9001[_0x23e28d(0x246)](),_0x3277cc['on'](_0x23e28d(0x20d),()=>{const _0xb38523=_0x23e28d;_0x5373ce[_0xb38523(0x1f6)](),_0x5373ce[_0xb38523(0x18c)][_0xb38523(0x246)]();}),_0x71fac5['on'](_0x23e28d(0x20d),()=>{const _0x4db19c=_0x23e28d;_0x5373ce[_0x4db19c(0x18c)][_0x4db19c(0x246)]();}),_0x5373ce[_0x23e28d(0x228)]['append'](_0x5373ce[_0x23e28d(0x1da)]),_0x5373ce['$combo'][_0x23e28d(0x17c)](_0x5373ce[_0x23e28d(0x18c)]),_0x5373ce[_0x23e28d(0x17b)]=$(_0x23e28d(0x20a)),_0x5373ce[_0x23e28d(0x18c)][_0x23e28d(0x1af)]()[_0x23e28d(0x17c)](_0x5373ce[_0x23e28d(0x17b)],_0x5d9001),_0x5373ce['$tree']['on'](_0x23e28d(0x20d),'li',function(_0x1880ef){const _0x1a7fdb=_0x23e28d;_0x1880ef[_0x1a7fdb(0x19a)]();let _0x3049b0=$(this);const _0x40af66=0x14,_0x356c0e=0x14,_0x468438=$(this)[_0x1a7fdb(0x24c)](),_0x18120c=_0x1880ef;if(_0x18120c[_0x1a7fdb(0x176)]>=_0x468438[_0x1a7fdb(0x1f7)]&&_0x18120c[_0x1a7fdb(0x176)]<=_0x468438[_0x1a7fdb(0x1f7)]+_0x40af66&&_0x18120c[_0x1a7fdb(0x252)]>=_0x468438[_0x1a7fdb(0x18d)]&&_0x18120c[_0x1a7fdb(0x252)]<=_0x468438[_0x1a7fdb(0x18d)]+_0x356c0e){console[_0x1a7fdb(0x1e8)]('clicked\x20on\x20icon'),console[_0x1a7fdb(0x1e8)](_0x1a7fdb(0x1fd),_0x3049b0[_0x1a7fdb(0x168)]('value'),_0x3049b0['attr'](_0x1a7fdb(0x196)));if(_0x3049b0[_0x1a7fdb(0x1a7)](_0x1a7fdb(0x247)))_0x3049b0['removeClass'](_0x1a7fdb(0x247))[_0x1a7fdb(0x23d)]('expanded'),_0x3049b0[_0x1a7fdb(0x229)]('ul')[_0x1a7fdb(0x1d8)]();else{if(_0x3049b0['hasClass'](_0x1a7fdb(0x1b1)))_0x3049b0[_0x1a7fdb(0x229)]('ul')[_0x1a7fdb(0x1d8)](),_0x3049b0[_0x1a7fdb(0x24f)]('expandable\x20expanded');else{if(_0x3049b0[_0x1a7fdb(0x229)]('ul')[_0x1a7fdb(0x229)]()[_0x1a7fdb(0x1ad)]>0x0)_0x3049b0[_0x1a7fdb(0x229)]('ul')[_0x1a7fdb(0x1d8)](),_0x3049b0['toggleClass'](_0x1a7fdb(0x220));else;}}}}),$(document)['on'](_0x23e28d(0x20d),function(_0x344d3d){const _0x4070d7=_0x23e28d;!$(_0x344d3d['target'])[_0x4070d7(0x18e)](_0x5373ce[_0x4070d7(0x228)])[_0x4070d7(0x1ad)]&&_0x5373ce[_0x4070d7(0x18c)][_0x4070d7(0x246)]();}),this[_0x23e28d(0x21e)]();}});},_0x56da8b=({endpointNode:_0x263859,endpoint:_0x4478f6,baseUrl:_0x315039})=>_0x2e80f1(void 0x0,void 0x0,void 0x0,function*(){const _0x7b38cb=_0x307837,_0x149cba=_0x315039+'/opcua-endpoint2',_0x13cdf4=_0x149cba+'/extractEventTypes',_0x4bab4f=yield fetch(_0x13cdf4,{'method':_0x7b38cb(0x1b6),'body':JSON['stringify']({'endpointNode':_0x263859,'endpoint':_0x4478f6}),'headers':{'Content-Type':_0x7b38cb(0x232)}});if(_0x4bab4f[_0x7b38cb(0x16d)]!==0xc8)return console[_0x7b38cb(0x1e8)](_0x7b38cb(0x1f5),_0x4bab4f[_0x7b38cb(0x16d)],_0x4bab4f[_0x7b38cb(0x1aa)]),{'events':null};console['log'](_0x7b38cb(0x187),_0x4bab4f[_0x7b38cb(0x16d)],_0x4bab4f[_0x7b38cb(0x1aa)]);const _0x4b69c4=yield _0x4bab4f['json'](),_0x4187e9=_0x4b69c4[_0x7b38cb(0x204)];return{'events':_0x4187e9};}),_0x101493=()=>{const _0x54b748=_0x307837,_0x6b991d=$(_0x54b748(0x185)),_0x16ff97=_0x6b991d[_0x54b748(0x18b)](),_0x1e7529=RED[_0x54b748(0x1fc)]['node'](_0x16ff97);if(!_0x1e7529)return undefined;const {endpoint:_0x1c53ef,securityMode:_0x9a5342,securityPolicy:_0x3560d7,userIdentityType:_0x2277d8,credentials:_0x34e9dd}=_0x1e7529,_0x509b93={'endpoint':_0x1c53ef,'securityMode':_0x9a5342,'securityPolicy':_0x3560d7,'userIdentityType':_0x2277d8,'credentials':_0x34e9dd};return _0x509b93;},_0x1b7970=()=>{return{'endpointNode':_0x3ab30e};},_0x3ab30e=()=>{const _0x13d339=_0x307837,_0x259cec=$(_0x13d339(0x185)),_0x58e72b=_0x259cec['val'](),_0x15f03a=_0x101493();if(!_0x15f03a)return undefined;return{'id':_0x58e72b};};RED['nodes'][_0x307837(0x19f)](_0x307837(0x199),{'category':_0x307837(0x1a0),'color':_0x307837(0x20b),'align':_0x307837(0x181),'icon':_0x307837(0x249),'paletteLabel':_0x307837(0x1c5),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':'OpcUa-Endpoint2'},'subscription':{'value':'','required':!![],'validate':_0x46fa2d=>{if(_0x46fa2d==='')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 _0x5c97b7=_0x307837;return this[_0x5c97b7(0x245)]||_0x5c97b7(0x200);},'labelStyle'(){const _0x3e84ee=_0x307837;return this['name']?_0x3e84ee(0x174):'';},'oneditprepare'(){const _0x3dc7d1=_0x307837;_0xd77f70(),_0x7abaaa(),_0x4f82bd(RED,this),$(_0x3dc7d1(0x22f))['on'](_0x3dc7d1(0x1f1),()=>{const _0x42f339=_0x3dc7d1,_0x5ef949=$(_0x42f339(0x1c2))['prop']('checked');_0x5ef949?$(_0x42f339(0x1cd))['val'](0x0):$(_0x42f339(0x1cd))[_0x42f339(0x18b)](0x1);});const _0xf2bbdf=$(_0x3dc7d1(0x1cf));_0xf2bbdf[_0x3dc7d1(0x1c7)](Object[_0x3dc7d1(0x230)](Object[_0x3dc7d1(0x230)]({},_0x1b7970()),{'filter'(_0x267e15){const _0x2de860=_0x3dc7d1;return _0x267e15[_0x2de860(0x1b8)]===_0x2de860(0x173);},'isSelectable'(_0xc09620){const _0x16ee9d=_0x3dc7d1;return _0xc09620[_0x16ee9d(0x1b8)]===_0x16ee9d(0x173);}})),$(_0x3dc7d1(0x1df));const _0x71c1d2=$(_0x3dc7d1(0x218));_0x71c1d2['eventFieldSelector'](Object['assign']({},_0x1b7970()));},'oneditsave'(){const _0xca2848=_0x307837,_0x11089c=$('#node-input-startImmediately')[_0xca2848(0x178)](_0xca2848(0x197));_0x11089c?($(_0xca2848(0x1c2))[_0xca2848(0x18b)](_0x11089c?0x0:0x1),this['inputs']=_0x11089c?0x0:0x1):($(_0xca2848(0x1c2))[_0xca2848(0x18b)](0x1),this[_0xca2848(0x242)]=0x1);}});}()));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg0ZjgyYmQiLCJfMHgyZWRhZDYiLCJfMHg1YTEzOTMiLCJfMHgxM2IxYTciLCIkIiwiXzB4NTFiNDUyIiwiXzB4Y2EzYzdjIiwiXzB4MzhjMGIwIiwiXzB4Mzg2ODBiIiwiXzB4NDEwZjRkIiwiXzB4MmU4MGYxIiwiXzB4NTRiMzM5IiwiXzB4NWJjMzFlIiwiXzB4NDA1MTA4IiwiXzB4MTI0MWJkIiwiXzB4MjY4YWNiIiwiXzB4MjY4ODlkIiwiXzB4NDlmNzFmIiwiUHJvbWlzZSIsIl8weDQ4NTZhZiIsIl8weDRiZDcyNSIsIl8weDEzOGNhNiIsIl8weDUxZTA2YiIsIl8weDM1MTg3NyIsIl8weDUxMGFhMiIsIl8weDI4ZWViMSIsIl8weDRiMjc0MyIsIl8weDIzMWU0NSIsIl8weDQzMjcxYSIsIlN1cHByZXNzZWRFcnJvciIsIl8weDU1Y2MwMiIsIl8weDU1YTBmNyIsIl8weDE5NjFlZSIsIl8weDJjYWNlMSIsIkVycm9yIiwiXzB4NTI0MDQ1IiwiXzB4NTc3YzAxIiwiXzB4MTk3Yzk2IiwiXzB4MjkwMjk2IiwiXzB4Mjk2NzhhIiwiXzB4MzBhMmMxIiwiXzB4OGQ5OTViIiwiXzB4MWIzZTcwIiwiXzB4OWFlMmQyIiwiXzB4NGYyMTQ4IiwiXzB4Mzg5OTg4IiwiXzB4MzAyYTI3IiwiXzB4Mzk0MWFjIiwiXzB4MTVlZWZmIiwiXzB4NTQyZjM4IiwiXzB4MjBmMTI1IiwiXzB4MzQxZWM3IiwiXzB4MTJlNDE4IiwiXzB4M2E2ZmFhIiwiXzB4M2MwOGUzIiwiZW5kcG9pbnROb2RlIiwiXzB4MjIyNTNmIiwiZW5kcG9pbnQiLCJfMHhlZWI5ODQiLCJiYXNlVXJsIiwiXzB4NWE5NzA3IiwiXzB4MjdhZDI5IiwiXzB4MjBiZjc0IiwiXzB4NTlhN2NkIiwiXzB4MTgzMmZmIiwiXzB4NDJiN2E4IiwiT2JqZWN0IiwiXzB4MjU1MTZjIiwiZmV0Y2giLCJKU09OIiwiY29uc29sZSIsIl8weDUwNDE5MCIsIl8weDMzYjhiYiIsIl8weDNhNjM2ZCIsIl8weDRmNDM0NiIsIl8weDVlMTQzZSIsIl8weDcxMWFlIiwiXzB4MTc5Mzg5IiwiXzB4NGIyNzU4Iiwibm9kZUlkIiwiXzB4MjUyNGIyIiwicm9vdE5vZGVJZCIsIl8weDEyZTI1ZSIsImlzVHlwZSIsIl8weDE2NjQxYyIsIl8weDFhYjg3YyIsIl8weGEzZGY4NCIsIl8weDFiMjQ1YyIsIl8weDE4NzVhNSIsIl8weGYwNzVjZSIsIl8weGY5MjYxOSIsIl8weDVmMDQ5YyIsIl8weDUzMDUwNCIsIl8weGE5ZDVmMSIsIl8weDFkZDJhZSIsIl8weDEwOWQ1MiIsIl8weDEyZWIyOSIsIl8weDM4NTNmOSIsIl8weDQ3YjVjNSIsIl8weDkzNzA1YiIsIl8weDJkZWMyMCIsIl8weDM1NjFkNCIsInNldFRpbWVvdXQiLCJfMHgxZWU2ZDEiLCJfMHgxZWZlM2YiLCJfMHhkM2UwNmMiLCJfMHg2YmE0MzYiLCJfMHg1MDk0ZDYiLCJfMHg1NjNmZWUiLCJfMHgyZmJmMDEiLCJfMHg1MWEzNWIiLCJfMHgxNTFmYTYiLCJfMHhiZDBmYiIsIl8weDI5YzYxZiIsIl8weGZhNmI1MyIsIl8weDNkNTEwYSIsIl8weDU2OGFiMSIsIl8weDVlYzFkOSIsIl8weDRjMTcxZSIsIl8weDI5NGZlMSIsIl8weDE5NjkwNCIsIl8weDU1NTRlNCIsIl8weDQyMzc4MCIsIl8weDVjNmIwYyIsIl8weDExMWUzNCIsImljb24iLCJfMHhkNzE4M2EiLCJjb2xvciIsIl8weDNkMmExNCIsIl8weDJhYjM5NiIsIl8weDVlZWM2YyIsIl8weDE2Mzg0YyIsIl8weGZlOGVmOCIsIl8weDExNDI5MiIsIl8weDQzZjIzOCIsIl8weDU3MDFhOSIsIl8weDM2OTIyZSIsIl8weDNiNzA0YiIsIl8weDM5ZjNhOCIsIl8weDI1YTljZCIsIl8weDMzN2NmMSIsIl8weDQxZDE4MyIsIl8weDU5Nzk1MyIsIl8weDQ0MjQ1MiIsIl8weGIwNDc1OSIsIl8weDRiYjdkMSIsIl8weDI0ODIwOCIsIl8weDRkMjMyOCIsIl8weDU1MmFlZiIsIl8weGI1YzI0OSIsIl8weDU0MDVhNyIsInVuZGVmaW5lZCIsIl8weDEyOTk1OSIsIl8weDVkOGE3NSIsIl8weDI4ODhlOCIsIl8weDIzMjI4ZiIsIl8weDQ2ZWJiNSIsIl8weDlmZGI2ZiIsIl8weDRjNmE1NyIsIl8weDE3YTM3MiIsIl8weDM4ODRjNyIsIl8weDIwNTQyYyIsIl8weDE3ZDYxMSIsIl8weDRmMTQ5ZCIsIl8weDM3NmI5NyIsIl8weDI0MjcyYyIsInJlZmVyZW5jZXMiLCJfMHhmY2FmYzUiLCJfMHg1YWM1OTgiLCJfMHg0OWY5YWEiLCJfMHgxNTk0NTYiLCJfMHg0NmIyYjYiLCJfMHgxNDZmOGIiLCJfMHgzYmY3YzgiLCJfMHgyOWZmY2MiLCJfMHgzNDIwNWQiLCJfMHg1ZTBjZGYiLCJfMHgyYmJjOTEiLCJfMHhkNzdmNzAiLCJfMHgxMWM2NTIiLCJfMHg1MjYxMGYiLCJfMHg2MGJiNzQiLCJfMHgzMjAzMzEiLCJfMHgzN2JmMGYiLCJfMHg3OTZlODkiLCJfMHgzMjE2YmIiLCJfMHgxN2RhZTEiLCJfMHgzYjIwZTQiLCJfMHg0NTVhMGYiLCJfMHg0YWVjMjUiLCJfMHgzMzEwNjAiLCJfMHgzOTE1MzIiLCJfMHgxZTgzZTMiLCJfMHgxZjA1YTkiLCJfMHg0OGEzYmIiLCJfMHgzOWRkZjQiLCJfMHg0NzA3YjgiLCJfMHg1YjBmM2UiLCJfMHg0YWNhMTYiLCJfMHhkNWI1ZGIiLCJfMHgzNmVkZTMiLCJfMHgyMjY3MTciLCJfMHg0ODE0YTYiLCJfMHgzNDU5NWUiLCJfMHgzY2JkZGQiLCJfMHg1YTE5NTEiLCJfMHgzYTBkZTMiLCJfMHgzODQ0NzIiLCJfMHgxN2I0ZmMiLCJfMHg0YmE0MzQiLCJfMHg0ZjZmODUiLCJkb2N1bWVudCIsIl8weDVlNTAzNCIsIl8weDQ3MjIyYyIsIl8weDgzZjY0NyIsIl8weDQwOTAxYiIsIl8weDU1YjViMCIsIl8weDI2YzI1YiIsIl8weDRjMDQ3ZiIsIl8weDMxODYwNCIsIl8weDIwMTY0OCIsIl8weDQxNTBiMiIsIl8weDRmZDg3NyIsIl8weDVkNGU5NCIsIl8weDM4OGRlNSIsIl8weDRkY2NhNiIsIl8weDdhYmFhYSIsIl8weDQyMWY3YyIsIl8weDE2Mjc5YyIsIl8weDNlZTg3NiIsIlNldCIsIl8weDlmOGMwNCIsIl8weDE4MmM0OCIsIl8weDU2ZGE4YiIsIl8weDNiMGU3MCIsIl8weDhmMWJlYiIsIl8weDEyODlmMSIsIl8weDFkNjM1OCIsIl8weDJhZWJjNSIsIl8weDI5ZDAzOCIsIl8weDJlOGVlYyIsIl8weDVjZGFkZSIsIl8weDE5Yzk2ZiIsIl8weDFlYmEzMCIsIl8weDU2MTNkMyIsIm5hbWUiLCJfMHgxNjQzNmEiLCJuYW1lc3BhY2VJbmRleCIsIl8weDFkZWMyYiIsIl8weDUxYzFiNiIsIl8weDRlMWE2ZSIsIl8weGRiOTcxNCIsIl8weDIzOWRlOCIsIl8weDFlNDlkYSIsIl8weDQ0ZDg4NiIsIl8weDJlMjM3ZSIsIl8weDViZGM5NSIsIl8weDg0NTYxZCIsIl8weDYxZjQ2ZSIsIl8weDUzNzVkYSIsIl8weDc0YThhMCIsIl8weDM5Zjk5NSIsIl8weDMwODExNSIsIl8weDU5ZTBhYyIsIl8weDNmODJmOSIsIl8weDFiYmZjNSIsIl8weDQ3OTU0NSIsIl8weDUwZDI4ZSIsIl8weDUzNzNjZSIsIl8weDVkOTAwMSIsIl8weDI5NDkzNCIsIl8weDMyNzdjYyIsIl8weDcxZmFjNSIsIl8weDE4ODBlZiIsIl8weDMwNDliMCIsIl8weDQwYWY2NiIsIl8weDM1NmMwZSIsIl8weDQ2ODQzOCIsIl8weDE4MTIwYyIsIl8weDM0NGQzZCIsIl8weDI2Mzg1OSIsIl8weDQ0NzhmNiIsIl8weDMxNTAzOSIsIl8weDE0OWNiYSIsIl8weDEzY2RmNCIsIl8weDRiYWI0ZiIsIl8weDRiNjljNCIsIl8weDQxODdlOSIsIl8weDEwMTQ5MyIsIl8weDZiOTkxZCIsIl8weDE2ZmY5NyIsIl8weDFlNzUyOSIsIlJFRCIsIl8weDFjNTNlZiIsInNlY3VyaXR5TW9kZSIsIl8weDlhNTM0MiIsInNlY3VyaXR5UG9saWN5IiwiXzB4MzU2MGQ3IiwidXNlcklkZW50aXR5VHlwZSIsIl8weDIyNzdkOCIsImNyZWRlbnRpYWxzIiwiXzB4MzRlOWRkIiwiXzB4NTA5YjkzIiwiXzB4MWI3OTcwIiwiXzB4M2FiMzBlIiwiXzB4MjU5Y2VjIiwiXzB4NThlNzJiIiwiXzB4MTVmMDNhIiwiXzB4NDZmYTJkIiwiXzB4NWVmOTQ5IiwiXzB4ZjJiYmRmIiwiXzB4MjY3ZTE1IiwiXzB4YzA5NjIwIiwiXzB4NzFjMWQyIiwiXzB4MTEwODljIl0sIm1hcHBpbmdzIjoic3pJQUFBLENBQUMsVSxDQUNHLGEsd0JBRUEsU0FBU0EsU0FBVCxDQUFxQ0MsU0FBckMsQ0FBMENDLFNBQTFDLEMseUJBQ1VDLFNBQUEsQ0FBWUMsQ0FBQSxDLHNCQUFBLEMsQ0FDWkMsU0FBQSxDQUFnQkQsQ0FBQSxDLGdCQUFBLEMsQ0FDaEJFLFNBQUEsQ0FBNkIsSSwyQkFDekJDLFNBQUEsQ0FBV04sU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBZUUsU0FBQSxDLGdCQUFBLEdBQWYsQyxDQUNqQkUsU0FBQSxDLGdCQUFBLEksR0FDSSxDQUFDRSxTQUFELEVBQWEsQ0FBQ0EsU0FBQSxDLGdCQUFBLEMsQ0FDZCxPLEdBRUFBLFNBQUEsQyxlQUFBLEMsQ0FDQSxVQUFXQyxTQUFYLElBQWdCRCxTQUFBLEMsZUFBQSxDQUFoQixDLENBQ0ksTUFBTUUsU0FBQSxDQUFRRCxTQUFBLEMsTUFBQSxHQUFVQSxTQUFBLEMsSUFBQSxDQUF4QixDQUNBSixDQUFBLEMsZ0JBQUEsQ0FBZSxDLE9BQ1gsQ0FBT0ksU0FBQSxDLElBQUEsQ0FESSxDLE9BRVgsQ0FBT0MsU0FGSSxDLFVBR1gsQ0FBVUQsU0FBQSxDLElBQUEsSUFBU04sU0FBQSxDLGNBQUEsQ0FIUixDQUFmLEUsZ0JBQUEsRUFLVU8sU0FMVixFLGdCQUFBLEVBTWNKLFNBTmQsQyxJQVVaQyxTQUFBLEUsQ0FPQUQsU0FBQSxDLElBQUEsRSxnQkFBQSxDQUFnQyxJLENBQzVCQyxTQUFBLEUsRUFESixDLENBR0FILFNBQUEsQyxJQUFBLEUsZ0JBQUEsQ0FBdUIsSSxDQUNuQkcsU0FBQSxFLEVB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QXNFakQsRSwyQkFDVVcsU0FBQSxDQUFtQnRULENBQUEsQyw4QkFBQSxFLGdCQUFBLEUsZ0JBQUEsQyxDQUNyQnNULFMsRUFDQXRULENBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQXNDc1QsU0FBQSxDLEdBQUEsQyxHQUF0QyxDLENBQ0EsSyxRQUFBLEVBQWNBLFNBQUEsQyxHQUFBLEMsTUFHZHRULENBQUEsQyxnQkFBQSxFLGdCQUFBLEUsR0FBQSxDLENBQ0EsSyxnQkFBQSxFLE1BOUV5QyxDQUFyRCxDLEVBNzRCSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICBmdW5jdGlvbiBpbnN0YWxsU3Vic2NyaXB0aW9uU2VsZWN0b3IoUkVELCBub2RlKSB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgJHN1YnNjcmlwdGlvbiA9ICQoXCIjbm9kZS1pbnB1dC1zdWJzY3JpcHRpb25cIik7XG4gICAgICAgIGNvbnN0IGluc3RhbGxTdWJzY3JpcHRpb25PcHRpb25zID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZW5kcG9pbnQgPSBSRUQubm9kZXMubm9kZSgkZW5kcG9pbnQudmFsKCkpO1xuICAgICAgICAgICAgJHN1YnNjcmlwdGlvbi5lbXB0eSgpO1xuICAgICAgICAgICAgaWYgKCFlbmRwb2ludCB8fCAhZW5kcG9pbnQuc3Vic2NyaXB0aW9ucykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlbmRwb2ludC5zdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBzIG9mIGVuZHBvaW50LnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBzLm5hbWUgfHwgcy5pZDtcbiAgICAgICAgICAgICAgICAgICAgJChcIjxvcHRpb24vPlwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcy5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBsYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkOiBzLmlkID09PSBub2RlLnN1YnNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC50ZXh0KGxhYmVsKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKCRzdWJzY3JpcHRpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMoKTtcbiAgICAgICAgLy8gaGFja1xuICAgICAgICAvLyAkaW5wdXRBY3Rpb24ub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAvLyAgICAgJGVuZHBvaW50Lm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgLy8gICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucygpO1xuICAgICAgICAvLyAgICAgfSk7XG4gICAgICAgIC8vIH0pO1xuICAgICAgICAkc3Vic2NyaXB0aW9uLm9uKFwiZm9jdXMgY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMoKTtcbiAgICAgICAgfSk7XG4gICAgICAgICRlbmRwb2ludC5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJEYXRhVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtdGV4dC13aWR0aFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGljb246IFwiZmEtcXVlc3Rpb25cIiwgY29sb3I6IFwiZ3JleVwiIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGJyb3dzZSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkLCB0ZW1wbGF0ZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9icm93c2VgO1xuICAgICAgICBjb25zdCBicm93c2VEZXNjcmlwdGlvbiA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGVtcGxhdGUpLCB7IG5vZGVJZCwgcmVzdWx0TWFzazogNjMgfSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGJyb3dzZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXM6IFtdIH07XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJicm93c2UgZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB3YWxrQmFja3dhcmQgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIHsgbm9kZUlkLCByb290Tm9kZUlkLCBpc1R5cGUgfSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS93YWxrLWJhY2t3YXJkYDtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgICAgIHJvb3ROb2RlSWQsXG4gICAgICAgICAgICAgICAgaXNUeXBlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIHJldHVybiBqc29uLmJyb3dzZVBhdGg7XG4gICAgfSk7XG4gICAgY29uc3QgaW50ZXJuYWxWZXJpZnkgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sICRpbnB1dEVsZW1lbnQsICRpbmZvKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2NoZWNrTm9kZUlkYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50JDEgPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICAgICAgaWYgKCFyZWZlcmVuY2UgfHwgIXJlZmVyZW5jZS5ub2RlSWQpIHtcbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgZmEtZXJyb3JcIiBzdHlsZT1cImNvbG9yOnJlZDtcIj48L2k+bm8gcmVmZXJlbmNlICE8dWw+PC91bD48L2xpPmApO1xuICAgICAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHQgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB7IGljb24sIGNvbG9yIH0gPSBnZXRJY29uKHJlZmVyZW5jZSk7XG4gICAgICAgIGNvbnN0IHRpdGxlID0gYCgke3JlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKX0pICR7KChfYyA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MubmFtZSkgfHwgKChfZCA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLnRleHQpIHx8IFwiXCJ9YDtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGkga2V5PVwiJHtyZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCl9XCJ9PjxzcGFuIGNsYXNzPVwidHJlZS10ZXh0XCIgdGl0bGU9JHt0aXRsZX0+PGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+ICR7dH08L3NwYW4+PHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoXCJleHBhbmRhYmxlXCIpO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwidmFsdWVcIiwgbik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgIH07XG4gICAgY29uc3QgZmluZEVsZW1lbnQgPSAobm9kZUlkLCAkdHJlZSkgPT4ge1xuICAgICAgICByZXR1cm4gJHRyZWUuZmluZChgbGlba2V5PVwiJHtub2RlSWR9XCJdYCk7XG4gICAgfTtcbiAgICBjb25zdCBzZWxlY3RTaW5nbGUgPSAodGhhdCwgJGxpKSA9PiB7XG4gICAgICAgIHRoYXQuJHRyZWUuZmluZChcImxpID4gLnRyZWUtdGV4dFwiKS5yZW1vdmVDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgICAgICAvLyBjbGVhciBhbGwgc2VsZWN0ZWQgaXRlbXNcbiAgICAgICAgJGxpLmZpbmQoXCIudHJlZS10ZXh0OmZpcnN0XCIpLmFkZENsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgfTtcbiAgICBjb25zdCBhdXRvRXhwYW5kID0gKHRoYXQsIGJyb3dzZVBhdGgsICR0cmVlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgLy8gZXhwYW5kIHRoZSB0cmVlIHRvIHNob3cgdGhlIG5vZGVJZFxuICAgICAgICBsZXQgJGN1cnJlbnQgPSAkdHJlZS5jaGlsZHJlbihcIjpmaXJzdFwiKTtcbiAgICAgICAgYnJvd3NlUGF0aC5yZWxhdGl2ZVBhdGguZWxlbWVudHMgfHwgW107XG4gICAgICAgIGNvbnN0IG5vZGVJZHMgPSBicm93c2VQYXRoLm5vZGVJZHMgfHwgW107XG4gICAgICAgIGlmIChub2RlSWRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgbiBvZiBub2RlSWRzKSB7XG4gICAgICAgICAgICBpZiAoJGN1cnJlbnQuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgLy8gbmVlZCB0byBleHBhbmQgYW5kIHNlbGVjdCB0aGUgcmlnaHQgZWxlbWVudFxuICAgICAgICAgICAgICAgIHlpZWxkIF9leHBhbmRMaSh0aGF0LCAkY3VycmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IGZpbmRFbGVtZW50KG4sICRjdXJyZW50KTtcbiAgICAgICAgICAgIGlmICgkZWxlbWVudC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkY3VycmVudCA9ICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIHNlbGVjdFNpbmdsZSh0aGF0LCAkY3VycmVudCk7XG4gICAgICAgIHNjcm9sbFRvTGkodGhhdC4kZHJvcGRvd24sICRjdXJyZW50KTtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBzY3JvbGxUb0xpKCRjb250YWluZXIsICR0YXJnZXRMaSkge1xuICAgICAgICAvLyBHZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSB0YXJnZXQgaXRlbSByZWxhdGl2ZSB0byBpdHMgY29udGFpbmVyXG4gICAgICAgIGNvbnN0IGxpUG9zID0gJHRhcmdldExpLnBvc2l0aW9uKCkudG9wO1xuICAgICAgICAvLyBHZXQgdGhlIGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uIG9mIHRoZSBjb250YWluZXJcbiAgICAgICAgY29uc3QgY29udGFpbmVyU2Nyb2xsVG9wID0gJGNvbnRhaW5lci5zY3JvbGxUb3AoKTtcbiAgICAgICAgaWYgKGNvbnRhaW5lclNjcm9sbFRvcCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHBvc2l0aW9uIHRvIHNjcm9sbCB0byAoY3VycmVudCBzY3JvbGwgKyBpdGVtJ3MgcG9zaXRpb24pXG4gICAgICAgIC8vIEFkanVzdCB0aGlzIGNhbGN1bGF0aW9uIGJhc2VkIG9uIHlvdXIgbmVlZHNcbiAgICAgICAgY29uc3Qgc2Nyb2xsVG8gPSBjb250YWluZXJTY3JvbGxUb3AgKyBsaVBvcyAtICRjb250YWluZXIuaGVpZ2h0KCkgLyAyICsgJHRhcmdldExpLmhlaWdodCgpIC8gMjtcbiAgICAgICAgLy8gU2Nyb2xsIHRoZSBjb250YWluZXIgdG8gZW5zdXJlIHRoZSBpdGVtIGlzIHZpc2libGVcbiAgICAgICAgJGNvbnRhaW5lci5hbmltYXRlKHtcbiAgICAgICAgICAgIHNjcm9sbFRvcDogc2Nyb2xsVG8sXG4gICAgICAgIH0sIDUwMCk7IC8vIEFkanVzdCB0aGUgZHVyYXRpb24gKDUwMG1zKSBhcyBuZWVkZWRcbiAgICB9XG4gICAgY29uc3QgcmVhY2hTZWxlY3Rpb24gPSAodGhhdCwgcGFyZW50Tm9kZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IG5vZGVJZCA9IHRoYXQuJGlucHV0LnZhbCgpO1xuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgcm9vdE5vZGVJZDogcGFyZW50Tm9kZS5ub2RlSWQsXG4gICAgICAgICAgICBpc1R5cGU6IHRoYXQub3B0aW9ucy5pc1R5cGVSZWYgfHwgZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgY29uc3QgYnJvd3NlUGF0aCA9IHlpZWxkIHdhbGtCYWNrd2FyZChkYXRhLCBvcHRpb25zKTtcbiAgICAgICAgaWYgKCFicm93c2VQYXRoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgeWllbGQgYXV0b0V4cGFuZCh0aGF0LCBicm93c2VQYXRoLCB0aGF0LiR0cmVlKTtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBfZmV0Y2hEYXRhRm9yTm9kZSh0aGF0LCAkbm9kZSwgZmV0Y2hGdW5jLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwibG9hZGluZ1wiKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICRub2RlLmFwcGVuZCgnPGRpdiBjbGFzcz1cInNwaW5uZXJcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgcmVmZXJlbmNlcyB9ID0geWllbGQgZmV0Y2hGdW5jKCRub2RlLCBkYXRhKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlZmVyZW5jZSBvZiByZWZlcmVuY2VzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuZmlsdGVyICYmICF0aGF0Lm9wdGlvbnMuZmlsdGVyKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQkMShyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFrZUNvbm5lY3Rpb24odGhhdCkge1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgZnVuY3Rpb24gX2V4cGFuZExpKHRoYXQsICRsaSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgY29uc3QgZiA9ICF0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmID8gZmV0Y2hDaGlsZHJlbiA6IGZldGNoU3VidHlwZXM7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHlpZWxkIF9mZXRjaERhdGFGb3JOb2RlKHRoYXQsICRsaSwgZiwgZGF0YSk7XG4gICAgICAgICAgICAgICAgLy8gbWFyayBhcyBleHBhbmRlZFxuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogWyBUZW1wZXJhdHVyZSAgXVxuICAgICAgICAgKiAgICggdG9vbHRpcCA6ICgvT2JqZWN0cy9NeVNlbnNvcikgKG5zPTE7cz1UZW1wZXJhdHVyZSkpXG4gICAgICAgICAqIFsgKyBbRm9sZGVyXSBPYmplY3RzXVxuICAgICAgICAgKiBbICAgICBbT2JqZWN0XSBNeVNlbnNvcl1cbiAgICAgICAgICogWyAgICAgKCApIFtWYXJpYWJsZV0gVGVtcGVyYXR1cmVdXG4gICAgICAgICAqL1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLm5vZGVCcm93c2VyXCIsIHtcbiAgICAgICAgICAgIC8qIGRlZmF1bHQgb3B0aW9ucyAqL1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogKCkgPT4gKHsgZW5kcG9pbnQ6IFwib3BjLnRjcDovL29wY3VhZGVtby5zdGVyZml2ZS5jb206MjY1NDNcIiB9KSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludDogKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGU6ICgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIGJyb3dzZU5hbWU6IHsgbmFtZXNwYWNlSW5kZXg6IDAsIG5hbWU6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIG5vZGVDbGFzczogXCJPYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgbm9kZUlkOiBcIm5zPTA7aT04NVwiLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogeyB0ZXh0OiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICB0eXBlRGVmaW5pdGlvbjogRm9sZGVyVHlwZSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6ICgpID0+IHRydWUsXG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgICAgICBpc1R5cGVSZWY6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc29sdmVQYXJlbnROb2RlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuX19wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdHlwZW9mIHRoYXQub3B0aW9ucy5wYXJlbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZS5jYWxsKHRoYXQpIDogdGhhdC5vcHRpb25zLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkZXNjID0geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGRlc2M7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoYXQuX19wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc2V0KCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICAvLyBhbHNvIHJlc2V0IHBhcmVudCBub2RlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0aGF0O1xuICAgICAgICAgICAgICAgICAgICBhLl9fcGFyZW50Tm9kZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnROb2RlID0geWllbGQgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50JDEocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jdXJyZW50UGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJpZnkoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbFZlcmlmeShkYXRhLCB0aGF0LiRpbnB1dCwgdGhhdC4kaW5mbyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZWVkVG9SZWFjaFNlbGVjdGlvbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0cmVlIHdpZGdldCBpcyBnb2luZyB0byBiZWNvbWUgdmlzaWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudE5vZGUgPSB5aWVsZCB0aGF0LnJlc29sdmVQYXJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudE5vZGUgIT09IHRoYXQuY3VycmVudFBhcmVudCB8fCAoKF9hID0gdGhhdC5jdXJyZW50UGFyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eubm9kZUlkKSAhPT0gcGFyZW50Tm9kZS5ub2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgdGhhdC5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkVG9SZWFjaFNlbGVjdGlvbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRUb1JlYWNoU2VsZWN0aW9uICYmICh5aWVsZCByZWFjaFNlbGVjdGlvbih0aGF0LCBwYXJlbnROb2RlKSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1mbGFza1wiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR2ZXJpZnlCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52ZXJpZnkoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIiwgXCJlbnRlciBhIG5vZGVJZCBvciBhIGJyb3dzZVBhdGggXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvID0gJChgPGRpdiBjbGFzcz1cImluZm8tdGV4dFwiPjwvZGl2PmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcInN0ZXJmaXZlLWRyb3Bkb3duXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5mbyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlID0gJChgPHVsIGNsYXNzPVwic3RlcmZpdmUtdHJlZVwiPjwvdWw+YCkuYXBwZW5kVG8odGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpc09uTGVmdFNpemUgPSAoJGxpLCBldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVXaWR0aCA9IDIwOyAvLyBTZXQgd2lkdGggb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlSGVpZ2h0ID0gMjA7IC8vIFNldCBoZWlnaHQgb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFBvcyA9ICRsaS5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5wYWdlWCA+PSBlbGVtZW50UG9zLmxlZnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVggPD0gZWxlbWVudFBvcy5sZWZ0ICsgYmVmb3JlV2lkdGggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPj0gZWxlbWVudFBvcy50b3AgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPD0gZWxlbWVudFBvcy50b3AgKyBiZWZvcmVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvZ2dsZUV4cGFuc2lvbiA9ICgkbGkpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9leHBhbmRMaSh0aGF0LCAkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUb2dnbGUgaXRzIGV4cGFuZGVkL2NvbGxhcHNlZCBzdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiZGJsY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPbkxlZnRTaXplKCRsaSwgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVFeHBhbnNpb24oJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gJGxpLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9ICRsaS5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUgJiYgIXRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gYFske2Rpc3BsYXlOYW1lfV0oJHt2YWx1ZX0pYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0U2luZ2xlKHRoYXQsICRsaSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgbWFrZUVsZW1lbnQgPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBpZiAoIXJlZmVyZW5jZSkge1xuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSBmYS1lcnJvclwiIHN0eWxlPVwiY29sb3I6cmVkO1wiPjwvaT5ubyByZWZlcmVuY2UgITx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbiA9IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgbGV0IHQgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBsZXQgbnMgPSAoX2MgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLm5hbWVzcGFjZUluZGV4O1xuICAgICAgICB0ICs9IG5zICE9PSB1bmRlZmluZWQgJiYgcmVmZXJlbmNlLm5vZGVDbGFzcy5tYXRjaCgvVHlwZS8pID8gYCAobnM9JHtuc30pYCA6IFwiXCI7XG4gICAgICAgIGNvbnN0IHsgaWNvbiwgY29sb3IgfSA9IGdldEljb24ocmVmZXJlbmNlKTtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+YCk7XG4gICAgICAgIGlmIChyZWZlcmVuY2Uubm9kZUNsYXNzID09PSBcIlZhcmlhYmxlXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IGNoZWNrQm94ID0gJCgnPHNwYW4gY2xhc3M9XCJjdXN0b20tY2hlY2tib3ggdW5jaGVja2VkXCI+PC9zcGFuPicpO1xuICAgICAgICAgICAgJGVsZW1lbnQuYXBwZW5kKGNoZWNrQm94KTtcbiAgICAgICAgICAgIC8vIFRvZ2dsZSBjaGVja2JveCBzdGF0ZSB3aGVuIGNsaWNrZWRcbiAgICAgICAgICAgIGNoZWNrQm94Lm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGlmIChjaGVja0JveC5oYXNDbGFzcyhcInVuY2hlY2tlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICBjaGVja0JveC5yZW1vdmVDbGFzcyhcInVuY2hlY2tlZFwiKS5hZGRDbGFzcyhcImNoZWNrZWRcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjaGVja0JveC5yZW1vdmVDbGFzcyhcImNoZWNrZWRcIikuYWRkQ2xhc3MoXCJ1bmNoZWNrZWRcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgJGVsZW1lbnQuYXBwZW5kKCQoYDxpIGNsYXNzPVwiZmEgJHtpY29ufVwiIHN0eWxlPVwiY29sb3I6JHtjb2xvcn07XCI+PC9pPiR7dH08dWw+PC91bD5gKSk7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKFwiZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInZhbHVlXCIsIG4pO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICB9O1xuICAgIGNvbnN0IGRlY2xhcmVFdmVudEZpZWxkU2VsZWN0b3JXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbIFRlbXBlcmF0dXJlICBdXG4gICAgICAgICAqICAgKCB0b29sdGlwIDogKC9PYmplY3RzL015U2Vuc29yKSAobnM9MTtzPVRlbXBlcmF0dXJlKSlcbiAgICAgICAgICogWyArIFtGb2xkZXJdIE9iamVjdHNdXG4gICAgICAgICAqIFsgICAgIFtPYmplY3RdIE15U2Vuc29yXVxuICAgICAgICAgKiBbICAgICAoICkgW1ZhcmlhYmxlXSBUZW1wZXJhdHVyZV1cbiAgICAgICAgICovXG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUuZXZlbnRGaWVsZFNlbGVjdG9yXCIsIHtcbiAgICAgICAgICAgIC8qIGRlZmF1bHQgb3B0aW9ucyAqL1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogKCkgPT4gKHsgZW5kcG9pbnQ6IFwib3BjLnRjcDovL29wY3VhZGVtby5zdGVyZml2ZS5jb206MjY1NDNcIiB9KSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludDogKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX3BvcHVsYXRlKCkge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRGaWVsZCA9IG5ldyBTZXQoKF9hID0gdGhhdC4kaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIC52YWwoKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRvU3RyaW5nKCkuc3BsaXQoXCI7XCIgKSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkIGV4dHJhY3RFdmVudEZpZWxkSW5mbyhkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5zdGFsbFRyZWUocmVzdWx0LCBzZWxlY3RlZEZpZWxkKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfaW5zdGFsbFRyZWUocmVzdWx0LCBzZWxlY3RGaWVsZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdC5ldmVudHMpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCByb290ID0gcmVzdWx0LmV2ZW50cztcbiAgICAgICAgICAgICAgICBjb25zdCAkcm9vdEVsZW1lbnQgPSBtYWtlRWxlbWVudChyb290KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmFwcGVuZCgkcm9vdEVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHByZWZpeCA9IFwiXCI7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5zdGFsbENoaWxkcmVuKCRyb290RWxlbWVudC5jaGlsZHJlbihcInVsXCIpLCByb290LCBwcmVmaXgsIHNlbGVjdEZpZWxkKTtcbiAgICAgICAgICAgICAgICAkcm9vdEVsZW1lbnQucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlVmFsdWVzKHNlbGVjdEZpZWxkKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfaW5zdGFsbENoaWxkcmVuKCRwYXJlbnQsIHBhcmVudCwgcHJlZml4LCBzZWxlY3RlZEZpZWxkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYiA9ICh7IG5hbWUsIG5hbWVzcGFjZUluZGV4IH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWVzcGFjZUluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmFtZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7bmFtZXNwYWNlSW5kZXh9OiR7bmFtZX1gO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBwYXJlbnQuY2hpbGRyZW4gfHwgW107XG4gICAgICAgICAgICAgICAgY29uc3Qgc3ViVHlwZXMgPSBwYXJlbnQuc3ViVHlwZXMgfHwgW107XG4gICAgICAgICAgICAgICAgY29uc3QgY2hpbGRyZW5BbmRTdWJUeXBlcyA9IFsuLi5jaGlsZHJlbiwgLi4uc3ViVHlwZXNdO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgY2hpbGRyZW5BbmRTdWJUeXBlcykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KGNoaWxkKTtcbiAgICAgICAgICAgICAgICAgICAgJHBhcmVudC5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgcHJlZml4MiA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZC5ub2RlQ2xhc3MgPT09IFwiVmFyaWFibGVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZWZpeCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeDIgPSBwcmVmaXggKyBcIi5cIiArIGIoY2hpbGQuYnJvd3NlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXgyID0gYihjaGlsZC5icm93c2VOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICRlbGVtZW50LmF0dHIoXCJkYXRhLXZhbHVlXCIsIHByZWZpeDIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhc0NoaWxkcmVuID0gY2hpbGQuY2hpbGRyZW4gJiYgY2hpbGQuY2hpbGRyZW4ubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYXNTdWJUeXBlcyA9IGNoaWxkLnN1YlR5cGVzICYmIGNoaWxkLnN1YlR5cGVzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFoYXNDaGlsZHJlbiAmJiAhaGFzU3ViVHlwZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRlbGVtZW50LnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcIm5vLWV4cGFuZGFibGVcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbnN0YWxsQ2hpbGRyZW4oJGVsZW1lbnQuY2hpbGRyZW4oXCJ1bFwiKSwgY2hpbGQsIHByZWZpeDIsIHNlbGVjdGVkRmllbGQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJGVsZW1lbnQucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX3VwZGF0ZVNlbGVjdGVkRmllbGRzKCkge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEZpZWxkcyA9IG5ldyBTZXQoKF9hID0gdGhhdC4kaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgLnZhbCgpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudG9TdHJpbmcoKS5zcGxpdChcIjtcIiApKTtcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVWYWx1ZXMoc2VsZWN0ZWRGaWVsZHMpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF91cGRhdGVWYWx1ZXMoc2VsZWN0ZWRGaWVsZHMpIHtcbiAgICAgICAgICAgICAgICAkKFwiLnN0ZXJmaXZlLXRyZWUgbGlcIikuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICR0aGlzID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdiA9ICR0aGlzLmF0dHIoXCJkYXRhLXZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodiAmJiBzZWxlY3RlZEZpZWxkcy5oYXModikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLmNoaWxkcmVuKFwic3Bhbi5jdXN0b20tY2hlY2tib3hcIikucmVtb3ZlQ2xhc3MoXCJ1bmNoZWNrZWRcIikuYWRkQ2xhc3MoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX3NldElucHV0VmFsdWUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdCA9IFtdO1xuICAgICAgICAgICAgICAgIC8vIGNyYXdsIHRoZSB0cmVlIHRvIGZpbmQgc2VsZWN0ZWQgZWxlbWVudHMgYW5kIGNyZWF0ZSBhIGxpc3Qgb2YgQnJvd3NlUGF0aFxuICAgICAgICAgICAgICAgICQoXCIuc3RlcmZpdmUtdHJlZSBsaVwiKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJHRoaXMgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgZWxlbWVudCBpcyBzZWxlY3RlZFxuICAgICAgICAgICAgICAgICAgICBpZiAoJHRoaXMuY2hpbGRyZW4oXCJzcGFuLmN1c3RvbS1jaGVja2JveC5jaGVja2VkXCIpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHYgPSAkdGhpcy5hdHRyKFwiZGF0YS12YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QucHVzaCh2KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gWy4uLm5ldyBTZXQobGlzdCldLnNvcnQoKS5qb2luKFwiO1wiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC52YWwodmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50WzBdLnBhcmVudEVsZW1lbnQucmVwbGFjZUNoaWxkKHRoYXQuJGNvbWJvWzBdLCB0aGlzLmVsZW1lbnRbMF0pO1xuICAgICAgICAgICAgICAgIC8vIHRoaXMuZWxlbWVudC5yZXBsYWNlV2l0aCh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cCA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJpbnB1dC1ncm91cFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5wdXRHcm91cCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kaW5wdXQpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5mby50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRmbG9hdGluZ0J1dHRvbnMuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2Zmc2V0ID0gdGhhdC4kZHJvcGRvd24ub2Zmc2V0KCk7IC8vIEdldCB0aGUgdG9wLWxlZnQgY29ybmVyIHBvc2l0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAkZmxvYXRpbmdCdXR0b25zLmNzcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiBgJHtvZmZzZXQudG9wfXB4YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodDogYGNhbGMoMTAwJSAtICR7b2Zmc2V0LmxlZnQgKyB0aGF0LiRkcm9wZG93bi53aWR0aCgpfXB4KWAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX3BvcHVsYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll91cGRhdGVTZWxlY3RlZEZpZWxkcygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGZsb2F0aW5nQnV0dG9ucy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIiwgXCJlbnRlciBhIG5vZGVJZCBvciBhIGJyb3dzZVBhdGggXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvID0gJChgPGRpdiBjbGFzcz1cImluZm8tdGV4dFwiPjwvZGl2PmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcInN0ZXJmaXZlLWRyb3Bkb3duXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAvLyBjb25zdCAkc2Nyb2xsYWJsZUNvbnRlbnQgPSAkKCc8ZGl2IGNsYXNzPVwic3RlcmZpdmUtZHJvcGRvd24tc2Nyb2xsYWJsZS1jb250ZW50XCI+PC9kaXY+Jyk7XG4gICAgICAgICAgICAgICAgY29uc3QgJHZhbGlkYXRlQnV0dG9uID0gJCgnPHNwYW4gY2xhc3M9XCJ2YWxpZGF0ZS1idXR0b25cIj7inJQ8L3NwYW4+Jyk7IC8vIFVzZSBhbnkgaWNvbiBvciB0ZXh0IGhlcmVcbiAgICAgICAgICAgICAgICBjb25zdCAkY2FuY2VsQnV0dG9uID0gJCgnPHNwYW4gY2xhc3M9XCJjYW5jZWwtYnV0dG9uXCI+4pyWPC9zcGFuPicpOyAvLyBVc2UgYW55IGljb24gb3IgdGV4dCBoZXJlXG4gICAgICAgICAgICAgICAgY29uc3QgJGZsb2F0aW5nQnV0dG9ucyA9ICQoJzxkaXYgY2xhc3M9XCJmbG9hdGluZy1idXR0b25zXCI+PC9kaXY+JykuYXBwZW5kKCR2YWxpZGF0ZUJ1dHRvbiwgJGNhbmNlbEJ1dHRvbik7XG4gICAgICAgICAgICAgICAgJGZsb2F0aW5nQnV0dG9ucy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgLy8gRGVmaW5lIHlvdXIgdmFsaWRhdGlvbiBhbmQgY2FuY2VsbGF0aW9uIGxvZ2ljXG4gICAgICAgICAgICAgICAgJHZhbGlkYXRlQnV0dG9uLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGF0Ll9zZXRJbnB1dFZhbHVlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkY2FuY2VsQnV0dG9uLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmVtcHR5KCkuYXBwZW5kKHRoYXQuJHRyZWUsICRmbG9hdGluZ0J1dHRvbnMpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVdpZHRoID0gMjA7IC8vIFNldCB3aWR0aCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVIZWlnaHQgPSAyMDsgLy8gU2V0IGhlaWdodCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50UG9zID0gJCh0aGlzKS5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5wYWdlWCA+PSBlbGVtZW50UG9zLmxlZnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVggPD0gZWxlbWVudFBvcy5sZWZ0ICsgYmVmb3JlV2lkdGggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPj0gZWxlbWVudFBvcy50b3AgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPD0gZWxlbWVudFBvcy50b3AgKyBiZWZvcmVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiY2xpY2tlZCBvbiBpY29uXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJjbGlja2VkIG9uIFwiLCAkbGkuZGF0YShcInZhbHVlXCIpLCAkbGkuYXR0cihcImNsYXNzXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUb2dnbGUgaXRzIGV4cGFuZGVkL2NvbGxhcHNlZCBzdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuY2hpbGRyZW4oXCJ1bFwiKS5jaGlsZHJlbigpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjbGlja2luZyBvdXRzaWRlIHRoZSBwYWdlIHdpbGwgaGlkZSB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCh0aGF0LiRjb21ibykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9wb3B1bGF0ZSgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBjb25zdCBleHRyYWN0RXZlbnRGaWVsZEluZm8gPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsLCB9KSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2V4dHJhY3RFdmVudFR5cGVzYDtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgcmV0dXJuIHsgZXZlbnRzOiBudWxsIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICBjb25zdCBldmVudHMgPSByZXNwb25zZS5ldmVudHM7XG4gICAgICAgIHJldHVybiB7IGV2ZW50cyB9O1xuICAgIH0pO1xuXG4gICAgY29uc3QgZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IHJlZE5vZGUgPSBSRUQubm9kZXMubm9kZShlbmRwb2ludElkKTtcbiAgICAgICAgaWYgKCFyZWROb2RlKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgLy8gY29uc3QgY3JlZGVudGlhbHMgPSBSRUQuKGVuZHBvaW50SWQpO1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIHNhbml0aXplIGFuZCBleHRyYWN0IHRoZSBlbmRwb2ludCBhdHRyaWJ1dGVzIG9ubHkgKCBub3QgdGhlIG5vZGUtcmVkIHN0dWZmKVxuICAgICAgICBjb25zdCB7IGVuZHBvaW50LCBzZWN1cml0eU1vZGUsIHNlY3VyaXR5UG9saWN5LCB1c2VySWRlbnRpdHlUeXBlLCBjcmVkZW50aWFscyB9ID0gcmVkTm9kZTtcbiAgICAgICAgY29uc3QgcmV0VmFsdWUgPSB7XG4gICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzLFxuICAgICAgICB9O1xuICAgICAgICAvLyB4eCBjb25zb2xlLmxvZyhcInh4eFwiLCByZXRWYWx1ZSk7XG4gICAgICAgIHJldHVybiByZXRWYWx1ZTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycyxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVycyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCBlbmRwb2ludE5yID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgIGlmICghZW5kcG9pbnROcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGVuZHBvaW50SWQsXG4gICAgICAgICAgICAvLyBlbmRwb2ludDogZW5kcG9pbnROci5lbmRwb2ludCxcbiAgICAgICAgICAgIC8vIHNlY3VyaXR5TW9kZTogZW5kcG9pbnROci5zZWN1cml0eU1vZGUsXG4gICAgICAgICAgICAvLyBzZWN1cml0eVBvbGljeTogZW5kcG9pbnROci5zZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyB1c2VySWRlbnRpdHlUeXBlOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICAvLyBjcmVkZW50aWFsOiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIHVzZXJOYW1lOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlck5hbWUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyBwYXNzd29yZDogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnBhc3N3b3JkIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgLy8gdXNlckNlcnRpZmljYXRlOiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJDZXJ0aWZpY2F0ZSxcbiAgICAgICAgICAgIC8vIHVzZXJQcml2YXRla2V5OiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJQcml2YXRla2V5LFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBSRUQubm9kZXMucmVnaXN0ZXJUeXBlKFwiT3BjVWEtQ2xpZW50Mi1Nb25pdG9yRXZlbnRcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJvcGN1YVwiLFxuICAgICAgICBjb2xvcjogXCIjQzBERUVEXCIsXG4gICAgICAgIGFsaWduOiBcInJpZ2h0XCIsXG4gICAgICAgIGljb246IFwib3BjdWFsb2dvYmlnLnBuZ1wiLFxuICAgICAgICBwYWxldHRlTGFiZWw6IFwibW9uaXRvciBldmVudHNcIixcbiAgICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgICAgIGlucHV0czogeyB2YWx1ZTogMSB9LFxuICAgICAgICAgICAgb3V0cHV0OiB7IHZhbHVlOiA0IH0sXG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUsIHR5cGU6IFwiT3BjVWEtRW5kcG9pbnQyXCIgfSxcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbjoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIlwiLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbGlkYXRlOiAodmFsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWwgPT09IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc3RhcnRJbW1lZGlhdGVseTogeyB2YWx1ZTogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIC8vIHdlIHVzZSBhIGRpZmZlcmVudCB3aWRnZXQgZm9yIGVkaXRpbmcgdGhlIG5vZGVJZCwgYmVjYXVzZSB0aGUgYmVoYXZpb3JcbiAgICAgICAgICAgIC8vIGlzIHNwZWNpZmljIHRvIG1vbml0b3IsIGhvd2V2ZXIgcHJvcGVydHkgd2lsbCBiZSBzdG9yZWQgaW4gbm9kZUlkXG4gICAgICAgICAgICBub2RlSWQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiBmYWxzZSwgdmFsaWRhdGU6ICgpID0+IHRydWUgfSxcbiAgICAgICAgICAgIHNhbXBsaW5nSW50ZXJ2YWw6IHsgdmFsdWU6IDEwMDAsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBkaXNjYXJkT2xkZXN0OiB7IHZhbHVlOiB0cnVlLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgcXVldWVTaXplOiB7IHZhbHVlOiAxMCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHNlbGVjdENsYXVzZXM6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICB3aGVyZUNsYXVzZTogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgIH0sXG4gICAgICAgIC8vIGlucHV0czosXG4gICAgICAgIG91dHB1dHM6IDIsIC8vIDIgb3V0cHV0LCBzZWNvbmQgZm9yIHJhdyBub2RlLW9wY3VhIGRpYWdub3N0aWNzIG9yIG1vcmUgY29tcGxldGUgbWVzc2FnZVxuICAgICAgICBsYWJlbCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgXCJPUENVQSBNb25pdG9yXCI7XG4gICAgICAgIH0sXG4gICAgICAgIGxhYmVsU3R5bGUoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lID8gXCJub2RlX2xhYmVsX2l0YWxpY1wiIDogXCJcIjtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0cHJlcGFyZSgpIHtcbiAgICAgICAgICAgIGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCgpO1xuICAgICAgICAgICAgZGVjbGFyZUV2ZW50RmllbGRTZWxlY3RvcldpZGdldCgpO1xuICAgICAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvblNlbGVjdG9yKFJFRCwgdGhpcyk7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIEFjdGlvbiBNb25pdG9yIENvbW1vblxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIC0tIGluc3RhbGwgc3Vic2NyaXB0aW9uIHNlbGVjdGlvblxuICAgICAgICAgICAgJChcIm5vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hlY2tlZCA9ICQoXCIjbm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLnByb3AoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgICAgIGlmIChjaGVja2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1pbnB1dHNcIikudmFsKDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LWlucHV0c1wiKS52YWwoMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIEFjdGlvbiBNb25pdG9yXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgY29uc3QgJG5vZGVJZCA9ICQoXCIjbm9kZS1pbnB1dC1ub2RlSWRcIik7XG4gICAgICAgICAgICAkbm9kZUlkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBmaWx0ZXIobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJPYmplY3RcIjtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGlzU2VsZWN0YWJsZShub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiIC8qIHRvIGRvIHx8IG5vZGVEZXNjLmV2ZW50Tm90aWZpZXIgPT09IDEgKi87XG4gICAgICAgICAgICAgICAgfSB9KSk7XG4gICAgICAgICAgICAvLyAtLS0tLS0gaW5zdGFsbCBldmVudCBmaWVsZCBzZWxlY3RvclxuICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXdoZXJlQ2xhdXNlXCIpO1xuICAgICAgICAgICAgY29uc3QgJHNlbGVjdENsYXVzZXMgPSAkKFwiI25vZGUtaW5wdXQtc2VsZWN0Q2xhdXNlc1wiKTtcbiAgICAgICAgICAgICRzZWxlY3RDbGF1c2VzLmV2ZW50RmllbGRTZWxlY3RvcihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpKTtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0c2F2ZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0SW1tZWRpYXRlbHkgPSAkKFwiI25vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS5wcm9wKFwiY2hlY2tlZFwiKTtcbiAgICAgICAgICAgIGlmIChzdGFydEltbWVkaWF0ZWx5KSB7XG4gICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXN0YXJ0SW1tZWRpYXRlbHlcIikudmFsKHN0YXJ0SW1tZWRpYXRlbHkgPyAwIDogMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dHMgPSBzdGFydEltbWVkaWF0ZWx5ID8gMCA6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS52YWwoMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dHMgPSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
9
9
  </script>
10
10
  <script type="text/x-red" data-template-name="OpcUa-Client2-MonitorEvent">
11
11
  <style>
@@ -97,3 +97,4 @@ WhereClause
97
97
  SelectClause
98
98
 
99
99
  </script>
100
+ //# sourceMappingURL=OpcUa-Client2-MonitorEvent.html.map