@opcua/for-node-red 2.3.1 → 2.4.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.
@@ -4,8 +4,8 @@
4
4
  </style>
5
5
 
6
6
  <script type="text/javascript">
7
- function _0x544e(){const _0x47f467=['toggle','inputArguments','.spinner','Forward','filter','</p>','ns=0;i=46','result','fa-sliders','pageX','ns=0;i=45','userPrivatekey','validate','typeDefinition','Inverse','done','installArgumentList','log','SandyBrown','addItem',':visible','empty','<li>error\x20','loading','text','$dropdown','endpoint','already\x20fetched','Objects','removeClass','browseName','#node-input-objectId','-messages','SeaGreen','<div\x20class=\x22spinner\x22></div>','internal\x20error\x20','expanded','1bhUOXu','closest','Testing\x20Connection\x20...','auto','function','references','DodgerBlue','Organizes','call','click','HasSubtype','displayName','fa-question','<div/>','dataType','baseUrl','!!failure!!','hide','reset','HasTypeDefinition','/browse','read','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','1424yVZarF','\x20Fetching\x20done','550HBXhsR','SteelBlue','$tree','length','NodeClass','resolveParentNode','<p>','</li>','82431DBLYfz','fa-list-alt','isSelectable','toString','expandable','assign',';\x22></i>\x20','$verifyBtn','fetched','append','isTypeRef','dataTypes','$info','$input','isArray','ns=0;i=40','userCertificate','argumentDefinition','TypeDefinition','children','reference','next','then','$toggleTreeBtn','nodeAddressString','failure','addClass','DataType','opc.tcp://opcuademo.sterfive.com:26543','UserName','#method-output-argument-definition','Calling\x20nodeBrowser','$combo','throw','options','957550gOnWRB','val','err','widget','change','hasClass','Unspecified','offset','opcua','name','HasChild','ns=0;i=35','message','i=61','expandable\x20expanded','<div\x20class=\x22argument-entry\x22>','currentParent','nodes','HasProperty','valueRank','apply','BrowseName','nodeId','/checkNodeId','ObjectType','<br>','status','already\x20loading','ns=0;i=47','input-group','css','fa-object-group','Both','#node-input-endpoint','trigger','60SxOkPD','DisplayName','parentNode','target','../../icons/opcuanodeLogo.png','userIdentityType','CadetBlue','json','value','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','<div\x20class=\x22info-text\x22></div>','#node-input-methodId','element','Method','userName','editableList','verify','1523238oCOEcQ','sterfive.nodeBrowser','HasComponent','pageY','#C0DEED','30070mJUzmh','securityMode','50%','444552dtiOHr','statusText','match','<input\x20type=\x22text\x22>','fa-folder','6566KhwvCH','application/json','error','11406EgZhum','suppressed','outputArguments','Bad','ReferenceType','Object','toggleClass','Invalid','arguments','VariableType','split','catch','Variable','browseResult','ns=0;i=61','OpcUa-Client2-Call','ns=0;i=34','top','Calling\x20nodeBrowser\x20Done','referenceTypeId','fetched\x20:\x20','-success','map','registerType','stringify','ns=0;i=85','#method-input-argument-definition','statusCode','View','/opcua-endpoint2','fa-cog','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','nodeBrowser','IsForward','attr','rgba(61,\x2060,\x204,\x200.525)','POST','nodeClass','join','placeholder','show','endpointNode','replaceWith','html','OPCUA-Call','DarkOrange','data','appendTo','$inputGroup','<ul\x20class=\x22sterfive-tree\x22></ul>'];_0x544e=function(){return _0x47f467;};return _0x544e();}function _0x1de8(_0x48d2a4,_0x226a3b){const _0x544e7c=_0x544e();return _0x1de8=function(_0x1de88b,_0x397b3f){_0x1de88b=_0x1de88b-0x6d;let _0x43a218=_0x544e7c[_0x1de88b];return _0x43a218;},_0x1de8(_0x48d2a4,_0x226a3b);}(function(_0x5c37ab,_0xe991a8){const _0x52de61=_0x1de8,_0x206da6=_0x5c37ab();while(!![]){try{const _0x521425=-parseInt(_0x52de61(0xf2))/0x1*(-parseInt(_0x52de61(0x8b))/0x2)+parseInt(_0x52de61(0x93))/0x3+parseInt(_0x52de61(0x7a))/0x4*(-parseInt(_0x52de61(0x90))/0x5)+parseInt(_0x52de61(0x9b))/0x6+-parseInt(_0x52de61(0x98))/0x7*(-parseInt(_0x52de61(0x109))/0x8)+parseInt(_0x52de61(0x113))/0x9*(-parseInt(_0x52de61(0x10b))/0xa)+-parseInt(_0x52de61(0x136))/0xb;if(_0x521425===_0xe991a8)break;else _0x206da6['push'](_0x206da6['shift']());}catch(_0x8a2783){_0x206da6['push'](_0x206da6['shift']());}}}(_0x544e,0x6115f),(function(){'use strict';const _0x398609=_0x1de8;function _0x1efc4c(_0x1bdcc5,_0x3c045a,_0x5e450e,_0x2e89c7){function _0x439e50(_0x2b07d6){return _0x2b07d6 instanceof _0x5e450e?_0x2b07d6:new _0x5e450e(function(_0x1ff19f){_0x1ff19f(_0x2b07d6);});}return new(_0x5e450e||(_0x5e450e=Promise))(function(_0x3f0bad,_0x365c5a){const _0x14dd7e=_0x1de8;function _0x6db49(_0x553d8d){const _0x51c333=_0x1de8;try{_0x418d60(_0x2e89c7[_0x51c333(0x128)](_0x553d8d));}catch(_0x320e13){_0x365c5a(_0x320e13);}}function _0x16a5ec(_0x346557){const _0x551881=_0x1de8;try{_0x418d60(_0x2e89c7[_0x551881(0x134)](_0x346557));}catch(_0x3a2e2e){_0x365c5a(_0x3a2e2e);}}function _0x418d60(_0x1c7581){const _0x45c3fc=_0x1de8;_0x1c7581[_0x45c3fc(0xdc)]?_0x3f0bad(_0x1c7581[_0x45c3fc(0x82)]):_0x439e50(_0x1c7581['value'])['then'](_0x6db49,_0x16a5ec);}_0x418d60((_0x2e89c7=_0x2e89c7[_0x14dd7e(0x14a)](_0x1bdcc5,_0x3c045a||[]))[_0x14dd7e(0x128)]());});}typeof SuppressedError==='function'?SuppressedError:function(_0x3a7d52,_0x557f03,_0x569279){const _0x39801d=_0x1de8;var _0x1d04ad=new Error(_0x569279);return _0x1d04ad[_0x39801d(0x13f)]='SuppressedError',_0x1d04ad[_0x39801d(0x9a)]=_0x3a7d52,_0x1d04ad[_0x39801d(0x9c)]=_0x557f03,_0x1d04ad;};const _0x375bc6=_0x398609(0x141),_0x25ed84=_0x398609(0xa9),_0x337a0a=_0x398609(0x73),_0x2b1b17=_0x398609(0xd3),_0x24f3d7=_0x398609(0xab),_0x1c779f=_0x398609(0xd7),_0x417c2c=_0x398609(0x122);var _0x13c199;(function(_0x483f7b){const _0x2052d8=_0x398609;_0x483f7b[_0x483f7b['Forward']=0x0]=_0x2052d8(0xd0),_0x483f7b[_0x483f7b[_0x2052d8(0xdb)]=0x1]='Inverse',_0x483f7b[_0x483f7b[_0x2052d8(0x77)]=0x2]='Both',_0x483f7b[_0x483f7b[_0x2052d8(0xa2)]=0x3]=_0x2052d8(0xa2);}(_0x13c199||(_0x13c199={})));var _0x4c8a43;(function(_0x2ca4ce){const _0x2ed871=_0x398609;_0x2ca4ce[_0x2ca4ce[_0x2ed871(0x13c)]=0x0]=_0x2ed871(0x13c),_0x2ca4ce[_0x2ca4ce['Object']=0x1]=_0x2ed871(0xa0),_0x2ca4ce[_0x2ca4ce[_0x2ed871(0xa7)]=0x2]='Variable',_0x2ca4ce[_0x2ca4ce[_0x2ed871(0x87)]=0x4]=_0x2ed871(0x87),_0x2ca4ce[_0x2ca4ce[_0x2ed871(0x6f)]=0x8]='ObjectType',_0x2ca4ce[_0x2ca4ce[_0x2ed871(0xa4)]=0x10]=_0x2ed871(0xa4),_0x2ca4ce[_0x2ca4ce['ReferenceType']=0x20]=_0x2ed871(0x9f),_0x2ca4ce[_0x2ca4ce['DataType']=0x40]=_0x2ed871(0x12e),_0x2ca4ce[_0x2ca4ce[_0x2ed871(0xb7)]=0x80]='View';}(_0x4c8a43||(_0x4c8a43={})));var _0x166b14;(function(_0x36f317){const _0x23e648=_0x398609;_0x36f317[_0x36f317[_0x23e648(0xa0)]=0x1]=_0x23e648(0xa0),_0x36f317[_0x36f317['Variable']=0x2]=_0x23e648(0xa7),_0x36f317[_0x36f317['Method']=0x4]='Method',_0x36f317[_0x36f317[_0x23e648(0x6f)]=0x8]=_0x23e648(0x6f),_0x36f317[_0x36f317['VariableType']=0x10]=_0x23e648(0xa4),_0x36f317[_0x36f317['ReferenceType']=0x20]=_0x23e648(0x9f),_0x36f317[_0x36f317[_0x23e648(0x12e)]=0x40]='DataType',_0x36f317[_0x36f317['View']=0x80]='View';}(_0x166b14||(_0x166b14={})));var _0xdb468e;(function(_0x336a78){const _0x95e6e4=_0x398609;_0x336a78[_0x336a78[_0x95e6e4(0x9f)]=0x1]=_0x95e6e4(0x9f),_0x336a78[_0x336a78[_0x95e6e4(0xbc)]=0x2]=_0x95e6e4(0xbc),_0x336a78[_0x336a78['NodeClass']=0x4]=_0x95e6e4(0x10f),_0x336a78[_0x336a78[_0x95e6e4(0x14b)]=0x8]=_0x95e6e4(0x14b),_0x336a78[_0x336a78[_0x95e6e4(0x7b)]=0x10]=_0x95e6e4(0x7b),_0x336a78[_0x336a78[_0x95e6e4(0x125)]=0x20]=_0x95e6e4(0x125);}(_0xdb468e||(_0xdb468e={})));function _0x3816cc(_0x1f818c){const _0x6b5119=_0x398609;switch(_0x1f818c){case _0x6b5119(0xf9):return _0x375bc6;case _0x6b5119(0x148):return _0x2b1b17;case _0x6b5119(0x8d):return _0x337a0a;case _0x6b5119(0x140):return _0x24f3d7;case _0x6b5119(0xfc):return _0x1c779f;case _0x6b5119(0x105):return _0x417c2c;}}const _0x1ad395=_0x5ced0e=>{const _0x4704f3=_0x398609;switch(_0x5ced0e[_0x4704f3(0xc0)]){case _0x4704f3(0xa0):if(_0x5ced0e[_0x4704f3(0xae)]===_0x375bc6);if(_0x5ced0e[_0x4704f3(0xda)]===_0x25ed84||_0x5ced0e[_0x4704f3(0xae)]===_0x4704f3(0x143))return{'icon':_0x4704f3(0x97),'color':_0x4704f3(0xbe)};return{'icon':'fa-object-group','color':_0x4704f3(0xee)};case'Variable':if(_0x5ced0e[_0x4704f3(0xae)]===_0x337a0a)return{'icon':_0x4704f3(0x114),'color':_0x4704f3(0x10c)};else return _0x5ced0e['referenceTypeId']===_0x2b1b17?{'icon':_0x4704f3(0x114),'color':_0x4704f3(0xf8)}:{'icon':_0x4704f3(0x114),'color':_0x4704f3(0x80)};case _0x4704f3(0x87):return{'icon':_0x4704f3(0xb9),'color':_0x4704f3(0xdf)};case _0x4704f3(0x6f):return{'icon':_0x4704f3(0x76),'color':_0x4704f3(0xc8)};case _0x4704f3(0xa4):return{'icon':_0x4704f3(0xd5),'color':_0x4704f3(0xc8)};}return{'icon':_0x4704f3(0xfe),'color':'grey'};},_0x16a5ab=({endpointNode:_0x143803,endpoint:_0x2613a6,baseUrl:_0x4156ed},_0x139392,_0x185937)=>_0x1efc4c(void 0x0,void 0x0,void 0x0,function*(){const _0x5856d5=_0x398609,_0x1470f3=_0x4156ed+'/opcua-endpoint2',_0x423382=_0x1470f3+_0x5856d5(0x106),_0x565337=Object[_0x5856d5(0x118)](Object[_0x5856d5(0x118)]({},_0x185937),{'nodeId':_0x139392,'resultMask':0x3f}),_0x3d488c=yield fetch(_0x423382,{'method':_0x5856d5(0xbf),'body':JSON['stringify']({'endpointNode':_0x143803,'endpoint':_0x2613a6,'browseDescription':_0x565337}),'headers':{'Content-Type':_0x5856d5(0x99)}});if(_0x3d488c[_0x5856d5(0x71)]!==0xc8)return console[_0x5856d5(0xde)]('fetching\x20failed\x20with\x20error',_0x3d488c[_0x5856d5(0x71)],_0x3d488c[_0x5856d5(0x94)]),{'references':[]};console[_0x5856d5(0xde)](_0x5856d5(0xaf),_0x3d488c[_0x5856d5(0x71)],_0x3d488c['statusText']);const _0x10f805=yield _0x3d488c[_0x5856d5(0x81)](),_0x22cdee=_0x10f805[_0x5856d5(0xa8)]['references']||[];return{'references':_0x22cdee};}),_0x74b14e={'referenceTypeId':_0x3816cc(_0x398609(0x140)),'includeSubtypes':!![],'browseDirection':_0x13c199['Forward'],'nodeClassMask':_0x4c8a43[_0x398609(0xa7)]|_0x4c8a43[_0x398609(0xa0)]|_0x4c8a43[_0x398609(0x87)],'resultMask':0x3f},_0xbf71dd={'referenceTypeId':_0x3816cc(_0x398609(0xf9)),'includeSubtypes':!![],'browseDirection':_0x13c199[_0x398609(0xd0)],'nodeClassMask':_0x4c8a43[_0x398609(0xa7)]|_0x4c8a43[_0x398609(0xa0)]|_0x4c8a43['Method'],'resultMask':0x3f},_0x21566d=({endpointNode:_0x374978,endpoint:_0x2a1963,baseUrl:_0x2d39d4},_0x2942d3,_0x331cf9)=>_0x1efc4c(void 0x0,void 0x0,void 0x0,function*(){const _0x369de0=_0x398609,_0x408862=_0x2d39d4+_0x369de0(0xb8),_0x21733e=_0x2942d3[_0x369de0(0x137)](),_0x41bb21=yield fetch(_0x408862+_0x369de0(0x6e),{'method':'POST','body':JSON[_0x369de0(0xb3)]({'endpointNode':_0x374978,'endpoint':_0x2a1963,'nodeId':_0x21733e}),'headers':{'Content-Type':_0x369de0(0x99)}}),_0x35b718=(_0x350892,_0x820bff)=>{const _0x5c1765=_0x369de0;_0x331cf9[_0x5c1765(0xe5)](_0x350892)[_0x5c1765(0x12d)]('sterfive-info')[_0x5c1765(0x12d)](_0x820bff),_0x331cf9[_0x5c1765(0xc3)](),setTimeout(()=>{const _0x3e421f=_0x5c1765;_0x331cf9['removeClass'](_0x820bff),_0x331cf9[_0x3e421f(0x103)]();},0xbb8);},_0x1f369c=yield _0x41bb21[_0x369de0(0x81)]();_0x41bb21[_0x369de0(0x71)]!==0xc8?_0x35b718(_0x369de0(0x102)+_0x21733e,'failure'):_0x1f369c[_0x369de0(0xb6)][_0x369de0(0x95)](/Good/)?(_0x2942d3[_0x369de0(0x137)](_0x1f369c[_0x369de0(0x12b)]),_0x2942d3[_0x369de0(0x79)](_0x369de0(0x13a)),_0x35b718('Good','ok')):(_0x2942d3[_0x369de0(0x137)](''+_0x21733e),_0x35b718(_0x1f369c[_0x369de0(0xb6)]+'\x20'+_0x41bb21[_0x369de0(0x94)],_0x369de0(0x12c)));});function _0x22259a(_0x5e223e,_0x50ec0a){return _0x1efc4c(this,void 0x0,void 0x0,function*(){const _0x2347a2=_0x1de8,_0x330273=_0x5e223e[_0x2347a2(0xc9)](_0x2347a2(0x82)),_0x275c53=yield _0x16a5ab(_0x50ec0a,_0x330273,_0x74b14e),_0x31d1e0=yield _0x16a5ab(_0x50ec0a,_0x330273,_0xbf71dd);return{'references':[..._0x275c53[_0x2347a2(0xf7)],..._0x31d1e0['references']]};});}const _0x55eb62={'referenceTypeId':_0x3816cc(_0x398609(0xfc)),'includeSubtypes':!![],'browseDirection':_0x13c199[_0x398609(0xd0)],'nodeClassMask':_0x4c8a43['ReferenceType']|_0x4c8a43[_0x398609(0x6f)]|_0x4c8a43[_0x398609(0x12e)]|_0x4c8a43['VariableType'],'resultMask':0x3f};function _0x51adab(_0x257d47,_0x46bcc9){return _0x1efc4c(this,void 0x0,void 0x0,function*(){const _0xb28a70=_0x1de8,_0x18abd1=_0x257d47[_0xb28a70(0xc9)](_0xb28a70(0x82)),_0x5e37ce=yield _0x16a5ab(_0x46bcc9,_0x18abd1,_0x55eb62);return _0x5e37ce;});}const _0x1231d4=_0x54118a=>{const _0x2b0491=_0x398609;var _0x1661e6,_0x1d7a66;if(!_0x54118a){const _0x346e44=$(_0x2b0491(0xba));return _0x346e44;}const _0x2800c3=_0x54118a[_0x2b0491(0x6d)]['toString'](),_0x3d1109=((_0x1661e6=_0x54118a[_0x2b0491(0xfd)])===null||_0x1661e6===void 0x0?void 0x0:_0x1661e6[_0x2b0491(0xe5)])||((_0x1d7a66=_0x54118a[_0x2b0491(0xeb)])===null||_0x1d7a66===void 0x0?void 0x0:_0x1d7a66[_0x2b0491(0x13f)])||_0x54118a['nodeId'][_0x2b0491(0x116)](),{icon:_0x343dae,color:_0x1b2de6}=_0x1ad395(_0x54118a),_0xf84a1d=$('<li><i\x20class=\x22fa\x20'+_0x343dae+'\x22\x20style=\x22color:'+_0x1b2de6+_0x2b0491(0x119)+_0x3d1109+'<ul></ul></li>');return _0xf84a1d[_0x2b0491(0x12d)](_0x2b0491(0x117)),_0xf84a1d[_0x2b0491(0xc9)]('value',_0x2800c3),_0xf84a1d['data'](_0x2b0491(0x127),_0x54118a),_0xf84a1d;},_0x14f93e=()=>{const _0x3a2c4d=_0x398609;$[_0x3a2c4d(0x139)](_0x3a2c4d(0x8c),{'options':{'endpointNode':()=>({'endpoint':_0x3a2c4d(0x12f)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':'Objects'},'nodeClass':_0x3a2c4d(0xa0),'nodeId':_0x3a2c4d(0xb4),'displayName':{'text':_0x3a2c4d(0xe9)},'typeDefinition':_0x25ed84}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x1efc4c(this,void 0x0,void 0x0,function*(){const _0x50ae3f=_0x1de8,_0x1dbd74=this,_0x2dc557=typeof _0x1dbd74[_0x50ae3f(0x135)][_0x50ae3f(0x7c)]===_0x50ae3f(0xf6)?_0x1dbd74[_0x50ae3f(0x135)]['parentNode']():_0x1dbd74['options'][_0x50ae3f(0x7c)];if(_0x2dc557 instanceof Promise)return yield _0x2dc557;return _0x2dc557;});},'reset'(){const _0x5ab0eb=_0x3a2c4d,_0x667232=this;_0x667232[_0x5ab0eb(0x10d)][_0x5ab0eb(0xe2)](),this[_0x5ab0eb(0x110)]()[_0x5ab0eb(0x129)](_0x43583b=>{const _0x45cd3e=_0x5ab0eb,_0x305670=_0x1231d4(_0x43583b);_0x667232[_0x45cd3e(0x10d)][_0x45cd3e(0x11c)](_0x305670),_0x667232[_0x45cd3e(0x146)]=_0x43583b;});},'verify'(){const _0x22e743=_0x3a2c4d,_0x5154dd=this,_0x3ea5b7={'baseUrl':_0x5154dd[_0x22e743(0x135)]['baseUrl'],'endpointNode':typeof _0x5154dd['options'][_0x22e743(0xc4)]==='function'?_0x5154dd['options'][_0x22e743(0xc4)]():_0x5154dd[_0x22e743(0x135)][_0x22e743(0xc4)],'endpoint':typeof _0x5154dd[_0x22e743(0x135)][_0x22e743(0xe7)]==='function'?_0x5154dd[_0x22e743(0x135)][_0x22e743(0xe7)]():_0x5154dd[_0x22e743(0x135)]['endpoint']};_0x21566d(_0x3ea5b7,_0x5154dd['$input'],_0x5154dd[_0x22e743(0x11f)]);},'_create'(){const _0x368e42=_0x3a2c4d,_0x50cb86=this;function _0x29e2c3(_0x595093,_0x3e157a,_0x3fce81){return _0x1efc4c(this,void 0x0,void 0x0,function*(){const _0x32daa4=_0x1de8;if(_0x595093[_0x32daa4(0x13b)](_0x32daa4(0x11b))){console[_0x32daa4(0xde)](_0x32daa4(0xe8));return;}if(_0x595093[_0x32daa4(0x13b)]('loading')){console[_0x32daa4(0xde)](_0x32daa4(0x72));return;}_0x595093[_0x32daa4(0x12d)](_0x32daa4(0xe4)),_0x595093[_0x32daa4(0x11c)](_0x32daa4(0xef));try{_0x595093['children']('ul')['empty']();const {references:_0x414ff1}=yield _0x3e157a(_0x595093,_0x3fce81);for(const _0x2f80e3 of _0x414ff1){if(_0x50cb86[_0x32daa4(0x135)][_0x32daa4(0xd1)]&&!_0x50cb86[_0x32daa4(0x135)][_0x32daa4(0xd1)](_0x2f80e3))continue;const _0x3d27e2=_0x1231d4(_0x2f80e3);_0x595093[_0x32daa4(0x126)]('ul')['append'](_0x3d27e2);}_0x595093[_0x32daa4(0x12d)](_0x32daa4(0x11b));}catch(_0xf93ecd){_0x595093[_0x32daa4(0x126)]('ul')[_0x32daa4(0x11c)](_0x32daa4(0xe3)+_0xf93ecd[_0x32daa4(0x142)]+_0x32daa4(0x112)),console['log']('err',_0xf93ecd);}_0x595093['find'](_0x32daa4(0xcf))['remove'](),_0x595093[_0x32daa4(0xea)](_0x32daa4(0xe4));});}_0x50cb86[_0x368e42(0x120)]=this[_0x368e42(0x86)],_0x50cb86[_0x368e42(0x133)]=$('<div/>'),_0x50cb86[_0x368e42(0x133)][_0x368e42(0x12d)]('sterfive-combo-box'),this[_0x368e42(0x86)][_0x368e42(0xc5)](_0x50cb86[_0x368e42(0x133)]),_0x50cb86[_0x368e42(0xcb)]=$(_0x368e42(0xff))[_0x368e42(0x12d)](_0x368e42(0x74)),_0x50cb86[_0x368e42(0x133)][_0x368e42(0x11c)](_0x50cb86['$inputGroup']),_0x50cb86[_0x368e42(0xcb)][_0x368e42(0x11c)](_0x50cb86[_0x368e42(0x120)]),_0x50cb86[_0x368e42(0x12a)]=$('<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>'),_0x50cb86[_0x368e42(0xcb)][_0x368e42(0x11c)](_0x50cb86[_0x368e42(0x12a)]),_0x50cb86['$toggleTreeBtn']['on']('click',function(){const _0x4565e4=_0x368e42;!_0x50cb86['$dropdown']['is'](_0x4565e4(0xe1))&&(_0x50cb86[_0x4565e4(0x110)]()[_0x4565e4(0x129)](_0x5446aa=>{const _0x40ddaf=_0x4565e4;var _0xe06867;(_0x5446aa!==_0x50cb86[_0x40ddaf(0x146)]||((_0xe06867=_0x50cb86['currentParent'])===null||_0xe06867===void 0x0?void 0x0:_0xe06867[_0x40ddaf(0x6d)])!==_0x5446aa[_0x40ddaf(0x6d)])&&_0x50cb86[_0x40ddaf(0x104)]();}),_0x50cb86[_0x4565e4(0x11f)][_0x4565e4(0x103)]()),_0x50cb86['$dropdown'][_0x4565e4(0xcd)]();}),_0x50cb86[_0x368e42(0x11a)]=$(_0x368e42(0x83)),_0x50cb86[_0x368e42(0xcb)][_0x368e42(0x11c)](_0x50cb86[_0x368e42(0x11a)]),_0x50cb86['$verifyBtn']['on'](_0x368e42(0xfb),()=>{const _0x2a2dd8=_0x368e42;this[_0x2a2dd8(0x8a)]();}),!_0x50cb86[_0x368e42(0x120)][_0x368e42(0xbd)](_0x368e42(0xc2))&&_0x50cb86[_0x368e42(0x120)][_0x368e42(0xbd)](_0x368e42(0xc2),_0x368e42(0x108)),_0x50cb86[_0x368e42(0x11f)]=$(_0x368e42(0x84)),_0x50cb86[_0x368e42(0x11f)]['hide'](),{'baseUrl':_0x50cb86[_0x368e42(0x135)][_0x368e42(0x101)],'endpointNode':typeof _0x50cb86['options']['endpointNode']===_0x368e42(0xf6)?_0x50cb86['options'][_0x368e42(0xc4)]():_0x50cb86[_0x368e42(0x135)][_0x368e42(0xc4)],'endpoint':typeof _0x50cb86[_0x368e42(0x135)][_0x368e42(0xe7)]===_0x368e42(0xf6)?_0x50cb86['options'][_0x368e42(0xe7)]():_0x50cb86['options'][_0x368e42(0xe7)]},_0x50cb86[_0x368e42(0xe6)]=$(_0x368e42(0xff))[_0x368e42(0x12d)]('sterfive-dropdown')[_0x368e42(0x103)](),_0x50cb86['$combo'][_0x368e42(0x11c)](_0x50cb86['$info']),_0x50cb86[_0x368e42(0x133)][_0x368e42(0x11c)](_0x50cb86['$dropdown']),_0x50cb86[_0x368e42(0x10d)]=$(_0x368e42(0xcc))[_0x368e42(0xca)](_0x50cb86['$dropdown']),this[_0x368e42(0x104)](),_0x50cb86[_0x368e42(0x10d)]['on']('click','li',function(_0x266ed3){const _0x1b2b2a=_0x368e42;var _0x16d61b,_0x2516d9;_0x266ed3['stopPropagation']();let _0x5aeb39=$(this);const _0x5bf716=0x14,_0x51effd=0x14,_0xef893c=$(this)[_0x1b2b2a(0x13d)](),_0x38f083=_0x266ed3;if(_0x38f083['pageX']>=_0xef893c['left']&&_0x38f083[_0x1b2b2a(0xd6)]<=_0xef893c['left']+_0x5bf716&&_0x38f083['pageY']>=_0xef893c[_0x1b2b2a(0xac)]&&_0x38f083[_0x1b2b2a(0x8e)]<=_0xef893c['top']+_0x51effd){if(_0x5aeb39[_0x1b2b2a(0x13b)](_0x1b2b2a(0x117))){if(_0x5aeb39[_0x1b2b2a(0x13b)](_0x1b2b2a(0x11b))){_0x5aeb39[_0x1b2b2a(0xea)](_0x1b2b2a(0x117))[_0x1b2b2a(0x12d)](_0x1b2b2a(0xf1)),_0x5aeb39[_0x1b2b2a(0x126)]('ul')[_0x1b2b2a(0xcd)]();return;}const _0x47c915={'baseUrl':_0x50cb86['options'][_0x1b2b2a(0x101)],'endpointNode':typeof _0x50cb86[_0x1b2b2a(0x135)][_0x1b2b2a(0xc4)]==='function'?_0x50cb86[_0x1b2b2a(0x135)][_0x1b2b2a(0xc4)]():_0x50cb86[_0x1b2b2a(0x135)][_0x1b2b2a(0xc4)],'endpoint':typeof _0x50cb86[_0x1b2b2a(0x135)][_0x1b2b2a(0xe7)]===_0x1b2b2a(0xf6)?_0x50cb86[_0x1b2b2a(0x135)]['endpoint']():_0x50cb86['options'][_0x1b2b2a(0xe7)]},_0x4ad67c=!_0x50cb86[_0x1b2b2a(0x135)][_0x1b2b2a(0x11d)]?_0x22259a:_0x51adab;_0x29e2c3(_0x5aeb39,_0x4ad67c,_0x47c915)[_0x1b2b2a(0x129)](()=>{const _0xaaa0e9=_0x1b2b2a;console[_0xaaa0e9(0xde)](_0xaaa0e9(0x10a)),console[_0xaaa0e9(0xde)]('fetched'),_0x5aeb39['removeClass'](_0xaaa0e9(0x117))['addClass'](_0xaaa0e9(0xf1));})[_0x1b2b2a(0xa6)](_0x30618e=>{const _0x325c0a=_0x1b2b2a;_0x5aeb39[_0x325c0a(0xea)](_0x325c0a(0x117))['addClass'](_0x325c0a(0xf1)),console['log'](_0x325c0a(0x9a),_0x30618e);});}else{if(_0x5aeb39[_0x1b2b2a(0x13b)](_0x1b2b2a(0xf1)))_0x5aeb39[_0x1b2b2a(0x126)]('ul')[_0x1b2b2a(0xcd)](),_0x5aeb39[_0x1b2b2a(0xa1)](_0x1b2b2a(0x144));else{if(_0x5aeb39[_0x1b2b2a(0x126)]('ul')[_0x1b2b2a(0x126)]()[_0x1b2b2a(0x10e)]>0x0)_0x5aeb39[_0x1b2b2a(0x126)]('ul')['toggle'](),_0x5aeb39[_0x1b2b2a(0xa1)](_0x1b2b2a(0x144));else;}}}else{const _0x14c8fb=_0x5aeb39['data']('value'),_0x5343c5=_0x5aeb39[_0x1b2b2a(0xc9)](_0x1b2b2a(0x127));if(_0x50cb86[_0x1b2b2a(0x135)][_0x1b2b2a(0x115)]&&!_0x50cb86['options']['isSelectable'](_0x5343c5))return;_0x50cb86[_0x1b2b2a(0x120)][_0x1b2b2a(0xc9)]('reference',_0x5343c5);const _0x447424=((_0x16d61b=_0x5343c5[_0x1b2b2a(0xfd)])===null||_0x16d61b===void 0x0?void 0x0:_0x16d61b[_0x1b2b2a(0xe5)])||((_0x2516d9=_0x5343c5[_0x1b2b2a(0xeb)])===null||_0x2516d9===void 0x0?void 0x0:_0x2516d9[_0x1b2b2a(0x13f)])||_0x5343c5[_0x1b2b2a(0x6d)][_0x1b2b2a(0x116)](),_0x435e6c='['+_0x447424+']('+_0x14c8fb+')';_0x50cb86[_0x1b2b2a(0x120)]['val'](_0x435e6c),_0x50cb86[_0x1b2b2a(0x120)][_0x1b2b2a(0x79)]('change'),_0x50cb86[_0x1b2b2a(0xe6)][_0x1b2b2a(0x103)]();}}),$(document)['on'](_0x368e42(0xfb),function(_0x4c1412){const _0x547a27=_0x368e42;!$(_0x4c1412[_0x547a27(0x7d)])[_0x547a27(0xf3)](_0x50cb86[_0x547a27(0x133)])[_0x547a27(0x10e)]&&_0x50cb86[_0x547a27(0xe6)][_0x547a27(0x103)]();});}});},_0x4143f8=({endpointNode:_0x38432f,endpoint:_0x531291,baseUrl:_0x645f92},_0x399d69)=>_0x1efc4c(void 0x0,void 0x0,void 0x0,function*(){const _0x1bad4b=_0x398609,_0x4986ef=_0x645f92+_0x1bad4b(0xb8),_0x10f6ba=_0x4986ef+_0x1bad4b(0x6e),_0x30fc18=yield fetch(_0x10f6ba,{'method':_0x1bad4b(0xbf),'body':JSON[_0x1bad4b(0xb3)]({'endpointNode':_0x38432f,'endpoint':_0x531291,'nodeId':_0x399d69}),'headers':{'Content-Type':_0x1bad4b(0x99)}});if(_0x30fc18['status']!==0xc8){console['log']('fetching\x20failed\x20with\x20error',_0x30fc18['status'],_0x30fc18['statusText']);const _0x5277d2={'statusCode':_0x1bad4b(0x9e),'nodeAddressString':_0x399d69};return _0x5277d2;}console['log'](_0x1bad4b(0xaf),_0x30fc18['status'],_0x30fc18[_0x1bad4b(0x94)]);const _0xd1885a=yield _0x30fc18[_0x1bad4b(0x81)]();return _0xd1885a;});function _0x466782(_0x49901e,_0x56a069,_0x40e0ff,_0x445f42){const _0x4acebd=_0x398609,_0x251635=$('#'+_0x49901e+_0x4acebd(0xb0)),_0x11b6f8=$('#'+_0x49901e+'-failure'),_0x593b02=$('#'+_0x49901e+'-pending'),_0x3ba1aa=$('#'+_0x49901e+_0x4acebd(0xed));let _0x4168d2=![];_0x251635[_0x4acebd(0x103)](),_0x11b6f8['hide'](),_0x593b02['hide'](),_0x56a069['on'](_0x4acebd(0xfb),()=>{const _0x5ca20f=_0x4acebd;if(_0x4168d2)return;_0x4168d2=!![],_0x593b02['removeClass']('hide'),_0x593b02[_0x5ca20f(0xc6)](_0x5ca20f(0xf4)),_0x251635['addClass'](_0x5ca20f(0x103)),_0x11b6f8[_0x5ca20f(0x12d)](_0x5ca20f(0x103)),_0x3ba1aa[_0x5ca20f(0xc6)]('');const {body:_0x13e064,url:_0x1ffc91}=_0x40e0ff();fetch(_0x1ffc91,{'method':_0x5ca20f(0xbf),'headers':{'Content-Type':_0x5ca20f(0x99)},'body':JSON[_0x5ca20f(0xb3)](_0x13e064)})['then'](_0x25e3d6=>_0x25e3d6[_0x5ca20f(0x81)]())[_0x5ca20f(0x129)](_0x29bd94=>{const _0xb10928=_0x5ca20f;_0x4168d2=![],_0x593b02[_0xb10928(0x103)](),console[_0xb10928(0xde)](JSON[_0xb10928(0xb3)](_0x29bd94,null,'\x20'));if(_0x29bd94[_0xb10928(0xd4)]==='ok')_0x251635['removeClass'](_0xb10928(0x103)),_0x11b6f8[_0xb10928(0x12d)](_0xb10928(0x103)),_0x3ba1aa['html'](_0x29bd94['message']['replace']('\x0a',_0xb10928(0x70))),_0x445f42(null,_0x29bd94);else{const _0xe5ca56=_0x176b7d=>!_0x176b7d?'':_0x176b7d[_0xb10928(0xa5)]('\x0a')['map'](_0x1d9df2=>_0xb10928(0x111)+_0x1d9df2+_0xb10928(0xd2))[_0xb10928(0xc1)]('\x0a'),_0x158e61=_0x18be08=>Array[_0xb10928(0x121)](_0x18be08)?_0x18be08[_0xb10928(0xb1)](_0xe5ca56)['join']('\x0a'):_0xe5ca56(_0x18be08);_0x251635[_0xb10928(0x12d)](_0xb10928(0x103)),_0x11b6f8[_0xb10928(0xea)](_0xb10928(0x103)),_0x3ba1aa[_0xb10928(0xc6)](_0x158e61(_0x29bd94[_0xb10928(0x142)])+_0x158e61(_0x29bd94['extra'])),_0x445f42(new Error(_0x29bd94['result']),_0x29bd94);}})[_0x5ca20f(0xa6)](_0x20c879=>{const _0x71468d=_0x5ca20f;_0x4168d2=![],_0x593b02[_0x71468d(0x12d)](_0x71468d(0x103)),_0x251635[_0x71468d(0x12d)](_0x71468d(0x103)),_0x11b6f8[_0x71468d(0xea)]('hide'),_0x3ba1aa[_0x71468d(0xc6)](_0x71468d(0xf0)+_0x20c879[_0x71468d(0x142)]),console[_0x71468d(0xde)](_0x71468d(0x138),_0x20c879),_0x445f42(_0x20c879,null);});});}const _0x26a377=()=>{const _0x3ab35d=_0x398609,_0x2aa1ed=$(_0x3ab35d(0x78)),_0x12194f=_0x2aa1ed[_0x3ab35d(0x137)](),_0xf3841e=RED[_0x3ab35d(0x147)]['node'](_0x12194f);if(!_0xf3841e)return undefined;const {endpoint:_0xb61da7,securityMode:_0x36cef2,securityPolicy:_0x26ecc8,userIdentityType:_0x1be933,userName:_0x3c1e1c,password:_0xadac71,userCertificate:_0x5888b2,userPrivatekey:_0x56be92}=_0xf3841e;return{'endpoint':_0xb61da7,'securityMode':_0x36cef2,'securityPolicy':_0x26ecc8,'userIdentityType':_0x1be933,'userName':_0x3c1e1c,'password':_0xadac71,'userCertificate':_0x5888b2,'userPrivatekey':_0x56be92};},_0x2fc0c6=()=>{return{'endpointNode':_0x57d05b};},_0x57d05b=()=>{const _0x3b32ef=_0x398609,_0x5ce69a=$(_0x3b32ef(0x78)),_0x1bab96=_0x5ce69a['val'](),_0x34ab8d=_0x26a377();if(!_0x34ab8d)return undefined;return{'id':_0x1bab96,'endpoint':_0x34ab8d[_0x3b32ef(0xe7)],'securityMode':_0x34ab8d[_0x3b32ef(0x91)],'securityPolicy':_0x34ab8d['securityPolicy'],'userIdentityType':_0x34ab8d['userIdentityType'],'userName':_0x34ab8d[_0x3b32ef(0x7f)]===_0x3b32ef(0x130)?_0x34ab8d[_0x3b32ef(0x88)]:undefined,'password':_0x34ab8d[_0x3b32ef(0x7f)]==='UserName'?_0x34ab8d['password']:undefined,'userCertificate':_0x34ab8d[_0x3b32ef(0x123)],'userPrivatekey':_0x34ab8d[_0x3b32ef(0xd8)]};};RED[_0x398609(0x147)][_0x398609(0xb2)](_0x398609(0xaa),{'category':_0x398609(0x13e),'color':_0x398609(0x8f),'align':'right','icon':_0x398609(0x7e),'paletteLabel':_0x398609(0xfa),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':'OpcUa-Endpoint2'},'action':{'value':_0x398609(0x107),'required':!![]},'methodId':{'value':'','required':!![]},'objectId':{'value':'','required':!![]}},'outputs':0x2,'label'(){const _0x504808=_0x398609;return this['name']||_0x504808(0xc7);},'labelStyle'(){const _0x192a5d=_0x398609;return this[_0x192a5d(0x13f)]?'node_label_italic':'';},'oneditprepare'(){const _0x203309=_0x398609,_0x1e95ac=this;_0x14f93e(),_0x1e95ac['inputs']=0x1;let _0x14b80f={};console[_0x203309(0xde)](_0x203309(0x132));const _0x2245a6=$(_0x203309(0xec)),_0x8cdc4=$(_0x203309(0x85)),_0x482f87=$(_0x203309(0xb5)),_0x5ea16f=$(_0x203309(0x131)),_0x2ea90a=$('#validate-call-arguments-button');_0x2245a6[_0x203309(0xbb)](Object[_0x203309(0x118)](Object[_0x203309(0x118)]({},_0x2fc0c6()),{'filter'(_0xad1948){const _0x347fe0=_0x203309;return _0xad1948[_0x347fe0(0xc0)]===_0x347fe0(0xa0);}})),_0x8cdc4['nodeBrowser'](Object[_0x203309(0x118)](Object['assign']({},_0x2fc0c6()),{'parentNode':()=>_0x1efc4c(this,void 0x0,void 0x0,function*(){const _0x4c44f9=_0x203309;let _0x3fd475=_0x2245a6[_0x4c44f9(0xc9)]('reference');if(!_0x3fd475){const _0x30134b=_0x2245a6[_0x4c44f9(0x137)](),_0x542366=_0x26a377();if(!_0x542366)return null;const _0x2da8af={'baseUrl':'','endpoint':'','endpointNode':_0x542366};try{const _0x34136b=yield _0x4143f8(_0x2da8af,_0x30134b);_0x3fd475=_0x34136b[_0x4c44f9(0x127)];}catch(_0x541011){console[_0x4c44f9(0xde)](_0x541011);}}return _0x3fd475;}),'filter'(_0xf7388d){const _0x4f002d=_0x203309;return _0xf7388d[_0x4f002d(0xc0)]==='Method'||_0xf7388d[_0x4f002d(0xc0)]===_0x4f002d(0xa0);},'isSelectable'(_0xf45b57){const _0x1a4a19=_0x203309;return _0xf45b57['nodeClass']===_0x1a4a19(0x87);}})),_0x2245a6['on'](_0x203309(0x13a),()=>{const _0x10dece=_0x203309;_0x8cdc4[_0x10dece(0xbb)](_0x10dece(0x104));}),console[_0x203309(0xde)](_0x203309(0xad));function _0x26e803(_0x4949d5,_0xfc7699,_0x1c7529){const _0x589891=_0x203309,_0x413299=$(_0x589891(0x145))[_0x589891(0xca)](_0x4949d5);$('<input\x20type=\x22text\x22>')[_0x589891(0x137)](_0x1c7529['name']||'')['css']({'width':'100%'})[_0x589891(0xca)](_0x413299);const _0xaa668d=_0x14b80f[_0x1c7529['dataType'][_0x589891(0x116)]()],_0x429d35=(_0xaa668d?_0xaa668d[_0x589891(0xeb)][_0x589891(0x13f)]||'':_0x1c7529[_0x589891(0x100)][_0x589891(0x116)]())+(_0x1c7529[_0x589891(0x149)]===0x1?'[]':'');$(_0x589891(0x96))[_0x589891(0x137)](_0x1c7529['description'][_0x589891(0xe5)]||'')[_0x589891(0x75)]({'width':_0x589891(0x92)})['appendTo'](_0x413299),$(_0x589891(0x96))[_0x589891(0x137)](_0x429d35||'')[_0x589891(0x75)]({'width':_0x589891(0x92)})[_0x589891(0xca)](_0x413299);}_0x482f87[_0x203309(0x89)]({'addButton':![],'height':_0x203309(0xf5),'scrollOnAdd':![],'addItem'(_0x376a0e,_0x2361ab,_0x4d828f){_0x26e803(_0x376a0e,_0x2361ab,_0x4d828f);}}),_0x5ea16f['editableList']({'addButton':![],'height':_0x203309(0xf5),'scrollOnAdd':![],'addItem'(_0x424d38,_0x3ddb74,_0x656687){_0x26e803(_0x424d38,_0x3ddb74,_0x656687);}});function _0x37ff65(_0x5be82,_0x3c86c7){const _0x550aee=_0x203309;console['log'](_0x550aee(0xdd),_0x3c86c7[_0x550aee(0x10e)],_0x550aee(0xa3),_0x3c86c7),_0x5be82['editableList'](_0x550aee(0xe2));for(let _0x434715=0x0;_0x434715<_0x3c86c7[_0x550aee(0x10e)];_0x434715++){_0x5be82[_0x550aee(0x89)](_0x550aee(0xe0),_0x3c86c7[_0x434715]);}}_0x482f87[_0x203309(0x103)](),_0x5ea16f['hide'](),_0x466782(_0x203309(0xd9),_0x2ea90a,()=>({'url':'/opcua-endpoint2/argumentDefinition','body':{'endpointNode':_0x57d05b(),'objectId':_0x2245a6['val'](),'methodId':_0x8cdc4[_0x203309(0x137)]()}}),(_0xe8c00,_0x2280cb)=>{const _0x38ef61=_0x203309;if(_0xe8c00)return;const _0x4934d1=_0x2280cb[_0x38ef61(0x124)];_0x14b80f=_0x2280cb[_0x38ef61(0x11e)],_0x482f87[_0x38ef61(0xc3)](),_0x5ea16f[_0x38ef61(0xc3)](),_0x37ff65(_0x482f87,_0x4934d1[_0x38ef61(0xce)]),_0x37ff65(_0x5ea16f,_0x4934d1[_0x38ef61(0x9d)]),console[_0x38ef61(0xde)](_0x38ef61(0xc9),_0x2280cb);});},'oneditsave'(){}});}()));
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgxZWZjNGMiLCJfMHgxYmRjYzUiLCJfMHgzYzA0NWEiLCJfMHg1ZTQ1MGUiLCJfMHgyZTg5YzciLCJfMHg0MzllNTAiLCJfMHgyYjA3ZDYiLCJfMHgxZmYxOWYiLCJQcm9taXNlIiwiXzB4M2YwYmFkIiwiXzB4MzY1YzVhIiwiXzB4NmRiNDkiLCJfMHg1NTNkOGQiLCJfMHg0MThkNjAiLCJfMHgzMjBlMTMiLCJfMHgxNmE1ZWMiLCJfMHgzNDY1NTciLCJfMHgzYTJlMmUiLCJfMHgxYzc1ODEiLCJTdXBwcmVzc2VkRXJyb3IiLCJfMHgzYTdkNTIiLCJfMHg1NTdmMDMiLCJfMHg1NjkyNzkiLCJfMHgxZDA0YWQiLCJFcnJvciIsIl8weDM3NWJjNiIsIl8weDI1ZWQ4NCIsIl8weDMzN2EwYSIsIl8weDJiMWIxNyIsIl8weDI0ZjNkNyIsIl8weDFjNzc5ZiIsIl8weDQxN2MyYyIsIl8weDEzYzE5OSIsIl8weDQ4M2Y3YiIsIl8weDRjOGE0MyIsIl8weDJjYTRjZSIsIl8weDE2NmIxNCIsIl8weDM2ZjMxNyIsIl8weGRiNDY4ZSIsIl8weDMzNmE3OCIsIl8weDM4MTZjYyIsIl8weDFmODE4YyIsIl8weDFhZDM5NSIsIl8weDVjZWQwZSIsIl8weDE2YTVhYiIsImVuZHBvaW50Tm9kZSIsIl8weDE0MzgwMyIsImVuZHBvaW50IiwiXzB4MjYxM2E2IiwiYmFzZVVybCIsIl8weDQxNTZlZCIsIl8weDEzOTM5MiIsIl8weDE4NTkzNyIsIl8weDE0NzBmMyIsIl8weDQyMzM4MiIsIl8weDU2NTMzNyIsIk9iamVjdCIsIl8weDNkNDg4YyIsImZldGNoIiwiSlNPTiIsImNvbnNvbGUiLCJfMHgxMGY4MDUiLCJfMHgyMmNkZWUiLCJfMHg3NGIxNGUiLCJfMHhiZjcxZGQiLCJfMHgyMTU2NmQiLCJfMHgzNzQ5NzgiLCJfMHgyYTE5NjMiLCJfMHgyZDM5ZDQiLCJfMHgyOTQyZDMiLCJfMHgzMzFjZjkiLCJfMHg0MDg4NjIiLCJfMHgyMTczM2UiLCJfMHg0MWJiMjEiLCJfMHgzNWI3MTgiLCJfMHgzNTA4OTIiLCJfMHg4MjBiZmYiLCJzZXRUaW1lb3V0IiwiXzB4MWYzNjljIiwiXzB4MjIyNTlhIiwiXzB4NWUyMjNlIiwiXzB4NTBlYzBhIiwiXzB4MzMwMjczIiwiXzB4Mjc1YzUzIiwiXzB4MzFkMWUwIiwiXzB4NTVlYjYyIiwiXzB4NTFhZGFiIiwiXzB4MjU3ZDQ3IiwiXzB4NDZiY2M5IiwiXzB4MThhYmQxIiwiXzB4NWUzN2NlIiwiXzB4MTIzMWQ0IiwiXzB4NTQxMThhIiwiXzB4MTY2MWU2IiwiXzB4MWQ3YTY2IiwiXzB4MzQ2ZTQ0IiwiJCIsIl8weDI4MDBjMyIsIl8weDNkMTEwOSIsImljb24iLCJfMHgzNDNkYWUiLCJjb2xvciIsIl8weDFiMmRlNiIsIl8weGY4NGExZCIsIl8weDE0ZjkzZSIsInVuZGVmaW5lZCIsIl8weDFkYmQ3NCIsIl8weDJkYzU1NyIsIl8weDY2NzIzMiIsIl8weDQzNTgzYiIsIl8weDMwNTY3MCIsIl8weDUxNTRkZCIsIl8weDNlYTViNyIsIl8weDUwY2I4NiIsIl8weDI5ZTJjMyIsIl8weDU5NTA5MyIsIl8weDNlMTU3YSIsIl8weDNmY2U4MSIsInJlZmVyZW5jZXMiLCJfMHg0MTRmZjEiLCJfMHgyZjgwZTMiLCJfMHgzZDI3ZTIiLCJfMHhmOTNlY2QiLCJfMHg1NDQ2YWEiLCJfMHhlMDY4NjciLCJfMHgyNjZlZDMiLCJfMHgxNmQ2MWIiLCJfMHgyNTE2ZDkiLCJfMHg1YWViMzkiLCJfMHg1YmY3MTYiLCJfMHg1MWVmZmQiLCJfMHhlZjg5M2MiLCJfMHgzOGYwODMiLCJfMHg0N2M5MTUiLCJfMHg0YWQ2N2MiLCJfMHgzMDYxOGUiLCJfMHgxNGM4ZmIiLCJfMHg1MzQzYzUiLCJfMHg0NDc0MjQiLCJfMHg0MzVlNmMiLCJkb2N1bWVudCIsIl8weDRjMTQxMiIsIl8weDQxNDNmOCIsIl8weDM4NDMyZiIsIl8weDUzMTI5MSIsIl8weDY0NWY5MiIsIl8weDM5OWQ2OSIsIl8weDQ5ODZlZiIsIl8weDEwZjZiYSIsIl8weDMwZmMxOCIsIl8weDUyNzdkMiIsIl8weGQxODg1YSIsIl8weDQ2Njc4MiIsIl8weDQ5OTAxZSIsIl8weDU2YTA2OSIsIl8weDQwZTBmZiIsIl8weDQ0NWY0MiIsIl8weDI1MTYzNSIsIl8weDExYjZmOCIsIl8weDU5M2IwMiIsIl8weDNiYTFhYSIsIl8weDQxNjhkMiIsImJvZHkiLCJfMHgxM2UwNjQiLCJ1cmwiLCJfMHgxZmZjOTEiLCJfMHgyNWUzZDYiLCJfMHgyOWJkOTQiLCJfMHhlNWNhNTYiLCJfMHgxNzZiN2QiLCJfMHgxZDlkZjIiLCJfMHgxNThlNjEiLCJfMHgxOGJlMDgiLCJBcnJheSIsIl8weDIwYzg3OSIsIl8weDI2YTM3NyIsIl8weDJhYTFlZCIsIl8weDEyMTk0ZiIsIl8weGYzODQxZSIsIlJFRCIsIl8weGI2MWRhNyIsInNlY3VyaXR5TW9kZSIsIl8weDM2Y2VmMiIsInNlY3VyaXR5UG9saWN5IiwiXzB4MjZlY2M4IiwidXNlcklkZW50aXR5VHlwZSIsIl8weDFiZTkzMyIsInVzZXJOYW1lIiwiXzB4M2MxZTFjIiwicGFzc3dvcmQiLCJfMHhhZGFjNzEiLCJ1c2VyQ2VydGlmaWNhdGUiLCJfMHg1ODg4YjIiLCJ1c2VyUHJpdmF0ZWtleSIsIl8weDU2YmU5MiIsIl8weDJmYzBjNiIsIl8weDU3ZDA1YiIsIl8weDVjZTY5YSIsIl8weDFiYWI5NiIsIl8weDM0YWI4ZCIsIl8weDFlOTVhYyIsIl8weDE0YjgwZiIsIl8weDIyNDVhNiIsIl8weDhjZGM0IiwiXzB4NDgyZjg3IiwiXzB4NWVhMTZmIiwiXzB4MmVhOTBhIiwiXzB4YWQxOTQ4IiwiXzB4M2ZkNDc1IiwiXzB4MzAxMzRiIiwiXzB4NTQyMzY2IiwiXzB4MmRhOGFmIiwiXzB4MzQxMzZiIiwiXzB4NTQxMDExIiwiXzB4ZjczODhkIiwiXzB4ZjQ1YjU3IiwiXzB4MjZlODAzIiwiXzB4NDk0OWQ1IiwiXzB4ZmM3Njk5IiwiXzB4MWM3NTI5IiwiXzB4NDEzMjk5IiwiXzB4YWE2NjhkIiwiXzB4NDI5ZDM1IiwiXzB4Mzc2YTBlIiwiXzB4MjM2MWFiIiwiXzB4NGQ4MjhmIiwiXzB4NDI0ZDM4IiwiXzB4M2RkYjc0IiwiXzB4NjU2Njg3IiwiXzB4MzdmZjY1IiwiXzB4NWJlODIiLCJfMHgzYzg2YzciLCJfMHg0MzQ3MTUiLCJfMHhlOGMwMCIsIl8weDIyODBjYiIsIl8weDQ5MzRkMSJdLCJtYXBwaW5ncyI6Im0vSEFBQSxDQUFDLFUsQ0FDRyxhLHdCQW1CQSxTQUFTQSxTQUFULENBQW1CQyxTQUFuQixDQUE0QkMsU0FBNUIsQ0FBd0NDLFNBQXhDLENBQTJDQyxTQUEzQyxDLENBQ0ksU0FBU0MsU0FBVCxDQUFlQyxTQUFmLEMsUUFBK0JBLFNBQUEsWUFBaUJILFNBQWpCLENBQXFCRyxTQUFyQixDQUE2QixJQUFJSCxTQUFKLENBQU0sU0FBVUksU0FBVixDLENBQXFCQSxTQUFBLENBQVFELFNBQVIsQyxFQUEzQixDLFNBQ3JELEdBQUssQ0FBQUgsU0FBQSxFQUFNLENBQUFBLFNBQUEsQ0FBSUssT0FBSixDQUFOLENBQUwsQ0FBeUIsU0FBVUMsU0FBVixDQUFtQkMsU0FBbkIsQyx5QkFDNUIsU0FBU0MsUUFBVCxDQUFtQkMsU0FBbkIsQyx5QkFBNEIsRyxDQUFNQyxTQUFBLENBQUtULFNBQUEsQyxnQkFBQSxFQUFlUSxTQUFmLENBQUwsQyxFQUErQixNQUFPRSxTQUFQLEMsQ0FBWUosU0FBQSxDQUFPSSxTQUFQLEMsR0FDN0UsU0FBU0MsU0FBVCxDQUFrQkMsU0FBbEIsQyx5QkFBMkIsRyxDQUFNSCxTQUFBLENBQUtULFNBQUEsQyxnQkFBQSxFQUFtQlksU0FBbkIsQ0FBTCxDLEVBQW1DLE1BQU9DLFNBQVAsQyxDQUFZUCxTQUFBLENBQU9PLFNBQVAsQyxHQUNoRixTQUFTSixTQUFULENBQWNLLFNBQWQsQyx5QkFBd0JBLFNBQUEsQyxlQUFBLEVBQWNULFNBQUEsQ0FBUVMsU0FBQSxDLGVBQUEsQ0FBUixDQUFkLENBQXNDYixTQUFBLENBQU1hLFNBQUEsQyxPQUFBLENBQU4sRSxNQUFBLEVBQXlCUCxRQUF6QixDQUFvQ0ksU0FBcEMsQyxFQUM5REYsU0FBQSxDQUFNLENBQUFULFNBQUEsQ0FBWUEsU0FBQSxDLGdCQUFBLEVBQWdCSCxTQUFoQixDQUF5QkMsU0FBQSxFQUFjLEVBQXZDLENBQVosQ0FBRCxDLGdCQUFBLEdBQUwsQyxFQUpHLEMsRUFRWCxPQUFPaUIsZUFBUCxHLFVBQUEsQ0FBd0NBLGVBQXhDLENBQTBELFNBQVVDLFNBQVYsQ0FBaUJDLFNBQWpCLENBQTZCQyxTQUE3QixDLHlCQUN0RCxJQUFJQyxTQUFBLENBQUksSUFBSUMsS0FBSixDQUFVRixTQUFWLENBQVIsQyxPQUNPQyxTQUFBLEMsZ0JBQUEsRSxpQkFBQSxDQUE0QkEsU0FBQSxDLGVBQUEsRUFBVUgsU0FBdEMsQ0FBNkNHLFNBQUEsQyxlQUFBLEVBQWVGLFNBQTVELENBQXdFRSxTLEVBRm5GLENBS0EsTUFBTUUsU0FBQSxDLGdCQUFOLENBQ01DLFNBQUEsQyxlQUROLENBRU1DLFNBQUEsQyxlQUZOLENBR01DLFNBQUEsQyxlQUhOLENBSU1DLFNBQUEsQyxlQUpOLENBS01DLFNBQUEsQyxlQUxOLENBTU1DLFNBQUEsQyxnQkFOTixDQVFBLElBQUlDLFNBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFnQkEsU0FBQSxDLFNBQUEsRSxHQUFoQixFLGdCQUNBQSxTQUFBLENBQWdCQSxTQUFBLEMsZUFBQSxFLEdBQWhCLEUsVUFDQUEsU0FBQSxDQUFnQkEsU0FBQSxDLGVBQUEsRSxHQUFoQixFLE9BQ0FBLFNBQUEsQ0FBZ0JBLFNBQUEsQyxlQUFBLEUsR0FBaEIsRSxpQkFKSixDQUtHRCxTQUFBLEVBQW9CLENBQUFBLFNBQUEsQ0FBa0IsRUFBbEIsQ0FMdkIsR0FNQSxJQUFJRSxTQUFKLENBQ0EsQ0FBQyxTQUFVQyxTQUFWLEMsMkJBQ0dBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsR0FBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxRQUFBLEUsR0FBVixFLGdCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxlQUFBLEUsR0FBVixFLFdBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGVBQUEsRSxHQUFWLEUsZ0JBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGVBQUEsRSxHQUFWLEUsYUFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZUFBQSxFLElBQVYsRSxnQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZUFBQSxFLElBQVYsRSxnQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsVUFBQSxFLElBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZUFBQSxFLElBQVYsRSxRQVRKLENBVUdELFNBQUEsRUFBYyxDQUFBQSxTQUFBLENBQVksRUFBWixDQVZqQixHQVdBLElBQUlFLFNBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFjQSxTQUFBLEMsZUFBQSxFLEdBQWQsRSxnQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsVUFBQSxFLEdBQWQsRSxnQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsUUFBQSxFLEdBQWQsRSxTQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxlQUFBLEUsR0FBZCxFLGdCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxjQUFBLEUsSUFBZCxFLGdCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxlQUFBLEUsSUFBZCxFLGdCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLElBQWQsRSxXQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxNQUFBLEUsSUFBZCxFLFFBUkosQ0FTR0QsU0FBQSxFQUFrQixDQUFBQSxTQUFBLENBQWdCLEVBQWhCLENBVHJCLEdBVUEsSUFBSUUsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQVdBLFNBQUEsQyxlQUFBLEUsR0FBWCxFLGdCQUNBQSxTQUFBLENBQVdBLFNBQUEsQyxlQUFBLEUsR0FBWCxFLGdCQUNBQSxTQUFBLENBQVdBLFNBQUEsQyxXQUFBLEUsR0FBWCxFLGlCQUNBQSxTQUFBLENBQVdBLFNBQUEsQyxnQkFBQSxFLEdBQVgsRSxpQkFDQUEsU0FBQSxDQUFXQSxTQUFB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QUFQLENBQXhDLENBT0ksQ0FBQzhCLFFBQUQsQ0FBTUMsU0FBTixHLDhCQUNJRCxRLENBQ0EsT0FHSixNQUFNRSxTQUFBLENBQXFCRCxTQUFBLEMsZ0JBQUEsQ0FBM0IsQ0FDQWpDLFNBQUEsQ0FBWWlDLFNBQUEsQyxnQkFBQSxDLENBQ1o5QixTQUFBLEMsZUFBQSxHLENBQ0FDLFNBQUEsQyxlQUFBLEcsQ0FDQXdCLFNBQUEsQ0FBb0J6QixTQUFwQixDQUE4QytCLFNBQUEsQyxlQUFBLENBQTlDLEMsQ0FDQU4sU0FBQSxDQUFvQnhCLFNBQXBCLENBQStDOEIsU0FBQSxDLGVBQUEsQ0FBL0MsQyxDQUNBL0ssT0FBQSxDLGVBQUEsRSxlQUFBLENBQW9COEssU0FBcEIsQyxFQWxCSixDLEVBbkhxQyxDLFlBd0l6QyxFLEVBeEl5QyxDQUE3QyxDLEVBamxCSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgdGVtcGxhdGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vYnJvd3NlYDtcbiAgICAgICAgY29uc3QgYnJvd3NlRGVzY3JpcHRpb24gPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRlKSwgeyBub2RlSWQsIHJlc3VsdE1hc2s6IDYzIH0pO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBicm93c2VEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzOiBbXSB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgJGlucHV0RWxlbWVudCwgJGluZm8pID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKGAke3Jvb3R9L2NoZWNrTm9kZUlkYCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoIXJlZmVyZW5jZSkge1xuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSBmYS1lcnJvclwiIHN0eWxlPVwiY29sb3I6cmVkO1wiPjwvaT5ubyByZWZlcmVuY2UgITx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbiA9IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgdCA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHsgaWNvbiwgY29sb3IgfSA9IGdldEljb24ocmVmZXJlbmNlKTtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+ICR7dH08dWw+PC91bD48L2xpPmApO1xuICAgICAgICAkZWxlbWVudC5hZGRDbGFzcyhcImV4cGFuZGFibGVcIik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJ2YWx1ZVwiLCBuKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgfTtcbiAgICBjb25zdCBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbIFRlbXBlcmF0dXJlICBdXG4gICAgICAgICAqICAgKCB0b29sdGlwIDogKC9PYmplY3RzL015U2Vuc29yKSAobnM9MTtzPVRlbXBlcmF0dXJlKSlcbiAgICAgICAgICogWyArIFtGb2xkZXJdIE9iamVjdHNdXG4gICAgICAgICAqIFsgICAgIFtPYmplY3RdIE15U2Vuc29yXVxuICAgICAgICAgKiBbICAgICAoICkgW1ZhcmlhYmxlXSBUZW1wZXJhdHVyZV1cbiAgICAgICAgICovXG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUubm9kZUJyb3dzZXJcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZTogKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgbm9kZUNsYXNzOiBcIk9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBub2RlSWQ6IFwibnM9MDtpPTg1XCIsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIHR5cGVEZWZpbml0aW9uOiBGb2xkZXJUeXBlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgICAgIGlzVHlwZVJlZjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZVBhcmVudE5vZGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdGhhdC5vcHRpb25zLnBhcmVudE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNldCgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpLnRoZW4oKHBhcmVudE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChwYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LmN1cnJlbnRQYXJlbnQgPSBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZlcmlmeSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGludGVybmFsVmVyaWZ5KGRhdGEsIHRoYXQuJGlucHV0LCB0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIF9mZXRjaERhdGFGb3JOb2RlKCRub2RlLCBmZXRjaEZ1bmMsIGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJsb2FkaW5nXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYXBwZW5kKCc8ZGl2IGNsYXNzPVwic3Bpbm5lclwiPjwvZGl2PicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyByZWZlcmVuY2VzIH0gPSB5aWVsZCBmZXRjaEZ1bmMoJG5vZGUsIGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5maWx0ZXIgJiYgIXRoYXQub3B0aW9ucy5maWx0ZXIocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5yZXBsYWNlV2l0aCh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cCA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJpbnB1dC1ncm91cFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5wdXRHcm91cCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kaW5wdXQpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyZWUgd2lkZ2V0IGlzIGdvaW5nIHRvIGJlY29tZSB2aXNpYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc29sdmVQYXJlbnROb2RlKCkudGhlbigocGFyZW50Tm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAhPT0gdGhhdC5jdXJyZW50UGFyZW50IHx8ICgoX2EgPSB0aGF0LmN1cnJlbnRQYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ub2RlSWQpICE9PSBwYXJlbnROb2RlLm5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZmxhc2tcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdmVyaWZ5QnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkKHRoaXMpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZmV0Y2hEYXRhRm9yTm9kZSgkbGksIGYsIGRhdGEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIgRmV0Y2hpbmcgZG9uZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkbGkuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gJGxpLmRhdGEoXCJyZWZlcmVuY2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZSAmJiAhdGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZShyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBgWyR7ZGlzcGxheU5hbWV9XSgke3ZhbHVlfSlgO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjbGlja2luZyBvdXRzaWRlIHRoZSBwYWdlIHdpbGwgaGlkZSB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCh0aGF0LiRjb21ibykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBjaGVja05vZGVJZCA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2NoZWNrTm9kZUlkYDtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIGNvbnN0IHJlcyA9IHtcbiAgICAgICAgICAgICAgICBzdGF0dXNDb2RlOiBcIkJhZFwiLFxuICAgICAgICAgICAgICAgIG5vZGVBZGRyZXNzU3RyaW5nOiBub2RlSWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIG1hbmFnZUFQSUNhbGwocHJlZml4LCBidG4sIGZ1bmMsIG9uUmVzdWx0KSB7XG4gICAgICAgIGNvbnN0IHN1Y2Nlc3NJY29uID0gJChgIyR7cHJlZml4fS1zdWNjZXNzYCk7XG4gICAgICAgIGNvbnN0IGZhaWx1cmVJY29uID0gJChgIyR7cHJlZml4fS1mYWlsdXJlYCk7XG4gICAgICAgIGNvbnN0IHBlbmRpbmdJY29uID0gJChgIyR7cHJlZml4fS1wZW5kaW5nYCk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2VzID0gJChgIyR7cHJlZml4fS1tZXNzYWdlc2ApO1xuICAgICAgICBsZXQgYWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICBzdWNjZXNzSWNvbi5oaWRlKCk7XG4gICAgICAgIGZhaWx1cmVJY29uLmhpZGUoKTtcbiAgICAgICAgcGVuZGluZ0ljb24uaGlkZSgpO1xuICAgICAgICBidG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWN0aW9uUGVuZGluZylcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHBlbmRpbmdJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIHBlbmRpbmdJY29uLmh0bWwoXCJUZXN0aW5nIENvbm5lY3Rpb24gLi4uXCIpO1xuICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgZmFpbHVyZUljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChcIlwiKTtcbiAgICAgICAgICAgIGNvbnN0IHsgYm9keSwgdXJsIH0gPSBmdW5jKCk7XG4gICAgICAgICAgICAvLyB4eCBjb25zb2xlLmxvZyhcInh4eHh4XCIsIGJvZHkpO1xuICAgICAgICAgICAgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoYm9keSksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiBkYXRhLmpzb24oKSlcbiAgICAgICAgICAgICAgICAudGhlbigoanNvbikgPT4ge1xuICAgICAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nSWNvbi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoanNvbiwgbnVsbCwgXCIgXCIpKTtcbiAgICAgICAgICAgICAgICBpZiAoanNvbi5yZXN1bHQgPT09IFwib2tcIikge1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChqc29uLm1lc3NhZ2UucmVwbGFjZShcIlxcblwiLCBcIjxicj5cIikpO1xuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdChudWxsLCBqc29uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkYXB0ID0gKHN0cikgPT4gIXN0clxuICAgICAgICAgICAgICAgICAgICAgICAgPyBcIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHN0clxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zcGxpdChcIlxcblwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKGEpID0+IGA8cD4ke2F9PC9wPmApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oXCJcXG5cIik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkYXB0MiA9IChzdHIpID0+IChBcnJheS5pc0FycmF5KHN0cikgPyBzdHIubWFwKGFkYXB0KS5qb2luKFwiXFxuXCIpIDogYWRhcHQoc3RyKSk7XG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgZmFpbHVyZUljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKGFkYXB0Mihqc29uLm1lc3NhZ2UpICsgYWRhcHQyKGpzb24uZXh0cmEpKTtcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQobmV3IEVycm9yKGpzb24ucmVzdWx0KSwganNvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKFwiaW50ZXJuYWwgZXJyb3IgXCIgKyBlcnIubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICBvblJlc3VsdChlcnIsIG51bGwpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IGdldEVuZFBvaW50QXR0cmlidXRlcyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCByZWROb2RlID0gUkVELm5vZGVzLm5vZGUoZW5kcG9pbnRJZCk7XG4gICAgICAgIGlmICghcmVkTm9kZSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIC8vIHdlIG5lZWQgdG8gc2FuaXRpemUgYW5kIGV4dHJhY3QgdGhlIGVuZHBvaW50IGF0dHJpYnV0ZXMgb25seSAoIG5vdCB0aGUgbm9kZS1yZWQgc3R1ZmYpXG4gICAgICAgIGNvbnN0IHsgZW5kcG9pbnQsIHNlY3VyaXR5TW9kZSwgc2VjdXJpdHlQb2xpY3ksIHVzZXJJZGVudGl0eVR5cGUsIHVzZXJOYW1lLCBwYXNzd29yZCwgdXNlckNlcnRpZmljYXRlLCB1c2VyUHJpdmF0ZWtleSB9ID0gcmVkTm9kZTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgdXNlck5hbWUsXG4gICAgICAgICAgICBwYXNzd29yZCxcbiAgICAgICAgICAgIHVzZXJDZXJ0aWZpY2F0ZSxcbiAgICAgICAgICAgIHVzZXJQcml2YXRla2V5LFxuICAgICAgICB9O1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50TnIgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgaWYgKCFlbmRwb2ludE5yKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogZW5kcG9pbnRJZCxcbiAgICAgICAgICAgIGVuZHBvaW50OiBlbmRwb2ludE5yLmVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlOiBlbmRwb2ludE5yLnNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5OiBlbmRwb2ludE5yLnNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICB1c2VyTmFtZTogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLnVzZXJOYW1lIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci5wYXNzd29yZCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHVzZXJDZXJ0aWZpY2F0ZTogZW5kcG9pbnROci51c2VyQ2VydGlmaWNhdGUsXG4gICAgICAgICAgICB1c2VyUHJpdmF0ZWtleTogZW5kcG9pbnROci51c2VyUHJpdmF0ZWtleSxcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgUkVELm5vZGVzLnJlZ2lzdGVyVHlwZShcIk9wY1VhLUNsaWVudDItQ2FsbFwiLCB7XG4gICAgICAgIGNhdGVnb3J5OiBcIm9wY3VhXCIsXG4gICAgICAgIGNvbG9yOiBcIiNDMERFRURcIixcbiAgICAgICAgYWxpZ246IFwicmlnaHRcIixcbiAgICAgICAgaWNvbjogXCIuLi8uLi9pY29ucy9vcGN1YW5vZGVMb2dvLnBuZ1wiLFxuICAgICAgICBwYWxldHRlTGFiZWw6IFwiY2FsbFwiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgaW5wdXRzOiB7IHZhbHVlOiAxIH0sXG4gICAgICAgICAgICBvdXRwdXQ6IHsgdmFsdWU6IDQgfSxcbiAgICAgICAgICAgIC8vIENvbW1vblxuICAgICAgICAgICAgbmFtZTogeyB2YWx1ZTogXCJcIiB9LFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlLCB0eXBlOiBcIk9wY1VhLUVuZHBvaW50MlwiIH0sXG4gICAgICAgICAgICBhY3Rpb246IHsgdmFsdWU6IFwicmVhZFwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgLy8gZm9yIGFjdGlvbiBjYWxsXG4gICAgICAgICAgICBtZXRob2RJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIG9iamVjdElkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICB9LFxuICAgICAgICAvLyBpbnB1dHM6LFxuICAgICAgICBvdXRwdXRzOiAyLCAvLyAyIG91dHB1dCwgc2Vjb25kIGZvciByYXcgbm9kZS1vcGN1YSBkaWFnbm9zdGljcyBvciBtb3JlIGNvbXBsZXRlIG1lc3NhZ2VcbiAgICAgICAgbGFiZWwoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lIHx8IFwiT1BDVUEtQ2FsbFwiO1xuICAgICAgICB9LFxuICAgICAgICBsYWJlbFN0eWxlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IFwibm9kZV9sYWJlbF9pdGFsaWNcIiA6IFwiXCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHByZXBhcmUoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcztcbiAgICAgICAgICAgIGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCgpO1xuICAgICAgICAgICAgbm9kZS5pbnB1dHMgPSAxO1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSBTZWN0aW9uIENhbGxcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICBsZXQgZGF0YVR5cGVzID0ge307XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkNhbGxpbmcgbm9kZUJyb3dzZXJcIik7XG4gICAgICAgICAgICAvLyB0byBkbyBhZGQgYSB0eXBlc2NyaXB0IGRlZmluaXRpb24gZm9yIHRoaXNcbiAgICAgICAgICAgIGNvbnN0ICRvYmplY3RJZCA9ICQoXCIjbm9kZS1pbnB1dC1vYmplY3RJZFwiKTtcbiAgICAgICAgICAgIGNvbnN0ICRtZXRob2RJZCA9ICQoXCIjbm9kZS1pbnB1dC1tZXRob2RJZFwiKTtcbiAgICAgICAgICAgIGNvbnN0ICRpbnB1dEFyZ3VtZW50RGVmaW5pdGlvbiA9ICQoXCIjbWV0aG9kLWlucHV0LWFyZ3VtZW50LWRlZmluaXRpb25cIik7XG4gICAgICAgICAgICBjb25zdCAkb3V0cHV0QXJndW1lbnREZWZpbml0aW9uID0gJChcIiNtZXRob2Qtb3V0cHV0LWFyZ3VtZW50LWRlZmluaXRpb25cIik7XG4gICAgICAgICAgICBjb25zdCAkdmFsaWRhdGVCdG4gPSAkKFwiI3ZhbGlkYXRlLWNhbGwtYXJndW1lbnRzLWJ1dHRvblwiKTtcbiAgICAgICAgICAgICRvYmplY3RJZC5ub2RlQnJvd3NlcihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSksIHsgZmlsdGVyKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiT2JqZWN0XCI7XG4gICAgICAgICAgICAgICAgfSB9KSk7XG4gICAgICAgICAgICAkbWV0aG9kSWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IHBhcmVudE5vZGU6ICgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gbmVlZCB0byByZXN5bmMgd2l0aCB3aGF0J3MgaW4gICNub2RlLWlucHV0LW9iamVjdElkXG4gICAgICAgICAgICAgICAgICAgIGxldCByZWZlcmVuY2UgPSAkb2JqZWN0SWQuZGF0YShcInJlZmVyZW5jZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZWZlcmVuY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vZGVJZEV4ID0gJG9iamVjdElkLnZhbCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5kcG9pbnROb2RlID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWVuZHBvaW50Tm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29ubmVjdGlvbkRhdGEgPSB7IGJhc2VVcmw6IFwiXCIsIGVuZHBvaW50OiBcIlwiLCBlbmRwb2ludE5vZGUgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgciA9IHlpZWxkIGNoZWNrTm9kZUlkKGNvbm5lY3Rpb25EYXRhLCBub2RlSWRFeCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlID0gci5yZWZlcmVuY2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVmZXJlbmNlO1xuICAgICAgICAgICAgICAgIH0pLCBmaWx0ZXIobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJNZXRob2RcIiB8fCBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiT2JqZWN0XCI7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBpc1NlbGVjdGFibGUobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJNZXRob2RcIjtcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgICAgICRvYmplY3RJZC5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgJG1ldGhvZElkLm5vZGVCcm93c2VyKFwicmVzZXRcIik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiQ2FsbGluZyBub2RlQnJvd3NlciBEb25lXCIpO1xuICAgICAgICAgICAgZnVuY3Rpb24gYWRkQXJndW1lbnRDdHJsKGNvbnRhaW5lciwgaW5kZXgsIGFyZykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSAkKCc8ZGl2IGNsYXNzPVwiYXJndW1lbnQtZW50cnlcIj4nKS5hcHBlbmRUbyhjb250YWluZXIpO1xuICAgICAgICAgICAgICAgIC8vIGNvbnRhaW5lci5kYXRhKFwiZGF0YVwiLCBhcmcpO1xuICAgICAgICAgICAgICAgICQoJzxpbnB1dCB0eXBlPVwidGV4dFwiPicpXG4gICAgICAgICAgICAgICAgICAgIC52YWwoYXJnLm5hbWUgfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjEwMCVcIiB9KVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8oaXRlbSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZCA9IGRhdGFUeXBlc1thcmcuZGF0YVR5cGUudG9TdHJpbmcoKV07XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YVR5cGVOID0gKGQgPyBkLmJyb3dzZU5hbWUubmFtZSB8fCBcIlwiIDogYXJnLmRhdGFUeXBlLnRvU3RyaW5nKCkpICsgKGFyZy52YWx1ZVJhbmsgPT09IDEgPyBcIltdXCIgOiBcIlwiKTtcbiAgICAgICAgICAgICAgICAkKCc8aW5wdXQgdHlwZT1cInRleHRcIj4nKVxuICAgICAgICAgICAgICAgICAgICAudmFsKGFyZy5kZXNjcmlwdGlvbi50ZXh0IHx8IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgIC5jc3MoeyB3aWR0aDogXCI1MCVcIiB9KVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8oaXRlbSk7XG4gICAgICAgICAgICAgICAgJCgnPGlucHV0IHR5cGU9XCJ0ZXh0XCI+JylcbiAgICAgICAgICAgICAgICAgICAgLnZhbChkYXRhVHlwZU4gfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjUwJVwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRpbnB1dEFyZ3VtZW50RGVmaW5pdGlvbi5lZGl0YWJsZUxpc3Qoe1xuICAgICAgICAgICAgICAgIGFkZEJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBcImF1dG9cIixcbiAgICAgICAgICAgICAgICBzY3JvbGxPbkFkZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgYWRkSXRlbShjb250YWluZXIsIGksIG9iamVjdCkge1xuICAgICAgICAgICAgICAgICAgICBhZGRBcmd1bWVudEN0cmwoY29udGFpbmVyLCBpLCBvYmplY3QpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICRvdXRwdXRBcmd1bWVudERlZmluaXRpb24uZWRpdGFibGVMaXN0KHtcbiAgICAgICAgICAgICAgICBhZGRCdXR0b246IGZhbHNlLFxuICAgICAgICAgICAgICAgIGhlaWdodDogXCJhdXRvXCIsXG4gICAgICAgICAgICAgICAgc2Nyb2xsT25BZGQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGFkZEl0ZW0oY29udGFpbmVyLCBpLCBvYmplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgYWRkQXJndW1lbnRDdHJsKGNvbnRhaW5lciwgaSwgb2JqZWN0KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBmdW5jdGlvbiBpbnN0YWxsQXJndW1lbnRMaXN0KGxpc3QsIG1ldGhvZEFyZ3VtZW50cykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiaW5zdGFsbEFyZ3VtZW50TGlzdFwiLCBtZXRob2RBcmd1bWVudHMubGVuZ3RoLCBcImFyZ3VtZW50c1wiLCBtZXRob2RBcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIGxpc3QuZWRpdGFibGVMaXN0KFwiZW1wdHlcIik7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZXRob2RBcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgbGlzdC5lZGl0YWJsZUxpc3QoXCJhZGRJdGVtXCIsIG1ldGhvZEFyZ3VtZW50c1tpXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGlucHV0QXJndW1lbnREZWZpbml0aW9uLmhpZGUoKTtcbiAgICAgICAgICAgICRvdXRwdXRBcmd1bWVudERlZmluaXRpb24uaGlkZSgpO1xuICAgICAgICAgICAgbWFuYWdlQVBJQ2FsbChcInZhbGlkYXRlXCIsICR2YWxpZGF0ZUJ0biwgKCkgPT4gKHtcbiAgICAgICAgICAgICAgICB1cmw6IFwiL29wY3VhLWVuZHBvaW50Mi9hcmd1bWVudERlZmluaXRpb25cIixcbiAgICAgICAgICAgICAgICBib2R5OiB7XG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzKCksXG4gICAgICAgICAgICAgICAgICAgIG9iamVjdElkOiAkb2JqZWN0SWQudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZElkOiAkbWV0aG9kSWQudmFsKCksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLCAoZXJyLCBkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIHBvcHVsYXRlIHRoZSBsaXN0XG4gICAgICAgICAgICAgICAgY29uc3QgYXJndW1lbnREZWZpbml0aW9uID0gZGF0YS5hcmd1bWVudERlZmluaXRpb247XG4gICAgICAgICAgICAgICAgZGF0YVR5cGVzID0gZGF0YS5kYXRhVHlwZXM7XG4gICAgICAgICAgICAgICAgJGlucHV0QXJndW1lbnREZWZpbml0aW9uLnNob3coKTtcbiAgICAgICAgICAgICAgICAkb3V0cHV0QXJndW1lbnREZWZpbml0aW9uLnNob3coKTtcbiAgICAgICAgICAgICAgICBpbnN0YWxsQXJndW1lbnRMaXN0KCRpbnB1dEFyZ3VtZW50RGVmaW5pdGlvbiwgYXJndW1lbnREZWZpbml0aW9uLmlucHV0QXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICBpbnN0YWxsQXJndW1lbnRMaXN0KCRvdXRwdXRBcmd1bWVudERlZmluaXRpb24sIGFyZ3VtZW50RGVmaW5pdGlvbi5vdXRwdXRBcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZGF0YVwiLCBkYXRhKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkgeyB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
7
+ function _0x29d9(_0x348d41,_0x5cb64e){const _0x20b17f=_0x20b1();return _0x29d9=function(_0x29d93b,_0x330eb8){_0x29d93b=_0x29d93b-0xb6;let _0xb96250=_0x20b17f[_0x29d93b];return _0xb96250;},_0x29d9(_0x348d41,_0x5cb64e);}(function(_0x3d1418,_0x5bd742){const _0x3d0af9=_0x29d9,_0x28d523=_0x3d1418();while(!![]){try{const _0x135440=-parseInt(_0x3d0af9(0xe8))/0x1*(parseInt(_0x3d0af9(0x17f))/0x2)+parseInt(_0x3d0af9(0x16c))/0x3*(-parseInt(_0x3d0af9(0x18b))/0x4)+-parseInt(_0x3d0af9(0x160))/0x5+-parseInt(_0x3d0af9(0x136))/0x6*(-parseInt(_0x3d0af9(0xc5))/0x7)+parseInt(_0x3d0af9(0xd4))/0x8+-parseInt(_0x3d0af9(0xed))/0x9+parseInt(_0x3d0af9(0x137))/0xa;if(_0x135440===_0x5bd742)break;else _0x28d523['push'](_0x28d523['shift']());}catch(_0xf6163f){_0x28d523['push'](_0x28d523['shift']());}}}(_0x20b1,0x1e544),(function(){'use strict';const _0xdd0405=_0x29d9;function _0x3bdd63(_0x5bd6c4,_0x28ba6d,_0x1fecdd,_0x4c7e76){function _0x205dd5(_0x23b74f){return _0x23b74f instanceof _0x1fecdd?_0x23b74f:new _0x1fecdd(function(_0x358810){_0x358810(_0x23b74f);});}return new(_0x1fecdd||(_0x1fecdd=Promise))(function(_0x540257,_0x339bf0){const _0x26b8fd=_0x29d9;function _0x48f107(_0xe95f38){const _0x3d0153=_0x29d9;try{_0x37bffa(_0x4c7e76[_0x3d0153(0xee)](_0xe95f38));}catch(_0xa815db){_0x339bf0(_0xa815db);}}function _0x7c34f7(_0x3f6c2c){const _0x565d05=_0x29d9;try{_0x37bffa(_0x4c7e76[_0x565d05(0x15f)](_0x3f6c2c));}catch(_0xb0519a){_0x339bf0(_0xb0519a);}}function _0x37bffa(_0x56e316){const _0x8ca9d9=_0x29d9;_0x56e316['done']?_0x540257(_0x56e316[_0x8ca9d9(0xdd)]):_0x205dd5(_0x56e316[_0x8ca9d9(0xdd)])['then'](_0x48f107,_0x7c34f7);}_0x37bffa((_0x4c7e76=_0x4c7e76[_0x26b8fd(0xc3)](_0x5bd6c4,_0x28ba6d||[]))[_0x26b8fd(0xee)]());});}typeof SuppressedError===_0xdd0405(0xbb)?SuppressedError:function(_0x5e236f,_0xe41904,_0x35488a){const _0x1ebc94=_0xdd0405;var _0xf8a9cb=new Error(_0x35488a);return _0xf8a9cb['name']=_0x1ebc94(0x124),_0xf8a9cb['error']=_0x5e236f,_0xf8a9cb['suppressed']=_0xe41904,_0xf8a9cb;};const _0x49b2b6=_0xdd0405(0x123),_0x5aa8e7=_0xdd0405(0x172),_0x282446='ns=0;i=47',_0x58fa3c='ns=0;i=46',_0x4f7d49=_0xdd0405(0x153),_0x52e9bb=_0xdd0405(0x182),_0x5dc271=_0xdd0405(0xf0);var _0x52b139;(function(_0x477138){const _0x4fc357=_0xdd0405;_0x477138[_0x477138[_0x4fc357(0x15c)]=0x0]=_0x4fc357(0x15c),_0x477138[_0x477138['Inverse']=0x1]=_0x4fc357(0xc2),_0x477138[_0x477138[_0x4fc357(0x15d)]=0x2]='Both',_0x477138[_0x477138['Invalid']=0x3]=_0x4fc357(0x125);}(_0x52b139||(_0x52b139={})));var _0x36e98e;(function(_0x3c49cd){const _0xaa18f0=_0xdd0405;_0x3c49cd[_0x3c49cd['Unspecified']=0x0]=_0xaa18f0(0x13e),_0x3c49cd[_0x3c49cd[_0xaa18f0(0xc9)]=0x1]=_0xaa18f0(0xc9),_0x3c49cd[_0x3c49cd[_0xaa18f0(0xe6)]=0x2]=_0xaa18f0(0xe6),_0x3c49cd[_0x3c49cd[_0xaa18f0(0xca)]=0x4]=_0xaa18f0(0xca),_0x3c49cd[_0x3c49cd[_0xaa18f0(0x111)]=0x8]='ObjectType',_0x3c49cd[_0x3c49cd[_0xaa18f0(0xde)]=0x10]=_0xaa18f0(0xde),_0x3c49cd[_0x3c49cd[_0xaa18f0(0x16a)]=0x20]=_0xaa18f0(0x16a),_0x3c49cd[_0x3c49cd[_0xaa18f0(0xe7)]=0x40]=_0xaa18f0(0xe7),_0x3c49cd[_0x3c49cd[_0xaa18f0(0x12b)]=0x80]=_0xaa18f0(0x12b);}(_0x36e98e||(_0x36e98e={})));var _0x37ccb0;(function(_0x2ec044){const _0x10c9fb=_0xdd0405;_0x2ec044[_0x2ec044[_0x10c9fb(0xc9)]=0x1]='Object',_0x2ec044[_0x2ec044[_0x10c9fb(0xe6)]=0x2]=_0x10c9fb(0xe6),_0x2ec044[_0x2ec044['Method']=0x4]=_0x10c9fb(0xca),_0x2ec044[_0x2ec044[_0x10c9fb(0x111)]=0x8]=_0x10c9fb(0x111),_0x2ec044[_0x2ec044['VariableType']=0x10]=_0x10c9fb(0xde),_0x2ec044[_0x2ec044[_0x10c9fb(0x16a)]=0x20]='ReferenceType',_0x2ec044[_0x2ec044['DataType']=0x40]=_0x10c9fb(0xe7),_0x2ec044[_0x2ec044[_0x10c9fb(0x12b)]=0x80]='View';}(_0x37ccb0||(_0x37ccb0={})));var _0x4cd9db;(function(_0xcd481c){const _0x1c9629=_0xdd0405;_0xcd481c[_0xcd481c[_0x1c9629(0x16a)]=0x1]=_0x1c9629(0x16a),_0xcd481c[_0xcd481c[_0x1c9629(0xe1)]=0x2]=_0x1c9629(0xe1),_0xcd481c[_0xcd481c['NodeClass']=0x4]=_0x1c9629(0xe9),_0xcd481c[_0xcd481c[_0x1c9629(0xd1)]=0x8]=_0x1c9629(0xd1),_0xcd481c[_0xcd481c[_0x1c9629(0xf3)]=0x10]=_0x1c9629(0xf3),_0xcd481c[_0xcd481c[_0x1c9629(0xd9)]=0x20]=_0x1c9629(0xd9);}(_0x4cd9db||(_0x4cd9db={})));function _0x415354(_0xa9ff7b){const _0xff31c9=_0xdd0405;switch(_0xa9ff7b){case _0xff31c9(0xea):return _0x49b2b6;case'HasProperty':return _0x58fa3c;case _0xff31c9(0x10c):return _0x282446;case _0xff31c9(0x13a):return _0x4f7d49;case _0xff31c9(0xeb):return _0x52e9bb;case'HasTypeDefinition':return _0x5dc271;}}const _0x363806=_0x3840f4=>{const _0x327b91=_0xdd0405;switch(_0x3840f4[_0x327b91(0xe0)]){case'Object':if(_0x3840f4[_0x327b91(0xf4)]===_0x49b2b6);if(_0x3840f4[_0x327b91(0x107)]===_0x5aa8e7||_0x3840f4[_0x327b91(0xf4)]==='i=61')return{'icon':'fa-folder','color':_0x327b91(0x165)};return{'icon':_0x327b91(0x14f),'color':_0x327b91(0x10b)};case _0x327b91(0xe6):if(_0x3840f4[_0x327b91(0xf4)]===_0x282446)return{'icon':_0x327b91(0x179),'color':_0x327b91(0xd7)};else return _0x3840f4['referenceTypeId']===_0x58fa3c?{'icon':_0x327b91(0x179),'color':_0x327b91(0x122)}:{'icon':_0x327b91(0x179),'color':_0x327b91(0x13b)};case _0x327b91(0xca):return{'icon':'fa-cog','color':_0x327b91(0x11e)};case _0x327b91(0x111):return{'icon':_0x327b91(0x14f),'color':'DarkOrange'};case _0x327b91(0xde):return{'icon':_0x327b91(0x14d),'color':_0x327b91(0xf2)};}return{'icon':'fa-question','color':_0x327b91(0x18a)};},_0x39d4a9=({endpointNode:_0x48dafd,endpoint:_0x43496c,baseUrl:_0x512fc8},_0x4bb0ff,_0xb7fb00)=>_0x3bdd63(void 0x0,void 0x0,void 0x0,function*(){const _0x202dbe=_0xdd0405,_0x4971e0=_0x512fc8+_0x202dbe(0xe2),_0xb4b91d=_0x4971e0+_0x202dbe(0xec),_0x16ed67=Object[_0x202dbe(0x113)](Object[_0x202dbe(0x113)]({},_0xb7fb00),{'nodeId':_0x4bb0ff,'resultMask':0x3f}),_0x54eb53=yield fetch(_0xb4b91d,{'method':_0x202dbe(0x162),'body':JSON[_0x202dbe(0x16b)]({'endpointNode':_0x48dafd,'endpoint':_0x43496c,'browseDescription':_0x16ed67}),'headers':{'Content-Type':_0x202dbe(0xcb)}});if(_0x54eb53[_0x202dbe(0x185)]!==0xc8)return console['log'](_0x202dbe(0xc4),_0x54eb53[_0x202dbe(0x185)],_0x54eb53[_0x202dbe(0xb6)]),{'references':[]};console['log'](_0x202dbe(0xc7),_0x54eb53[_0x202dbe(0x185)],_0x54eb53[_0x202dbe(0xb6)]);const _0x48bf4a=yield _0x54eb53[_0x202dbe(0x16e)](),_0x7d2077=_0x48bf4a[_0x202dbe(0x17a)][_0x202dbe(0x10a)]||[];return{'references':_0x7d2077};}),_0xdb2082={'referenceTypeId':_0x415354('HasChild'),'includeSubtypes':!![],'browseDirection':_0x52b139[_0xdd0405(0x15c)],'nodeClassMask':_0x36e98e[_0xdd0405(0xe6)]|_0x36e98e['Object']|_0x36e98e[_0xdd0405(0xca)],'resultMask':0x3f},_0x2b5730={'referenceTypeId':_0x415354('Organizes'),'includeSubtypes':!![],'browseDirection':_0x52b139[_0xdd0405(0x15c)],'nodeClassMask':_0x36e98e[_0xdd0405(0xe6)]|_0x36e98e[_0xdd0405(0xc9)]|_0x36e98e[_0xdd0405(0xca)],'resultMask':0x3f},_0x192a94=({endpointNode:_0x4ac9d0,endpoint:_0x14e073,baseUrl:_0x13afd6},_0xf920ca,_0x30ee82)=>_0x3bdd63(void 0x0,void 0x0,void 0x0,function*(){const _0x32d3a0=_0xdd0405,_0x34aeaf=_0x13afd6+'/opcua-endpoint2',_0x162fa9=_0xf920ca[_0x32d3a0(0x175)](),_0x2248a0=yield fetch(_0x34aeaf+'/checkNodeId',{'method':_0x32d3a0(0x162),'body':JSON[_0x32d3a0(0x16b)]({'endpointNode':_0x4ac9d0,'endpoint':_0x14e073,'nodeId':_0x162fa9}),'headers':{'Content-Type':'application/json'}}),_0x2994f2=(_0x53fce9,_0x24f8ee)=>{const _0x123703=_0x32d3a0;_0x30ee82['text'](_0x53fce9)[_0x123703(0x170)](_0x123703(0xfa))['addClass'](_0x24f8ee),_0x30ee82['show'](),setTimeout(()=>{const _0x2b0a0e=_0x123703;_0x30ee82[_0x2b0a0e(0x11d)](_0x24f8ee),_0x30ee82[_0x2b0a0e(0xe5)]();},0xbb8);},_0x6ecdbb=yield _0x2248a0['json']();_0x2248a0['status']!==0xc8?_0x2994f2(_0x32d3a0(0xc8)+_0x162fa9,'failure'):_0x6ecdbb[_0x32d3a0(0x108)][_0x32d3a0(0xb9)](/Good/)?(_0xf920ca[_0x32d3a0(0x175)](_0x6ecdbb[_0x32d3a0(0x186)]),_0xf920ca[_0x32d3a0(0x10d)]('change'),_0x2994f2(_0x32d3a0(0x142),'ok')):(_0xf920ca[_0x32d3a0(0x175)](''+_0x162fa9),_0x2994f2(_0x6ecdbb['statusCode']+'\x20'+_0x2248a0[_0x32d3a0(0xb6)],_0x32d3a0(0x183)));});function _0x14186e(_0x53cadf,_0xffd6b9){return _0x3bdd63(this,void 0x0,void 0x0,function*(){const _0x25ba55=_0x29d9,_0x82452b=_0x53cadf[_0x25ba55(0xf6)]('value'),_0x2af3c2=yield _0x39d4a9(_0xffd6b9,_0x82452b,_0xdb2082),_0x561014=yield _0x39d4a9(_0xffd6b9,_0x82452b,_0x2b5730);return{'references':[..._0x2af3c2[_0x25ba55(0x10a)],..._0x561014[_0x25ba55(0x10a)]]};});}const _0x158f37={'referenceTypeId':_0x415354(_0xdd0405(0xeb)),'includeSubtypes':!![],'browseDirection':_0x52b139[_0xdd0405(0x15c)],'nodeClassMask':_0x36e98e['ReferenceType']|_0x36e98e['ObjectType']|_0x36e98e[_0xdd0405(0xe7)]|_0x36e98e[_0xdd0405(0xde)],'resultMask':0x3f};function _0x49bc4e(_0x1f0cb4,_0x39b8c3){return _0x3bdd63(this,void 0x0,void 0x0,function*(){const _0x169f07=_0x29d9,_0x837f2f=_0x1f0cb4[_0x169f07(0xf6)](_0x169f07(0xdd)),_0x12f045=yield _0x39d4a9(_0x39b8c3,_0x837f2f,_0x158f37);return _0x12f045;});}const _0x17b370=_0x49491a=>{const _0x54ea9a=_0xdd0405;var _0x31e308,_0x4ce63d;if(!_0x49491a){const _0x2b74d5=$(_0x54ea9a(0xd3));return _0x2b74d5;}const _0x13e6ec=_0x49491a[_0x54ea9a(0x11f)][_0x54ea9a(0x14e)](),_0x142f35=((_0x31e308=_0x49491a[_0x54ea9a(0x110)])===null||_0x31e308===void 0x0?void 0x0:_0x31e308[_0x54ea9a(0xbe)])||((_0x4ce63d=_0x49491a[_0x54ea9a(0x18e)])===null||_0x4ce63d===void 0x0?void 0x0:_0x4ce63d[_0x54ea9a(0x140)])||_0x49491a['nodeId'][_0x54ea9a(0x14e)](),{icon:_0x580905,color:_0x43469e}=_0x363806(_0x49491a),_0x4cf285=$(_0x54ea9a(0xd8)+_0x580905+'\x22\x20style=\x22color:'+_0x43469e+_0x54ea9a(0x131)+_0x142f35+_0x54ea9a(0xba));return _0x4cf285[_0x54ea9a(0x170)](_0x54ea9a(0x180)),_0x4cf285[_0x54ea9a(0xf6)](_0x54ea9a(0xdd),_0x13e6ec),_0x4cf285['data'](_0x54ea9a(0x104),_0x49491a),_0x4cf285;},_0x4fd0f5=()=>{const _0x1be9f6=_0xdd0405;$['widget']('sterfive.nodeBrowser',{'options':{'endpointNode':()=>({'endpoint':_0x1be9f6(0x141)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x1be9f6(0xb7)},'nodeClass':'Object','nodeId':'ns=0;i=85','displayName':{'text':_0x1be9f6(0xb7)},'typeDefinition':_0x5aa8e7}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x3bdd63(this,void 0x0,void 0x0,function*(){const _0x4d27c9=_0x29d9,_0x48316f=this,_0x261f76=typeof _0x48316f[_0x4d27c9(0x109)][_0x4d27c9(0x17d)]===_0x4d27c9(0xbb)?_0x48316f[_0x4d27c9(0x109)][_0x4d27c9(0x17d)]():_0x48316f[_0x4d27c9(0x109)][_0x4d27c9(0x17d)];if(_0x261f76 instanceof Promise)return yield _0x261f76;return _0x261f76;});},'reset'(){const _0x48f697=_0x1be9f6,_0xdd26f1=this;_0xdd26f1[_0x48f697(0x106)][_0x48f697(0x11a)](),this[_0x48f697(0x112)]()['then'](_0x54890b=>{const _0x290016=_0x48f697,_0x3d69d3=_0x17b370(_0x54890b);_0xdd26f1[_0x290016(0x106)][_0x290016(0x151)](_0x3d69d3),_0xdd26f1[_0x290016(0x168)]=_0x54890b;});},'verify'(){const _0x5dc8e6=_0x1be9f6,_0x44a838=this,_0x3d291c={'baseUrl':_0x44a838[_0x5dc8e6(0x109)][_0x5dc8e6(0x13c)],'endpointNode':typeof _0x44a838[_0x5dc8e6(0x109)][_0x5dc8e6(0x18c)]==='function'?_0x44a838[_0x5dc8e6(0x109)][_0x5dc8e6(0x18c)]():_0x44a838['options']['endpointNode'],'endpoint':typeof _0x44a838[_0x5dc8e6(0x109)][_0x5dc8e6(0x17e)]==='function'?_0x44a838[_0x5dc8e6(0x109)][_0x5dc8e6(0x17e)]():_0x44a838[_0x5dc8e6(0x109)][_0x5dc8e6(0x17e)]};_0x192a94(_0x3d291c,_0x44a838[_0x5dc8e6(0xfc)],_0x44a838[_0x5dc8e6(0x114)]);},'_create'(){const _0xc0a139=_0x1be9f6,_0x5a5408=this;function _0x365aff(_0x2011be,_0x3ad206,_0x2245a8){return _0x3bdd63(this,void 0x0,void 0x0,function*(){const _0x19a36b=_0x29d9;if(_0x2011be[_0x19a36b(0x132)]('fetched')){console[_0x19a36b(0xbd)](_0x19a36b(0x144));return;}if(_0x2011be['hasClass'](_0x19a36b(0xcf))){console[_0x19a36b(0xbd)](_0x19a36b(0x100));return;}_0x2011be[_0x19a36b(0x170)](_0x19a36b(0xcf)),_0x2011be[_0x19a36b(0x151)](_0x19a36b(0x17b));try{_0x2011be[_0x19a36b(0xe3)]('ul')[_0x19a36b(0x11a)]();const {references:_0x1882b9}=yield _0x3ad206(_0x2011be,_0x2245a8);for(const _0x38ef1a of _0x1882b9){if(_0x5a5408[_0x19a36b(0x109)]['filter']&&!_0x5a5408[_0x19a36b(0x109)]['filter'](_0x38ef1a))continue;const _0x428905=_0x17b370(_0x38ef1a);_0x2011be[_0x19a36b(0xe3)]('ul')['append'](_0x428905);}_0x2011be[_0x19a36b(0x170)](_0x19a36b(0xfe));}catch(_0x574184){_0x2011be['children']('ul')['append'](_0x19a36b(0xd5)+_0x574184[_0x19a36b(0xdc)]+'</li>'),console[_0x19a36b(0xbd)](_0x19a36b(0x177),_0x574184);}_0x2011be[_0x19a36b(0x126)](_0x19a36b(0x14a))[_0x19a36b(0xb8)](),_0x2011be[_0x19a36b(0x11d)](_0x19a36b(0xcf));});}_0x5a5408[_0xc0a139(0xfc)]=this[_0xc0a139(0x147)],_0x5a5408[_0xc0a139(0x166)]=$(_0xc0a139(0xbc)),_0x5a5408[_0xc0a139(0x166)][_0xc0a139(0x170)]('sterfive-combo-box'),this['element'][_0xc0a139(0xe4)](_0x5a5408[_0xc0a139(0x166)]),_0x5a5408[_0xc0a139(0x13f)]=$(_0xc0a139(0xbc))['addClass'](_0xc0a139(0x176)),_0x5a5408[_0xc0a139(0x166)][_0xc0a139(0x151)](_0x5a5408[_0xc0a139(0x13f)]),_0x5a5408[_0xc0a139(0x13f)][_0xc0a139(0x151)](_0x5a5408[_0xc0a139(0xfc)]),_0x5a5408[_0xc0a139(0x15a)]=$(_0xc0a139(0xc0)),_0x5a5408[_0xc0a139(0x13f)][_0xc0a139(0x151)](_0x5a5408[_0xc0a139(0x15a)]),_0x5a5408[_0xc0a139(0x15a)]['on'](_0xc0a139(0x188),function(){const _0x546994=_0xc0a139;!_0x5a5408[_0x546994(0x12c)]['is'](_0x546994(0x148))&&(_0x5a5408['resolveParentNode']()[_0x546994(0x164)](_0x504822=>{const _0x4b7cd4=_0x546994;var _0x2c4c4f;(_0x504822!==_0x5a5408[_0x4b7cd4(0x168)]||((_0x2c4c4f=_0x5a5408[_0x4b7cd4(0x168)])===null||_0x2c4c4f===void 0x0?void 0x0:_0x2c4c4f[_0x4b7cd4(0x11f)])!==_0x504822[_0x4b7cd4(0x11f)])&&_0x5a5408[_0x4b7cd4(0xf7)]();}),_0x5a5408[_0x546994(0x114)][_0x546994(0xe5)]()),_0x5a5408['$dropdown']['toggle']();}),_0x5a5408[_0xc0a139(0x158)]=$(_0xc0a139(0x178)),_0x5a5408['$inputGroup']['append'](_0x5a5408[_0xc0a139(0x158)]),_0x5a5408[_0xc0a139(0x158)]['on']('click',()=>{this['verify']();}),!_0x5a5408[_0xc0a139(0xfc)]['attr'](_0xc0a139(0x139))&&_0x5a5408[_0xc0a139(0xfc)][_0xc0a139(0x157)](_0xc0a139(0x139),'enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20'),_0x5a5408['$info']=$(_0xc0a139(0x143)),_0x5a5408[_0xc0a139(0x114)][_0xc0a139(0xe5)](),{'baseUrl':_0x5a5408[_0xc0a139(0x109)][_0xc0a139(0x13c)],'endpointNode':typeof _0x5a5408[_0xc0a139(0x109)][_0xc0a139(0x18c)]===_0xc0a139(0xbb)?_0x5a5408[_0xc0a139(0x109)]['endpointNode']():_0x5a5408[_0xc0a139(0x109)][_0xc0a139(0x18c)],'endpoint':typeof _0x5a5408[_0xc0a139(0x109)][_0xc0a139(0x17e)]===_0xc0a139(0xbb)?_0x5a5408[_0xc0a139(0x109)][_0xc0a139(0x17e)]():_0x5a5408['options'][_0xc0a139(0x17e)]},_0x5a5408[_0xc0a139(0x12c)]=$(_0xc0a139(0xbc))[_0xc0a139(0x170)](_0xc0a139(0x103))[_0xc0a139(0xe5)](),_0x5a5408['$combo']['append'](_0x5a5408['$info']),_0x5a5408['$combo'][_0xc0a139(0x151)](_0x5a5408['$dropdown']),_0x5a5408[_0xc0a139(0x106)]=$(_0xc0a139(0x135))[_0xc0a139(0x14c)](_0x5a5408['$dropdown']),this[_0xc0a139(0xf7)](),_0x5a5408[_0xc0a139(0x106)]['on'](_0xc0a139(0x188),'li',function(_0x317202){const _0x324efa=_0xc0a139;var _0x27420b,_0x30e05;_0x317202[_0x324efa(0x154)]();let _0x429676=$(this);const _0x6d0395=0x14,_0x3f9e1f=0x14,_0x2e9874=$(this)[_0x324efa(0x161)](),_0x4ef52b=_0x317202;if(_0x4ef52b['pageX']>=_0x2e9874[_0x324efa(0xd6)]&&_0x4ef52b[_0x324efa(0x184)]<=_0x2e9874['left']+_0x6d0395&&_0x4ef52b[_0x324efa(0xef)]>=_0x2e9874[_0x324efa(0x121)]&&_0x4ef52b['pageY']<=_0x2e9874[_0x324efa(0x121)]+_0x3f9e1f){if(_0x429676[_0x324efa(0x132)](_0x324efa(0x180))){if(_0x429676[_0x324efa(0x132)]('fetched')){_0x429676['removeClass']('expandable')[_0x324efa(0x170)](_0x324efa(0xd0)),_0x429676[_0x324efa(0xe3)]('ul')[_0x324efa(0x149)]();return;}const _0x13f2a6={'baseUrl':_0x5a5408['options'][_0x324efa(0x13c)],'endpointNode':typeof _0x5a5408[_0x324efa(0x109)][_0x324efa(0x18c)]===_0x324efa(0xbb)?_0x5a5408['options'][_0x324efa(0x18c)]():_0x5a5408[_0x324efa(0x109)][_0x324efa(0x18c)],'endpoint':typeof _0x5a5408[_0x324efa(0x109)]['endpoint']===_0x324efa(0xbb)?_0x5a5408[_0x324efa(0x109)][_0x324efa(0x17e)]():_0x5a5408[_0x324efa(0x109)][_0x324efa(0x17e)]},_0x18b4b1=!_0x5a5408[_0x324efa(0x109)][_0x324efa(0x12a)]?_0x14186e:_0x49bc4e;_0x365aff(_0x429676,_0x18b4b1,_0x13f2a6)['then'](()=>{const _0x5050a0=_0x324efa;console[_0x5050a0(0xbd)]('\x20Fetching\x20done'),console[_0x5050a0(0xbd)](_0x5050a0(0xfe)),_0x429676[_0x5050a0(0x11d)](_0x5050a0(0x180))[_0x5050a0(0x170)](_0x5050a0(0xd0));})['catch'](_0x126e4a=>{const _0x2a0925=_0x324efa;_0x429676[_0x2a0925(0x11d)](_0x2a0925(0x180))[_0x2a0925(0x170)](_0x2a0925(0xd0)),console[_0x2a0925(0xbd)](_0x2a0925(0xcd),_0x126e4a);});}else{if(_0x429676['hasClass'](_0x324efa(0xd0)))_0x429676[_0x324efa(0xe3)]('ul')[_0x324efa(0x149)](),_0x429676['toggleClass'](_0x324efa(0x13d));else{if(_0x429676[_0x324efa(0xe3)]('ul')['children']()['length']>0x0)_0x429676['children']('ul')['toggle'](),_0x429676[_0x324efa(0xcc)](_0x324efa(0x13d));else;}}}else{const _0x45e002=_0x429676[_0x324efa(0xf6)](_0x324efa(0xdd)),_0x1aa750=_0x429676['data'](_0x324efa(0x104));if(_0x5a5408[_0x324efa(0x109)][_0x324efa(0x10f)]&&!_0x5a5408[_0x324efa(0x109)]['isSelectable'](_0x1aa750))return;_0x5a5408[_0x324efa(0xfc)][_0x324efa(0xf6)]('reference',_0x1aa750);const _0x3a22e4=((_0x27420b=_0x1aa750['displayName'])===null||_0x27420b===void 0x0?void 0x0:_0x27420b[_0x324efa(0xbe)])||((_0x30e05=_0x1aa750['browseName'])===null||_0x30e05===void 0x0?void 0x0:_0x30e05['name'])||_0x1aa750['nodeId'][_0x324efa(0x14e)](),_0x559615='['+_0x3a22e4+']('+_0x45e002+')';_0x5a5408['$input']['val'](_0x559615),_0x5a5408['$input'][_0x324efa(0x10d)](_0x324efa(0xdf)),_0x5a5408[_0x324efa(0x12c)][_0x324efa(0xe5)]();}}),$(document)['on'](_0xc0a139(0x188),function(_0x506f00){const _0x49f7c8=_0xc0a139;!$(_0x506f00[_0x49f7c8(0x101)])['closest'](_0x5a5408[_0x49f7c8(0x166)])['length']&&_0x5a5408[_0x49f7c8(0x12c)][_0x49f7c8(0xe5)]();});}});},_0x4f36db=({endpointNode:_0x423330,endpoint:_0x360440,baseUrl:_0x2cf240},_0x1435d0)=>_0x3bdd63(void 0x0,void 0x0,void 0x0,function*(){const _0x426cda=_0xdd0405,_0x53e7f9=_0x2cf240+_0x426cda(0xe2),_0x4e874b=_0x53e7f9+_0x426cda(0x173),_0x47e6b0=yield fetch(_0x4e874b,{'method':_0x426cda(0x162),'body':JSON[_0x426cda(0x16b)]({'endpointNode':_0x423330,'endpoint':_0x360440,'nodeId':_0x1435d0}),'headers':{'Content-Type':_0x426cda(0xcb)}});if(_0x47e6b0['status']!==0xc8){console['log']('fetching\x20failed\x20with\x20error',_0x47e6b0[_0x426cda(0x185)],_0x47e6b0[_0x426cda(0xb6)]);const _0x5a4740={'statusCode':'Bad','nodeAddressString':_0x1435d0};return _0x5a4740;}console[_0x426cda(0xbd)](_0x426cda(0xc7),_0x47e6b0[_0x426cda(0x185)],_0x47e6b0['statusText']);const _0x3d3521=yield _0x47e6b0[_0x426cda(0x16e)]();return _0x3d3521;});function _0x52a04d(_0x14ab1c,_0x3da71b,_0x550a92,_0x53639c){const _0x1467c1=_0xdd0405,_0x227bad=$('#'+_0x14ab1c+'-success'),_0x5e2733=$('#'+_0x14ab1c+'-failure'),_0x568795=$('#'+_0x14ab1c+_0x1467c1(0x159)),_0x3e697c=$('#'+_0x14ab1c+_0x1467c1(0x14b));let _0x5351f4=![];_0x227bad['hide'](),_0x5e2733[_0x1467c1(0xe5)](),_0x568795[_0x1467c1(0xe5)](),_0x3da71b['on'](_0x1467c1(0x188),()=>{const _0x5c3c81=_0x1467c1;if(_0x5351f4)return;_0x5351f4=!![],_0x568795['removeClass'](_0x5c3c81(0xe5)),_0x568795['html']('Testing\x20Connection\x20...'),_0x227bad[_0x5c3c81(0x170)](_0x5c3c81(0xe5)),_0x5e2733[_0x5c3c81(0x170)](_0x5c3c81(0xe5)),_0x3e697c['html']('');const {body:_0x21e1e2,url:_0x2fba29}=_0x550a92();fetch(_0x2fba29,{'method':_0x5c3c81(0x162),'headers':{'Content-Type':_0x5c3c81(0xcb)},'body':JSON[_0x5c3c81(0x16b)](_0x21e1e2)})[_0x5c3c81(0x164)](_0x594750=>_0x594750[_0x5c3c81(0x16e)]())[_0x5c3c81(0x164)](_0x2b2cd0=>{const _0x250ae4=_0x5c3c81;_0x5351f4=![],_0x568795['hide'](),console[_0x250ae4(0xbd)](JSON[_0x250ae4(0x16b)](_0x2b2cd0,null,'\x20'));if(_0x2b2cd0[_0x250ae4(0x163)]==='ok')_0x227bad[_0x250ae4(0x11d)]('hide'),_0x5e2733[_0x250ae4(0x170)](_0x250ae4(0xe5)),_0x3e697c[_0x250ae4(0x115)](_0x2b2cd0['message'][_0x250ae4(0x15b)]('\x0a',_0x250ae4(0x128))),_0x53639c(null,_0x2b2cd0);else{const _0x33ad75=_0x1df3c1=>!_0x1df3c1?'':_0x1df3c1['split']('\x0a')[_0x250ae4(0xf1)](_0xcfad42=>_0x250ae4(0xce)+_0xcfad42+'</p>')[_0x250ae4(0xd2)]('\x0a'),_0x1c4378=_0x3bc1b8=>Array[_0x250ae4(0x17c)](_0x3bc1b8)?_0x3bc1b8[_0x250ae4(0xf1)](_0x33ad75)[_0x250ae4(0xd2)]('\x0a'):_0x33ad75(_0x3bc1b8);_0x227bad[_0x250ae4(0x170)](_0x250ae4(0xe5)),_0x5e2733['removeClass'](_0x250ae4(0xe5)),_0x3e697c[_0x250ae4(0x115)](_0x1c4378(_0x2b2cd0[_0x250ae4(0xdc)])+_0x1c4378(_0x2b2cd0[_0x250ae4(0x105)])),_0x53639c(new Error(_0x2b2cd0['result']),_0x2b2cd0);}})[_0x5c3c81(0xf9)](_0x3b1a4f=>{const _0x644205=_0x5c3c81;_0x5351f4=![],_0x568795[_0x644205(0x170)](_0x644205(0xe5)),_0x227bad[_0x644205(0x170)](_0x644205(0xe5)),_0x5e2733[_0x644205(0x11d)](_0x644205(0xe5)),_0x3e697c[_0x644205(0x115)](_0x644205(0x16f)+_0x3b1a4f[_0x644205(0xdc)]),console['log'](_0x644205(0x177),_0x3b1a4f),_0x53639c(_0x3b1a4f,null);});});}const _0x457aae=()=>{const _0xe1574a=_0xdd0405,_0x42414a=$(_0xe1574a(0x12e)),_0x2ac9d7=_0x42414a['val'](),_0x1127f8=RED[_0xe1574a(0xbf)][_0xe1574a(0xff)](_0x2ac9d7);if(!_0x1127f8)return undefined;const {endpoint:_0x1a3754,securityMode:_0x4ab8dc,securityPolicy:_0x271fdb,userIdentityType:_0x2d7ba7,userName:_0x271782,password:_0x5371c2,userCertificate:_0x4a4ebc,userPrivatekey:_0x51c665}=_0x1127f8;return{'endpoint':_0x1a3754,'securityMode':_0x4ab8dc,'securityPolicy':_0x271fdb,'userIdentityType':_0x2d7ba7,'userName':_0x271782,'password':_0x5371c2,'userCertificate':_0x4a4ebc,'userPrivatekey':_0x51c665};},_0x32f0d0=()=>{return{'endpointNode':_0x5944ba};},_0x5944ba=()=>{const _0x3f2972=_0xdd0405,_0x29e5d6=$(_0x3f2972(0x12e)),_0x5c7e5b=_0x29e5d6[_0x3f2972(0x175)](),_0x1d526e=_0x457aae();if(!_0x1d526e)return undefined;return{'id':_0x5c7e5b,'endpoint':_0x1d526e[_0x3f2972(0x17e)],'securityMode':_0x1d526e['securityMode'],'securityPolicy':_0x1d526e['securityPolicy'],'userIdentityType':_0x1d526e[_0x3f2972(0x10e)],'userName':_0x1d526e[_0x3f2972(0x10e)]===_0x3f2972(0xda)?_0x1d526e[_0x3f2972(0x129)]:undefined,'password':_0x1d526e['userIdentityType']===_0x3f2972(0xda)?_0x1d526e[_0x3f2972(0x134)]:undefined,'userCertificate':_0x1d526e[_0x3f2972(0xf8)],'userPrivatekey':_0x1d526e[_0x3f2972(0x118)]};};RED[_0xdd0405(0xbf)][_0xdd0405(0xc6)]('OpcUa-Client2-Call',{'category':_0xdd0405(0x156),'color':_0xdd0405(0x11c),'align':_0xdd0405(0xf5),'icon':_0xdd0405(0x15e),'paletteLabel':_0xdd0405(0x116),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0xdd0405(0xc1)},'action':{'value':'read','required':!![]},'methodId':{'value':'','required':!![]},'objectId':{'value':'','required':!![]}},'outputs':0x2,'label'(){const _0x32baff=_0xdd0405;return this[_0x32baff(0x140)]||_0x32baff(0x11b);},'labelStyle'(){const _0x16c100=_0xdd0405;return this['name']?_0x16c100(0x133):'';},'oneditprepare'(){const _0x4d5ece=_0xdd0405,_0x1769a8=this;_0x4fd0f5(),_0x1769a8[_0x4d5ece(0x146)]=0x1;let _0x25edb1={};console[_0x4d5ece(0xbd)](_0x4d5ece(0x102));const _0x4822db=$(_0x4d5ece(0xfb)),_0x19a2ca=$(_0x4d5ece(0x120)),_0x353f86=$(_0x4d5ece(0x167)),_0x522c84=$('#method-output-argument-definition'),_0x44d39f=$(_0x4d5ece(0x152));_0x4822db['nodeBrowser'](Object[_0x4d5ece(0x113)](Object[_0x4d5ece(0x113)]({},_0x32f0d0()),{'filter'(_0x565122){const _0x5dd73a=_0x4d5ece;return _0x565122[_0x5dd73a(0xe0)]===_0x5dd73a(0xc9);}})),_0x19a2ca[_0x4d5ece(0x150)](Object[_0x4d5ece(0x113)](Object['assign']({},_0x32f0d0()),{'parentNode':()=>_0x3bdd63(this,void 0x0,void 0x0,function*(){const _0x2eeecb=_0x4d5ece;let _0x3d2ea9=_0x4822db['data'](_0x2eeecb(0x104));if(!_0x3d2ea9){const _0x231637=_0x4822db['val'](),_0x3e3378=_0x457aae();if(!_0x3e3378)return null;const _0x21dfd8={'baseUrl':'','endpoint':'','endpointNode':_0x3e3378};try{const _0x1195e4=yield _0x4f36db(_0x21dfd8,_0x231637);_0x3d2ea9=_0x1195e4[_0x2eeecb(0x104)];}catch(_0x37fbd3){console[_0x2eeecb(0xbd)](_0x37fbd3);}}return _0x3d2ea9;}),'filter'(_0xe206cc){const _0x7fd859=_0x4d5ece;return _0xe206cc[_0x7fd859(0xe0)]==='Method'||_0xe206cc[_0x7fd859(0xe0)]===_0x7fd859(0xc9);},'isSelectable'(_0x1f699a){const _0xe47c66=_0x4d5ece;return _0x1f699a[_0xe47c66(0xe0)]===_0xe47c66(0xca);}})),_0x4822db['on'](_0x4d5ece(0xdf),()=>{const _0x21b51b=_0x4d5ece;_0x19a2ca['nodeBrowser'](_0x21b51b(0xf7));}),console[_0x4d5ece(0xbd)]('Calling\x20nodeBrowser\x20Done');function _0x1e392b(_0x4b1a07,_0x742769,_0x5ac028){const _0x3688c9=_0x4d5ece,_0x512c26=$(_0x3688c9(0x12f))[_0x3688c9(0x14c)](_0x4b1a07);$('<input\x20type=\x22text\x22>')[_0x3688c9(0x175)](_0x5ac028[_0x3688c9(0x140)]||'')[_0x3688c9(0x181)]({'width':_0x3688c9(0x12d)})[_0x3688c9(0x14c)](_0x512c26);const _0x4445ac=_0x25edb1[_0x5ac028[_0x3688c9(0xfd)][_0x3688c9(0x14e)]()],_0x5a637d=(_0x4445ac?_0x4445ac[_0x3688c9(0x18e)][_0x3688c9(0x140)]||'':_0x5ac028[_0x3688c9(0xfd)][_0x3688c9(0x14e)]())+(_0x5ac028[_0x3688c9(0x174)]===0x1?'[]':'');$('<input\x20type=\x22text\x22>')[_0x3688c9(0x175)](_0x5ac028[_0x3688c9(0x130)][_0x3688c9(0xbe)]||'')[_0x3688c9(0x181)]({'width':'50%'})[_0x3688c9(0x14c)](_0x512c26),$(_0x3688c9(0x171))[_0x3688c9(0x175)](_0x5a637d||'')[_0x3688c9(0x181)]({'width':_0x3688c9(0x187)})[_0x3688c9(0x14c)](_0x512c26);}_0x353f86[_0x4d5ece(0x16d)]({'addButton':![],'height':_0x4d5ece(0x145),'scrollOnAdd':![],'addItem'(_0x24232d,_0x42ff87,_0x4b7a61){_0x1e392b(_0x24232d,_0x42ff87,_0x4b7a61);}}),_0x522c84[_0x4d5ece(0x16d)]({'addButton':![],'height':_0x4d5ece(0x145),'scrollOnAdd':![],'addItem'(_0x3f07ad,_0x47f4ba,_0x2620ca){_0x1e392b(_0x3f07ad,_0x47f4ba,_0x2620ca);}});function _0x315404(_0x477fe4,_0x1e586a){const _0x3a992d=_0x4d5ece;console['log'](_0x3a992d(0x127),_0x1e586a[_0x3a992d(0xdb)],_0x3a992d(0x169),_0x1e586a),_0x477fe4[_0x3a992d(0x16d)]('empty');for(let _0x283389=0x0;_0x283389<_0x1e586a[_0x3a992d(0xdb)];_0x283389++){_0x477fe4[_0x3a992d(0x16d)](_0x3a992d(0x138),_0x1e586a[_0x283389]);}}_0x353f86[_0x4d5ece(0xe5)](),_0x522c84[_0x4d5ece(0xe5)](),_0x52a04d(_0x4d5ece(0x155),_0x44d39f,()=>({'url':'/opcua-endpoint2/argumentDefinition','body':{'endpointNode':_0x5944ba(),'objectId':_0x4822db[_0x4d5ece(0x175)](),'methodId':_0x19a2ca['val']()}}),(_0xa7403c,_0x12c9c9)=>{const _0x2e3f0b=_0x4d5ece;if(_0xa7403c)return;const _0x30bb7d=_0x12c9c9[_0x2e3f0b(0x18d)];_0x25edb1=_0x12c9c9['dataTypes'],_0x353f86[_0x2e3f0b(0x119)](),_0x522c84[_0x2e3f0b(0x119)](),_0x315404(_0x353f86,_0x30bb7d[_0x2e3f0b(0x189)]),_0x315404(_0x522c84,_0x30bb7d[_0x2e3f0b(0x117)]),console[_0x2e3f0b(0xbd)](_0x2e3f0b(0xf6),_0x12c9c9);});},'oneditsave'(){}});}()));function _0x20b1(){const _0x5d11f4=['top','DodgerBlue','ns=0;i=35','SuppressedError','Invalid','find','installArgumentList','<br>','userName','isTypeRef','View','$dropdown','100%','#node-input-endpoint','<div\x20class=\x22argument-entry\x22>','description',';\x22></i>\x20','hasClass','node_label_italic','password','<ul\x20class=\x22sterfive-tree\x22></ul>','1524lmVdJl','3715800YnoBUm','addItem','placeholder','HasChild','CadetBlue','baseUrl','expandable\x20expanded','Unspecified','$inputGroup','name','opc.tcp://opcuademo.sterfive.com:26543','Good','<div\x20class=\x22info-text\x22></div>','already\x20fetched','auto','inputs','element',':visible','toggle','.spinner','-messages','appendTo','fa-sliders','toString','fa-object-group','nodeBrowser','append','#validate-call-arguments-button','ns=0;i=34','stopPropagation','validate','opcua','attr','$verifyBtn','-pending','$toggleTreeBtn','replace','Forward','Both','../../icons/opcuanodeLogo.png','throw','630985RuGVid','offset','POST','result','then','rgba(61,\x2060,\x204,\x200.525)','$combo','#method-input-argument-definition','currentParent','arguments','ReferenceType','stringify','3IIKqEo','editableList','json','internal\x20error\x20','addClass','<input\x20type=\x22text\x22>','ns=0;i=61','/checkNodeId','valueRank','val','input-group','err','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','fa-list-alt','browseResult','<div\x20class=\x22spinner\x22></div>','isArray','parentNode','endpoint','2NkdTIE','expandable','css','ns=0;i=45','failure','pageX','status','nodeAddressString','50%','click','inputArguments','grey','278536lHtWQp','endpointNode','argumentDefinition','browseName','statusText','Objects','remove','match','<ul></ul></li>','function','<div/>','log','text','nodes','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','OpcUa-Endpoint2','Inverse','apply','fetching\x20failed\x20with\x20error','5131CGntSw','registerType','fetched\x20:\x20','!!failure!!','Object','Method','application/json','toggleClass','error','<p>','loading','expanded','BrowseName','join','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','202792yEkbqU','<li>error\x20','left','SteelBlue','<li><i\x20class=\x22fa\x20','TypeDefinition','UserName','length','message','value','VariableType','change','nodeClass','IsForward','/opcua-endpoint2','children','replaceWith','hide','Variable','DataType','122597KVXbDP','NodeClass','Organizes','HasSubtype','/browse','1264095EghyNS','next','pageY','ns=0;i=40','map','DarkOrange','DisplayName','referenceTypeId','right','data','reset','userCertificate','catch','sterfive-info','#node-input-objectId','$input','dataType','fetched','node','already\x20loading','target','Calling\x20nodeBrowser','sterfive-dropdown','reference','extra','$tree','typeDefinition','statusCode','options','references','SeaGreen','HasComponent','trigger','userIdentityType','isSelectable','displayName','ObjectType','resolveParentNode','assign','$info','html','call','outputArguments','userPrivatekey','show','empty','OPCUA-Call','#C0DEED','removeClass','SandyBrown','nodeId','#node-input-methodId'];_0x20b1=function(){return _0x5d11f4;};return _0x20b1();}
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgzYmRkNjMiLCJfMHg1YmQ2YzQiLCJfMHgyOGJhNmQiLCJfMHgxZmVjZGQiLCJfMHg0YzdlNzYiLCJfMHgyMDVkZDUiLCJfMHgyM2I3NGYiLCJfMHgzNTg4MTAiLCJQcm9taXNlIiwiXzB4NTQwMjU3IiwiXzB4MzM5YmYwIiwiXzB4NDhmMTA3IiwiXzB4ZTk1ZjM4IiwiXzB4MzdiZmZhIiwiXzB4YTgxNWRiIiwiXzB4N2MzNGY3IiwiXzB4M2Y2YzJjIiwiXzB4YjA1MTlhIiwiXzB4NTZlMzE2IiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4NWUyMzZmIiwiXzB4ZTQxOTA0IiwiXzB4MzU0ODhhIiwiXzB4ZjhhOWNiIiwiRXJyb3IiLCJfMHg0OWIyYjYiLCJfMHg1YWE4ZTciLCJfMHgyODI0NDYiLCJfMHg1OGZhM2MiLCJfMHg0ZjdkNDkiLCJfMHg1MmU5YmIiLCJfMHg1ZGMyNzEiLCJfMHg1MmIxMzkiLCJfMHg0NzcxMzgiLCJfMHgzNmU5OGUiLCJfMHgzYzQ5Y2QiLCJfMHgzN2NjYjAiLCJfMHgyZWMwNDQiLCJfMHg0Y2Q5ZGIiLCJfMHhjZDQ4MWMiLCJfMHg0MTUzNTQiLCJfMHhhOWZmN2IiLCJfMHgzNjM4MDYiLCJfMHgzODQwZjQiLCJfMHgzOWQ0YTkiLCJlbmRwb2ludE5vZGUiLCJfMHg0OGRhZmQiLCJlbmRwb2ludCIsIl8weDQzNDk2YyIsImJhc2VVcmwiLCJfMHg1MTJmYzgiLCJfMHg0YmIwZmYiLCJfMHhiN2ZiMDAiLCJfMHg0OTcxZTAiLCJfMHhiNGI5MWQiLCJfMHgxNmVkNjciLCJPYmplY3QiLCJfMHg1NGViNTMiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4NDhiZjRhIiwiXzB4N2QyMDc3IiwiXzB4ZGIyMDgyIiwiXzB4MmI1NzMwIiwiXzB4MTkyYTk0IiwiXzB4NGFjOWQwIiwiXzB4MTRlMDczIiwiXzB4MTNhZmQ2IiwiXzB4ZjkyMGNhIiwiXzB4MzBlZTgyIiwiXzB4MzRhZWFmIiwiXzB4MTYyZmE5IiwiXzB4MjI0OGEwIiwiXzB4Mjk5NGYyIiwiXzB4NTNmY2U5IiwiXzB4MjRmOGVlIiwic2V0VGltZW91dCIsIl8weDZlY2RiYiIsIl8weDE0MTg2ZSIsIl8weDUzY2FkZiIsIl8weGZmZDZiOSIsIl8weDgyNDUyYiIsIl8weDJhZjNjMiIsIl8weDU2MTAxNCIsIl8weDE1OGYzNyIsIl8weDQ5YmM0ZSIsIl8weDFmMGNiNCIsIl8weDM5YjhjMyIsIl8weDgzN2YyZiIsIl8weDEyZjA0NSIsIl8weDE3YjM3MCIsIl8weDQ5NDkxYSIsIl8weDMxZTMwOCIsIl8weDRjZTYzZCIsIl8weDJiNzRkNSIsIiQiLCJfMHgxM2U2ZWMiLCJfMHgxNDJmMzUiLCJpY29uIiwiXzB4NTgwOTA1IiwiY29sb3IiLCJfMHg0MzQ2OWUiLCJfMHg0Y2YyODUiLCJfMHg0ZmQwZjUiLCJ1bmRlZmluZWQiLCJfMHg0ODMxNmYiLCJfMHgyNjFmNzYiLCJfMHhkZDI2ZjEiLCJfMHg1NDg5MGIiLCJfMHgzZDY5ZDMiLCJfMHg0NGE4MzgiLCJfMHgzZDI5MWMiLCJfMHg1YTU0MDgiLCJfMHgzNjVhZmYiLCJfMHgyMDExYmUiLCJfMHgzYWQyMDYiLCJfMHgyMjQ1YTgiLCJyZWZlcmVuY2VzIiwiXzB4MTg4MmI5IiwiXzB4MzhlZjFhIiwiXzB4NDI4OTA1IiwiXzB4NTc0MTg0IiwiXzB4NTA0ODIyIiwiXzB4MmM0YzRmIiwiXzB4MzE3MjAyIiwiXzB4Mjc0MjBiIiwiXzB4MzBlMDUiLCJfMHg0Mjk2NzYiLCJfMHg2ZDAzOTUiLCJfMHgzZjllMWYiLCJfMHgyZTk4NzQiLCJfMHg0ZWY1MmIiLCJfMHgxM2YyYTYiLCJfMHgxOGI0YjEiLCJfMHgxMjZlNGEiLCJfMHg0NWUwMDIiLCJfMHgxYWE3NTAiLCJfMHgzYTIyZTQiLCJfMHg1NTk2MTUiLCJkb2N1bWVudCIsIl8weDUwNmYwMCIsIl8weDRmMzZkYiIsIl8weDQyMzMzMCIsIl8weDM2MDQ0MCIsIl8weDJjZjI0MCIsIl8weDE0MzVkMCIsIl8weDUzZTdmOSIsIl8weDRlODc0YiIsIl8weDQ3ZTZiMCIsIl8weDVhNDc0MCIsIl8weDNkMzUyMSIsIl8weDUyYTA0ZCIsIl8weDE0YWIxYyIsIl8weDNkYTcxYiIsIl8weDU1MGE5MiIsIl8weDUzNjM5YyIsIl8weDIyN2JhZCIsIl8weDVlMjczMyIsIl8weDU2ODc5NSIsIl8weDNlNjk3YyIsIl8weDUzNTFmNCIsImJvZHkiLCJfMHgyMWUxZTIiLCJ1cmwiLCJfMHgyZmJhMjkiLCJfMHg1OTQ3NTAiLCJfMHgyYjJjZDAiLCJfMHgzM2FkNzUiLCJfMHgxZGYzYzEiLCJfMHhjZmFkNDIiLCJfMHgxYzQzNzgiLCJfMHgzYmMxYjgiLCJBcnJheSIsIl8weDNiMWE0ZiIsIl8weDQ1N2FhZSIsIl8weDQyNDE0YSIsIl8weDJhYzlkNyIsIl8weDExMjdmOCIsIlJFRCIsIl8weDFhMzc1NCIsInNlY3VyaXR5TW9kZSIsIl8weDRhYjhkYyIsInNlY3VyaXR5UG9saWN5IiwiXzB4MjcxZmRiIiwidXNlcklkZW50aXR5VHlwZSIsIl8weDJkN2JhNyIsInVzZXJOYW1lIiwiXzB4MjcxNzgyIiwicGFzc3dvcmQiLCJfMHg1MzcxYzIiLCJ1c2VyQ2VydGlmaWNhdGUiLCJfMHg0YTRlYmMiLCJ1c2VyUHJpdmF0ZWtleSIsIl8weDUxYzY2NSIsIl8weDMyZjBkMCIsIl8weDU5NDRiYSIsIl8weDI5ZTVkNiIsIl8weDVjN2U1YiIsIl8weDFkNTI2ZSIsIl8weDE3NjlhOCIsIl8weDI1ZWRiMSIsIl8weDQ4MjJkYiIsIl8weDE5YTJjYSIsIl8weDM1M2Y4NiIsIl8weDUyMmM4NCIsIl8weDQ0ZDM5ZiIsIl8weDU2NTEyMiIsIl8weDNkMmVhOSIsIl8weDIzMTYzNyIsIl8weDNlMzM3OCIsIl8weDIxZGZkOCIsIl8weDExOTVlNCIsIl8weDM3ZmJkMyIsIl8weGUyMDZjYyIsIl8weDFmNjk5YSIsIl8weDFlMzkyYiIsIl8weDRiMWEwNyIsIl8weDc0Mjc2OSIsIl8weDVhYzAyOCIsIl8weDUxMmMyNiIsIl8weDQ0NDVhYyIsIl8weDVhNjM3ZCIsIl8weDI0MjMyZCIsIl8weDQyZmY4NyIsIl8weDRiN2E2MSIsIl8weDNmMDdhZCIsIl8weDQ3ZjRiYSIsIl8weDI2MjBjYSIsIl8weDMxNTQwNCIsIl8weDQ3N2ZlNCIsIl8weDFlNTg2YSIsIl8weDI4MzM4OSIsIl8weGE3NDAzYyIsIl8weDEyYzljOSIsIl8weDMwYmI3ZCJdLCJtYXBwaW5ncyI6Imd5QkFBQSxDQUFDLFUsQ0FDRyxhLHdCQW1CQSxTQUFTQSxTQUFULENBQW1CQyxTQUFuQixDQUE0QkMsU0FBNUIsQ0FBd0NDLFNBQXhDLENBQTJDQyxTQUEzQyxDLENBQ0ksU0FBU0MsU0FBVCxDQUFlQyxTQUFmLEMsUUFBK0JBLFNBQUEsWUFBaUJILFNBQWpCLENBQXFCRyxTQUFyQixDQUE2QixJQUFJSCxTQUFKLENBQU0sU0FBVUksU0FBVixDLENBQXFCQSxTQUFBLENBQVFELFNBQVIsQyxFQUEzQixDLFNBQ3JELEdBQUssQ0FBQUgsU0FBQSxFQUFNLENBQUFBLFNBQUEsQ0FBSUssT0FBSixDQUFOLENBQUwsQ0FBeUIsU0FBVUMsU0FBVixDQUFtQkMsU0FBbkIsQyx5QkFDNUIsU0FBU0MsU0FBVCxDQUFtQkMsU0FBbkIsQyx5QkFBNEIsRyxDQUFNQyxTQUFBLENBQUtULFNBQUEsQyxlQUFBLEVBQWVRLFNBQWYsQ0FBTCxDLEVBQStCLE1BQU9FLFNBQVAsQyxDQUFZSixTQUFBLENBQU9JLFNBQVAsQyxHQUM3RSxTQUFTQyxTQUFULENBQWtCQyxTQUFsQixDLHlCQUEyQixHLENBQU1ILFNBQUEsQ0FBS1QsU0FBQSxDLGdCQUFBLEVBQW1CWSxTQUFuQixDQUFMLEMsRUFBbUMsTUFBT0MsU0FBUCxDLENBQVlQLFNBQUEsQ0FBT08sU0FBUCxDLEdBQ2hGLFNBQVNKLFNBQVQsQ0FBY0ssU0FBZCxDLHlCQUF3QkEsU0FBQSxDLE1BQUEsRUFBY1QsU0FBQSxDQUFRUyxTQUFBLEMsZUFBQSxDQUFSLENBQWQsQ0FBc0NiLFNBQUEsQ0FBTWEsU0FBQSxDLGVBQUEsQ0FBTixFLE1BQUEsRUFBeUJQLFNBQXpCLENBQW9DSSxT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TUFFM0MsQ0FBTSxDLGNBQ0YsQ0FBY1YsU0FBQSxFQURaLEMsVUFFRixDQUFVTSxTQUFBLEMsZ0JBQUEsR0FGUixDLFVBR0YsQ0FBVUMsU0FBQSxDLEtBQUEsR0FIUixDQUZxQyxDQUFQLENBQXhDLENBT0ksQ0FBQzhCLFNBQUQsQ0FBTUMsU0FBTixHLDhCQUNJRCxTLENBQ0EsT0FHSixNQUFNRSxTQUFBLENBQXFCRCxTQUFBLEMsZ0JBQUEsQ0FBM0IsQ0FDQWpDLFNBQUEsQ0FBWWlDLFNBQUEsQyxXQUFBLEMsQ0FDWjlCLFNBQUEsQyxnQkFBQSxHLENBQ0FDLFNBQUEsQyxnQkFBQSxHLENBQ0F3QixTQUFBLENBQW9CekIsU0FBcEIsQ0FBOEMrQixTQUFBLEMsZ0JBQUEsQ0FBOUMsQyxDQUNBTixTQUFBLENBQW9CeEIsU0FBcEIsQ0FBK0M4QixTQUFBLEMsZ0JBQUEsQ0FBL0MsQyxDQUNBL0ssT0FBQSxDLGVBQUEsRSxlQUFBLENBQW9COEssU0FBcEIsQyxFQWxCSixDLEVBbkhxQyxDLFlBd0l6QyxFLEVBeEl5QyxDQUE3QyxDLEVBamxCSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgdGVtcGxhdGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vYnJvd3NlYDtcbiAgICAgICAgY29uc3QgYnJvd3NlRGVzY3JpcHRpb24gPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRlKSwgeyBub2RlSWQsIHJlc3VsdE1hc2s6IDYzIH0pO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBicm93c2VEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzOiBbXSB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgJGlucHV0RWxlbWVudCwgJGluZm8pID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKGAke3Jvb3R9L2NoZWNrTm9kZUlkYCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoIXJlZmVyZW5jZSkge1xuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSBmYS1lcnJvclwiIHN0eWxlPVwiY29sb3I6cmVkO1wiPjwvaT5ubyByZWZlcmVuY2UgITx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbiA9IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgdCA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHsgaWNvbiwgY29sb3IgfSA9IGdldEljb24ocmVmZXJlbmNlKTtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+ICR7dH08dWw+PC91bD48L2xpPmApO1xuICAgICAgICAkZWxlbWVudC5hZGRDbGFzcyhcImV4cGFuZGFibGVcIik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJ2YWx1ZVwiLCBuKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgfTtcbiAgICBjb25zdCBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbIFRlbXBlcmF0dXJlICBdXG4gICAgICAgICAqICAgKCB0b29sdGlwIDogKC9PYmplY3RzL015U2Vuc29yKSAobnM9MTtzPVRlbXBlcmF0dXJlKSlcbiAgICAgICAgICogWyArIFtGb2xkZXJdIE9iamVjdHNdXG4gICAgICAgICAqIFsgICAgIFtPYmplY3RdIE15U2Vuc29yXVxuICAgICAgICAgKiBbICAgICAoICkgW1ZhcmlhYmxlXSBUZW1wZXJhdHVyZV1cbiAgICAgICAgICovXG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUubm9kZUJyb3dzZXJcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZTogKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgbm9kZUNsYXNzOiBcIk9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBub2RlSWQ6IFwibnM9MDtpPTg1XCIsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIHR5cGVEZWZpbml0aW9uOiBGb2xkZXJUeXBlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgICAgIGlzVHlwZVJlZjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZVBhcmVudE5vZGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdGhhdC5vcHRpb25zLnBhcmVudE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNldCgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpLnRoZW4oKHBhcmVudE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChwYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LmN1cnJlbnRQYXJlbnQgPSBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZlcmlmeSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGludGVybmFsVmVyaWZ5KGRhdGEsIHRoYXQuJGlucHV0LCB0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIF9mZXRjaERhdGFGb3JOb2RlKCRub2RlLCBmZXRjaEZ1bmMsIGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJsb2FkaW5nXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYXBwZW5kKCc8ZGl2IGNsYXNzPVwic3Bpbm5lclwiPjwvZGl2PicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyByZWZlcmVuY2VzIH0gPSB5aWVsZCBmZXRjaEZ1bmMoJG5vZGUsIGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5maWx0ZXIgJiYgIXRoYXQub3B0aW9ucy5maWx0ZXIocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5yZXBsYWNlV2l0aCh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cCA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJpbnB1dC1ncm91cFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5wdXRHcm91cCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kaW5wdXQpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyZWUgd2lkZ2V0IGlzIGdvaW5nIHRvIGJlY29tZSB2aXNpYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc29sdmVQYXJlbnROb2RlKCkudGhlbigocGFyZW50Tm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAhPT0gdGhhdC5jdXJyZW50UGFyZW50IHx8ICgoX2EgPSB0aGF0LmN1cnJlbnRQYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ub2RlSWQpICE9PSBwYXJlbnROb2RlLm5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZmxhc2tcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdmVyaWZ5QnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkKHRoaXMpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZmV0Y2hEYXRhRm9yTm9kZSgkbGksIGYsIGRhdGEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIgRmV0Y2hpbmcgZG9uZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkbGkuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gJGxpLmRhdGEoXCJyZWZlcmVuY2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZSAmJiAhdGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZShyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBgWyR7ZGlzcGxheU5hbWV9XSgke3ZhbHVlfSlgO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjbGlja2luZyBvdXRzaWRlIHRoZSBwYWdlIHdpbGwgaGlkZSB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCh0aGF0LiRjb21ibykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBjaGVja05vZGVJZCA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2NoZWNrTm9kZUlkYDtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIGNvbnN0IHJlcyA9IHtcbiAgICAgICAgICAgICAgICBzdGF0dXNDb2RlOiBcIkJhZFwiLFxuICAgICAgICAgICAgICAgIG5vZGVBZGRyZXNzU3RyaW5nOiBub2RlSWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIG1hbmFnZUFQSUNhbGwocHJlZml4LCBidG4sIGZ1bmMsIG9uUmVzdWx0KSB7XG4gICAgICAgIGNvbnN0IHN1Y2Nlc3NJY29uID0gJChgIyR7cHJlZml4fS1zdWNjZXNzYCk7XG4gICAgICAgIGNvbnN0IGZhaWx1cmVJY29uID0gJChgIyR7cHJlZml4fS1mYWlsdXJlYCk7XG4gICAgICAgIGNvbnN0IHBlbmRpbmdJY29uID0gJChgIyR7cHJlZml4fS1wZW5kaW5nYCk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2VzID0gJChgIyR7cHJlZml4fS1tZXNzYWdlc2ApO1xuICAgICAgICBsZXQgYWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICBzdWNjZXNzSWNvbi5oaWRlKCk7XG4gICAgICAgIGZhaWx1cmVJY29uLmhpZGUoKTtcbiAgICAgICAgcGVuZGluZ0ljb24uaGlkZSgpO1xuICAgICAgICBidG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWN0aW9uUGVuZGluZylcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHBlbmRpbmdJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIHBlbmRpbmdJY29uLmh0bWwoXCJUZXN0aW5nIENvbm5lY3Rpb24gLi4uXCIpO1xuICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgZmFpbHVyZUljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChcIlwiKTtcbiAgICAgICAgICAgIGNvbnN0IHsgYm9keSwgdXJsIH0gPSBmdW5jKCk7XG4gICAgICAgICAgICAvLyB4eCBjb25zb2xlLmxvZyhcInh4eHh4XCIsIGJvZHkpO1xuICAgICAgICAgICAgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoYm9keSksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiBkYXRhLmpzb24oKSlcbiAgICAgICAgICAgICAgICAudGhlbigoanNvbikgPT4ge1xuICAgICAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nSWNvbi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoanNvbiwgbnVsbCwgXCIgXCIpKTtcbiAgICAgICAgICAgICAgICBpZiAoanNvbi5yZXN1bHQgPT09IFwib2tcIikge1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChqc29uLm1lc3NhZ2UucmVwbGFjZShcIlxcblwiLCBcIjxicj5cIikpO1xuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdChudWxsLCBqc29uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkYXB0ID0gKHN0cikgPT4gIXN0clxuICAgICAgICAgICAgICAgICAgICAgICAgPyBcIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHN0clxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zcGxpdChcIlxcblwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKGEpID0+IGA8cD4ke2F9PC9wPmApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oXCJcXG5cIik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkYXB0MiA9IChzdHIpID0+IChBcnJheS5pc0FycmF5KHN0cikgPyBzdHIubWFwKGFkYXB0KS5qb2luKFwiXFxuXCIpIDogYWRhcHQoc3RyKSk7XG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgZmFpbHVyZUljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKGFkYXB0Mihqc29uLm1lc3NhZ2UpICsgYWRhcHQyKGpzb24uZXh0cmEpKTtcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQobmV3IEVycm9yKGpzb24ucmVzdWx0KSwganNvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKFwiaW50ZXJuYWwgZXJyb3IgXCIgKyBlcnIubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICBvblJlc3VsdChlcnIsIG51bGwpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IGdldEVuZFBvaW50QXR0cmlidXRlcyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCByZWROb2RlID0gUkVELm5vZGVzLm5vZGUoZW5kcG9pbnRJZCk7XG4gICAgICAgIGlmICghcmVkTm9kZSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIC8vIHdlIG5lZWQgdG8gc2FuaXRpemUgYW5kIGV4dHJhY3QgdGhlIGVuZHBvaW50IGF0dHJpYnV0ZXMgb25seSAoIG5vdCB0aGUgbm9kZS1yZWQgc3R1ZmYpXG4gICAgICAgIGNvbnN0IHsgZW5kcG9pbnQsIHNlY3VyaXR5TW9kZSwgc2VjdXJpdHlQb2xpY3ksIHVzZXJJZGVudGl0eVR5cGUsIHVzZXJOYW1lLCBwYXNzd29yZCwgdXNlckNlcnRpZmljYXRlLCB1c2VyUHJpdmF0ZWtleSB9ID0gcmVkTm9kZTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgdXNlck5hbWUsXG4gICAgICAgICAgICBwYXNzd29yZCxcbiAgICAgICAgICAgIHVzZXJDZXJ0aWZpY2F0ZSxcbiAgICAgICAgICAgIHVzZXJQcml2YXRla2V5LFxuICAgICAgICB9O1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50TnIgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgaWYgKCFlbmRwb2ludE5yKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogZW5kcG9pbnRJZCxcbiAgICAgICAgICAgIGVuZHBvaW50OiBlbmRwb2ludE5yLmVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlOiBlbmRwb2ludE5yLnNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5OiBlbmRwb2ludE5yLnNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICB1c2VyTmFtZTogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLnVzZXJOYW1lIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci5wYXNzd29yZCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHVzZXJDZXJ0aWZpY2F0ZTogZW5kcG9pbnROci51c2VyQ2VydGlmaWNhdGUsXG4gICAgICAgICAgICB1c2VyUHJpdmF0ZWtleTogZW5kcG9pbnROci51c2VyUHJpdmF0ZWtleSxcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgUkVELm5vZGVzLnJlZ2lzdGVyVHlwZShcIk9wY1VhLUNsaWVudDItQ2FsbFwiLCB7XG4gICAgICAgIGNhdGVnb3J5OiBcIm9wY3VhXCIsXG4gICAgICAgIGNvbG9yOiBcIiNDMERFRURcIixcbiAgICAgICAgYWxpZ246IFwicmlnaHRcIixcbiAgICAgICAgaWNvbjogXCIuLi8uLi9pY29ucy9vcGN1YW5vZGVMb2dvLnBuZ1wiLFxuICAgICAgICBwYWxldHRlTGFiZWw6IFwiY2FsbFwiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgaW5wdXRzOiB7IHZhbHVlOiAxIH0sXG4gICAgICAgICAgICBvdXRwdXQ6IHsgdmFsdWU6IDQgfSxcbiAgICAgICAgICAgIC8vIENvbW1vblxuICAgICAgICAgICAgbmFtZTogeyB2YWx1ZTogXCJcIiB9LFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlLCB0eXBlOiBcIk9wY1VhLUVuZHBvaW50MlwiIH0sXG4gICAgICAgICAgICBhY3Rpb246IHsgdmFsdWU6IFwicmVhZFwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgLy8gZm9yIGFjdGlvbiBjYWxsXG4gICAgICAgICAgICBtZXRob2RJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIG9iamVjdElkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICB9LFxuICAgICAgICAvLyBpbnB1dHM6LFxuICAgICAgICBvdXRwdXRzOiAyLCAvLyAyIG91dHB1dCwgc2Vjb25kIGZvciByYXcgbm9kZS1vcGN1YSBkaWFnbm9zdGljcyBvciBtb3JlIGNvbXBsZXRlIG1lc3NhZ2VcbiAgICAgICAgbGFiZWwoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lIHx8IFwiT1BDVUEtQ2FsbFwiO1xuICAgICAgICB9LFxuICAgICAgICBsYWJlbFN0eWxlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IFwibm9kZV9sYWJlbF9pdGFsaWNcIiA6IFwiXCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHByZXBhcmUoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcztcbiAgICAgICAgICAgIGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCgpO1xuICAgICAgICAgICAgbm9kZS5pbnB1dHMgPSAxO1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSBTZWN0aW9uIENhbGxcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICBsZXQgZGF0YVR5cGVzID0ge307XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkNhbGxpbmcgbm9kZUJyb3dzZXJcIik7XG4gICAgICAgICAgICAvLyB0byBkbyBhZGQgYSB0eXBlc2NyaXB0IGRlZmluaXRpb24gZm9yIHRoaXNcbiAgICAgICAgICAgIGNvbnN0ICRvYmplY3RJZCA9ICQoXCIjbm9kZS1pbnB1dC1vYmplY3RJZFwiKTtcbiAgICAgICAgICAgIGNvbnN0ICRtZXRob2RJZCA9ICQoXCIjbm9kZS1pbnB1dC1tZXRob2RJZFwiKTtcbiAgICAgICAgICAgIGNvbnN0ICRpbnB1dEFyZ3VtZW50RGVmaW5pdGlvbiA9ICQoXCIjbWV0aG9kLWlucHV0LWFyZ3VtZW50LWRlZmluaXRpb25cIik7XG4gICAgICAgICAgICBjb25zdCAkb3V0cHV0QXJndW1lbnREZWZpbml0aW9uID0gJChcIiNtZXRob2Qtb3V0cHV0LWFyZ3VtZW50LWRlZmluaXRpb25cIik7XG4gICAgICAgICAgICBjb25zdCAkdmFsaWRhdGVCdG4gPSAkKFwiI3ZhbGlkYXRlLWNhbGwtYXJndW1lbnRzLWJ1dHRvblwiKTtcbiAgICAgICAgICAgICRvYmplY3RJZC5ub2RlQnJvd3NlcihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSksIHsgZmlsdGVyKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiT2JqZWN0XCI7XG4gICAgICAgICAgICAgICAgfSB9KSk7XG4gICAgICAgICAgICAkbWV0aG9kSWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IHBhcmVudE5vZGU6ICgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gbmVlZCB0byByZXN5bmMgd2l0aCB3aGF0J3MgaW4gICNub2RlLWlucHV0LW9iamVjdElkXG4gICAgICAgICAgICAgICAgICAgIGxldCByZWZlcmVuY2UgPSAkb2JqZWN0SWQuZGF0YShcInJlZmVyZW5jZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZWZlcmVuY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vZGVJZEV4ID0gJG9iamVjdElkLnZhbCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5kcG9pbnROb2RlID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWVuZHBvaW50Tm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29ubmVjdGlvbkRhdGEgPSB7IGJhc2VVcmw6IFwiXCIsIGVuZHBvaW50OiBcIlwiLCBlbmRwb2ludE5vZGUgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgciA9IHlpZWxkIGNoZWNrTm9kZUlkKGNvbm5lY3Rpb25EYXRhLCBub2RlSWRFeCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlID0gci5yZWZlcmVuY2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVmZXJlbmNlO1xuICAgICAgICAgICAgICAgIH0pLCBmaWx0ZXIobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJNZXRob2RcIiB8fCBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiT2JqZWN0XCI7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBpc1NlbGVjdGFibGUobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJNZXRob2RcIjtcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgICAgICRvYmplY3RJZC5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgJG1ldGhvZElkLm5vZGVCcm93c2VyKFwicmVzZXRcIik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiQ2FsbGluZyBub2RlQnJvd3NlciBEb25lXCIpO1xuICAgICAgICAgICAgZnVuY3Rpb24gYWRkQXJndW1lbnRDdHJsKGNvbnRhaW5lciwgaW5kZXgsIGFyZykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSAkKCc8ZGl2IGNsYXNzPVwiYXJndW1lbnQtZW50cnlcIj4nKS5hcHBlbmRUbyhjb250YWluZXIpO1xuICAgICAgICAgICAgICAgIC8vIGNvbnRhaW5lci5kYXRhKFwiZGF0YVwiLCBhcmcpO1xuICAgICAgICAgICAgICAgICQoJzxpbnB1dCB0eXBlPVwidGV4dFwiPicpXG4gICAgICAgICAgICAgICAgICAgIC52YWwoYXJnLm5hbWUgfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjEwMCVcIiB9KVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8oaXRlbSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZCA9IGRhdGFUeXBlc1thcmcuZGF0YVR5cGUudG9TdHJpbmcoKV07XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YVR5cGVOID0gKGQgPyBkLmJyb3dzZU5hbWUubmFtZSB8fCBcIlwiIDogYXJnLmRhdGFUeXBlLnRvU3RyaW5nKCkpICsgKGFyZy52YWx1ZVJhbmsgPT09IDEgPyBcIltdXCIgOiBcIlwiKTtcbiAgICAgICAgICAgICAgICAkKCc8aW5wdXQgdHlwZT1cInRleHRcIj4nKVxuICAgICAgICAgICAgICAgICAgICAudmFsKGFyZy5kZXNjcmlwdGlvbi50ZXh0IHx8IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgIC5jc3MoeyB3aWR0aDogXCI1MCVcIiB9KVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8oaXRlbSk7XG4gICAgICAgICAgICAgICAgJCgnPGlucHV0IHR5cGU9XCJ0ZXh0XCI+JylcbiAgICAgICAgICAgICAgICAgICAgLnZhbChkYXRhVHlwZU4gfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjUwJVwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRpbnB1dEFyZ3VtZW50RGVmaW5pdGlvbi5lZGl0YWJsZUxpc3Qoe1xuICAgICAgICAgICAgICAgIGFkZEJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBcImF1dG9cIixcbiAgICAgICAgICAgICAgICBzY3JvbGxPbkFkZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgYWRkSXRlbShjb250YWluZXIsIGksIG9iamVjdCkge1xuICAgICAgICAgICAgICAgICAgICBhZGRBcmd1bWVudEN0cmwoY29udGFpbmVyLCBpLCBvYmplY3QpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICRvdXRwdXRBcmd1bWVudERlZmluaXRpb24uZWRpdGFibGVMaXN0KHtcbiAgICAgICAgICAgICAgICBhZGRCdXR0b246IGZhbHNlLFxuICAgICAgICAgICAgICAgIGhlaWdodDogXCJhdXRvXCIsXG4gICAgICAgICAgICAgICAgc2Nyb2xsT25BZGQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGFkZEl0ZW0oY29udGFpbmVyLCBpLCBvYmplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgYWRkQXJndW1lbnRDdHJsKGNvbnRhaW5lciwgaSwgb2JqZWN0KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBmdW5jdGlvbiBpbnN0YWxsQXJndW1lbnRMaXN0KGxpc3QsIG1ldGhvZEFyZ3VtZW50cykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiaW5zdGFsbEFyZ3VtZW50TGlzdFwiLCBtZXRob2RBcmd1bWVudHMubGVuZ3RoLCBcImFyZ3VtZW50c1wiLCBtZXRob2RBcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIGxpc3QuZWRpdGFibGVMaXN0KFwiZW1wdHlcIik7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZXRob2RBcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgbGlzdC5lZGl0YWJsZUxpc3QoXCJhZGRJdGVtXCIsIG1ldGhvZEFyZ3VtZW50c1tpXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGlucHV0QXJndW1lbnREZWZpbml0aW9uLmhpZGUoKTtcbiAgICAgICAgICAgICRvdXRwdXRBcmd1bWVudERlZmluaXRpb24uaGlkZSgpO1xuICAgICAgICAgICAgbWFuYWdlQVBJQ2FsbChcInZhbGlkYXRlXCIsICR2YWxpZGF0ZUJ0biwgKCkgPT4gKHtcbiAgICAgICAgICAgICAgICB1cmw6IFwiL29wY3VhLWVuZHBvaW50Mi9hcmd1bWVudERlZmluaXRpb25cIixcbiAgICAgICAgICAgICAgICBib2R5OiB7XG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzKCksXG4gICAgICAgICAgICAgICAgICAgIG9iamVjdElkOiAkb2JqZWN0SWQudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZElkOiAkbWV0aG9kSWQudmFsKCksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLCAoZXJyLCBkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIHBvcHVsYXRlIHRoZSBsaXN0XG4gICAgICAgICAgICAgICAgY29uc3QgYXJndW1lbnREZWZpbml0aW9uID0gZGF0YS5hcmd1bWVudERlZmluaXRpb247XG4gICAgICAgICAgICAgICAgZGF0YVR5cGVzID0gZGF0YS5kYXRhVHlwZXM7XG4gICAgICAgICAgICAgICAgJGlucHV0QXJndW1lbnREZWZpbml0aW9uLnNob3coKTtcbiAgICAgICAgICAgICAgICAkb3V0cHV0QXJndW1lbnREZWZpbml0aW9uLnNob3coKTtcbiAgICAgICAgICAgICAgICBpbnN0YWxsQXJndW1lbnRMaXN0KCRpbnB1dEFyZ3VtZW50RGVmaW5pdGlvbiwgYXJndW1lbnREZWZpbml0aW9uLmlucHV0QXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICBpbnN0YWxsQXJndW1lbnRMaXN0KCRvdXRwdXRBcmd1bWVudERlZmluaXRpb24sIGFyZ3VtZW50RGVmaW5pdGlvbi5vdXRwdXRBcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZGF0YVwiLCBkYXRhKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkgeyB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
9
9
  </script>
10
10
  <script type="text/x-red" data-template-name="OpcUa-Client2-Call">
11
11
  <div class="form-row">