@opcua/for-node-red 3.1.0 → 3.3.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(_0x5c27b9,_0xb3b5e6){const _0x39b5c9=_0x4b19,_0x5e6795=_0x5c27b9();while(!![]){try{const _0xcd3cf9=-parseInt(_0x39b5c9(0xf3))/0x1+-parseInt(_0x39b5c9(0x149))/0x2+parseInt(_0x39b5c9(0x1a4))/0x3*(-parseInt(_0x39b5c9(0xde))/0x4)+-parseInt(_0x39b5c9(0x14d))/0x5+-parseInt(_0x39b5c9(0x79))/0x6+parseInt(_0x39b5c9(0x175))/0x7+parseInt(_0x39b5c9(0xee))/0x8;if(_0xcd3cf9===_0xb3b5e6)break;else _0x5e6795['push'](_0x5e6795['shift']());}catch(_0xde1a6b){_0x5e6795['push'](_0x5e6795['shift']());}}}(_0x7bf3,0x34a87),(function(){'use strict';const _0x40bb4e=_0x4b19;function _0x5c13e6(_0x1bdb24,_0x3cf305){const _0x55d894=_0x4b19,_0x34df9b=$('#node-input-endpoint'),_0x49b70c=$(_0x55d894(0xcf)),_0x577bf4=()=>{const _0x5950e6=_0x55d894,_0x3ab928=_0x1bdb24[_0x5950e6(0x8f)]['node'](_0x34df9b[_0x5950e6(0x1a5)]());_0x49b70c[_0x5950e6(0x161)]();if(!_0x3ab928||!_0x3ab928[_0x5950e6(0x15e)])return;for(const _0x48c95e of _0x3ab928['subscriptions']){const _0x8c8991=_0x48c95e[_0x5950e6(0x1b6)]||_0x48c95e['id'];$(_0x5950e6(0x1b1),{'value':_0x48c95e['id'],'label':_0x8c8991,'selected':_0x48c95e['id']===_0x3cf305['subscription']})[_0x5950e6(0x1aa)](_0x8c8991)[_0x5950e6(0x159)](_0x49b70c);}};_0x577bf4(),_0x49b70c['on'](_0x55d894(0x165),()=>{const _0x458c43=_0x55d894;_0x3cf305[_0x458c43(0xf9)]=_0x49b70c[_0x458c43(0x1a5)]();}),_0x34df9b['on'](_0x55d894(0x165),()=>{_0x577bf4();});}function _0x56d979(_0x267a5a,_0x59312a,_0x5f1dc2,_0x258e92){function _0x14a17f(_0x407ad0){return _0x407ad0 instanceof _0x5f1dc2?_0x407ad0:new _0x5f1dc2(function(_0x31ff9c){_0x31ff9c(_0x407ad0);});}return new(_0x5f1dc2||(_0x5f1dc2=Promise))(function(_0x29afc6,_0x25a36d){const _0x3dd48e=_0x4b19;function _0x48b7c0(_0x14c928){const _0x2f3d=_0x4b19;try{_0x1b18c7(_0x258e92[_0x2f3d(0x182)](_0x14c928));}catch(_0x54dce2){_0x25a36d(_0x54dce2);}}function _0x5aee0b(_0x14b14b){const _0x1986e6=_0x4b19;try{_0x1b18c7(_0x258e92[_0x1986e6(0x100)](_0x14b14b));}catch(_0x494b7c){_0x25a36d(_0x494b7c);}}function _0x1b18c7(_0x333ed4){const _0x232fde=_0x4b19;_0x333ed4['done']?_0x29afc6(_0x333ed4['value']):_0x14a17f(_0x333ed4[_0x232fde(0x13f)])[_0x232fde(0x7f)](_0x48b7c0,_0x5aee0b);}_0x1b18c7((_0x258e92=_0x258e92[_0x3dd48e(0x11e)](_0x267a5a,_0x59312a||[]))[_0x3dd48e(0x182)]());});}typeof SuppressedError==='function'?SuppressedError:function(_0x8e235c,_0x1f466b,_0x3a07f7){const _0x1e3938=_0x4b19;var _0x124214=new Error(_0x3a07f7);return _0x124214['name']='SuppressedError',_0x124214[_0x1e3938(0x16b)]=_0x8e235c,_0x124214[_0x1e3938(0xb4)]=_0x1f466b,_0x124214;};const _0xa77152=_0x40bb4e(0x107),_0x330aa0=_0x40bb4e(0xa8),_0xea86c5=_0x40bb4e(0x7c),_0x59f802=_0x40bb4e(0x148),_0xc75be6=_0x40bb4e(0x103),_0xfa4934=_0x40bb4e(0x91),_0x389b03=_0x40bb4e(0x18e);var _0x585e9a;(function(_0x51db92){const _0x186fa7=_0x40bb4e;_0x51db92[_0x51db92['Forward']=0x0]=_0x186fa7(0x136),_0x51db92[_0x51db92['Inverse']=0x1]=_0x186fa7(0xe7),_0x51db92[_0x51db92['Both']=0x2]=_0x186fa7(0x114),_0x51db92[_0x51db92['Invalid']=0x3]='Invalid';}(_0x585e9a||(_0x585e9a={})));var _0x4575b2;(function(_0x3b8bfd){const _0xb89e89=_0x40bb4e;_0x3b8bfd[_0x3b8bfd['Unspecified']=0x0]=_0xb89e89(0x141),_0x3b8bfd[_0x3b8bfd['Object']=0x1]=_0xb89e89(0x154),_0x3b8bfd[_0x3b8bfd[_0xb89e89(0xe2)]=0x2]='Variable',_0x3b8bfd[_0x3b8bfd[_0xb89e89(0x1b9)]=0x4]='Method',_0x3b8bfd[_0x3b8bfd[_0xb89e89(0xff)]=0x8]='ObjectType',_0x3b8bfd[_0x3b8bfd['VariableType']=0x10]=_0xb89e89(0x187),_0x3b8bfd[_0x3b8bfd['ReferenceType']=0x20]=_0xb89e89(0x97),_0x3b8bfd[_0x3b8bfd[_0xb89e89(0xc2)]=0x40]='DataType',_0x3b8bfd[_0x3b8bfd[_0xb89e89(0x9b)]=0x80]='View';}(_0x4575b2||(_0x4575b2={})));var _0x1bb569;(function(_0x13c969){const _0x28831d=_0x40bb4e;_0x13c969[_0x13c969[_0x28831d(0x154)]=0x1]=_0x28831d(0x154),_0x13c969[_0x13c969[_0x28831d(0xe2)]=0x2]=_0x28831d(0xe2),_0x13c969[_0x13c969[_0x28831d(0x1b9)]=0x4]=_0x28831d(0x1b9),_0x13c969[_0x13c969[_0x28831d(0xff)]=0x8]=_0x28831d(0xff),_0x13c969[_0x13c969[_0x28831d(0x187)]=0x10]='VariableType',_0x13c969[_0x13c969[_0x28831d(0x97)]=0x20]=_0x28831d(0x97),_0x13c969[_0x13c969['DataType']=0x40]=_0x28831d(0xc2),_0x13c969[_0x13c969[_0x28831d(0x9b)]=0x80]='View';}(_0x1bb569||(_0x1bb569={})));var _0x1e95f5;(function(_0x507c1d){const _0x115a4f=_0x40bb4e;_0x507c1d[_0x507c1d['ReferenceType']=0x1]=_0x115a4f(0x97),_0x507c1d[_0x507c1d[_0x115a4f(0x14f)]=0x2]='IsForward',_0x507c1d[_0x507c1d[_0x115a4f(0x7a)]=0x4]=_0x115a4f(0x7a),_0x507c1d[_0x507c1d['BrowseName']=0x8]=_0x115a4f(0x109),_0x507c1d[_0x507c1d[_0x115a4f(0xc7)]=0x10]=_0x115a4f(0xc7),_0x507c1d[_0x507c1d[_0x115a4f(0xbf)]=0x20]='TypeDefinition';}(_0x1e95f5||(_0x1e95f5={})));function _0xa77028(_0x1a7e04){const _0x4a03f7=_0x40bb4e;switch(_0x1a7e04){case _0x4a03f7(0x101):return _0xa77152;case'HasProperty':return _0x59f802;case _0x4a03f7(0x93):return _0xea86c5;case _0x4a03f7(0xc6):return _0xc75be6;case _0x4a03f7(0x110):return _0xfa4934;case _0x4a03f7(0xf6):return _0x389b03;}}const _0x4744a7=_0x25bb96=>{const _0x4109e6=_0x40bb4e;switch(_0x25bb96['nodeClass']){case'Object':if(_0x25bb96['referenceTypeId']===_0xa77152);if(_0x25bb96[_0x4109e6(0xab)]===_0x330aa0||_0x25bb96[_0x4109e6(0xd4)]==='i=61')return{'icon':_0x4109e6(0xf4),'color':'rgba(61,\x2060,\x204,\x200.525)'};return{'icon':_0x4109e6(0xcb),'color':_0x4109e6(0x74)};case _0x4109e6(0xe2):if(_0x25bb96[_0x4109e6(0xd4)]===_0xea86c5)return{'icon':_0x4109e6(0x198),'color':_0x4109e6(0x13d)};else return _0x25bb96['referenceTypeId']===_0x59f802?{'icon':'fa-list-alt','color':_0x4109e6(0x1a9)}:{'icon':_0x4109e6(0x198),'color':'CadetBlue'};case _0x4109e6(0x1b9):return{'icon':_0x4109e6(0x15a),'color':_0x4109e6(0xe9)};case _0x4109e6(0xff):return{'icon':_0x4109e6(0xcb),'color':'DarkOrange'};case _0x4109e6(0x187):return{'icon':_0x4109e6(0xd1),'color':'DarkOrange'};case _0x4109e6(0xc2):return{'icon':_0x4109e6(0x13a),'color':_0x4109e6(0x78)};}return{'icon':_0x4109e6(0x191),'color':_0x4109e6(0x12a)};},_0x2a01f8=(_0x4dfc77,_0x16ad71,_0xd83719)=>_0x56d979(void 0x0,[_0x4dfc77,_0x16ad71,_0xd83719],void 0x0,function*({endpointNode:_0x3bef10,endpoint:_0x760892,baseUrl:_0x415f53},_0x5b538f,_0x44f011){const _0x240dfd=_0x40bb4e,_0x3eea76=_0x415f53+_0x240dfd(0x75),_0x104700=_0x3eea76+_0x240dfd(0x113),_0x367687=Object[_0x240dfd(0x1bd)](Object[_0x240dfd(0x1bd)]({},_0x44f011),{'nodeId':_0x5b538f,'resultMask':0x3f}),_0x198f91=yield fetch(_0x104700,{'method':_0x240dfd(0x144),'body':JSON['stringify']({'endpointNode':_0x3bef10,'endpoint':_0x760892,'browseDescription':_0x367687}),'headers':{'Content-Type':'application/json'}});if(_0x198f91[_0x240dfd(0x162)]!==0xc8)return console['log'](_0x240dfd(0xea),_0x198f91[_0x240dfd(0x162)],_0x198f91[_0x240dfd(0xd0)]),{'references':[]};const _0x39dec3=yield _0x198f91['json'](),_0xdb2800=_0x39dec3['browseResult']['references']||[];return{'references':_0xdb2800};}),_0x1accf0={'referenceTypeId':_0xa77028(_0x40bb4e(0xc6)),'includeSubtypes':!![],'browseDirection':_0x585e9a[_0x40bb4e(0x136)],'nodeClassMask':_0x4575b2[_0x40bb4e(0xe2)]|_0x4575b2[_0x40bb4e(0x154)]|_0x4575b2[_0x40bb4e(0x1b9)],'resultMask':0x3f},_0xeec31={'referenceTypeId':_0xa77028('Organizes'),'includeSubtypes':!![],'browseDirection':_0x585e9a['Forward'],'nodeClassMask':_0x4575b2[_0x40bb4e(0xe2)]|_0x4575b2[_0x40bb4e(0x154)]|_0x4575b2[_0x40bb4e(0x1b9)],'resultMask':0x3f},_0x57d2de=(_0x14b21e,_0x246f33)=>_0x56d979(void 0x0,[_0x14b21e,_0x246f33],void 0x0,function*({endpointNode:_0x45226b,endpoint:_0x58bf90,baseUrl:_0x21aaf0},{nodeId:_0x5cc16f,rootNodeId:_0x3f5cb3,isType:_0x170b8f}){const _0xba6728=_0x40bb4e,_0x164383=_0x21aaf0+_0xba6728(0x75),_0x3ec035=_0x164383+_0xba6728(0x138),_0x43c249=yield fetch(_0x3ec035,{'method':'POST','body':JSON[_0xba6728(0xfe)]({'endpointNode':_0x45226b,'endpoint':_0x58bf90,'nodeId':_0x5cc16f,'rootNodeId':_0x3f5cb3,'isType':_0x170b8f}),'headers':{'Content-Type':_0xba6728(0xae)}});if(_0x43c249[_0xba6728(0x162)]!==0xc8)return null;const _0x4473db=yield _0x43c249[_0xba6728(0x181)]();return _0x4473db[_0xba6728(0x82)];}),_0x44c842=(_0x248e64,_0x570e9b)=>{const _0xd2027b=_0x40bb4e;if(_0x248e64['statusCode']!==_0xd2027b(0x87))return _0x248e64[_0xd2027b(0x77)];switch(_0x570e9b){case _0xd2027b(0x82):return _0x248e64[_0xd2027b(0x1c1)];case _0xd2027b(0x8b):return _0x248e64['bp_aliased']||_0x248e64[_0xd2027b(0x1c1)];case _0xd2027b(0xa5):return _0x248e64[_0xd2027b(0x8a)]||_0x248e64['nodeId_nsu'];case _0xd2027b(0x80):return _0x248e64['nodeId_nsu'];default:case _0xd2027b(0x11c):return _0x248e64[_0xd2027b(0x11c)];}},_0x297d1b=_0x4345e5=>{const _0x19b78f=_0x40bb4e;if(_0x4345e5['statusCode']!==_0x19b78f(0x87))return'statusCode:\x20'+_0x4345e5[_0x19b78f(0x19f)];else{let _0x47114c=[];return _0x47114c[_0x19b78f(0x10d)](_0x19b78f(0x9a)+_0x4345e5[_0x19b78f(0x11c)]),_0x47114c[_0x19b78f(0x10d)](_0x19b78f(0x1b2)+_0x4345e5[_0x19b78f(0x1c1)]),_0x47114c['push'](_0x19b78f(0xd3)+_0x4575b2[_0x4345e5[_0x19b78f(0x153)]]),_0x4345e5[_0x19b78f(0x183)]&&_0x47114c['push'](_0x19b78f(0xb9)+_0x4345e5[_0x19b78f(0x183)]),_0x4345e5[_0x19b78f(0x8a)]&&_0x47114c['push'](_0x19b78f(0x134)+_0x4345e5['nodeId_aliased']),_0x4345e5[_0x19b78f(0x1c1)]&&_0x47114c['push'](_0x19b78f(0x94)+_0x4345e5[_0x19b78f(0x11f)]),_0x47114c[_0x19b78f(0xdf)]('\x0a');}};function _0x414d10(_0x5005ba){const _0x12ac6a=_0x40bb4e;if(_0x5005ba[_0x12ac6a(0xba)](/^nsu=/))return _0x12ac6a(0x80);if(_0x5005ba[_0x12ac6a(0xba)](/^(ns=.*;)?(i|b|s|g)=/))return _0x12ac6a(0x11c);if(_0x5005ba['match'](/^nsa=/))return _0x12ac6a(0xa5);if(_0x5005ba['match'](/^(\/|\.)[0-9]+:/))return _0x12ac6a(0x82);if(_0x5005ba[_0x12ac6a(0xba)](/^(\/|\.).*:/))return _0x12ac6a(0x82);}function _0x273351(_0x1b8123){const _0x2bb04c=_0x40bb4e,_0x446f6e=_0x414d10(_0x1b8123);switch(_0x446f6e){case _0x2bb04c(0x11c):return'n';case'aliasedNodeId':return'na';case _0x2bb04c(0x80):return _0x2bb04c(0x14a);case _0x2bb04c(0x82):return'b';case _0x2bb04c(0x8b):return'ab';default:return't';}}function _0x23c3c5(_0x323c5e){const _0x836a3c=_0x40bb4e;let _0x351c94;switch(_0x323c5e){case'n':_0x351c94=_0x836a3c(0x11c);break;case'na':_0x351c94=_0x836a3c(0xa5);break;case _0x836a3c(0x14a):_0x351c94=_0x836a3c(0x80);break;case'b':_0x351c94=_0x836a3c(0x82);break;case'ab':_0x351c94=_0x836a3c(0x8b);break;}return _0x351c94;}const _0x15f435=(_0x3725ec,_0x4bfb3c)=>_0x56d979(void 0x0,[_0x3725ec,_0x4bfb3c],void 0x0,function*({endpointNode:_0x2ac633,endpoint:_0x266c8b,baseUrl:_0xcd3e9d},_0x146439){const _0x1d3302=_0x40bb4e,_0x490baf=_0xcd3e9d+_0x1d3302(0x75),_0x43e283=_0x490baf+_0x1d3302(0x12e),_0x40982a=_0x2ac633['id'],_0x3f8ad0=RED[_0x1d3302(0x8f)][_0x1d3302(0x89)](_0x40982a);console['log'](_0x3f8ad0[_0x1d3302(0xa0)]),_0x3f8ad0['namespaceAliases'];const _0x394843=_0x2ac633[_0x1d3302(0xa0)],_0x35f649=yield fetch(_0x43e283,{'method':'POST','body':JSON['stringify']({'endpointNode':_0x2ac633,'endpoint':_0x266c8b,'nodeId':_0x146439,'namespaceAliases':_0x394843}),'headers':{'Content-Type':'application/json'}}),_0x3417ab=yield _0x35f649['json']();return{'json':_0x3417ab,'data':_0x35f649};}),_0xbb9160=(_0x9061e8,_0x445072,_0x573096,_0x3a4e93)=>_0x56d979(void 0x0,[_0x9061e8,_0x445072,_0x573096,_0x3a4e93],void 0x0,function*({endpointNode:_0x373847,endpoint:_0x492335,baseUrl:_0x4cc393},_0xb8d20b,_0x528a23,_0x297e9d){const _0x4f8f51=_0x40bb4e,_0x5ba338=_0x528a23[_0x4f8f51(0x1a5)](),{json:_0x3657ce,data:_0x4258f0}=yield _0x15f435({'endpointNode':_0x373847,'endpoint':_0x492335,'baseUrl':_0x4cc393},_0x5ba338),_0x1cda01=(_0x2de2a9,_0x1344ef)=>{const _0x5d08bc=_0x4f8f51;_0x297e9d[_0x5d08bc(0x1aa)](_0x2de2a9)['addClass'](_0x5d08bc(0x170))[_0x5d08bc(0x10e)](_0x1344ef),_0x297e9d[_0x5d08bc(0x18f)](),setTimeout(()=>{const _0x2287fd=_0x5d08bc;_0x297e9d['removeClass'](_0x1344ef),_0x297e9d[_0x2287fd(0xf2)]();},0xbb8);};if(_0x4258f0[_0x4f8f51(0x162)]!==0xc8)return _0x1cda01('!!failure!!'+_0x5ba338,_0x4f8f51(0x8c)),![];else{if(_0x3657ce['statusCode'][_0x4f8f51(0xba)](/Good/)){const _0x3cb5e6=_0x297d1b(_0x3657ce);_0x528a23[_0x4f8f51(0x1c0)]('title',_0x3cb5e6);const _0x167e0f=_0x44c842(_0x3657ce,_0xb8d20b);return _0x528a23['val'](_0x167e0f),_0x528a23[_0x4f8f51(0x19e)](_0x4f8f51(0x165)),_0x1cda01(_0x4f8f51(0x87),'ok'),!![];}else return _0x528a23[_0x4f8f51(0x1a5)](''+_0x5ba338),_0x1cda01(_0x3657ce['statusCode']+'\x20'+_0x4258f0[_0x4f8f51(0xd0)],_0x4f8f51(0x8c)),![];}});function _0x30d07d(_0x23ca78,_0x4a161c){return _0x56d979(this,void 0x0,void 0x0,function*(){const _0x55521e=_0x4b19,_0x41f8b8=_0x23ca78['data'](_0x55521e(0x13f)),_0x50f8ee=yield _0x2a01f8(_0x4a161c,_0x41f8b8,_0x1accf0),_0x5c624b=yield _0x2a01f8(_0x4a161c,_0x41f8b8,_0xeec31);return{'references':[..._0x50f8ee[_0x55521e(0x176)],..._0x5c624b['references']]};});}const _0x346641={'referenceTypeId':_0xa77028(_0x40bb4e(0x110)),'includeSubtypes':!![],'browseDirection':_0x585e9a[_0x40bb4e(0x136)],'nodeClassMask':_0x4575b2[_0x40bb4e(0x97)]|_0x4575b2[_0x40bb4e(0xff)]|_0x4575b2[_0x40bb4e(0xc2)]|_0x4575b2[_0x40bb4e(0x187)],'resultMask':0x3f};function _0x5c0c11(_0x3a1b14,_0x9e8414){return _0x56d979(this,void 0x0,void 0x0,function*(){const _0x123831=_0x4b19,_0xdb0e=_0x3a1b14[_0x123831(0x8d)]('value'),_0x40665a=yield _0x2a01f8(_0x9e8414,_0xdb0e,_0x346641);return _0x40665a;});}const _0x4a0014=_0x3944e4=>{const _0x4e7152=_0x40bb4e;var _0x3d7a0c,_0x545ca6,_0x232dc2,_0x106e33;if(!_0x3944e4||!_0x3944e4[_0x4e7152(0x11c)]){const _0xc23c17=$(_0x4e7152(0x17c));return _0xc23c17;}const _0x190462=_0x3944e4[_0x4e7152(0x11c)][_0x4e7152(0x197)](),_0x4b43c3=((_0x3d7a0c=_0x3944e4['displayName'])===null||_0x3d7a0c===void 0x0?void 0x0:_0x3d7a0c[_0x4e7152(0x1aa)])||((_0x545ca6=_0x3944e4[_0x4e7152(0x86)])===null||_0x545ca6===void 0x0?void 0x0:_0x545ca6[_0x4e7152(0x1b6)])||_0x3944e4[_0x4e7152(0x11c)][_0x4e7152(0x197)](),{icon:_0x422942,color:_0x269e66}=_0x4744a7(_0x3944e4),_0x32ab09='('+_0x3944e4[_0x4e7152(0x11c)][_0x4e7152(0x197)]()+')\x20'+(((_0x232dc2=_0x3944e4[_0x4e7152(0x86)])===null||_0x232dc2===void 0x0?void 0x0:_0x232dc2[_0x4e7152(0x1b6)])||((_0x106e33=_0x3944e4[_0x4e7152(0x1bb)])===null||_0x106e33===void 0x0?void 0x0:_0x106e33['text'])||''),_0x1a54b2=$(_0x4e7152(0x1a3)+_0x3944e4['nodeId'][_0x4e7152(0x197)]()+_0x4e7152(0x1b0)+_0x32ab09+_0x4e7152(0xda)+_0x422942+_0x4e7152(0x11b)+_0x269e66+';\x22></i>\x20'+_0x4b43c3+_0x4e7152(0x76));return _0x1a54b2[_0x4e7152(0x10e)](_0x4e7152(0xb0)),_0x1a54b2[_0x4e7152(0x8d)](_0x4e7152(0x13f),_0x190462),_0x1a54b2[_0x4e7152(0x8d)](_0x4e7152(0xd7),_0x3944e4),_0x1a54b2;},_0xf4e0d4=(_0x4b3ea8,_0x1c9757)=>{const _0xd9099a=_0x40bb4e;return _0x1c9757[_0xd9099a(0xcc)]('li[key=\x22'+_0x4b3ea8+'\x22]');},_0x5eeef7=(_0x12cc6d,_0xeab392)=>{const _0x288fee=_0x40bb4e;_0x12cc6d[_0x288fee(0xfc)][_0x288fee(0xcc)](_0x288fee(0x19a))[_0x288fee(0x92)]('selected'),_0xeab392['find'](_0x288fee(0x16a))[_0x288fee(0x10e)](_0x288fee(0xe4));},_0x49169f=(_0x98b452,_0x46dc7b,_0x190894)=>_0x56d979(void 0x0,void 0x0,void 0x0,function*(){const _0x3cddb1=_0x40bb4e;let _0xa8ebe2=_0x190894[_0x3cddb1(0x13b)](_0x3cddb1(0x13c));_0x46dc7b['relativePath'][_0x3cddb1(0x14c)]||[];const _0x195479=_0x46dc7b[_0x3cddb1(0x133)]||[];if(_0x195479['length']===0x0)return;for(const _0x340c7d of _0x195479){_0xa8ebe2[_0x3cddb1(0x194)](_0x3cddb1(0xb0))&&(yield _0x516d9d(_0x98b452,_0xa8ebe2));const _0x3a837c=_0xf4e0d4(_0x340c7d,_0xa8ebe2);if(_0x3a837c[_0x3cddb1(0xdb)]===0x0)return;_0xa8ebe2=_0x3a837c;}_0x5eeef7(_0x98b452,_0xa8ebe2),_0x438d43(_0x98b452[_0x3cddb1(0xc0)],_0xa8ebe2);});function _0x438d43(_0x52f8f8,_0xb5f7b3){const _0x420a22=_0x40bb4e,_0x24ab46=_0xb5f7b3['position']()[_0x420a22(0x96)],_0x257e55=_0x52f8f8['scrollTop']();if(_0x257e55==undefined)return;const _0xb07d9a=_0x257e55+_0x24ab46-_0x52f8f8[_0x420a22(0xa9)]()/0x2+_0xb5f7b3[_0x420a22(0xa9)]()/0x2;_0x52f8f8[_0x420a22(0x85)]({'scrollTop':_0xb07d9a},0x1f4);}const _0x54b56a=(_0x2aff99,_0x366316)=>_0x56d979(void 0x0,void 0x0,void 0x0,function*(){const _0x1bf3eb=_0x40bb4e,_0x2e6e20=_0x2aff99[_0x1bf3eb(0x139)]['val'](),_0x938feb={'nodeId':_0x2e6e20,'rootNodeId':_0x366316[_0x1bf3eb(0x11c)],'isType':_0x2aff99[_0x1bf3eb(0x18a)]['isTypeRef']||![]},_0x11d42e=_0x2716a6(_0x2aff99),_0x576a32=yield _0x57d2de(_0x11d42e,_0x938feb);if(!_0x576a32)return;yield _0x49169f(_0x2aff99,_0x576a32,_0x2aff99['$tree']);});function _0x53e477(_0x5dc09a,_0x1e85a2,_0x3e1d8b,_0xb44630){return _0x56d979(this,void 0x0,void 0x0,function*(){const _0x34721a=_0x4b19;if(_0x1e85a2['hasClass']('fetched')){console[_0x34721a(0x128)](_0x34721a(0x189));return;}if(_0x1e85a2[_0x34721a(0x194)]('loading')){console[_0x34721a(0x128)](_0x34721a(0x1be));return;}_0x1e85a2[_0x34721a(0x10e)]('loading'),_0x1e85a2[_0x34721a(0x184)](_0x34721a(0xbc));try{_0x1e85a2['children']('ul')['empty']();const {references:_0x46013d}=yield _0x3e1d8b(_0x1e85a2,_0xb44630);_0x46013d[_0x34721a(0x147)]((_0x431dc8,_0x5603a5)=>{const _0x40e577=_0x34721a;var _0xb1db59,_0x3aea61;return(((_0xb1db59=_0x431dc8[_0x40e577(0x86)])===null||_0xb1db59===void 0x0?void 0x0:_0xb1db59[_0x40e577(0x1b6)])||'')[_0x40e577(0xeb)](((_0x3aea61=_0x5603a5[_0x40e577(0x86)])===null||_0x3aea61===void 0x0?void 0x0:_0x3aea61[_0x40e577(0x1b6)])||'');});for(const _0x20b062 of _0x46013d){if(_0x5dc09a[_0x34721a(0x18a)][_0x34721a(0x14e)]&&!_0x5dc09a[_0x34721a(0x18a)][_0x34721a(0x14e)](_0x20b062))continue;const _0x3030de=_0x4a0014(_0x20b062);_0x1e85a2['children']('ul')[_0x34721a(0x184)](_0x3030de);}_0x1e85a2[_0x34721a(0x10e)]('fetched');}catch(_0x3b67c4){_0x1e85a2[_0x34721a(0x13b)]('ul')[_0x34721a(0x184)](_0x34721a(0x135)+_0x3b67c4[_0x34721a(0x12d)]+_0x34721a(0xc8)),console[_0x34721a(0x128)](_0x34721a(0x155),_0x3b67c4);}_0x1e85a2[_0x34721a(0xcc)]('.spinner')[_0x34721a(0x17d)](),_0x1e85a2[_0x34721a(0x92)](_0x34721a(0xe6));});}function _0x2716a6(_0x28c79f){const _0x361023=_0x40bb4e,_0x4ff594={'baseUrl':_0x28c79f['options'][_0x361023(0x121)],'endpointNode':typeof _0x28c79f['options']['endpointNode']===_0x361023(0x123)?_0x28c79f[_0x361023(0x18a)]['endpointNode']():_0x28c79f[_0x361023(0x18a)][_0x361023(0x127)],'endpoint':typeof _0x28c79f[_0x361023(0x18a)][_0x361023(0xc4)]===_0x361023(0x123)?_0x28c79f[_0x361023(0x18a)][_0x361023(0xc4)]():_0x28c79f[_0x361023(0x18a)][_0x361023(0xc4)]};return _0x4ff594;}function _0x516d9d(_0x54b36b,_0x192808){return _0x56d979(this,void 0x0,void 0x0,function*(){const _0x489b84=_0x4b19;if(_0x192808['hasClass'](_0x489b84(0x1a8))){_0x192808['removeClass'](_0x489b84(0xb0))[_0x489b84(0x10e)](_0x489b84(0xb8)),_0x192808['children']('ul')[_0x489b84(0xdc)]();return;}const _0x80655=_0x2716a6(_0x54b36b),_0x56509d=!_0x54b36b[_0x489b84(0x18a)][_0x489b84(0x150)]?_0x30d07d:_0x5c0c11;try{yield _0x53e477(_0x54b36b,_0x192808,_0x56509d,_0x80655),_0x192808[_0x489b84(0x92)](_0x489b84(0xb0))['addClass'](_0x489b84(0xb8));}catch(_0x43619b){_0x192808['removeClass'](_0x489b84(0xb0))[_0x489b84(0x10e)](_0x489b84(0xb8)),console[_0x489b84(0x128)](_0x489b84(0x16b),_0x43619b);}});}const _0xb3ad6e={'browseName':{'namespaceIndex':0x0,'name':_0x40bb4e(0x17a)},'nodeClass':'Object','nodeId':_0x40bb4e(0x1b5),'displayName':{'text':_0x40bb4e(0x17a)},'typeDefinition':_0x330aa0},_0x24b11b=()=>{const _0x1afdab=_0x40bb4e;$['widget'](_0x1afdab(0x174),{'options':{'endpointNode':()=>({'endpoint':_0x1afdab(0x145)}),'endpoint':()=>undefined,'parentNode':()=>_0xb3ad6e,'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x56d979(this,void 0x0,void 0x0,function*(){const _0x10c2a4=_0x4b19,_0x1252f8=this;if(_0x1252f8['__parentNode']==undefined){const _0x2bb4bf=typeof _0x1252f8['options']['parentNode']==='function'?_0x1252f8[_0x10c2a4(0x18a)][_0x10c2a4(0xce)]['call'](_0x1252f8):_0x1252f8['options'][_0x10c2a4(0xce)];if(_0x2bb4bf instanceof Promise){const _0x55919c=yield _0x2bb4bf;_0x1252f8['__parentNode']=_0x55919c;}else _0x1252f8['__parentNode']=_0x2bb4bf;}return _0x1252f8[_0x10c2a4(0x160)]||_0xb3ad6e;});},'reset'(){return _0x56d979(this,void 0x0,void 0x0,function*(){const _0x3e9601=_0x4b19,_0x2e71cd=this,_0x4b529b=_0x2e71cd;_0x4b529b[_0x3e9601(0x160)]=undefined,_0x2e71cd[_0x3e9601(0xfc)][_0x3e9601(0x161)]();const _0x410dae=yield this[_0x3e9601(0xec)](),_0x4854a8=_0x4a0014(_0x410dae);_0x2e71cd[_0x3e9601(0xfc)][_0x3e9601(0x184)](_0x4854a8),_0x2e71cd[_0x3e9601(0x12f)]=_0x410dae;});},'verify'(_0x2b57f7){const _0x3e3e52=_0x1afdab,_0x3cc169=this,_0x13356b=_0x2716a6(_0x3cc169);_0xbb9160(_0x13356b,_0x2b57f7,_0x3cc169['$input'],_0x3cc169[_0x3e3e52(0x15d)])[_0x3e3e52(0x7f)](_0x175617=>{const _0x29f793=_0x3e3e52;!_0x175617?_0x3cc169['$combo']['addClass'](_0x29f793(0x163)):_0x3cc169[_0x29f793(0xbb)][_0x29f793(0x92)](_0x29f793(0x163));});},'_hideMenu'(_0x1f6e38){const _0x3efe1b=_0x1afdab,_0x2e4b6c=this;$(document)['off'](_0x3efe1b(0x171)),_0x1f6e38[_0x3efe1b(0xf2)](),_0x1f6e38['css']({'height':_0x3efe1b(0x15c)});if(_0x1f6e38['opts'][_0x3efe1b(0x195)]){var _0x5fbef9=[];_0x1f6e38['find'](_0x3efe1b(0x196))[_0x3efe1b(0x10f)](function(){const _0x43ab42=_0x3efe1b;$(this)['prop'](_0x43ab42(0x98))&&_0x5fbef9[_0x43ab42(0x10d)]($(this)[_0x43ab42(0x8d)](_0x43ab42(0x13f)));}),_0x1f6e38[_0x3efe1b(0x188)](_0x5fbef9);}_0x2e4b6c[_0x3efe1b(0xd2)]['is'](_0x3efe1b(0x193))?_0x2e4b6c['$input'][_0x3efe1b(0x19e)](_0x3efe1b(0xa6)):_0x2e4b6c[_0x3efe1b(0x10a)][_0x3efe1b(0x19e)](_0x3efe1b(0xa6));},'_createMenu'(_0x42edc7,_0x3dcd5a,_0x52c546){const _0x27f2ab=_0x1afdab;var _0x1aa26c=this;const _0x48f9e1=$(_0x27f2ab(0x118))[_0x27f2ab(0x10e)](_0x27f2ab(0x125));return _0x48f9e1['opts']=_0x3dcd5a,_0x48f9e1[_0x27f2ab(0x188)]=_0x52c546,_0x42edc7[_0x27f2ab(0x1b3)](_0x120fad=>{const _0x46ab8f=_0x27f2ab;typeof _0x120fad===_0x46ab8f(0x179)&&(_0x120fad={'value':_0x120fad,'label':_0x120fad});var _0x566139=$(_0x46ab8f(0x131))['attr'](_0x46ab8f(0x13f),_0x120fad[_0x46ab8f(0x13f)])[_0x46ab8f(0x159)](_0x48f9e1);_0x120fad[_0x46ab8f(0x84)]&&_0x566139[_0x46ab8f(0x1aa)](_0x120fad['label']);_0x120fad[_0x46ab8f(0x124)]&&_0x566139['prop']('title',_0x120fad['title']);if(_0x120fad[_0x46ab8f(0x167)]){if(_0x120fad[_0x46ab8f(0x167)][_0x46ab8f(0x14b)]('<')===0x0)$(_0x120fad[_0x46ab8f(0x167)])['prependTo'](_0x566139);else _0x120fad['icon'][_0x46ab8f(0x14b)]('/')!==-0x1?$(_0x46ab8f(0x18c),{'class':_0x46ab8f(0x15b),'style':_0x46ab8f(0xb3)+_0x120fad['icon']+');\x20-webkit-mask-image:\x20url('+_0x120fad[_0x46ab8f(0x167)]+');'})[_0x46ab8f(0x168)](_0x566139):$(_0x46ab8f(0x18c),{'class':'red-ui-typedInput-icon\x20'+_0x120fad[_0x46ab8f(0x167)]})['prependTo'](_0x566139);}else _0x566139[_0x46ab8f(0x17f)]({'paddingLeft':_0x46ab8f(0x9e)});!_0x120fad['icon']&&!_0x120fad[_0x46ab8f(0x84)]&&_0x566139[_0x46ab8f(0x1aa)](_0x120fad['value']);var _0x53295e;_0x3dcd5a[_0x46ab8f(0x195)]&&(_0x53295e=$(_0x46ab8f(0x102))['css'](_0x46ab8f(0xf1),_0x46ab8f(0x1c5))[_0x46ab8f(0x8d)](_0x46ab8f(0x13f),_0x120fad[_0x46ab8f(0x13f)])[_0x46ab8f(0x168)](_0x566139)['on']('mousedown',function(_0x5f13d3){_0x5f13d3['preventDefault']();})),_0x566139['on'](_0x46ab8f(0x8e),function(_0x4daba5){const _0xd43378=_0x46ab8f;_0x4daba5[_0xd43378(0x1bc)](),_0x4daba5[_0xd43378(0x19b)](),!_0x3dcd5a[_0xd43378(0x195)]?(_0x52c546(_0x120fad[_0xd43378(0x13f)]),_0x1aa26c['_hideMenu'](_0x48f9e1)):_0x53295e['prop']('checked',!_0x53295e[_0xd43378(0x115)]('checked'));});}),_0x48f9e1[_0x27f2ab(0x17f)]({'display':_0x27f2ab(0x1c5)}),_0x48f9e1['on'](_0x27f2ab(0x90),function(_0x557c26){const _0x29499c=_0x27f2ab;if(_0x557c26[_0x29499c(0x1bf)]===0x28)_0x557c26[_0x29499c(0x1bc)](),$(this)[_0x29499c(0x13b)](_0x29499c(0x12b))[_0x29499c(0x182)]()[_0x29499c(0x19e)](_0x29499c(0xa6));else{if(_0x557c26[_0x29499c(0x1bf)]===0x26)_0x557c26[_0x29499c(0x1bc)](),$(this)[_0x29499c(0x13b)](_0x29499c(0x12b))[_0x29499c(0x156)]()[_0x29499c(0x19e)](_0x29499c(0xa6));else _0x557c26[_0x29499c(0x1bf)]===0x1b&&(_0x557c26[_0x29499c(0x1bc)](),_0x1aa26c[_0x29499c(0x99)](_0x48f9e1));}_0x557c26[_0x29499c(0x19b)]();}),_0x48f9e1;},'disarmClick':![],'_showMenu'(_0x2c2686,_0x334640){const _0x3a04ea=_0x1afdab;if(this['disarmClick']){this[_0x3a04ea(0xfb)]=![];return;}var _0x3fe3d3=this,_0x3953d7=_0x334640['offset'](),_0x3373d3=_0x334640[_0x3a04ea(0xa9)](),_0x596429=_0x2c2686[_0x3a04ea(0xa9)](),_0x1094e1=_0x3373d3+_0x3953d7['top'];_0x1094e1+_0x596429-$(document)[_0x3a04ea(0x122)]()>$(window)[_0x3a04ea(0xa9)]()&&(_0x1094e1-=_0x1094e1+_0x596429-$(window)[_0x3a04ea(0xa9)]()+0x5),_0x1094e1<0x0&&(_0x2c2686['height'](_0x596429+_0x1094e1),_0x1094e1=0x0),_0x2c2686[_0x3a04ea(0x17f)]({'top':_0x1094e1+'px','left':_0x3953d7['left']+'px'}),_0x2c2686[_0x3a04ea(0xa4)](0x64),this[_0x3a04ea(0xe8)](function(){const _0x2acaf5=_0x3a04ea;_0x3fe3d3[_0x2acaf5(0x73)]['addClass'](_0x2acaf5(0x192)),$(document)['on'](_0x2acaf5(0x171),function(_0x183404){const _0x1f13c1=_0x2acaf5;!$(_0x183404['target'])[_0x1f13c1(0x137)](_0x2c2686)[_0x1f13c1(0xdb)]&&_0x3fe3d3[_0x1f13c1(0x99)](_0x2c2686),$(_0x183404[_0x1f13c1(0xbd)])[_0x1f13c1(0x137)](_0x334640)[_0x1f13c1(0xdb)]&&(_0x3fe3d3[_0x1f13c1(0xfb)]=!![],_0x183404[_0x1f13c1(0x1bc)]());});});},'_showTypeMenu'(){const _0x384063=_0x1afdab,_0x7e1e4c=this;this[_0x384063(0x7b)](_0x7e1e4c[_0x384063(0x17e)],_0x7e1e4c['$combo']),_0x7e1e4c[_0x384063(0xc0)][_0x384063(0xf2)]();const _0x31cb15=_0x7e1e4c[_0x384063(0x16d)];var _0x1dedf4=_0x7e1e4c[_0x384063(0x17e)][_0x384063(0xcc)]('[value=\x27'+_0x31cb15+'\x27');setTimeout(function(){_0x1dedf4['trigger']('focus');},0x78);},'_initMenu'(){const _0x4dfbaf=_0x1afdab,_0x13fcfd=this;_0x13fcfd[_0x4dfbaf(0x10a)][_0x4dfbaf(0x1c0)](_0x4dfbaf(0xfd),-0x1),_0x13fcfd[_0x4dfbaf(0x10a)]['on'](_0x4dfbaf(0xb6),function(_0x4b5859){const _0x5eb8bb=_0x4dfbaf;_0x4b5859[_0x5eb8bb(0x1bc)]();});_0x13fcfd[_0x4dfbaf(0x17e)]&&_0x13fcfd['$menu'][_0x4dfbaf(0x17d)]();const _0x299327=[{'label':_0x4dfbaf(0x1aa),'value':'t','title':_0x4dfbaf(0x18b),'icon':_0x4dfbaf(0xfa)},{'label':_0x4dfbaf(0xb1),'value':_0x4dfbaf(0x151),'title':'node\x20id\x20or\x20\x20browse\x20path\x20comes\x20from\x20injected\x20msg\x20parameter','icon':'<i\x20class=\x22fa\x20fa-envelope-open-o\x22/>'},{'label':'NodeId','value':'n','icon':_0x4dfbaf(0xe1)},{'label':_0x4dfbaf(0xc1),'value':'na','icon':_0x4dfbaf(0x116)},{'label':_0x4dfbaf(0xc5),'value':_0x4dfbaf(0x14a),'icon':_0x4dfbaf(0x1af)},{'label':_0x4dfbaf(0x112),'value':'b','icon':_0x4dfbaf(0x146)},{'label':_0x4dfbaf(0x1ab),'value':'ab','icon':_0x4dfbaf(0x1c2)}],_0x1441f4=_0x273351(_0x13fcfd[_0x4dfbaf(0x139)][_0x4dfbaf(0x1a5)]()),_0x38be8c=_0x299327[_0x4dfbaf(0xcc)](_0x4db523=>_0x4db523[_0x4dfbaf(0x13f)]===_0x1441f4);_0x13fcfd[_0x4dfbaf(0x81)]['empty']()['append'](_0x4dfbaf(0xd6)+((_0x38be8c===null||_0x38be8c===void 0x0?void 0x0:_0x38be8c[_0x4dfbaf(0x124)])||'')+'>&nbsp;\x20'+((_0x38be8c===null||_0x38be8c===void 0x0?void 0x0:_0x38be8c['icon'])||'')+_0x4dfbaf(0x95)),_0x13fcfd['selectedMenuItem']=_0x1441f4;const _0x581a15=this;_0x13fcfd[_0x4dfbaf(0x17e)]=this['_createMenu'](_0x299327,{},_0x223088=>{const _0x2d215b=_0x4dfbaf,_0x527491=_0x23c3c5(_0x223088);_0x527491&&_0x581a15[_0x2d215b(0x11d)](_0x527491);const _0x4b6861=_0x299327[_0x2d215b(0xcc)](_0xe86de4=>_0xe86de4[_0x2d215b(0x13f)]===_0x223088);_0x13fcfd[_0x2d215b(0x16d)]=_0x223088,_0x13fcfd['$selectLabel'][_0x2d215b(0x161)]()[_0x2d215b(0x184)](_0x2d215b(0xd6)+((_0x4b6861===null||_0x4b6861===void 0x0?void 0x0:_0x4b6861[_0x2d215b(0x124)])||'')+_0x2d215b(0x1a0)+((_0x4b6861===null||_0x4b6861===void 0x0?void 0x0:_0x4b6861[_0x2d215b(0x167)])||'')+_0x2d215b(0x95));}),_0x13fcfd[_0x4dfbaf(0x17e)][_0x4dfbaf(0x159)](document[_0x4dfbaf(0xcd)]),_0x13fcfd['$menu'][_0x4dfbaf(0xf2)](),_0x13fcfd[_0x4dfbaf(0x10a)]['show']();},'mode'(){const _0x33ef1b=this;return _0x23c3c5(_0x33ef1b['selectedMenuItem']);},'_create'(){const _0x12d5a6=_0x1afdab,_0x3bd675=this;_0x3bd675['$input']=this[_0x12d5a6(0xe0)],_0x3bd675[_0x12d5a6(0x139)][_0x12d5a6(0x17f)](_0x12d5a6(0x1ba),_0x12d5a6(0x1c5)),_0x3bd675[_0x12d5a6(0xd2)]=_0x3bd675[_0x12d5a6(0x139)][_0x12d5a6(0x178)]('<div>')['parent']()[_0x12d5a6(0x10e)](_0x12d5a6(0xa3)),_0x3bd675['$combo']=$(_0x12d5a6(0x1a6)),_0x3bd675[_0x12d5a6(0xbb)][_0x12d5a6(0x10e)](_0x12d5a6(0x19d)),_0x3bd675[_0x12d5a6(0x139)][_0x12d5a6(0x1c4)](_0x3bd675['$combo']),_0x3bd675['$inputGroup']=$(_0x12d5a6(0x1a6))[_0x12d5a6(0x10e)]('input-group'),_0x3bd675['$combo'][_0x12d5a6(0x184)](_0x3bd675['$inputGroup']),_0x3bd675[_0x12d5a6(0x16c)]['append'](_0x3bd675[_0x12d5a6(0x139)]),_0x3bd675[_0x12d5a6(0x16e)]=$(_0x12d5a6(0xe5)),_0x3bd675[_0x12d5a6(0x139)][_0x12d5a6(0x17b)](_0x3bd675['$toggleTreeBtn']),_0x3bd675['$toggleTreeBtn']['on'](_0x12d5a6(0x8e),function(){return _0x56d979(this,void 0x0,void 0x0,function*(){const _0x11d8d4=_0x4b19;var _0x23b33f;let _0xf79127=![],_0x1612d2;!_0x3bd675['$dropdown']['is'](':visible')&&(_0x3bd675['$info'][_0x11d8d4(0xf2)](),_0x1612d2=yield _0x3bd675[_0x11d8d4(0xec)](),(_0x1612d2!==_0x3bd675[_0x11d8d4(0x12f)]||((_0x23b33f=_0x3bd675[_0x11d8d4(0x12f)])===null||_0x23b33f===void 0x0?void 0x0:_0x23b33f[_0x11d8d4(0x11c)])!==_0x1612d2[_0x11d8d4(0x11c)])&&(yield _0x3bd675[_0x11d8d4(0xf0)]()),_0xf79127=!![]),_0x3bd675[_0x11d8d4(0xc0)][_0x11d8d4(0xdc)](),_0xf79127&&(yield _0x54b56a(_0x3bd675,_0x1612d2));});}),_0x3bd675[_0x12d5a6(0xbe)]=$(_0x12d5a6(0xca)),_0x3bd675['$input'][_0x12d5a6(0x17b)](_0x3bd675[_0x12d5a6(0xbe)]),_0x3bd675['$verifyBtn']['on'](_0x12d5a6(0x8e),()=>{const _0x318f7c=_0x3bd675['mode']();if(!_0x318f7c)return;this['verify'](_0x318f7c);});const _0x1e25cc=_0x3be984=>_0x56d979(this,void 0x0,void 0x0,function*(){const _0x40fcee=_0x12d5a6,_0x5c7a24=this,_0x4fba49=_0x5c7a24[_0x40fcee(0x129)]();if(!_0x4fba49)return;const _0x141ff0=_0x2716a6(_0x5c7a24),{data:_0x50596f,json:_0x38fc80}=yield _0x15f435(_0x141ff0,_0x3be984);if(_0x50596f['status']!==0xc8)return;if(_0x38fc80[_0x40fcee(0x19f)]['match'](/Good/)){const _0x3cad19=_0x44c842(_0x38fc80,_0x4fba49);_0x5c7a24['$input'][_0x40fcee(0x1a5)](_0x3cad19),_0x5c7a24[_0x40fcee(0x139)][_0x40fcee(0x19e)](_0x40fcee(0x165));}});{_0x3bd675['$uiSelect']=$(_0x12d5a6(0x118)),_0x3bd675[_0x12d5a6(0x139)]['before'](_0x3bd675[_0x12d5a6(0x73)]),_0x3bd675[_0x12d5a6(0x10a)]=$(_0x12d5a6(0x1ac))[_0x12d5a6(0x168)](_0x3bd675[_0x12d5a6(0x73)]),$(_0x12d5a6(0x9f))[_0x12d5a6(0xdc)](!![])[_0x12d5a6(0x159)](_0x3bd675['$selectTrigger']),_0x3bd675['$selectTrigger']['on']('click',function(_0x7ccd9f){const _0x5192fa=_0x12d5a6;_0x7ccd9f[_0x5192fa(0x1bc)](),_0x7ccd9f[_0x5192fa(0x19b)](),_0x3bd675['_showTypeMenu']();}),_0x3bd675[_0x12d5a6(0x10a)]['on'](_0x12d5a6(0x90),function(_0x231b31){const _0x349e2f=_0x12d5a6;_0x231b31[_0x349e2f(0x1bf)]===0x28&&_0x3bd675[_0x349e2f(0xd9)](),_0x231b31[_0x349e2f(0x19b)]();})['on'](_0x12d5a6(0xa6),function(){const _0x2d2235=_0x12d5a6;_0x3bd675[_0x2d2235(0x73)][_0x2d2235(0x10e)]('red-ui-typedInput-focus');})['on'](_0x12d5a6(0xc9),function(){const _0x211b1f=_0x12d5a6;_0x3bd675[_0x211b1f(0x73)][_0x211b1f(0x92)](_0x211b1f(0x192));}),_0x3bd675[_0x12d5a6(0x81)]=$(_0x12d5a6(0x104))[_0x12d5a6(0x159)](_0x3bd675[_0x12d5a6(0x10a)]);}this['_initMenu']();!_0x3bd675['$input'][_0x12d5a6(0x1c0)](_0x12d5a6(0xad))&&_0x3bd675['$input'][_0x12d5a6(0x1c0)](_0x12d5a6(0xad),'enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20');_0x3bd675['$info']=$(_0x12d5a6(0xaf)),_0x3bd675[_0x12d5a6(0x15d)][_0x12d5a6(0xf2)](),_0x3bd675['$combo'][_0x12d5a6(0x184)](_0x3bd675[_0x12d5a6(0x15d)]),_0x3bd675[_0x12d5a6(0xc0)]=$(_0x12d5a6(0x1a6))[_0x12d5a6(0x10e)]('sterfive-dropdown')[_0x12d5a6(0xf2)]()[_0x12d5a6(0x159)](_0x3bd675[_0x12d5a6(0xbb)]),_0x3bd675[_0x12d5a6(0xfc)]=$('<ul\x20class=\x22sterfive-tree\x22></ul>')['appendTo'](_0x3bd675['$dropdown']),this[_0x12d5a6(0xf0)]();const _0x3b200c=(_0xf72584,_0xc87979)=>{const _0x4969a0=_0x12d5a6,_0x4ffe1f=0x14,_0x27fb99=0x14,_0x3194fe=_0xf72584[_0x4969a0(0xf8)](),_0x29d632=_0xc87979;if(_0x29d632['pageX']>=_0x3194fe[_0x4969a0(0x83)]&&_0x29d632['pageX']<=_0x3194fe[_0x4969a0(0x83)]+_0x4ffe1f&&_0x29d632[_0x4969a0(0xa7)]>=_0x3194fe[_0x4969a0(0x96)]&&_0x29d632[_0x4969a0(0xa7)]<=_0x3194fe[_0x4969a0(0x96)]+_0x27fb99)return!![];return![];},_0x562804=_0x9c89fb=>_0x56d979(this,void 0x0,void 0x0,function*(){const _0x5af067=_0x12d5a6;if(_0x9c89fb[_0x5af067(0x194)](_0x5af067(0xb0)))_0x516d9d(_0x3bd675,_0x9c89fb);else{if(_0x9c89fb[_0x5af067(0x194)](_0x5af067(0xb8)))_0x9c89fb[_0x5af067(0x13b)]('ul')['toggle'](),_0x9c89fb[_0x5af067(0x13e)](_0x5af067(0x1c6));else{if(_0x9c89fb[_0x5af067(0x13b)]('ul')[_0x5af067(0x13b)]()[_0x5af067(0xdb)]>0x0)_0x9c89fb[_0x5af067(0x13b)]('ul')[_0x5af067(0xdc)](),_0x9c89fb[_0x5af067(0x13e)](_0x5af067(0x1c6));else;}}});_0x3bd675[_0x12d5a6(0xfc)]['on'](_0x12d5a6(0x7e),'li',function(_0x1ac1b0){const _0x39f2bd=_0x12d5a6;var _0x562dc8,_0x3469b9;_0x1ac1b0[_0x39f2bd(0x19b)]();let _0x1372ff=$(this);if(_0x3b200c(_0x1372ff,_0x1ac1b0))_0x562804(_0x1372ff);else{const _0x511bbe=_0x1372ff['data'](_0x39f2bd(0x13f)),_0x26ca91=_0x1372ff[_0x39f2bd(0x8d)](_0x39f2bd(0xd7));if(_0x3bd675[_0x39f2bd(0x18a)]['isSelectable']&&!_0x3bd675[_0x39f2bd(0x18a)][_0x39f2bd(0x1c3)](_0x26ca91))return;_0x3bd675[_0x39f2bd(0x139)][_0x39f2bd(0x8d)](_0x39f2bd(0xd7),_0x26ca91),((_0x562dc8=_0x26ca91[_0x39f2bd(0x1bb)])===null||_0x562dc8===void 0x0?void 0x0:_0x562dc8[_0x39f2bd(0x1aa)])||((_0x3469b9=_0x26ca91['browseName'])===null||_0x3469b9===void 0x0?void 0x0:_0x3469b9[_0x39f2bd(0x1b6)])||_0x26ca91[_0x39f2bd(0x11c)]['toString'](),_0x1e25cc(_0x511bbe),_0x3bd675['$dropdown'][_0x39f2bd(0xf2)]();}}),_0x3bd675[_0x12d5a6(0xfc)]['on'](_0x12d5a6(0x8e),'li',function(_0x5c8faf){const _0x53afcf=_0x12d5a6;_0x5c8faf[_0x53afcf(0x19b)]();let _0x10fa9a=$(this);_0x3b200c(_0x10fa9a,_0x5c8faf)&&_0x562804(_0x10fa9a),_0x5eeef7(_0x3bd675,_0x10fa9a);}),$(document)['on'](_0x12d5a6(0x8e),function(_0x41db6e){const _0x10afa7=_0x12d5a6;!$(_0x41db6e[_0x10afa7(0xbd)])[_0x10afa7(0x137)](_0x3bd675['$combo'])['length']&&_0x3bd675[_0x10afa7(0xc0)][_0x10afa7(0xf2)]();});}});},_0xa782d8=_0x2c50e7=>{const _0x41e61e=_0x40bb4e;var _0x8b15f1,_0x4db579,_0x4612c4;if(!_0x2c50e7){const _0x51a782=$('<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>');return _0x51a782;}const _0xd848f5=_0x2c50e7[_0x41e61e(0x11c)][_0x41e61e(0x197)]();let _0x5a91e4=((_0x8b15f1=_0x2c50e7[_0x41e61e(0x1bb)])===null||_0x8b15f1===void 0x0?void 0x0:_0x8b15f1['text'])||((_0x4db579=_0x2c50e7[_0x41e61e(0x86)])===null||_0x4db579===void 0x0?void 0x0:_0x4db579[_0x41e61e(0x1b6)])||_0x2c50e7[_0x41e61e(0x11c)][_0x41e61e(0x197)](),_0x133866=(_0x4612c4=_0x2c50e7[_0x41e61e(0x86)])===null||_0x4612c4===void 0x0?void 0x0:_0x4612c4['namespaceIndex'];_0x5a91e4+=_0x133866!==undefined&&_0x2c50e7[_0x41e61e(0x153)]['match'](/Type/)?_0x41e61e(0xf5)+_0x133866+')':'';const {icon:_0xdc317c,color:_0x46a76d}=_0x4744a7(_0x2c50e7),_0x32b3be=$(_0x41e61e(0x10b));if(_0x2c50e7[_0x41e61e(0x153)]==='Variable'){const _0x1d935d=$(_0x41e61e(0x105));_0x32b3be[_0x41e61e(0x184)](_0x1d935d),_0x1d935d['on']('click',function(){const _0x28ab9f=_0x41e61e;_0x1d935d[_0x28ab9f(0x194)](_0x28ab9f(0x166))?_0x1d935d[_0x28ab9f(0x92)](_0x28ab9f(0x166))[_0x28ab9f(0x10e)](_0x28ab9f(0x98)):_0x1d935d[_0x28ab9f(0x92)](_0x28ab9f(0x98))[_0x28ab9f(0x10e)]('unchecked');});}return _0x32b3be['append']($(_0x41e61e(0x18d)+_0xdc317c+'\x22\x20style=\x22color:'+_0x46a76d+_0x41e61e(0x185)+_0x5a91e4+_0x41e61e(0x120))),_0x32b3be[_0x41e61e(0x10e)](_0x41e61e(0xb0)),_0x32b3be['data'](_0x41e61e(0x13f),_0xd848f5),_0x32b3be['data'](_0x41e61e(0xd7),_0x2c50e7),_0x32b3be;},_0x303f20=()=>{const _0x31156f=_0x40bb4e;$[_0x31156f(0x1b8)](_0x31156f(0x173),{'options':{'endpointNode':()=>({'endpoint':_0x31156f(0x145)}),'endpoint':()=>undefined,'baseUrl':''},'_populate'(){return _0x56d979(this,void 0x0,void 0x0,function*(){const _0x30eb6f=_0x4b19;var _0xd4b05a;const _0x534832=this,_0x1f3038=new Set(((_0xd4b05a=_0x534832[_0x30eb6f(0x139)][_0x30eb6f(0x1a5)]())===null||_0xd4b05a===void 0x0?void 0x0:_0xd4b05a[_0x30eb6f(0x197)]()[_0x30eb6f(0x186)](';'))||[]),_0x148edd=_0x2716a6(_0x534832),_0x45bec4=yield _0x2be3a3(_0x148edd);this[_0x30eb6f(0x88)](_0x45bec4,_0x1f3038);});},'_installTree'(_0x220de9,_0x53ebb6){const _0x170727=_0x31156f,_0x1de4dc=this;_0x1de4dc['$tree'][_0x170727(0x161)]();if(!_0x220de9[_0x170727(0x177)])return;const _0x4ed9e8=_0x220de9['events'],_0x3963fe=_0xa782d8(_0x4ed9e8);_0x1de4dc[_0x170727(0xfc)]['append'](_0x3963fe);const _0x26fa15='';this[_0x170727(0x117)](_0x3963fe[_0x170727(0x13b)]('ul'),_0x4ed9e8,_0x26fa15,_0x53ebb6),_0x3963fe[_0x170727(0x92)](_0x170727(0xb0))[_0x170727(0x10e)](_0x170727(0xb8)),this['_updateValues'](_0x53ebb6);},'_installChildren'(_0x56f2bf,_0x55597e,_0x44d374,_0x22416c){const _0x4906bb=_0x31156f,_0x4359ce=({name:_0x582202,namespaceIndex:_0x5bf560})=>{if(_0x5bf560===0x0)return _0x582202;return _0x5bf560+':'+_0x582202;},_0x41a601=_0x55597e[_0x4906bb(0x13b)]||[],_0x2cf567=_0x55597e['subTypes']||[],_0x1bface=[..._0x41a601,..._0x2cf567];for(const _0x4bc599 of _0x1bface){const _0x429cd8=_0xa782d8(_0x4bc599);_0x56f2bf[_0x4906bb(0x184)](_0x429cd8);let _0x5802e2='';_0x4bc599['nodeClass']==='Variable'&&(_0x44d374?_0x5802e2=_0x44d374+'.'+_0x4359ce(_0x4bc599[_0x4906bb(0x86)]):_0x5802e2=_0x4359ce(_0x4bc599[_0x4906bb(0x86)]),_0x429cd8[_0x4906bb(0x1c0)](_0x4906bb(0x1b7),_0x5802e2));const _0x1fe008=_0x4bc599['children']&&_0x4bc599[_0x4906bb(0x13b)][_0x4906bb(0xdb)],_0x359e1d=_0x4bc599['subTypes']&&_0x4bc599[_0x4906bb(0xa1)][_0x4906bb(0xdb)];!_0x1fe008&&!_0x359e1d?_0x429cd8[_0x4906bb(0x92)]('expandable')['addClass'](_0x4906bb(0x7d)):(this[_0x4906bb(0x117)](_0x429cd8[_0x4906bb(0x13b)]('ul'),_0x4bc599,_0x5802e2,_0x22416c),_0x429cd8[_0x4906bb(0x92)]('expandable')[_0x4906bb(0x10e)](_0x4906bb(0xb8)));}},'_updateSelectedFields'(){const _0x1b0f3a=_0x31156f;var _0x33ae90;const _0x1be760=this,_0x55eee5=new Set(((_0x33ae90=_0x1be760[_0x1b0f3a(0x139)][_0x1b0f3a(0x1a5)]())===null||_0x33ae90===void 0x0?void 0x0:_0x33ae90[_0x1b0f3a(0x197)]()['split'](';'))||[]);this[_0x1b0f3a(0x164)](_0x55eee5);},'_updateValues'(_0x389b24){const _0x5c2bc6=_0x31156f;$('.sterfive-tree\x20li')[_0x5c2bc6(0x10f)](function(){const _0x1d9c59=_0x5c2bc6,_0x2c9657=$(this),_0x4ceae9=_0x2c9657[_0x1d9c59(0x1c0)](_0x1d9c59(0x1b7));_0x4ceae9&&_0x389b24['has'](_0x4ceae9)&&_0x2c9657[_0x1d9c59(0x13b)](_0x1d9c59(0x9c))[_0x1d9c59(0x92)](_0x1d9c59(0x166))[_0x1d9c59(0x10e)](_0x1d9c59(0x98));});},'_setInputValue'(){const _0x18b6e5=_0x31156f,_0x7e7791=this,_0x30537a=[];$(_0x18b6e5(0x126))[_0x18b6e5(0x10f)](function(){const _0x19085b=_0x18b6e5,_0x536d69=$(this);if(_0x536d69['children'](_0x19085b(0x1a1))[_0x19085b(0xdb)]>0x0){const _0x4740e5=_0x536d69[_0x19085b(0x1c0)](_0x19085b(0x1b7));if(_0x4740e5)_0x30537a[_0x19085b(0x10d)](_0x4740e5);}});const _0x5e392e=[...new Set(_0x30537a)][_0x18b6e5(0x147)]()[_0x18b6e5(0xdf)](';');_0x7e7791[_0x18b6e5(0x139)][_0x18b6e5(0x1a5)](_0x5e392e),_0x7e7791['$input']['trigger'](_0x18b6e5(0x165));},'_create'(){const _0x467d85=_0x31156f,_0x3c7413=this;_0x3c7413['$input']=this[_0x467d85(0xe0)],_0x3c7413[_0x467d85(0xbb)]=$(_0x467d85(0x1a6)),_0x3c7413['$combo'][_0x467d85(0x10e)]('sterfive-combo-box'),this[_0x467d85(0xe0)][0x0]['parentElement'][_0x467d85(0x158)](_0x3c7413[_0x467d85(0xbb)][0x0],this[_0x467d85(0xe0)][0x0]),_0x3c7413['$inputGroup']=$(_0x467d85(0x1a6))[_0x467d85(0x10e)](_0x467d85(0x9d)),_0x3c7413['$combo'][_0x467d85(0x184)](_0x3c7413['$inputGroup']),_0x3c7413[_0x467d85(0x16c)]['append'](_0x3c7413[_0x467d85(0x139)]),_0x3c7413[_0x467d85(0x16e)]=$(_0x467d85(0x11a)),_0x3c7413['$inputGroup']['append'](_0x3c7413['$toggleTreeBtn']),_0x3c7413[_0x467d85(0x16e)]['on'](_0x467d85(0x8e),function(){const _0xc940b6=_0x467d85;_0x3c7413['$dropdown'][_0xc940b6(0xdc)](),_0x3c7413['$info']['toggle']();if(_0x3c7413[_0xc940b6(0xc0)]['is'](_0xc940b6(0x193))){_0x541d69[_0xc940b6(0x18f)]();const _0x543cd9=_0x3c7413['$dropdown'][_0xc940b6(0xf8)]();_0x541d69['css']({'top':_0x543cd9[_0xc940b6(0x96)]+'px','right':'calc(100%\x20-\x20'+(_0x543cd9[_0xc940b6(0x83)]+_0x3c7413['$dropdown'][_0xc940b6(0xe3)]())+_0xc940b6(0xd8)}),_0x3c7413[_0xc940b6(0x10c)](),_0x3c7413[_0xc940b6(0x12c)]();}else _0x541d69[_0xc940b6(0xf2)]();});!_0x3c7413['$input'][_0x467d85(0x1c0)](_0x467d85(0xad))&&_0x3c7413[_0x467d85(0x139)][_0x467d85(0x1c0)]('placeholder',_0x467d85(0x1ae));_0x3c7413['$info']=$(_0x467d85(0xaf)),_0x3c7413[_0x467d85(0x15d)][_0x467d85(0xf2)](),_0x3c7413[_0x467d85(0xc0)]=$('<div/>')[_0x467d85(0x10e)](_0x467d85(0x1ad))[_0x467d85(0xf2)]();const _0x40d349=$(_0x467d85(0x199)),_0x128c0b=$('<span\x20class=\x22cancel-button\x22>✖</span>'),_0x541d69=$(_0x467d85(0xa2))['append'](_0x40d349,_0x128c0b);_0x541d69[_0x467d85(0xf2)](),_0x40d349['on']('click',()=>{_0x3c7413['_setInputValue'](),_0x3c7413['$dropdown']['hide']();}),_0x128c0b['on'](_0x467d85(0x8e),()=>{const _0xf7e5ac=_0x467d85;_0x3c7413[_0xf7e5ac(0xc0)][_0xf7e5ac(0xf2)]();}),_0x3c7413[_0x467d85(0xbb)][_0x467d85(0x184)](_0x3c7413[_0x467d85(0x15d)]),_0x3c7413[_0x467d85(0xbb)][_0x467d85(0x184)](_0x3c7413[_0x467d85(0xc0)]),_0x3c7413[_0x467d85(0xfc)]=$('<ul\x20class=\x22sterfive-tree\x22></ul>'),_0x3c7413[_0x467d85(0xc0)]['empty']()['append'](_0x3c7413[_0x467d85(0xfc)],_0x541d69),_0x3c7413['$tree']['on'](_0x467d85(0x8e),'li',function(_0x189eab){const _0x3dcfc5=_0x467d85;_0x189eab['stopPropagation']();let _0x5eb469=$(this);const _0xd36e1e=0x14,_0x461400=0x14,_0x40432a=$(this)[_0x3dcfc5(0xf8)](),_0xa48cd0=_0x189eab;if(_0xa48cd0[_0x3dcfc5(0x142)]>=_0x40432a['left']&&_0xa48cd0[_0x3dcfc5(0x142)]<=_0x40432a[_0x3dcfc5(0x83)]+_0xd36e1e&&_0xa48cd0['pageY']>=_0x40432a['top']&&_0xa48cd0[_0x3dcfc5(0xa7)]<=_0x40432a['top']+_0x461400){console[_0x3dcfc5(0x128)](_0x3dcfc5(0x16f)),console[_0x3dcfc5(0x128)](_0x3dcfc5(0xac),_0x5eb469[_0x3dcfc5(0x8d)]('value'),_0x5eb469['attr'](_0x3dcfc5(0xf7)));if(_0x5eb469['hasClass'](_0x3dcfc5(0xb0)))_0x5eb469[_0x3dcfc5(0x92)](_0x3dcfc5(0xb0))[_0x3dcfc5(0x10e)](_0x3dcfc5(0xb8)),_0x5eb469[_0x3dcfc5(0x13b)]('ul')[_0x3dcfc5(0xdc)]();else{if(_0x5eb469[_0x3dcfc5(0x194)](_0x3dcfc5(0xb8)))_0x5eb469[_0x3dcfc5(0x13b)]('ul')[_0x3dcfc5(0xdc)](),_0x5eb469[_0x3dcfc5(0x13e)](_0x3dcfc5(0x1c6));else{if(_0x5eb469[_0x3dcfc5(0x13b)]('ul')[_0x3dcfc5(0x13b)]()[_0x3dcfc5(0xdb)]>0x0)_0x5eb469[_0x3dcfc5(0x13b)]('ul')['toggle'](),_0x5eb469['toggleClass'](_0x3dcfc5(0x1c6));else;}}}}),$(document)['on']('click',function(_0x3a6430){const _0xd4c41a=_0x467d85;!$(_0x3a6430[_0xd4c41a(0xbd)])[_0xd4c41a(0x137)](_0x3c7413[_0xd4c41a(0xbb)])[_0xd4c41a(0xdb)]&&_0x3c7413['$dropdown'][_0xd4c41a(0xf2)]();}),this['_populate']();}});},_0x2be3a3=_0x5dba7c=>_0x56d979(void 0x0,[_0x5dba7c],void 0x0,function*({endpointNode:_0x21c6a1,endpoint:_0x3d3835,baseUrl:_0x16eb9c}){const _0x32e20e=_0x40bb4e,_0x30863a=_0x16eb9c+_0x32e20e(0x75),_0x195aa0=_0x30863a+_0x32e20e(0xef),_0x13eac4=yield fetch(_0x195aa0,{'method':_0x32e20e(0x144),'body':JSON['stringify']({'endpointNode':_0x21c6a1,'endpoint':_0x3d3835}),'headers':{'Content-Type':_0x32e20e(0xae)}});if(_0x13eac4[_0x32e20e(0x162)]!==0xc8)return console[_0x32e20e(0x128)](_0x32e20e(0xea),_0x13eac4[_0x32e20e(0x162)],_0x13eac4[_0x32e20e(0xd0)]),{'events':null};console[_0x32e20e(0x128)](_0x32e20e(0xaa),_0x13eac4[_0x32e20e(0x162)],_0x13eac4[_0x32e20e(0xd0)]);const _0x2f9e1f=yield _0x13eac4[_0x32e20e(0x181)](),_0x138831=_0x2f9e1f[_0x32e20e(0x177)];return{'events':_0x138831};}),_0x29689f=()=>{const _0x4b36b2=_0x40bb4e,_0x5f4acc=$('#node-input-endpoint'),_0x2f3f86=_0x5f4acc['val'](),_0x27eb5e=RED[_0x4b36b2(0x8f)][_0x4b36b2(0x89)](_0x2f3f86);if(!_0x27eb5e)return undefined;const {endpoint:_0x1464f0,securityMode:_0x33a502,securityPolicy:_0x733568,userIdentityType:_0x12f370,credentials:_0x66d943,namespaceAliases:_0x44dd13}=_0x27eb5e,_0x8878e1={'endpoint':_0x1464f0,'securityMode':_0x33a502,'securityPolicy':_0x733568,'userIdentityType':_0x12f370,'credentials':_0x66d943,'namespaceAliases':_0x44dd13};return _0x8878e1;},_0x3cf765=()=>{const _0x4a1e24=_0x40bb4e,_0xb54850=$(_0x4a1e24(0x157)),_0xbf1493=_0xb54850[_0x4a1e24(0x1a5)](),_0x259ef7=_0x29689f();if(!_0x259ef7)return undefined;const _0x53fde9=_0x259ef7[_0x4a1e24(0xa0)];return Object[_0x4a1e24(0x1bd)]({'namespaceAliases':_0x53fde9,'id':_0xbf1493},_0x259ef7);},_0x270843=()=>{return{'endpointNode':_0x3cf765};},_0x301834=()=>{const _0x40a863=_0x40bb4e;debugger;const _0x1b46f1=$(_0x40a863(0x1b4));console[_0x40a863(0x128)](_0x40a863(0xb2),_0x1b46f1[_0x40a863(0xdb)]);if(_0x1b46f1['length']){console[_0x40a863(0x128)]('installing\x20iframe');const _0xbbfe35=$('<iframe></iframe>',{'src':_0x40a863(0x190),'scrolling':'no','style':_0x40a863(0x1a2),'allowtransparency':_0x40a863(0xc3),'width':_0x40a863(0x106),'height':_0x40a863(0x172)});_0x1b46f1[_0x40a863(0x184)](_0xbbfe35),_0xbbfe35[_0x40a863(0x17f)]({'position':'absolute','right':'20px','bottom':_0x40a863(0x180)});}};RED[_0x40bb4e(0x8f)][_0x40bb4e(0xb5)](_0x40bb4e(0x108),{'category':_0x40bb4e(0x132),'color':_0x40bb4e(0xb7),'align':_0x40bb4e(0x19c),'icon':_0x40bb4e(0xdd),'paletteLabel':_0x40bb4e(0x1a7),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':'OpcUa-Endpoint2'},'subscription':{'value':'','required':!![],'validate':_0x19bc2=>{if(_0x19bc2==='')return![];return!![];}},'startImmediately':{'value':!![],'required':!![]},'nodeId':{'value':'','required':![],'validate':()=>!![]},'samplingInterval':{'value':0x3e8,'required':!![]},'discardOldest':{'value':!![],'required':!![]},'queueSize':{'value':0xa,'required':!![]},'selectClauses':{'value':'','required':!![]},'whereClause':{'value':'','required':![]}},'outputs':0x2,'label'(){const _0x427e28=_0x40bb4e;return this[_0x427e28(0x1b6)]||_0x427e28(0x111);},'labelStyle'(){const _0x1c0ad8=_0x40bb4e;return this['name']?_0x1c0ad8(0xd5):'';},'oneditprepare'(){const _0x81ac11=_0x40bb4e;_0x24b11b(),_0x303f20(),_0x5c13e6(RED,this),_0x301834(),$(_0x81ac11(0x169))['on'](_0x81ac11(0x165),()=>{const _0x424b93=_0x81ac11,_0x30500f=$(_0x424b93(0x130))[_0x424b93(0x115)](_0x424b93(0x98));_0x30500f?$(_0x424b93(0x152))[_0x424b93(0x1a5)](0x0):$(_0x424b93(0x152))[_0x424b93(0x1a5)](0x1);});const _0x5c53d2=$(_0x81ac11(0x140));_0x5c53d2[_0x81ac11(0x119)](Object[_0x81ac11(0x1bd)](Object['assign']({},_0x270843()),{'filter'(_0xc19a1a){const _0x4c7bb3=_0x81ac11;return _0xc19a1a[_0x4c7bb3(0x153)]==='Object';},'isSelectable'(_0x406621){const _0x1e768a=_0x81ac11;return _0x406621[_0x1e768a(0x153)]===_0x1e768a(0x154);}})),$(_0x81ac11(0x15f));const _0xa03992=$('#node-input-selectClauses');_0xa03992[_0x81ac11(0x143)](Object['assign']({},_0x270843()));},'oneditsave'(){const _0x59390a=_0x40bb4e,_0xe343c8=$(_0x59390a(0x130))[_0x59390a(0x115)](_0x59390a(0x98));_0xe343c8?($('#node-input-startImmediately')[_0x59390a(0x1a5)](_0xe343c8?0x0:0x1),this[_0x59390a(0xed)]=_0xe343c8?0x0:0x1):($('#node-input-startImmediately')['val'](0x1),this[_0x59390a(0xed)]=0x1);}});}()));function _0x4b19(_0x48d4ae,_0x4e191a){const _0x7bf390=_0x7bf3();return _0x4b19=function(_0x4b195a,_0x33d086){_0x4b195a=_0x4b195a-0x73;let _0x2c6270=_0x7bf390[_0x4b195a];return _0x2c6270;},_0x4b19(_0x48d4ae,_0x4e191a);}function _0x7bf3(){const _0x3d20fa=['5798232atucFj','/extractEventTypes','reset','pointer-events','hide','12278dhEtgm','fa-folder','\x20(ns=','HasTypeDefinition','class','offset','subscription','<i\x20class=\x22fa\x20fa-font\x22/i>\x20','disarmClick','$tree','tabindex','stringify','ObjectType','throw','Organizes','<input\x20type=\x22checkbox\x22>','ns=0;i=34','<span\x20class=\x22red-ui-typedInput-type-label\x22></span>','<span\x20class=\x22custom-checkbox\x20unchecked\x22></span>','180px','ns=0;i=35','OpcUa-Client2-MonitorEvent','BrowseName','$selectTrigger','<li>','_populate','push','addClass','each','HasSubtype','OPCUA\x20Monitor','BrowsePath','/browse','Both','prop','<i\x20class=\x22fa\x20fa-bookmark\x22/>&nbsp;\x20','_installChildren','<div>','nodeBrowser','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','\x22\x20style=\x22color:','nodeId','verify','apply','bp_aliased','<ul></ul>','baseUrl','scrollTop','function','title','sterfive-typedInput-options\x20sterfive-online-menu','.sterfive-tree\x20li','endpointNode','log','mode','grey',':focus','_updateSelectedFields','message','/checkNodeId','currentParent','#node-input-startImmediately','<a\x20href=\x22#\x22></a>','opcua','nodeIds','aliased\x20NodeId:\x20','<li>error\x20','Forward','closest','/walk-backward','$input','fa-text-width','children',':first','SteelBlue','toggleClass','value','#node-input-nodeId','Unspecified','pageX','eventFieldSelector','POST','opc.tcp://opcuademo.sterfive.com:26543','<i\x20class=\x22fa\x20fa-tag\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/>&nbsp;','sort','ns=0;i=46','732520bHMHTx','nsu','indexOf','elements','196270eREoTK','filter','IsForward','isTypeRef','msg','#node-input-inputs','nodeClass','Object','err','prev','#node-input-endpoint','replaceChild','appendTo','fa-cog','red-ui-typedInput-icon','auto','$info','subscriptions','#node-input-whereClause','__parentNode','empty','status','input-error','_updateValues','change','unchecked','icon','prependTo','node-input-startImmediately','.tree-text:first','error','$inputGroup','selectedMenuItem','$toggleTreeBtn','clicked\x20on\x20icon','sterfive-info','mousedown.red-ui-typedInput-close-property-select','30px','sterfive.eventFieldSelector','sterfive.nodeBrowser','112679jGCzFK','references','events','wrap','string','Objects','after','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','remove','$menu','css','16px','json','next','nodeId_nsu','append',';\x22></i>','split','VariableType','callback','already\x20fetched','options','Value\x20is\x20not\x20verified','<i>','<i\x20class=\x22fa\x20','ns=0;i=40','show','/opcua-for-node-red/support-frame.html','fa-question','red-ui-typedInput-focus',':visible','hasClass','multiple','input[type=\x22checkbox\x22]','toString','fa-list-alt','<span\x20class=\x22validate-button\x22>✔</span>','li\x20>\x20.tree-text','stopPropagation','right','sterfive-combo-box','trigger','statusCode','>&nbsp;\x20','span.custom-checkbox.checked','background-color:transparent;overflow:hidden;border:3px','<li\x20key=\x22','35706wHHjWs','val','<div/>','monitor\x20events','fetched','DodgerBlue','text','Aliased\x20Browse\x20Path','<button\x20type=\x22button\x22\x20tabindex=\x220\x22></button>','sterfive-dropdown','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','<i\x20class=\x22fa\x20fa-id-card\x22/>&nbsp;\x20','\x22}><span\x20class=\x22tree-text\x22\x20title=','<option/>','browse\x20path:\x20','forEach','.red-ui-tray-body','ns=0;i=85','name','data-value','widget','Method','border','displayName','preventDefault','assign','already\x20loading','keyCode','attr','bp_indexed','<i\x20class=\x22fa\x20fa-bookmark\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/>&nbsp;','isSelectable','replaceWith','none','expandable\x20expanded','$uiSelect','SeaGreen','/opcua-for-node-red','</span><ul></ul></li>','requestedNodeId','CadetBlue','144498tcmFhP','NodeClass','_showMenu','ns=0;i=47','no-expandable','dblclick','then','nsuNodeID','$selectLabel','browsePath','left','label','animate','browseName','Good','_installTree','node','nodeId_aliased','aliasedBrowsePath','failure','data','click','nodes','keydown','ns=0;i=45','removeClass','HasComponent','aliased\x20browsePath:\x20','</span>','top','ReferenceType','checked','_hideMenu','nodeId:\x20','View','span.custom-checkbox','input-group','18px','<i\x20class=\x22red-ui-typedInput-icon\x20fa\x20fa-caret-down\x22></i>','namespaceAliases','subTypes','<div\x20class=\x22floating-buttons\x22></div>','main-wrapper','slideDown','aliasedNodeId','focus','pageY','ns=0;i=61','height','fetched\x20:\x20','typeDefinition','clicked\x20on\x20','placeholder','application/json','<div\x20class=\x22info-text\x22></div>','expandable','msg.','installFeedbackWidget\x20','mask-image:\x20url(','suppressed','registerType','mousedown.red-ui-typedInput-focus-block','#C0DEED','expanded','nsu\x20nodeId:\x20','match','$combo','<div\x20class=\x22spinner\x22></div>','target','$verifyBtn','TypeDefinition','$dropdown','Aliased\x20NodeId','DataType','true','endpoint','NodeId\x20with\x20namespace\x20Urn','HasChild','DisplayName','</li>','blur','<button\x20title=\x22verify\x20nodeId\x20or\x20browsePath\x22><i\x20class=\x22fa\x20fa-refresh\x22></i></button>','fa-object-group','find','body','parentNode','#node-input-subscription','statusText','fa-sliders','$elementDiv','node\x20class:\x20','referenceTypeId','node_label_italic','<span\x20title=','reference','px)','_showTypeMenu','><i\x20class=\x22fa\x20','length','toggle','opcualogobig.png','28RRdRtn','join','element','<i\x20class=\x22fa\x20fa-tag\x22/>1\x20&nbsp;\x20','Variable','width','selected','<button\x20title=\x22open\x20OPCUA\x20AddressSpace\x20Browser\x22><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','loading','Inverse','_delay','SandyBrown','fetching\x20failed\x20with\x20error','localeCompare','resolveParentNode','inputs'];_0x7bf3=function(){return _0x3d20fa;};return _0x7bf3();}
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg1YzEzZTYiLCJfMHgxYmRiMjQiLCJfMHgzY2YzMDUiLCJfMHgzNGRmOWIiLCIkIiwiXzB4NDliNzBjIiwiXzB4NTc3YmY0IiwiXzB4M2FiOTI4IiwiXzB4NDhjOTVlIiwiXzB4OGM4OTkxIiwiXzB4NTZkOTc5IiwiXzB4MjY3YTVhIiwiXzB4NTkzMTJhIiwiXzB4NWYxZGMyIiwiXzB4MjU4ZTkyIiwiXzB4MTRhMTdmIiwiXzB4NDA3YWQwIiwiXzB4MzFmZjljIiwiUHJvbWlzZSIsIl8weDI5YWZjNiIsIl8weDI1YTM2ZCIsIl8weDQ4YjdjMCIsIl8weDE0YzkyOCIsIl8weDFiMThjNyIsIl8weDU0ZGNlMiIsIl8weDVhZWUwYiIsIl8weDE0YjE0YiIsIl8weDQ5NGI3YyIsIl8weDMzM2VkNCIsIlN1cHByZXNzZWRFcnJvciIsIl8weDhlMjM1YyIsIl8weDFmNDY2YiIsIl8weDNhMDdmNyIsIl8weDEyNDIxNCIsIkVycm9yIiwiXzB4YTc3MTUyIiwiXzB4MzMwYWEwIiwiXzB4ZWE4NmM1IiwiXzB4NTlmODAyIiwiXzB4Yzc1YmU2IiwiXzB4ZmE0OTM0IiwiXzB4Mzg5YjAzIiwiXzB4NTg1ZTlhIiwiXzB4NTFkYjkyIiwiXzB4NDU3NWIyIiwiXzB4M2I4YmZkIiwiXzB4MWJiNTY5IiwiXzB4MTNjOTY5IiwiXzB4MWU5NWY1IiwiXzB4NTA3YzFkIiwiXzB4YTc3MDI4IiwiXzB4MWE3ZTA0IiwiXzB4NDc0NGE3IiwiXzB4MjViYjk2IiwiXzB4MmEwMWY4IiwiXzB4NGRmYzc3IiwiXzB4MTZhZDcxIiwiXzB4ZDgzNzE5IiwiZW5kcG9pbnROb2RlIiwiXzB4M2JlZjEwIiwiZW5kcG9pbnQiLCJfMHg3NjA4OTIiLCJiYXNlVXJsIiwiXzB4NDE1ZjUzIiwiXzB4NWI1MzhmIiwiXzB4NDRmMDExIiwiXzB4M2VlYTc2IiwiXzB4MTA0NzAwIiwiXzB4MzY3Njg3IiwiT2JqZWN0IiwiXzB4MTk4ZjkxIiwiZmV0Y2giLCJKU09OIiwiY29uc29sZSIsIl8weDM5ZGVjMyIsIl8weGRiMjgwMCIsIl8weDFhY2NmMCIsIl8weGVlYzMxIiwiXzB4NTdkMmRlIiwiXzB4MTRiMjFlIiwiXzB4MjQ2ZjMzIiwiXzB4NDUyMjZiIiwiXzB4NThiZjkwIiwiXzB4MjFhYWYwIiwibm9kZUlkIiwiXzB4NWNjMTZmIiwicm9vdE5vZGVJZCIsIl8weDNmNWNiMyIsImlzVHlwZSIsIl8weDE3MGI4ZiIsIl8weDE2NDM4MyIsIl8weDNlYzAzNSIsIl8weDQzYzI0OSIsIl8weDQ0NzNkYiIsIl8weDQ0Yzg0MiIsIl8weDI0OGU2NCIsIl8weDU3MGU5YiIsIl8weDI5N2QxYiIsIl8weDQzNDVlNSIsIl8weDQ3MTE0YyIsIl8weDQxNGQxMCIsIl8weDUwMDViYSIsIl8weDI3MzM1MSIsIl8weDFiODEyMyIsIl8weDQ0NmY2ZSIsIl8weDIzYzNjNSIsIl8weDMyM2M1ZSIsIl8weDM1MWM5NCIsIl8weDE1ZjQzNSIsIl8weDM3MjVlYyIsIl8weDRiZmIzYyIsIl8weDJhYzYzMyIsIl8weDI2NmM4YiIsIl8weGNkM2U5ZCIsIl8weDE0NjQzOSIsIl8weDQ5MGJhZiIsIl8weDQzZTI4MyIsIl8weDQwOTgyYSIsIl8weDNmOGFkMCIsIlJFRCIsIl8weDM5NDg0MyIsIl8weDM1ZjY0OSIsIl8weDM0MTdhYiIsIl8weGJiOTE2MCIsIl8weDkwNjFlOCIsIl8weDQ0NTA3MiIsIl8weDU3MzA5NiIsIl8weDNhNGU5MyIsIl8weDM3Mzg0NyIsIl8weDQ5MjMzNSIsIl8weDRjYzM5MyIsIl8weGI4ZDIwYiIsIl8weDUyOGEyMyIsIl8weDI5N2U5ZCIsIl8weDViYTMzOCIsImpzb24iLCJfMHgzNjU3Y2UiLCJkYXRhIiwiXzB4NDI1OGYwIiwiXzB4MWNkYTAxIiwiXzB4MmRlMmE5IiwiXzB4MTM0NGVmIiwic2V0VGltZW91dCIsIl8weDNjYjVlNiIsIl8weDE2N2UwZiIsIl8weDMwZDA3ZCIsIl8weDIzY2E3OCIsIl8weDRhMTYxYyIsIl8weDQxZjhiOCIsIl8weDUwZjhlZSIsIl8weDVjNjI0YiIsIl8weDM0NjY0MSIsIl8weDVjMGMxMSIsIl8weDNhMWIxNCIsIl8weDllODQxNCIsIl8weGRiMGUiLCJfMHg0MDY2NWEiLCJfMHg0YTAwMTQiLCJfMHgzOTQ0ZTQiLCJfMHgzZDdhMGMiLCJfMHg1NDVjYTYiLCJfMHgyMzJkYzIiLCJfMHgxMDZlMzMiLCJfMHhjMjNjMTciLCJfMHgxOTA0NjIiLCJfMHg0YjQzYzMiLCJpY29uIiwiXzB4NDIyOTQyIiwiY29sb3IiLCJfMHgyNjllNjYiLCJfMHgzMmFiMDkiLCJfMHgxYTU0YjIiLCJfMHhmNGUwZDQiLCJfMHg0YjNlYTgiLCJfMHgxYzk3NTciLCJfMHg1ZWVlZjciLCJfMHgxMmNjNmQiLCJfMHhlYWIzOTIiLCJfMHg0OTE2OWYiLCJfMHg5OGI0NTIiLCJfMHg0NmRjN2IiLCJfMHgxOTA4OTQiLCJfMHhhOGViZTIiLCJfMHgxOTU0NzkiLCJfMHgzNDBjN2QiLCJfMHg1MTZkOWQiLCJfMHgzYTgzN2MiLCJfMHg0MzhkNDMiLCJfMHg1MmY4ZjgiLCJfMHhiNWY3YjMiLCJfMHgyNGFiNDYiLCJfMHgyNTdlNTUiLCJ1bmRlZmluZWQiLCJfMHhiMDdkOWEiLCJfMHg1NGI1NmEiLCJfMHgyYWZmOTkiLCJfMHgzNjYzMTYiLCJfMHgyZTZlMjAiLCJfMHg5MzhmZWIiLCJfMHgxMWQ0MmUiLCJfMHgyNzE2YTYiLCJfMHg1NzZhMzIiLCJfMHg1M2U0NzciLCJfMHg1ZGMwOWEiLCJfMHgxZTg1YTIiLCJfMHgzZTFkOGIiLCJfMHhiNDQ2MzAiLCJyZWZlcmVuY2VzIiwiXzB4NDYwMTNkIiwiXzB4NDMxZGM4IiwiXzB4NTYwM2E1IiwiXzB4YjFkYjU5IiwiXzB4M2FlYTYxIiwiXzB4MjBiMDYyIiwiXzB4MzAzMGRlIiwiXzB4M2I2N2M0IiwiXzB4MjhjNzlmIiwiXzB4NGZmNTk0IiwiXzB4NTRiMzZiIiwiXzB4MTkyODA4IiwiXzB4ODA2NTUiLCJfMHg1NjUwOWQiLCJfMHg0MzYxOWIiLCJfMHhiM2FkNmUiLCJfMHgyNGIxMWIiLCJfMHgxMjUyZjgiLCJfMHgyYmI0YmYiLCJfMHg1NTkxOWMiLCJfMHgyZTcxY2QiLCJfMHg0YjUyOWIiLCJfMHg0MTBkYWUiLCJfMHg0ODU0YTgiLCJfMHgyYjU3ZjciLCJfMHgzY2MxNjkiLCJfMHgxMzM1NmIiLCJfMHgxNzU2MTciLCJfMHgxZjZlMzgiLCJfMHgyZTRiNmMiLCJkb2N1bWVudCIsIl8weDVmYmVmOSIsIl8weDQyZWRjNyIsIl8weDNkY2Q1YSIsIl8weDUyYzU0NiIsIl8weDFhYTI2YyIsIl8weDQ4ZjllMSIsIl8weDEyMGZhZCIsIl8weDU2NjEzOSIsIl8weDUzMjk1ZSIsIl8weDVmMTNkMyIsIl8weDRkYWJhNSIsIl8weDU1N2MyNiIsIl8weDJjMjY4NiIsIl8weDMzNDY0MCIsIl8weDNmZTNkMyIsIl8weDM5NTNkNyIsIl8weDMzNzNkMyIsIl8weDU5NjQyOSIsIl8weDEwOTRlMSIsIndpbmRvdyIsIl8weDE4MzQwNCIsIl8weDdlMWU0YyIsIl8weDMxY2IxNSIsIl8weDFkZWRmNCIsIl8weDEzZmNmZCIsIl8weDRiNTg1OSIsIl8weDI5OTMyNyIsIl8weDE0NDFmNCIsIl8weDM4YmU4YyIsIl8weDRkYjUyMyIsIl8weDU4MWExNSIsIl8weDIyMzA4OCIsIl8weDUyNzQ5MSIsIl8weDRiNjg2MSIsIl8weGU4NmRlNCIsIl8weDMzZWYxYiIsIl8weDNiZDY3NSIsIl8weDIzYjMzZiIsIl8weGY3OTEyNyIsIl8weDE2MTJkMiIsIl8weDMxOGY3YyIsIl8weDFlMjVjYyIsIl8weDNiZTk4NCIsIl8weDVjN2EyNCIsIl8weDRmYmE0OSIsIl8weDE0MWZmMCIsIl8weDUwNTk2ZiIsIl8weDM4ZmM4MCIsIl8weDNjYWQxOSIsIl8weDdjY2Q5ZiIsIl8weDIzMWIzMSIsIl8weDNiMjAwYyIsIl8weGY3MjU4NCIsIl8weGM4Nzk3OSIsIl8weDRmZmUxZiIsIl8weDI3ZmI5OSIsIl8weDMxOTRmZSIsIl8weDI5ZDYzMiIsIl8weDU2MjgwNCIsIl8weDljODlmYiIsIl8weDFhYzFiMCIsIl8weDU2MmRjOCIsIl8weDM0NjliOSIsIl8weDEzNzJmZiIsIl8weDUxMWJiZSIsIl8weDI2Y2E5MSIsIl8weDVjOGZhZiIsIl8weDEwZmE5YSIsIl8weDQxZGI2ZSIsIl8weGE3ODJkOCIsIl8weDJjNTBlNyIsIl8weDhiMTVmMSIsIl8weDRkYjU3OSIsIl8weDQ2MTJjNCIsIl8weDUxYTc4MiIsIl8weGQ4NDhmNSIsIl8weDVhOTFlNCIsIl8weDEzMzg2NiIsIl8weGRjMzE3YyIsIl8weDQ2YTc2ZCIsIl8weDMyYjNiZSIsIl8weDFkOTM1ZCIsIl8weDMwM2YyMCIsIl8weGQ0YjA1YSIsIl8weDUzNDgzMiIsIl8weDFmMzAzOCIsIlNldCIsIl8weDE0OGVkZCIsIl8weDQ1YmVjNCIsIl8weDJiZTNhMyIsIl8weDIyMGRlOSIsIl8weDUzZWJiNiIsIl8weDFkZTRkYyIsIl8weDRlZDllOCIsIl8weDM5NjNmZSIsIl8weDI2ZmExNSIsIl8weDU2ZjJiZiIsIl8weDU1NTk3ZSIsIl8weDQ0ZDM3NCIsIl8weDIyNDE2YyIsIl8weDQzNTljZSIsIm5hbWUiLCJfMHg1ODIyMDIiLCJuYW1lc3BhY2VJbmRleCIsIl8weDViZjU2MCIsIl8weDQxYTYwMSIsIl8weDJjZjU2NyIsIl8weDFiZmFjZSIsIl8weDRiYzU5OSIsIl8weDQyOWNkOCIsIl8weDU4MDJlMiIsIl8weDFmZTAwOCIsIl8weDM1OWUxZCIsIl8weDMzYWU5MCIsIl8weDFiZTc2MCIsIl8weDU1ZWVlNSIsIl8weDM4OWIyNCIsIl8weDJjOTY1NyIsIl8weDRjZWFlOSIsIl8weDdlNzc5MSIsIl8weDMwNTM3YSIsIl8weDUzNmQ2OSIsIl8weDQ3NDBlNSIsIl8weDVlMzkyZSIsIl8weDNjNzQxMyIsIl8weDU0MWQ2OSIsIl8weDU0M2NkOSIsIl8weDQwZDM0OSIsIl8weDEyOGMwYiIsIl8weDE4OWVhYiIsIl8weDVlYjQ2OSIsIl8weGQzNmUxZSIsIl8weDQ2MTQwMCIsIl8weDQwNDMyYSIsIl8weGE0OGNkMCIsIl8weDNhNjQzMCIsIl8weDVkYmE3YyIsIl8weDIxYzZhMSIsIl8weDNkMzgzNSIsIl8weDE2ZWI5YyIsIl8weDMwODYzYSIsIl8weDE5NWFhMCIsIl8weDEzZWFjNCIsIl8weDJmOWUxZiIsIl8weDEzODgzMSIsIl8weDI5Njg5ZiIsIl8weDVmNGFjYyIsIl8weDJmM2Y4NiIsIl8weDI3ZWI1ZSIsIl8weDE0NjRmMCIsInNlY3VyaXR5TW9kZSIsIl8weDMzYTUwMiIsInNlY3VyaXR5UG9saWN5IiwiXzB4NzMzNTY4IiwidXNlcklkZW50aXR5VHlwZSIsIl8weDEyZjM3MCIsImNyZWRlbnRpYWxzIiwiXzB4NjZkOTQzIiwibmFtZXNwYWNlQWxpYXNlcyIsIl8weDQ0ZGQxMyIsIl8weDg4NzhlMSIsIl8weDNjZjc2NSIsIl8weGI1NDg1MCIsIl8weGJmMTQ5MyIsIl8weDI1OWVmNyIsIl8weDUzZmRlOSIsIl8weDI3MDg0MyIsIl8weDMwMTgzNCIsIl8weDFiNDZmMSIsIl8weGJiZmUzNSIsIl8weDE5YmMyIiwiXzB4MzA1MDBmIiwiXzB4NWM1M2QyIiwiXzB4YzE5YTFhIiwiXzB4NDA2NjIxIiwiXzB4YTAzOTkyIiwiXzB4ZTM0M2M4Il0sIm1hcHBpbmdzIjoibWdCQUFBLENBQUMsVSxDQUNHLGEsd0JBRUEsU0FBU0EsU0FBVCxDQUFxQ0MsU0FBckMsQ0FBMENDLFNBQTFDLEMseUJBQ1VDLFNBQUEsQ0FBWUMsQ0FBQSxDLHNCQUFBLEMsQ0FDWkMsU0FBQSxDQUFnQkQsQ0FBQSxDLGVBQUEsQyxDQUVoQkUsU0FBQSxDQUE2QixJLDJCQUN6QkMsU0FBQSxDQUFXTixTQUFBLEMsZUFBQSxFLE1BQUEsRUFBZUUsU0FBQSxDLGdCQUFBLEdBQWYsQyxDQUNqQkUsU0FBQSxDLGdCQUFBLEksR0FDSSxDQUFDRSxTQUFELEVBQWEsQ0FBQ0EsU0FBQSxDLGdCQUFBLEMsQ0FDZCxPQUVKLFVBQVdDLFNBQVgsSUFBZ0JELFNBQUEsQyxlQUFBLENBQWhCLEMsQ0FDSSxNQUFNRSxTQUFBLENBQVFELFNBQUEsQyxnQkFBQSxHQUFVQSxTQUFBLEMsSUFBQSxDQUF4QixDQUNB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QUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFVQSxTQUFBLEMsYUFBQSxFLEdBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsUUFBQSxFLEdBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZUFBQSxFLEdBQVYsRSxXQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLEdBQVYsRSxTQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxlQUFBLEUsR0FBVixFLGFBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGNBQUEsRSxJQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGVBQUEsRSxJQUFWLEUsZ0JBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGVBQUEsRSxJQUFWLEUsV0FDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZUFBQSxFLElBQVYsRSxRQVRKLENBVUdELFNBQUEsRUFBYyxDQUFBQSxTQUFBLENBQVksRUFBWixDQVZqQixHQVdBLElBQUlFLFNBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxHQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGVBQUEsRSxHQUFkLEUsZ0JBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsR0FBZCxFLGlCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxlQUFBLEUsR0FBZCxFLGdCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLElBQWQsRSxlQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxlQUFBLEUsSUFBZCxFLGdCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxVQUFBLEUsSUFBZCxFLGdCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxlQUFBLEUsSUFBZCxFLFFBUkosQ0FTR0QsU0FBQSxFQUFrQixDQUFBQSxTQUFBLENBQWdCLEVBQWhCLENBVHJCLEdBVUEsSUFBSUUsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQVdBLFNBQUEsQyxlQUFBLEUsR0FBWCxFLGdCQUNB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QyxDQUFyRCxDLEVBM3lDSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICBmdW5jdGlvbiBpbnN0YWxsU3Vic2NyaXB0aW9uU2VsZWN0b3IoUkVELCBub2RlKSB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgJHN1YnNjcmlwdGlvbiA9ICQoXCIjbm9kZS1pbnB1dC1zdWJzY3JpcHRpb25cIik7XG4gICAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgICBjb25zdCBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucyA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGVuZHBvaW50ID0gUkVELm5vZGVzLm5vZGUoJGVuZHBvaW50LnZhbCgpKTtcbiAgICAgICAgICAgICRzdWJzY3JpcHRpb24uZW1wdHkoKTtcbiAgICAgICAgICAgIGlmICghZW5kcG9pbnQgfHwgIWVuZHBvaW50LnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHMgb2YgZW5kcG9pbnQuc3Vic2NyaXB0aW9ucykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gcy5uYW1lIHx8IHMuaWQ7XG4gICAgICAgICAgICAgICAgJChcIjxvcHRpb24vPlwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBzLmlkLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogbGFiZWwsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkOiBzLmlkID09PSBub2RlLnN1YnNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAudGV4dChsYWJlbClcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKCRzdWJzY3JpcHRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucygpO1xuICAgICAgICAvLyBoYWNrXG4gICAgICAgIC8vICRpbnB1dEFjdGlvbi5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgIC8vICAgICAkZW5kcG9pbnQub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAvLyAgICAgICAgIGluc3RhbGxTdWJzY3JpcHRpb25PcHRpb25zKCk7XG4gICAgICAgIC8vICAgICB9KTtcbiAgICAgICAgLy8gfSk7XG4gICAgICAgICRzdWJzY3JpcHRpb24ub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAgICAgbm9kZS5zdWJzY3JpcHRpb24gPSAkc3Vic2NyaXB0aW9uLnZhbCgpO1xuICAgICAgICAgICAgLy8gICAgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMoKTtcbiAgICAgICAgfSk7XG4gICAgICAgICRlbmRwb2ludC5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sLCBJdGVyYXRvciAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIGNvbnN0IE9yZ2FuaXplc1JlZk5vZGVJZCA9IFwibnM9MDtpPTM1XCI7XG4gICAgY29uc3QgRm9sZGVyVHlwZSA9IFwibnM9MDtpPTYxXCI7XG4gICAgY29uc3QgSGFzQ29tcG9uZW50UmVmTm9kZUlkID0gXCJucz0wO2k9NDdcIjtcbiAgICBjb25zdCBIYXNQcm9wZXJ0eVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ2XCI7XG4gICAgY29uc3QgSGFzQ2hpbGRSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNFwiO1xuICAgIGNvbnN0IEhhc1N1YnR5cGVSZWZOb2RlSWQgPSBcIm5zPTA7aT00NVwiO1xuICAgIGNvbnN0IEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkID0gXCJucz0wO2k9NDBcIjtcblxuICAgIHZhciBCcm93c2VEaXJlY3Rpb247XG4gICAgKGZ1bmN0aW9uIChCcm93c2VEaXJlY3Rpb24pIHtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkZvcndhcmRcIl0gPSAwXSA9IFwiRm9yd2FyZFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52ZXJzZVwiXSA9IDFdID0gXCJJbnZlcnNlXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJCb3RoXCJdID0gMl0gPSBcIkJvdGhcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmFsaWRcIl0gPSAzXSA9IFwiSW52YWxpZFwiO1xuICAgIH0pKEJyb3dzZURpcmVjdGlvbiB8fCAoQnJvd3NlRGlyZWN0aW9uID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzKSB7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJVbnNwZWNpZmllZFwiXSA9IDBdID0gXCJVbnNwZWNpZmllZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3MgfHwgKE5vZGVDbGFzcyA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzc01hc2s7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3NNYXNrKSB7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3NNYXNrIHx8IChOb2RlQ2xhc3NNYXNrID0ge30pKTtcbiAgICB2YXIgUmVzdWx0TWFzaztcbiAgICAoZnVuY3Rpb24gKFJlc3VsdE1hc2spIHtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDFdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIklzRm9yd2FyZFwiXSA9IDJdID0gXCJJc0ZvcndhcmRcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiTm9kZUNsYXNzXCJdID0gNF0gPSBcIk5vZGVDbGFzc1wiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJCcm93c2VOYW1lXCJdID0gOF0gPSBcIkJyb3dzZU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiRGlzcGxheU5hbWVcIl0gPSAxNl0gPSBcIkRpc3BsYXlOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlR5cGVEZWZpbml0aW9uXCJdID0gMzJdID0gXCJUeXBlRGVmaW5pdGlvblwiO1xuICAgIH0pKFJlc3VsdE1hc2sgfHwgKFJlc3VsdE1hc2sgPSB7fSkpO1xuICAgIC8vICBjb25zdCBxID0gUmVmZXJlbmNlVHlwZUlkcy5Pcmdhbml6ZXM7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZU5vZGVJZChub2RlSWRMaWtlKSB7XG4gICAgICAgIHN3aXRjaCAobm9kZUlkTGlrZSkge1xuICAgICAgICAgICAgY2FzZSBcIk9yZ2FuaXplc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBPcmdhbml6ZXNSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzUHJvcGVydHlcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzUHJvcGVydHlSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ29tcG9uZW50XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NvbXBvbmVudFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDaGlsZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDaGlsZFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNTdWJ0eXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1N1YnR5cGVSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzVHlwZURlZmluaXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBnZXRJY29uID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHJlZmVyZW5jZS5ub2RlQ2xhc3MpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gT3JnYW5pemVzUmVmTm9kZUlkKSA7XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS50eXBlRGVmaW5pdGlvbiA9PT0gRm9sZGVyVHlwZSB8fCByZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBcImk9NjFcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWZvbGRlclwiLCBjb2xvcjogXCJyZ2JhKDYxLCA2MCwgNCwgMC41MjUpXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiU2VhR3JlZW5cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlXCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc0NvbXBvbmVudFJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIlN0ZWVsQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc1Byb3BlcnR5UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiRG9kZ2VyQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcIk1ldGhvZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtY29nXCIsIGNvbG9yOiBcIlNhbmR5QnJvd25cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXNsaWRlcnNcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiRGF0YVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXRleHQtd2lkdGhcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoX2EsIG5vZGVJZF8xLCB0ZW1wbGF0ZV8xKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIG5vZGVJZF8xLCB0ZW1wbGF0ZV8xXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQsIHRlbXBsYXRlKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1mb3Itbm9kZS1yZWRgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9icm93c2VgO1xuICAgICAgICBjb25zdCBicm93c2VEZXNjcmlwdGlvbiA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGVtcGxhdGUpLCB7IG5vZGVJZCwgcmVzdWx0TWFzazogNjMgfSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGJyb3dzZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXM6IFtdIH07XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJicm93c2UgZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB3YWxrQmFja3dhcmQgPSAoX2EsIF9iKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIF9iXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCB7IG5vZGVJZCwgcm9vdE5vZGVJZCwgaXNUeXBlIH0pIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWZvci1ub2RlLXJlZGA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L3dhbGstYmFja3dhcmRgO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICAgICAgcm9vdE5vZGVJZCxcbiAgICAgICAgICAgICAgICBpc1R5cGUsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBqc29uID0gKHlpZWxkIGRhdGEuanNvbigpKTtcbiAgICAgICAgcmV0dXJuIGpzb24uYnJvd3NlUGF0aDtcbiAgICB9KTtcbiAgICBjb25zdCBjaG9vc2VOb2RlSWQgPSAoZGF0YSwgbW9kZSkgPT4ge1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXNDb2RlICE9PSBcIkdvb2RcIikge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGEucmVxdWVzdGVkTm9kZUlkO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgICAgICAgY2FzZSBcImJyb3dzZVBhdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5icF9pbmRleGVkO1xuICAgICAgICAgICAgY2FzZSBcImFsaWFzZWRCcm93c2VQYXRoXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEuYnBfYWxpYXNlZCB8fCBkYXRhLmJwX2luZGV4ZWQ7XG4gICAgICAgICAgICBjYXNlIFwiYWxpYXNlZE5vZGVJZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLm5vZGVJZF9hbGlhc2VkIHx8IGRhdGEubm9kZUlkX25zdTtcbiAgICAgICAgICAgIGNhc2UgXCJuc3VOb2RlSURcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5ub2RlSWRfbnN1O1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGNhc2UgXCJub2RlSWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5ub2RlSWQ7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IG1ha2VUb29sdGlwID0gKGRhdGEpID0+IHtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzQ29kZSAhPT0gXCJHb29kXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBgc3RhdHVzQ29kZTogJHtkYXRhLnN0YXR1c0NvZGV9YDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGxldCBzdHIgPSBbXTtcbiAgICAgICAgICAgIHN0ci5wdXNoKGBub2RlSWQ6ICR7ZGF0YS5ub2RlSWR9YCk7XG4gICAgICAgICAgICBzdHIucHVzaChgYnJvd3NlIHBhdGg6ICR7ZGF0YS5icF9pbmRleGVkfWApO1xuICAgICAgICAgICAgc3RyLnB1c2goYG5vZGUgY2xhc3M6ICR7Tm9kZUNsYXNzW2RhdGEubm9kZUNsYXNzXX1gKTtcbiAgICAgICAgICAgIGlmIChkYXRhLm5vZGVJZF9uc3UpIHtcbiAgICAgICAgICAgICAgICBzdHIucHVzaChgbnN1IG5vZGVJZDogJHtkYXRhLm5vZGVJZF9uc3V9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5ub2RlSWRfYWxpYXNlZCkge1xuICAgICAgICAgICAgICAgIHN0ci5wdXNoKGBhbGlhc2VkIE5vZGVJZDogJHtkYXRhLm5vZGVJZF9hbGlhc2VkfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuYnBfaW5kZXhlZCkge1xuICAgICAgICAgICAgICAgIHN0ci5wdXNoKGBhbGlhc2VkIGJyb3dzZVBhdGg6ICR7ZGF0YS5icF9hbGlhc2VkfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHN0ci5qb2luKFwiXFxuXCIpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBmdW5jdGlvbiBmaWd1cmVPdXRNb2RlKGVuaGFuY2VkTm9kZUlkKSB7XG4gICAgICAgIGlmIChlbmhhbmNlZE5vZGVJZC5tYXRjaCgvXm5zdT0vKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwibnN1Tm9kZUlEXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVuaGFuY2VkTm9kZUlkLm1hdGNoKC9eKG5zPS4qOyk/KGl8YnxzfGcpPS8pKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJub2RlSWRcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW5oYW5jZWROb2RlSWQubWF0Y2goL15uc2E9LykpIHtcbiAgICAgICAgICAgIHJldHVybiBcImFsaWFzZWROb2RlSWRcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW5oYW5jZWROb2RlSWQubWF0Y2goL14oXFwvfFxcLilbMC05XSs6LykpIHtcbiAgICAgICAgICAgIHJldHVybiBcImJyb3dzZVBhdGhcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW5oYW5jZWROb2RlSWQubWF0Y2goL14oXFwvfFxcLikuKjovKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwiYnJvd3NlUGF0aFwiO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZpZ3VyZU91dE1lblVJdGVtVmFsdWUoc3RyKSB7XG4gICAgICAgIGNvbnN0IG1vZGUgPSBmaWd1cmVPdXRNb2RlKHN0cik7XG4gICAgICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgICAgICAgY2FzZSBcIm5vZGVJZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm5cIjtcbiAgICAgICAgICAgIGNhc2UgXCJhbGlhc2VkTm9kZUlkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwibmFcIjtcbiAgICAgICAgICAgIGNhc2UgXCJuc3VOb2RlSURcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJuc3VcIjtcbiAgICAgICAgICAgIGNhc2UgXCJicm93c2VQYXRoXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiYlwiO1xuICAgICAgICAgICAgY2FzZSBcImFsaWFzZWRCcm93c2VQYXRoXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiYWJcIjtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwidFwiO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRvTW9kZSh2KSB7XG4gICAgICAgIGxldCBtb2RlO1xuICAgICAgICBzd2l0Y2ggKHYpIHtcbiAgICAgICAgICAgIGNhc2UgXCJuXCI6XG4gICAgICAgICAgICAgICAgbW9kZSA9IFwibm9kZUlkXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwibmFcIjpcbiAgICAgICAgICAgICAgICBtb2RlID0gXCJhbGlhc2VkTm9kZUlkXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwibnN1XCI6XG4gICAgICAgICAgICAgICAgbW9kZSA9IFwibnN1Tm9kZUlEXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwiYlwiOlxuICAgICAgICAgICAgICAgIG1vZGUgPSBcImJyb3dzZVBhdGhcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJhYlwiOlxuICAgICAgICAgICAgICAgIG1vZGUgPSBcImFsaWFzZWRCcm93c2VQYXRoXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1vZGU7XG4gICAgfVxuICAgIGNvbnN0IF9jYWxsQ2hlY2tOb2RlSWQgPSAoX2EsIG5vZGVJZF8xKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIG5vZGVJZF8xXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWZvci1ub2RlLXJlZGA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2NoZWNrTm9kZUlkYDtcbiAgICAgICAgY29uc3QgZUlkID0gZW5kcG9pbnROb2RlLmlkO1xuICAgICAgICBjb25zdCBuID0gUkVELm5vZGVzLm5vZGUoZUlkKTtcbiAgICAgICAgY29uc29sZS5sb2cobi5uYW1lc3BhY2VBbGlhc2VzKTtcbiAgICAgICAgbi5uYW1lc3BhY2VBbGlhc2VzO1xuICAgICAgICBjb25zdCBuYW1lc3BhY2VBbGlhc2VzID0gZW5kcG9pbnROb2RlLm5hbWVzcGFjZUFsaWFzZXM7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgICAgICBuYW1lc3BhY2VBbGlhc2VzLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBqc29uID0gKHlpZWxkIGRhdGEuanNvbigpKTtcbiAgICAgICAgcmV0dXJuIHsganNvbiwgZGF0YSB9O1xuICAgIH0pO1xuICAgIGNvbnN0IGludGVybmFsVmVyaWZ5ID0gKF9hLCBtb2RlXzEsICRpbnB1dEVsZW1lbnRfMSwgJGluZm9fMSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hLCBtb2RlXzEsICRpbnB1dEVsZW1lbnRfMSwgJGluZm9fMV0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbW9kZSwgJGlucHV0RWxlbWVudCwgJGluZm8pIHtcbiAgICAgICAgY29uc3QgZW5oYW5jZWROb2RlSWQgPSAkaW5wdXRFbGVtZW50LnZhbCgpO1xuICAgICAgICBjb25zdCB7IGpzb24sIGRhdGEgfSA9IHlpZWxkIF9jYWxsQ2hlY2tOb2RlSWQoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIGVuaGFuY2VkTm9kZUlkKTtcbiAgICAgICAgY29uc3Qgc2V0Tm90aWZpY2F0aW9uID0gKHRleHQsIGNsYXNzTmFtZSkgPT4ge1xuICAgICAgICAgICAgJGluZm8udGV4dCh0ZXh0KS5hZGRDbGFzcyhcInN0ZXJmaXZlLWluZm9cIikuYWRkQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICRpbmZvLnNob3coKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICRpbmZvLnJlbW92ZUNsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAgICAgJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgfSwgMzAwMCk7XG4gICAgICAgIH07XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgZW5oYW5jZWROb2RlSWQsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChqc29uLnN0YXR1c0NvZGUubWF0Y2goL0dvb2QvKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvb2x0aXAgPSBtYWtlVG9vbHRpcChqc29uKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LmF0dHIoXCJ0aXRsZVwiLCB0b29sdGlwKTtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZE5vZGVJZCA9IGNob29zZU5vZGVJZChqc29uLCBtb2RlKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChzZWxlY3RlZE5vZGVJZCk7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihcIkdvb2RcIiwgXCJva1wiKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGAke2VuaGFuY2VkTm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBmdW5jdGlvbiBmZXRjaENoaWxkcmVuKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUxKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDIgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTIpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzOiBbLi4uYnJvd3NlUmVzdWx0MS5yZWZlcmVuY2VzLCAuLi5icm93c2VSZXN1bHQyLnJlZmVyZW5jZXNdLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHRlbXBsYXRlU1QgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc1N1YnR5cGVcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfCBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8IE5vZGVDbGFzcy5EYXRhVHlwZSB8IE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgZnVuY3Rpb24gZmV0Y2hTdWJ0eXBlcygkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlU1QpO1xuICAgICAgICAgICAgcmV0dXJuIGJyb3dzZVJlc3VsdDE7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBtYWtlRWxlbWVudCQxID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2Q7XG4gICAgICAgIGlmICghcmVmZXJlbmNlIHx8ICFyZWZlcmVuY2Uubm9kZUlkKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCB0aXRsZSA9IGAoJHtyZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCl9KSAkeygoX2MgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLm5hbWUpIHx8ICgoX2QgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC50ZXh0KSB8fCBcIlwifWA7XG4gICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpIGtleT1cIiR7cmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpfVwifT48c3BhbiBjbGFzcz1cInRyZWUtdGV4dFwiIHRpdGxlPSR7dGl0bGV9PjxpIGNsYXNzPVwiZmEgJHtpY29ufVwiIHN0eWxlPVwiY29sb3I6JHtjb2xvcn07XCI+PC9pPiAke3R9PC9zcGFuPjx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKFwiZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInZhbHVlXCIsIG4pO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICB9O1xuICAgIGNvbnN0IGZpbmRFbGVtZW50ID0gKG5vZGVJZCwgJHRyZWUpID0+IHtcbiAgICAgICAgcmV0dXJuICR0cmVlLmZpbmQoYGxpW2tleT1cIiR7bm9kZUlkfVwiXWApO1xuICAgIH07XG4gICAgY29uc3Qgc2VsZWN0U2luZ2xlID0gKHRoYXQsICRsaSkgPT4ge1xuICAgICAgICB0aGF0LiR0cmVlLmZpbmQoXCJsaSA+IC50cmVlLXRleHRcIikucmVtb3ZlQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgICAgICAgLy8gY2xlYXIgYWxsIHNlbGVjdGVkIGl0ZW1zXG4gICAgICAgICRsaS5maW5kKFwiLnRyZWUtdGV4dDpmaXJzdFwiKS5hZGRDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgIH07XG4gICAgY29uc3QgYXV0b0V4cGFuZCA9ICh0aGF0LCBicm93c2VQYXRoLCAkdHJlZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIC8vIGV4cGFuZCB0aGUgdHJlZSB0byBzaG93IHRoZSBub2RlSWRcbiAgICAgICAgbGV0ICRjdXJyZW50ID0gJHRyZWUuY2hpbGRyZW4oXCI6Zmlyc3RcIik7XG4gICAgICAgIGJyb3dzZVBhdGgucmVsYXRpdmVQYXRoLmVsZW1lbnRzIHx8IFtdO1xuICAgICAgICBjb25zdCBub2RlSWRzID0gYnJvd3NlUGF0aC5ub2RlSWRzIHx8IFtdO1xuICAgICAgICBpZiAobm9kZUlkcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IG4gb2Ygbm9kZUlkcykge1xuICAgICAgICAgICAgaWYgKCRjdXJyZW50Lmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gZXhwYW5kIGFuZCBzZWxlY3QgdGhlIHJpZ2h0IGVsZW1lbnRcbiAgICAgICAgICAgICAgICB5aWVsZCBfZXhwYW5kTGkodGhhdCwgJGN1cnJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBmaW5kRWxlbWVudChuLCAkY3VycmVudCk7XG4gICAgICAgICAgICBpZiAoJGVsZW1lbnQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGN1cnJlbnQgPSAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBzZWxlY3RTaW5nbGUodGhhdCwgJGN1cnJlbnQpO1xuICAgICAgICBzY3JvbGxUb0xpKHRoYXQuJGRyb3Bkb3duLCAkY3VycmVudCk7XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gc2Nyb2xsVG9MaSgkY29udGFpbmVyLCAkdGFyZ2V0TGkpIHtcbiAgICAgICAgLy8gR2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgdGFyZ2V0IGl0ZW0gcmVsYXRpdmUgdG8gaXRzIGNvbnRhaW5lclxuICAgICAgICBjb25zdCBsaVBvcyA9ICR0YXJnZXRMaS5wb3NpdGlvbigpLnRvcDtcbiAgICAgICAgLy8gR2V0IHRoZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiBvZiB0aGUgY29udGFpbmVyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclNjcm9sbFRvcCA9ICRjb250YWluZXIuc2Nyb2xsVG9wKCk7XG4gICAgICAgIGlmIChjb250YWluZXJTY3JvbGxUb3AgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBwb3NpdGlvbiB0byBzY3JvbGwgdG8gKGN1cnJlbnQgc2Nyb2xsICsgaXRlbSdzIHBvc2l0aW9uKVxuICAgICAgICAvLyBBZGp1c3QgdGhpcyBjYWxjdWxhdGlvbiBiYXNlZCBvbiB5b3VyIG5lZWRzXG4gICAgICAgIGNvbnN0IHNjcm9sbFRvID0gY29udGFpbmVyU2Nyb2xsVG9wICsgbGlQb3MgLSAkY29udGFpbmVyLmhlaWdodCgpIC8gMiArICR0YXJnZXRMaS5oZWlnaHQoKSAvIDI7XG4gICAgICAgIC8vIFNjcm9sbCB0aGUgY29udGFpbmVyIHRvIGVuc3VyZSB0aGUgaXRlbSBpcyB2aXNpYmxlXG4gICAgICAgICRjb250YWluZXIuYW5pbWF0ZSh7XG4gICAgICAgICAgICBzY3JvbGxUb3A6IHNjcm9sbFRvLFxuICAgICAgICB9LCA1MDApOyAvLyBBZGp1c3QgdGhlIGR1cmF0aW9uICg1MDBtcykgYXMgbmVlZGVkXG4gICAgfVxuICAgIGNvbnN0IHJlYWNoU2VsZWN0aW9uID0gKHRoYXQsIHBhcmVudE5vZGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBub2RlSWQgPSB0aGF0LiRpbnB1dC52YWwoKTtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIHJvb3ROb2RlSWQ6IHBhcmVudE5vZGUubm9kZUlkLFxuICAgICAgICAgICAgaXNUeXBlOiB0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmIHx8IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgIGNvbnN0IGJyb3dzZVBhdGggPSB5aWVsZCB3YWxrQmFja3dhcmQoZGF0YSwgb3B0aW9ucyk7XG4gICAgICAgIGlmICghYnJvd3NlUGF0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHlpZWxkIGF1dG9FeHBhbmQodGhhdCwgYnJvd3NlUGF0aCwgdGhhdC4kdHJlZSk7XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gX2ZldGNoRGF0YUZvck5vZGUodGhhdCwgJG5vZGUsIGZldGNoRnVuYywgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImxvYWRpbmdcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgbG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgICAgICAkbm9kZS5hcHBlbmQoJzxkaXYgY2xhc3M9XCJzcGlubmVyXCI+PC9kaXY+Jyk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHJlZmVyZW5jZXMgfSA9IHlpZWxkIGZldGNoRnVuYygkbm9kZSwgZGF0YSk7XG4gICAgICAgICAgICAgICAgLy8gc29ydCByZWZlcmVuY2UgICBieSBicm93c2VOYW1lXG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlcy5zb3J0KChhLCBiKSA9PiB7IHZhciBfYSwgX2I7IHJldHVybiAoKChfYSA9IGEuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5hbWUpIHx8IFwiXCIpLmxvY2FsZUNvbXBhcmUoKChfYiA9IGIuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IFwiXCIpOyB9KTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlZmVyZW5jZSBvZiByZWZlcmVuY2VzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuZmlsdGVyICYmICF0aGF0Lm9wdGlvbnMuZmlsdGVyKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQkMShyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFrZUNvbm5lY3Rpb24odGhhdCkge1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgZnVuY3Rpb24gX2V4cGFuZExpKHRoYXQsICRsaSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgY29uc3QgZiA9ICF0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmID8gZmV0Y2hDaGlsZHJlbiA6IGZldGNoU3VidHlwZXM7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHlpZWxkIF9mZXRjaERhdGFGb3JOb2RlKHRoYXQsICRsaSwgZiwgZGF0YSk7XG4gICAgICAgICAgICAgICAgLy8gbWFyayBhcyBleHBhbmRlZFxuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgZGVmYXVsdFBhcmVudE5vZGUgPSB7XG4gICAgICAgIGJyb3dzZU5hbWU6IHsgbmFtZXNwYWNlSW5kZXg6IDAsIG5hbWU6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgIG5vZGVDbGFzczogXCJPYmplY3RcIixcbiAgICAgICAgbm9kZUlkOiBcIm5zPTA7aT04NVwiLFxuICAgICAgICBkaXNwbGF5TmFtZTogeyB0ZXh0OiBcIk9iamVjdHNcIiB9LFxuICAgICAgICB0eXBlRGVmaW5pdGlvbjogRm9sZGVyVHlwZSxcbiAgICB9O1xuICAgIGNvbnN0IGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ub2RlQnJvd3NlclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlOiAoKSA9PiBkZWZhdWx0UGFyZW50Tm9kZSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6ICgpID0+IHRydWUsXG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgICAgICBpc1R5cGVSZWY6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc29sdmVQYXJlbnROb2RlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5fX3BhcmVudE5vZGUgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdHlwZW9mIHRoYXQub3B0aW9ucy5wYXJlbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZS5jYWxsKHRoYXQpIDogdGhhdC5vcHRpb25zLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkZXNjID0geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGRlc2M7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoYXQuX19wYXJlbnROb2RlIHx8IGRlZmF1bHRQYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc2V0KCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICAvLyBhbHNvIHJlc2V0IHBhcmVudCBub2RlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0aGF0O1xuICAgICAgICAgICAgICAgICAgICBhLl9fcGFyZW50Tm9kZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnROb2RlID0geWllbGQgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50JDEocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jdXJyZW50UGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJpZnkobW9kZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICAgICAgaW50ZXJuYWxWZXJpZnkoZGF0YSwgbW9kZSwgdGhhdC4kaW5wdXQsIHRoYXQuJGluZm8pLnRoZW4oKHN1Y2Nlc3MpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcImlucHV0LWVycm9yXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kY29tYm8ucmVtb3ZlQ2xhc3MoXCJpbnB1dC1lcnJvclwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9oaWRlTWVudShtZW51KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub2ZmKFwibW91c2Vkb3duLnJlZC11aS10eXBlZElucHV0LWNsb3NlLXByb3BlcnR5LXNlbGVjdFwiKTtcbiAgICAgICAgICAgICAgICBtZW51LmhpZGUoKTtcbiAgICAgICAgICAgICAgICBtZW51LmNzcyh7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogXCJhdXRvXCIsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKG1lbnUub3B0cy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ZWQgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgbWVudS5maW5kKCdpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0nKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLnByb3AoXCJjaGVja2VkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQucHVzaCgkKHRoaXMpLmRhdGEoXCJ2YWx1ZVwiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBtZW51LmNhbGxiYWNrKHNlbGVjdGVkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoYXQuJGVsZW1lbnREaXYuaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgIC8veHggfSBlbHNlIGlmICh0aGlzLiRvcHRpb25TZWxlY3RUcmlnZ2VyLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgLy94eCAgICAgdGhhdC4kb3B0aW9uU2VsZWN0VHJpZ2dlci50cmlnZ2VyKFwiZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyLnRyaWdnZXIoXCJmb2N1c1wiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZU1lbnUobWVudU9wdGlvbnMsIG9wdHMsIGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1lbnUgPSAkKFwiPGRpdj5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS10eXBlZElucHV0LW9wdGlvbnMgc3RlcmZpdmUtb25saW5lLW1lbnVcIik7XG4gICAgICAgICAgICAgICAgbWVudS5vcHRzID0gb3B0cztcbiAgICAgICAgICAgICAgICBtZW51LmNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgICAgICAgICAgICAgbWVudU9wdGlvbnMuZm9yRWFjaCgob3B0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcHQgPSB7IHZhbHVlOiBvcHQsIGxhYmVsOiBvcHQgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB2YXIgb3AgPSAkKCc8YSBocmVmPVwiI1wiPjwvYT4nKS5hdHRyKFwidmFsdWVcIiwgb3B0LnZhbHVlKS5hcHBlbmRUbyhtZW51KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdC5sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3AudGV4dChvcHQubGFiZWwpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHQudGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wLnByb3AoXCJ0aXRsZVwiLCBvcHQudGl0bGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHQuaWNvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wdC5pY29uLmluZGV4T2YoXCI8XCIpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChvcHQuaWNvbikucHJlcGVuZFRvKG9wKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKG9wdC5pY29uLmluZGV4T2YoXCIvXCIpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCI8aT5cIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJyZWQtdWktdHlwZWRJbnB1dC1pY29uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiBcIm1hc2staW1hZ2U6IHVybChcIiArIG9wdC5pY29uICsgXCIpOyAtd2Via2l0LW1hc2staW1hZ2U6IHVybChcIiArIG9wdC5pY29uICsgXCIpO1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLnByZXBlbmRUbyhvcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiPGk+XCIsIHsgY2xhc3M6IFwicmVkLXVpLXR5cGVkSW5wdXQtaWNvbiBcIiArIG9wdC5pY29uIH0pLnByZXBlbmRUbyhvcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcC5jc3MoeyBwYWRkaW5nTGVmdDogXCIxOHB4XCIgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFvcHQuaWNvbiAmJiAhb3B0LmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcC50ZXh0KG9wdC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmFyIGNiO1xuICAgICAgICAgICAgICAgICAgICBpZiAob3B0cy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2IgPSAkKCc8aW5wdXQgdHlwZT1cImNoZWNrYm94XCI+JylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY3NzKFwicG9pbnRlci1ldmVudHNcIiwgXCJub25lXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmRhdGEoXCJ2YWx1ZVwiLCBvcHQudmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByZXBlbmRUbyhvcClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAub24oXCJtb3VzZWRvd25cIiwgZnVuY3Rpb24gKGV2dCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgb3Aub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghb3B0cy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKG9wdC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5faGlkZU1lbnUobWVudSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYi5wcm9wKFwiY2hlY2tlZFwiLCAhY2IucHJvcChcImNoZWNrZWRcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBtZW51LmNzcyh7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IFwibm9uZVwiLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIG1lbnUub24oXCJrZXlkb3duXCIsIGZ1bmN0aW9uIChldnQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXlDb2RlID09PSA0MCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBET1dOXG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmNoaWxkcmVuKFwiOmZvY3VzXCIpLm5leHQoKS50cmlnZ2VyKFwiZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZXZ0LmtleUNvZGUgPT09IDM4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVQXG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmNoaWxkcmVuKFwiOmZvY3VzXCIpLnByZXYoKS50cmlnZ2VyKFwiZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZXZ0LmtleUNvZGUgPT09IDI3KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBFU0NBUEVcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5faGlkZU1lbnUobWVudSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBtZW51O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRpc2FybUNsaWNrOiBmYWxzZSxcbiAgICAgICAgICAgIF9zaG93TWVudShtZW51LCByZWxhdGl2ZVRvKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGlzYXJtQ2xpY2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNhcm1DbGljayA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB2YXIgcG9zID0gcmVsYXRpdmVUby5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICB2YXIgaGVpZ2h0ID0gcmVsYXRpdmVUby5oZWlnaHQoKTtcbiAgICAgICAgICAgICAgICB2YXIgbWVudUhlaWdodCA9IG1lbnUuaGVpZ2h0KCk7XG4gICAgICAgICAgICAgICAgdmFyIHRvcCA9IGhlaWdodCArIHBvcy50b3A7XG4gICAgICAgICAgICAgICAgaWYgKHRvcCArIG1lbnVIZWlnaHQgLSAkKGRvY3VtZW50KS5zY3JvbGxUb3AoKSA+ICQod2luZG93KS5oZWlnaHQoKSkge1xuICAgICAgICAgICAgICAgICAgICB0b3AgLT0gdG9wICsgbWVudUhlaWdodCAtICQod2luZG93KS5oZWlnaHQoKSArIDU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0b3AgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIG1lbnUuaGVpZ2h0KG1lbnVIZWlnaHQgKyB0b3ApO1xuICAgICAgICAgICAgICAgICAgICB0b3AgPSAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBtZW51LmNzcyh7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogdG9wICsgXCJweFwiLFxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiBwb3MubGVmdCArIFwicHhcIixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBtZW51LnNsaWRlRG93bigxMDApO1xuICAgICAgICAgICAgICAgIHRoaXMuX2RlbGF5KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdWlTZWxlY3QuYWRkQ2xhc3MoXCJyZWQtdWktdHlwZWRJbnB1dC1mb2N1c1wiKTtcbiAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJtb3VzZWRvd24ucmVkLXVpLXR5cGVkSW5wdXQtY2xvc2UtcHJvcGVydHktc2VsZWN0XCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdChtZW51KS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9oaWRlTWVudShtZW51KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkKGV2ZW50LnRhcmdldCkuY2xvc2VzdChyZWxhdGl2ZVRvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LmRpc2FybUNsaWNrID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfc2hvd1R5cGVNZW51KCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Nob3dNZW51KHRoYXQuJG1lbnUsIHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdHlwZSA9IHRoYXQuc2VsZWN0ZWRNZW51SXRlbTtcbiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ZWQgPSB0aGF0LiRtZW51LmZpbmQoXCJbdmFsdWU9J1wiICsgdHlwZSArIFwiJ1wiKTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgIH0sIDEyMCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2luaXRNZW51KCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdFRyaWdnZXIuYXR0cihcInRhYmluZGV4XCIsIC0xKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyLm9uKFwibW91c2Vkb3duLnJlZC11aS10eXBlZElucHV0LWZvY3VzLWJsb2NrXCIsIGZ1bmN0aW9uIChldnQpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKHRoYXQuJG1lbnUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kbWVudS5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gZmEtaWQtY2FyZFxuICAgICAgICAgICAgICAgIGNvbnN0IHR5cGVMaXN0ID0gW1xuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiBcInRleHRcIiwgdmFsdWU6IFwidFwiLCB0aXRsZTogXCJWYWx1ZSBpcyBub3QgdmVyaWZpZWRcIiwgaWNvbjogJzxpIGNsYXNzPVwiZmEgZmEtZm9udFwiL2k+ICcgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwibXNnLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwibXNnXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCJub2RlIGlkIG9yICBicm93c2UgcGF0aCBjb21lcyBmcm9tIGluamVjdGVkIG1zZyBwYXJhbWV0ZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICc8aSBjbGFzcz1cImZhIGZhLWVudmVsb3BlLW9wZW4tb1wiLz4nLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiBcIk5vZGVJZFwiLCB2YWx1ZTogXCJuXCIsIGljb246ICc8aSBjbGFzcz1cImZhIGZhLXRhZ1wiLz4xICZuYnNwOyAnIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6IFwiQWxpYXNlZCBOb2RlSWRcIiwgdmFsdWU6IFwibmFcIiwgaWNvbjogJzxpIGNsYXNzPVwiZmEgZmEtYm9va21hcmtcIi8+Jm5ic3A7ICcgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogXCJOb2RlSWQgd2l0aCBuYW1lc3BhY2UgVXJuXCIsIHZhbHVlOiBcIm5zdVwiLCBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS1pZC1jYXJkXCIvPiZuYnNwOyAnIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6IFwiQnJvd3NlUGF0aFwiLCB2YWx1ZTogXCJiXCIsIGljb246ICc8aSBjbGFzcz1cImZhIGZhLXRhZ1wiLz48aSBjbGFzcz1cImZhIGZhLWZpZ2h0ZXItamV0XCIvPiZuYnNwOycgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiQWxpYXNlZCBCcm93c2UgUGF0aFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiYWJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICc8aSBjbGFzcz1cImZhIGZhLWJvb2ttYXJrXCIvPjxpIGNsYXNzPVwiZmEgZmEtZmlnaHRlci1qZXRcIi8+Jm5ic3A7JyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGEgPSBmaWd1cmVPdXRNZW5VSXRlbVZhbHVlKHRoYXQuJGlucHV0LnZhbCgpKTtcbiAgICAgICAgICAgICAgICBjb25zdCBlID0gdHlwZUxpc3QuZmluZCgoeCkgPT4geC52YWx1ZSA9PT0gYSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0TGFiZWwuZW1wdHkoKS5hcHBlbmQoYDxzcGFuIHRpdGxlPSR7KGUgPT09IG51bGwgfHwgZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZS50aXRsZSkgfHwgXCJcIn0+Jm5ic3A7ICR7KGUgPT09IG51bGwgfHwgZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZS5pY29uKSB8fCBcIlwifTwvc3Bhbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LnNlbGVjdGVkTWVudUl0ZW0gPSBhO1xuICAgICAgICAgICAgICAgIGNvbnN0IHR0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRtZW51ID0gdGhpcy5fY3JlYXRlTWVudSh0eXBlTGlzdCwge30sICh2KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vZGUgPSB0b01vZGUodik7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBvbiBNZW51IHNlbGVjdGVkICFcbiAgICAgICAgICAgICAgICAgICAgICAgIHR0LnZlcmlmeShtb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gdHlwZUxpc3QuZmluZCgoeCkgPT4geC52YWx1ZSA9PT0gdik7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuc2VsZWN0ZWRNZW51SXRlbSA9IHY7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdExhYmVsLmVtcHR5KCkuYXBwZW5kKGA8c3BhbiB0aXRsZT0keyhlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUudGl0bGUpIHx8IFwiXCJ9PiZuYnNwOyAkeyhlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUuaWNvbikgfHwgXCJcIn08L3NwYW4+YCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kbWVudS5hcHBlbmRUbyhkb2N1bWVudC5ib2R5KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRtZW51LmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyLnNob3coKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtb2RlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHJldHVybiB0b01vZGUodGhhdC5zZWxlY3RlZE1lbnVJdGVtKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmNzcyhcImJvcmRlclwiLCBcIm5vbmVcIik7XG4gICAgICAgICAgICAgICAgLy8gdGhhdC4kaW5wdXQuYWRkQ2xhc3MoXCJyZWQtdWktdHlwZWRJbnB1dFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRlbGVtZW50RGl2ID0gdGhhdC4kaW5wdXQud3JhcChcIjxkaXY+XCIpLnBhcmVudCgpLmFkZENsYXNzKFwibWFpbi13cmFwcGVyXCIpO1xuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gQ29tYm8gYnJvd3NlclxuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvID0gJChcIjxkaXYvPlwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcInN0ZXJmaXZlLWNvbWJvLWJveFwiKTtcbiAgICAgICAgICAgICAgICAvLyB0aGF0LiRjb21iby5hZGRDbGFzcyhcInJlZC11aS10eXBlZElucHV0LWlucHV0LXdyYXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQucmVwbGFjZVdpdGgodGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAgPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwiaW5wdXQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGlucHV0R3JvdXApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJGlucHV0KTtcbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgLy8gI3JlZ2lvbiBhZGQgYnV0dG9uIG9uIHRoZSByaWdodCBzaWRlXG4gICAgICAgICAgICAgICAgLy8gI3JlZ2lvbiB0b2dnbGVUcmVlQnRuXG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24gdGl0bGU9XCJvcGVuIE9QQ1VBIEFkZHJlc3NTcGFjZSBCcm93c2VyXCI+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmFmdGVyKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmVlZFRvUmVhY2hTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRkcm9wZG93bi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJlZSB3aWRnZXQgaXMgZ29pbmcgdG8gYmVjb21lIHZpc2libGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnROb2RlID0geWllbGQgdGhhdC5yZXNvbHZlUGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnROb2RlICE9PSB0aGF0LmN1cnJlbnRQYXJlbnQgfHwgKChfYSA9IHRoYXQuY3VycmVudFBhcmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5vZGVJZCkgIT09IHBhcmVudE5vZGUubm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHRoYXQucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVlZFRvUmVhY2hTZWxlY3Rpb24gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZWVkVG9SZWFjaFNlbGVjdGlvbiAmJiAoeWllbGQgcmVhY2hTZWxlY3Rpb24odGhhdCwgcGFyZW50Tm9kZSkpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgLy8gI3JlZ2lvbiB2ZXJpZnlCdG5cbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uIHRpdGxlPVwidmVyaWZ5IG5vZGVJZCBvciBicm93c2VQYXRoXCI+PGkgY2xhc3M9XCJmYSBmYS1yZWZyZXNoXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmFmdGVyKHRoYXQuJHZlcmlmeUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb2RlID0gdGhhdC5tb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghbW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KG1vZGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIC8vICNlbmRyZWdpb25cbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplSW5wdXQgPSAoaW5wdXQpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vZGUgPSB0aGF0Lm1vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFtb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb25uZWN0aW9uRGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGEsIGpzb24gfSA9IHlpZWxkIF9jYWxsQ2hlY2tOb2RlSWQoY29ubmVjdGlvbkRhdGEsIGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkTm9kZUlkID0gY2hvb3NlTm9kZUlkKGpzb24sIG1vZGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudmFsKHNlbGVjdGVkTm9kZUlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgICAgICAvLyBjcmVhdGUgdGhlIHByZXBlbmRlZCBidXR0b25cbiAgICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHVpU2VsZWN0ID0gJChcIjxkaXY+XCIpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5iZWZvcmUodGhhdC4kdWlTZWxlY3QpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyID0gJCgnPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgdGFiaW5kZXg9XCIwXCI+PC9idXR0b24+JykucHJlcGVuZFRvKHRoYXQuJHVpU2VsZWN0KTtcbiAgICAgICAgICAgICAgICAgICAgJCgnPGkgY2xhc3M9XCJyZWQtdWktdHlwZWRJbnB1dC1pY29uIGZhIGZhLWNhcmV0LWRvd25cIj48L2k+JykudG9nZ2xlKHRydWUpLmFwcGVuZFRvKHRoYXQuJHNlbGVjdFRyaWdnZXIpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9zaG93VHlwZU1lbnUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdFRyaWdnZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5vbihcImtleWRvd25cIiwgZnVuY3Rpb24gKGV2dCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXlDb2RlID09PSA0MCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERvd25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9zaG93VHlwZU1lbnUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5vbihcImZvY3VzXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJHVpU2VsZWN0LmFkZENsYXNzKFwicmVkLXVpLXR5cGVkSW5wdXQtZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAub24oXCJibHVyXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhciBvcHQgPSB0aGF0LnR5cGVNYXBbdGhhdC5wcm9wZXJ0eVR5cGVdO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgKG9wdC5oYXNWYWx1ZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJHVpU2VsZWN0LnJlbW92ZUNsYXNzKFwicmVkLXVpLXR5cGVkSW5wdXQtZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RMYWJlbCA9ICQoJzxzcGFuIGNsYXNzPVwicmVkLXVpLXR5cGVkSW5wdXQtdHlwZS1sYWJlbFwiPjwvc3Bhbj4nKS5hcHBlbmRUbyh0aGF0LiRzZWxlY3RUcmlnZ2VyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5faW5pdE1lbnUoKTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIiwgXCJlbnRlciBhIG5vZGVJZCBvciBhIGJyb3dzZVBhdGggXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyAjcmVnaW9uIHRlbXBvcmF0eSBpbmZvIHBhbmVsXG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5mbyk7XG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gZHJvcCBkb3duIHRyZWVcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCkuYXBwZW5kVG8odGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUgPSAkKGA8dWwgY2xhc3M9XCJzdGVyZml2ZS10cmVlXCI+PC91bD5gKS5hcHBlbmRUbyh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgLy8gdGhhdC4kZHJvcGRvd24uc2hvdygpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgY29uc3QgaXNPbkxlZnRTaXplID0gKCRsaSwgZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkbGkub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBldmVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUucGFnZVggPj0gZWxlbWVudFBvcy5sZWZ0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VYIDw9IGVsZW1lbnRQb3MubGVmdCArIGJlZm9yZVdpZHRoICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZID49IGVsZW1lbnRQb3MudG9wICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZIDw9IGVsZW1lbnRQb3MudG9wICsgYmVmb3JlSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCB0b2dnbGVFeHBhbnNpb24gPSAoJGxpKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfZXhwYW5kTGkodGhhdCwgJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSA7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImRibGNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICRsaS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWZlcmVuY2UgPSAkbGkuZGF0YShcInJlZmVyZW5jZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlICYmICF0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc3QgaW5wdXQgPSBgWyR7ZGlzcGxheU5hbWV9XSgke3ZhbHVlfSlgO1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplSW5wdXQodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPbkxlZnRTaXplKCRsaSwgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVFeHBhbnNpb24oJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RTaW5nbGUodGhhdCwgJGxpKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjbGlja2luZyBvdXRzaWRlIHRoZSBwYWdlIHdpbGwgaGlkZSB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCh0aGF0LiRjb21ibykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBtYWtlRWxlbWVudCA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGlmICghcmVmZXJlbmNlKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBsZXQgdCA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGxldCBucyA9IChfYyA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MubmFtZXNwYWNlSW5kZXg7XG4gICAgICAgIHQgKz0gbnMgIT09IHVuZGVmaW5lZCAmJiByZWZlcmVuY2Uubm9kZUNsYXNzLm1hdGNoKC9UeXBlLykgPyBgIChucz0ke25zfSlgIDogXCJcIjtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT5gKTtcbiAgICAgICAgaWYgKHJlZmVyZW5jZS5ub2RlQ2xhc3MgPT09IFwiVmFyaWFibGVcIikge1xuICAgICAgICAgICAgY29uc3QgY2hlY2tCb3ggPSAkKCc8c3BhbiBjbGFzcz1cImN1c3RvbS1jaGVja2JveCB1bmNoZWNrZWRcIj48L3NwYW4+Jyk7XG4gICAgICAgICAgICAkZWxlbWVudC5hcHBlbmQoY2hlY2tCb3gpO1xuICAgICAgICAgICAgLy8gVG9nZ2xlIGNoZWNrYm94IHN0YXRlIHdoZW4gY2xpY2tlZFxuICAgICAgICAgICAgY2hlY2tCb3gub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNoZWNrQm94Lmhhc0NsYXNzKFwidW5jaGVja2VkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrQm94LnJlbW92ZUNsYXNzKFwidW5jaGVja2VkXCIpLmFkZENsYXNzKFwiY2hlY2tlZFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrQm94LnJlbW92ZUNsYXNzKFwiY2hlY2tlZFwiKS5hZGRDbGFzcyhcInVuY2hlY2tlZFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAkZWxlbWVudC5hcHBlbmQoJChgPGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+JHt0fTx1bD48L3VsPmApKTtcbiAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoXCJleHBhbmRhYmxlXCIpO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwidmFsdWVcIiwgbik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgIH07XG4gICAgY29uc3QgZGVjbGFyZUV2ZW50RmllbGRTZWxlY3RvcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ldmVudEZpZWxkU2VsZWN0b3JcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfcG9wdWxhdGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRGaWVsZCA9IG5ldyBTZXQoKChfYSA9IHRoYXQuJGlucHV0LnZhbCgpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudG9TdHJpbmcoKS5zcGxpdChcIjtcIikpIHx8IFtdKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB5aWVsZCBleHRyYWN0RXZlbnRGaWVsZEluZm8oZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2luc3RhbGxUcmVlKHJlc3VsdCwgc2VsZWN0ZWRGaWVsZCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2luc3RhbGxUcmVlKHJlc3VsdCwgc2VsZWN0RmllbGQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuZXZlbnRzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3Qgcm9vdCA9IHJlc3VsdC5ldmVudHM7XG4gICAgICAgICAgICAgICAgY29uc3QgJHJvb3RFbGVtZW50ID0gbWFrZUVsZW1lbnQocm9vdCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5hcHBlbmQoJHJvb3RFbGVtZW50KTtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmVmaXggPSBcIlwiO1xuICAgICAgICAgICAgICAgIHRoaXMuX2luc3RhbGxDaGlsZHJlbigkcm9vdEVsZW1lbnQuY2hpbGRyZW4oXCJ1bFwiKSwgcm9vdCwgcHJlZml4LCBzZWxlY3RGaWVsZCk7XG4gICAgICAgICAgICAgICAgJHJvb3RFbGVtZW50LnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVZhbHVlcyhzZWxlY3RGaWVsZCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2luc3RhbGxDaGlsZHJlbigkcGFyZW50LCBwYXJlbnQsIHByZWZpeCwgc2VsZWN0ZWRGaWVsZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGIgPSAoeyBuYW1lLCBuYW1lc3BhY2VJbmRleCB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChuYW1lc3BhY2VJbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5hbWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke25hbWVzcGFjZUluZGV4fToke25hbWV9YDtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuID0gcGFyZW50LmNoaWxkcmVuIHx8IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN1YlR5cGVzID0gcGFyZW50LnN1YlR5cGVzIHx8IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuQW5kU3ViVHlwZXMgPSBbLi4uY2hpbGRyZW4sIC4uLnN1YlR5cGVzXTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGNoaWxkcmVuQW5kU3ViVHlwZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChjaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgICRwYXJlbnQuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByZWZpeDIgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGQubm9kZUNsYXNzID09PSBcIlZhcmlhYmxlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmVmaXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXgyID0gcHJlZml4ICsgXCIuXCIgKyBiKGNoaWxkLmJyb3dzZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4MiA9IGIoY2hpbGQuYnJvd3NlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAkZWxlbWVudC5hdHRyKFwiZGF0YS12YWx1ZVwiLCBwcmVmaXgyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYXNDaGlsZHJlbiA9IGNoaWxkLmNoaWxkcmVuICYmIGNoaWxkLmNoaWxkcmVuLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFzU3ViVHlwZXMgPSBjaGlsZC5zdWJUeXBlcyAmJiBjaGlsZC5zdWJUeXBlcy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaGFzQ2hpbGRyZW4gJiYgIWhhc1N1YlR5cGVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZWxlbWVudC5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJuby1leHBhbmRhYmxlXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5zdGFsbENoaWxkcmVuKCRlbGVtZW50LmNoaWxkcmVuKFwidWxcIiksIGNoaWxkLCBwcmVmaXgyLCBzZWxlY3RlZEZpZWxkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICRlbGVtZW50LnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF91cGRhdGVTZWxlY3RlZEZpZWxkcygpIHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRGaWVsZHMgPSBuZXcgU2V0KCgoX2EgPSB0aGF0LiRpbnB1dC52YWwoKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRvU3RyaW5nKCkuc3BsaXQoXCI7XCIpKSB8fCBbXSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlVmFsdWVzKHNlbGVjdGVkRmllbGRzKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfdXBkYXRlVmFsdWVzKHNlbGVjdGVkRmllbGRzKSB7XG4gICAgICAgICAgICAgICAgJChcIi5zdGVyZml2ZS10cmVlIGxpXCIpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkdGhpcyA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHYgPSAkdGhpcy5hdHRyKFwiZGF0YS12YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHYgJiYgc2VsZWN0ZWRGaWVsZHMuaGFzKHYpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy5jaGlsZHJlbihcInNwYW4uY3VzdG9tLWNoZWNrYm94XCIpLnJlbW92ZUNsYXNzKFwidW5jaGVja2VkXCIpLmFkZENsYXNzKFwiY2hlY2tlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9zZXRJbnB1dFZhbHVlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBbXTtcbiAgICAgICAgICAgICAgICAvLyBjcmF3bCB0aGUgdHJlZSB0byBmaW5kIHNlbGVjdGVkIGVsZW1lbnRzIGFuZCBjcmVhdGUgYSBsaXN0IG9mIEJyb3dzZVBhdGhcbiAgICAgICAgICAgICAgICAkKFwiLnN0ZXJmaXZlLXRyZWUgbGlcIikuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICR0aGlzID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGVsZW1lbnQgaXMgc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLmNoaWxkcmVuKFwic3Bhbi5jdXN0b20tY2hlY2tib3guY2hlY2tlZFwiKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ID0gJHRoaXMuYXR0cihcImRhdGEtdmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0LnB1c2godik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IFsuLi5uZXcgU2V0KGxpc3QpXS5zb3J0KCkuam9pbihcIjtcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudmFsKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFswXS5wYXJlbnRFbGVtZW50LnJlcGxhY2VDaGlsZCh0aGF0LiRjb21ib1swXSwgdGhpcy5lbGVtZW50WzBdKTtcbiAgICAgICAgICAgICAgICAvLyB0aGlzLmVsZW1lbnQucmVwbGFjZVdpdGgodGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAgPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwiaW5wdXQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGlucHV0R3JvdXApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJGlucHV0KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLXNpdGVtYXBcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdG9nZ2xlVHJlZUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0bi5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGluZm8udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGF0LiRkcm9wZG93bi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZmxvYXRpbmdCdXR0b25zLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9mZnNldCA9IHRoYXQuJGRyb3Bkb3duLm9mZnNldCgpOyAvLyBHZXQgdGhlIHRvcC1sZWZ0IGNvcm5lciBwb3NpdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgJGZsb2F0aW5nQnV0dG9ucy5jc3Moe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogYCR7b2Zmc2V0LnRvcH1weGAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IGBjYWxjKDEwMCUgLSAke29mZnNldC5sZWZ0ICsgdGhhdC4kZHJvcGRvd24ud2lkdGgoKX1weClgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9wb3B1bGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fdXBkYXRlU2VsZWN0ZWRGaWVsZHMoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRmbG9hdGluZ0J1dHRvbnMuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgLy8gY29uc3QgJHNjcm9sbGFibGVDb250ZW50ID0gJCgnPGRpdiBjbGFzcz1cInN0ZXJmaXZlLWRyb3Bkb3duLXNjcm9sbGFibGUtY29udGVudFwiPjwvZGl2PicpO1xuICAgICAgICAgICAgICAgIGNvbnN0ICR2YWxpZGF0ZUJ1dHRvbiA9ICQoJzxzcGFuIGNsYXNzPVwidmFsaWRhdGUtYnV0dG9uXCI+4pyUPC9zcGFuPicpOyAvLyBVc2UgYW55IGljb24gb3IgdGV4dCBoZXJlXG4gICAgICAgICAgICAgICAgY29uc3QgJGNhbmNlbEJ1dHRvbiA9ICQoJzxzcGFuIGNsYXNzPVwiY2FuY2VsLWJ1dHRvblwiPuKcljwvc3Bhbj4nKTsgLy8gVXNlIGFueSBpY29uIG9yIHRleHQgaGVyZVxuICAgICAgICAgICAgICAgIGNvbnN0ICRmbG9hdGluZ0J1dHRvbnMgPSAkKCc8ZGl2IGNsYXNzPVwiZmxvYXRpbmctYnV0dG9uc1wiPjwvZGl2PicpLmFwcGVuZCgkdmFsaWRhdGVCdXR0b24sICRjYW5jZWxCdXR0b24pO1xuICAgICAgICAgICAgICAgICRmbG9hdGluZ0J1dHRvbnMuaGlkZSgpO1xuICAgICAgICAgICAgICAgIC8vIERlZmluZSB5b3VyIHZhbGlkYXRpb24gYW5kIGNhbmNlbGxhdGlvbiBsb2dpY1xuICAgICAgICAgICAgICAgICR2YWxpZGF0ZUJ1dHRvbi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5fc2V0SW5wdXRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJGNhbmNlbEJ1dHRvbi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUgPSAkKGA8dWwgY2xhc3M9XCJzdGVyZml2ZS10cmVlXCI+PC91bD5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5lbXB0eSgpLmFwcGVuZCh0aGF0LiR0cmVlLCAkZmxvYXRpbmdCdXR0b25zKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVXaWR0aCA9IDIwOyAvLyBTZXQgd2lkdGggb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlSGVpZ2h0ID0gMjA7IC8vIFNldCBoZWlnaHQgb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFBvcyA9ICQodGhpcykub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBldmVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUucGFnZVggPj0gZWxlbWVudFBvcy5sZWZ0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VYIDw9IGVsZW1lbnRQb3MubGVmdCArIGJlZm9yZVdpZHRoICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZID49IGVsZW1lbnRQb3MudG9wICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZIDw9IGVsZW1lbnRQb3MudG9wICsgYmVmb3JlSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImNsaWNrZWQgb24gaWNvblwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiY2xpY2tlZCBvbiBcIiwgJGxpLmRhdGEoXCJ2YWx1ZVwiKSwgJGxpLmF0dHIoXCJjbGFzc1wiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fcG9wdWxhdGUoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgY29uc3QgZXh0cmFjdEV2ZW50RmllbGRJbmZvID0gKF9hKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2FdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsLCB9KSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1mb3Itbm9kZS1yZWRgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9leHRyYWN0RXZlbnRUeXBlc2A7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IGV2ZW50czogbnVsbCB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgZXZlbnRzID0gcmVzcG9uc2UuZXZlbnRzO1xuICAgICAgICByZXR1cm4geyBldmVudHMgfTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHJldHVybnMgdGhlIGVuZHBvaW50IGF0dHJpYnV0ZXMgY29udGFpbmluZzpcbiAgICAgKiAgLSB0aGUgZW5kcG9pbnQsIHNlY3VyaXR5TW9kZSwgc2VjdXJpdHlQb2xpY3ksXG4gICAgICogIC0gdXNlcklkZW50aXR5VHlwZSxcbiAgICAgKiAgLSBjcmVkZW50aWFsc1xuICAgICAqICAtIG5hbWVzcGFjZUFsaWFzZXNcbiAgICAgKlxuICAgICAqIGV4dHJhY3RlZCBmcm9tIHRoZSB1aSB3aWRnZXQgI25vZGUtaW5wdXQtZW5kcG9pbnRcbiAgICAgKi9cbiAgICBjb25zdCBnZXRFbmRQb2ludEF0dHJpYnV0ZXMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgcmVkTm9kZSA9IFJFRC5ub2Rlcy5ub2RlKGVuZHBvaW50SWQpO1xuICAgICAgICBpZiAoIXJlZE5vZGUpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAvLyBjb25zdCBjcmVkZW50aWFscyA9IFJFRC4oZW5kcG9pbnRJZCk7XG4gICAgICAgIC8vIHdlIG5lZWQgdG8gc2FuaXRpemUgYW5kIGV4dHJhY3QgdGhlIGVuZHBvaW50IGF0dHJpYnV0ZXMgb25seSAoIG5vdCB0aGUgbm9kZS1yZWQgc3R1ZmYpXG4gICAgICAgIGNvbnN0IHsgZW5kcG9pbnQsIHNlY3VyaXR5TW9kZSwgc2VjdXJpdHlQb2xpY3ksIHVzZXJJZGVudGl0eVR5cGUsIGNyZWRlbnRpYWxzLCBuYW1lc3BhY2VBbGlhc2VzIH0gPSByZWROb2RlO1xuICAgICAgICBjb25zdCByZXRWYWx1ZSA9IHtcbiAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgY3JlZGVudGlhbHMsXG4gICAgICAgICAgICBuYW1lc3BhY2VBbGlhc2VzLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gcmV0VmFsdWU7XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnROciA9IGdldEVuZFBvaW50QXR0cmlidXRlcygpO1xuICAgICAgICBpZiAoIWVuZHBvaW50TnIpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmFtZXNwYWNlQWxpYXNlcyA9IGVuZHBvaW50TnIubmFtZXNwYWNlQWxpYXNlcztcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oeyBuYW1lc3BhY2VBbGlhc2VzLCBpZDogZW5kcG9pbnRJZCB9LCBlbmRwb2ludE5yKTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycyxcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgaW5zdGFsbEZlZWRiYWNrV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICBkZWJ1Z2dlcjtcbiAgICAgICAgY29uc3QgdHJheUNvbnRlbnQgPSAkKFwiLnJlZC11aS10cmF5LWJvZHlcIik7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiaW5zdGFsbEZlZWRiYWNrV2lkZ2V0IFwiLCB0cmF5Q29udGVudC5sZW5ndGgpO1xuICAgICAgICBpZiAodHJheUNvbnRlbnQubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImluc3RhbGxpbmcgaWZyYW1lXCIpO1xuICAgICAgICAgICAgLy8gQ3JlYXRlIHRoZSBpZnJhbWUgZWxlbWVudFxuICAgICAgICAgICAgY29uc3QgaWZyYW1lID0gJChcIjxpZnJhbWU+PC9pZnJhbWU+XCIsIHtcbiAgICAgICAgICAgICAgICBzcmM6IFwiL29wY3VhLWZvci1ub2RlLXJlZC9zdXBwb3J0LWZyYW1lLmh0bWxcIixcbiAgICAgICAgICAgICAgICBzY3JvbGxpbmc6IFwibm9cIixcbiAgICAgICAgICAgICAgICBzdHlsZTogXCJiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O292ZXJmbG93OmhpZGRlbjtib3JkZXI6M3B4XCIsXG4gICAgICAgICAgICAgICAgYWxsb3d0cmFuc3BhcmVuY3k6IFwidHJ1ZVwiLFxuICAgICAgICAgICAgICAgIHdpZHRoOiBcIjE4MHB4XCIsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBcIjMwcHhcIixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSBpZnJhbWUgdG8gdGhlIGZlZWRiYWNrIGVsZW1lbnRcbiAgICAgICAgICAgIHRyYXlDb250ZW50LmFwcGVuZChpZnJhbWUpO1xuICAgICAgICAgICAgLy8gUG9zaXRpb24gdGhlIGZlZWRiYWNrIGVsZW1lbnQgYXQgdGhlIGJvdHRvbSByaWdodCBvZiB0aGUgdHJheSBjb250ZW50XG4gICAgICAgICAgICBpZnJhbWUuY3NzKHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgICAgICAgIHJpZ2h0OiBcIjIwcHhcIixcbiAgICAgICAgICAgICAgICBib3R0b206IFwiMTZweFwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgUkVELm5vZGVzLnJlZ2lzdGVyVHlwZShcIk9wY1VhLUNsaWVudDItTW9uaXRvckV2ZW50XCIsIHtcbiAgICAgICAgY2F0ZWdvcnk6IFwib3BjdWFcIixcbiAgICAgICAgY29sb3I6IFwiI0MwREVFRFwiLFxuICAgICAgICBhbGlnbjogXCJyaWdodFwiLFxuICAgICAgICBpY29uOiBcIm9wY3VhbG9nb2JpZy5wbmdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcIm1vbml0b3IgZXZlbnRzXCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBpbnB1dHM6IHsgdmFsdWU6IDEgfSxcbiAgICAgICAgICAgIG91dHB1dDogeyB2YWx1ZTogNCB9LFxuICAgICAgICAgICAgbmFtZTogeyB2YWx1ZTogXCJcIiB9LFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlLCB0eXBlOiBcIk9wY1VhLUVuZHBvaW50MlwiIH0sXG4gICAgICAgICAgICBzdWJzY3JpcHRpb246IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJcIixcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2YWxpZGF0ZTogKHZhbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsID09PSBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0YXJ0SW1tZWRpYXRlbHk6IHsgdmFsdWU6IHRydWUsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICAvLyB3ZSB1c2UgYSBkaWZmZXJlbnQgd2lkZ2V0IGZvciBlZGl0aW5nIHRoZSBub2RlSWQsIGJlY2F1c2UgdGhlIGJlaGF2aW9yXG4gICAgICAgICAgICAvLyBpcyBzcGVjaWZpYyB0byBtb25pdG9yLCBob3dldmVyIHByb3BlcnR5IHdpbGwgYmUgc3RvcmVkIGluIG5vZGVJZFxuICAgICAgICAgICAgbm9kZUlkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogZmFsc2UsIHZhbGlkYXRlOiAoKSA9PiB0cnVlIH0sXG4gICAgICAgICAgICBzYW1wbGluZ0ludGVydmFsOiB7IHZhbHVlOiAxMDAwLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgZGlzY2FyZE9sZGVzdDogeyB2YWx1ZTogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHF1ZXVlU2l6ZTogeyB2YWx1ZTogMTAsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBzZWxlY3RDbGF1c2VzOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgd2hlcmVDbGF1c2U6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICB9LFxuICAgICAgICAvLyBpbnB1dHM6LFxuICAgICAgICBvdXRwdXRzOiAyLCAvLyAyIG91dHB1dCwgc2Vjb25kIGZvciByYXcgbm9kZS1vcGN1YSBkaWFnbm9zdGljcyBvciBtb3JlIGNvbXBsZXRlIG1lc3NhZ2VcbiAgICAgICAgbGFiZWwoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lIHx8IFwiT1BDVUEgTW9uaXRvclwiO1xuICAgICAgICB9LFxuICAgICAgICBsYWJlbFN0eWxlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IFwibm9kZV9sYWJlbF9pdGFsaWNcIiA6IFwiXCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHByZXBhcmUoKSB7XG4gICAgICAgICAgICBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQoKTtcbiAgICAgICAgICAgIGRlY2xhcmVFdmVudEZpZWxkU2VsZWN0b3JXaWRnZXQoKTtcbiAgICAgICAgICAgIGluc3RhbGxTdWJzY3JpcHRpb25TZWxlY3RvcihSRUQsIHRoaXMpO1xuICAgICAgICAgICAgaW5zdGFsbEZlZWRiYWNrV2lkZ2V0KCk7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIEFjdGlvbiBNb25pdG9yIENvbW1vblxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIC0tIGluc3RhbGwgc3Vic2NyaXB0aW9uIHNlbGVjdGlvblxuICAgICAgICAgICAgJChcIm5vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hlY2tlZCA9ICQoXCIjbm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLnByb3AoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgICAgIGlmIChjaGVja2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1pbnB1dHNcIikudmFsKDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LWlucHV0c1wiKS52YWwoMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIEFjdGlvbiBNb25pdG9yXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgY29uc3QgJG5vZGVJZCA9ICQoXCIjbm9kZS1pbnB1dC1ub2RlSWRcIik7XG4gICAgICAgICAgICAkbm9kZUlkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBmaWx0ZXIobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJPYmplY3RcIjtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGlzU2VsZWN0YWJsZShub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiIC8qIHRvIGRvIHx8IG5vZGVEZXNjLmV2ZW50Tm90aWZpZXIgPT09IDEgKi87XG4gICAgICAgICAgICAgICAgfSB9KSk7XG4gICAgICAgICAgICAvLyAtLS0tLS0gaW5zdGFsbCBldmVudCBmaWVsZCBzZWxlY3RvclxuICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXdoZXJlQ2xhdXNlXCIpO1xuICAgICAgICAgICAgY29uc3QgJHNlbGVjdENsYXVzZXMgPSAkKFwiI25vZGUtaW5wdXQtc2VsZWN0Q2xhdXNlc1wiKTtcbiAgICAgICAgICAgICRzZWxlY3RDbGF1c2VzLmV2ZW50RmllbGRTZWxlY3RvcihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpKTtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0c2F2ZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0SW1tZWRpYXRlbHkgPSAkKFwiI25vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS5wcm9wKFwiY2hlY2tlZFwiKTtcbiAgICAgICAgICAgIGlmIChzdGFydEltbWVkaWF0ZWx5KSB7XG4gICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXN0YXJ0SW1tZWRpYXRlbHlcIikudmFsKHN0YXJ0SW1tZWRpYXRlbHkgPyAwIDogMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dHMgPSBzdGFydEltbWVkaWF0ZWx5ID8gMCA6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS52YWwoMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dHMgPSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
7
+ function _0x564a(){const _0x1f120d=['statusCode','8751sPWFoo','nodeClass','closest','each','<i\x20class=\x22fa\x20','<button\x20title=\x22verify\x20nodeId\x20or\x20browsePath\x22><i\x20class=\x22fa\x20fa-refresh\x22></i></button>','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','browseResult','namespaceAliases','nodeId','Organizes','catch','setMode','$menu','OpcUa-Endpoint2','$combo','click','<div>','off','wrap','done','disarmClick','verify','appendTo','mode','644398FfQmKu','bp_indexed','prependTo','POST','HasChild','currentParent','bp_aliased','next','$verifyBtn','18px','clicked\x20on\x20','unchecked','Unspecified','<i\x20class=\x22fa\x20fa-tag\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/>&nbsp;','mask-image:\x20url(','change','14983362imoVCr','requestedNodeId','slideDown','error','append','message','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','remove','title','fa-cog','reset','#node-input-subscription','sterfive.eventFieldSelector','statusCode:\x20','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','aliasedNodeId','width','mousedown.red-ui-typedInput-focus-block','value','$inputGroup','selectedMenuItem','left','nsu','sort','css','node','dblclick','\x22\x20style=\x22color:','localeCompare','data','statusText','<i\x20class=\x22fa\x20fa-bookmark\x22/>&nbsp;\x20','expanded','options','icon','hasClass','keydown','_installChildren','fa-object-group','rgba(61,\x2060,\x204,\x200.525)','join','none','<button\x20type=\x22button\x22\x20tabindex=\x220\x22></button>','$elementDiv','NodeId\x20with\x20namespace\x20Urn','<div\x20class=\x22info-text\x22></div>','Invalid','ns=0;i=47','inputs','tabindex','after','SteelBlue','name','application/json','IsForward','Objects','</span>','496CPUKwW','<ul></ul>','$info','_showTypeMenu','label','animate','input-group','sterfive-dropdown','$input','ns=0;i=46','View','<i\x20class=\x22fa\x20fa-envelope-open-o\x22/>','span.custom-checkbox','\x20(ns=','selected','already\x20loading','Variable','filter','BrowseName','sterfive-combo-box','/walk-backward','$uiSelect','mousedown','toggle','baseUrl','<div\x20class=\x22spinner\x22></div>','_hideMenu','opts','OpcUa-Client2-MonitorEvent','ns=0;i=34','subscription','stopPropagation','opcualogobig.png','.tree-text:first','DisplayName','CadetBlue','msg.','_populate','<a\x20href=\x22#\x22></a>','length','HasSubtype','preventDefault','widget','auto','endpointNode','773580WTmoNM',':focus','height','DodgerBlue','trigger','pageX','red-ui-typedInput-icon\x20','<li>','NodeId','#node-input-endpoint','push','$tree','_delay','ReferenceType','fetched','call','_setInputValue','prop','_initMenu','VariableType','</li>','match','<li\x20key=\x22','ObjectType','Both','class','sterfive-info','nodeId_aliased','312333JLajtS','body','<li>error\x20','placeholder','events','indexOf','$selectLabel','parentNode','keyCode','expandable','__parentNode','[value=\x27','stringify','Forward','function','HasProperty','browsePath','isSelectable','text','>&nbsp;\x20','\x22}><span\x20class=\x22tree-text\x22\x20title=','find','<button\x20title=\x22open\x20OPCUA\x20AddressSpace\x20Browser\x22><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','18TnvJEW','sterfive-typedInput-options\x20sterfive-online-menu','references','aliased\x20NodeId:\x20','_createMenu','suppressed','fetched\x20:\x20','blur','subscriptions','split','_updateSelectedFields','_showMenu','then','eventFieldSelector','status','HasTypeDefinition','grey','resolveParentNode','aliased\x20browsePath:\x20','reference','$dropdown','border','position','throw','nodes','node\x20class:\x20','DarkOrange','<span\x20class=\x22validate-button\x22>✔</span>','typeDefinition','$toggleTreeBtn','removeClass','<span\x20class=\x22custom-checkbox\x20unchecked\x22></span>','Good','focus','<i\x20class=\x22fa\x20fa-bookmark\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/>&nbsp;','apply','addClass','isTypeRef','fa-folder','ns=0;i=61','red-ui-typedInput-focus','children','DataType','nodeId:\x20','data-value','failure','top','Aliased\x20NodeId','<option/>','expandable\x20expanded','json','><i\x20class=\x22fa\x20','_updateValues','toString','namespaceIndex','nsuNodeID','input-error','/checkNodeId','pointer-events','TypeDefinition','<div/>','endpoint','replaceChild','val','node_label_italic','988088WpbcPT','browseName','callback','monitor\x20events','nodeBrowser','Inverse','loading','<span\x20class=\x22cancel-button\x22>✖</span>','attr','node\x20id\x20or\x20\x20browse\x20path\x20comes\x20from\x20injected\x20msg\x20parameter','element','span.custom-checkbox.checked','fetching\x20failed\x20with\x20error','elements','NodeClass','fa-sliders','relativePath','toggleClass','aliasedBrowsePath','subTypes','.sterfive-tree\x20li','/opcua-for-node-red','no-expandable','log','checked','$selectTrigger','.spinner','#node-input-whereClause','referenceTypeId','<span\x20title=','i=61','<ul\x20class=\x22sterfive-tree\x22></ul>','#node-input-inputs','ns=0;i=35','target','#node-input-startImmediately',':visible','clicked\x20on\x20icon','opc.tcp://opcuademo.sterfive.com:26543','374380OEUvBA',':first','SuppressedError','fa-list-alt','empty','pageY','red-ui-typedInput-icon','displayName','assign','sterfive.nodeBrowser','li[key=\x22','li\x20>\x20.tree-text','show','_installTree','offset','Object','<div\x20class=\x22floating-buttons\x22></div>','Method','<i>','hide','multiple','nodeId_nsu','scrollTop'];_0x564a=function(){return _0x1f120d;};return _0x564a();}function _0x572c(_0x344bcf,_0x2c98ae){const _0x564a49=_0x564a();return _0x572c=function(_0x572cdd,_0x5e5968){_0x572cdd=_0x572cdd-0x80;let _0xefa0ec=_0x564a49[_0x572cdd];return _0xefa0ec;},_0x572c(_0x344bcf,_0x2c98ae);}(function(_0x536fd8,_0x40ee84){const _0x417a3b=_0x572c,_0x3348ee=_0x536fd8();while(!![]){try{const _0x27a32a=-parseInt(_0x417a3b(0x135))/0x1+-parseInt(_0x417a3b(0x166))/0x2+parseInt(_0x417a3b(0x14d))/0x3*(-parseInt(_0x417a3b(0x1af))/0x4)+-parseInt(_0x417a3b(0x9a))/0x5+parseInt(_0x417a3b(0xcd))/0x6*(-parseInt(_0x417a3b(0xb6))/0x7)+-parseInt(_0x417a3b(0x10e))/0x8+parseInt(_0x417a3b(0x176))/0x9;if(_0x27a32a===_0x40ee84)break;else _0x3348ee['push'](_0x3348ee['shift']());}catch(_0x4c9946){_0x3348ee['push'](_0x3348ee['shift']());}}}(_0x564a,0x2f78f),(function(){'use strict';const _0x4c3996=_0x572c;function _0x3ba623(_0x40bb4a,_0x2477dd){const _0x201d68=_0x572c,_0xbafa0e=$(_0x201d68(0xa3)),_0x3aac83=$(_0x201d68(0x181)),_0x4f85ce=()=>{const _0x18d567=_0x201d68,_0x356877=_0x40bb4a['nodes']['node'](_0xbafa0e[_0x18d567(0x10c)]());_0x3aac83[_0x18d567(0x139)]();if(!_0x356877||!_0x356877[_0x18d567(0xd5)])return;for(const _0xa0d4ca of _0x356877[_0x18d567(0xd5)]){const _0x53a869=_0xa0d4ca['name']||_0xa0d4ca['id'];$(_0x18d567(0xfd),{'value':_0xa0d4ca['id'],'label':_0x53a869,'selected':_0xa0d4ca['id']===_0x2477dd[_0x18d567(0x8b)]})[_0x18d567(0xc8)](_0x53a869)[_0x18d567(0x164)](_0x3aac83);}};_0x4f85ce(),_0x3aac83['on'](_0x201d68(0x175),()=>{const _0xee0336=_0x201d68;_0x2477dd['subscription']=_0x3aac83[_0xee0336(0x10c)]();}),_0xbafa0e['on'](_0x201d68(0x175),()=>{_0x4f85ce();});}function _0x14f326(_0x3cedb3,_0x549a5e,_0x13c275,_0x39d407){function _0x442ced(_0x2ee62b){return _0x2ee62b instanceof _0x13c275?_0x2ee62b:new _0x13c275(function(_0x2cbb1f){_0x2cbb1f(_0x2ee62b);});}return new(_0x13c275||(_0x13c275=Promise))(function(_0x57dab5,_0x3b6bc8){const _0x38a58a=_0x572c;function _0x3acc3f(_0x37bf68){const _0x998a89=_0x572c;try{_0x3cfef9(_0x39d407[_0x998a89(0x16d)](_0x37bf68));}catch(_0xea340c){_0x3b6bc8(_0xea340c);}}function _0x5ee6a3(_0xc1f8f5){const _0xeac2a7=_0x572c;try{_0x3cfef9(_0x39d407[_0xeac2a7(0xe4)](_0xc1f8f5));}catch(_0x3c4b74){_0x3b6bc8(_0x3c4b74);}}function _0x3cfef9(_0x508344){const _0x4856f6=_0x572c;_0x508344[_0x4856f6(0x161)]?_0x57dab5(_0x508344[_0x4856f6(0x188)]):_0x442ced(_0x508344[_0x4856f6(0x188)])[_0x4856f6(0xd9)](_0x3acc3f,_0x5ee6a3);}_0x3cfef9((_0x39d407=_0x39d407[_0x38a58a(0xf0)](_0x3cedb3,_0x549a5e||[]))[_0x38a58a(0x16d)]());});}typeof SuppressedError==='function'?SuppressedError:function(_0x5b0ea8,_0x3e724a,_0xa1a351){const _0x261648=_0x572c;var _0x55a5cd=new Error(_0xa1a351);return _0x55a5cd['name']=_0x261648(0x137),_0x55a5cd[_0x261648(0x179)]=_0x5b0ea8,_0x55a5cd[_0x261648(0xd2)]=_0x3e724a,_0x55a5cd;};const _0xf72623=_0x4c3996(0x12f),_0x5d562f=_0x4c3996(0xf4),_0x3ab6e8=_0x4c3996(0x1a5),_0x231530=_0x4c3996(0x1b8),_0x85524c=_0x4c3996(0x8a),_0x4323bd='ns=0;i=45',_0x20b300='ns=0;i=40';var _0x1b60b3;(function(_0x16e996){const _0x16125f=_0x4c3996;_0x16e996[_0x16e996[_0x16125f(0xc3)]=0x0]='Forward',_0x16e996[_0x16e996[_0x16125f(0x113)]=0x1]=_0x16125f(0x113),_0x16e996[_0x16e996[_0x16125f(0xb2)]=0x2]=_0x16125f(0xb2),_0x16e996[_0x16e996['Invalid']=0x3]=_0x16125f(0x1a4);}(_0x1b60b3||(_0x1b60b3={})));var _0x135d5a;(function(_0x15425c){const _0x18f4c9=_0x4c3996;_0x15425c[_0x15425c['Unspecified']=0x0]=_0x18f4c9(0x172),_0x15425c[_0x15425c[_0x18f4c9(0x144)]=0x1]='Object',_0x15425c[_0x15425c['Variable']=0x2]=_0x18f4c9(0x1bf),_0x15425c[_0x15425c[_0x18f4c9(0x146)]=0x4]=_0x18f4c9(0x146),_0x15425c[_0x15425c[_0x18f4c9(0xb1)]=0x8]=_0x18f4c9(0xb1),_0x15425c[_0x15425c[_0x18f4c9(0xad)]=0x10]=_0x18f4c9(0xad),_0x15425c[_0x15425c[_0x18f4c9(0xa7)]=0x20]=_0x18f4c9(0xa7),_0x15425c[_0x15425c[_0x18f4c9(0xf7)]=0x40]='DataType',_0x15425c[_0x15425c['View']=0x80]=_0x18f4c9(0x1b9);}(_0x135d5a||(_0x135d5a={})));var _0x27619d;(function(_0x191d75){const _0x1cbef6=_0x4c3996;_0x191d75[_0x191d75[_0x1cbef6(0x144)]=0x1]=_0x1cbef6(0x144),_0x191d75[_0x191d75[_0x1cbef6(0x1bf)]=0x2]=_0x1cbef6(0x1bf),_0x191d75[_0x191d75[_0x1cbef6(0x146)]=0x4]='Method',_0x191d75[_0x191d75['ObjectType']=0x8]='ObjectType',_0x191d75[_0x191d75[_0x1cbef6(0xad)]=0x10]='VariableType',_0x191d75[_0x191d75[_0x1cbef6(0xa7)]=0x20]=_0x1cbef6(0xa7),_0x191d75[_0x191d75['DataType']=0x40]=_0x1cbef6(0xf7),_0x191d75[_0x191d75[_0x1cbef6(0x1b9)]=0x80]=_0x1cbef6(0x1b9);}(_0x27619d||(_0x27619d={})));var _0xe694c5;(function(_0x4f121f){const _0x43220b=_0x4c3996;_0x4f121f[_0x4f121f[_0x43220b(0xa7)]=0x1]=_0x43220b(0xa7),_0x4f121f[_0x4f121f[_0x43220b(0x1ac)]=0x2]=_0x43220b(0x1ac),_0x4f121f[_0x4f121f[_0x43220b(0x11c)]=0x4]=_0x43220b(0x11c),_0x4f121f[_0x4f121f[_0x43220b(0x1c1)]=0x8]=_0x43220b(0x1c1),_0x4f121f[_0x4f121f[_0x43220b(0x8f)]=0x10]='DisplayName',_0x4f121f[_0x4f121f[_0x43220b(0x108)]=0x20]='TypeDefinition';}(_0xe694c5||(_0xe694c5={})));function _0x4428ea(_0x28a4bc){const _0x56f51b=_0x4c3996;switch(_0x28a4bc){case _0x56f51b(0x157):return _0xf72623;case _0x56f51b(0xc5):return _0x231530;case'HasComponent':return _0x3ab6e8;case _0x56f51b(0x16a):return _0x85524c;case _0x56f51b(0x95):return _0x4323bd;case _0x56f51b(0xdc):return _0x20b300;}}const _0x595b30=_0x4e30f2=>{const _0x1a7fca=_0x4c3996;switch(_0x4e30f2['nodeClass']){case _0x1a7fca(0x144):if(_0x4e30f2[_0x1a7fca(0x12a)]===_0xf72623);if(_0x4e30f2[_0x1a7fca(0xe9)]===_0x5d562f||_0x4e30f2['referenceTypeId']===_0x1a7fca(0x12c))return{'icon':_0x1a7fca(0xf3),'color':_0x1a7fca(0x19d)};return{'icon':_0x1a7fca(0x19c),'color':'SeaGreen'};case _0x1a7fca(0x1bf):if(_0x4e30f2['referenceTypeId']===_0x3ab6e8)return{'icon':_0x1a7fca(0x138),'color':_0x1a7fca(0x1a9)};else return _0x4e30f2[_0x1a7fca(0x12a)]===_0x231530?{'icon':_0x1a7fca(0x138),'color':_0x1a7fca(0x9d)}:{'icon':'fa-list-alt','color':_0x1a7fca(0x90)};case _0x1a7fca(0x146):return{'icon':_0x1a7fca(0x17f),'color':'SandyBrown'};case _0x1a7fca(0xb1):return{'icon':'fa-object-group','color':_0x1a7fca(0xe7)};case _0x1a7fca(0xad):return{'icon':_0x1a7fca(0x11d),'color':_0x1a7fca(0xe7)};case _0x1a7fca(0xf7):return{'icon':'fa-text-width','color':_0x1a7fca(0x90)};}return{'icon':'fa-question','color':_0x1a7fca(0xdd)};},_0x4e0b21=(_0x42a08c,_0x3aa743,_0x2592ae)=>_0x14f326(void 0x0,[_0x42a08c,_0x3aa743,_0x2592ae],void 0x0,function*({endpointNode:_0x29bc9d,endpoint:_0x5ad22b,baseUrl:_0x190191},_0x273d56,_0x3195e1){const _0x5ac9d4=_0x4c3996,_0x3a82ca=_0x190191+'/opcua-for-node-red',_0x446c6b=_0x3a82ca+'/browse',_0x1742c2=Object[_0x5ac9d4(0x13d)](Object[_0x5ac9d4(0x13d)]({},_0x3195e1),{'nodeId':_0x273d56,'resultMask':0x3f}),_0x15be83=yield fetch(_0x446c6b,{'method':'POST','body':JSON[_0x5ac9d4(0xc2)]({'endpointNode':_0x29bc9d,'endpoint':_0x5ad22b,'browseDescription':_0x1742c2}),'headers':{'Content-Type':_0x5ac9d4(0x1ab)}});if(_0x15be83[_0x5ac9d4(0xdb)]!==0xc8)return console[_0x5ac9d4(0x125)](_0x5ac9d4(0x11a),_0x15be83[_0x5ac9d4(0xdb)],_0x15be83[_0x5ac9d4(0x194)]),{'references':[]};const _0x2c176a=yield _0x15be83[_0x5ac9d4(0xff)](),_0x2c98d1=_0x2c176a[_0x5ac9d4(0x154)][_0x5ac9d4(0xcf)]||[];return{'references':_0x2c98d1};}),_0x4bd0a2={'referenceTypeId':_0x4428ea(_0x4c3996(0x16a)),'includeSubtypes':!![],'browseDirection':_0x1b60b3[_0x4c3996(0xc3)],'nodeClassMask':_0x135d5a[_0x4c3996(0x1bf)]|_0x135d5a[_0x4c3996(0x144)]|_0x135d5a[_0x4c3996(0x146)],'resultMask':0x3f},_0x41cce9={'referenceTypeId':_0x4428ea(_0x4c3996(0x157)),'includeSubtypes':!![],'browseDirection':_0x1b60b3[_0x4c3996(0xc3)],'nodeClassMask':_0x135d5a[_0x4c3996(0x1bf)]|_0x135d5a[_0x4c3996(0x144)]|_0x135d5a[_0x4c3996(0x146)],'resultMask':0x3f},_0x446711=(_0x16753d,_0x391ce1)=>_0x14f326(void 0x0,[_0x16753d,_0x391ce1],void 0x0,function*({endpointNode:_0x4ffc94,endpoint:_0x570998,baseUrl:_0x267264},{nodeId:_0x286850,rootNodeId:_0x5b222d,isType:_0x485a9a}){const _0x3ebb02=_0x4c3996,_0x23a929=_0x267264+_0x3ebb02(0x123),_0x333806=_0x23a929+_0x3ebb02(0x81),_0x6971f4=yield fetch(_0x333806,{'method':'POST','body':JSON[_0x3ebb02(0xc2)]({'endpointNode':_0x4ffc94,'endpoint':_0x570998,'nodeId':_0x286850,'rootNodeId':_0x5b222d,'isType':_0x485a9a}),'headers':{'Content-Type':_0x3ebb02(0x1ab)}});if(_0x6971f4[_0x3ebb02(0xdb)]!==0xc8)return null;const _0x2f4edb=yield _0x6971f4[_0x3ebb02(0xff)]();return _0x2f4edb['browsePath'];}),_0x3b8773=(_0x401dd7,_0x56d72f)=>{const _0x3041f0=_0x4c3996;if(_0x401dd7[_0x3041f0(0x14c)]!=='Good')return _0x401dd7[_0x3041f0(0x177)];switch(_0x56d72f){case _0x3041f0(0xc6):return _0x401dd7[_0x3041f0(0x167)];case'aliasedBrowsePath':return _0x401dd7[_0x3041f0(0x16c)]||_0x401dd7[_0x3041f0(0x167)];case _0x3041f0(0x185):return _0x401dd7[_0x3041f0(0xb5)]||_0x401dd7[_0x3041f0(0x14a)];case _0x3041f0(0x104):return _0x401dd7['nodeId_nsu'];default:case _0x3041f0(0x156):return _0x401dd7[_0x3041f0(0x156)];}},_0x45c3fa=_0x5ab3b6=>{const _0x2d9c57=_0x4c3996;if(_0x5ab3b6[_0x2d9c57(0x14c)]!==_0x2d9c57(0xed))return _0x2d9c57(0x183)+_0x5ab3b6['statusCode'];else{let _0x558dac=[];return _0x558dac[_0x2d9c57(0xa4)](_0x2d9c57(0xf8)+_0x5ab3b6[_0x2d9c57(0x156)]),_0x558dac[_0x2d9c57(0xa4)]('browse\x20path:\x20'+_0x5ab3b6[_0x2d9c57(0x167)]),_0x558dac[_0x2d9c57(0xa4)](_0x2d9c57(0xe6)+_0x135d5a[_0x5ab3b6[_0x2d9c57(0x14e)]]),_0x5ab3b6[_0x2d9c57(0x14a)]&&_0x558dac['push']('nsu\x20nodeId:\x20'+_0x5ab3b6[_0x2d9c57(0x14a)]),_0x5ab3b6[_0x2d9c57(0xb5)]&&_0x558dac[_0x2d9c57(0xa4)](_0x2d9c57(0xd0)+_0x5ab3b6[_0x2d9c57(0xb5)]),_0x5ab3b6[_0x2d9c57(0x167)]&&_0x558dac[_0x2d9c57(0xa4)](_0x2d9c57(0xdf)+_0x5ab3b6[_0x2d9c57(0x16c)]),_0x558dac[_0x2d9c57(0x19e)]('\x0a');}};function _0x5f5bcf(_0x2b644f){const _0x3cd681=_0x4c3996;if(_0x2b644f[_0x3cd681(0xaf)](/^nsu=/))return _0x3cd681(0x104);if(_0x2b644f['match'](/^(ns=.*;)?(i|b|s|g)=/))return _0x3cd681(0x156);if(_0x2b644f['match'](/^nsa=/))return _0x3cd681(0x185);if(_0x2b644f['match'](/^(\/|\.)[0-9]+:/))return _0x3cd681(0xc6);if(_0x2b644f[_0x3cd681(0xaf)](/^(\/|\.).*:/))return'browsePath';}function _0xf37d18(_0x4f33ca){const _0x478465=_0x4c3996,_0x3ab4f4=_0x5f5bcf(_0x4f33ca);switch(_0x3ab4f4){case _0x478465(0x156):return'n';case'aliasedNodeId':return'na';case _0x478465(0x104):return _0x478465(0x18c);case _0x478465(0xc6):return'b';case _0x478465(0x120):return'ab';default:return't';}}function _0x26c8a2(_0x32cfe0){const _0x21cd20=_0x4c3996;let _0x40a930;switch(_0x32cfe0){case'n':_0x40a930='nodeId';break;case'na':_0x40a930=_0x21cd20(0x185);break;case _0x21cd20(0x18c):_0x40a930=_0x21cd20(0x104);break;case'b':_0x40a930=_0x21cd20(0xc6);break;case'ab':_0x40a930=_0x21cd20(0x120);break;}return _0x40a930;}function _0x124493(_0x190f1e){const _0x14c7a5=_0x4c3996;switch(_0x190f1e){case _0x14c7a5(0x156):return'n';case _0x14c7a5(0x185):return'na';case _0x14c7a5(0x104):return'nsu';case _0x14c7a5(0xc6):return'b';case _0x14c7a5(0x120):return'ab';default:return't';}}const _0x1d29a1=(_0x343e3e,_0xba6d30)=>_0x14f326(void 0x0,[_0x343e3e,_0xba6d30],void 0x0,function*({endpointNode:_0x315a68,endpoint:_0x23873a,baseUrl:_0x1a0d9d},_0x2a067c){const _0x79f09e=_0x4c3996,_0x5a174c=_0x1a0d9d+_0x79f09e(0x123),_0x48e8b4=_0x5a174c+_0x79f09e(0x106),_0x49693c=_0x315a68['id'],_0x17f3ba=RED[_0x79f09e(0xe5)][_0x79f09e(0x18f)](_0x49693c);console[_0x79f09e(0x125)](_0x17f3ba[_0x79f09e(0x155)]),_0x17f3ba[_0x79f09e(0x155)];const _0x555cb7=_0x315a68['namespaceAliases'],_0x379309=yield fetch(_0x48e8b4,{'method':'POST','body':JSON['stringify']({'endpointNode':_0x315a68,'endpoint':_0x23873a,'nodeId':_0x2a067c,'namespaceAliases':_0x555cb7}),'headers':{'Content-Type':_0x79f09e(0x1ab)}}),_0x4f027b=yield _0x379309[_0x79f09e(0xff)]();return{'json':_0x4f027b,'data':_0x379309};}),_0x27c9f2=(_0x146476,_0x1f8940,_0x42a6c8,_0x593faf)=>_0x14f326(void 0x0,[_0x146476,_0x1f8940,_0x42a6c8,_0x593faf],void 0x0,function*({endpointNode:_0x58f78c,endpoint:_0x403189,baseUrl:_0x64a758},_0x30246f,_0x1167c7,_0x1fa62d){const _0x376244=_0x4c3996,_0x513536=_0x1167c7[_0x376244(0x10c)](),{json:_0x1b7169,data:_0x1d7fe3}=yield _0x1d29a1({'endpointNode':_0x58f78c,'endpoint':_0x403189,'baseUrl':_0x64a758},_0x513536),_0x10740f=(_0x581cb3,_0x4eae2a)=>{const _0x21adbe=_0x376244;_0x1fa62d[_0x21adbe(0xc8)](_0x581cb3)[_0x21adbe(0xf1)](_0x21adbe(0xb4))[_0x21adbe(0xf1)](_0x4eae2a),_0x1fa62d['show'](),setTimeout(()=>{const _0x50cf3e=_0x21adbe;_0x1fa62d[_0x50cf3e(0xeb)](_0x4eae2a),_0x1fa62d[_0x50cf3e(0x148)]();},0xbb8);};if(_0x1d7fe3[_0x376244(0xdb)]!==0xc8)return _0x10740f('!!failure!!'+_0x513536,_0x376244(0xfa)),![];else{if(_0x1b7169[_0x376244(0x14c)]['match'](/Good/)){const _0xee4880=_0x45c3fa(_0x1b7169);_0x1167c7[_0x376244(0x116)](_0x376244(0x17e),_0xee4880);const _0x1eae75=_0x3b8773(_0x1b7169,_0x30246f);return _0x1167c7[_0x376244(0x10c)](_0x1eae75),_0x1167c7[_0x376244(0x9e)](_0x376244(0x175)),_0x10740f('Good','ok'),!![];}else return _0x1167c7[_0x376244(0x10c)](''+_0x513536),_0x10740f(_0x1b7169['statusCode']+'\x20'+_0x1d7fe3[_0x376244(0x194)],_0x376244(0xfa)),![];}});function _0x4e7e30(_0x5096b8,_0x5817a1){return _0x14f326(this,void 0x0,void 0x0,function*(){const _0x24f13b=_0x572c,_0x41020d=_0x5096b8[_0x24f13b(0x193)](_0x24f13b(0x188)),_0xd45d06=yield _0x4e0b21(_0x5817a1,_0x41020d,_0x4bd0a2),_0x33d7d7=yield _0x4e0b21(_0x5817a1,_0x41020d,_0x41cce9);return{'references':[..._0xd45d06[_0x24f13b(0xcf)],..._0x33d7d7[_0x24f13b(0xcf)]]};});}const _0x1b51a7={'referenceTypeId':_0x4428ea(_0x4c3996(0x95)),'includeSubtypes':!![],'browseDirection':_0x1b60b3['Forward'],'nodeClassMask':_0x135d5a[_0x4c3996(0xa7)]|_0x135d5a[_0x4c3996(0xb1)]|_0x135d5a['DataType']|_0x135d5a[_0x4c3996(0xad)],'resultMask':0x3f};function _0x59c5de(_0x3133f1,_0x26f84e){return _0x14f326(this,void 0x0,void 0x0,function*(){const _0x222b98=_0x572c,_0x580b18=_0x3133f1[_0x222b98(0x193)]('value'),_0x45ad57=yield _0x4e0b21(_0x26f84e,_0x580b18,_0x1b51a7);return _0x45ad57;});}const _0x4e5bd4=_0x4f2a7e=>{const _0x1e5885=_0x4c3996;var _0x29c41b,_0x27d29e,_0x169e9f,_0x4d611e;if(!_0x4f2a7e||!_0x4f2a7e['nodeId']){const _0x4935f6=$(_0x1e5885(0x153));return _0x4935f6;}const _0x183220=_0x4f2a7e[_0x1e5885(0x156)][_0x1e5885(0x102)](),_0x3c0282=((_0x29c41b=_0x4f2a7e[_0x1e5885(0x13c)])===null||_0x29c41b===void 0x0?void 0x0:_0x29c41b['text'])||((_0x27d29e=_0x4f2a7e[_0x1e5885(0x10f)])===null||_0x27d29e===void 0x0?void 0x0:_0x27d29e[_0x1e5885(0x1aa)])||_0x4f2a7e[_0x1e5885(0x156)][_0x1e5885(0x102)](),{icon:_0x1ceb69,color:_0x43494d}=_0x595b30(_0x4f2a7e),_0x4ae6af='('+_0x4f2a7e[_0x1e5885(0x156)][_0x1e5885(0x102)]()+')\x20'+(((_0x169e9f=_0x4f2a7e[_0x1e5885(0x10f)])===null||_0x169e9f===void 0x0?void 0x0:_0x169e9f['name'])||((_0x4d611e=_0x4f2a7e[_0x1e5885(0x13c)])===null||_0x4d611e===void 0x0?void 0x0:_0x4d611e[_0x1e5885(0xc8)])||''),_0x3deee7=$(_0x1e5885(0xb0)+_0x4f2a7e[_0x1e5885(0x156)][_0x1e5885(0x102)]()+_0x1e5885(0xca)+_0x4ae6af+_0x1e5885(0x100)+_0x1ceb69+_0x1e5885(0x191)+_0x43494d+';\x22></i>\x20'+_0x3c0282+'</span><ul></ul></li>');return _0x3deee7[_0x1e5885(0xf1)]('expandable'),_0x3deee7[_0x1e5885(0x193)](_0x1e5885(0x188),_0x183220),_0x3deee7[_0x1e5885(0x193)](_0x1e5885(0xe0),_0x4f2a7e),_0x3deee7;},_0x4778ee=(_0x5097f0,_0x52335a)=>{const _0x79ebb8=_0x4c3996;return _0x52335a['find'](_0x79ebb8(0x13f)+_0x5097f0+'\x22]');},_0x146bb5=(_0x39cbdc,_0x4ebbbc)=>{const _0x4a1062=_0x4c3996;_0x39cbdc[_0x4a1062(0xa5)][_0x4a1062(0xcb)](_0x4a1062(0x140))[_0x4a1062(0xeb)](_0x4a1062(0x1bd)),_0x4ebbbc[_0x4a1062(0xcb)](_0x4a1062(0x8e))[_0x4a1062(0xf1)](_0x4a1062(0x1bd));},_0x24e6f9=(_0x3826d1,_0x2eb7e3,_0x56df86)=>_0x14f326(void 0x0,void 0x0,void 0x0,function*(){const _0x31e102=_0x4c3996;let _0x29dac1=_0x56df86[_0x31e102(0xf6)](_0x31e102(0x136));_0x2eb7e3[_0x31e102(0x11e)][_0x31e102(0x11b)]||[];const _0x32f821=_0x2eb7e3['nodeIds']||[];if(_0x32f821[_0x31e102(0x94)]===0x0)return;for(const _0x33d1f5 of _0x32f821){_0x29dac1[_0x31e102(0x199)](_0x31e102(0xbf))&&(yield _0x3e7936(_0x3826d1,_0x29dac1));const _0x5af777=_0x4778ee(_0x33d1f5,_0x29dac1);if(_0x5af777[_0x31e102(0x94)]===0x0)return;_0x29dac1=_0x5af777;}_0x146bb5(_0x3826d1,_0x29dac1),_0x2313a1(_0x3826d1['$dropdown'],_0x29dac1);});function _0x2313a1(_0x76aef3,_0x2e1623){const _0x1211de=_0x4c3996,_0x540ebc=_0x2e1623[_0x1211de(0xe3)]()['top'],_0x2fadf1=_0x76aef3[_0x1211de(0x14b)]();if(_0x2fadf1==undefined)return;const _0x302ccd=_0x2fadf1+_0x540ebc-_0x76aef3['height']()/0x2+_0x2e1623['height']()/0x2;_0x76aef3[_0x1211de(0x1b4)]({'scrollTop':_0x302ccd},0x1f4);}const _0x28a75a=(_0x44a27c,_0x51c287)=>_0x14f326(void 0x0,void 0x0,void 0x0,function*(){const _0x3743b4=_0x4c3996,_0x266781=_0x44a27c[_0x3743b4(0x1b7)][_0x3743b4(0x10c)](),_0x50e778={'nodeId':_0x266781,'rootNodeId':_0x51c287['nodeId'],'isType':_0x44a27c[_0x3743b4(0x197)][_0x3743b4(0xf2)]||![]},_0xc9791c=_0x324751(_0x44a27c),_0x484d39=yield _0x446711(_0xc9791c,_0x50e778);if(!_0x484d39)return;yield _0x24e6f9(_0x44a27c,_0x484d39,_0x44a27c[_0x3743b4(0xa5)]);});function _0x537c67(_0x3f1379,_0x86976a,_0x430fe0,_0x21d737){return _0x14f326(this,void 0x0,void 0x0,function*(){const _0x4cca6c=_0x572c;if(_0x86976a[_0x4cca6c(0x199)](_0x4cca6c(0xa8))){console['log']('already\x20fetched');return;}if(_0x86976a['hasClass'](_0x4cca6c(0x114))){console[_0x4cca6c(0x125)](_0x4cca6c(0x1be));return;}_0x86976a[_0x4cca6c(0xf1)](_0x4cca6c(0x114)),_0x86976a[_0x4cca6c(0x17a)](_0x4cca6c(0x86));try{_0x86976a[_0x4cca6c(0xf6)]('ul')[_0x4cca6c(0x139)]();const {references:_0x4782e0}=yield _0x430fe0(_0x86976a,_0x21d737);_0x4782e0[_0x4cca6c(0x18d)]((_0x4ccb07,_0x312409)=>{const _0xe72dcb=_0x4cca6c;var _0x2e9132,_0x3cb3b3;return(((_0x2e9132=_0x4ccb07[_0xe72dcb(0x10f)])===null||_0x2e9132===void 0x0?void 0x0:_0x2e9132[_0xe72dcb(0x1aa)])||'')[_0xe72dcb(0x192)](((_0x3cb3b3=_0x312409[_0xe72dcb(0x10f)])===null||_0x3cb3b3===void 0x0?void 0x0:_0x3cb3b3[_0xe72dcb(0x1aa)])||'');});for(const _0x320e95 of _0x4782e0){if(_0x3f1379[_0x4cca6c(0x197)][_0x4cca6c(0x1c0)]&&!_0x3f1379[_0x4cca6c(0x197)][_0x4cca6c(0x1c0)](_0x320e95))continue;const _0x2aedc4=_0x4e5bd4(_0x320e95);_0x86976a[_0x4cca6c(0xf6)]('ul')[_0x4cca6c(0x17a)](_0x2aedc4);}_0x86976a[_0x4cca6c(0xf1)]('fetched');}catch(_0x5bbf26){_0x86976a[_0x4cca6c(0xf6)]('ul')[_0x4cca6c(0x17a)](_0x4cca6c(0xb8)+_0x5bbf26[_0x4cca6c(0x17b)]+_0x4cca6c(0xae)),console[_0x4cca6c(0x125)]('err',_0x5bbf26);}_0x86976a[_0x4cca6c(0xcb)](_0x4cca6c(0x128))[_0x4cca6c(0x17d)](),_0x86976a[_0x4cca6c(0xeb)](_0x4cca6c(0x114));});}function _0x324751(_0x169dbe){const _0x2d9582=_0x4c3996,_0x1c5a0f={'baseUrl':_0x169dbe[_0x2d9582(0x197)][_0x2d9582(0x85)],'endpointNode':typeof _0x169dbe['options'][_0x2d9582(0x99)]==='function'?_0x169dbe[_0x2d9582(0x197)][_0x2d9582(0x99)]():_0x169dbe['options'][_0x2d9582(0x99)],'endpoint':typeof _0x169dbe[_0x2d9582(0x197)][_0x2d9582(0x10a)]===_0x2d9582(0xc4)?_0x169dbe[_0x2d9582(0x197)][_0x2d9582(0x10a)]():_0x169dbe['options'][_0x2d9582(0x10a)]};return _0x1c5a0f;}function _0x3e7936(_0x53f52d,_0x516c58){return _0x14f326(this,void 0x0,void 0x0,function*(){const _0x4f3e6a=_0x572c;if(_0x516c58[_0x4f3e6a(0x199)](_0x4f3e6a(0xa8))){_0x516c58['removeClass']('expandable')[_0x4f3e6a(0xf1)](_0x4f3e6a(0x196)),_0x516c58[_0x4f3e6a(0xf6)]('ul')[_0x4f3e6a(0x84)]();return;}const _0x490976=_0x324751(_0x53f52d),_0x50d898=!_0x53f52d[_0x4f3e6a(0x197)]['isTypeRef']?_0x4e7e30:_0x59c5de;try{yield _0x537c67(_0x53f52d,_0x516c58,_0x50d898,_0x490976),_0x516c58[_0x4f3e6a(0xeb)](_0x4f3e6a(0xbf))[_0x4f3e6a(0xf1)]('expanded');}catch(_0x219d5c){_0x516c58['removeClass'](_0x4f3e6a(0xbf))['addClass'](_0x4f3e6a(0x196)),console[_0x4f3e6a(0x125)](_0x4f3e6a(0x179),_0x219d5c);}});}const _0x1c39c2={'browseName':{'namespaceIndex':0x0,'name':'Objects'},'nodeClass':_0x4c3996(0x144),'nodeId':'ns=0;i=85','displayName':{'text':_0x4c3996(0x1ad)},'typeDefinition':_0x5d562f},_0x26ec90=()=>{const _0x2bdb36=_0x4c3996;$[_0x2bdb36(0x97)](_0x2bdb36(0x13e),{'options':{'endpointNode':()=>({'endpoint':'opc.tcp://opcuademo.sterfive.com:26543'}),'endpoint':()=>undefined,'parentNode':()=>_0x1c39c2,'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x14f326(this,void 0x0,void 0x0,function*(){const _0x2dd107=_0x572c,_0x16365f=this;if(_0x16365f[_0x2dd107(0xc0)]==undefined){const _0x491214=typeof _0x16365f[_0x2dd107(0x197)][_0x2dd107(0xbd)]===_0x2dd107(0xc4)?_0x16365f[_0x2dd107(0x197)][_0x2dd107(0xbd)][_0x2dd107(0xa9)](_0x16365f):_0x16365f[_0x2dd107(0x197)][_0x2dd107(0xbd)];if(_0x491214 instanceof Promise){const _0x24827f=yield _0x491214;_0x16365f[_0x2dd107(0xc0)]=_0x24827f;}else _0x16365f[_0x2dd107(0xc0)]=_0x491214;}return _0x16365f[_0x2dd107(0xc0)]||_0x1c39c2;});},'reset'(){return _0x14f326(this,void 0x0,void 0x0,function*(){const _0x5ab110=_0x572c,_0x445f9a=this,_0x4314dd=_0x445f9a;_0x4314dd[_0x5ab110(0xc0)]=undefined,_0x445f9a[_0x5ab110(0xa5)][_0x5ab110(0x139)]();const _0xbef4=yield this[_0x5ab110(0xde)](),_0x2895a6=_0x4e5bd4(_0xbef4);_0x445f9a[_0x5ab110(0xa5)][_0x5ab110(0x17a)](_0x2895a6),_0x445f9a[_0x5ab110(0x16b)]=_0xbef4;});},'verify'(_0x2fd46f){const _0x4e3320=_0x2bdb36,_0x4ac59a=this,_0x470ce4=_0x324751(_0x4ac59a);_0x27c9f2(_0x470ce4,_0x2fd46f,_0x4ac59a[_0x4e3320(0x1b7)],_0x4ac59a[_0x4e3320(0x1b1)])[_0x4e3320(0xd9)](_0x4373e9=>{const _0x293136=_0x4e3320;!_0x4373e9?_0x4ac59a[_0x293136(0x15c)][_0x293136(0xf1)]('input-error'):_0x4ac59a[_0x293136(0x15c)][_0x293136(0xeb)](_0x293136(0x105));});},'_hideMenu'(_0x478609){const _0x189325=_0x2bdb36,_0x2d2caa=this;$(document)[_0x189325(0x15f)]('mousedown.red-ui-typedInput-close-property-select'),_0x478609[_0x189325(0x148)](),_0x478609[_0x189325(0x18e)]({'height':_0x189325(0x98)});if(_0x478609[_0x189325(0x88)][_0x189325(0x149)]){var _0x813c2e=[];_0x478609[_0x189325(0xcb)]('input[type=\x22checkbox\x22]')[_0x189325(0x150)](function(){const _0x50e467=_0x189325;$(this)[_0x50e467(0xab)]('checked')&&_0x813c2e[_0x50e467(0xa4)]($(this)['data']('value'));}),_0x478609['callback'](_0x813c2e);}_0x2d2caa[_0x189325(0x1a1)]['is'](_0x189325(0x132))?_0x2d2caa[_0x189325(0x1b7)][_0x189325(0x9e)](_0x189325(0xee)):_0x2d2caa['$selectTrigger'][_0x189325(0x9e)](_0x189325(0xee));},'_createMenu'(_0x5ddf36,_0x2dc17e,_0x315a61){const _0x373474=_0x2bdb36;var _0x34d7fa=this;const _0x42bc63=$(_0x373474(0x15e))[_0x373474(0xf1)](_0x373474(0xce));return _0x42bc63[_0x373474(0x88)]=_0x2dc17e,_0x42bc63[_0x373474(0x110)]=_0x315a61,_0x5ddf36['forEach'](_0x2df604=>{const _0x590b49=_0x373474;typeof _0x2df604==='string'&&(_0x2df604={'value':_0x2df604,'label':_0x2df604});var _0x2b32f4=$(_0x590b49(0x93))[_0x590b49(0x116)](_0x590b49(0x188),_0x2df604[_0x590b49(0x188)])[_0x590b49(0x164)](_0x42bc63);_0x2df604['label']&&_0x2b32f4[_0x590b49(0xc8)](_0x2df604[_0x590b49(0x1b3)]);_0x2df604['title']&&_0x2b32f4[_0x590b49(0xab)](_0x590b49(0x17e),_0x2df604['title']);if(_0x2df604[_0x590b49(0x198)]){if(_0x2df604[_0x590b49(0x198)][_0x590b49(0xbb)]('<')===0x0)$(_0x2df604[_0x590b49(0x198)])[_0x590b49(0x168)](_0x2b32f4);else _0x2df604['icon'][_0x590b49(0xbb)]('/')!==-0x1?$(_0x590b49(0x147),{'class':_0x590b49(0x13b),'style':_0x590b49(0x174)+_0x2df604[_0x590b49(0x198)]+');\x20-webkit-mask-image:\x20url('+_0x2df604[_0x590b49(0x198)]+');'})[_0x590b49(0x168)](_0x2b32f4):$(_0x590b49(0x147),{'class':_0x590b49(0xa0)+_0x2df604[_0x590b49(0x198)]})['prependTo'](_0x2b32f4);}else _0x2b32f4[_0x590b49(0x18e)]({'paddingLeft':_0x590b49(0x16f)});!_0x2df604[_0x590b49(0x198)]&&!_0x2df604[_0x590b49(0x1b3)]&&_0x2b32f4[_0x590b49(0xc8)](_0x2df604[_0x590b49(0x188)]);var _0x5aa77c;_0x2dc17e[_0x590b49(0x149)]&&(_0x5aa77c=$('<input\x20type=\x22checkbox\x22>')[_0x590b49(0x18e)](_0x590b49(0x107),_0x590b49(0x19f))[_0x590b49(0x193)](_0x590b49(0x188),_0x2df604[_0x590b49(0x188)])[_0x590b49(0x168)](_0x2b32f4)['on'](_0x590b49(0x83),function(_0x28c18e){_0x28c18e['preventDefault']();})),_0x2b32f4['on'](_0x590b49(0x15d),function(_0x55f53a){const _0x45f6a5=_0x590b49;_0x55f53a[_0x45f6a5(0x96)](),_0x55f53a[_0x45f6a5(0x8c)](),!_0x2dc17e[_0x45f6a5(0x149)]?(_0x315a61(_0x2df604[_0x45f6a5(0x188)]),_0x34d7fa[_0x45f6a5(0x87)](_0x42bc63)):_0x5aa77c[_0x45f6a5(0xab)](_0x45f6a5(0x126),!_0x5aa77c[_0x45f6a5(0xab)]('checked'));});}),_0x42bc63[_0x373474(0x18e)]({'display':_0x373474(0x19f)}),_0x42bc63['on']('keydown',function(_0x4eec20){const _0x3b4287=_0x373474;if(_0x4eec20['keyCode']===0x28)_0x4eec20['preventDefault'](),$(this)[_0x3b4287(0xf6)](_0x3b4287(0x9b))[_0x3b4287(0x16d)]()[_0x3b4287(0x9e)]('focus');else{if(_0x4eec20['keyCode']===0x26)_0x4eec20[_0x3b4287(0x96)](),$(this)[_0x3b4287(0xf6)](_0x3b4287(0x9b))['prev']()[_0x3b4287(0x9e)](_0x3b4287(0xee));else _0x4eec20[_0x3b4287(0xbe)]===0x1b&&(_0x4eec20[_0x3b4287(0x96)](),_0x34d7fa[_0x3b4287(0x87)](_0x42bc63));}_0x4eec20[_0x3b4287(0x8c)]();}),_0x42bc63;},'disarmClick':![],'_showMenu'(_0x1ead12,_0x5181d1){const _0x22317d=_0x2bdb36;if(this[_0x22317d(0x162)]){this[_0x22317d(0x162)]=![];return;}var _0x392d19=this,_0x50b409=_0x5181d1[_0x22317d(0x143)](),_0x3b83f3=_0x5181d1[_0x22317d(0x9c)](),_0x1f19f7=_0x1ead12[_0x22317d(0x9c)](),_0xd6316a=_0x3b83f3+_0x50b409[_0x22317d(0xfb)];_0xd6316a+_0x1f19f7-$(document)[_0x22317d(0x14b)]()>$(window)[_0x22317d(0x9c)]()&&(_0xd6316a-=_0xd6316a+_0x1f19f7-$(window)[_0x22317d(0x9c)]()+0x5),_0xd6316a<0x0&&(_0x1ead12[_0x22317d(0x9c)](_0x1f19f7+_0xd6316a),_0xd6316a=0x0),_0x1ead12[_0x22317d(0x18e)]({'top':_0xd6316a+'px','left':_0x50b409[_0x22317d(0x18b)]+'px'}),_0x1ead12[_0x22317d(0x178)](0x64),this[_0x22317d(0xa6)](function(){const _0x4e82c2=_0x22317d;_0x392d19[_0x4e82c2(0x82)][_0x4e82c2(0xf1)]('red-ui-typedInput-focus'),$(document)['on']('mousedown.red-ui-typedInput-close-property-select',function(_0x5f5231){const _0x5eba08=_0x4e82c2;!$(_0x5f5231['target'])[_0x5eba08(0x14f)](_0x1ead12)[_0x5eba08(0x94)]&&_0x392d19[_0x5eba08(0x87)](_0x1ead12),$(_0x5f5231[_0x5eba08(0x130)])[_0x5eba08(0x14f)](_0x5181d1)['length']&&(_0x392d19[_0x5eba08(0x162)]=!![],_0x5f5231[_0x5eba08(0x96)]());});});},'_showTypeMenu'(){const _0x271120=_0x2bdb36,_0x3a487f=this;this[_0x271120(0xd8)](_0x3a487f[_0x271120(0x15a)],_0x3a487f[_0x271120(0x15c)]),_0x3a487f['$dropdown'][_0x271120(0x148)]();const _0x26322c=_0x3a487f[_0x271120(0x18a)];var _0x3d763b=_0x3a487f[_0x271120(0x15a)][_0x271120(0xcb)](_0x271120(0xc1)+_0x26322c+'\x27');setTimeout(function(){const _0x3875ed=_0x271120;_0x3d763b[_0x3875ed(0x9e)](_0x3875ed(0xee));},0x78);},'_initMenu'(){const _0x3c2d17=_0x2bdb36,_0x332e3c=this;_0x332e3c[_0x3c2d17(0x127)][_0x3c2d17(0x116)](_0x3c2d17(0x1a7),-0x1),_0x332e3c[_0x3c2d17(0x127)]['on'](_0x3c2d17(0x187),function(_0x5b3ea5){const _0x31a5f3=_0x3c2d17;_0x5b3ea5[_0x31a5f3(0x96)]();});_0x332e3c[_0x3c2d17(0x15a)]&&_0x332e3c['$menu'][_0x3c2d17(0x17d)]();const _0x5a3f2e=[{'label':'text','value':'t','title':'Value\x20is\x20not\x20verified','icon':'<i\x20class=\x22fa\x20fa-font\x22/i>\x20'},{'label':_0x3c2d17(0x91),'value':'msg','title':_0x3c2d17(0x117),'icon':_0x3c2d17(0x1ba)},{'label':_0x3c2d17(0xa2),'value':'n','icon':'<i\x20class=\x22fa\x20fa-tag\x22/>1\x20&nbsp;\x20'},{'label':_0x3c2d17(0xfc),'value':'na','icon':_0x3c2d17(0x195)},{'label':_0x3c2d17(0x1a2),'value':_0x3c2d17(0x18c),'icon':'<i\x20class=\x22fa\x20fa-id-card\x22/>&nbsp;\x20'},{'label':'BrowsePath','value':'b','icon':_0x3c2d17(0x173)},{'label':'Aliased\x20Browse\x20Path','value':'ab','icon':_0x3c2d17(0xef)}],_0x3fb3f7=_0xf37d18(_0x332e3c[_0x3c2d17(0x1b7)]['val']()),_0x28779e=_0x5a3f2e['find'](_0x4116aa=>_0x4116aa[_0x3c2d17(0x188)]===_0x3fb3f7);_0x332e3c[_0x3c2d17(0xbc)][_0x3c2d17(0x139)]()['append'](_0x3c2d17(0x12b)+((_0x28779e===null||_0x28779e===void 0x0?void 0x0:_0x28779e[_0x3c2d17(0x17e)])||'')+_0x3c2d17(0xc9)+((_0x28779e===null||_0x28779e===void 0x0?void 0x0:_0x28779e[_0x3c2d17(0x198)])||'')+'</span>'),_0x332e3c[_0x3c2d17(0x18a)]=_0x3fb3f7;const _0x4cd9bd=this;_0x332e3c[_0x3c2d17(0x15a)]=this[_0x3c2d17(0xd1)](_0x5a3f2e,{},_0x52644b=>{const _0x1ce231=_0x3c2d17,_0x29fad8=_0x26c8a2(_0x52644b);_0x29fad8&&_0x4cd9bd[_0x1ce231(0x163)](_0x29fad8);const _0x421b07=_0x5a3f2e[_0x1ce231(0xcb)](_0x2ecc86=>_0x2ecc86[_0x1ce231(0x188)]===_0x52644b);_0x332e3c[_0x1ce231(0x18a)]=_0x52644b,_0x332e3c[_0x1ce231(0xbc)][_0x1ce231(0x139)]()[_0x1ce231(0x17a)](_0x1ce231(0x12b)+((_0x421b07===null||_0x421b07===void 0x0?void 0x0:_0x421b07[_0x1ce231(0x17e)])||'')+_0x1ce231(0xc9)+((_0x421b07===null||_0x421b07===void 0x0?void 0x0:_0x421b07['icon'])||'')+_0x1ce231(0x1ae));}),_0x332e3c[_0x3c2d17(0x15a)][_0x3c2d17(0x164)](document[_0x3c2d17(0xb7)]),_0x332e3c[_0x3c2d17(0x15a)][_0x3c2d17(0x148)](),_0x332e3c['$selectTrigger'][_0x3c2d17(0x141)]();},'mode'(){const _0x253131=this;return _0x26c8a2(_0x253131['selectedMenuItem']);},'setMode'(_0x530fa4){const _0x654d54=_0x2bdb36,_0x486c6d=this,_0x233106=_0x124493(_0x530fa4);_0x486c6d[_0x654d54(0x18a)]=_0x233106;},'_create'(){const _0x5f34a0=_0x2bdb36,_0x3477a3=this;_0x3477a3[_0x5f34a0(0x1b7)]=this['element'],_0x3477a3[_0x5f34a0(0x1b7)][_0x5f34a0(0x18e)](_0x5f34a0(0xe2),_0x5f34a0(0x19f)),_0x3477a3[_0x5f34a0(0x1a1)]=_0x3477a3[_0x5f34a0(0x1b7)][_0x5f34a0(0x160)](_0x5f34a0(0x15e))['parent']()[_0x5f34a0(0xf1)]('main-wrapper'),_0x3477a3[_0x5f34a0(0x15c)]=$('<div/>'),_0x3477a3[_0x5f34a0(0x15c)][_0x5f34a0(0xf1)]('sterfive-combo-box'),_0x3477a3[_0x5f34a0(0x1b7)]['replaceWith'](_0x3477a3[_0x5f34a0(0x15c)]),_0x3477a3[_0x5f34a0(0x189)]=$('<div/>')[_0x5f34a0(0xf1)]('input-group'),_0x3477a3[_0x5f34a0(0x15c)][_0x5f34a0(0x17a)](_0x3477a3[_0x5f34a0(0x189)]),_0x3477a3['$inputGroup'][_0x5f34a0(0x17a)](_0x3477a3[_0x5f34a0(0x1b7)]),_0x3477a3[_0x5f34a0(0xea)]=$(_0x5f34a0(0xcc)),_0x3477a3[_0x5f34a0(0x1b7)]['after'](_0x3477a3[_0x5f34a0(0xea)]),_0x3477a3[_0x5f34a0(0xea)]['on'](_0x5f34a0(0x15d),function(){return _0x14f326(this,void 0x0,void 0x0,function*(){const _0x11dbd6=_0x572c;var _0xb99ebc;let _0x41a38b=![],_0x44d1a9;!_0x3477a3[_0x11dbd6(0xe1)]['is'](_0x11dbd6(0x132))&&(_0x3477a3[_0x11dbd6(0x1b1)][_0x11dbd6(0x148)](),_0x44d1a9=yield _0x3477a3[_0x11dbd6(0xde)](),(_0x44d1a9!==_0x3477a3['currentParent']||((_0xb99ebc=_0x3477a3[_0x11dbd6(0x16b)])===null||_0xb99ebc===void 0x0?void 0x0:_0xb99ebc['nodeId'])!==_0x44d1a9['nodeId'])&&(yield _0x3477a3[_0x11dbd6(0x180)]()),_0x41a38b=!![]),_0x3477a3['$dropdown'][_0x11dbd6(0x84)](),_0x41a38b&&(yield _0x28a75a(_0x3477a3,_0x44d1a9));});}),_0x3477a3[_0x5f34a0(0x16e)]=$(_0x5f34a0(0x152)),_0x3477a3[_0x5f34a0(0x1b7)][_0x5f34a0(0x1a8)](_0x3477a3[_0x5f34a0(0x16e)]),_0x3477a3[_0x5f34a0(0x16e)]['on'](_0x5f34a0(0x15d),()=>{const _0x1be726=_0x5f34a0,_0x425e02=_0x3477a3[_0x1be726(0x165)]();if(!_0x425e02)return;this[_0x1be726(0x163)](_0x425e02);});const _0x14530b=_0x4ab09d=>_0x14f326(this,void 0x0,void 0x0,function*(){const _0x5a978a=_0x5f34a0,_0x520bf6=this;let _0x4377a6=_0x520bf6[_0x5a978a(0x165)]();if(!_0x4377a6)return;const _0x518740=_0x324751(_0x520bf6),{data:_0x2a54fe,json:_0x40b400}=yield _0x1d29a1(_0x518740,_0x4ab09d);if(_0x2a54fe[_0x5a978a(0xdb)]!==0xc8)return;if(_0x40b400[_0x5a978a(0x14c)][_0x5a978a(0xaf)](/Good/)){const _0x57c024=_0x3b8773(_0x40b400,_0x4377a6);_0x520bf6[_0x5a978a(0x1b7)]['val'](_0x57c024),_0x520bf6[_0x5a978a(0x1b7)][_0x5a978a(0x9e)](_0x5a978a(0x175));}});{_0x3477a3[_0x5f34a0(0x82)]=$(_0x5f34a0(0x15e)),_0x3477a3[_0x5f34a0(0x1b7)]['before'](_0x3477a3[_0x5f34a0(0x82)]),_0x3477a3[_0x5f34a0(0x127)]=$(_0x5f34a0(0x1a0))[_0x5f34a0(0x168)](_0x3477a3[_0x5f34a0(0x82)]),$('<i\x20class=\x22red-ui-typedInput-icon\x20fa\x20fa-caret-down\x22></i>')[_0x5f34a0(0x84)](!![])[_0x5f34a0(0x164)](_0x3477a3['$selectTrigger']),_0x3477a3[_0x5f34a0(0x127)]['on'](_0x5f34a0(0x15d),function(_0x2b7dd9){const _0x58c193=_0x5f34a0;_0x2b7dd9[_0x58c193(0x96)](),_0x2b7dd9[_0x58c193(0x8c)](),_0x3477a3[_0x58c193(0x1b2)]();}),_0x3477a3[_0x5f34a0(0x127)]['on'](_0x5f34a0(0x19a),function(_0x586fc1){const _0x3bff51=_0x5f34a0;_0x586fc1['keyCode']===0x28&&_0x3477a3['_showTypeMenu'](),_0x586fc1[_0x3bff51(0x8c)]();})['on'](_0x5f34a0(0xee),function(){const _0x3c7194=_0x5f34a0;_0x3477a3[_0x3c7194(0x82)][_0x3c7194(0xf1)](_0x3c7194(0xf5));})['on'](_0x5f34a0(0xd4),function(){const _0x406e84=_0x5f34a0;_0x3477a3[_0x406e84(0x82)][_0x406e84(0xeb)]('red-ui-typedInput-focus');}),_0x3477a3['$selectLabel']=$('<span\x20class=\x22red-ui-typedInput-type-label\x22></span>')[_0x5f34a0(0x164)](_0x3477a3['$selectTrigger']);}this[_0x5f34a0(0xac)]();!_0x3477a3[_0x5f34a0(0x1b7)][_0x5f34a0(0x116)]('placeholder')&&_0x3477a3[_0x5f34a0(0x1b7)]['attr']('placeholder','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20');_0x3477a3[_0x5f34a0(0x1b1)]=$(_0x5f34a0(0x1a3)),_0x3477a3[_0x5f34a0(0x1b1)][_0x5f34a0(0x148)](),_0x3477a3[_0x5f34a0(0x15c)][_0x5f34a0(0x17a)](_0x3477a3[_0x5f34a0(0x1b1)]),_0x3477a3[_0x5f34a0(0xe1)]=$('<div/>')['addClass']('sterfive-dropdown')['hide']()['appendTo'](_0x3477a3['$combo']),_0x3477a3[_0x5f34a0(0xa5)]=$(_0x5f34a0(0x12d))[_0x5f34a0(0x164)](_0x3477a3['$dropdown']),this[_0x5f34a0(0x180)]();const _0x5da4d8=(_0x16d90c,_0x127322)=>{const _0x4507f1=_0x5f34a0,_0x309e2d=0x14,_0x5750b0=0x14,_0x411270=_0x16d90c['offset'](),_0x5e8d80=_0x127322;if(_0x5e8d80['pageX']>=_0x411270[_0x4507f1(0x18b)]&&_0x5e8d80[_0x4507f1(0x9f)]<=_0x411270[_0x4507f1(0x18b)]+_0x309e2d&&_0x5e8d80[_0x4507f1(0x13a)]>=_0x411270[_0x4507f1(0xfb)]&&_0x5e8d80[_0x4507f1(0x13a)]<=_0x411270[_0x4507f1(0xfb)]+_0x5750b0)return!![];return![];},_0x143fdc=_0x165672=>_0x14f326(this,void 0x0,void 0x0,function*(){const _0x553a92=_0x5f34a0;if(_0x165672['hasClass'](_0x553a92(0xbf)))_0x3e7936(_0x3477a3,_0x165672);else{if(_0x165672['hasClass'](_0x553a92(0x196)))_0x165672[_0x553a92(0xf6)]('ul')['toggle'](),_0x165672['toggleClass'](_0x553a92(0xfe));else{if(_0x165672[_0x553a92(0xf6)]('ul')['children']()[_0x553a92(0x94)]>0x0)_0x165672['children']('ul')[_0x553a92(0x84)](),_0x165672[_0x553a92(0x11f)](_0x553a92(0xfe));else;}}});_0x3477a3[_0x5f34a0(0xa5)]['on'](_0x5f34a0(0x190),'li',function(_0x1ca5d3){const _0x3f75bf=_0x5f34a0;var _0x49257f,_0x776383;_0x1ca5d3[_0x3f75bf(0x8c)]();let _0x175030=$(this);if(_0x5da4d8(_0x175030,_0x1ca5d3))_0x143fdc(_0x175030);else{const _0x5b1410=_0x175030[_0x3f75bf(0x193)]('value'),_0x598819=_0x175030[_0x3f75bf(0x193)]('reference');if(_0x3477a3[_0x3f75bf(0x197)][_0x3f75bf(0xc7)]&&!_0x3477a3['options']['isSelectable'](_0x598819))return;_0x3477a3['$input'][_0x3f75bf(0x193)]('reference',_0x598819),((_0x49257f=_0x598819['displayName'])===null||_0x49257f===void 0x0?void 0x0:_0x49257f[_0x3f75bf(0xc8)])||((_0x776383=_0x598819[_0x3f75bf(0x10f)])===null||_0x776383===void 0x0?void 0x0:_0x776383[_0x3f75bf(0x1aa)])||_0x598819['nodeId']['toString']();let _0x47962d=_0x3477a3['mode']();!_0x47962d&&(_0x47962d='nodeId',_0x3477a3[_0x3f75bf(0x159)](_0x47962d)),_0x14530b(_0x5b1410)[_0x3f75bf(0xd9)](()=>{const _0x153c28=_0x3f75bf;_0x3477a3[_0x153c28(0xe1)][_0x153c28(0x148)]();})[_0x3f75bf(0x158)](_0x32267f=>{const _0x533398=_0x3f75bf;_0x3477a3[_0x533398(0xe1)][_0x533398(0x148)]();});}}),_0x3477a3[_0x5f34a0(0xa5)]['on'](_0x5f34a0(0x15d),'li',function(_0x1ba680){const _0x584400=_0x5f34a0;_0x1ba680[_0x584400(0x8c)]();let _0xc3fffd=$(this);_0x5da4d8(_0xc3fffd,_0x1ba680)&&_0x143fdc(_0xc3fffd),_0x146bb5(_0x3477a3,_0xc3fffd);}),$(document)['on'](_0x5f34a0(0x15d),function(_0x44e051){const _0x5da12e=_0x5f34a0;!$(_0x44e051[_0x5da12e(0x130)])[_0x5da12e(0x14f)](_0x3477a3[_0x5da12e(0x15c)])[_0x5da12e(0x94)]&&_0x3477a3[_0x5da12e(0xe1)][_0x5da12e(0x148)]();});}});},_0x184890=_0x4f15fb=>{const _0x180d0a=_0x4c3996;var _0x5802c0,_0x5f0fa5,_0x5e60e9;if(!_0x4f15fb){const _0x5cc3de=$('<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>');return _0x5cc3de;}const _0x26844f=_0x4f15fb[_0x180d0a(0x156)][_0x180d0a(0x102)]();let _0x23f103=((_0x5802c0=_0x4f15fb[_0x180d0a(0x13c)])===null||_0x5802c0===void 0x0?void 0x0:_0x5802c0[_0x180d0a(0xc8)])||((_0x5f0fa5=_0x4f15fb['browseName'])===null||_0x5f0fa5===void 0x0?void 0x0:_0x5f0fa5['name'])||_0x4f15fb[_0x180d0a(0x156)][_0x180d0a(0x102)](),_0x2b9962=(_0x5e60e9=_0x4f15fb['browseName'])===null||_0x5e60e9===void 0x0?void 0x0:_0x5e60e9[_0x180d0a(0x103)];_0x23f103+=_0x2b9962!==undefined&&_0x4f15fb[_0x180d0a(0x14e)][_0x180d0a(0xaf)](/Type/)?_0x180d0a(0x1bc)+_0x2b9962+')':'';const {icon:_0x206ccb,color:_0x14d9d8}=_0x595b30(_0x4f15fb),_0x150cbc=$(_0x180d0a(0xa1));if(_0x4f15fb['nodeClass']===_0x180d0a(0x1bf)){const _0xedec07=$(_0x180d0a(0xec));_0x150cbc[_0x180d0a(0x17a)](_0xedec07),_0xedec07['on'](_0x180d0a(0x15d),function(){const _0xe3539c=_0x180d0a;_0xedec07['hasClass'](_0xe3539c(0x171))?_0xedec07[_0xe3539c(0xeb)](_0xe3539c(0x171))[_0xe3539c(0xf1)]('checked'):_0xedec07[_0xe3539c(0xeb)](_0xe3539c(0x126))[_0xe3539c(0xf1)](_0xe3539c(0x171));});}return _0x150cbc[_0x180d0a(0x17a)]($(_0x180d0a(0x151)+_0x206ccb+'\x22\x20style=\x22color:'+_0x14d9d8+';\x22></i>'+_0x23f103+_0x180d0a(0x1b0))),_0x150cbc[_0x180d0a(0xf1)](_0x180d0a(0xbf)),_0x150cbc['data'](_0x180d0a(0x188),_0x26844f),_0x150cbc['data']('reference',_0x4f15fb),_0x150cbc;},_0xfe0f00=()=>{const _0x43c1bf=_0x4c3996;$[_0x43c1bf(0x97)](_0x43c1bf(0x182),{'options':{'endpointNode':()=>({'endpoint':_0x43c1bf(0x134)}),'endpoint':()=>undefined,'baseUrl':''},'_populate'(){return _0x14f326(this,void 0x0,void 0x0,function*(){const _0x8fec9=_0x572c;var _0xf5131b;const _0x219f41=this,_0x3b0837=new Set(((_0xf5131b=_0x219f41['$input'][_0x8fec9(0x10c)]())===null||_0xf5131b===void 0x0?void 0x0:_0xf5131b[_0x8fec9(0x102)]()['split'](';'))||[]),_0x55d536=_0x324751(_0x219f41),_0x5c4eea=yield _0x1f3ebf(_0x55d536);this[_0x8fec9(0x142)](_0x5c4eea,_0x3b0837);});},'_installTree'(_0x553cb9,_0x24943b){const _0x171736=_0x43c1bf,_0x1ee2e0=this;_0x1ee2e0[_0x171736(0xa5)][_0x171736(0x139)]();if(!_0x553cb9[_0x171736(0xba)])return;const _0x69007f=_0x553cb9[_0x171736(0xba)],_0x43fbb0=_0x184890(_0x69007f);_0x1ee2e0[_0x171736(0xa5)][_0x171736(0x17a)](_0x43fbb0);const _0x6048f3='';this[_0x171736(0x19b)](_0x43fbb0[_0x171736(0xf6)]('ul'),_0x69007f,_0x6048f3,_0x24943b),_0x43fbb0[_0x171736(0xeb)](_0x171736(0xbf))[_0x171736(0xf1)]('expanded'),this[_0x171736(0x101)](_0x24943b);},'_installChildren'(_0x30879a,_0x512e1e,_0x504a2c,_0x1ffd83){const _0x3fa105=_0x43c1bf,_0x39758d=({name:_0x468012,namespaceIndex:_0x368e1f})=>{if(_0x368e1f===0x0)return _0x468012;return _0x368e1f+':'+_0x468012;},_0x3a33b7=_0x512e1e[_0x3fa105(0xf6)]||[],_0x10aa2b=_0x512e1e[_0x3fa105(0x121)]||[],_0xa1a32=[..._0x3a33b7,..._0x10aa2b];for(const _0x583430 of _0xa1a32){const _0x2aa7fc=_0x184890(_0x583430);_0x30879a[_0x3fa105(0x17a)](_0x2aa7fc);let _0x27f5d7='';_0x583430['nodeClass']===_0x3fa105(0x1bf)&&(_0x504a2c?_0x27f5d7=_0x504a2c+'.'+_0x39758d(_0x583430[_0x3fa105(0x10f)]):_0x27f5d7=_0x39758d(_0x583430[_0x3fa105(0x10f)]),_0x2aa7fc['attr'](_0x3fa105(0xf9),_0x27f5d7));const _0x158023=_0x583430[_0x3fa105(0xf6)]&&_0x583430[_0x3fa105(0xf6)][_0x3fa105(0x94)],_0x555029=_0x583430['subTypes']&&_0x583430[_0x3fa105(0x121)][_0x3fa105(0x94)];!_0x158023&&!_0x555029?_0x2aa7fc[_0x3fa105(0xeb)](_0x3fa105(0xbf))['addClass'](_0x3fa105(0x124)):(this['_installChildren'](_0x2aa7fc[_0x3fa105(0xf6)]('ul'),_0x583430,_0x27f5d7,_0x1ffd83),_0x2aa7fc[_0x3fa105(0xeb)](_0x3fa105(0xbf))[_0x3fa105(0xf1)](_0x3fa105(0x196)));}},'_updateSelectedFields'(){const _0x2fc34f=_0x43c1bf;var _0x222651;const _0x23c221=this,_0x3455f9=new Set(((_0x222651=_0x23c221[_0x2fc34f(0x1b7)]['val']())===null||_0x222651===void 0x0?void 0x0:_0x222651[_0x2fc34f(0x102)]()[_0x2fc34f(0xd6)](';'))||[]);this[_0x2fc34f(0x101)](_0x3455f9);},'_updateValues'(_0x180a17){const _0x3b95ec=_0x43c1bf;$(_0x3b95ec(0x122))['each'](function(){const _0x539710=_0x3b95ec,_0x3edcb8=$(this),_0x564a1f=_0x3edcb8[_0x539710(0x116)](_0x539710(0xf9));_0x564a1f&&_0x180a17['has'](_0x564a1f)&&_0x3edcb8[_0x539710(0xf6)](_0x539710(0x1bb))[_0x539710(0xeb)](_0x539710(0x171))[_0x539710(0xf1)](_0x539710(0x126));});},'_setInputValue'(){const _0x401b57=_0x43c1bf,_0x27f3f8=this,_0x5d7106=[];$(_0x401b57(0x122))[_0x401b57(0x150)](function(){const _0x77a853=_0x401b57,_0x19ebee=$(this);if(_0x19ebee[_0x77a853(0xf6)](_0x77a853(0x119))['length']>0x0){const _0x39853f=_0x19ebee[_0x77a853(0x116)](_0x77a853(0xf9));if(_0x39853f)_0x5d7106[_0x77a853(0xa4)](_0x39853f);}});const _0x553dea=[...new Set(_0x5d7106)][_0x401b57(0x18d)]()['join'](';');_0x27f3f8[_0x401b57(0x1b7)][_0x401b57(0x10c)](_0x553dea),_0x27f3f8[_0x401b57(0x1b7)][_0x401b57(0x9e)]('change');},'_create'(){const _0x4bae3b=_0x43c1bf,_0x41dee6=this;_0x41dee6['$input']=this[_0x4bae3b(0x118)],_0x41dee6['$combo']=$(_0x4bae3b(0x109)),_0x41dee6[_0x4bae3b(0x15c)][_0x4bae3b(0xf1)](_0x4bae3b(0x80)),this[_0x4bae3b(0x118)][0x0]['parentElement'][_0x4bae3b(0x10b)](_0x41dee6['$combo'][0x0],this[_0x4bae3b(0x118)][0x0]),_0x41dee6[_0x4bae3b(0x189)]=$(_0x4bae3b(0x109))['addClass'](_0x4bae3b(0x1b5)),_0x41dee6[_0x4bae3b(0x15c)]['append'](_0x41dee6[_0x4bae3b(0x189)]),_0x41dee6[_0x4bae3b(0x189)][_0x4bae3b(0x17a)](_0x41dee6[_0x4bae3b(0x1b7)]),_0x41dee6['$toggleTreeBtn']=$(_0x4bae3b(0x184)),_0x41dee6[_0x4bae3b(0x189)][_0x4bae3b(0x17a)](_0x41dee6[_0x4bae3b(0xea)]),_0x41dee6['$toggleTreeBtn']['on'](_0x4bae3b(0x15d),function(){const _0x49ca55=_0x4bae3b;_0x41dee6['$dropdown'][_0x49ca55(0x84)](),_0x41dee6['$info']['toggle']();if(_0x41dee6[_0x49ca55(0xe1)]['is'](_0x49ca55(0x132))){_0x162825['show']();const _0x126092=_0x41dee6['$dropdown']['offset']();_0x162825[_0x49ca55(0x18e)]({'top':_0x126092[_0x49ca55(0xfb)]+'px','right':'calc(100%\x20-\x20'+(_0x126092['left']+_0x41dee6[_0x49ca55(0xe1)][_0x49ca55(0x186)]())+'px)'}),_0x41dee6[_0x49ca55(0x92)](),_0x41dee6[_0x49ca55(0xd7)]();}else _0x162825[_0x49ca55(0x148)]();});!_0x41dee6[_0x4bae3b(0x1b7)][_0x4bae3b(0x116)](_0x4bae3b(0xb9))&&_0x41dee6['$input'][_0x4bae3b(0x116)](_0x4bae3b(0xb9),_0x4bae3b(0x17c));_0x41dee6[_0x4bae3b(0x1b1)]=$('<div\x20class=\x22info-text\x22></div>'),_0x41dee6['$info'][_0x4bae3b(0x148)](),_0x41dee6[_0x4bae3b(0xe1)]=$('<div/>')['addClass'](_0x4bae3b(0x1b6))[_0x4bae3b(0x148)]();const _0x58f763=$(_0x4bae3b(0xe8)),_0x25ed5e=$(_0x4bae3b(0x115)),_0x162825=$(_0x4bae3b(0x145))[_0x4bae3b(0x17a)](_0x58f763,_0x25ed5e);_0x162825[_0x4bae3b(0x148)](),_0x58f763['on']('click',()=>{const _0x335112=_0x4bae3b;_0x41dee6[_0x335112(0xaa)](),_0x41dee6[_0x335112(0xe1)][_0x335112(0x148)]();}),_0x25ed5e['on'](_0x4bae3b(0x15d),()=>{const _0x1358de=_0x4bae3b;_0x41dee6[_0x1358de(0xe1)][_0x1358de(0x148)]();}),_0x41dee6[_0x4bae3b(0x15c)][_0x4bae3b(0x17a)](_0x41dee6['$info']),_0x41dee6['$combo'][_0x4bae3b(0x17a)](_0x41dee6[_0x4bae3b(0xe1)]),_0x41dee6['$tree']=$(_0x4bae3b(0x12d)),_0x41dee6[_0x4bae3b(0xe1)][_0x4bae3b(0x139)]()[_0x4bae3b(0x17a)](_0x41dee6[_0x4bae3b(0xa5)],_0x162825),_0x41dee6[_0x4bae3b(0xa5)]['on']('click','li',function(_0x35e5f4){const _0x524358=_0x4bae3b;_0x35e5f4[_0x524358(0x8c)]();let _0x3143de=$(this);const _0x24274a=0x14,_0x4054d6=0x14,_0x50dd62=$(this)[_0x524358(0x143)](),_0x21fcb3=_0x35e5f4;if(_0x21fcb3[_0x524358(0x9f)]>=_0x50dd62[_0x524358(0x18b)]&&_0x21fcb3[_0x524358(0x9f)]<=_0x50dd62[_0x524358(0x18b)]+_0x24274a&&_0x21fcb3[_0x524358(0x13a)]>=_0x50dd62[_0x524358(0xfb)]&&_0x21fcb3['pageY']<=_0x50dd62[_0x524358(0xfb)]+_0x4054d6){console[_0x524358(0x125)](_0x524358(0x133)),console[_0x524358(0x125)](_0x524358(0x170),_0x3143de['data'](_0x524358(0x188)),_0x3143de[_0x524358(0x116)](_0x524358(0xb3)));if(_0x3143de[_0x524358(0x199)](_0x524358(0xbf)))_0x3143de['removeClass'](_0x524358(0xbf))[_0x524358(0xf1)]('expanded'),_0x3143de['children']('ul')['toggle']();else{if(_0x3143de['hasClass'](_0x524358(0x196)))_0x3143de['children']('ul')['toggle'](),_0x3143de[_0x524358(0x11f)]('expandable\x20expanded');else{if(_0x3143de[_0x524358(0xf6)]('ul')['children']()['length']>0x0)_0x3143de[_0x524358(0xf6)]('ul')[_0x524358(0x84)](),_0x3143de[_0x524358(0x11f)](_0x524358(0xfe));else;}}}}),$(document)['on'](_0x4bae3b(0x15d),function(_0x29ae2d){const _0x4c7a11=_0x4bae3b;!$(_0x29ae2d['target'])[_0x4c7a11(0x14f)](_0x41dee6['$combo'])[_0x4c7a11(0x94)]&&_0x41dee6[_0x4c7a11(0xe1)][_0x4c7a11(0x148)]();}),this[_0x4bae3b(0x92)]();}});},_0x1f3ebf=_0x4abd70=>_0x14f326(void 0x0,[_0x4abd70],void 0x0,function*({endpointNode:_0x21a4bd,endpoint:_0x460077,baseUrl:_0x1333ec}){const _0x4dea03=_0x4c3996,_0x4e0d48=_0x1333ec+'/opcua-for-node-red',_0x5e8331=_0x4e0d48+'/extractEventTypes',_0x56ad74=yield fetch(_0x5e8331,{'method':_0x4dea03(0x169),'body':JSON[_0x4dea03(0xc2)]({'endpointNode':_0x21a4bd,'endpoint':_0x460077}),'headers':{'Content-Type':_0x4dea03(0x1ab)}});if(_0x56ad74[_0x4dea03(0xdb)]!==0xc8)return console[_0x4dea03(0x125)](_0x4dea03(0x11a),_0x56ad74[_0x4dea03(0xdb)],_0x56ad74[_0x4dea03(0x194)]),{'events':null};console[_0x4dea03(0x125)](_0x4dea03(0xd3),_0x56ad74['status'],_0x56ad74[_0x4dea03(0x194)]);const _0x2ee8ef=yield _0x56ad74[_0x4dea03(0xff)](),_0x107ae8=_0x2ee8ef[_0x4dea03(0xba)];return{'events':_0x107ae8};}),_0x1d3045=()=>{const _0x50ccdd=_0x4c3996,_0x54e049=$(_0x50ccdd(0xa3)),_0x537195=_0x54e049[_0x50ccdd(0x10c)](),_0x30c198=RED[_0x50ccdd(0xe5)][_0x50ccdd(0x18f)](_0x537195);if(!_0x30c198)return undefined;const {endpoint:_0xbbf690,securityMode:_0x2fb874,securityPolicy:_0xc6fc85,userIdentityType:_0x44bbfe,credentials:_0x17c42a,namespaceAliases:_0x3948b0}=_0x30c198,_0x120d20={'endpoint':_0xbbf690,'securityMode':_0x2fb874,'securityPolicy':_0xc6fc85,'userIdentityType':_0x44bbfe,'credentials':_0x17c42a,'namespaceAliases':_0x3948b0};return _0x120d20;},_0x3163be=()=>{const _0x34a209=_0x4c3996,_0xdaa8f9=$(_0x34a209(0xa3)),_0x27d8a7=_0xdaa8f9[_0x34a209(0x10c)](),_0x4eb1c4=_0x1d3045();if(!_0x4eb1c4)return undefined;const _0x1841a3=_0x4eb1c4[_0x34a209(0x155)];return Object[_0x34a209(0x13d)]({'namespaceAliases':_0x1841a3,'id':_0x27d8a7},_0x4eb1c4);},_0x33fbeb=()=>{return{'endpointNode':_0x3163be};};RED[_0x4c3996(0xe5)]['registerType'](_0x4c3996(0x89),{'category':'opcua','color':'#C0DEED','align':'right','icon':_0x4c3996(0x8d),'paletteLabel':_0x4c3996(0x111),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x4c3996(0x15b)},'subscription':{'value':'','required':!![],'validate':_0x1cce73=>{if(_0x1cce73==='')return![];return!![];}},'startImmediately':{'value':!![],'required':!![]},'nodeId':{'value':'','required':![],'validate':()=>!![]},'samplingInterval':{'value':0x3e8,'required':!![]},'discardOldest':{'value':!![],'required':!![]},'queueSize':{'value':0xa,'required':!![]},'selectClauses':{'value':'','required':!![]},'whereClause':{'value':'','required':![]}},'outputs':0x2,'label'(){const _0x1c635f=_0x4c3996;return this[_0x1c635f(0x1aa)]||'OPCUA\x20Monitor';},'labelStyle'(){const _0x21ff5f=_0x4c3996;return this[_0x21ff5f(0x1aa)]?_0x21ff5f(0x10d):'';},'oneditprepare'(){const _0x11aab3=_0x4c3996;_0x26ec90(),_0xfe0f00(),_0x3ba623(RED,this),$('node-input-startImmediately')['on']('change',()=>{const _0x3cba73=_0x572c,_0x15009f=$(_0x3cba73(0x131))[_0x3cba73(0xab)]('checked');_0x15009f?$(_0x3cba73(0x12e))[_0x3cba73(0x10c)](0x0):$(_0x3cba73(0x12e))[_0x3cba73(0x10c)](0x1);});const _0x54d49e=$('#node-input-nodeId');_0x54d49e[_0x11aab3(0x112)](Object[_0x11aab3(0x13d)](Object[_0x11aab3(0x13d)]({},_0x33fbeb()),{'filter'(_0x1d029d){const _0x2d60b9=_0x11aab3;return _0x1d029d[_0x2d60b9(0x14e)]===_0x2d60b9(0x144);},'isSelectable'(_0x3cc600){const _0x2f9a1d=_0x11aab3;return _0x3cc600[_0x2f9a1d(0x14e)]===_0x2f9a1d(0x144);}})),$(_0x11aab3(0x129));const _0x2d3ab1=$('#node-input-selectClauses');_0x2d3ab1[_0x11aab3(0xda)](Object['assign']({},_0x33fbeb()));},'oneditsave'(){const _0x5a8728=_0x4c3996,_0x4758bf=$(_0x5a8728(0x131))[_0x5a8728(0xab)]('checked');_0x4758bf?($('#node-input-startImmediately')[_0x5a8728(0x10c)](_0x4758bf?0x0:0x1),this[_0x5a8728(0x1a6)]=_0x4758bf?0x0:0x1):($('#node-input-startImmediately')[_0x5a8728(0x10c)](0x1),this[_0x5a8728(0x1a6)]=0x1);}});}()));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgzYmE2MjMiLCJfMHg0MGJiNGEiLCJfMHgyNDc3ZGQiLCJfMHhiYWZhMGUiLCIkIiwiXzB4M2FhYzgzIiwiXzB4NGY4NWNlIiwiXzB4MzU2ODc3IiwiXzB4YTBkNGNhIiwiXzB4NTNhODY5IiwiXzB4MTRmMzI2IiwiXzB4M2NlZGIzIiwiXzB4NTQ5YTVlIiwiXzB4MTNjMjc1IiwiXzB4MzlkNDA3IiwiXzB4NDQyY2VkIiwiXzB4MmVlNjJiIiwiXzB4MmNiYjFmIiwiUHJvbWlzZSIsIl8weDU3ZGFiNSIsIl8weDNiNmJjOCIsIl8weDNhY2MzZiIsIl8weDM3YmY2OCIsIl8weDNjZmVmOSIsIl8weGVhMzQwYyIsIl8weDVlZTZhMyIsIl8weGMxZjhmNSIsIl8weDNjNGI3NCIsIl8weDUwODM0NCIsIlN1cHByZXNzZWRFcnJvciIsIl8weDViMGVhOCIsIl8weDNlNzI0YSIsIl8weGExYTM1MSIsIl8weDU1YTVjZCIsIkVycm9yIiwiXzB4ZjcyNjIzIiwiXzB4NWQ1NjJmIiwiXzB4M2FiNmU4IiwiXzB4MjMxNTMwIiwiXzB4ODU1MjRjIiwiXzB4NDMyM2JkIiwiXzB4MjBiMzAwIiwiXzB4MWI2MGIzIiwiXzB4MTZlOTk2IiwiXzB4MTM1ZDVhIiwiXzB4MTU0MjVjIiwiXzB4Mjc2MTlkIiwiXzB4MTkxZDc1IiwiXzB4ZTY5NGM1IiwiXzB4NGYxMjFmIiwiXzB4NDQyOGVhIiwiXzB4MjhhNGJjIiwiXzB4NTk1YjMwIiwiXzB4NGUzMGYyIiwiXzB4NGUwYjIxIiwiXzB4NDJhMDhjIiwiXzB4M2FhNzQzIiwiXzB4MjU5MmFlIiwiZW5kcG9pbnROb2RlIiwiXzB4MjliYzlkIiwiZW5kcG9pbnQiLCJfMHg1YWQyMmIiLCJiYXNlVXJsIiwiXzB4MTkwMTkxIiwiXzB4MjczZDU2IiwiXzB4MzE5NWUxIiwiXzB4M2E4MmNhIiwiXzB4NDQ2YzZiIiwiXzB4MTc0MmMyIiwiT2JqZWN0IiwiXzB4MTViZTgzIiwiZmV0Y2giLCJKU09OIiwiY29uc29sZSIsIl8weDJjMTc2YSIsIl8weDJjOThkMSIsIl8weDRiZDBhMiIsIl8weDQxY2NlOSIsIl8weDQ0NjcxMSIsIl8weDE2NzUzZCIsIl8weDM5MWNlMSIsIl8weDRmZmM5NCIsIl8weDU3MDk5OCIsIl8weDI2NzI2NCIsIm5vZGVJZCIsIl8weDI4Njg1MCIsInJvb3ROb2RlSWQiLCJfMHg1YjIyMmQiLCJpc1R5cGUiLCJfMHg0ODVhOWEiLCJfMHgyM2E5MjkiLCJfMHgzMzM4MDYiLCJfMHg2OTcxZjQiLCJfMHgyZjRlZGIiLCJfMHgzYjg3NzMiLCJfMHg0MDFkZDciLCJfMHg1NmQ3MmYiLCJfMHg0NWMzZmEiLCJfMHg1YWIzYjYiLCJfMHg1NThkYWMiLCJfMHg1ZjViY2YiLCJfMHgyYjY0NGYiLCJfMHhmMzdkMTgiLCJfMHg0ZjMzY2EiLCJfMHgzYWI0ZjQiLCJfMHgyNmM4YTIiLCJfMHgzMmNmZTAiLCJfMHg0MGE5MzAiLCJfMHgxMjQ0OTMiLCJfMHgxOTBmMWUiLCJfMHgxZDI5YTEiLCJfMHgzNDNlM2UiLCJfMHhiYTZkMzAiLCJfMHgzMTVhNjgiLCJfMHgyMzg3M2EiLCJfMHgxYTBkOWQiLCJfMHgyYTA2N2MiLCJfMHg1YTE3NGMiLCJfMHg0OGU4YjQiLCJfMHg0OTY5M2MiLCJfMHgxN2YzYmEiLCJSRUQiLCJfMHg1NTVjYjciLCJfMHgzNzkzMDkiLCJfMHg0ZjAyN2IiLCJfMHgyN2M5ZjIiLCJfMHgxNDY0NzYiLCJfMHgxZjg5NDAiLCJfMHg0MmE2YzgiLCJfMHg1OTNmYWYiLCJfMHg1OGY3OGMiLCJfMHg0MDMxODkiLCJfMHg2NGE3NTgiLCJfMHgzMDI0NmYiLCJfMHgxMTY3YzciLCJfMHgxZmE2MmQiLCJfMHg1MTM1MzYiLCJqc29uIiwiXzB4MWI3MTY5IiwiZGF0YSIsIl8weDFkN2ZlMyIsIl8weDEwNzQwZiIsIl8weDU4MWNiMyIsIl8weDRlYWUyYSIsInNldFRpbWVvdXQiLCJfMHhlZTQ4ODAiLCJfMHgxZWFlNzUiLCJfMHg0ZTdlMzAiLCJfMHg1MDk2YjgiLCJfMHg1ODE3YTEiLCJfMHg0MTAyMGQiLCJfMHhkNDVkMDYiLCJfMHgzM2Q3ZDciLCJfMHgxYjUxYTciLCJfMHg1OWM1ZGUiLCJfMHgzMTMzZjEiLCJfMHgyNmY4NGUiLCJfMHg1ODBiMTgiLCJfMHg0NWFkNTciLCJfMHg0ZTViZDQiLCJfMHg0ZjJhN2UiLCJfMHgyOWM0MWIiLCJfMHgyN2QyOWUiLCJfMHgxNjllOWYiLCJfMHg0ZDYxMWUiLCJfMHg0OTM1ZjYiLCJfMHgxODMyMjAiLCJfMHgzYzAyODIiLCJpY29uIiwiXzB4MWNlYjY5IiwiY29sb3IiLCJfMHg0MzQ5NGQiLCJfMHg0YWU2YWYiLCJfMHgzZGVlZTciLCJfMHg0Nzc4ZWUiLCJfMHg1MDk3ZjAiLCJfMHg1MjMzNWEiLCJfMHgxNDZiYjUiLCJfMHgzOWNiZGMiLCJfMHg0ZWJiYmMiLCJfMHgyNGU2ZjkiLCJfMHgzODI2ZDEiLCJfMHgyZWI3ZTMiLCJfMHg1NmRmODYiLCJfMHgyOWRhYzEiLCJfMHgzMmY4MjEiLCJfMHgzM2QxZjUiLCJfMHgzZTc5MzYiLCJfMHg1YWY3NzciLCJfMHgyMzEzYTEiLCJfMHg3NmFlZjMiLCJfMHgyZTE2MjMiLCJfMHg1NDBlYmMiLCJfMHgyZmFkZjEiLCJ1bmRlZmluZWQiLCJfMHgzMDJjY2QiLCJfMHgyOGE3NWEiLCJfMHg0NGEyN2MiLCJfMHg1MWMyODciLCJfMHgyNjY3ODEiLCJfMHg1MGU3NzgiLCJfMHhjOTc5MWMiLCJfMHgzMjQ3NTEiLCJfMHg0ODRkMzkiLCJfMHg1MzdjNjciLCJfMHgzZjEzNzkiLCJfMHg4Njk3NmEiLCJfMHg0MzBmZTAiLCJfMHgyMWQ3MzciLCJyZWZlcmVuY2VzIiwiXzB4NDc4MmUwIiwiXzB4NGNjYjA3IiwiXzB4MzEyNDA5IiwiXzB4MmU5MTMyIiwiXzB4M2NiM2IzIiwiXzB4MzIwZTk1IiwiXzB4MmFlZGM0IiwiXzB4NWJiZjI2IiwiXzB4MTY5ZGJlIiwiXzB4MWM1YTBmIiwiXzB4NTNmNTJkIiwiXzB4NTE2YzU4IiwiXzB4NDkwOTc2IiwiXzB4NTBkODk4IiwiXzB4MjE5ZDVjIiwiXzB4MWMzOWMyIiwiXzB4MjZlYzkwIiwiXzB4MTYzNjVmIiwiXzB4NDkxMjE0IiwiXzB4MjQ4MjdmIiwiXzB4NDQ1ZjlhIiwiXzB4NDMxNGRkIiwiXzB4YmVmNCIsIl8weDI4OTVhNiIsIl8weDJmZDQ2ZiIsIl8weDRhYzU5YSIsIl8weDQ3MGNlNCIsIl8weDQzNzNlOSIsIl8weDQ3ODYwOSIsIl8weDJkMmNhYSIsImRvY3VtZW50IiwiXzB4ODEzYzJlIiwiXzB4NWRkZjM2IiwiXzB4MmRjMTdlIiwiXzB4MzE1YTYxIiwiXzB4MzRkN2ZhIiwiXzB4NDJiYzYzIiwiXzB4MmRmNjA0IiwiXzB4MmIzMmY0IiwiXzB4NWFhNzdjIiwiXzB4MjhjMThlIiwiXzB4NTVmNTNhIiwiXzB4NGVlYzIwIiwiXzB4MWVhZDEyIiwiXzB4NTE4MWQxIiwiXzB4MzkyZDE5IiwiXzB4NTBiNDA5IiwiXzB4M2I4M2YzIiwiXzB4MWYxOWY3IiwiXzB4ZDYzMTZhIiwid2luZG93IiwiXzB4NWY1MjMxIiwiXzB4M2E0ODdmIiwiXzB4MjYzMjJjIiwiXzB4M2Q3NjNiIiwiXzB4MzMyZTNjIiwiXzB4NWIzZWE1IiwiXzB4NWEzZjJlIiwiXzB4M2ZiM2Y3IiwiXzB4Mjg3NzllIiwiXzB4NDExNmFhIiwiXzB4NGNkOWJkIiwiXzB4NTI2NDRiIiwiXzB4MjlmYWQ4IiwiXzB4NDIxYjA3IiwiXzB4MmVjYzg2IiwiXzB4MjUzMTMxIiwiXzB4NTMwZmE0IiwiXzB4NDg2YzZkIiwiXzB4MjMzMTA2IiwiXzB4MzQ3N2EzIiwiXzB4Yjk5ZWJjIiwiXzB4NDFhMzhiIiwiXzB4NDRkMWE5IiwiXzB4NDI1ZTAyIiwiXzB4MTQ1MzBiIiwiXzB4NGFiMDlkIiwiXzB4NTIwYmY2IiwiXzB4NDM3N2E2IiwiXzB4NTE4NzQwIiwiXzB4MmE1NGZlIiwiXzB4NDBiNDAwIiwiXzB4NTdjMDI0IiwiXzB4MmI3ZGQ5IiwiXzB4NTg2ZmMxIiwiXzB4NWRhNGQ4IiwiXzB4MTZkOTBjIiwiXzB4MTI3MzIyIiwiXzB4MzA5ZTJkIiwiXzB4NTc1MGIwIiwiXzB4NDExMjcwIiwiXzB4NWU4ZDgwIiwiXzB4MTQzZmRjIiwiXzB4MTY1NjcyIiwiXzB4MWNhNWQzIiwiXzB4NDkyNTdmIiwiXzB4Nzc2MzgzIiwiXzB4MTc1MDMwIiwiXzB4NWIxNDEwIiwiXzB4NTk4ODE5IiwiXzB4NDc5NjJkIiwiXzB4MzIyNjdmIiwiXzB4MWJhNjgwIiwiXzB4YzNmZmZkIiwiXzB4NDRlMDUxIiwiXzB4MTg0ODkwIiwiXzB4NGYxNWZiIiwiXzB4NTgwMmMwIiwiXzB4NWYwZmE1IiwiXzB4NWU2MGU5IiwiXzB4NWNjM2RlIiwiXzB4MjY4NDRmIiwiXzB4MjNmMTAzIiwiXzB4MmI5OTYyIiwiXzB4MjA2Y2NiIiwiXzB4MTRkOWQ4IiwiXzB4MTUwY2JjIiwiXzB4ZWRlYzA3IiwiXzB4ZmUwZjAwIiwiXzB4ZjUxMzFiIiwiXzB4MjE5ZjQxIiwiXzB4M2IwODM3IiwiU2V0IiwiXzB4NTVkNTM2IiwiXzB4NWM0ZWVhIiwiXzB4MWYzZWJmIiwiXzB4NTUzY2I5IiwiXzB4MjQ5NDNiIiwiXzB4MWVlMmUwIiwiXzB4NjkwMDdmIiwiXzB4NDNmYmIwIiwiXzB4NjA0OGYzIiwiXzB4MzA4NzlhIiwiXzB4NTEyZTFlIiwiXzB4NTA0YTJjIiwiXzB4MWZmZDgzIiwiXzB4Mzk3NThkIiwibmFtZSIsIl8weDQ2ODAxMiIsIm5hbWVzcGFjZUluZGV4IiwiXzB4MzY4ZTFmIiwiXzB4M2EzM2I3IiwiXzB4MTBhYTJiIiwiXzB4YTFhMzIiLCJfMHg1ODM0MzAiLCJfMHgyYWE3ZmMiLCJfMHgyN2Y1ZDciLCJfMHgxNTgwMjMiLCJfMHg1NTUwMjkiLCJfMHgyMjI2NTEiLCJfMHgyM2MyMjEiLCJfMHgzNDU1ZjkiLCJfMHgxODBhMTciLCJfMHgzZWRjYjgiLCJfMHg1NjRhMWYiLCJfMHgyN2YzZjgiLCJfMHg1ZDcxMDYiLCJfMHgxOWViZWUiLCJfMHgzOTg1M2YiLCJfMHg1NTNkZWEiLCJfMHg0MWRlZTYiLCJfMHgxNjI4MjUiLCJfMHgxMjYwOTIiLCJfMHg1OGY3NjMiLCJfMHgyNWVkNWUiLCJfMHgzNWU1ZjQiLCJfMHgzMTQzZGUiLCJfMHgyNDI3NGEiLCJfMHg0MDU0ZDYiLCJfMHg1MGRkNjIiLCJfMHgyMWZjYjMiLCJfMHgyOWFlMmQiLCJfMHg0YWJkNzAiLCJfMHgyMWE0YmQiLCJfMHg0NjAwNzciLCJfMHgxMzMzZWMiLCJfMHg0ZTBkNDgiLCJfMHg1ZTgzMzEiLCJfMHg1NmFkNzQiLCJfMHgyZWU4ZWYiLCJfMHgxMDdhZTgiLCJfMHgxZDMwNDUiLCJfMHg1NGUwNDkiLCJfMHg1MzcxOTUiLCJfMHgzMGMxOTgiLCJfMHhiYmY2OTAiLCJzZWN1cml0eU1vZGUiLCJfMHgyZmI4NzQiLCJzZWN1cml0eVBvbGljeSIsIl8weGM2ZmM4NSIsInVzZXJJZGVudGl0eVR5cGUiLCJfMHg0NGJiZmUiLCJjcmVkZW50aWFscyIsIl8weDE3YzQyYSIsIm5hbWVzcGFjZUFsaWFzZXMiLCJfMHgzOTQ4YjAiLCJfMHgxMjBkMjAiLCJfMHgzMTYzYmUiLCJfMHhkYWE4ZjkiLCJfMHgyN2Q4YTciLCJfMHg0ZWIxYzQiLCJfMHgxODQxYTMiLCJfMHgzM2ZiZWIiLCJfMHgxY2NlNzMiLCJfMHgxNTAwOWYiLCJfMHg1NGQ0OWUiLCJfMHgxZDAyOWQiLCJfMHgzY2M2MDAiLCJfMHgyZDNhYjEiLCJfMHg0NzU4YmYiXSwibWFwcGluZ3MiOiI2bE1BQUEsQ0FBQyxVLENBQ0csYSx3QkFFQSxTQUFTQSxTQUFULENBQXFDQyxTQUFyQyxDQUEwQ0MsU0FBMUMsQyx5QkFDVUMsU0FBQSxDQUFZQyxDQUFBLEMsZUFBQSxDLENBQ1pDLFNBQUEsQ0FBZ0JELENBQUEsQyxnQkFBQSxDLENBRWhCRSxTQUFBLENBQTZCLEksMkJBQ3pCQyxTQUFBLENBQVdOLFNBQUEsQyxPQUFBLEUsTUFBQSxFQUFlRSxTQUFBLEMsZ0JBQUEsR0FBZixDLENBQ2pCRSxTQUFBLEMsZ0JBQUEsSSxHQUNJLENBQUNFLFNBQUQsRUFBYSxDQUFDQSxTQUFBLEMsZUFBQSxDLENBQ2QsT0FFSixVQUFXQyxTQUFYLElBQWdCRCxTQUFBLEMsZUFBQSxDQUFoQixDLENBQ0ksTUFBTUUsU0FBQSxDQUFRRCxTQUFBLEMsTUFBQSxHQUFVQSxTQUFBLEMsSUFBQSxDQUF4QixDQUNBSixDQUFBLEMsZUFBQSxDQUFlLEMsT0FDWCxDQUFPSSxTQUFBLEMsSUFBQSxDQURJLEMsT0FFWCxDQUFPQyxTQUZJLEMsVUFHWCxDQUFVRCxTQUFBLEMsSUFBQSxJQUFTTixTQUFBLEMsZUFBQSxDQUhSLENBQWYsRSxlQUFBLEVBS1VPLFNBTFYsRSxnQkFBQSxFQU1jSixTQU5kLEMsSUFTUkMsU0FBQSxFLENBT0FELFNBQUEsQyxJQUFBLEUsZ0JBQUEsQ0FBMkIsSSwyQkFDdkJILFNBQUEsQyxjQUFBLEVBQW9CRyxTQUFBLEMsZ0JBQUEsRyxFQUR4QixDLENBSUFGLFNBQUEsQyxJQUFBLEUsZ0JBQUEsQ0FBdUIsSSxDQUNuQkcsU0FBQSxFLEVBREosQyxFQXNCSixTQUFTSSxTQUFULENBQW1CQyxTQUFuQixDQUE0QkMsU0FBNUIsQ0FBd0NDLFNBQXhDLENBQTJDQyxTQUEzQyxDLENBQ0ksU0FBU0MsU0FBVCxDQUFlQyxTQUFmLEMsUUFBK0JBLFNBQUEsWUFBaUJILFNBQWpCLENBQXFCRyxTQUFyQixDQUE2QixJQUFJSCxTQUFKLENBQU0sU0FBVUksU0FBVixDLENBQXFCQSxTQUFBLENBQVFELFNBQVIsQyxFQUEzQixDLFNBQ3JELEdBQUssQ0FBQUgsU0FBQSxFQUFNLENBQUFBLFNBQUEsQ0FBSUssT0FBSixDQUFOLENBQUwsQ0FBeUIsU0FBVUMsU0FBVixDQUFtQkMsU0FBbkIsQyx5QkFDNUIsU0FBU0MsU0FBVCxDQUFtQkMsU0FBbkIsQyx5QkFBNEIsRyxDQUFNQyxTQUFBLENBQUtULFNBQUEsQyxnQkFBQSxFQUFlUSxTQUFmLENBQUwsQyxFQUErQixNQUFPRSxTQUFQLEMsQ0FBWUosU0FBQSxDQUFPSSxTQUFQLEMsR0FDN0UsU0FBU0MsU0FBVCxDQUFrQkMsU0FBbEIsQyx5QkFBMkIsRyxDQUFNSCxTQUFBLENBQUtULFNBQUEsQyxlQUFBLEVBQW1CWSxTQUFuQixDQUFMLEMsRUFBbUMsTUFBT0MsU0FBUCxDLENBQVlQLFNBQUEsQ0FBT08sU0FBUCxDLEdBQ2hGLFNBQVNKLFNBQVQsQ0FBY0ssU0FBZCxDLHlCQUF3QkEsU0FBQSxDLGdCQUFBLEVBQWNULFNBQUEsQ0FBUVMsU0FBQSxDLGdCQUFBLENBQVIsQ0FBZCxDQUFzQ2IsU0FBQSxDQUFNYSxTQUFBLEMsZ0JBQUEsQ0FBTixFLGVBQUEsRUFBeUJQLFNBQXpCLENBQW9DSSxTQUFwQyxDLEVBQzlERixTQUFBLENBQU0sQ0FBQVQsU0FBQSxDQUFZQSxTQUFBLEMsZUFBQSxFQUFnQkgsU0FBaEIsQ0FBeUJDLFNBQUEsRUFBYyxFQUF2QyxDQUFaLENBQUQsQyxnQkFBQSxHQUFMLEMsRUFKRyxDLEVBUVgsT0FBT2lCLGVBQVAsRyxVQUFBLENBQXdDQSxlQUF4QyxDQUEwRCxTQUFVQyxTQUFWLENBQWlCQyxTQUFqQixDQUE2QkMsU0FBN0IsQyx5QkFDdEQsSUFBSUMsU0FBQSxDQUFJLElBQUlDLEtBQUosQ0FBVUYsU0FBVixDQUFSLEMsT0FDT0MsU0FBQSxDLE1BQUEsRSxnQkFBQSxDQUE0QkEsU0FBQSxDLGdCQUFBLEVBQVVILFNBQXRDLENBQTZDRyxTQUFBLEMsZUFBQSxFQUFlRixTQUE1RCxDQUF3RUUsUyxFQUZuRixDQUtBLE1BQU1FLFNBQUEsQyxnQkFBTixDQUNNQyxTQUFBLEMsZUFETixDQUVNQyxTQUFBLEMsZ0JBRk4sQ0FHTUMsU0FBQSxDLGdCQUhOLENBSU1DLFNBQUEsQyxlQUpOLENBS01DLFNBQUEsQyxXQUxOLENBTU1DLFNBQUEsQyxXQU5OLENBUUEsSUFBSUMsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQWdCQSxTQUFBLEMsZUFBQSxFLEdBQWhCLEUsVUFDQUEsU0FBQSxDQUFnQkEsU0FBQSxDLGdCQUFBLEUsR0FBaEIsRSxpQkFDQUEsU0FBQSxDQUFnQkEsU0FBQSxDLGVBQUEsRSxHQUFoQixFLGdCQUNBQSxTQUFBLENBQWdCQSxTQUFBLEMsU0FBQSxFLEdBQWhCLEUsa0JBSkosQ0FLR0QsU0FBQSxFQUFvQixDQUFBQSxTQUFBLENBQWtCLEVBQWxCLENBTHZCLEdBTUEsSUFBSUUsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQVVBLFNBQUEsQyxhQUFBLEUsR0FBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLEdBQVYsRSxTQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxVQUFBLEUsR0FBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLEdBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZUFBQSxFLEdBQVYsRSxnQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZUFBQSxFLElBQVYsRSxnQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZUFBQSxFLElBQVYsRSxnQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZUFBQSxFLElBQVYsRSxXQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxNQUFBLEUsSUFBVixFLGtCQVRKLENBVUdELFNBQUEsRUFBYyxDQUFBQSxTQUFBLENBQVksRUFBWixDQVZqQixHQVdBLElBQUlFLFNBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxHQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsR0FBZCxFLGlCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLEdBQWQsRSxTQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxZQUFBLEUsR0FBZCxFLGFBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGVBQUEsRSxJQUFkLEUsZUFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZUFBQSxFLElBQWQsRSxnQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsVUFBQSxFLElBQWQsRSxnQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxJQUFkLEUsa0JBUkosQ0FTR0QsU0FBQSxFQUFrQixDQUFBQSxTQUFBLENBQWdCLEVBQWhCLENBVHJCLEdBVUEsSUFBSUUsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQVdBLFNBQUEsQyxlQUFBLEUsR0FBWCxFLGdCQUNBQSxTQUFBLENBQVdBLFNBQUEsQyxnQkFBQSxFLEdBQVgsRSxpQkFDQUEsU0FBQSxDQUFXQSxTQUFBLEMsZ0JBQUEsRSxHQUFYLEUsaUJBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGdCQUFBLEUsR0FBWCxFLGlCQUNBQSxTQUFBLENBQVdBLFNBQUEsQyxlQUFBLEUsSUFBWCxFLGNBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGdCQUFBLEUsSUFBWCxFLGtCQU5KLENBT0dELFNBQUEsRUFBZSxDQUFBQSxTQUFBLENBQWEsRUFBYixDQVBsQixHQVNBLFNBQVNFLFNBQVQsQ0FBdUJDLFNBQXZCLEMsMkJBQ0ksT0FBUUEsU0FBUixFQUNJLEssZ0JBQUEsQ0FDSSxPQUFPaEIsU0FBUCxDQUNKLEssZUFBQSxDQUNJLE9BQU9HLFNBQVAsQ0FDSixJLGNBQUEsQ0FDSSxPQUFPRCxTQUFQLENBQ0osSyxnQkFBQSxDQUNJLE9BQU9FLFNBQVAsQ0FDSixLLGVBQUEsQ0FDSSxPQUFPQyxTQUFQLENBQ0osSyxlQUFBLENBQ0ksT0FBT0MsU0FBUCxDQVpSLEMsQ0FnQkosTUFBTVcsU0FBQSxDQUFXQyxTQUFELEUsMkJBQ1osT0FBUUEsU0FBQSxDLFdBQUEsQ0FBUixFQUNJLEssZ0JBQUEsQyxHQUNRQSxTQUFBLEMsZ0JBQUEsSUFBOEJsQixTLEtBQzlCa0IsU0FBQSxDLGVBQUEsSUFBNkJqQixTQUE3QixFQUEyQ2lCLFNBQUEsQyxpQkFBQSxJLHVCQUNwQyxDLE1BQUUsQyxlQUFGLEMsT0FBcUIsQyxnQkFBckIsQyxDQUVYLE1BQU8sQyxNQUFFLEMsZ0JBQUYsQyxPQUEyQixDLFVBQTNCLENBQVAsQ0FDSixLLGdCQUFBLEMsR0FDUUEsU0FBQSxDLGlCQUFBLElBQThCaEIsUyxPQUN2QixDLE1BQUUsQyxnQkFBRixDLE9BQXVCLEMsZ0JBQXZCLEMsYUFFRmdCLFNBQUEsQyxnQkFBQSxJQUE4QmYsUyxDQUM1QixDLE1BQUUsQyxnQkFBRixDLE9BQXVCLEMsZUFBdkIsQyxDQUdBLEMsTUFBRSxDLGFBQUYsQyxPQUF1QixDLGVBQXZCLEMsQ0FFZixLLGdCQUFBLENBQ0ksTUFBTyxDLE1BQUUsQyxnQkFBRixDLE9BQWtCLEMsWUFBbEIsQ0FBUCxDQUNKLEssZUFBQSxDQUNJLE1BQU8sQyxNQUFFLEMsaUJBQUYsQyxPQUEyQixDLGVBQTNCLENBQVAsQ0FDSixLLGVBQUEsQ0FDSSxNQUFPLEMsTUFBRSxDLGdCQUFGLEMsT0FBc0IsQyxlQUF0QixDQUFQLENBQ0osSyxlQUFBLENBQ0ksTUFBTyxDLE1BQUUsQyxlQUFGLEMsT0FBeUIsQyxlQUF6QixDQUFQLENBeEJSLEMsTUEwQk8sQyxNQUFFLEMsYUFBRixDLE9BQXVCLEMsZUFBdkIsQyxFQTNCWCxDQThCTWdCLFNBQUEsQ0FBUyxDQUFDQyxTQUFELENBQUtDLFNBQUwsQ0FBZUMsU0FBZixHQUE4Qi9DLFNBQUEsQ0FBVSxLLEdBQVYsQ0FBa0IsQ0FBQzZDLFNBQUQsQ0FBS0MsU0FBTCxDQUFlQyxTQUFmLENBQWxCLENBQThDLEssR0FBOUMsQ0FBc0QsVUFBVyxDQUFFQyxZQUFBLENBQUFDLFNBQUYsQ0FBZ0JDLFFBQUEsQ0FBQUMsU0FBaEIsQ0FBMEJDLE9BQUEsQ0FBQUMsU0FBMUIsQ0FBWCxDQUFnREMsU0FBaEQsQ0FBd0RDLFNBQXhELEMsMkJBQ3pGQyxTQUFBLENBQVVILFMsdUJBQ1ZJLFNBQUEsQ0FBU0QsUyxXQUNURSxTQUFBLENBQW9CQyxNQUFBLEMsZ0JBQUEsRUFBY0EsTUFBQSxDLGdCQUFBLEVBQWMsRUFBZCxDQUFrQkosU0FBbEIsQ0FBZCxDQUEyQyxDLFFBQUUsQ0FBQUQsU0FBRixDLFlBQVUsQyxJQUFWLENBQTNDLEMsQ0FDcEJNLFNBQUEsQ0FBTyxNQUFNQyxLQUFBLENBQU1KLFNBQU4sQ0FBVyxDLFFBQzFCLEMsTUFEMEIsQyxNQUUxQixDQUFNSyxJQUFBLEMsZUFBQSxFQUFlLEMsY0FDakIsQ0FBQWIsU0FEaUIsQyxVQUVqQixDQUFBRSxTQUZpQixDLG1CQUdqQixDQUFBTyxTQUhpQixDQUFmLENBRm9CLEMsU0FPMUIsQ0FBUyxDLGNBQUUsQyxnQkFBRixDQVBpQixDQUFYLEMsSUFTZkUsU0FBQSxDLGVBQUEsSSxZQUNBRyxPQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUEwQ0gsU0FBQSxDLGVBQUEsQ0FBMUMsQ0FBdURBLFNBQUEsQyxnQkFBQSxDQUF2RCxDLENBQ08sQyxZQUFFLENBQVksRUFBZCxDLENBR1gsTUFBTUksU0FBQSxDQUFXLE1BQU1KLFNBQUEsQyxlQUFBLEdBQXZCLENBQ01LLFNBQUEsQ0FBYUQsU0FBQSxDLGdCQUFBLEUsZUFBQSxHQUFvQyxFQUR2RCxDLE1BRU8sQyxZQUFFLENBQUFDLFNBQUYsQyxFQXBCa0MsQ0E5QjdDLENBcURNQyxTQUFBLENBQVksQyxpQkFDZCxDQUFpQjFCLFNBQUEsQyxnQkFBQSxDQURILEMsaUJBRWQsQyxJQUZjLEMsaUJBR2QsQ0FBaUJSLFNBQUEsQyxlQUFBLENBSEgsQyxlQUlkLENBQWVFLFNBQUEsQyxnQkFBQSxFQUFxQkEsU0FBQSxDLGdCQUFBLENBQXJCLENBQXdDQSxTQUFBLEMsZ0JBQUEsQ0FKekMsQyxZQVVkLEMsSUFWYyxDQXJEbEIsQ0FpRU1pQyxTQUFBLENBQVksQyxpQkFDZCxDQUFpQjNCLFNBQUEsQyxnQkFBQSxDQURILEMsaUJBRWQsQyxJQUZjLEMsaUJBR2QsQ0FBaUJSLFNBQUEsQyxlQUFBLENBSEgsQyxlQUlkLENBQWVFLFNBQUEsQyxnQkFBQSxFQUFxQkEsU0FBQSxDLGdCQUFBLENBQXJCLENBQXdDQSxTQUFBLEMsZ0JBQUEsQ0FKekMsQyxZQVVkLEMsSUFWYyxDQWpFbEIsQ0E2RU1rQyxTQUFBLENBQWUsQ0FBQ0MsU0FBRCxDQUFLQyxTQUFMLEdBQVl0RSxTQUFBLENBQVUsSyxHQUFWLENBQWtCLENBQUNxRSxTQUFELENBQUtDLFNBQUwsQ0FBbEIsQ0FBNEIsSyxHQUE1QixDQUFvQyxVQUFXLENBQUV0QixZQUFBLENBQUF1QixTQUFGLENBQWdCckIsUUFBQSxDQUFBc0IsU0FBaEIsQ0FBMEJwQixPQUFBLENBQUFxQixTQUExQixDQUFYLENBQWdELENBQUVDLE1BQUEsQ0FBQUMsU0FBRixDQUFVQyxVQUFBLENBQUFDLFNBQVYsQ0FBc0JDLE1BQUEsQ0FBQUMsU0FBdEIsQ0FBaEQsQywyQkFDM0RDLFNBQUEsQ0FBVVAsUyxrQkFDVlEsU0FBQSxDQUFTRCxTLGlCQUNURSxTQUFBLENBQU8sTUFBTXJCLEtBQUEsQ0FBTW9CLFNBQU4sQ0FBVyxDLFFBQzFCLEMsTUFEMEIsQyxNQUUxQixDQUFNbkIsSUFBQSxDLGVBQUEsRUFBZSxDLGNBQ2pCLENBQUFTLFNBRGlCLEMsVUFFakIsQ0FBQUMsU0FGaUIsQyxRQUdqQixDQUFBRyxTQUhpQixDLFlBSWpCLENBQUFFLFNBSmlCLEMsUUFLakIsQ0FBQUUsU0FMaUIsQ0FBZixDQUZvQixDLFNBUzFCLENBQVMsQyxjQUFFLEMsZ0JBQUYsQ0FUaUIsQ0FBWCxDLElBV2ZHLFNBQUEsQyxlQUFBLEksWUFDTyxJLENBRVgsTUFBTUMsU0FBQSxDQUFRLE1BQU1ELFNBQUEsQyxlQUFBLEdBQXBCLEMsT0FDT0MsU0FBQSxDLFlBQUEsQyxFQWxCc0IsQ0E3RWpDLENBaUdNQyxTQUFBLENBQWUsQ0FBQ0MsU0FBRCxDQUFPQyxTQUFQLEcsOEJBQ2JELFNBQUEsQyxnQkFBQSxJLGNBQ09BLFNBQUEsQyxnQkFBQSxDLENBRVgsT0FBUUMsU0FBUixFQUNJLEssZUFBQSxDQUNJLE9BQU9ELFNBQUEsQyxnQkFBQSxDQUFQLENBQ0osSSxtQkFBQSxDQUNJLE9BQU9BLFNBQUEsQyxnQkFBQSxHQUFtQkEsU0FBQSxDLGdCQUFBLENBQTFCLENBQ0osSyxnQkFBQSxDQUNJLE9BQU9BLFNBQUEsQyxlQUFBLEdBQXVCQSxTQUFBLEMsZ0JBQUEsQ0FBOUIsQ0FDSixLLGdCQUFBLENBQ0ksT0FBT0EsU0FBQSxDLFlBQUEsQ0FBUCxDQUNKLFFBQ0EsSyxnQkFBQSxDQUNJLE9BQU9BLFNBQUEsQyxnQkFBQSxDQUFQLENBWFIsQyxDQXJHSixDQW1ITUUsU0FBQSxDQUFlQyxTQUFELEUsOEJBQ1pBLFNBQUEsQyxnQkFBQSxJLHdDQUNzQkEsU0FBQSxDLFlBQUEsQyxNQUd0QixJQUFJQyxTQUFBLENBQU0sRUFBVixDLE9BQ0FBLFNBQUEsQyxlQUFBLEUsZ0JBQW9CRCxTQUFBLEMsZ0JBQUEsQ0FBcEIsQyxDQUNBQyxTQUFBLEMsZUFBQSxFLHNCQUF5QkQsU0FBQSxDLGdCQUFBLENBQXpCLEMsQ0FDQUMsU0FBQSxDLGVBQUEsRSxnQkFBd0J2RCxTQUFBLENBQVVzRCxTQUFBLEMsZ0JBQUEsQ0FBVixDQUF4QixDLENBQ0lBLFNBQUEsQyxnQkFBQSxDLEVBQ0FDLFNBQUEsQyxNQUFBLEUscUJBQXdCRCxTQUFBLEMsZ0JBQUEsQ0FBeEIsQyxDQUVBQSxTQUFBLEMsZUFBQSxDLEVBQ0FDLFNBQUEsQyxlQUFBLEUsZ0JBQTRCRCxTQUFBLEMsZUFBQSxDQUE1QixDLENBRUFBLFNBQUEsQyxnQkFBQSxDLEVBQ0FDLFNBQUEsQyxlQUFBLEUsZ0JBQWdDRCxTQUFBLEMsZ0JBQUEsQ0FBaEMsQyxDQUVHQyxTQUFBLEMsZ0JBQUEsRSxNQUFBLEMsR0FySWYsQ0F3SUEsU0FBU0MsU0FBVCxDQUF1QkMsU0FBdkIsQyw4QkFDUUEsU0FBQSxDLGVBQUEsRUFBcUIsT0FBckIsQyw0QkFHQUEsU0FBQSxDLE9BQUEsRUFBcUIsc0JBQXJCLEMsNEJBR0FBLFNBQUEsQyxPQUFBLEVBQXFCLE9BQXJCLEMsNEJBR0FBLFNBQUEsQyxPQUFBLEVBQXFCLGlCQUFyQixDLDJCQUdBQSxTQUFBLEMsZUFBQSxFQUFxQixhQUFyQixDLHFCQUlSLFNBQVNDLFNBQVQsQ0FBZ0NDLFNBQWhDLEMsMkJBQ1VDLFNBQUEsQ0FBT0osU0FBQSxDQUFjRyxTQUFkLEMsQ0FDYixPQUFRQyxTQUFSLEVBQ0ksSyxnQkFBQSxDQUNJLE0sR0FBQSxDQUNKLEksZUFBQSxDQUNJLE0sSUFBQSxDQUNKLEssZ0JBQUEsQ0FDSSxPLGdCQUFBLENBQ0osSyxlQUFBLENBQ0ksTSxHQUFBLENBQ0osSyxnQkFBQSxDQUNJLE0sSUFBQSxDQUNKLFFBQ0ksTSxHQUFBLENBWlIsQyxDQWVKLFNBQVNDLFNBQVQsQ0FBZ0JDLFNBQWhCLEMsMkJBQ0ksSUFBSUMsU0FBSixDQUNBLE9BQVFELFNBQVIsRUFDSSxJLEdBQUEsQ0FDSUMsU0FBQSxDLFFBQUEsQ0FDQSxNQUNKLEksSUFBQSxDQUNJQSxTQUFBLEMsZ0JBQUEsQ0FDQSxNQUNKLEssZ0JBQUEsQ0FDSUEsU0FBQSxDLGdCQUFBLENBQ0EsTUFDSixJLEdBQUEsQ0FDSUEsU0FBQSxDLGVBQUEsQ0FDQSxNQUNKLEksSUFBQSxDQUNJQSxTQUFBLEMsZ0JBQUEsQ0FDQSxNQWZSLEMsT0FpQk9BLFMsRUFFWCxTQUFTQyxTQUFULENBQWtCQyxTQUFsQixDLDJCQUNJLE9BQVFBLFNBQVIsRUFDSSxLLGdCQUFBLENBQ0ksTSxHQUFBLENBQ0osSyxnQkFBQSxDQUNJLE0sSUFBQSxDQUNKLEssZ0JBQUEsQ0FDSSxNLEtBQUEsQ0FDSixLLGVBQUEsQ0FDSSxNLEdBQUEsQ0FDSixLLGdCQUFBLENBQ0ksTSxJQUFBLENBQ0osUUFDSSxNLEdBQUEsQ0FaUixDLENBZUosTUFBTUMsU0FBQSxDQUFtQixDQUFDQyxTQUFELENBQUtDLFNBQUwsR0FBa0J0RyxTQUFBLENBQVUsSyxHQUFWLENBQWtCLENBQUNxRyxTQUFELENBQUtDLFNBQUwsQ0FBbEIsQ0FBa0MsSyxHQUFsQyxDQUEwQyxVQUFXLENBQUV0RCxZQUFBLENBQUF1RCxTQUFGLENBQWdCckQsUUFBQSxDQUFBc0QsU0FBaEIsQ0FBMEJwRCxPQUFBLENBQUFxRCxTQUExQixDQUFYLENBQWdEQyxTQUFoRCxDLDJCQUMzRUMsU0FBQSxDQUFVRixTLGtCQUNWRyxTQUFBLENBQVNELFMsa0JBQ1RFLFNBQUEsQ0FBTU4sU0FBQSxDLElBQUEsQyxDQUNOTyxTQUFBLENBQUlDLEdBQUEsQyxlQUFBLEUsZ0JBQUEsRUFBZUYsU0FBZixDLENBQ1Y5QyxPQUFBLEMsZ0JBQUEsRUFBWStDLFNBQUEsQyxnQkFBQSxDQUFaLEMsQ0FDQUEsU0FBQSxDLGdCQUFBLENBREEsQ0FFQSxNQUFNRSxTQUFBLENBQW1CVCxTQUFBLEMsa0JBQUEsQ0FBekIsQ0FDTVUsU0FBQSxDQUFPLE1BQU1wRCxLQUFBLENBQU0rQyxTQUFOLENBQVcsQyxRQUMxQixDLE1BRDBCLEMsTUFFMUIsQ0FBTTlDLElBQUEsQyxXQUFBLEVBQWUsQyxjQUNqQixDQUFBeUMsU0FEaUIsQyxVQUVqQixDQUFBQyxTQUZpQixDLFFBR2pCLENBQUFFLFNBSGlCLEMsa0JBSWpCLENBQUFNLFNBSmlCLENBQWYsQ0FGb0IsQyxTQVExQixDQUFTLEMsY0FBRSxDLGdCQUFGLENBUmlCLENBQVgsQ0FEbkIsQ0FXTUUsU0FBQSxDQUFRLE1BQU1ELFNBQUEsQyxlQUFBLEdBWHBCLEMsTUFZTyxDLE1BQUUsQ0FBQUMsU0FBRixDLE1BQVEsQ0FBQUQsU0FBUixDLEVBbkJnQyxDQUEzQyxDQXFCTUUsU0FBQSxDQUFpQixDQUFDQyxTQUFELENBQUtDLFNBQUwsQ0FBYUMsU0FBYixDQUE4QkMsU0FBOUIsR0FBMEN2SCxTQUFBLENBQVUsSyxHQUFWLENBQWtCLENBQUNvSCxTQUFELENBQUtDLFNBQUwsQ0FBYUMsU0FBYixDQUE4QkMsU0FBOUIsQ0FBbEIsQ0FBMEQsSyxHQUExRCxDQUFrRSxVQUFXLENBQUV2RSxZQUFBLENBQUF3RSxTQUFGLENBQWdCdEUsUUFBQSxDQUFBdUUsU0FBaEIsQ0FBMEJyRSxPQUFBLENBQUFzRSxTQUExQixDQUFYLENBQWdEQyxTQUFoRCxDQUFzREMsU0FBdEQsQ0FBcUVDLFNBQXJFLEMsMkJBQ3pIQyxTQUFBLENBQWlCRixTQUFBLEMsZ0JBQUEsRyxDQUNqQixDQUFFRyxJQUFBLENBQUFDLFNBQUYsQ0FBUUMsSUFBQSxDQUFBQyxTQUFSLEVBQWlCLE1BQU05QixTQUFBLENBQWlCLEMsY0FBRSxDQUFBb0IsU0FBRixDLFVBQWdCLENBQUFDLFNBQWhCLEMsU0FBMEIsQ0FBQUMsU0FBMUIsQ0FBakIsQ0FBc0RJLFNBQXRELEMsQ0FDdkJLLFNBQUEsQ0FBa0IsQ0FBQ0MsU0FBRCxDQUFPQyxTQUFQLEcsMkJBQ3BCUixTQUFBLEMsZUFBQSxFQUFXTyxTQUFYLEUsZUFBQSxFLGVBQUEsRSxlQUFBLEVBQW9EQyxTQUFwRCxDLENBQ0FSLFNBQUEsQyxNQUFBLEcsQ0FDQVMsVUFBQSxDQUFXLEksMkJBQ1BULFNBQUEsQyxlQUFBLEVBQWtCUSxTQUFsQixDLENBQ0FSLFNBQUEsQyxnQkFBQSxHLEVBRkosQyxLQUFBLEMsTUFLQUssU0FBQSxDLGVBQUEsSSxZQUVBQyxTQUFBLEMsYUFBZ0IsQ0FBZ0JMLFNBQWhDLEMsZUFBQSxDLGFBSUlFLFNBQUEsQyxnQkFBQSxFLE9BQUEsRUFBc0IsTUFBdEIsQyxFQUNBLE1BQU1PLFNBQUEsQ0FBVWhELFNBQUEsQ0FBWXlDLFNBQVosQ0FBaEIsQ0FDQUosU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBNEJXLFNBQTVCLEVBRUEsTUFBTUMsU0FBQSxDQUFpQnBELFNBQUEsQ0FBYTRDLFNBQWIsQ0FBbUJMLFNBQW5CLENBQXZCLEMsT0FDQUMsU0FBQSxDLGdCQUFBLEVBQWtCWSxTQUFsQixDLENBQ0FaLFNBQUEsQyxlQUFBLEUsZ0JBQUEsQyxDQUNBTyxTQUFBLEMsTUFBQSxDLElBQUEsQyxtQkFJQVAsU0FBQSxDLGdCQUFBLEUsR0FBcUJFLFNBQXJCLEMsQ0FDQUssU0FBQSxDQUFtQkgsU0FBQSxDLFlBQUEsQyxRQUFtQkUsU0FBQSxDLGdCQUFBLENBQXRDLEMsZUFBQSxDLE9BN0JxRCxDQXJCakUsQ0F1REEsU0FBU08sU0FBVCxDQUF1QkMsU0FBdkIsQ0FBOEJDLFNBQTlCLEMsUUFDVzNJLFNBQUEsQ0FBVSxJQUFWLENBQWdCLEssR0FBaEIsQ0FBd0IsSyxHQUF4QixDQUFnQyxXLHlCQUM3QjRJLFNBQUEsQ0FBU0YsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxDQUNURyxTQUFBLENBQWdCLE1BQU1qRyxTQUFBLENBQU8rRixTQUFQLENBQWFDLFNBQWIsQ0FBcUIxRSxTQUFyQixDLENBQ3RCNEUsU0FBQSxDQUFnQixNQUFNbEcsU0FBQSxDQUFPK0YsU0FBUCxDQUFhQyxTQUFiLENBQXFCekUsU0FBckIsQyxPQUNyQixDLFlBQ0gsQ0FBWSxDQUFDLEdBQUcwRSxTQUFBLEMsZUFBQSxDQUFKLENBQThCLEdBQUdDLFNBQUEsQyxlQUFBLENBQWpDLENBRFQsQyxFQUpKLEMsRUFTWCxNQUFNQyxTQUFBLENBQWEsQyxpQkFDZixDQUFpQnZHLFNBQUEsQyxlQUFBLENBREYsQyxpQkFFZixDLElBRmUsQyxpQkFHZixDQUFpQlIsU0FBQSxDLFNBQUEsQ0FIRixDLGVBSWYsQ0FBZUUsU0FBQSxDLGVBQUEsRUFBMEJBLFNBQUEsQyxlQUFBLENBQTFCLENBQWlEQSxTQUFBLEMsVUFBQSxDQUFqRCxDQUFzRUEsU0FBQSxDLGVBQUEsQ0FKdEUsQyxZQUtmLEMsSUFMZSxDQUFuQixDQU9BLFNBQVM4RyxTQUFULENBQXVCQyxTQUF2QixDQUE4QkMsU0FBOUIsQyxRQUNXbEosU0FBQSxDQUFVLElBQVYsQ0FBZ0IsSyxHQUFoQixDQUF3QixLLEdBQXhCLENBQWdDLFcseUJBQzdCbUosU0FBQSxDQUFTRixTQUFBLEMsZ0JBQUEsRSxPQUFBLEMsQ0FDVEcsU0FBQSxDQUFnQixNQUFNeEcsU0FBQSxDQUFPc0csU0FBUCxDQUFhQyxTQUFiLENBQXFCSixTQUFyQixDLFFBQ3JCSyxTLEVBSEosQyxFQU1YLE1BQU1DLFNBQUEsQ0FBaUJDLFNBQUQsRSwyQkFDbEIsSUFBSUMsU0FBSixDQUFRQyxTQUFSLENBQVlDLFNBQVosQ0FBZ0JDLFNBQWhCLEMsR0FDSSxDQUFDSixTQUFELEVBQWMsQ0FBQ0EsU0FBQSxDLFFBQUEsQyxFQUNmLE1BQU1LLFNBQUEsQ0FBV2pLLENBQUEsQyxnQkFBQSxDQUFqQixDLE9BQ09pSyxTLEVBRVgsTUFBTUMsU0FBQSxDQUFJTixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHQUFWLENBQ01PLFNBQUEsQ0FBSyxDQUFDLENBQUFOLFNBQUEsQ0FBS0QsU0FBQSxDLGdCQUFBLENBQUwsQ0FBRCxHQUFpQyxJQUFqQyxFQUF5Q0MsU0FBQSxHQUFPLEssR0FBaEQsQ0FBeUQsSyxHQUF6RCxDQUFrRUEsU0FBQSxDLE1BQUEsQ0FBbEUsQ0FBRCxFQUFnRixDQUFDLENBQUFDLFNBQUEsQ0FBS0YsU0FBQSxDLGdCQUFBLENBQUwsQ0FBRCxHQUFnQyxJQUFoQyxFQUF3Q0UsU0FBQSxHQUFPLEssR0FBL0MsQ0FBd0QsSyxHQUF4RCxDQUFpRUEsU0FBQSxDLGdCQUFBLENBQWpFLENBQWhGLEVBQTZKRixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHQUR2SyxDQUVNLENBQUVRLElBQUEsQ0FBQUMsU0FBRixDQUFRQyxLQUFBLENBQUFDLFNBQVIsRUFBa0J2SCxTQUFBLENBQVE0RyxTQUFSLENBRnhCLENBR01ZLFNBQUEsQyxJQUFZWixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHLFNBQWdDLENBQUMsQ0FBQyxDQUFBRyxTQUFBLENBQUtILFNBQUEsQyxnQkFBQSxDQUFMLENBQUQsR0FBZ0MsSUFBaEMsRUFBd0NHLFNBQUEsR0FBTyxLLEdBQS9DLENBQXdELEssR0FBeEQsQ0FBaUVBLFNBQUEsQyxNQUFBLENBQWpFLENBQUQsRUFBK0UsQ0FBQyxDQUFBQyxTQUFBLENBQUtKLFNBQUEsQyxnQkFBQSxDQUFMLENBQUQsR0FBaUMsSUFBakMsRUFBeUNJLFNBQUEsR0FBTyxLLEdBQWhELENBQXlELEssR0FBekQsQ0FBa0VBLFNBQUEsQyxlQUFBLENBQWxFLENBQS9FLEUsRUFBQSxDQUhsRCxDQUlNUyxTQUFBLENBQVd6SyxDQUFBLEMsZ0JBQWM0SixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHLGlCQUErRFksUyxrQkFBc0JILFMsa0JBQXNCRSxTLGtCQUFnQkosUyx3QkFBekksQ0FKakIsQyxPQUtBTSxTQUFBLEMsZUFBQSxFLFlBQUEsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUF1QlAsU0FBdkIsQyxDQUNBTyxTQUFBLEMsZ0JBQUEsRSxlQUFBLENBQTJCYixTQUEzQixDLENBQ09hLFMsRUFkWCxDQWdCTUMsU0FBQSxDQUFjLENBQUNDLFNBQUQsQ0FBU0MsU0FBVCxHLGtDQUNUQSxTQUFBLEMsTUFBQSxFLGlCQUFzQkQsUyxRQUF0QixDLEVBakJYLENBbUJNRSxTQUFBLENBQWUsQ0FBQ0MsU0FBRCxDQUFPQyxTQUFQLEcsMkJBQ2pCRCxTQUFBLEMsZUFBQSxFLGVBQUEsRSxnQkFBQSxFLGVBQUEsRSxnQkFBQSxDLENBRUFDLFNBQUEsQyxlQUFBLEUsZUFBQSxFLGVBQUEsRSxnQkFBQSxDLEVBdEJKLENBd0JNQyxTQUFBLENBQWEsQ0FBQ0MsU0FBRCxDQUFPQyxTQUFQLENBQW1CQyxTQUFuQixHQUE2QjdLLFNBQUEsQ0FBVSxLLEdBQVYsQ0FBa0IsSyxHQUFsQixDQUEwQixLLEdBQTFCLENBQWtDLFcsMkJBRTlFLElBQUk4SyxTQUFBLENBQVdELFNBQUEsQyxlQUFBLEUsZ0JBQUEsQ0FBZixDQUNBRCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHQUFvQyxFQUFwQyxDQUNBLE1BQU1HLFNBQUEsQ0FBVUgsU0FBQSxDLFNBQUEsR0FBc0IsRUFBdEMsQyxHQUNJRyxTQUFBLEMsZUFBQSxJLElBQ0EsT0FFSixVQUFXQyxTQUFYLElBQWdCRCxTQUFoQixDLENBQ1FELFNBQUEsQyxnQkFBQSxFLGVBQUEsQyxFQUVBLE9BQU1HLFNBQUEsQ0FBVU4sU0FBVixDQUFnQkcsU0FBaEIsQ0FBTixDLENBRUosTUFBTUksU0FBQSxDQUFXZCxTQUFBLENBQVlZLFNBQVosQ0FBZUYsU0FBZixDQUFqQixDLEdBQ0lJLFNBQUEsQyxlQUFBLEksSUFDQSxPQUVKSixTQUFBLENBQVdJLFMsRUFFZlgsU0FBQSxDQUFhSSxTQUFiLENBQW1CRyxTQUFuQixDLENBQ0FLLFNBQUEsQ0FBV1IsU0FBQSxDLFdBQUEsQ0FBWCxDQUEyQkcsU0FBM0IsQyxFQXBCNEMsQ0F4QmhELENBOENBLFNBQVNLLFNBQVQsQ0FBb0JDLFNBQXBCLENBQWdDQyxTQUFoQyxDLDJCQUVVQyxTQUFBLENBQVFELFNBQUEsQyxlQUFBLEksS0FBQSxDLENBRVJFLFNBQUEsQ0FBcUJILFNBQUEsQyxnQkFBQSxHLElBQ3ZCRyxTQUFBLEVBQXNCQyxTLENBQ3RCLE9BSUosTUFBTUMsU0FBQSxDQUFXRixTQUFBLENBQXFCRCxTQUFyQixDQUE2QkYsU0FBQSxDLFFBQUEsSSxHQUE3QixDQUF1REMsU0FBQSxDLFFBQUEsSSxHQUF4RSxDQUVBRCxTQUFBLEMsZ0JBQUEsRUFBbUIsQyxXQUNmLENBQVdLLFNBREksQ0FBbkIsQyxLQUFBLEMsRUFJSixNQUFNQyxTQUFBLENBQWlCLENBQUNDLFNBQUQsQ0FBT0MsU0FBUCxHQUFzQjVMLFNBQUEsQ0FBVSxLLEdBQVYsQ0FBa0IsSyxHQUFsQixDQUEwQixLLEdBQTFCLENBQWtDLFcsMkJBQ3JFNkwsU0FBQSxDQUFTRixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHLENBQ1RHLFNBQUEsQ0FBVSxDLFFBQ1osQ0FBQUQsU0FEWSxDLFlBRVosQ0FBWUQsU0FBQSxDLFFBQUEsQ0FGQSxDLFFBR1osQ0FBUUQsU0FBQSxDLGdCQUFBLEUsZUFBQSxHLEdBSEksQyxDQUtWSSxTQUFBLENBQU9DLFNBQUEsQ0FBZUwsU0FBZixDLENBQ1BNLFNBQUEsQ0FBYSxNQUFNN0gsU0FBQSxDQUFhMkgsU0FBYixDQUFtQkQsU0FBbkIsQyxJQUNyQixDQUFDRyxTLENBQ0QsT0FFSixNQUFNdkIsU0FBQSxDQUFXaUIsU0FBWCxDQUFpQk0sU0FBakIsQ0FBNkJOLFNBQUEsQyxlQUFBLENBQTdCLEMsRUFabUMsQ0FBN0MsQ0FjQSxTQUFTTyxTQUFULENBQTJCQyxTQUEzQixDQUFpQ0MsU0FBakMsQ0FBd0NDLFNBQXhDLENBQW1EQyxTQUFuRCxDLFFBQ1d0TSxTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyw0QkFDL0JvTSxTQUFBLEMsZ0JBQUEsRSxlQUFBLEMsRUFDQXJJLE9BQUEsQyxLQUFBLEUsb0JBQUEsRUFDQSxPLElBRUFxSSxTQUFBLEMsVUFBQSxFLGdCQUFBLEMsRUFDQXJJLE9BQUEsQyxnQkFBQSxFLGdCQUFBLEVBQ0EsTyxDQUVKcUksU0FBQSxDLGVBQUEsRSxnQkFBQSxDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLGVBQUEsQ0FEQSxDQUVBLEcsQ0FDSUEsU0FBQSxDLGVBQUEsRSxJQUFBLEUsZ0JBQUEsSUFDQSxNQUFNLENBQUVHLFVBQUEsQ0FBQUMsU0FBRixFQUFpQixNQUFNSCxTQUFBLENBQVVELFNBQVYsQ0FBaUJFLFNBQWpCLENBQTdCLENBRUFFLFNBQUEsQyxnQkFBQSxFQUFnQixDQUFDQyxTQUFELENBQUlDLFNBQUosRywyQkFBWSxJQUFJQyxTQUFKLENBQVFDLFNBQVIsQyxNQUFvQixDQUFDLENBQUMsQ0FBQUQsU0FBQSxDQUFLRixTQUFBLEMsZ0JBQUEsQ0FBTCxDQUFELEdBQXdCLElBQXhCLEVBQWdDRSxTQUFBLEdBQU8sSyxHQUF2QyxDQUFnRCxLLEdBQWhELENBQXlEQSxTQUFBLEMsZ0JBQUEsQ0FBekQsQ0FBRCxFLEVBQUEsQ0FBRCxDLGdCQUFBLEVBQTBGLENBQUMsQ0FBQUMsU0FBQSxDQUFLRixTQUFBLEMsZ0JBQUEsQ0FBTCxDQUFELEdBQXdCLElBQXhCLEVBQWdDRSxTQUFBLEdBQU8sSyxHQUF2QyxDQUFnRCxLLEdBQWhELENBQXlEQSxTQUFBLEMsZ0JBQUEsQ0FBekQsQ0FBRCxFLEVBQXpGLEMsRUFBL0MsRUFDQSxVQUFXQyxTQUFYLElBQXdCTCxTQUF4QixDLElBQ1FMLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEdBQXVCLENBQUNBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQW9CVSxTQUFwQixDLENBQ3hCLFNBRUosTUFBTUMsU0FBQSxDQUFXekQsU0FBQSxDQUFjd0QsU0FBZCxDQUFqQixDQUNBVCxTQUFBLEMsZUFBQSxFLElBQUEsRSxnQkFBQSxFQUE0QlUsU0FBNUIsQyxFQUVKVixTQUFBLEMsZUFBQSxFLFNBQUEsQyxFQUVKLE1BQU9XLFNBQVAsQyxDQUNJWCxTQUFBLEMsZUFBQSxFLElBQUEsRSxnQkFBQSxFLGdCQUF5Q1csU0FBQSxDLGdCQUFBLEMsZ0JBQXpDLEMsQ0FDQWhKLE9BQUEsQyxnQkFBQSxFLEtBQUEsQ0FBbUJnSixTQUFuQixDLEVBRUpYLFNBQUEsQyxlQUFBLEUsZ0JBQUEsRSxnQkFBQSxHLENBQ0FBLFNBQUEsQyxlQUFBLEUsZ0JBQUEsQyxFQTlCRyxDLEVBaUNYLFNBQVNKLFNBQVQsQ0FBd0JnQixTQUF4QixDLDJCQUNVQyxTQUFBLENBQU8sQyxTQUNULENBQVNELFNBQUEsQyxnQkFBQSxFLGVBQUEsQ0FEQSxDLGNBRVQsQ0FBYyxPQUFPQSxTQUFBLEMsU0FBQSxFLGVBQUEsQ0FBUCxHLFVBQUEsQ0FBa0RBLFNBQUEsQyxnQkFBQSxFLGVBQUEsR0FBbEQsQ0FBZ0ZBLFNBQUEsQyxTQUFBLEUsZUFBQSxDQUZyRixDLFVBR1QsQ0FBVSxPQUFPQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUFQLEcsZUFBQSxDQUE4Q0EsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsR0FBOUMsQ0FBd0VBLFNBQUEsQyxTQUFBLEUsZ0JBQUEsQ0FIekUsQyxRQUtOQyxTLEVBRVgsU0FBU2hDLFNBQVQsQ0FBbUJpQyxTQUFuQixDQUF5QkMsU0FBekIsQyxRQUNXbk4sU0FBQSxDQUFVLElBQVYsQ0FBZ0IsSyxHQUFoQixDQUF3QixLLEdBQXhCLENBQWdDLFcsNEJBQy9CbU4sU0FBQSxDLGdCQUFBLEUsZUFBQSxDLEVBQ0FBLFNBQUEsQyxhQUFBLEUsWUFBQSxFLGVBQUEsRSxnQkFBQSxDLENBQ0FBLFNBQUEsQyxlQUFBLEUsSUFBQSxFLGVBQUEsR0FEQSxDQUVBLE8sQ0FHSixNQUFNQyxTQUFBLENBQU9wQixTQUFBLENBQWVrQixTQUFmLENBQWIsQ0FDTUcsU0FBQSxDQUFJLENBQUNILFNBQUEsQyxnQkFBQSxFLFdBQUEsQ0FBRCxDQUEwQnpFLFNBQTFCLENBQTBDTyxTQURwRCxDQUVBLEcsQ0FDSSxNQUFNa0QsU0FBQSxDQUFrQmdCLFNBQWxCLENBQXdCQyxTQUF4QixDQUE2QkUsU0FBN0IsQ0FBZ0NELFNBQWhDLEMsQ0FFTkQsU0FBQSxDLGVBQUEsRSxlQUFBLEUsZUFBQSxFLFVBQUEsQyxFQUVKLE1BQU9HLFNBQVAsQyxDQUNJSCxTQUFBLEMsYUFBQSxFLGVBQUEsRSxVQUFBLEUsZ0JBQUEsQyxDQUNBcEosT0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBcUJ1SixTQUFyQixDLEdBaEJELEMsRUFvQlgsTUFBTUMsU0FBQSxDQUFvQixDLFlBQ3RCLENBQVksQyxnQkFBRSxDLEdBQUYsQyxNQUFxQixDLFNBQXJCLENBRFUsQyxXQUV0QixDLGdCQUZzQixDLFFBR3RCLEMsV0FIc0IsQyxhQUl0QixDQUFhLEMsTUFBRSxDLGdCQUFGLENBSlMsQyxnQkFLdEIsQ0FBZ0I3TCxTQUxNLENBQTFCLENBT004TCxTQUFBLENBQTJCLEksMkJBUTdCOU4sQ0FBQSxDLGVBQUEsRSxnQkFBQSxDQUFpQyxDLFNBRTdCLENBQVMsQyxjQUNMLENBQWMsS0FBTyxDLFVBQUUsQyx3Q0FBRixDQUFQLENBRFQsQyxVQUVMLENBQVUsSUFBTThMLFNBRlgsQyxZQUdMLENBQVksSUFBTStCLFNBSGIsQyxRQUlMLENBQVEsSSxJQUpILEMsU0FLTCxDLEVBTEssQyxXQU1MLEMsR0FOSyxDQUZvQixDLG1CQVU3QixFLFFBQ1d2TixTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyx5QkFDN0J5TixTQUFBLENBQU8sSSxJQUNUQSxTQUFBLEMsZUFBQSxHQUFxQmpDLFMsRUFDckIsTUFBTWtDLFNBQUEsQ0FBSSxPQUFPRCxTQUFBLEMsZ0JBQUEsRSxlQUFBLENBQVAsRyxlQUFBLENBQWdEQSxTQUFBLEMsZ0JBQUEsRSxlQUFBLEUsZUFBQSxFQUE2QkEsU0FBN0IsQ0FBaEQsQ0FBcUZBLFNBQUEsQyxnQkFBQSxFLGVBQUEsQ0FBL0YsQyxHQUNJQyxTQUFBLFlBQWFsTixPLEVBQ2IsTUFBTW1OLFNBQUEsQ0FBTyxNQUFNRCxTQUFuQixDQUNBRCxTQUFBLEMsZUFBQSxFQUFvQkUsUyxPQUdwQkYsU0FBQSxDLGVBQUEsRUFBb0JDLFMsU0FHckJELFNBQUEsQyxlQUFBLEdBQXFCRixTLEVBWnpCLEMsRUFYa0IsQyxPQTBCN0IsRSxRQUNXdk4sU0FBQSxDQUFVLElBQVYsQ0FBZ0IsSyxHQUFoQixDQUF3QixLLEdBQXhCLENBQWdDLFcseUJBQzdCNE4sU0FBQSxDQUFPLEksQ0FFUEMsU0FBQSxDQUFJRCxTLENBQ1ZDLFNBQUEsQyxlQUFBLEVBQWlCckMsUyxDQUNqQm9DLFNBQUEsQyxlQUFBLEUsZ0JBQUEsR0FEQSxDQUVBLE1BQU1FLE9BQUEsQ0FBYSxNQUFNLEssZUFBQSxHQUF6QixDQUNNQyxTQUFBLENBQVcxRSxTQUFBLENBQWN5RSxPQUFkLENBRGpCLENBRUFGLFNBQUEsQyxlQUFBLEUsZ0JBQUEsRUFBa0JHLFNBQWxCLEMsQ0FDQUgsU0FBQSxDLGdCQUFBLEVBQXFCRSxPLEVBVGxCLEMsRUEzQmtCLEMsUUF1QzdCLENBQU9FLFNBQVAsQywyQkFDVUMsU0FBQSxDQUFPLEksQ0FFUEMsU0FBQSxDQUFPbEMsU0FBQSxDQUFlaUMsU0FBZixDLENBQ2I5RyxTQUFBLENBQWUrRyxTQUFmLENBQXFCRixTQUFyQixDQUEyQkMsU0FBQSxDLGdCQUFBLENBQTNCLENBQXdDQSxTQUFBLEMsZ0JBQUEsQ0FBeEMsRSxlQUFBLEVBQTBERSxTQUFELEUsMkJBQ2pELENBQUNBLFMsQ0FDREYsU0FBQSxDLGdCQUFBLEUsZUFBQSxFLGFBQUEsQyxDQUdBQSxTQUFBLEMsZ0JBQUEsRSxlQUFBLEUsZ0JBQUEsQyxFQUxSLEMsRUEzQ3lCLEMsV0FvRDdCLENBQVVHLFNBQVYsQywyQkFDVUMsU0FBQSxDQUFPLEksQ0FDYjNPLENBQUEsQ0FBRTRPLFFBQUYsRSxnQkFBQSxFLG1EQUFBLEMsQ0FDQUYsU0FBQSxDLGdCQUFBLEcsQ0FDQUEsU0FBQSxDLGdCQUFBLEVBQVMsQyxRQUNMLEMsZUFESyxDQUFULENBRkEsQyxHQUtJQSxTQUFBLEMsZUFBQSxFLGdCQUFBLEMsRUFDQSxJQUFJRyxTQUFBLENBQVcsRUFBZixDQUNBSCxTQUFBLEMsZUFBQSxFLDhCQUFBLEUsZ0JBQUEsRUFBeUMsVSwyQkFDakMxTyxDQUFBLENBQUUsSUFBRixFLGVBQUEsRSxTQUFBLEMsRUFDQTZPLFNBQUEsQyxlQUFBLEVBQWM3TyxDQUFBLENBQUUsSUFBRixFLE1BQUEsRSxPQUFBLENBQWQsQyxFQUZSLEMsQ0FLQTBPLFNBQUEsQyxVQUFBLEVBQWNHLFNBQWQsQyxFQUVBRixTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsZ0JBQUEsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxlQUFBLEUsZUFBQSxDLENBS0FBLFNBQUEsQyxnQkFBQSxFLGVBQUEsRSxlQUFBLEMsRUExRXFCLEMsYUE2RTdCLENBQVlHLFNBQVosQ0FBeUJDLFNBQXpCLENBQStCQyxTQUEvQixDLDJCQUNJLElBQUlDLFNBQUEsQ0FBTyxJQUFYLENBQ0EsTUFBTUMsU0FBQSxDQUFPbFAsQ0FBQSxDLGdCQUFBLEUsZUFBQSxFLGVBQUEsQ0FBYixDLE9BQ0FrUCxTQUFBLEMsZUFBQSxFQUFZSCxTLENBQ1pHLFNBQUEsQyxnQkFBQSxFQUFnQkYsUyxDQUNoQkYsU0FBQSxDLFNBQUEsRUFBcUJLLFNBQUQsRSwyQkFDWixPQUFPQSxTQUFQLEcsVUFDQSxDQUFBQSxTQUFBLENBQU0sQyxPQUFFLENBQU9BLFNBQVQsQyxPQUFjLENBQU9BLFNBQXJCLENBQU4sQyxDQUVKLElBQUlDLFNBQUEsQ0FBS3BQLENBQUEsQyxlQUFBLEUsZ0JBQUEsRSxnQkFBQSxDQUFvQ21QLFNBQUEsQyxnQkFBQSxDQUFwQyxFLGdCQUFBLEVBQXdERCxTQUF4RCxDQUFULENBQ0lDLFNBQUEsQyxPQUFBLEMsRUFDQUMsU0FBQSxDLGVBQUEsRUFBUUQsU0FBQSxDLGdCQUFBLENBQVIsQyxDQUVBQSxTQUFBLEMsT0FBQSxDLEVBQ0FDLFNBQUEsQyxlQUFBLEUsZ0JBQUEsQ0FBaUJELFNBQUEsQyxPQUFBLENBQWpCLEMsSUFFQUEsU0FBQSxDLGdCQUFBLEMsS0FDSUEsU0FBQSxDLGdCQUFBLEUsZUFBQSxFLEdBQUEsSSxJQUNBblAsQ0FBQSxDQUFFbVAsU0FBQSxDLGdCQUFBLENBQUYsRSxnQkFBQSxFQUFzQkMsU0FBdEIsQyxNQUVLRCxTQUFBLEMsTUFBQSxFLGVBQUEsRSxHQUFBLElBQTBCLEMsSUFDL0JuUCxDQUFBLEMsZ0JBQUEsQ0FBUyxDLE9BQ0wsQyxnQkFESyxDLE9BRUwsQyxnQkFBTyxDQUFxQm1QLFNBQUEsQyxnQkFBQSxDQUFyQixDLG1DQUFBLENBQWdFQSxTQUFBLEMsZ0JBQUEsQ0FBaEUsQyxJQUZGLENBQVQsRSxnQkFBQSxFQUdhQyxTQUhiLEMsQ0FNQXBQLENBQUEsQyxnQkFBQSxDQUFTLEMsT0FBRSxDLGVBQU8sQ0FBNEJtUCxTQUFBLEMsZ0JBQUEsQ0FBckMsQ0FBVCxFLFdBQUEsRUFBb0VDLFNBQXBFLEMsT0FJSkEsU0FBQSxDLGdCQUFBLEVBQU8sQyxhQUFFLEMsZ0JBQUYsQ0FBUCxDLENBRUEsQ0FBQ0QsU0FBQSxDLGdCQUFBLENBQUQsRUFBYSxDQUFDQSxTQUFBLEMsZ0JBQUEsQyxFQUNkQyxTQUFBLEMsZUFBQSxFQUFRRCxTQUFBLEMsZ0JBQUEsQ0FBUixDLENBRUosSUFBSUUsU0FBSixDQUNJTixTQUFBLEMsZ0JBQUEsQyxFQUNBLENBQUFNLFNBQUEsQ0FBS3JQLENBQUEsQyxrQ0FBQSxFLGdCQUFBLEUsZ0JBQUEsQyxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsQ0FFY21QLFNBQUEsQyxnQkFBQSxDQUZkLEUsZ0JBQUEsRUFHVUMsU0FIVixFLElBQUEsRSxlQUFBLENBSWdCLFNBQVVFLFNBQVYsQyxDQUNqQkEsU0FBQSxDLGdCQUFBLEcsRUFMQyxDQUFMLEMsQ0FRSkYsU0FBQSxDLElBQUEsRSxnQkFBQSxDQUFlLFNBQVVHLFNBQVYsQywyQkFDWEEsU0FBQSxDLGVBQUEsRyxDQUNBQSxTQUFBLEMsZUFBQSxHLENBQ0ksQ0FBQ1IsU0FBQSxDLGdCQUFBLEMsRUFDREMsU0FBQSxDQUFTRyxTQUFBLEMsZ0JBQUEsQ0FBVCxDLENBQ0FGLFNBQUEsQyxlQUFBLEVBQWVDLFNBQWYsQyxFQUdBRyxTQUFBLEMsZUFBQSxFLGdCQUFBLENBQW1CLENBQUNBLFNBQUEsQyxlQUFBLEUsU0FBQSxDQUFwQixDLEVBUlIsQyxFQXpDSixDLENBcURBSCxTQUFBLEMsZ0JBQUEsRUFBUyxDLFNBQ0wsQyxnQkFESyxDQUFULEMsQ0FHQUEsU0FBQSxDLElBQUEsRSxTQUFBLENBQW1CLFNBQVVNLFNBQVYsQyw4QkFDWEEsU0FBQSxDLFNBQUEsSSxLQUNBQSxTQUFBLEMsZ0JBQUEsRyxDQUVBeFAsQ0FBQSxDQUFFLElBQUYsRSxlQUFBLEUsZUFBQSxFLGdCQUFBLEksZUFBQSxFLE9BQUEsQyxTQUVLd1AsU0FBQSxDLFNBQUEsSSxLQUNMQSxTQUFBLEMsZUFBQSxHLENBRUF4UCxDQUFBLENBQUUsSUFBRixFLGVBQUEsRSxlQUFBLEUsTUFBQSxJLGVBQUEsRSxlQUFBLEMsTUFFS3dQLFNBQUEsQyxlQUFBLEksT0FFTEEsU0FBQSxDLGVBQUEsRyxDQUNBUCxTQUFBLEMsZUFBQSxFQUFlQyxTQUFmLEMsR0FFSk0sU0FBQSxDLGVBQUEsRyxFQWhCSixDLENBa0JPTixTLEVBNUprQixDLGFBOEo3QixDLEdBOUo2QixDLFdBK0o3QixDQUFVTyxTQUFWLENBQWdCQyxTQUFoQixDLDhCQUNRLEssZ0JBQUEsQyxFQUNBLEssZ0JBQUEsRSxHQUFBLENBQ0EsTyxDQUVKLElBQUlDLFNBQUEsQ0FBTyxJQUFYLENBQ0lDLFNBQUEsQ0FBTUYsU0FBQSxDLGdCQUFBLEdBRFYsQ0FFSUcsU0FBQSxDQUFTSCxTQUFBLEMsZUFBQSxHQUZiLENBR0lJLFNBQUEsQ0FBYUwsU0FBQSxDLGVBQUEsR0FIakIsQ0FJSU0sU0FBQSxDQUFNRixTQUFBLENBQVNELFNBQUEsQyxlQUFBLENBSm5CLENBS0lHLFNBQUEsQ0FBTUQsU0FBTixDQUFtQjlQLENBQUEsQ0FBRTRPLFFBQUYsRSxnQkFBQSxHQUFuQixDQUE2QzVPLENBQUEsQ0FBRWdRLE1BQUYsRSxlQUFBLEcsRUFDN0MsQ0FBQUQsU0FBQSxFQUFPQSxTQUFBLENBQU1ELFNBQU4sQ0FBbUI5UCxDQUFBLENBQUVnUSxNQUFGLEUsZUFBQSxHQUFuQixDLEdBQVAsQyxDQUVBRCxTQUFBLEMsTUFDQU4sU0FBQSxDLGVBQUEsRUFBWUssU0FBQSxDQUFhQyxTQUF6QixDLENBQ0FBLFNBQUEsQyxLQUVKTixTQUFBLEMsZ0JBQUEsRUFBUyxDLEtBQ0wsQ0FBS00sU0FBQSxDLElBREEsQyxNQUVMLENBQU1ILFNBQUEsQyxnQkFBQSxFLElBRkQsQ0FBVCxDLENBSUFILFNBQUEsQyxnQkFBQSxFLElBQUEsQyxDQUNBLEssZUFBQSxFQUFZLFUsMkJBQ1JFLFNBQUEsQyxlQUFBLEUsZUFBQSxFLHlCQUFBLEMsQ0FDQTNQLENBQUEsQ0FBRTRPLFFBQUYsRSxJQUFBLEUsbURBQUEsQ0FBb0UsU0FBVXFCLFNBQVYsQywyQkFDNUQsQ0FBQ2pRLENBQUEsQ0FBRWlRLFNBQUEsQyxRQUFBLENBQUYsRSxnQkFBQSxFQUF3QlIsU0FBeEIsRSxlQUFBLEMsRUFDREUsU0FBQSxDLGVBQUEsRUFBZUYsU0FBZixDLENBRUF6UCxDQUFBLENBQUVpUSxTQUFBLEMsZ0JBQUEsQ0FBRixFLGdCQUFBLEVBQXdCUCxTQUF4QixFLFFBQUEsQyxHQUNBQyxTQUFBLEMsZ0JBQUEsRSxLQUNBTSxTQUFBLEMsZUFBQSxHLEdBTlIsQyxFQUZKLEMsRUFyTHlCLEMsZUFrTTdCLEUsMkJBQ1VDLFNBQUEsQ0FBTyxJLENBQ2IsSyxlQUFBLEVBQWVBLFNBQUEsQyxnQkFBQSxDQUFmLENBQTJCQSxTQUFBLEMsZ0JBQUEsQ0FBM0IsQyxDQUNBQSxTQUFBLEMsV0FBQSxFLGdCQUFBLEdBREEsQ0FFQSxNQUFNQyxTQUFBLENBQU9ELFNBQUEsQyxnQkFBQSxDQUFiLENBQ0EsSUFBSUUsU0FBQSxDQUFXRixTQUFBLEMsZ0JBQUEsRSxlQUFBLEUsZUFBZ0IsQ0FBYUMsU0FBYixDLE1BQWhCLENBQWYsQ0FDQXZILFVBQUEsQ0FBVyxVLDJCQUNQd0gsU0FBQSxDLGVBQUEsRSxlQUFBLEMsRUFESixDLElBQUEsQyxFQXhNeUIsQyxXQTRNN0IsRSwyQkFDVUMsU0FBQSxDQUFPLEksQ0FDYkEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxDQUFxQyxDLEdBQXJDLEMsQ0FDQUEsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLGdCQUFBLENBQWtFLFNBQVVDLFNBQVYsQywyQkFDOURBLFNBQUEsQyxlQUFBLEcsRUFESixDQURBLENBSUlELFNBQUEsQyxnQkFBQSxDLEVBQ0FBLFNBQUEsQyxPQUFBLEUsZ0JBQUEsRyxDQUdKLE1BQU1FLFNBQUEsQ0FBVyxDQUNiLEMsT0FBRSxDLE1BQUYsQyxPQUFpQixDLEdBQWpCLEMsT0FBNkIsQyxnQ0FBN0IsQyxNQUE2RCxDLDBDQUE3RCxDQURhLENBRWIsQyxPQUNJLEMsZUFESixDLE9BRUksQyxLQUZKLEMsT0FHSSxDLGdCQUhKLEMsTUFJSSxDLGdCQUpKLENBRmEsQ0FRYixDLE9BQUUsQyxlQUFGLEMsT0FBbUIsQyxHQUFuQixDLE1BQStCLEMsbURBQS9CLENBUmEsQ0FTYixDLE9BQUUsQyxlQUFGLEMsT0FBMkIsQyxJQUEzQixDLE1BQXdDLEMsZ0JBQXhDLENBVGEsQ0FVYixDLE9BQUUsQyxnQkFBRixDLE9BQXNDLEMsZ0JBQXRDLEMsTUFBb0QsQyxrREFBcEQsQ0FWYSxDQVdiLEMsT0FBRSxDLFlBQUYsQyxPQUF1QixDLEdBQXZCLEMsTUFBbUMsQyxnQkFBbkMsQ0FYYSxDQVliLEMsT0FDSSxDLDJCQURKLEMsT0FFSSxDLElBRkosQyxNQUdJLEMsZUFISixDQVphLENBQWpCLENBa0JNQyxTQUFBLENBQUl0SyxTQUFBLENBQXVCbUssU0FBQSxDLGdCQUFBLEUsS0FBQSxHQUF2QixDQWxCVixDQW1CTUksU0FBQSxDQUFJRixTQUFBLEMsTUFBQSxFQUFlRyxTQUFELEVBQU9BLFNBQUEsQyxnQkFBQSxJQUFZRixTQUFqQyxDQW5CVixDQW9CQUgsU0FBQSxDLGVBQUEsRSxnQkFBQSxJLFFBQUEsRSxpQkFBZ0QsQ0FBQyxDQUFBSSxTQUFBLEdBQU0sSUFBTixFQUFjQSxTQUFBLEdBQU0sSyxHQUFwQixDQUE2QixLLEdBQTdCLENBQXNDQSxTQUFBLEMsZ0JBQUEsQ0FBdEMsQ0FBRCxFLEVBQUEsQyxpQkFBZ0UsQ0FBQyxDQUFBQSxTQUFBLEdBQU0sSUFBTixFQUFjQSxTQUFBLEdBQU0sSyxHQUFwQixDQUE2QixLLEdBQTdCLENBQXNDQSxTQUFBLEMsZ0JBQUEsQ0FBdEMsQ0FBRCxFLEVBQUEsQyxVQUFoSCxDLENBQ0FKLFNBQUEsQyxnQkFBQSxFQUF3QkcsU0FEeEIsQ0FFQSxNQUFNRyxTQUFBLENBQUssSUFBWCxDQUNBTixTQUFBLEMsZ0JBQUEsRUFBYSxLLGVBQUEsRUFBaUJFLFNBQWpCLENBQTJCLEVBQTNCLENBQWdDSyxTQUFELEUsMkJBQ2xDQyxTQUFBLENBQU94SyxTQUFBLENBQU91SyxTQUFQLEMsQ0FDVEMsUyxFQUVBRixTQUFBLEMsZ0JBQUEsRUFBVUUsU0FBVixDLENBRUosTUFBTUMsU0FBQSxDQUFJUCxTQUFBLEMsZUFBQSxFQUFlUSxTQUFELEVBQU9BLFNBQUEsQyxnQkFBQSxJQUFZSCxTQUFqQyxDQUFWLENBQ0FQLFNBQUEsQyxnQkFBQSxFQUF3Qk8sUyxDQUN4QlAsU0FBQSxDLGVBQUEsRSxnQkFBQSxJLGdCQUFBLEUsaUJBQWdELENBQUMsQ0FBQVMsU0FBQSxHQUFNLElBQU4sRUFBY0EsU0FBQSxHQUFNLEssR0FBcEIsQ0FBNkIsSyxHQUE3QixDQUFzQ0EsU0FBQSxDLGdCQUFBLENBQXRDLENBQUQsRSxFQUFBLEMsaUJBQWdFLENBQUMsQ0FBQUEsU0FBQSxHQUFNLElBQU4sRUFBY0EsU0FBQSxHQUFNLEssR0FBcEIsQ0FBNkIsSyxHQUE3QixDQUFzQ0EsU0FBQSxDLE1BQUEsQ0FBdEMsQ0FBRCxFLEVBQUEsQyxpQkFBaEgsQyxFQVJTLEMsQ0FVYlQsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBb0J6QixRQUFBLEMsZUFBQSxDQUFwQixDLENBQ0F5QixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHLENBQ0FBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEcsRUF6UHlCLEMsTUEyUDdCLEUsQ0FDSSxNQUFNVyxTQUFBLENBQU8sSUFBYixDLE9BQ08zSyxTQUFBLENBQU8ySyxTQUFBLEMsa0JBQUEsQ0FBUCxDLEVBN1BrQixDLFNBK1A3QixDQUFRQyxTQUFSLEMsMkJBQ1VDLFNBQUEsQ0FBTyxJLENBQ1BDLFNBQUEsQ0FBSTNLLFNBQUEsQ0FBU3lLLFNBQVQsQyxDQUNWQyxTQUFBLEMsZ0JBQUEsRUFBd0JDLFMsRUFsUUMsQyxTQW9RN0IsRSwyQkFFVUMsU0FBQSxDQUFPLEksQ0FDYkEsU0FBQSxDLGdCQUFBLEVBQWMsSyxTQUFBLEMsQ0FDZEEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxlQUFBLEMsZ0JBQUEsQyxDQUVBQSxTQUFBLEMsZ0JBQUEsRUFBbUJBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsRSxRQUFBLEksZUFBQSxFLGNBQUEsQyxDQUVuQkEsU0FBQSxDLGdCQUFBLEVBQWNwUixDQUFBLEMsUUFBQSxDLENBQ2RvUixTQUFBLEMsZ0JBQUEsRSxlQUFBLEUsb0JBQUEsQyxDQUVBQSxTQUFBLEMsZ0JBQUEsRSxhQUFBLEVBQXdCQSxTQUFBLEMsZ0JBQUEsQ0FBeEIsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRUFBbUJwUixDQUFBLEMsUUFBQSxFLGVBQUEsRSxhQUFBLEMsQ0FDbkJvUixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUFtQkEsU0FBQSxDLGdCQUFBLENBQW5CLEMsQ0FDQUEsU0FBQSxDLGFBQUEsRSxnQkFBQSxFQUF3QkEsU0FBQSxDLGdCQUFBLENBQXhCLEMsQ0FJQUEsU0FBQSxDLGVBQUEsRUFBc0JwUixDQUFBLEMsZUFBQSxDLENBQ3RCb1IsU0FBQSxDLGdCQUFBLEUsT0FBQSxFQUFrQkEsU0FBQSxDLGVBQUEsQ0FBbEIsQyxDQUNBQSxTQUFBLEMsZUFBQSxFLElBQUEsRSxnQkFBQSxDQUFnQyxVLFFBQ3JCOVEsU0FBQSxDQUFVLElBQVYsQ0FBZ0IsSyxHQUFoQixDQUF3QixLLEdBQXhCLENBQWdDLFcseUJBQ25DLElBQUkrUSxTQUFKLENBQ0EsSUFBSUMsU0FBQSxDLEdBQUosQ0FDSUMsU0FESixDQUVJLENBQUNILFNBQUEsQyxlQUFBLEUsSUFBQSxFLGdCQUFBLEMsR0FDREEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRyxDQUVBRyxTQUFBLENBQWEsTUFBTUgsU0FBQSxDLGVBQUEsRyxDQUNmLENBQUFHLFNBQUEsR0FBZUgsU0FBQSxDLGVBQUEsQ0FBZixFQUFzQyxDQUFDLENBQUFDLFNBQUEsQ0FBS0QsU0FBQSxDLGdCQUFBLENBQUwsQ0FBRCxHQUE4QixJQUE5QixFQUFzQ0MsU0FBQSxHQUFPLEssR0FBN0MsQ0FBc0QsSyxHQUF0RCxDQUErREEsU0FBQSxDLFFBQUEsQ0FBL0QsQ0FBRCxHQUErRUUsU0FBQSxDLFFBQUEsQ0FBcEgsQyxFQUNBLE9BQU1ILFNBQUEsQyxnQkFBQSxHQUFOLEMsQ0FFSkUsU0FBQSxDLE1BRUpGLFNBQUEsQyxXQUFBLEUsZUFBQSxHLENBQ0FFLFNBQUEsRUFBeUIsT0FBTXRGLFNBQUEsQ0FBZW9GLFNBQWYsQ0FBcUJHLFNBQXJCLENBQU4sQyxFQWR0QixDLEVBRFgsQyxDQW9CQUgsU0FBQSxDLGdCQUFBLEVBQWtCcFIsQ0FBQSxDLGdCQUFBLEMsQ0FDbEJvUixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUFrQkEsU0FBQSxDLGdCQUFBLENBQWxCLEMsQ0FDQUEsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLGdCQUFBLENBQTRCLEksMkJBQ2xCSSxTQUFBLENBQU9KLFNBQUEsQyxnQkFBQSxHLElBQ1QsQ0FBQ0ksUyxDQUNELE9BRUosSyxnQkFBQSxFQUFZQSxTQUFaLEMsRUFMSixDQXZDQSxDQWdEQSxNQUFNQyxTQUFBLENBQWtCQyxTQUFELEVBQVdwUixTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVywyQkFDeERxUixTQUFBLENBQU8sSSxDQUNiLElBQUlDLFNBQUEsQ0FBT0QsU0FBQSxDLGdCQUFBLEdBQVgsQyxHQUNJLENBQUNDLFMsQ0FDRCxPQUdKLE1BQU1DLFNBQUEsQ0FBaUJ2RixTQUFBLENBQWVxRixTQUFmLENBQXZCLENBQ00sQ0FBRXBKLElBQUEsQ0FBQXVKLFNBQUYsQ0FBUXpKLElBQUEsQ0FBQTBKLFNBQVIsRUFBaUIsTUFBTXJMLFNBQUEsQ0FBaUJtTCxTQUFqQixDQUFpQ0gsU0FBakMsQ0FEN0IsQyxHQUVJSSxTQUFBLEMsZUFBQSxJLEtBQ0EsTyxHQUVBQyxTQUFBLEMsZ0JBQUEsRSxlQUFBLEVBQXNCLE1BQXRCLEMsRUFDQSxNQUFNQyxTQUFBLENBQWlCdE0sU0FBQSxDQUFhcU0sU0FBYixDQUFtQkgsU0FBbkIsQ0FBdkIsQ0FDQUQsU0FBQSxDLGdCQUFBLEUsS0FBQSxFQUFnQkssU0FBaEIsQyxDQUNBTCxTQUFBLEMsZ0JBQUEsRSxlQUFBLEUsZ0JBQUEsQyxHQWYwQixDQUFsQyxDLENBc0JJUCxTQUFBLEMsZUFBQSxFQUFpQnBSLENBQUEsQyxnQkFBQSxDLENBQ2pCb1IsU0FBQSxDLGdCQUFBLEUsUUFBQSxFQUFtQkEsU0FBQSxDLGVBQUEsQ0FBbkIsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRUFBc0JwUixDQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUE0RG9SLFNBQUEsQyxlQUFBLENBQTVELEMsQ0FDdEJwUixDQUFBLEMsd0VBQUEsRSxlQUFBLEUsSUFBQSxFLGdCQUFBLEVBQW1Gb1IsU0FBQSxDLGdCQUFBLENBQW5GLEMsQ0FDQUEsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLGdCQUFBLENBQWdDLFNBQVVhLFNBQVYsQywyQkFDNUJBLFNBQUEsQyxlQUFBLEcsQ0FDQUEsU0FBQSxDLGVBQUEsRyxDQUNBYixTQUFBLEMsZ0JBQUEsRyxFQUhKLEMsQ0FLQUEsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLGdCQUFBLENBQ21CLFNBQVVjLFNBQVYsQywyQkFDWEEsU0FBQSxDLFNBQUEsSSxNQUVBZCxTQUFBLEMsZUFBQSxHLENBRUpjLFNBQUEsQyxlQUFBLEcsRUFOSixFLElBQUEsRSxlQUFBLENBUWlCLFUsMkJBQ2JkLFNBQUEsQyxlQUFBLEUsZUFBQSxFLGVBQUEsQyxFQVRKLEUsSUFBQSxFLGVBQUEsQ0FXZ0IsVSwyQkFHWkEsU0FBQSxDLGVBQUEsRSxlQUFBLEUseUJBQUEsQyxFQWRKLEMsQ0FpQkFBLFNBQUEsQyxjQUFBLEVBQW9CcFIsQ0FBQSxDLDZEQUFBLEUsZ0JBQUEsRUFBaUVvUixTQUFBLEMsZ0JBQUEsQ0FBakUsQyxFQUV4QixLLGVBQUEsSUFDSSxDQUFDQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGFBQUEsQyxFQUNEQSxTQUFBLEMsZ0JBQUEsRSxNQUFBLEUsYUFBQSxDLG1EQUFBLEMsQ0FHSkEsU0FBQSxDLGdCQUFBLEVBQWFwUixDQUFBLEMsZ0JBQUEsQyxDQUNib1IsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUFtQkEsU0FBQSxDLGdCQUFBLENBQW5CLEMsQ0FHQUEsU0FBQSxDLGVBQUEsRUFBaUJwUixDQUFBLEMsUUFBQSxFLFVBQUEsRSxtQkFBQSxFLE1BQUEsSSxVQUFBLEVBQTBEb1IsU0FBQSxDLFFBQUEsQ0FBMUQsQyxDQUNqQkEsU0FBQSxDLGVBQUEsRUFBYXBSLENBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQThDb1IsU0FBQSxDLFdBQUEsQ0FBOUMsQyxDQUViLEssZ0JBQUEsR0FSQSxDQVVBLE1BQU1lLFNBQUEsQ0FBZSxDQUFDQyxTQUFELENBQU1DLFNBQU4sRywyQkFDWEMsU0FBQSxDLEtBQ0FDLFNBQUEsQyxLQUNBQyxTQUFBLENBQWFKLFNBQUEsQyxRQUFBLEcsQ0FDYkssU0FBQSxDQUFJSixTLElBQ05JLFNBQUEsQyxPQUFBLEdBQVdELFNBQUEsQyxnQkFBQSxDQUFYLEVBQ0FDLFNBQUEsQyxlQUFBLEdBQVdELFNBQUEsQyxnQkFBQSxFQUFrQkYsU0FEN0IsRUFFQUcsU0FBQSxDLGdCQUFBLEdBQVdELFNBQUEsQyxlQUFBLENBRlgsRUFHQUMsU0FBQSxDLGdCQUFBLEdBQVdELFNBQUEsQyxlQUFBLEVBQWlCRCxTLHVCQVJwQyxDQWFNRyxTQUFBLENBQW1CQyxTQUFELEVBQVNyUyxTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyw4QkFDekRxUyxTQUFBLEMsVUFBQSxFLGVBQUEsQyxDQUNBcEgsU0FBQSxDQUFVNkYsU0FBVixDQUFnQnVCLFNBQWhCLEMsU0FFS0EsU0FBQSxDLFVBQUEsRSxnQkFBQSxDLENBRUxBLFNBQUEsQyxlQUFBLEUsSUFBQSxFLFFBQUEsRyxDQUVBQSxTQUFBLEMsYUFBQSxFLGVBQUEsQyxTQUVLQSxTQUFBLEMsZUFBQSxFLElBQUEsRSxVQUFBLEksZUFBQSxFLElBQ0xBLFNBQUEsQyxVQUFBLEUsSUFBQSxFLGVBQUEsRyxDQUVBQSxTQUFBLEMsZ0JBQUEsRSxlQUFBLEMsU0FieUIsQ0FiakMsQ0E4QkF2QixTQUFBLEMsZUFBQSxFLElBQUEsRSxnQkFBQSxDLElBQUEsQ0FBZ0MsU0FBVXdCLFNBQVYsQywyQkFDNUIsSUFBSUMsU0FBSixDQUFRQyxTQUFSLENBQ0FGLFNBQUEsQyxlQUFBLElBQ0EsSUFBSUcsU0FBQSxDQUFNL1MsQ0FBQSxDQUFFLElBQUYsQ0FBVixDLEdBQ0ltUyxTQUFBLENBQWFZLFNBQWIsQ0FBa0JILFNBQWxCLEMsQ0FDQUYsU0FBQSxDQUFnQkssU0FBaEIsQyxNQUdBLE1BQU1DLFNBQUEsQ0FBUUQsU0FBQSxDLGdCQUFBLEUsT0FBQSxDQUFkLENBQ01FLFNBQUEsQ0FBWUYsU0FBQSxDLGdCQUFBLEUsV0FBQSxDQURsQixDLEdBRUkzQixTQUFBLEMsZ0JBQUEsRSxlQUFBLEdBQTZCLENBQUNBLFNBQUEsQyxTQUFBLEUsY0FBQSxFQUEwQjZCLFNBQTFCLEMsQ0FDOUIsT0FFSjdCLFNBQUEsQyxRQUFBLEUsZ0JBQUEsRSxXQUFBLENBQThCNkIsU0FBOUIsQyxDQUNDLENBQUMsQ0FBQUosU0FBQSxDQUFLSSxTQUFBLEMsYUFBQSxDQUFMLENBQUQsR0FBaUMsSUFBakMsRUFBeUNKLFNBQUEsR0FBTyxLLEdBQWhELENBQXlELEssR0FBekQsQ0FBa0VBLFNBQUEsQyxlQUFBLENBQWxFLENBQUQsRUFBZ0YsQ0FBQyxDQUFBQyxTQUFBLENBQUtHLFNBQUEsQyxnQkFBQSxDQUFMLENBQUQsR0FBZ0MsSUFBaEMsRUFBd0NILFNBQUEsR0FBTyxLLEdBQS9DLENBQXdELEssR0FBeEQsQ0FBaUVBLFNBQUEsQyxnQkFBQSxDQUFqRSxDQUFoRixFQUE2SkcsU0FBQSxDLFFBQUEsRSxVQUFBLEdBRDdKLENBR0EsSUFBSUMsU0FBQSxDQUFPOUIsU0FBQSxDLE1BQUEsR0FBWCxDQUNJLENBQUM4QixTLEdBQ0RBLFNBQUEsQyxTQUNBOUIsU0FBQSxDLGdCQUFBLEVBQWE4QixTQUFiLEMsRUFFSnpCLFNBQUEsQ0FBZXVCLFNBQWYsRSxlQUFBLEVBQ1UsSSwyQkFHTjVCLFNBQUEsQyxlQUFBLEUsZ0JBQUEsRyxFQUpKLEUsZ0JBQUEsRUFNWStCLFNBQUQsRSwyQkFHUC9CLFNBQUEsQyxlQUFBLEUsZ0JBQUEsRyxFQVRKLEMsR0FyQlIsQyxDQWtDQUEsU0FBQSxDLGVBQUEsRSxJQUFBLEUsZ0JBQUEsQyxJQUFBLENBQTZCLFNBQVVnQyxTQUFWLEMsMkJBQ3pCQSxTQUFBLEMsZUFBQSxJQUNBLElBQUlDLFNBQUEsQ0FBTXJULENBQUEsQ0FBRSxJQUFGLENBQVYsQ0FDSW1TLFNBQUEsQ0FBYWtCLFNBQWIsQ0FBa0JELFNBQWxCLEMsRUFDQVYsU0FBQSxDQUFnQlcsU0FBaEIsQyxDQUVKeEksU0FBQSxDQUFhdUcsU0FBYixDQUFtQmlDLFNBQW5CLEMsRUFOSixDLENBUUFyVCxDQUFBLENBQUU0TyxRQUFGLEUsSUFBQSxFLGdCQUFBLENBQXdCLFNBQVUwRSxTQUFWLEMsMkJBRWhCLENBQUN0VCxDQUFBLENBQUVzVCxTQUFBLEMsZ0JBQUEsQ0FBRixFLGdCQUFBLEVBQXdCbEMsU0FBQSxDLGdCQUFBLENBQXhCLEUsZUFBQSxDLEVBQ0RBLFNBQUEsQyxlQUFBLEUsZ0JBQUEsRyxFQUhSLEMsRUFoY3lCLENBQWpDLEMsRUFmSixDQXlkTW1DLFNBQUEsQ0FBZUMsU0FBRCxFLDJCQUNoQixJQUFJQyxTQUFKLENBQVFDLFNBQVIsQ0FBWUMsU0FBWixDLEdBQ0ksQ0FBQ0gsUyxFQUNELE1BQU1JLFNBQUEsQ0FBVzVULENBQUEsQywyR0FBQSxDQUFqQixDLE9BQ080VCxTLEVBRVgsTUFBTUMsU0FBQSxDQUFJTCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHQUFWLENBQ0EsSUFBSU0sU0FBQSxDQUFLLENBQUMsQ0FBQUwsU0FBQSxDQUFLRCxTQUFBLEMsZ0JBQUEsQ0FBTCxDQUFELEdBQWlDLElBQWpDLEVBQXlDQyxTQUFBLEdBQU8sSyxHQUFoRCxDQUF5RCxLLEdBQXpELENBQWtFQSxTQUFBLEMsZUFBQSxDQUFsRSxDQUFELEVBQWdGLENBQUMsQ0FBQUMsU0FBQSxDQUFLRixTQUFBLEMsWUFBQSxDQUFMLENBQUQsR0FBZ0MsSUFBaEMsRUFBd0NFLFNBQUEsR0FBTyxLLEdBQS9DLENBQXdELEssR0FBeEQsQ0FBaUVBLFNBQUEsQyxNQUFBLENBQWpFLENBQWhGLEVBQTZKRixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHQUFySyxDQUNJTyxTQUFBLENBQU0sQ0FBQUosU0FBQSxDQUFLSCxTQUFBLEMsWUFBQSxDQUFMLENBQUQsR0FBZ0MsSUFBaEMsRUFBd0NHLFNBQUEsR0FBTyxLLEdBQS9DLENBQXdELEssR0FBeEQsQ0FBaUVBLFNBQUEsQyxnQkFBQSxDQUQxRSxDQUVBRyxTQUFBLEVBQUtDLFNBQUEsR0FBT2pJLFNBQVAsRUFBb0IwSCxTQUFBLEMsZ0JBQUEsRSxlQUFBLEVBQTBCLE1BQTFCLENBQXBCLEMsaUJBQWdFTyxTLElBQWhFLEMsRUFBTCxDQUNBLE1BQU0sQ0FBRTNKLElBQUEsQ0FBQTRKLFNBQUYsQ0FBUTFKLEtBQUEsQ0FBQTJKLFNBQVIsRUFBa0JqUixTQUFBLENBQVF3USxTQUFSLENBQXhCLENBQ01VLFNBQUEsQ0FBV2xVLENBQUEsQyxlQUFBLENBRGpCLEMsR0FFSXdULFNBQUEsQyxXQUFBLEksa0JBQ0EsTUFBTVcsU0FBQSxDQUFXblUsQ0FBQSxDLGVBQUEsQ0FBakIsQ0FDQWtVLFNBQUEsQyxnQkFBQSxFQUFnQkMsU0FBaEIsQyxDQUVBQSxTQUFBLEMsSUFBQSxFLGdCQUFBLENBQXFCLFUsMkJBQ2JBLFNBQUEsQyxVQUFBLEUsZ0JBQUEsQyxDQUNBQSxTQUFBLEMsZUFBQSxFLGdCQUFBLEUsZUFBQSxFLFNBQUEsQyxDQUdBQSxTQUFBLEMsZUFBQSxFLGdCQUFBLEUsZUFBQSxFLGdCQUFBLEMsRUFMUixDLFNBU0pELFNBQUEsQyxnQkFBQSxFQUFnQmxVLENBQUEsQyxpQkFBa0JnVSxTLDRCQUFzQkMsUyxjQUFlSCxTLGlCQUF2RCxDQUFoQixDLENBQ0FJLFNBQUEsQyxlQUFBLEUsZUFBQSxDLENBQ0FBLFNBQUEsQyxNQUFBLEUsZ0JBQUEsQ0FBdUJMLFNBQXZCLEMsQ0FDQUssU0FBQSxDLE1BQUEsRSxXQUFBLENBQTJCVixTQUEzQixDLENBQ09VLFMsRUF0ZlgsQ0F3Zk1FLFNBQUEsQ0FBa0MsSSwyQkFRcENwVSxDQUFBLEMsZUFBQSxFLGdCQUFBLENBQXdDLEMsU0FFcEMsQ0FBUyxDLGNBQ0wsQ0FBYyxLQUFPLEMsVUFBRSxDLGdCQUFGLENBQVAsQ0FEVCxDLFVBRUwsQ0FBVSxJQUFNOEwsU0FGWCxDLFNBR0wsQyxFQUhLLENBRjJCLEMsV0FPcEMsRSxRQUNXeEwsU0FBQSxDQUFVLElBQVYsQ0FBZ0IsSyxHQUFoQixDQUF3QixLLEdBQXhCLENBQWdDLFcsd0JBQ25DLElBQUkrVCxTQUFKLENBQ0EsTUFBTUMsU0FBQSxDQUFPLElBQWIsQ0FDTUMsU0FBQSxDQUFnQixJQUFJQyxHQUFKLENBQVMsQ0FBQyxDQUFBSCxTQUFBLENBQUtDLFNBQUEsQyxRQUFBLEUsZUFBQSxHQUFMLENBQUQsR0FBNkIsSUFBN0IsRUFBcUNELFNBQUEsR0FBTyxLLEdBQTVDLENBQXFELEssR0FBckQsQ0FBOERBLFNBQUEsQyxlQUFBLEksT0FBQSxFLEdBQUEsQ0FBOUQsQ0FBRCxFQUE0RixFQUFwRyxDQUR0QixDQUVNSSxTQUFBLENBQU9uSSxTQUFBLENBQWVnSSxTQUFmLENBRmIsQ0FHTUksU0FBQSxDQUFTLE1BQU1DLFNBQUEsQ0FBc0JGLFNBQXRCLENBSHJCLENBSUEsSyxlQUFBLEVBQWtCQyxTQUFsQixDQUEwQkgsU0FBMUIsQyxFQU5HLEMsRUFSeUIsQyxjQWlCcEMsQ0FBYUssU0FBYixDQUFxQkMsU0FBckIsQywyQkFDVUMsU0FBQSxDQUFPLEksQ0FDYkEsU0FBQSxDLGVBQUEsRSxnQkFBQSxJLEdBQ0ksQ0FBQ0YsU0FBQSxDLGVBQUEsQyxDQUNELE9BRUosTUFBTUcsU0FBQSxDQUFPSCxTQUFBLEMsZUFBQSxDQUFiLENBQ01JLFNBQUEsQ0FBZXpCLFNBQUEsQ0FBWXdCLFNBQVosQ0FEckIsQ0FFQUQsU0FBQSxDLGVBQUEsRSxnQkFBQSxFQUFrQkUsU0FBbEIsRUFDQSxNQUFNQyxTQUFBLEMsRUFBTixDQUNBLEssZ0JBQUEsRUFBc0JELFNBQUEsQyxlQUFBLEUsSUFBQSxDQUF0QixDQUFtREQsU0FBbkQsQ0FBeURFLFNBQXpELENBQWlFSixTQUFqRSxDLENBQ0FHLFNBQUEsQyxlQUFBLEUsZUFBQSxFLGVBQUEsRSxVQUFBLEMsQ0FDQSxLLGdCQUFBLEVBQW1CSCxTQUFuQixDLEVBN0JnQyxDLGtCQStCcEMsQ0FBaUJLLFNBQWpCLENBQTBCQyxTQUExQixDQUFrQ0MsU0FBbEMsQ0FBMENDLFNBQTFDLEMsMkJBQ1VDLFNBQUEsQ0FBSSxDQUFDLENBQUVDLElBQUEsQ0FBQUMsU0FBRixDQUFRQyxjQUFBLENBQUFDLFNBQVIsQ0FBRCxHLElBQ0ZBLFNBQUEsRyxXQUNPRixTLFFBRURFLFMsS0FBa0JGLFMsR0FFMUJHLFNBQUEsQ0FBV1IsU0FBQSxDLGVBQUEsR0FBbUIsRSxDQUM5QlMsU0FBQSxDQUFXVCxTQUFBLEMsZ0JBQUEsR0FBbUIsRSxDQUM5QlUsUUFBQSxDQUFzQixDQUFDLEdBQUdGLFNBQUosQ0FBYyxHQUFHQyxTQUFqQixDLENBQzVCLFVBQVdFLFNBQVgsSUFBb0JELFFBQXBCLEMsQ0FDSSxNQUFNRSxTQUFBLENBQVd4QyxTQUFBLENBQVl1QyxTQUFaLENBQWpCLENBQ0FaLFNBQUEsQyxnQkFBQSxFQUFlYSxTQUFmLEVBQ0EsSUFBSUMsU0FBQSxDLEVBQUosQ0FDSUYsU0FBQSxDLFdBQUEsSSxtQkFDSVYsUyxDQUNBWSxTQUFBLENBQVVaLFNBQUEsQyxHQUFBLENBQWVFLFNBQUEsQ0FBRVEsU0FBQSxDLGdCQUFBLENBQUYsQyxDQUd6QkUsU0FBQSxDQUFVVixTQUFBLENBQUVRLFNBQUEsQyxnQkFBQSxDQUFGLEMsQ0FFZEMsU0FBQSxDLE1BQUEsRSxlQUFBLENBQTRCQyxTQUE1QixDLEVBRUosTUFBTUMsU0FBQSxDQUFjSCxTQUFBLEMsZUFBQSxHQUFrQkEsU0FBQSxDLGVBQUEsRSxlQUFBLENBQXRDLENBQ01JLFNBQUEsQ0FBY0osU0FBQSxDLFVBQUEsR0FBa0JBLFNBQUEsQyxnQkFBQSxFLGVBQUEsQ0FEdEMsQ0FFSSxDQUFDRyxTQUFELEVBQWdCLENBQUNDLFMsQ0FDakJILFNBQUEsQyxlQUFBLEUsZUFBQSxFLFVBQUEsRSxnQkFBQSxDLEVBR0EsSyxrQkFBQSxFQUFzQkEsU0FBQSxDLGVBQUEsRSxJQUFBLENBQXRCLENBQStDRCxTQUEvQyxDQUFzREUsU0FBdEQsQ0FBK0RYLFNBQS9ELEMsQ0FDQVUsU0FBQSxDLGVBQUEsRSxlQUFBLEUsZUFBQSxFLGdCQUFBLEMsSUE3RHdCLEMsdUJBaUVwQyxFLDJCQUNJLElBQUlJLFNBQUosQ0FDQSxNQUFNQyxTQUFBLENBQU8sSUFBYixDQUNNQyxTQUFBLENBQWlCLElBQUk3QixHQUFKLENBQVMsQ0FBQyxDQUFBMkIsU0FBQSxDQUFLQyxTQUFBLEMsZ0JBQUEsRSxLQUFBLEdBQUwsQ0FBRCxHQUE2QixJQUE3QixFQUFxQ0QsU0FBQSxHQUFPLEssR0FBNUMsQ0FBcUQsSyxHQUFyRCxDQUE4REEsU0FBQSxDLGdCQUFBLEksZUFBQSxFLEdBQUEsQ0FBOUQsQ0FBRCxFQUE0RixFQUFwRyxDQUR2QixDQUVBLEssZ0JBQUEsRUFBbUJFLFNBQW5CLEMsRUFyRWdDLEMsZUF1RXBDLENBQWNDLFNBQWQsQywyQkFDSXRXLENBQUEsQyxnQkFBQSxFLE1BQUEsRUFBNEIsVSwyQkFDbEJ1VyxTQUFBLENBQVF2VyxDQUFBLENBQUUsSUFBRixDLENBQ1J3VyxTQUFBLENBQUlELFNBQUEsQyxnQkFBQSxFLGVBQUEsQyxDQUNOQyxTQUFBLEVBQUtGLFNBQUEsQyxLQUFBLEVBQW1CRSxTQUFuQixDLEVBQ0xELFNBQUEsQyxlQUFBLEUsZ0JBQUEsRSxlQUFBLEUsZ0JBQUEsRSxlQUFBLEUsZ0JBQUEsQyxFQUpSLEMsRUF4RWdDLEMsZ0JBZ0ZwQyxFLDJCQUNVRSxTQUFBLENBQU8sSSxDQUNQQyxTQUFBLENBQU8sRSxDQUViMVcsQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBNEIsVSwyQkFDbEIyVyxTQUFBLENBQVEzVyxDQUFBLENBQUUsSUFBRixDLElBRVYyVyxTQUFBLEMsZUFBQSxFLGdCQUFBLEUsUUFBQSxFLEtBQ0EsTUFBTUMsU0FBQSxDQUFJRCxTQUFBLEMsZ0JBQUEsRSxlQUFBLENBQVYsQyxHQUNJQyxTLENBQ0FGLFNBQUEsQyxlQUFBLEVBQVVFLFNBQVYsRSxFQU5aLEVBU0EsTUFBTUMsU0FBQSxDQUFRLENBQUMsR0FBRyxJQUFJckMsR0FBSixDQUFRa0MsU0FBUixDQUFKLEUsZ0JBQUEsSSxNQUFBLEUsR0FBQSxDQUFkLENBQ0FELFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQWdCSSxTQUFoQixDLENBQ0FKLFNBQUEsQyxnQkFBQSxFLGVBQUEsRSxRQUFBLEMsRUEvRmdDLEMsU0FpR3BDLEUsMkJBQ1VLLFNBQUEsQ0FBTyxJLENBQ2JBLFNBQUEsQyxRQUFBLEVBQWMsSyxnQkFBQSxDLENBQ2RBLFNBQUEsQyxRQUFBLEVBQWM5VyxDQUFBLEMsZ0JBQUEsQyxDQUNkOFcsU0FBQSxDLGdCQUFBLEUsZUFBQSxFLGVBQUEsQyxDQUNBLEssZ0JBQUEsRSxHQUFBLEUsZUFBQSxFLGdCQUFBLEVBQTJDQSxTQUFBLEMsUUFBQSxFLEdBQUEsQ0FBM0MsQ0FBMkQsSyxnQkFBQSxFLEdBQUEsQ0FBM0QsQyxDQUVBQSxTQUFBLEMsZ0JBQUEsRUFBbUI5VyxDQUFBLEMsZ0JBQUEsRSxVQUFBLEUsZ0JBQUEsQyxDQUNuQjhXLFNBQUEsQyxnQkFBQSxFLFFBQUEsRUFBbUJBLFNBQUEsQyxnQkFBQSxDQUFuQixDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQXdCQSxTQUFBLEMsZ0JBQUEsQ0FBeEIsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRUFBc0I5VyxDQUFBLEMsZ0JBQUEsQyxDQUN0QjhXLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQXdCQSxTQUFBLEMsZUFBQSxDQUF4QixDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxnQkFBQSxDQUFnQyxVLDJCQUM1QkEsU0FBQSxDLFdBQUEsRSxlQUFBLEcsQ0FDQUEsU0FBQSxDLE9BQUEsRSxRQUFBLEdBREEsQyxHQUVJQSxTQUFBLEMsZUFBQSxFLElBQUEsRSxnQkFBQSxDLEVBQ0FDLFNBQUEsQyxNQUFBLElBQ0EsTUFBTUMsU0FBQSxDQUFTRixTQUFBLEMsV0FBQSxFLFFBQUEsR0FBZixDQUNBQyxTQUFBLEMsZ0JBQUEsRUFBcUIsQyxLQUNqQixDQUFRQyxTQUFBLEMsZUFBQSxDLEtBRFMsQyxPQUVqQixDLHFCQUFzQixDQUFBQSxTQUFBLEMsTUFBQSxFQUFjRixTQUFBLEMsZUFBQSxFLGdCQUFBLEdBQWQsQyxNQUZMLENBQXJCLEMsQ0FJQUEsU0FBQSxDLGVBQUEsRyxDQUNBQSxTQUFBLEMsZUFBQSxHLE9BR0FDLFNBQUEsQyxnQkFBQSxHLEVBZFIsQ0FWQSxDQTJCSSxDQUFDRCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGVBQUEsQyxFQUNEQSxTQUFBLEMsUUFBQSxFLGdCQUFBLEUsZUFBQSxDLGdCQUFBLEMsQ0FFSkEsU0FBQSxDLGdCQUFBLEVBQWE5VyxDQUFBLEMsd0NBQUEsQyxDQUNiOFcsU0FBQSxDLE9BQUEsRSxnQkFBQSxHLENBQ0FBLFNBQUEsQyxlQUFBLEVBQWlCOVcsQ0FBQSxDLFFBQUEsRSxVQUFBLEUsZ0JBQUEsRSxnQkFBQSxHQUZqQixDQUlBLE1BQU1pWCxTQUFBLENBQWtCalgsQ0FBQSxDLGVBQUEsQ0FBeEIsQ0FDTWtYLFNBQUEsQ0FBZ0JsWCxDQUFBLEMsZ0JBQUEsQ0FEdEIsQ0FFTStXLFNBQUEsQ0FBbUIvVyxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUFpRGlYLFNBQWpELENBQWtFQyxTQUFsRSxDQUZ6QixDQUdBSCxTQUFBLEMsZ0JBQUEsRyxDQUVBRSxTQUFBLEMsSUFBQSxFLE9BQUEsQ0FBNEIsSSwyQkFDeEJILFNBQUEsQyxlQUFBLEcsQ0FDQUEsU0FBQSxDLGVBQUEsRSxnQkFBQSxHLEVBRkosQyxDQUlBSSxTQUFBLEMsSUFBQSxFLGdCQUFBLENBQTBCLEksMkJBQ3RCSixTQUFBLEMsZUFBQSxFLGdCQUFBLEcsRUFESixDLENBR0FBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQW1CQSxTQUFBLEMsT0FBQSxDQUFuQixDLENBQ0FBLFNBQUEsQyxRQUFBLEUsZ0JBQUEsRUFBbUJBLFNBQUEsQyxlQUFBLENBQW5CLEMsQ0FDQUEsU0FBQSxDLE9BQUEsRUFBYTlXLENBQUEsQyxnQkFBQSxDLENBQ2I4VyxTQUFBLEMsZUFBQSxFLGdCQUFBLEksZ0JBQUEsRUFBOEJBLFNBQUEsQyxlQUFBLENBQTlCLENBQTBDQyxTQUExQyxDLENBQ0FELFNBQUEsQyxlQUFBLEUsSUFBQSxFLE9BQUEsQyxJQUFBLENBQTZCLFNBQVVLLFNBQVYsQywyQkFDekJBLFNBQUEsQyxlQUFBLElBQ0EsSUFBSUMsU0FBQSxDQUFNcFgsQ0FBQSxDQUFFLElBQUYsQ0FBVixDQUNBLE1BQU1xWCxTQUFBLEMsSUFBTixDQUNNQyxTQUFBLEMsSUFETixDQUVNQyxTQUFBLENBQWF2WCxDQUFBLENBQUUsSUFBRixFLGdCQUFBLEdBRm5CLENBR013WCxTQUFBLENBQUlMLFNBSFYsQyxHQUlJSyxTQUFBLEMsZUFBQSxHQUFXRCxTQUFBLEMsZ0JBQUEsQ0FBWCxFQUNBQyxTQUFBLEMsZUFBQSxHQUFXRCxTQUFBLEMsZ0JBQUEsRUFBa0JGLFNBRDdCLEVBRUFHLFNBQUEsQyxnQkFBQSxHQUFXRCxTQUFBLEMsZUFBQSxDQUZYLEVBR0FDLFNBQUEsQyxPQUFBLEdBQVdELFNBQUEsQyxlQUFBLEVBQWlCRCxTLEVBQzVCalQsT0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxDQUNBQSxPQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUEyQitTLFNBQUEsQyxNQUFBLEUsZ0JBQUEsQ0FBM0IsQ0FBOENBLFNBQUEsQyxnQkFBQSxFLGVBQUEsQ0FBOUMsQ0FEQSxDLEdBRUlBLFNBQUEsQyxnQkFBQSxFLGVBQUEsQyxDQUNBQSxTQUFBLEMsYUFBQSxFLGVBQUEsRSxlQUFBLEUsVUFBQSxDLENBQ0FBLFNBQUEsQyxVQUFBLEUsSUFBQSxFLFFBQUEsRyxTQUVLQSxTQUFBLEMsVUFBQSxFLGdCQUFBLEMsQ0FFTEEsU0FBQSxDLFVBQUEsRSxJQUFBLEUsUUFBQSxHLENBRUFBLFNBQUEsQyxnQkFBQSxFLHdCQUFBLEMsU0FFS0EsU0FBQSxDLGVBQUEsRSxJQUFBLEUsVUFBQSxJLFFBQUEsRSxJQUNMQSxTQUFBLEMsZUFBQSxFLElBQUEsRSxlQUFBLEcsQ0FFQUEsU0FBQSxDLGdCQUFBLEUsZUFBQSxDLFVBMUJaLEMsQ0ErQkFwWCxDQUFBLENBQUU0TyxRQUFGLEUsSUFBQSxFLGdCQUFBLENBQXdCLFNBQVU2SSxTQUFWLEMsMkJBRWhCLENBQUN6WCxDQUFBLENBQUV5WCxTQUFBLEMsUUFBQSxDQUFGLEUsZ0JBQUEsRUFBd0JYLFNBQUEsQyxRQUFBLENBQXhCLEUsZUFBQSxDLEVBQ0RBLFNBQUEsQyxlQUFBLEUsZ0JBQUEsRyxFQUhSLEMsQ0FNQSxLLGVBQUEsRyxFQTFMZ0MsQ0FBeEMsQyxFQWhnQkosQ0E4ckJNbkMsU0FBQSxDQUF5QitDLFNBQUQsRUFBUXBYLFNBQUEsQ0FBVSxLLEdBQVYsQ0FBa0IsQ0FBQ29YLFNBQUQsQ0FBbEIsQ0FBd0IsSyxHQUF4QixDQUFnQyxVQUFXLENBQUVwVSxZQUFBLENBQUFxVSxTQUFGLENBQWdCblUsUUFBQSxDQUFBb1UsU0FBaEIsQ0FBMEJsVSxPQUFBLENBQUFtVSxTQUExQixDQUFYLEMsMkJBQzVEQyxTQUFBLENBQVVELFMsdUJBQ1ZFLFNBQUEsQ0FBU0QsUyxzQkFDVEUsU0FBQSxDQUFPLE1BQU03VCxLQUFBLENBQU00VCxTQUFOLENBQVcsQyxRQUMxQixDLGdCQUQwQixDLE1BRTFCLENBQU0zVCxJQUFBLEMsZUFBQSxFQUFlLEMsY0FDakIsQ0FBQXVULFNBRGlCLEMsVUFFakIsQ0FBQUMsU0FGaUIsQ0FBZixDQUZvQixDLFNBTTFCLENBQVMsQyxjQUFFLEMsZ0JBQUYsQ0FOaUIsQ0FBWCxDLElBUWZJLFNBQUEsQyxlQUFBLEksWUFDQTNULE9BQUEsQyxnQkFBQSxFLGdCQUFBLENBQTBDMlQsU0FBQSxDLGVBQUEsQ0FBMUMsQ0FBdURBLFNBQUEsQyxnQkFBQSxDQUF2RCxDLENBQ08sQyxRQUFFLENBQVEsSUFBVixDLENBRVgzVCxPQUFBLEMsZ0JBQUEsRSxlQUFBLENBQTBCMlQsU0FBQSxDLFFBQUEsQ0FBMUIsQ0FBdUNBLFNBQUEsQyxnQkFBQSxDQUF2QyxFQUNBLE1BQU1DLFNBQUEsQ0FBVyxNQUFNRCxTQUFBLEMsZUFBQSxHQUF2QixDQUNNRSxTQUFBLENBQVNELFNBQUEsQyxlQUFBLENBRGYsQyxNQUVPLEMsUUFBRSxDQUFBQyxTQUFGLEMsRUFsQjJCLENBOXJCdEMsQ0E2dEJNQyxTQUFBLENBQXdCLEksMkJBQ3BCQyxTQUFBLENBQVlwWSxDQUFBLEMsZUFBQSxDLENBQ1pxWSxTQUFBLENBQWFELFNBQUEsQyxnQkFBQSxHLENBQ2JFLFNBQUEsQ0FBVWpSLEdBQUEsQyxlQUFBLEUsZ0JBQUEsRUFBZWdSLFNBQWYsQyxJQUNaLENBQUNDLFMsQ0FDRCxPQUFPeE0sU0FBUCxDQUdKLE1BQU0sQ0FBRXRJLFFBQUEsQ0FBQStVLFNBQUYsQ0FBWUMsWUFBQSxDQUFBQyxTQUFaLENBQTBCQyxjQUFBLENBQUFDLFNBQTFCLENBQTBDQyxnQkFBQSxDQUFBQyxTQUExQyxDQUE0REMsV0FBQSxDQUFBQyxTQUE1RCxDQUF5RUMsZ0JBQUEsQ0FBQUMsU0FBekUsRUFBOEZYLFNBQXBHLENBQ01ZLFNBQUEsQ0FBVyxDLFVBQ2IsQ0FBQVgsU0FEYSxDLGNBRWIsQ0FBQUUsU0FGYSxDLGdCQUdiLENBQUFFLFNBSGEsQyxrQkFJYixDQUFBRSxTQUphLEMsYUFLYixDQUFBRSxTQUxhLEMsa0JBTWIsQ0FBQUUsU0FOYSxDQURqQixDLE9BU09DLFMsRUE5dUJYLENBZ3ZCTUMsU0FBQSxDQUF3QixJLDJCQUNwQkMsU0FBQSxDQUFZcFosQ0FBQSxDLGVBQUEsQyxDQUNacVosU0FBQSxDQUFhRCxTQUFBLEMsZ0JBQUEsRyxDQUNiRSxTQUFBLENBQWFuQixTQUFBLEUsSUFDZixDQUFDbUIsUyxRQUNNeE4sUyxDQUVYLE1BQU15TixTQUFBLENBQW1CRCxTQUFBLEMsZ0JBQUEsQ0FBekIsQyxPQUNPclYsTUFBQSxDLGdCQUFBLEVBQWMsQyxrQkFBRSxDQUFBc1YsU0FBRixDLElBQW9CLENBQUlGLFNBQXhCLENBQWQsQ0FBb0RDLFNBQXBELEMsRUF4dkJYLENBMHZCTUUsU0FBQSxDQUErQixJLE9BQzFCLEMsY0FDSCxDQUFjTCxTQURYLEMsRUEzdkJYLENBZ3dCQTlSLEdBQUEsQyxlQUFBLEUsY0FBQSxFLGVBQUEsQ0FBcUQsQyxVQUNqRCxDLE9BRGlELEMsT0FFakQsQyxTQUZpRCxDLE9BR2pELEMsT0FIaUQsQyxNQUlqRCxDLGVBSmlELEMsY0FLakQsQyxnQkFMaUQsQyxVQU1qRCxDQUFVLEMsUUFDTixDQUFRLEMsT0FBRSxDLEdBQUYsQ0FERixDLFFBRU4sQ0FBUSxDLE9BQUUsQyxHQUFGLENBRkYsQyxNQUdOLENBQU0sQyxPQUFFLEMsRUFBRixDQUhBLEMsVUFJTixDQUFVLEMsT0FBRSxDLEVBQUYsQyxVQUFhLEMsSUFBYixDLE1BQTZCLEMsZ0JBQTdCLENBSkosQyxjQUtOLENBQWMsQyxPQUNWLEMsRUFEVSxDLFVBRVYsQyxJQUZVLEMsVUFHVixDQUFXb1MsU0FBRCxFLElBQ0ZBLFNBQUEsRyxHQUNBLE0sR0FBQSxDLFlBTEUsQ0FMUixDLGtCQWNOLENBQWtCLEMsT0FBRSxDLElBQUYsQyxVQUFlLEMsSUFBZixDQWRaLEMsUUFpQk4sQ0FBUSxDLE9BQUUsQyxFQUFGLEMsVUFBYSxDLEdBQWIsQyxVQUE4QixDQUFVLEksSUFBeEMsQ0FqQkYsQyxrQkFrQk4sQ0FBa0IsQyxPQUFFLEMsS0FBRixDLFVBQWUsQyxJQUFmLENBbEJaLEMsZUFtQk4sQ0FBZSxDLE9BQUUsQyxJQUFGLEMsVUFBZSxDLElBQWYsQ0FuQlQsQyxXQW9CTixDQUFXLEMsT0FBRSxDLEdBQUYsQyxVQUFhLEMsSUFBYixDQXBCTCxDLGVBcUJOLENBQWUsQyxPQUFFLEMsRUFBRixDLFVBQWEsQyxJQUFiLENBckJULEMsYUFzQk4sQ0FBYSxDLE9BQUUsQyxFQUFGLEMsVUFBYSxDLEdBQWIsQ0F0QlAsQ0FOdUMsQyxTQStCakQsQyxHQS9CaUQsQyxPQWdDakQsRSxrQ0FDVyxLLGdCQUFBLEcsb0JBakNzQyxDLFlBbUNqRCxFLGtDQUNXLEssZ0JBQUEsRSxnQkFBQSxDLElBcENzQyxDLGVBc0NqRCxFLDJCQUNJM0wsU0FBQSxFLENBQ0FzRyxTQUFBLEUsQ0FDQXhVLFNBQUEsQ0FBNEJ5SCxHQUE1QixDQUFpQyxJQUFqQyxDLENBS0FySCxDQUFBLEMsNkJBQUEsRSxJQUFBLEUsUUFBQSxDQUE4QyxJLHlCQUNwQzBaLFNBQUEsQ0FBVTFaLENBQUEsQyxnQkFBQSxFLGVBQUEsRSxTQUFBLEMsQ0FDWjBaLFMsQ0FDQTFaLENBQUEsQyxnQkFBQSxFLGdCQUFBLEUsR0FBQSxDLENBR0FBLENBQUEsQyxnQkFBQSxFLGdCQUFBLEUsR0FBQSxDLEVBTlIsQ0FQQSxDQW1CQSxNQUFNMlosU0FBQSxDQUFVM1osQ0FBQSxDLG9CQUFBLENBQWhCLENBQ0EyWixTQUFBLEMsZ0JBQUEsRUFBb0IxVixNQUFBLEMsZ0JBQUEsRUFBY0EsTUFBQSxDLGdCQUFBLEVBQWMsRUFBZCxDQUFrQnVWLFNBQUEsRUFBbEIsQ0FBZCxDQUFpRSxDLFFBQUUsQ0FBT0ksU0FBUCxDLGtDQUN4RUEsU0FBQSxDLGdCQUFBLEksa0JBRHNFLEMsY0FHakYsQ0FBYUMsU0FBYixDLGtDQUNXQSxTQUFBLEMsZ0JBQUEsSSxrQkFKc0UsQ0FBakUsQ0FBcEIsQyxDQU9BN1osQ0FBQSxDLGdCQUFBLENBUEEsQ0FRQSxNQUFNOFosU0FBQSxDQUFpQjlaLENBQUEsQywyQkFBQSxDQUF2QixDQUNBOFosU0FBQSxDLGVBQUEsRUFBa0M3VixNQUFBLEMsUUFBQSxFQUFjLEVBQWQsQ0FBa0J1VixTQUFBLEVBQWxCLENBQWxDLEMsRUFwRTZDLEMsWUFzRWpELEUsMkJBQ1VPLFNBQUEsQ0FBbUIvWixDQUFBLEMsZ0JBQUEsRSxlQUFBLEUsU0FBQSxDLENBQ3JCK1osUyxFQUNBL1osQ0FBQSxDLDhCQUFBLEUsZ0JBQUEsRUFBc0MrWixTQUFBLEMsR0FBQSxDLEdBQXRDLEMsQ0FDQSxLLGdCQUFBLEVBQWNBLFNBQUEsQyxHQUFBLEMsTUFHZC9aLENBQUEsQyw4QkFBQSxFLGdCQUFBLEUsR0FBQSxDLENBQ0EsSyxnQkFBQSxFLE1BOUV5QyxDQUFyRCxDLEVBbHpDSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICBmdW5jdGlvbiBpbnN0YWxsU3Vic2NyaXB0aW9uU2VsZWN0b3IoUkVELCBub2RlKSB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgJHN1YnNjcmlwdGlvbiA9ICQoXCIjbm9kZS1pbnB1dC1zdWJzY3JpcHRpb25cIik7XG4gICAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgICBjb25zdCBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucyA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGVuZHBvaW50ID0gUkVELm5vZGVzLm5vZGUoJGVuZHBvaW50LnZhbCgpKTtcbiAgICAgICAgICAgICRzdWJzY3JpcHRpb24uZW1wdHkoKTtcbiAgICAgICAgICAgIGlmICghZW5kcG9pbnQgfHwgIWVuZHBvaW50LnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHMgb2YgZW5kcG9pbnQuc3Vic2NyaXB0aW9ucykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gcy5uYW1lIHx8IHMuaWQ7XG4gICAgICAgICAgICAgICAgJChcIjxvcHRpb24vPlwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBzLmlkLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogbGFiZWwsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkOiBzLmlkID09PSBub2RlLnN1YnNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAudGV4dChsYWJlbClcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKCRzdWJzY3JpcHRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucygpO1xuICAgICAgICAvLyBoYWNrXG4gICAgICAgIC8vICRpbnB1dEFjdGlvbi5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgIC8vICAgICAkZW5kcG9pbnQub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAvLyAgICAgICAgIGluc3RhbGxTdWJzY3JpcHRpb25PcHRpb25zKCk7XG4gICAgICAgIC8vICAgICB9KTtcbiAgICAgICAgLy8gfSk7XG4gICAgICAgICRzdWJzY3JpcHRpb24ub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAgICAgbm9kZS5zdWJzY3JpcHRpb24gPSAkc3Vic2NyaXB0aW9uLnZhbCgpO1xuICAgICAgICAgICAgLy8gICAgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMoKTtcbiAgICAgICAgfSk7XG4gICAgICAgICRlbmRwb2ludC5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sLCBJdGVyYXRvciAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIGNvbnN0IE9yZ2FuaXplc1JlZk5vZGVJZCA9IFwibnM9MDtpPTM1XCI7XG4gICAgY29uc3QgRm9sZGVyVHlwZSA9IFwibnM9MDtpPTYxXCI7XG4gICAgY29uc3QgSGFzQ29tcG9uZW50UmVmTm9kZUlkID0gXCJucz0wO2k9NDdcIjtcbiAgICBjb25zdCBIYXNQcm9wZXJ0eVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ2XCI7XG4gICAgY29uc3QgSGFzQ2hpbGRSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNFwiO1xuICAgIGNvbnN0IEhhc1N1YnR5cGVSZWZOb2RlSWQgPSBcIm5zPTA7aT00NVwiO1xuICAgIGNvbnN0IEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkID0gXCJucz0wO2k9NDBcIjtcblxuICAgIHZhciBCcm93c2VEaXJlY3Rpb247XG4gICAgKGZ1bmN0aW9uIChCcm93c2VEaXJlY3Rpb24pIHtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkZvcndhcmRcIl0gPSAwXSA9IFwiRm9yd2FyZFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52ZXJzZVwiXSA9IDFdID0gXCJJbnZlcnNlXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJCb3RoXCJdID0gMl0gPSBcIkJvdGhcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmFsaWRcIl0gPSAzXSA9IFwiSW52YWxpZFwiO1xuICAgIH0pKEJyb3dzZURpcmVjdGlvbiB8fCAoQnJvd3NlRGlyZWN0aW9uID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzKSB7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJVbnNwZWNpZmllZFwiXSA9IDBdID0gXCJVbnNwZWNpZmllZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3MgfHwgKE5vZGVDbGFzcyA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzc01hc2s7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3NNYXNrKSB7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3NNYXNrIHx8IChOb2RlQ2xhc3NNYXNrID0ge30pKTtcbiAgICB2YXIgUmVzdWx0TWFzaztcbiAgICAoZnVuY3Rpb24gKFJlc3VsdE1hc2spIHtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDFdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIklzRm9yd2FyZFwiXSA9IDJdID0gXCJJc0ZvcndhcmRcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiTm9kZUNsYXNzXCJdID0gNF0gPSBcIk5vZGVDbGFzc1wiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJCcm93c2VOYW1lXCJdID0gOF0gPSBcIkJyb3dzZU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiRGlzcGxheU5hbWVcIl0gPSAxNl0gPSBcIkRpc3BsYXlOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlR5cGVEZWZpbml0aW9uXCJdID0gMzJdID0gXCJUeXBlRGVmaW5pdGlvblwiO1xuICAgIH0pKFJlc3VsdE1hc2sgfHwgKFJlc3VsdE1hc2sgPSB7fSkpO1xuICAgIC8vICBjb25zdCBxID0gUmVmZXJlbmNlVHlwZUlkcy5Pcmdhbml6ZXM7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZU5vZGVJZChub2RlSWRMaWtlKSB7XG4gICAgICAgIHN3aXRjaCAobm9kZUlkTGlrZSkge1xuICAgICAgICAgICAgY2FzZSBcIk9yZ2FuaXplc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBPcmdhbml6ZXNSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzUHJvcGVydHlcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzUHJvcGVydHlSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ29tcG9uZW50XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NvbXBvbmVudFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDaGlsZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDaGlsZFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNTdWJ0eXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1N1YnR5cGVSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzVHlwZURlZmluaXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBnZXRJY29uID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHJlZmVyZW5jZS5ub2RlQ2xhc3MpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gT3JnYW5pemVzUmVmTm9kZUlkKSA7XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS50eXBlRGVmaW5pdGlvbiA9PT0gRm9sZGVyVHlwZSB8fCByZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBcImk9NjFcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWZvbGRlclwiLCBjb2xvcjogXCJyZ2JhKDYxLCA2MCwgNCwgMC41MjUpXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiU2VhR3JlZW5cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlXCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc0NvbXBvbmVudFJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIlN0ZWVsQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc1Byb3BlcnR5UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiRG9kZ2VyQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcIk1ldGhvZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtY29nXCIsIGNvbG9yOiBcIlNhbmR5QnJvd25cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXNsaWRlcnNcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiRGF0YVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXRleHQtd2lkdGhcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoX2EsIG5vZGVJZF8xLCB0ZW1wbGF0ZV8xKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIG5vZGVJZF8xLCB0ZW1wbGF0ZV8xXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQsIHRlbXBsYXRlKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1mb3Itbm9kZS1yZWRgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9icm93c2VgO1xuICAgICAgICBjb25zdCBicm93c2VEZXNjcmlwdGlvbiA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGVtcGxhdGUpLCB7IG5vZGVJZCwgcmVzdWx0TWFzazogNjMgfSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGJyb3dzZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXM6IFtdIH07XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJicm93c2UgZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB3YWxrQmFja3dhcmQgPSAoX2EsIF9iKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIF9iXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCB7IG5vZGVJZCwgcm9vdE5vZGVJZCwgaXNUeXBlIH0pIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWZvci1ub2RlLXJlZGA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L3dhbGstYmFja3dhcmRgO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICAgICAgcm9vdE5vZGVJZCxcbiAgICAgICAgICAgICAgICBpc1R5cGUsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBqc29uID0gKHlpZWxkIGRhdGEuanNvbigpKTtcbiAgICAgICAgcmV0dXJuIGpzb24uYnJvd3NlUGF0aDtcbiAgICB9KTtcbiAgICBjb25zdCBjaG9vc2VOb2RlSWQgPSAoZGF0YSwgbW9kZSkgPT4ge1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXNDb2RlICE9PSBcIkdvb2RcIikge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGEucmVxdWVzdGVkTm9kZUlkO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgICAgICAgY2FzZSBcImJyb3dzZVBhdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5icF9pbmRleGVkO1xuICAgICAgICAgICAgY2FzZSBcImFsaWFzZWRCcm93c2VQYXRoXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEuYnBfYWxpYXNlZCB8fCBkYXRhLmJwX2luZGV4ZWQ7XG4gICAgICAgICAgICBjYXNlIFwiYWxpYXNlZE5vZGVJZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLm5vZGVJZF9hbGlhc2VkIHx8IGRhdGEubm9kZUlkX25zdTtcbiAgICAgICAgICAgIGNhc2UgXCJuc3VOb2RlSURcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5ub2RlSWRfbnN1O1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGNhc2UgXCJub2RlSWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5ub2RlSWQ7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IG1ha2VUb29sdGlwID0gKGRhdGEpID0+IHtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzQ29kZSAhPT0gXCJHb29kXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBgc3RhdHVzQ29kZTogJHtkYXRhLnN0YXR1c0NvZGV9YDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGxldCBzdHIgPSBbXTtcbiAgICAgICAgICAgIHN0ci5wdXNoKGBub2RlSWQ6ICR7ZGF0YS5ub2RlSWR9YCk7XG4gICAgICAgICAgICBzdHIucHVzaChgYnJvd3NlIHBhdGg6ICR7ZGF0YS5icF9pbmRleGVkfWApO1xuICAgICAgICAgICAgc3RyLnB1c2goYG5vZGUgY2xhc3M6ICR7Tm9kZUNsYXNzW2RhdGEubm9kZUNsYXNzXX1gKTtcbiAgICAgICAgICAgIGlmIChkYXRhLm5vZGVJZF9uc3UpIHtcbiAgICAgICAgICAgICAgICBzdHIucHVzaChgbnN1IG5vZGVJZDogJHtkYXRhLm5vZGVJZF9uc3V9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5ub2RlSWRfYWxpYXNlZCkge1xuICAgICAgICAgICAgICAgIHN0ci5wdXNoKGBhbGlhc2VkIE5vZGVJZDogJHtkYXRhLm5vZGVJZF9hbGlhc2VkfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuYnBfaW5kZXhlZCkge1xuICAgICAgICAgICAgICAgIHN0ci5wdXNoKGBhbGlhc2VkIGJyb3dzZVBhdGg6ICR7ZGF0YS5icF9hbGlhc2VkfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHN0ci5qb2luKFwiXFxuXCIpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBmdW5jdGlvbiBmaWd1cmVPdXRNb2RlKGVuaGFuY2VkTm9kZUlkKSB7XG4gICAgICAgIGlmIChlbmhhbmNlZE5vZGVJZC5tYXRjaCgvXm5zdT0vKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwibnN1Tm9kZUlEXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVuaGFuY2VkTm9kZUlkLm1hdGNoKC9eKG5zPS4qOyk/KGl8YnxzfGcpPS8pKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJub2RlSWRcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW5oYW5jZWROb2RlSWQubWF0Y2goL15uc2E9LykpIHtcbiAgICAgICAgICAgIHJldHVybiBcImFsaWFzZWROb2RlSWRcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW5oYW5jZWROb2RlSWQubWF0Y2goL14oXFwvfFxcLilbMC05XSs6LykpIHtcbiAgICAgICAgICAgIHJldHVybiBcImJyb3dzZVBhdGhcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW5oYW5jZWROb2RlSWQubWF0Y2goL14oXFwvfFxcLikuKjovKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwiYnJvd3NlUGF0aFwiO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZpZ3VyZU91dE1lblVJdGVtVmFsdWUoc3RyKSB7XG4gICAgICAgIGNvbnN0IG1vZGUgPSBmaWd1cmVPdXRNb2RlKHN0cik7XG4gICAgICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgICAgICAgY2FzZSBcIm5vZGVJZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm5cIjtcbiAgICAgICAgICAgIGNhc2UgXCJhbGlhc2VkTm9kZUlkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwibmFcIjtcbiAgICAgICAgICAgIGNhc2UgXCJuc3VOb2RlSURcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJuc3VcIjtcbiAgICAgICAgICAgIGNhc2UgXCJicm93c2VQYXRoXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiYlwiO1xuICAgICAgICAgICAgY2FzZSBcImFsaWFzZWRCcm93c2VQYXRoXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiYWJcIjtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwidFwiO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRvTW9kZSh2KSB7XG4gICAgICAgIGxldCBtb2RlO1xuICAgICAgICBzd2l0Y2ggKHYpIHtcbiAgICAgICAgICAgIGNhc2UgXCJuXCI6XG4gICAgICAgICAgICAgICAgbW9kZSA9IFwibm9kZUlkXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwibmFcIjpcbiAgICAgICAgICAgICAgICBtb2RlID0gXCJhbGlhc2VkTm9kZUlkXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwibnN1XCI6XG4gICAgICAgICAgICAgICAgbW9kZSA9IFwibnN1Tm9kZUlEXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwiYlwiOlxuICAgICAgICAgICAgICAgIG1vZGUgPSBcImJyb3dzZVBhdGhcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJhYlwiOlxuICAgICAgICAgICAgICAgIG1vZGUgPSBcImFsaWFzZWRCcm93c2VQYXRoXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1vZGU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZyb21Nb2RlKG1vZGUpIHtcbiAgICAgICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICAgICAgICBjYXNlIFwibm9kZUlkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiblwiO1xuICAgICAgICAgICAgY2FzZSBcImFsaWFzZWROb2RlSWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJuYVwiO1xuICAgICAgICAgICAgY2FzZSBcIm5zdU5vZGVJRFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm5zdVwiO1xuICAgICAgICAgICAgY2FzZSBcImJyb3dzZVBhdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJiXCI7XG4gICAgICAgICAgICBjYXNlIFwiYWxpYXNlZEJyb3dzZVBhdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJhYlwiO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJ0XCI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgX2NhbGxDaGVja05vZGVJZCA9IChfYSwgbm9kZUlkXzEpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgbm9kZUlkXzFdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZm9yLW5vZGUtcmVkYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vY2hlY2tOb2RlSWRgO1xuICAgICAgICBjb25zdCBlSWQgPSBlbmRwb2ludE5vZGUuaWQ7XG4gICAgICAgIGNvbnN0IG4gPSBSRUQubm9kZXMubm9kZShlSWQpO1xuICAgICAgICBjb25zb2xlLmxvZyhuLm5hbWVzcGFjZUFsaWFzZXMpO1xuICAgICAgICBuLm5hbWVzcGFjZUFsaWFzZXM7XG4gICAgICAgIGNvbnN0IG5hbWVzcGFjZUFsaWFzZXMgPSBlbmRwb2ludE5vZGUubmFtZXNwYWNlQWxpYXNlcztcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgICAgIG5hbWVzcGFjZUFsaWFzZXMsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGpzb24gPSAoeWllbGQgZGF0YS5qc29uKCkpO1xuICAgICAgICByZXR1cm4geyBqc29uLCBkYXRhIH07XG4gICAgfSk7XG4gICAgY29uc3QgaW50ZXJuYWxWZXJpZnkgPSAoX2EsIG1vZGVfMSwgJGlucHV0RWxlbWVudF8xLCAkaW5mb18xKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIG1vZGVfMSwgJGlucHV0RWxlbWVudF8xLCAkaW5mb18xXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBtb2RlLCAkaW5wdXRFbGVtZW50LCAkaW5mbykge1xuICAgICAgICBjb25zdCBlbmhhbmNlZE5vZGVJZCA9ICRpbnB1dEVsZW1lbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IHsganNvbiwgZGF0YSB9ID0geWllbGQgX2NhbGxDaGVja05vZGVJZCh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgZW5oYW5jZWROb2RlSWQpO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZztcbiAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihcIiEhZmFpbHVyZSEhXCIgKyBlbmhhbmNlZE5vZGVJZCwgXCJmYWlsdXJlXCIpO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGpzb24uc3RhdHVzQ29kZS5tYXRjaCgvR29vZC8pKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9vbHRpcCA9IG1ha2VUb29sdGlwKGpzb24pO1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQuYXR0cihcInRpdGxlXCIsIHRvb2x0aXApO1xuICAgICAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZ1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkTm9kZUlkID0gY2hvb3NlTm9kZUlkKGpzb24sIG1vZGUpO1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKHNlbGVjdGVkTm9kZUlkKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7ZW5oYW5jZWROb2RlSWR9YCk7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKGAke2pzb24uc3RhdHVzQ29kZX0gJHtkYXRhLnN0YXR1c1RleHR9YCwgXCJmYWlsdXJlXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50JDEgPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICAgICAgaWYgKCFyZWZlcmVuY2UgfHwgIXJlZmVyZW5jZS5ub2RlSWQpIHtcbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgZmEtZXJyb3JcIiBzdHlsZT1cImNvbG9yOnJlZDtcIj48L2k+bm8gcmVmZXJlbmNlICE8dWw+PC91bD48L2xpPmApO1xuICAgICAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHQgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB7IGljb24sIGNvbG9yIH0gPSBnZXRJY29uKHJlZmVyZW5jZSk7XG4gICAgICAgIGNvbnN0IHRpdGxlID0gYCgke3JlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKX0pICR7KChfYyA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MubmFtZSkgfHwgKChfZCA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLnRleHQpIHx8IFwiXCJ9YDtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGkga2V5PVwiJHtyZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCl9XCJ9PjxzcGFuIGNsYXNzPVwidHJlZS10ZXh0XCIgdGl0bGU9JHt0aXRsZX0+PGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+ICR7dH08L3NwYW4+PHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoXCJleHBhbmRhYmxlXCIpO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwidmFsdWVcIiwgbik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgIH07XG4gICAgY29uc3QgZmluZEVsZW1lbnQgPSAobm9kZUlkLCAkdHJlZSkgPT4ge1xuICAgICAgICByZXR1cm4gJHRyZWUuZmluZChgbGlba2V5PVwiJHtub2RlSWR9XCJdYCk7XG4gICAgfTtcbiAgICBjb25zdCBzZWxlY3RTaW5nbGUgPSAodGhhdCwgJGxpKSA9PiB7XG4gICAgICAgIHRoYXQuJHRyZWUuZmluZChcImxpID4gLnRyZWUtdGV4dFwiKS5yZW1vdmVDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgICAgICAvLyBjbGVhciBhbGwgc2VsZWN0ZWQgaXRlbXNcbiAgICAgICAgJGxpLmZpbmQoXCIudHJlZS10ZXh0OmZpcnN0XCIpLmFkZENsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgfTtcbiAgICBjb25zdCBhdXRvRXhwYW5kID0gKHRoYXQsIGJyb3dzZVBhdGgsICR0cmVlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgLy8gZXhwYW5kIHRoZSB0cmVlIHRvIHNob3cgdGhlIG5vZGVJZFxuICAgICAgICBsZXQgJGN1cnJlbnQgPSAkdHJlZS5jaGlsZHJlbihcIjpmaXJzdFwiKTtcbiAgICAgICAgYnJvd3NlUGF0aC5yZWxhdGl2ZVBhdGguZWxlbWVudHMgfHwgW107XG4gICAgICAgIGNvbnN0IG5vZGVJZHMgPSBicm93c2VQYXRoLm5vZGVJZHMgfHwgW107XG4gICAgICAgIGlmIChub2RlSWRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgbiBvZiBub2RlSWRzKSB7XG4gICAgICAgICAgICBpZiAoJGN1cnJlbnQuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgLy8gbmVlZCB0byBleHBhbmQgYW5kIHNlbGVjdCB0aGUgcmlnaHQgZWxlbWVudFxuICAgICAgICAgICAgICAgIHlpZWxkIF9leHBhbmRMaSh0aGF0LCAkY3VycmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IGZpbmRFbGVtZW50KG4sICRjdXJyZW50KTtcbiAgICAgICAgICAgIGlmICgkZWxlbWVudC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkY3VycmVudCA9ICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIHNlbGVjdFNpbmdsZSh0aGF0LCAkY3VycmVudCk7XG4gICAgICAgIHNjcm9sbFRvTGkodGhhdC4kZHJvcGRvd24sICRjdXJyZW50KTtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBzY3JvbGxUb0xpKCRjb250YWluZXIsICR0YXJnZXRMaSkge1xuICAgICAgICAvLyBHZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSB0YXJnZXQgaXRlbSByZWxhdGl2ZSB0byBpdHMgY29udGFpbmVyXG4gICAgICAgIGNvbnN0IGxpUG9zID0gJHRhcmdldExpLnBvc2l0aW9uKCkudG9wO1xuICAgICAgICAvLyBHZXQgdGhlIGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uIG9mIHRoZSBjb250YWluZXJcbiAgICAgICAgY29uc3QgY29udGFpbmVyU2Nyb2xsVG9wID0gJGNvbnRhaW5lci5zY3JvbGxUb3AoKTtcbiAgICAgICAgaWYgKGNvbnRhaW5lclNjcm9sbFRvcCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHBvc2l0aW9uIHRvIHNjcm9sbCB0byAoY3VycmVudCBzY3JvbGwgKyBpdGVtJ3MgcG9zaXRpb24pXG4gICAgICAgIC8vIEFkanVzdCB0aGlzIGNhbGN1bGF0aW9uIGJhc2VkIG9uIHlvdXIgbmVlZHNcbiAgICAgICAgY29uc3Qgc2Nyb2xsVG8gPSBjb250YWluZXJTY3JvbGxUb3AgKyBsaVBvcyAtICRjb250YWluZXIuaGVpZ2h0KCkgLyAyICsgJHRhcmdldExpLmhlaWdodCgpIC8gMjtcbiAgICAgICAgLy8gU2Nyb2xsIHRoZSBjb250YWluZXIgdG8gZW5zdXJlIHRoZSBpdGVtIGlzIHZpc2libGVcbiAgICAgICAgJGNvbnRhaW5lci5hbmltYXRlKHtcbiAgICAgICAgICAgIHNjcm9sbFRvcDogc2Nyb2xsVG8sXG4gICAgICAgIH0sIDUwMCk7IC8vIEFkanVzdCB0aGUgZHVyYXRpb24gKDUwMG1zKSBhcyBuZWVkZWRcbiAgICB9XG4gICAgY29uc3QgcmVhY2hTZWxlY3Rpb24gPSAodGhhdCwgcGFyZW50Tm9kZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IG5vZGVJZCA9IHRoYXQuJGlucHV0LnZhbCgpO1xuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgcm9vdE5vZGVJZDogcGFyZW50Tm9kZS5ub2RlSWQsXG4gICAgICAgICAgICBpc1R5cGU6IHRoYXQub3B0aW9ucy5pc1R5cGVSZWYgfHwgZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgY29uc3QgYnJvd3NlUGF0aCA9IHlpZWxkIHdhbGtCYWNrd2FyZChkYXRhLCBvcHRpb25zKTtcbiAgICAgICAgaWYgKCFicm93c2VQYXRoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgeWllbGQgYXV0b0V4cGFuZCh0aGF0LCBicm93c2VQYXRoLCB0aGF0LiR0cmVlKTtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBfZmV0Y2hEYXRhRm9yTm9kZSh0aGF0LCAkbm9kZSwgZmV0Y2hGdW5jLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwibG9hZGluZ1wiKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICRub2RlLmFwcGVuZCgnPGRpdiBjbGFzcz1cInNwaW5uZXJcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgcmVmZXJlbmNlcyB9ID0geWllbGQgZmV0Y2hGdW5jKCRub2RlLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAvLyBzb3J0IHJlZmVyZW5jZSAgIGJ5IGJyb3dzZU5hbWVcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzLnNvcnQoKGEsIGIpID0+IHsgdmFyIF9hLCBfYjsgcmV0dXJuICgoKF9hID0gYS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EubmFtZSkgfHwgXCJcIikubG9jYWxlQ29tcGFyZSgoKF9iID0gYi5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgXCJcIik7IH0pO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5maWx0ZXIgJiYgIXRoYXQub3B0aW9ucy5maWx0ZXIocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudCQxKHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKGA8bGk+ZXJyb3IgJHtlcnIubWVzc2FnZX08L2xpPmApO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbm9kZS5maW5kKFwiLnNwaW5uZXJcIikucmVtb3ZlKCk7XG4gICAgICAgICAgICAkbm9kZS5yZW1vdmVDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYWtlQ29ubmVjdGlvbih0aGF0KSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgICBmdW5jdGlvbiBfZXhwYW5kTGkodGhhdCwgJGxpKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgeWllbGQgX2ZldGNoRGF0YUZvck5vZGUodGhhdCwgJGxpLCBmLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBkZWZhdWx0UGFyZW50Tm9kZSA9IHtcbiAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgbm9kZUNsYXNzOiBcIk9iamVjdFwiLFxuICAgICAgICBub2RlSWQ6IFwibnM9MDtpPTg1XCIsXG4gICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgIHR5cGVEZWZpbml0aW9uOiBGb2xkZXJUeXBlLFxuICAgIH07XG4gICAgY29uc3QgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogWyBUZW1wZXJhdHVyZSAgXVxuICAgICAgICAgKiAgICggdG9vbHRpcCA6ICgvT2JqZWN0cy9NeVNlbnNvcikgKG5zPTE7cz1UZW1wZXJhdHVyZSkpXG4gICAgICAgICAqIFsgKyBbRm9sZGVyXSBPYmplY3RzXVxuICAgICAgICAgKiBbICAgICBbT2JqZWN0XSBNeVNlbnNvcl1cbiAgICAgICAgICogWyAgICAgKCApIFtWYXJpYWJsZV0gVGVtcGVyYXR1cmVdXG4gICAgICAgICAqL1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLm5vZGVCcm93c2VyXCIsIHtcbiAgICAgICAgICAgIC8qIGRlZmF1bHQgb3B0aW9ucyAqL1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogKCkgPT4gKHsgZW5kcG9pbnQ6IFwib3BjLnRjcDovL29wY3VhZGVtby5zdGVyZml2ZS5jb206MjY1NDNcIiB9KSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludDogKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGU6ICgpID0+IGRlZmF1bHRQYXJlbnROb2RlLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgICAgIGlzVHlwZVJlZjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZVBhcmVudE5vZGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Ll9fcGFyZW50Tm9kZSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdGhhdC5vcHRpb25zLnBhcmVudE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlLmNhbGwodGhhdCkgOiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlc2MgPSB5aWVsZCBhO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX19wYXJlbnROb2RlID0gZGVzYztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX19wYXJlbnROb2RlID0gYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhhdC5fX3BhcmVudE5vZGUgfHwgZGVmYXVsdFBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIC8vIGFsc28gcmVzZXQgcGFyZW50IG5vZGVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHRoYXQ7XG4gICAgICAgICAgICAgICAgICAgIGEuX19wYXJlbnROb2RlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSB5aWVsZCB0aGlzLnJlc29sdmVQYXJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQkMShwYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LmN1cnJlbnRQYXJlbnQgPSBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZlcmlmeShtb2RlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbFZlcmlmeShkYXRhLCBtb2RlLCB0aGF0LiRpbnB1dCwgdGhhdC4kaW5mbykudGhlbigoc3VjY2VzcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwiaW5wdXQtZXJyb3JcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5yZW1vdmVDbGFzcyhcImlucHV0LWVycm9yXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2hpZGVNZW51KG1lbnUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vZmYoXCJtb3VzZWRvd24ucmVkLXVpLXR5cGVkSW5wdXQtY2xvc2UtcHJvcGVydHktc2VsZWN0XCIpO1xuICAgICAgICAgICAgICAgIG1lbnUuaGlkZSgpO1xuICAgICAgICAgICAgICAgIG1lbnUuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBcImF1dG9cIixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAobWVudS5vcHRzLm11bHRpcGxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3RlZCA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBtZW51LmZpbmQoJ2lucHV0W3R5cGU9XCJjaGVja2JveFwiXScpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCQodGhpcykucHJvcChcImNoZWNrZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZC5wdXNoKCQodGhpcykuZGF0YShcInZhbHVlXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIG1lbnUuY2FsbGJhY2soc2VsZWN0ZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhhdC4kZWxlbWVudERpdi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJmb2N1c1wiKTtcbiAgICAgICAgICAgICAgICAgICAgLy94eCB9IGVsc2UgaWYgKHRoaXMuJG9wdGlvblNlbGVjdFRyaWdnZXIuaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAvL3h4ICAgICB0aGF0LiRvcHRpb25TZWxlY3RUcmlnZ2VyLnRyaWdnZXIoXCJmb2N1c1wiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdFRyaWdnZXIudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlTWVudShtZW51T3B0aW9ucywgb3B0cywgY2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICB2YXIgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgY29uc3QgbWVudSA9ICQoXCI8ZGl2PlwiKS5hZGRDbGFzcyhcInN0ZXJmaXZlLXR5cGVkSW5wdXQtb3B0aW9ucyBzdGVyZml2ZS1vbmxpbmUtbWVudVwiKTtcbiAgICAgICAgICAgICAgICBtZW51Lm9wdHMgPSBvcHRzO1xuICAgICAgICAgICAgICAgIG1lbnUuY2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICAgICAgICAgICAgICBtZW51T3B0aW9ucy5mb3JFYWNoKChvcHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdCA9IHsgdmFsdWU6IG9wdCwgbGFiZWw6IG9wdCB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHZhciBvcCA9ICQoJzxhIGhyZWY9XCIjXCI+PC9hPicpLmF0dHIoXCJ2YWx1ZVwiLCBvcHQudmFsdWUpLmFwcGVuZFRvKG1lbnUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAob3B0LmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcC50ZXh0KG9wdC5sYWJlbCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdC50aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3AucHJvcChcInRpdGxlXCIsIG9wdC50aXRsZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdC5pY29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAob3B0Lmljb24uaW5kZXhPZihcIjxcIikgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKG9wdC5pY29uKS5wcmVwZW5kVG8ob3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAob3B0Lmljb24uaW5kZXhPZihcIi9cIikgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIjxpPlwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcInJlZC11aS10eXBlZElucHV0LWljb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IFwibWFzay1pbWFnZTogdXJsKFwiICsgb3B0Lmljb24gKyBcIik7IC13ZWJraXQtbWFzay1pbWFnZTogdXJsKFwiICsgb3B0Lmljb24gKyBcIik7XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkucHJlcGVuZFRvKG9wKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCI8aT5cIiwgeyBjbGFzczogXCJyZWQtdWktdHlwZWRJbnB1dC1pY29uIFwiICsgb3B0Lmljb24gfSkucHJlcGVuZFRvKG9wKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wLmNzcyh7IHBhZGRpbmdMZWZ0OiBcIjE4cHhcIiB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoIW9wdC5pY29uICYmICFvcHQubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wLnRleHQob3B0LnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB2YXIgY2I7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHRzLm11bHRpcGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYiA9ICQoJzxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIj4nKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jc3MoXCJwb2ludGVyLWV2ZW50c1wiLCBcIm5vbmVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZGF0YShcInZhbHVlXCIsIG9wdC52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJlcGVuZFRvKG9wKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5vbihcIm1vdXNlZG93blwiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBvcC5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFvcHRzLm11bHRpcGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sob3B0LnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9oaWRlTWVudShtZW51KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNiLnByb3AoXCJjaGVja2VkXCIsICFjYi5wcm9wKFwiY2hlY2tlZFwiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIG1lbnUuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogXCJub25lXCIsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgbWVudS5vbihcImtleWRvd25cIiwgZnVuY3Rpb24gKGV2dCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleUNvZGUgPT09IDQwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIERPV05cbiAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuY2hpbGRyZW4oXCI6Zm9jdXNcIikubmV4dCgpLnRyaWdnZXIoXCJmb2N1c1wiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChldnQua2V5Q29kZSA9PT0gMzgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVVBcbiAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuY2hpbGRyZW4oXCI6Zm9jdXNcIikucHJldigpLnRyaWdnZXIoXCJmb2N1c1wiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChldnQua2V5Q29kZSA9PT0gMjcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVTQ0FQRVxuICAgICAgICAgICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9oaWRlTWVudShtZW51KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1lbnU7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGlzYXJtQ2xpY2s6IGZhbHNlLFxuICAgICAgICAgICAgX3Nob3dNZW51KG1lbnUsIHJlbGF0aXZlVG8pIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kaXNhcm1DbGljaykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc2FybUNsaWNrID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHZhciBwb3MgPSByZWxhdGl2ZVRvLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgIHZhciBoZWlnaHQgPSByZWxhdGl2ZVRvLmhlaWdodCgpO1xuICAgICAgICAgICAgICAgIHZhciBtZW51SGVpZ2h0ID0gbWVudS5oZWlnaHQoKTtcbiAgICAgICAgICAgICAgICB2YXIgdG9wID0gaGVpZ2h0ICsgcG9zLnRvcDtcbiAgICAgICAgICAgICAgICBpZiAodG9wICsgbWVudUhlaWdodCAtICQoZG9jdW1lbnQpLnNjcm9sbFRvcCgpID4gJCh3aW5kb3cpLmhlaWdodCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvcCAtPSB0b3AgKyBtZW51SGVpZ2h0IC0gJCh3aW5kb3cpLmhlaWdodCgpICsgNTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRvcCA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgbWVudS5oZWlnaHQobWVudUhlaWdodCArIHRvcCk7XG4gICAgICAgICAgICAgICAgICAgIHRvcCA9IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG1lbnUuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiB0b3AgKyBcInB4XCIsXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IHBvcy5sZWZ0ICsgXCJweFwiLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIG1lbnUuc2xpZGVEb3duKDEwMCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGVsYXkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR1aVNlbGVjdC5hZGRDbGFzcyhcInJlZC11aS10eXBlZElucHV0LWZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcIm1vdXNlZG93bi5yZWQtdWktdHlwZWRJbnB1dC1jbG9zZS1wcm9wZXJ0eS1zZWxlY3RcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KG1lbnUpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX2hpZGVNZW51KG1lbnUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHJlbGF0aXZlVG8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuZGlzYXJtQ2xpY2sgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9zaG93VHlwZU1lbnUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2hvd01lbnUodGhhdC4kbWVudSwgdGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB0eXBlID0gdGhhdC5zZWxlY3RlZE1lbnVJdGVtO1xuICAgICAgICAgICAgICAgIHZhciBzZWxlY3RlZCA9IHRoYXQuJG1lbnUuZmluZChcIlt2YWx1ZT0nXCIgKyB0eXBlICsgXCInXCIpO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZC50cmlnZ2VyKFwiZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgfSwgMTIwKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfaW5pdE1lbnUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlci5hdHRyKFwidGFiaW5kZXhcIiwgLTEpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdFRyaWdnZXIub24oXCJtb3VzZWRvd24ucmVkLXVpLXR5cGVkSW5wdXQtZm9jdXMtYmxvY2tcIiwgZnVuY3Rpb24gKGV2dCkge1xuICAgICAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAodGhhdC4kbWVudSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRtZW51LnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBmYS1pZC1jYXJkXG4gICAgICAgICAgICAgICAgY29uc3QgdHlwZUxpc3QgPSBbXG4gICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6IFwidGV4dFwiLCB2YWx1ZTogXCJ0XCIsIHRpdGxlOiBcIlZhbHVlIGlzIG5vdCB2ZXJpZmllZFwiLCBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS1mb250XCIvaT4gJyB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJtc2cuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJtc2dcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIm5vZGUgaWQgb3IgIGJyb3dzZSBwYXRoIGNvbWVzIGZyb20gaW5qZWN0ZWQgbXNnIHBhcmFtZXRlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJzxpIGNsYXNzPVwiZmEgZmEtZW52ZWxvcGUtb3Blbi1vXCIvPicsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6IFwiTm9kZUlkXCIsIHZhbHVlOiBcIm5cIiwgaWNvbjogJzxpIGNsYXNzPVwiZmEgZmEtdGFnXCIvPjEgJm5ic3A7ICcgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogXCJBbGlhc2VkIE5vZGVJZFwiLCB2YWx1ZTogXCJuYVwiLCBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS1ib29rbWFya1wiLz4mbmJzcDsgJyB9LFxuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiBcIk5vZGVJZCB3aXRoIG5hbWVzcGFjZSBVcm5cIiwgdmFsdWU6IFwibnN1XCIsIGljb246ICc8aSBjbGFzcz1cImZhIGZhLWlkLWNhcmRcIi8+Jm5ic3A7ICcgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogXCJCcm93c2VQYXRoXCIsIHZhbHVlOiBcImJcIiwgaWNvbjogJzxpIGNsYXNzPVwiZmEgZmEtdGFnXCIvPjxpIGNsYXNzPVwiZmEgZmEtZmlnaHRlci1qZXRcIi8+Jm5ic3A7JyB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJBbGlhc2VkIEJyb3dzZSBQYXRoXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJhYlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJzxpIGNsYXNzPVwiZmEgZmEtYm9va21hcmtcIi8+PGkgY2xhc3M9XCJmYSBmYS1maWdodGVyLWpldFwiLz4mbmJzcDsnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgY29uc3QgYSA9IGZpZ3VyZU91dE1lblVJdGVtVmFsdWUodGhhdC4kaW5wdXQudmFsKCkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGUgPSB0eXBlTGlzdC5maW5kKCh4KSA9PiB4LnZhbHVlID09PSBhKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RMYWJlbC5lbXB0eSgpLmFwcGVuZChgPHNwYW4gdGl0bGU9JHsoZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnRpdGxlKSB8fCBcIlwifT4mbmJzcDsgJHsoZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLmljb24pIHx8IFwiXCJ9PC9zcGFuPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuc2VsZWN0ZWRNZW51SXRlbSA9IGE7XG4gICAgICAgICAgICAgICAgY29uc3QgdHQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJG1lbnUgPSB0aGlzLl9jcmVhdGVNZW51KHR5cGVMaXN0LCB7fSwgKHYpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9kZSA9IHRvTW9kZSh2KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9uIE1lbnUgc2VsZWN0ZWQgIVxuICAgICAgICAgICAgICAgICAgICAgICAgdHQudmVyaWZ5KG1vZGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSB0eXBlTGlzdC5maW5kKCh4KSA9PiB4LnZhbHVlID09PSB2KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5zZWxlY3RlZE1lbnVJdGVtID0gdjtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0TGFiZWwuZW1wdHkoKS5hcHBlbmQoYDxzcGFuIHRpdGxlPSR7KGUgPT09IG51bGwgfHwgZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZS50aXRsZSkgfHwgXCJcIn0+Jm5ic3A7ICR7KGUgPT09IG51bGwgfHwgZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZS5pY29uKSB8fCBcIlwifTwvc3Bhbj5gKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRtZW51LmFwcGVuZFRvKGRvY3VtZW50LmJvZHkpO1xuICAgICAgICAgICAgICAgIHRoYXQuJG1lbnUuaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdFRyaWdnZXIuc2hvdygpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG1vZGUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRvTW9kZSh0aGF0LnNlbGVjdGVkTWVudUl0ZW0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldE1vZGUobW9kZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGNvbnN0IHMgPSBmcm9tTW9kZShtb2RlKTtcbiAgICAgICAgICAgICAgICB0aGF0LnNlbGVjdGVkTWVudUl0ZW0gPSBzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGUoKSB7XG4gICAgICAgICAgICAgICAgLy8gZGVidWdnZXI7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuY3NzKFwiYm9yZGVyXCIsIFwibm9uZVwiKTtcbiAgICAgICAgICAgICAgICAvLyB0aGF0LiRpbnB1dC5hZGRDbGFzcyhcInJlZC11aS10eXBlZElucHV0XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGVsZW1lbnREaXYgPSB0aGF0LiRpbnB1dC53cmFwKFwiPGRpdj5cIikucGFyZW50KCkuYWRkQ2xhc3MoXCJtYWluLXdyYXBwZXJcIik7XG4gICAgICAgICAgICAgICAgLy8gI3JlZ2lvbiBDb21ibyBicm93c2VyXG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIC8vIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwicmVkLXVpLXR5cGVkSW5wdXQtaW5wdXQtd3JhcFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5yZXBsYWNlV2l0aCh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cCA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJpbnB1dC1ncm91cFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5wdXRHcm91cCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kaW5wdXQpO1xuICAgICAgICAgICAgICAgIC8vICNlbmRyZWdpb25cbiAgICAgICAgICAgICAgICAvLyAjcmVnaW9uIGFkZCBidXR0b24gb24gdGhlIHJpZ2h0IHNpZGVcbiAgICAgICAgICAgICAgICAvLyAjcmVnaW9uIHRvZ2dsZVRyZWVCdG5cbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuID0gJChgPGJ1dHRvbiB0aXRsZT1cIm9wZW4gT1BDVUEgQWRkcmVzc1NwYWNlIEJyb3dzZXJcIj48aSBjbGFzcz1cImZhIGZhLXNpdGVtYXBcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYWZ0ZXIodGhhdC4kdG9nZ2xlVHJlZUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0bi5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZWVkVG9SZWFjaFNlbGVjdGlvbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0cmVlIHdpZGdldCBpcyBnb2luZyB0byBiZWNvbWUgdmlzaWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudE5vZGUgPSB5aWVsZCB0aGF0LnJlc29sdmVQYXJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudE5vZGUgIT09IHRoYXQuY3VycmVudFBhcmVudCB8fCAoKF9hID0gdGhhdC5jdXJyZW50UGFyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eubm9kZUlkKSAhPT0gcGFyZW50Tm9kZS5ub2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgdGhhdC5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkVG9SZWFjaFNlbGVjdGlvbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRUb1JlYWNoU2VsZWN0aW9uICYmICh5aWVsZCByZWFjaFNlbGVjdGlvbih0aGF0LCBwYXJlbnROb2RlKSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIC8vICNlbmRyZWdpb25cbiAgICAgICAgICAgICAgICAvLyAjcmVnaW9uIHZlcmlmeUJ0blxuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0biA9ICQoYDxidXR0b24gdGl0bGU9XCJ2ZXJpZnkgbm9kZUlkIG9yIGJyb3dzZVBhdGhcIj48aSBjbGFzcz1cImZhIGZhLXJlZnJlc2hcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYWZ0ZXIodGhhdC4kdmVyaWZ5QnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vZGUgPSB0aGF0Lm1vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFtb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy52ZXJpZnkobW9kZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIC8vICNlbmRyZWdpb25cbiAgICAgICAgICAgICAgICBjb25zdCBub3JtYWxpemVJbnB1dCA9IChpbnB1dCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgbGV0IG1vZGUgPSB0aGF0Lm1vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFtb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb25uZWN0aW9uRGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGEsIGpzb24gfSA9IHlpZWxkIF9jYWxsQ2hlY2tOb2RlSWQoY29ubmVjdGlvbkRhdGEsIGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkTm9kZUlkID0gY2hvb3NlTm9kZUlkKGpzb24sIG1vZGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudmFsKHNlbGVjdGVkTm9kZUlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgICAgICAvLyBjcmVhdGUgdGhlIHByZXBlbmRlZCBidXR0b25cbiAgICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHVpU2VsZWN0ID0gJChcIjxkaXY+XCIpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5iZWZvcmUodGhhdC4kdWlTZWxlY3QpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyID0gJCgnPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgdGFiaW5kZXg9XCIwXCI+PC9idXR0b24+JykucHJlcGVuZFRvKHRoYXQuJHVpU2VsZWN0KTtcbiAgICAgICAgICAgICAgICAgICAgJCgnPGkgY2xhc3M9XCJyZWQtdWktdHlwZWRJbnB1dC1pY29uIGZhIGZhLWNhcmV0LWRvd25cIj48L2k+JykudG9nZ2xlKHRydWUpLmFwcGVuZFRvKHRoYXQuJHNlbGVjdFRyaWdnZXIpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9zaG93VHlwZU1lbnUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdFRyaWdnZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5vbihcImtleWRvd25cIiwgZnVuY3Rpb24gKGV2dCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXlDb2RlID09PSA0MCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERvd25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9zaG93VHlwZU1lbnUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5vbihcImZvY3VzXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJHVpU2VsZWN0LmFkZENsYXNzKFwicmVkLXVpLXR5cGVkSW5wdXQtZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAub24oXCJibHVyXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhciBvcHQgPSB0aGF0LnR5cGVNYXBbdGhhdC5wcm9wZXJ0eVR5cGVdO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgKG9wdC5oYXNWYWx1ZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJHVpU2VsZWN0LnJlbW92ZUNsYXNzKFwicmVkLXVpLXR5cGVkSW5wdXQtZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RMYWJlbCA9ICQoJzxzcGFuIGNsYXNzPVwicmVkLXVpLXR5cGVkSW5wdXQtdHlwZS1sYWJlbFwiPjwvc3Bhbj4nKS5hcHBlbmRUbyh0aGF0LiRzZWxlY3RUcmlnZ2VyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5faW5pdE1lbnUoKTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIiwgXCJlbnRlciBhIG5vZGVJZCBvciBhIGJyb3dzZVBhdGggXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyAjcmVnaW9uIHRlbXBvcmF0eSBpbmZvIHBhbmVsXG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5mbyk7XG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gZHJvcCBkb3duIHRyZWVcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCkuYXBwZW5kVG8odGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUgPSAkKGA8dWwgY2xhc3M9XCJzdGVyZml2ZS10cmVlXCI+PC91bD5gKS5hcHBlbmRUbyh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgLy8gdGhhdC4kZHJvcGRvd24uc2hvdygpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgY29uc3QgaXNPbkxlZnRTaXplID0gKCRsaSwgZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkbGkub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBldmVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUucGFnZVggPj0gZWxlbWVudFBvcy5sZWZ0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VYIDw9IGVsZW1lbnRQb3MubGVmdCArIGJlZm9yZVdpZHRoICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZID49IGVsZW1lbnRQb3MudG9wICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZIDw9IGVsZW1lbnRQb3MudG9wICsgYmVmb3JlSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCB0b2dnbGVFeHBhbnNpb24gPSAoJGxpKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfZXhwYW5kTGkodGhhdCwgJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSA7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImRibGNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICRsaS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWZlcmVuY2UgPSAkbGkuZGF0YShcInJlZmVyZW5jZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlICYmICF0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc3QgaW5wdXQgPSBgWyR7ZGlzcGxheU5hbWV9XSgke3ZhbHVlfSlgO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1vZGUgPSB0aGF0Lm1vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUgPSBcIm5vZGVJZFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuc2V0TW9kZShtb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZUlucHV0KHZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0LiRpbnB1dC52YWwoaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQuJGlucHV0LnZhbChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc09uTGVmdFNpemUoJGxpLCBldmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZUV4cGFuc2lvbigkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdFNpbmdsZSh0aGF0LCAkbGkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG91dHNpZGUgdGhlIHBhZ2Ugd2lsbCBoaWRlIHRoZSBkcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHRoYXQuJGNvbWJvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgaWYgKCFyZWZlcmVuY2UpIHtcbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgZmEtZXJyb3JcIiBzdHlsZT1cImNvbG9yOnJlZDtcIj48L2k+bm8gcmVmZXJlbmNlICE8dWw+PC91bD48L2xpPmApO1xuICAgICAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGxldCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgbGV0IG5zID0gKF9jID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5uYW1lc3BhY2VJbmRleDtcbiAgICAgICAgdCArPSBucyAhPT0gdW5kZWZpbmVkICYmIHJlZmVyZW5jZS5ub2RlQ2xhc3MubWF0Y2goL1R5cGUvKSA/IGAgKG5zPSR7bnN9KWAgOiBcIlwiO1xuICAgICAgICBjb25zdCB7IGljb24sIGNvbG9yIH0gPSBnZXRJY29uKHJlZmVyZW5jZSk7XG4gICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPmApO1xuICAgICAgICBpZiAocmVmZXJlbmNlLm5vZGVDbGFzcyA9PT0gXCJWYXJpYWJsZVwiKSB7XG4gICAgICAgICAgICBjb25zdCBjaGVja0JveCA9ICQoJzxzcGFuIGNsYXNzPVwiY3VzdG9tLWNoZWNrYm94IHVuY2hlY2tlZFwiPjwvc3Bhbj4nKTtcbiAgICAgICAgICAgICRlbGVtZW50LmFwcGVuZChjaGVja0JveCk7XG4gICAgICAgICAgICAvLyBUb2dnbGUgY2hlY2tib3ggc3RhdGUgd2hlbiBjbGlja2VkXG4gICAgICAgICAgICBjaGVja0JveC5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2hlY2tCb3guaGFzQ2xhc3MoXCJ1bmNoZWNrZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tCb3gucmVtb3ZlQ2xhc3MoXCJ1bmNoZWNrZWRcIikuYWRkQ2xhc3MoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tCb3gucmVtb3ZlQ2xhc3MoXCJjaGVja2VkXCIpLmFkZENsYXNzKFwidW5jaGVja2VkXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgICRlbGVtZW50LmFwcGVuZCgkKGA8aSBjbGFzcz1cImZhICR7aWNvbn1cIiBzdHlsZT1cImNvbG9yOiR7Y29sb3J9O1wiPjwvaT4ke3R9PHVsPjwvdWw+YCkpO1xuICAgICAgICAkZWxlbWVudC5hZGRDbGFzcyhcImV4cGFuZGFibGVcIik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJ2YWx1ZVwiLCBuKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgfTtcbiAgICBjb25zdCBkZWNsYXJlRXZlbnRGaWVsZFNlbGVjdG9yV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogWyBUZW1wZXJhdHVyZSAgXVxuICAgICAgICAgKiAgICggdG9vbHRpcCA6ICgvT2JqZWN0cy9NeVNlbnNvcikgKG5zPTE7cz1UZW1wZXJhdHVyZSkpXG4gICAgICAgICAqIFsgKyBbRm9sZGVyXSBPYmplY3RzXVxuICAgICAgICAgKiBbICAgICBbT2JqZWN0XSBNeVNlbnNvcl1cbiAgICAgICAgICogWyAgICAgKCApIFtWYXJpYWJsZV0gVGVtcGVyYXR1cmVdXG4gICAgICAgICAqL1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLmV2ZW50RmllbGRTZWxlY3RvclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9wb3B1bGF0ZSgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEZpZWxkID0gbmV3IFNldCgoKF9hID0gdGhhdC4kaW5wdXQudmFsKCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50b1N0cmluZygpLnNwbGl0KFwiO1wiKSkgfHwgW10pO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkIGV4dHJhY3RFdmVudEZpZWxkSW5mbyhkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5zdGFsbFRyZWUocmVzdWx0LCBzZWxlY3RlZEZpZWxkKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfaW5zdGFsbFRyZWUocmVzdWx0LCBzZWxlY3RGaWVsZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdC5ldmVudHMpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCByb290ID0gcmVzdWx0LmV2ZW50cztcbiAgICAgICAgICAgICAgICBjb25zdCAkcm9vdEVsZW1lbnQgPSBtYWtlRWxlbWVudChyb290KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmFwcGVuZCgkcm9vdEVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHByZWZpeCA9IFwiXCI7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5zdGFsbENoaWxkcmVuKCRyb290RWxlbWVudC5jaGlsZHJlbihcInVsXCIpLCByb290LCBwcmVmaXgsIHNlbGVjdEZpZWxkKTtcbiAgICAgICAgICAgICAgICAkcm9vdEVsZW1lbnQucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlVmFsdWVzKHNlbGVjdEZpZWxkKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfaW5zdGFsbENoaWxkcmVuKCRwYXJlbnQsIHBhcmVudCwgcHJlZml4LCBzZWxlY3RlZEZpZWxkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYiA9ICh7IG5hbWUsIG5hbWVzcGFjZUluZGV4IH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWVzcGFjZUluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmFtZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7bmFtZXNwYWNlSW5kZXh9OiR7bmFtZX1gO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBwYXJlbnQuY2hpbGRyZW4gfHwgW107XG4gICAgICAgICAgICAgICAgY29uc3Qgc3ViVHlwZXMgPSBwYXJlbnQuc3ViVHlwZXMgfHwgW107XG4gICAgICAgICAgICAgICAgY29uc3QgY2hpbGRyZW5BbmRTdWJUeXBlcyA9IFsuLi5jaGlsZHJlbiwgLi4uc3ViVHlwZXNdO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgY2hpbGRyZW5BbmRTdWJUeXBlcykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KGNoaWxkKTtcbiAgICAgICAgICAgICAgICAgICAgJHBhcmVudC5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgcHJlZml4MiA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZC5ub2RlQ2xhc3MgPT09IFwiVmFyaWFibGVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZWZpeCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeDIgPSBwcmVmaXggKyBcIi5cIiArIGIoY2hpbGQuYnJvd3NlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXgyID0gYihjaGlsZC5icm93c2VOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICRlbGVtZW50LmF0dHIoXCJkYXRhLXZhbHVlXCIsIHByZWZpeDIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhc0NoaWxkcmVuID0gY2hpbGQuY2hpbGRyZW4gJiYgY2hpbGQuY2hpbGRyZW4ubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYXNTdWJUeXBlcyA9IGNoaWxkLnN1YlR5cGVzICYmIGNoaWxkLnN1YlR5cGVzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFoYXNDaGlsZHJlbiAmJiAhaGFzU3ViVHlwZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRlbGVtZW50LnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcIm5vLWV4cGFuZGFibGVcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbnN0YWxsQ2hpbGRyZW4oJGVsZW1lbnQuY2hpbGRyZW4oXCJ1bFwiKSwgY2hpbGQsIHByZWZpeDIsIHNlbGVjdGVkRmllbGQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJGVsZW1lbnQucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX3VwZGF0ZVNlbGVjdGVkRmllbGRzKCkge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEZpZWxkcyA9IG5ldyBTZXQoKChfYSA9IHRoYXQuJGlucHV0LnZhbCgpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudG9TdHJpbmcoKS5zcGxpdChcIjtcIikpIHx8IFtdKTtcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVWYWx1ZXMoc2VsZWN0ZWRGaWVsZHMpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF91cGRhdGVWYWx1ZXMoc2VsZWN0ZWRGaWVsZHMpIHtcbiAgICAgICAgICAgICAgICAkKFwiLnN0ZXJmaXZlLXRyZWUgbGlcIikuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICR0aGlzID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdiA9ICR0aGlzLmF0dHIoXCJkYXRhLXZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodiAmJiBzZWxlY3RlZEZpZWxkcy5oYXModikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLmNoaWxkcmVuKFwic3Bhbi5jdXN0b20tY2hlY2tib3hcIikucmVtb3ZlQ2xhc3MoXCJ1bmNoZWNrZWRcIikuYWRkQ2xhc3MoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX3NldElucHV0VmFsdWUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdCA9IFtdO1xuICAgICAgICAgICAgICAgIC8vIGNyYXdsIHRoZSB0cmVlIHRvIGZpbmQgc2VsZWN0ZWQgZWxlbWVudHMgYW5kIGNyZWF0ZSBhIGxpc3Qgb2YgQnJvd3NlUGF0aFxuICAgICAgICAgICAgICAgICQoXCIuc3RlcmZpdmUtdHJlZSBsaVwiKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJHRoaXMgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgZWxlbWVudCBpcyBzZWxlY3RlZFxuICAgICAgICAgICAgICAgICAgICBpZiAoJHRoaXMuY2hpbGRyZW4oXCJzcGFuLmN1c3RvbS1jaGVja2JveC5jaGVja2VkXCIpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHYgPSAkdGhpcy5hdHRyKFwiZGF0YS12YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QucHVzaCh2KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gWy4uLm5ldyBTZXQobGlzdCldLnNvcnQoKS5qb2luKFwiO1wiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC52YWwodmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50WzBdLnBhcmVudEVsZW1lbnQucmVwbGFjZUNoaWxkKHRoYXQuJGNvbWJvWzBdLCB0aGlzLmVsZW1lbnRbMF0pO1xuICAgICAgICAgICAgICAgIC8vIHRoaXMuZWxlbWVudC5yZXBsYWNlV2l0aCh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cCA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJpbnB1dC1ncm91cFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5wdXRHcm91cCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kaW5wdXQpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5mby50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRmbG9hdGluZ0J1dHRvbnMuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2Zmc2V0ID0gdGhhdC4kZHJvcGRvd24ub2Zmc2V0KCk7IC8vIEdldCB0aGUgdG9wLWxlZnQgY29ybmVyIHBvc2l0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAkZmxvYXRpbmdCdXR0b25zLmNzcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiBgJHtvZmZzZXQudG9wfXB4YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodDogYGNhbGMoMTAwJSAtICR7b2Zmc2V0LmxlZnQgKyB0aGF0LiRkcm9wZG93bi53aWR0aCgpfXB4KWAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX3BvcHVsYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll91cGRhdGVTZWxlY3RlZEZpZWxkcygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGZsb2F0aW5nQnV0dG9ucy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIiwgXCJlbnRlciBhIG5vZGVJZCBvciBhIGJyb3dzZVBhdGggXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvID0gJChgPGRpdiBjbGFzcz1cImluZm8tdGV4dFwiPjwvZGl2PmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcInN0ZXJmaXZlLWRyb3Bkb3duXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAvLyBjb25zdCAkc2Nyb2xsYWJsZUNvbnRlbnQgPSAkKCc8ZGl2IGNsYXNzPVwic3RlcmZpdmUtZHJvcGRvd24tc2Nyb2xsYWJsZS1jb250ZW50XCI+PC9kaXY+Jyk7XG4gICAgICAgICAgICAgICAgY29uc3QgJHZhbGlkYXRlQnV0dG9uID0gJCgnPHNwYW4gY2xhc3M9XCJ2YWxpZGF0ZS1idXR0b25cIj7inJQ8L3NwYW4+Jyk7IC8vIFVzZSBhbnkgaWNvbiBvciB0ZXh0IGhlcmVcbiAgICAgICAgICAgICAgICBjb25zdCAkY2FuY2VsQnV0dG9uID0gJCgnPHNwYW4gY2xhc3M9XCJjYW5jZWwtYnV0dG9uXCI+4pyWPC9zcGFuPicpOyAvLyBVc2UgYW55IGljb24gb3IgdGV4dCBoZXJlXG4gICAgICAgICAgICAgICAgY29uc3QgJGZsb2F0aW5nQnV0dG9ucyA9ICQoJzxkaXYgY2xhc3M9XCJmbG9hdGluZy1idXR0b25zXCI+PC9kaXY+JykuYXBwZW5kKCR2YWxpZGF0ZUJ1dHRvbiwgJGNhbmNlbEJ1dHRvbik7XG4gICAgICAgICAgICAgICAgJGZsb2F0aW5nQnV0dG9ucy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgLy8gRGVmaW5lIHlvdXIgdmFsaWRhdGlvbiBhbmQgY2FuY2VsbGF0aW9uIGxvZ2ljXG4gICAgICAgICAgICAgICAgJHZhbGlkYXRlQnV0dG9uLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGF0Ll9zZXRJbnB1dFZhbHVlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkY2FuY2VsQnV0dG9uLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmVtcHR5KCkuYXBwZW5kKHRoYXQuJHRyZWUsICRmbG9hdGluZ0J1dHRvbnMpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVdpZHRoID0gMjA7IC8vIFNldCB3aWR0aCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVIZWlnaHQgPSAyMDsgLy8gU2V0IGhlaWdodCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50UG9zID0gJCh0aGlzKS5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5wYWdlWCA+PSBlbGVtZW50UG9zLmxlZnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVggPD0gZWxlbWVudFBvcy5sZWZ0ICsgYmVmb3JlV2lkdGggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPj0gZWxlbWVudFBvcy50b3AgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPD0gZWxlbWVudFBvcy50b3AgKyBiZWZvcmVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiY2xpY2tlZCBvbiBpY29uXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJjbGlja2VkIG9uIFwiLCAkbGkuZGF0YShcInZhbHVlXCIpLCAkbGkuYXR0cihcImNsYXNzXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUb2dnbGUgaXRzIGV4cGFuZGVkL2NvbGxhcHNlZCBzdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuY2hpbGRyZW4oXCJ1bFwiKS5jaGlsZHJlbigpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjbGlja2luZyBvdXRzaWRlIHRoZSBwYWdlIHdpbGwgaGlkZSB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCh0aGF0LiRjb21ibykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9wb3B1bGF0ZSgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBjb25zdCBleHRyYWN0RXZlbnRGaWVsZEluZm8gPSAoX2EpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYV0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwsIH0pIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWZvci1ub2RlLXJlZGA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2V4dHJhY3RFdmVudFR5cGVzYDtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgcmV0dXJuIHsgZXZlbnRzOiBudWxsIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICBjb25zdCBldmVudHMgPSByZXNwb25zZS5ldmVudHM7XG4gICAgICAgIHJldHVybiB7IGV2ZW50cyB9O1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0aGUgZW5kcG9pbnQgYXR0cmlidXRlcyBjb250YWluaW5nOlxuICAgICAqICAtIHRoZSBlbmRwb2ludCwgc2VjdXJpdHlNb2RlLCBzZWN1cml0eVBvbGljeSxcbiAgICAgKiAgLSB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAqICAtIGNyZWRlbnRpYWxzXG4gICAgICogIC0gbmFtZXNwYWNlQWxpYXNlc1xuICAgICAqXG4gICAgICogZXh0cmFjdGVkIGZyb20gdGhlIHVpIHdpZGdldCAjbm9kZS1pbnB1dC1lbmRwb2ludFxuICAgICAqL1xuICAgIGNvbnN0IGdldEVuZFBvaW50QXR0cmlidXRlcyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCByZWROb2RlID0gUkVELm5vZGVzLm5vZGUoZW5kcG9pbnRJZCk7XG4gICAgICAgIGlmICghcmVkTm9kZSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIC8vIGNvbnN0IGNyZWRlbnRpYWxzID0gUkVELihlbmRwb2ludElkKTtcbiAgICAgICAgLy8gd2UgbmVlZCB0byBzYW5pdGl6ZSBhbmQgZXh0cmFjdCB0aGUgZW5kcG9pbnQgYXR0cmlidXRlcyBvbmx5ICggbm90IHRoZSBub2RlLXJlZCBzdHVmZilcbiAgICAgICAgY29uc3QgeyBlbmRwb2ludCwgc2VjdXJpdHlNb2RlLCBzZWN1cml0eVBvbGljeSwgdXNlcklkZW50aXR5VHlwZSwgY3JlZGVudGlhbHMsIG5hbWVzcGFjZUFsaWFzZXMgfSA9IHJlZE5vZGU7XG4gICAgICAgIGNvbnN0IHJldFZhbHVlID0ge1xuICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICBzZWN1cml0eU1vZGUsXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICBjcmVkZW50aWFscyxcbiAgICAgICAgICAgIG5hbWVzcGFjZUFsaWFzZXMsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiByZXRWYWx1ZTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVycyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCBlbmRwb2ludE5yID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgIGlmICghZW5kcG9pbnROcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuYW1lc3BhY2VBbGlhc2VzID0gZW5kcG9pbnROci5uYW1lc3BhY2VBbGlhc2VzO1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7IG5hbWVzcGFjZUFsaWFzZXMsIGlkOiBlbmRwb2ludElkIH0sIGVuZHBvaW50TnIpO1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBSRUQubm9kZXMucmVnaXN0ZXJUeXBlKFwiT3BjVWEtQ2xpZW50Mi1Nb25pdG9yRXZlbnRcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJvcGN1YVwiLFxuICAgICAgICBjb2xvcjogXCIjQzBERUVEXCIsXG4gICAgICAgIGFsaWduOiBcInJpZ2h0XCIsXG4gICAgICAgIGljb246IFwib3BjdWFsb2dvYmlnLnBuZ1wiLFxuICAgICAgICBwYWxldHRlTGFiZWw6IFwibW9uaXRvciBldmVudHNcIixcbiAgICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgICAgIGlucHV0czogeyB2YWx1ZTogMSB9LFxuICAgICAgICAgICAgb3V0cHV0OiB7IHZhbHVlOiA0IH0sXG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUsIHR5cGU6IFwiT3BjVWEtRW5kcG9pbnQyXCIgfSxcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbjoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIlwiLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbGlkYXRlOiAodmFsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWwgPT09IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc3RhcnRJbW1lZGlhdGVseTogeyB2YWx1ZTogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIC8vIHdlIHVzZSBhIGRpZmZlcmVudCB3aWRnZXQgZm9yIGVkaXRpbmcgdGhlIG5vZGVJZCwgYmVjYXVzZSB0aGUgYmVoYXZpb3JcbiAgICAgICAgICAgIC8vIGlzIHNwZWNpZmljIHRvIG1vbml0b3IsIGhvd2V2ZXIgcHJvcGVydHkgd2lsbCBiZSBzdG9yZWQgaW4gbm9kZUlkXG4gICAgICAgICAgICBub2RlSWQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiBmYWxzZSwgdmFsaWRhdGU6ICgpID0+IHRydWUgfSxcbiAgICAgICAgICAgIHNhbXBsaW5nSW50ZXJ2YWw6IHsgdmFsdWU6IDEwMDAsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBkaXNjYXJkT2xkZXN0OiB7IHZhbHVlOiB0cnVlLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgcXVldWVTaXplOiB7IHZhbHVlOiAxMCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHNlbGVjdENsYXVzZXM6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICB3aGVyZUNsYXVzZTogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgIH0sXG4gICAgICAgIC8vIGlucHV0czosXG4gICAgICAgIG91dHB1dHM6IDIsIC8vIDIgb3V0cHV0LCBzZWNvbmQgZm9yIHJhdyBub2RlLW9wY3VhIGRpYWdub3N0aWNzIG9yIG1vcmUgY29tcGxldGUgbWVzc2FnZVxuICAgICAgICBsYWJlbCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgXCJPUENVQSBNb25pdG9yXCI7XG4gICAgICAgIH0sXG4gICAgICAgIGxhYmVsU3R5bGUoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lID8gXCJub2RlX2xhYmVsX2l0YWxpY1wiIDogXCJcIjtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0cHJlcGFyZSgpIHtcbiAgICAgICAgICAgIGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCgpO1xuICAgICAgICAgICAgZGVjbGFyZUV2ZW50RmllbGRTZWxlY3RvcldpZGdldCgpO1xuICAgICAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvblNlbGVjdG9yKFJFRCwgdGhpcyk7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIEFjdGlvbiBNb25pdG9yIENvbW1vblxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIC0tIGluc3RhbGwgc3Vic2NyaXB0aW9uIHNlbGVjdGlvblxuICAgICAgICAgICAgJChcIm5vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hlY2tlZCA9ICQoXCIjbm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLnByb3AoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgICAgIGlmIChjaGVja2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1pbnB1dHNcIikudmFsKDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LWlucHV0c1wiKS52YWwoMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIEFjdGlvbiBNb25pdG9yXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgY29uc3QgJG5vZGVJZCA9ICQoXCIjbm9kZS1pbnB1dC1ub2RlSWRcIik7XG4gICAgICAgICAgICAkbm9kZUlkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBmaWx0ZXIobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJPYmplY3RcIjtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGlzU2VsZWN0YWJsZShub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiIC8qIHRvIGRvIHx8IG5vZGVEZXNjLmV2ZW50Tm90aWZpZXIgPT09IDEgKi87XG4gICAgICAgICAgICAgICAgfSB9KSk7XG4gICAgICAgICAgICAvLyAtLS0tLS0gaW5zdGFsbCBldmVudCBmaWVsZCBzZWxlY3RvclxuICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXdoZXJlQ2xhdXNlXCIpO1xuICAgICAgICAgICAgY29uc3QgJHNlbGVjdENsYXVzZXMgPSAkKFwiI25vZGUtaW5wdXQtc2VsZWN0Q2xhdXNlc1wiKTtcbiAgICAgICAgICAgICRzZWxlY3RDbGF1c2VzLmV2ZW50RmllbGRTZWxlY3RvcihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpKTtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0c2F2ZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0SW1tZWRpYXRlbHkgPSAkKFwiI25vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS5wcm9wKFwiY2hlY2tlZFwiKTtcbiAgICAgICAgICAgIGlmIChzdGFydEltbWVkaWF0ZWx5KSB7XG4gICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXN0YXJ0SW1tZWRpYXRlbHlcIikudmFsKHN0YXJ0SW1tZWRpYXRlbHkgPyAwIDogMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dHMgPSBzdGFydEltbWVkaWF0ZWx5ID8gMCA6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS52YWwoMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dHMgPSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
9
9
  </script>
10
10
  <script type="text/x-red" data-template-name="OpcUa-Client2-MonitorEvent">
11
11
  <style>