@opcua/for-node-red 2.6.2 → 2.7.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.
- package/all.js +1 -1
- package/package.json +1 -1
- package/source/OpcUa-Client2-Browse/OpcUa-Client2-Browse.css +1 -1
- package/source/OpcUa-Client2-Browse/OpcUa-Client2-Browse.html +4 -3
- package/source/OpcUa-Client2-Call/OpcUa-Client2-Call.css +1 -1
- package/source/OpcUa-Client2-Call/OpcUa-Client2-Call.html +7 -4
- package/source/OpcUa-Client2-Explore/OpcUa-Client2-Explore.css +1 -1
- package/source/OpcUa-Client2-Explore/OpcUa-Client2-Explore.html +4 -3
- package/source/OpcUa-Client2-ExtensionObject/OpcUa-Client2-ExtensionObject.css +1 -1
- package/source/OpcUa-Client2-ExtensionObject/OpcUa-Client2-ExtensionObject.html +5 -5
- package/source/OpcUa-Client2-Monitor/OpcUa-Client2-Monitor.css +1 -1
- package/source/OpcUa-Client2-Monitor/OpcUa-Client2-Monitor.html +4 -3
- package/source/OpcUa-Client2-MonitorEvent/OpcUa-Client2-MonitorEvent.css +1 -1
- package/source/OpcUa-Client2-MonitorEvent/OpcUa-Client2-MonitorEvent.html +4 -3
- package/source/OpcUa-Client2-Read/OpcUa-Client2-Read.css +1 -1
- package/source/OpcUa-Client2-Read/OpcUa-Client2-Read.html +4 -3
- package/source/OpcUa-Client2-Write/OpcUa-Client2-Write.css +1 -1
- package/source/OpcUa-Client2-Write/OpcUa-Client2-Write.html +4 -3
- package/source/OpcUa-Endpoint2/OpcUa-Endpoint2.html +3 -2
@@ -1,11 +1,11 @@
|
|
1
1
|
<style>
|
2
|
-
.sterfive-combo-box{position:relative;width:100%}.sterfive-combo-box .sterfive-dropdown{background-color:#fff;border:1px solid #ccc;display:none;left:0;max-height:150px;overflow-y:auto;position:absolute;top:100%;width:100%;z-index:1000}.sterfive-combo-box li:before{content:none}.sterfive-tree li.expandable:before,.sterfive-tree li.no-expandable:before{content:"\f0da";cursor:pointer;font-family:FontAwesome;font-size:
|
2
|
+
.sterfive-combo-box{position:relative;width:100%}.sterfive-combo-box .sterfive-dropdown{background-color:#fff;border:1px solid #ccc;display:none;left:0;max-height:150px;overflow-y:auto;position:absolute;top:100%;width:100%;z-index:1000}.sterfive-combo-box li:before{content:none}.sterfive-tree li.expandable:before,.sterfive-tree li.no-expandable:before{content:"\f0da";cursor:pointer;font-family:FontAwesome;font-size:12pt;font-weight:900;margin-right:5px}.sterfive-tree li.no-expandable:before{opacity:0}.sterfive-tree li.expanded:before{content:"\f0d7";cursor:pointer;font-family:FontAwesome;font-size:12pt;font-weight:900;margin-right:5px}.sterfive-tree li span.selected{border:.5px dotted #33f}.sterfive-tree .fa{color:#333;margin-right:10px}.sterfive-tree ul{list-style:none;padding-inline-start:2%!important}.sterfive-tree li{cursor:pointer;padding:5px}.sterfive-tree{list-style-type:none}.sterfive-tree,.sterfive-tree ol,.sterfive-tree ul{list-style-type:none;margin:0;padding:0}.sterfive-tree li:hover{background-color:#eee}.sterfive-tree li.loading:before{animation:fa-spin 1s linear infinite;content:"\f110";cursor:pointer;font-family:FontAwesome;font-weight:900;margin-right:5px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.sterfive-tree .spinner{animation:spin .7s linear infinite;border:2px solid transparent;border-radius:50%;border-top-color:#666;display:inline-block;height:16px;width:16px}.sterfive-info{background-color:#fafad2;border-radius:10px;border-style:groove;display:block;font-size:10pt;margin:5px 0;padding:5px}.sterfive-info .ok{color:green}.sterfive-info .warning{color:darkred}.input-wrapper{border:0 solid #ccc;border-radius:5px;padding:0}.input-group{align-items:center;border:1px solid #ccc;border-radius:5px;display:flex;overflow:hidden}.input-group input{border:none;flex:1;outline:none;padding:8px}.input-group button{background-color:#f1f1f1;border:none;border-left:1px solid #ccc;cursor:pointer;padding:8px 16px}.input-group button:hover{background-color:#ddd}.info-text{color:#777;font-size:12px;margin-left:10px;margin-top:5px}.custom-checkbox{cursor:pointer;display:inline-block;font-family:FontAwesome;font-size:16px;font-weight:900;margin-right:10px;text-align:center;width:1em}.custom-checkbox.unchecked:before{content:"\f096"}.custom-checkbox.checked:before{content:"\f046"}.validate-cancel-buttons{background-color:#fff;position:sticky;right:0;top:0;z-index:1001}.cancel-button,.validate-button{cursor:pointer;font-size:16px;margin:5px}.sterfive-combo-box .sterfive-dropdown{position:relative}.floating-buttons{position:fixed;z-index:1003}
|
3
3
|
/*# sourceMappingURL=OpcUa-Client2-Call.css.map */
|
4
4
|
</style>
|
5
5
|
|
6
6
|
<script type="text/javascript">
|
7
|
-
(function(_0x371769,_0x57235d){const _0x128f39=_0x5256,_0x28eef1=_0x371769();while(!![]){try{const _0x27f1d8=parseInt(_0x128f39(0x135))/0x1*(-parseInt(_0x128f39(0x115))/0x2)+parseInt(_0x128f39(0xdb))/0x3+parseInt(_0x128f39(0x142))/0x4*(-parseInt(_0x128f39(0x126))/0x5)+parseInt(_0x128f39(0x192))/0x6+-parseInt(_0x128f39(0xfe))/0x7+-parseInt(_0x128f39(0x103))/0x8+parseInt(_0x128f39(0xfc))/0x9;if(_0x27f1d8===_0x57235d)break;else _0x28eef1['push'](_0x28eef1['shift']());}catch(_0x583eb1){_0x28eef1['push'](_0x28eef1['shift']());}}}(_0x303b,0x7e75f),(function(){'use strict';const _0x7bd34d=_0x5256;function _0x3e61ea(_0x13308b,_0x416385,_0x33bc10,_0x59650e){function _0x4af7eb(_0x37adeb){return _0x37adeb instanceof _0x33bc10?_0x37adeb:new _0x33bc10(function(_0x5369f7){_0x5369f7(_0x37adeb);});}return new(_0x33bc10||(_0x33bc10=Promise))(function(_0x36b80e,_0x2d61cf){const _0x2171c6=_0x5256;function _0x56f74b(_0x1a1d65){try{_0x4c5a0b(_0x59650e['next'](_0x1a1d65));}catch(_0x413722){_0x2d61cf(_0x413722);}}function _0x30a311(_0x5a5472){const _0x2bf464=_0x5256;try{_0x4c5a0b(_0x59650e[_0x2bf464(0x13c)](_0x5a5472));}catch(_0xdfebc7){_0x2d61cf(_0xdfebc7);}}function _0x4c5a0b(_0xd5b8f1){const _0x1cf3c5=_0x5256;_0xd5b8f1[_0x1cf3c5(0x168)]?_0x36b80e(_0xd5b8f1[_0x1cf3c5(0x119)]):_0x4af7eb(_0xd5b8f1[_0x1cf3c5(0x119)])[_0x1cf3c5(0x12b)](_0x56f74b,_0x30a311);}_0x4c5a0b((_0x59650e=_0x59650e['apply'](_0x13308b,_0x416385||[]))[_0x2171c6(0x17d)]());});}typeof SuppressedError===_0x7bd34d(0xd3)?SuppressedError:function(_0x2c666d,_0x248852,_0x5b7bd2){const _0x3585a4=_0x7bd34d;var _0x27dd6a=new Error(_0x5b7bd2);return _0x27dd6a[_0x3585a4(0xd4)]=_0x3585a4(0xdf),_0x27dd6a[_0x3585a4(0xf6)]=_0x2c666d,_0x27dd6a[_0x3585a4(0x12d)]=_0x248852,_0x27dd6a;};const _0x2cb991=_0x7bd34d(0x18e),_0x43a4e0='ns=0;i=61',_0x16128f='ns=0;i=47',_0x2a2948='ns=0;i=46',_0x29bd1d=_0x7bd34d(0x129),_0x1a570e=_0x7bd34d(0xe3),_0x4bac18=_0x7bd34d(0x11d);var _0x2c4371;(function(_0x14e2ca){const _0x4ed948=_0x7bd34d;_0x14e2ca[_0x14e2ca[_0x4ed948(0xe7)]=0x0]=_0x4ed948(0xe7),_0x14e2ca[_0x14e2ca[_0x4ed948(0x143)]=0x1]=_0x4ed948(0x143),_0x14e2ca[_0x14e2ca[_0x4ed948(0xc7)]=0x2]='Both',_0x14e2ca[_0x14e2ca[_0x4ed948(0x121)]=0x3]=_0x4ed948(0x121);}(_0x2c4371||(_0x2c4371={})));var _0x47736e;(function(_0x5b4ec5){const _0x253bc6=_0x7bd34d;_0x5b4ec5[_0x5b4ec5[_0x253bc6(0xcb)]=0x0]=_0x253bc6(0xcb),_0x5b4ec5[_0x5b4ec5[_0x253bc6(0x137)]=0x1]=_0x253bc6(0x137),_0x5b4ec5[_0x5b4ec5['Variable']=0x2]=_0x253bc6(0x175),_0x5b4ec5[_0x5b4ec5[_0x253bc6(0x107)]=0x4]=_0x253bc6(0x107),_0x5b4ec5[_0x5b4ec5[_0x253bc6(0x159)]=0x8]='ObjectType',_0x5b4ec5[_0x5b4ec5[_0x253bc6(0x13d)]=0x10]=_0x253bc6(0x13d),_0x5b4ec5[_0x5b4ec5[_0x253bc6(0xca)]=0x20]='ReferenceType',_0x5b4ec5[_0x5b4ec5[_0x253bc6(0x14e)]=0x40]=_0x253bc6(0x14e),_0x5b4ec5[_0x5b4ec5[_0x253bc6(0x104)]=0x80]='View';}(_0x47736e||(_0x47736e={})));var _0x5d40de;(function(_0x5c0555){const _0x4f1c93=_0x7bd34d;_0x5c0555[_0x5c0555[_0x4f1c93(0x137)]=0x1]='Object',_0x5c0555[_0x5c0555[_0x4f1c93(0x175)]=0x2]=_0x4f1c93(0x175),_0x5c0555[_0x5c0555['Method']=0x4]=_0x4f1c93(0x107),_0x5c0555[_0x5c0555['ObjectType']=0x8]=_0x4f1c93(0x159),_0x5c0555[_0x5c0555['VariableType']=0x10]=_0x4f1c93(0x13d),_0x5c0555[_0x5c0555[_0x4f1c93(0xca)]=0x20]='ReferenceType',_0x5c0555[_0x5c0555[_0x4f1c93(0x14e)]=0x40]=_0x4f1c93(0x14e),_0x5c0555[_0x5c0555['View']=0x80]=_0x4f1c93(0x104);}(_0x5d40de||(_0x5d40de={})));var _0x25861b;(function(_0x2006f0){const _0x160754=_0x7bd34d;_0x2006f0[_0x2006f0[_0x160754(0xca)]=0x1]=_0x160754(0xca),_0x2006f0[_0x2006f0[_0x160754(0xe1)]=0x2]='IsForward',_0x2006f0[_0x2006f0[_0x160754(0x15a)]=0x4]=_0x160754(0x15a),_0x2006f0[_0x2006f0[_0x160754(0x100)]=0x8]=_0x160754(0x100),_0x2006f0[_0x2006f0[_0x160754(0x189)]=0x10]=_0x160754(0x189),_0x2006f0[_0x2006f0[_0x160754(0x17f)]=0x20]=_0x160754(0x17f);}(_0x25861b||(_0x25861b={})));function _0x4f039b(_0xf14552){const _0x22edd7=_0x7bd34d;switch(_0xf14552){case _0x22edd7(0x18f):return _0x2cb991;case'HasProperty':return _0x2a2948;case _0x22edd7(0x15b):return _0x16128f;case'HasChild':return _0x29bd1d;case _0x22edd7(0x172):return _0x1a570e;case _0x22edd7(0x15c):return _0x4bac18;}}const _0x103e3b=_0x10e5b5=>{const _0x9365f4=_0x7bd34d;switch(_0x10e5b5[_0x9365f4(0xea)]){case _0x9365f4(0x137):if(_0x10e5b5[_0x9365f4(0x130)]===_0x2cb991);if(_0x10e5b5[_0x9365f4(0xee)]===_0x43a4e0||_0x10e5b5[_0x9365f4(0x130)]===_0x9365f4(0xe6))return{'icon':_0x9365f4(0x16c),'color':_0x9365f4(0x16e)};return{'icon':'fa-object-group','color':_0x9365f4(0x17c)};case'Variable':if(_0x10e5b5['referenceTypeId']===_0x16128f)return{'icon':_0x9365f4(0x187),'color':_0x9365f4(0x161)};else return _0x10e5b5[_0x9365f4(0x130)]===_0x2a2948?{'icon':_0x9365f4(0x187),'color':_0x9365f4(0xef)}:{'icon':_0x9365f4(0x187),'color':_0x9365f4(0x13a)};case _0x9365f4(0x107):return{'icon':'fa-cog','color':'SandyBrown'};case _0x9365f4(0x159):return{'icon':_0x9365f4(0x101),'color':_0x9365f4(0x14b)};case _0x9365f4(0x13d):return{'icon':_0x9365f4(0x153),'color':'DarkOrange'};case _0x9365f4(0x14e):return{'icon':_0x9365f4(0x11f),'color':'CadetBlue'};}return{'icon':'fa-question','color':_0x9365f4(0x12a)};},_0x287a77=({endpointNode:_0x24317c,endpoint:_0x4a328f,baseUrl:_0x10db33},_0x1dfcd0,_0x5181c1)=>_0x3e61ea(void 0x0,void 0x0,void 0x0,function*(){const _0x1d9fd4=_0x7bd34d,_0x1fcac9=_0x10db33+_0x1d9fd4(0x118),_0x1f7d1c=_0x1fcac9+_0x1d9fd4(0x10f),_0x583a05=Object[_0x1d9fd4(0x125)](Object[_0x1d9fd4(0x125)]({},_0x5181c1),{'nodeId':_0x1dfcd0,'resultMask':0x3f}),_0x406fd3=yield fetch(_0x1f7d1c,{'method':'POST','body':JSON[_0x1d9fd4(0xd6)]({'endpointNode':_0x24317c,'endpoint':_0x4a328f,'browseDescription':_0x583a05}),'headers':{'Content-Type':_0x1d9fd4(0x105)}});if(_0x406fd3[_0x1d9fd4(0x182)]!==0xc8)return console[_0x1d9fd4(0x178)]('fetching\x20failed\x20with\x20error',_0x406fd3['status'],_0x406fd3[_0x1d9fd4(0x131)]),{'references':[]};console[_0x1d9fd4(0x178)]('fetched\x20:\x20',_0x406fd3[_0x1d9fd4(0x182)],_0x406fd3['statusText']);const _0x13a7e5=yield _0x406fd3[_0x1d9fd4(0xfb)](),_0x9e2c28=_0x13a7e5[_0x1d9fd4(0x14c)][_0x1d9fd4(0x127)]||[];return{'references':_0x9e2c28};}),_0x36bdb4={'referenceTypeId':_0x4f039b(_0x7bd34d(0xf8)),'includeSubtypes':!![],'browseDirection':_0x2c4371['Forward'],'nodeClassMask':_0x47736e[_0x7bd34d(0x175)]|_0x47736e[_0x7bd34d(0x137)]|_0x47736e[_0x7bd34d(0x107)],'resultMask':0x3f},_0x2cd471={'referenceTypeId':_0x4f039b('Organizes'),'includeSubtypes':!![],'browseDirection':_0x2c4371[_0x7bd34d(0xe7)],'nodeClassMask':_0x47736e['Variable']|_0x47736e['Object']|_0x47736e['Method'],'resultMask':0x3f},_0x21dd04=({endpointNode:_0x1e786e,endpoint:_0x430149,baseUrl:_0x26cbcd},_0x9805d3,_0x2abcb8)=>_0x3e61ea(void 0x0,void 0x0,void 0x0,function*(){const _0x52e5d6=_0x7bd34d,_0x4ac1f7=_0x26cbcd+_0x52e5d6(0x118),_0x3eac76=_0x9805d3[_0x52e5d6(0x10d)](),_0x1087d9=yield fetch(_0x4ac1f7+'/checkNodeId',{'method':'POST','body':JSON[_0x52e5d6(0xd6)]({'endpointNode':_0x1e786e,'endpoint':_0x430149,'nodeId':_0x3eac76}),'headers':{'Content-Type':_0x52e5d6(0x105)}}),_0x442eed=(_0x1b9696,_0x48db98)=>{const _0x337bb2=_0x52e5d6;_0x2abcb8[_0x337bb2(0xf5)](_0x1b9696)['addClass'](_0x337bb2(0x128))['addClass'](_0x48db98),_0x2abcb8[_0x337bb2(0x13b)](),setTimeout(()=>{_0x2abcb8['removeClass'](_0x48db98),_0x2abcb8['hide']();},0xbb8);},_0x285238=yield _0x1087d9[_0x52e5d6(0xfb)]();_0x1087d9[_0x52e5d6(0x182)]!==0xc8?_0x442eed(_0x52e5d6(0x123)+_0x3eac76,_0x52e5d6(0x15e)):_0x285238['statusCode']['match'](/Good/)?(_0x9805d3[_0x52e5d6(0x10d)](_0x285238[_0x52e5d6(0x111)]),_0x9805d3[_0x52e5d6(0xfd)](_0x52e5d6(0x164)),_0x442eed(_0x52e5d6(0x13e),'ok')):(_0x9805d3['val'](''+_0x3eac76),_0x442eed(_0x285238[_0x52e5d6(0xdd)]+'\x20'+_0x1087d9[_0x52e5d6(0x131)],_0x52e5d6(0x15e)));});function _0x37e7fe(_0x39386e,_0x33afeb){return _0x3e61ea(this,void 0x0,void 0x0,function*(){const _0x343b61=_0x5256,_0x155e39=_0x39386e['data'](_0x343b61(0x119)),_0x24aa67=yield _0x287a77(_0x33afeb,_0x155e39,_0x36bdb4),_0x3fbeb8=yield _0x287a77(_0x33afeb,_0x155e39,_0x2cd471);return{'references':[..._0x24aa67[_0x343b61(0x127)],..._0x3fbeb8['references']]};});}const _0x1a65df={'referenceTypeId':_0x4f039b(_0x7bd34d(0x172)),'includeSubtypes':!![],'browseDirection':_0x2c4371[_0x7bd34d(0xe7)],'nodeClassMask':_0x47736e['ReferenceType']|_0x47736e['ObjectType']|_0x47736e[_0x7bd34d(0x14e)]|_0x47736e[_0x7bd34d(0x13d)],'resultMask':0x3f};function _0x473ca3(_0xa7c481,_0x1382bd){return _0x3e61ea(this,void 0x0,void 0x0,function*(){const _0x5dbd0c=_0xa7c481['data']('value'),_0x3bb044=yield _0x287a77(_0x1382bd,_0x5dbd0c,_0x1a65df);return _0x3bb044;});}const _0x5f3112=_0x2f9b95=>{const _0xb99a25=_0x7bd34d;var _0x65db48,_0x3a4c72;if(!_0x2f9b95){const _0x533a0b=$('<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>');return _0x533a0b;}const _0x9e54c=_0x2f9b95[_0xb99a25(0x154)]['toString'](),_0x2c4481=((_0x65db48=_0x2f9b95['displayName'])===null||_0x65db48===void 0x0?void 0x0:_0x65db48[_0xb99a25(0xf5)])||((_0x3a4c72=_0x2f9b95['browseName'])===null||_0x3a4c72===void 0x0?void 0x0:_0x3a4c72['name'])||_0x2f9b95[_0xb99a25(0x154)][_0xb99a25(0xde)](),{icon:_0x328c89,color:_0xe0a3a4}=_0x103e3b(_0x2f9b95),_0xd0b830=$(_0xb99a25(0xe0)+_0x328c89+_0xb99a25(0x139)+_0xe0a3a4+_0xb99a25(0xce)+_0x2c4481+_0xb99a25(0xeb));return _0xd0b830[_0xb99a25(0x11a)](_0xb99a25(0xd7)),_0xd0b830[_0xb99a25(0x180)](_0xb99a25(0x119),_0x9e54c),_0xd0b830[_0xb99a25(0x180)](_0xb99a25(0x114),_0x2f9b95),_0xd0b830;},_0x1353e8=()=>{const _0x5dc076=_0x7bd34d;$['widget']('sterfive.nodeBrowser',{'options':{'endpointNode':()=>({'endpoint':'opc.tcp://opcuademo.sterfive.com:26543'}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':'Objects'},'nodeClass':_0x5dc076(0x137),'nodeId':_0x5dc076(0x12c),'displayName':{'text':_0x5dc076(0xf1)},'typeDefinition':_0x43a4e0}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x3e61ea(this,void 0x0,void 0x0,function*(){const _0x1ece7a=_0x5256,_0x294353=this,_0x2aec46=typeof _0x294353[_0x1ece7a(0xe8)][_0x1ece7a(0x160)]===_0x1ece7a(0xd3)?_0x294353['options'][_0x1ece7a(0x160)]():_0x294353['options'][_0x1ece7a(0x160)];if(_0x2aec46 instanceof Promise)return yield _0x2aec46;return _0x2aec46;});},'reset'(){const _0x1c2c66=_0x5dc076,_0x218bc1=this;_0x218bc1['$tree'][_0x1c2c66(0xe2)](),this[_0x1c2c66(0x133)]()[_0x1c2c66(0x12b)](_0x3f71c1=>{const _0x127f14=_0x1c2c66,_0x24ba78=_0x5f3112(_0x3f71c1);_0x218bc1[_0x127f14(0x163)][_0x127f14(0x144)](_0x24ba78),_0x218bc1[_0x127f14(0x16f)]=_0x3f71c1;});},'verify'(){const _0xdd20ec=_0x5dc076,_0x47a4fb=this,_0x1a058b={'baseUrl':_0x47a4fb[_0xdd20ec(0xe8)]['baseUrl'],'endpointNode':typeof _0x47a4fb[_0xdd20ec(0xe8)][_0xdd20ec(0x185)]==='function'?_0x47a4fb[_0xdd20ec(0xe8)][_0xdd20ec(0x185)]():_0x47a4fb[_0xdd20ec(0xe8)][_0xdd20ec(0x185)],'endpoint':typeof _0x47a4fb[_0xdd20ec(0xe8)]['endpoint']==='function'?_0x47a4fb[_0xdd20ec(0xe8)][_0xdd20ec(0x167)]():_0x47a4fb['options']['endpoint']};_0x21dd04(_0x1a058b,_0x47a4fb[_0xdd20ec(0x177)],_0x47a4fb[_0xdd20ec(0x141)]);},'_create'(){const _0x1a2b89=_0x5dc076,_0xb44791=this;function _0x345909(_0x1c886f,_0x5b7de6,_0x36234d){return _0x3e61ea(this,void 0x0,void 0x0,function*(){const _0x728595=_0x5256;if(_0x1c886f[_0x728595(0x176)](_0x728595(0x151))){console['log'](_0x728595(0x113));return;}if(_0x1c886f[_0x728595(0x176)](_0x728595(0x16d))){console[_0x728595(0x178)](_0x728595(0x179));return;}_0x1c886f[_0x728595(0x11a)](_0x728595(0x16d)),_0x1c886f['append'](_0x728595(0x17b));try{_0x1c886f[_0x728595(0x170)]('ul')[_0x728595(0xe2)]();const {references:_0x3c7653}=yield _0x5b7de6(_0x1c886f,_0x36234d);for(const _0x1dbf7b of _0x3c7653){if(_0xb44791['options']['filter']&&!_0xb44791[_0x728595(0xe8)][_0x728595(0x191)](_0x1dbf7b))continue;const _0x263b67=_0x5f3112(_0x1dbf7b);_0x1c886f[_0x728595(0x170)]('ul')['append'](_0x263b67);}_0x1c886f[_0x728595(0x11a)](_0x728595(0x151));}catch(_0x1df9c4){_0x1c886f['children']('ul')[_0x728595(0x144)]('<li>error\x20'+_0x1df9c4[_0x728595(0x166)]+'</li>'),console[_0x728595(0x178)](_0x728595(0xf2),_0x1df9c4);}_0x1c886f['find']('.spinner')['remove'](),_0x1c886f[_0x728595(0xc8)]('loading');});}_0xb44791[_0x1a2b89(0x177)]=this[_0x1a2b89(0x169)],_0xb44791['$combo']=$('<div/>'),_0xb44791[_0x1a2b89(0x132)]['addClass']('sterfive-combo-box'),this[_0x1a2b89(0x169)][_0x1a2b89(0x14a)](_0xb44791[_0x1a2b89(0x132)]),_0xb44791['$inputGroup']=$(_0x1a2b89(0xd2))[_0x1a2b89(0x11a)]('input-group'),_0xb44791[_0x1a2b89(0x132)][_0x1a2b89(0x144)](_0xb44791['$inputGroup']),_0xb44791[_0x1a2b89(0x12f)][_0x1a2b89(0x144)](_0xb44791['$input']),_0xb44791[_0x1a2b89(0xe4)]=$('<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>'),_0xb44791[_0x1a2b89(0x12f)][_0x1a2b89(0x144)](_0xb44791[_0x1a2b89(0xe4)]),_0xb44791[_0x1a2b89(0xe4)]['on']('click',function(){const _0x544545=_0x1a2b89;!_0xb44791[_0x544545(0x162)]['is'](_0x544545(0x158))&&(_0xb44791[_0x544545(0x133)]()[_0x544545(0x12b)](_0x395820=>{const _0x174202=_0x544545;var _0x2d7284;(_0x395820!==_0xb44791['currentParent']||((_0x2d7284=_0xb44791[_0x174202(0x16f)])===null||_0x2d7284===void 0x0?void 0x0:_0x2d7284['nodeId'])!==_0x395820[_0x174202(0x154)])&&_0xb44791[_0x174202(0x156)]();}),_0xb44791[_0x544545(0x141)]['hide']()),_0xb44791[_0x544545(0x162)]['toggle']();}),_0xb44791[_0x1a2b89(0xed)]=$('<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>'),_0xb44791[_0x1a2b89(0x12f)][_0x1a2b89(0x144)](_0xb44791[_0x1a2b89(0xed)]),_0xb44791[_0x1a2b89(0xed)]['on'](_0x1a2b89(0x183),()=>{const _0x54f8ba=_0x1a2b89;this[_0x54f8ba(0x147)]();}),!_0xb44791[_0x1a2b89(0x177)][_0x1a2b89(0x14f)](_0x1a2b89(0x171))&&_0xb44791[_0x1a2b89(0x177)][_0x1a2b89(0x14f)](_0x1a2b89(0x171),'enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20'),_0xb44791[_0x1a2b89(0x141)]=$('<div\x20class=\x22info-text\x22></div>'),_0xb44791[_0x1a2b89(0x141)]['hide'](),{'baseUrl':_0xb44791[_0x1a2b89(0xe8)][_0x1a2b89(0x148)],'endpointNode':typeof _0xb44791['options']['endpointNode']===_0x1a2b89(0xd3)?_0xb44791[_0x1a2b89(0xe8)][_0x1a2b89(0x185)]():_0xb44791['options'][_0x1a2b89(0x185)],'endpoint':typeof _0xb44791[_0x1a2b89(0xe8)][_0x1a2b89(0x167)]==='function'?_0xb44791['options'][_0x1a2b89(0x167)]():_0xb44791[_0x1a2b89(0xe8)][_0x1a2b89(0x167)]},_0xb44791[_0x1a2b89(0x162)]=$('<div/>')[_0x1a2b89(0x11a)]('sterfive-dropdown')[_0x1a2b89(0x181)](),_0xb44791['$combo'][_0x1a2b89(0x144)](_0xb44791['$info']),_0xb44791[_0x1a2b89(0x132)][_0x1a2b89(0x144)](_0xb44791[_0x1a2b89(0x162)]),_0xb44791['$tree']=$(_0x1a2b89(0x173))['appendTo'](_0xb44791[_0x1a2b89(0x162)]),this['reset'](),_0xb44791[_0x1a2b89(0x163)]['on'](_0x1a2b89(0x183),'li',function(_0x5e7908){const _0x43df84=_0x1a2b89;var _0x4c6c20,_0x505777;_0x5e7908[_0x43df84(0xd0)]();let _0x435a59=$(this);const _0x1766c3=0x14,_0x54b858=0x14,_0x44920e=$(this)[_0x43df84(0x120)](),_0x3275ba=_0x5e7908;if(_0x3275ba[_0x43df84(0x140)]>=_0x44920e[_0x43df84(0x174)]&&_0x3275ba[_0x43df84(0x140)]<=_0x44920e[_0x43df84(0x174)]+_0x1766c3&&_0x3275ba[_0x43df84(0x108)]>=_0x44920e[_0x43df84(0x150)]&&_0x3275ba[_0x43df84(0x108)]<=_0x44920e['top']+_0x54b858){if(_0x435a59[_0x43df84(0x176)](_0x43df84(0xd7))){if(_0x435a59[_0x43df84(0x176)](_0x43df84(0x151))){_0x435a59[_0x43df84(0xc8)](_0x43df84(0xd7))[_0x43df84(0x11a)]('expanded'),_0x435a59['children']('ul')[_0x43df84(0x12e)]();return;}const _0x3f3a38={'baseUrl':_0xb44791[_0x43df84(0xe8)][_0x43df84(0x148)],'endpointNode':typeof _0xb44791[_0x43df84(0xe8)]['endpointNode']==='function'?_0xb44791['options'][_0x43df84(0x185)]():_0xb44791[_0x43df84(0xe8)][_0x43df84(0x185)],'endpoint':typeof _0xb44791['options']['endpoint']==='function'?_0xb44791[_0x43df84(0xe8)][_0x43df84(0x167)]():_0xb44791[_0x43df84(0xe8)][_0x43df84(0x167)]},_0x5e9efa=!_0xb44791[_0x43df84(0xe8)][_0x43df84(0x15d)]?_0x37e7fe:_0x473ca3;_0x345909(_0x435a59,_0x5e9efa,_0x3f3a38)['then'](()=>{const _0x172ead=_0x43df84;console['log'](_0x172ead(0xf4)),console[_0x172ead(0x178)](_0x172ead(0x151)),_0x435a59[_0x172ead(0xc8)]('expandable')[_0x172ead(0x11a)](_0x172ead(0x10e));})['catch'](_0x4c1e4f=>{const _0x276d91=_0x43df84;_0x435a59[_0x276d91(0xc8)](_0x276d91(0xd7))['addClass']('expanded'),console[_0x276d91(0x178)]('error',_0x4c1e4f);});}else{if(_0x435a59[_0x43df84(0x176)](_0x43df84(0x10e)))_0x435a59[_0x43df84(0x170)]('ul')[_0x43df84(0x12e)](),_0x435a59[_0x43df84(0x10c)]('expandable\x20expanded');else{if(_0x435a59['children']('ul')[_0x43df84(0x170)]()['length']>0x0)_0x435a59[_0x43df84(0x170)]('ul')[_0x43df84(0x12e)](),_0x435a59['toggleClass'](_0x43df84(0xec));else;}}}else{const _0x1f18ca=_0x435a59[_0x43df84(0x180)](_0x43df84(0x119)),_0x7529b0=_0x435a59[_0x43df84(0x180)](_0x43df84(0x114));if(_0xb44791[_0x43df84(0xe8)]['isSelectable']&&!_0xb44791[_0x43df84(0xe8)][_0x43df84(0x102)](_0x7529b0))return;_0xb44791[_0x43df84(0x177)][_0x43df84(0x180)]('reference',_0x7529b0);const _0x4e37cf=((_0x4c6c20=_0x7529b0[_0x43df84(0xdc)])===null||_0x4c6c20===void 0x0?void 0x0:_0x4c6c20[_0x43df84(0xf5)])||((_0x505777=_0x7529b0[_0x43df84(0x145)])===null||_0x505777===void 0x0?void 0x0:_0x505777[_0x43df84(0xd4)])||_0x7529b0[_0x43df84(0x154)][_0x43df84(0xde)](),_0x3fb98d='['+_0x4e37cf+']('+_0x1f18ca+')';_0xb44791[_0x43df84(0x177)][_0x43df84(0x10d)](_0x3fb98d),_0xb44791['$input'][_0x43df84(0xfd)](_0x43df84(0x164)),_0xb44791[_0x43df84(0x162)]['hide']();}}),$(document)['on'](_0x1a2b89(0x183),function(_0xedf118){const _0x6bd414=_0x1a2b89;!$(_0xedf118['target'])[_0x6bd414(0x190)](_0xb44791[_0x6bd414(0x132)])[_0x6bd414(0x155)]&&_0xb44791['$dropdown'][_0x6bd414(0x181)]();});}});},_0x587bbe=({endpointNode:_0x2fda0e,endpoint:_0x5ef1f0,baseUrl:_0x520664},_0x544c30)=>_0x3e61ea(void 0x0,void 0x0,void 0x0,function*(){const _0x3f7cd1=_0x7bd34d,_0x2f23d9=_0x520664+_0x3f7cd1(0x118),_0x2cad2b=_0x2f23d9+_0x3f7cd1(0x17e),_0x1cc9a2=yield fetch(_0x2cad2b,{'method':'POST','body':JSON[_0x3f7cd1(0xd6)]({'endpointNode':_0x2fda0e,'endpoint':_0x5ef1f0,'nodeId':_0x544c30}),'headers':{'Content-Type':_0x3f7cd1(0x105)}});if(_0x1cc9a2[_0x3f7cd1(0x182)]!==0xc8){console[_0x3f7cd1(0x178)](_0x3f7cd1(0x146),_0x1cc9a2['status'],_0x1cc9a2['statusText']);const _0x109615={'statusCode':_0x3f7cd1(0x184),'nodeAddressString':_0x544c30};return _0x109615;}console[_0x3f7cd1(0x178)](_0x3f7cd1(0xcd),_0x1cc9a2[_0x3f7cd1(0x182)],_0x1cc9a2[_0x3f7cd1(0x131)]);const _0x233485=yield _0x1cc9a2[_0x3f7cd1(0xfb)]();return _0x233485;});function _0x27ab9d(_0x1913dc,_0xdc7490,_0x48ef50,_0x23833e){const _0x445775=_0x7bd34d,_0x181de9=$('#'+_0x1913dc+_0x445775(0xcc)),_0x3ed410=$('#'+_0x1913dc+_0x445775(0x13f)),_0x484516=$('#'+_0x1913dc+_0x445775(0xf0)),_0x4bc024=$('#'+_0x1913dc+'-messages');let _0x1b003d=![];_0x181de9['hide'](),_0x3ed410[_0x445775(0x181)](),_0x484516[_0x445775(0x181)](),_0xdc7490['on'](_0x445775(0x183),()=>{const _0x26bc06=_0x445775;if(_0x1b003d)return;_0x1b003d=!![],_0x484516[_0x26bc06(0xc8)]('hide'),_0x484516['html'](_0x26bc06(0x134)),_0x181de9[_0x26bc06(0x11a)](_0x26bc06(0x181)),_0x3ed410[_0x26bc06(0x11a)](_0x26bc06(0x181)),_0x4bc024[_0x26bc06(0xff)]('');const {body:_0x43d701,url:_0x4d167}=_0x48ef50();fetch(_0x4d167,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x43d701)})['then'](_0x492599=>_0x492599[_0x26bc06(0xfb)]())[_0x26bc06(0x12b)](_0x352f9a=>{const _0x4a22fb=_0x26bc06;_0x1b003d=![],_0x484516['hide'](),console[_0x4a22fb(0x178)](JSON[_0x4a22fb(0xd6)](_0x352f9a,null,'\x20'));if(_0x352f9a[_0x4a22fb(0xc9)]==='ok')_0x181de9[_0x4a22fb(0xc8)]('hide'),_0x3ed410[_0x4a22fb(0x11a)](_0x4a22fb(0x181)),_0x4bc024['html'](_0x352f9a[_0x4a22fb(0x166)][_0x4a22fb(0x165)]('\x0a','<br>')),_0x23833e(null,_0x352f9a);else{const _0x4066e9=_0x3a9d4e=>!_0x3a9d4e?'':_0x3a9d4e[_0x4a22fb(0x16a)]('\x0a')[_0x4a22fb(0xd5)](_0x5c89ab=>_0x4a22fb(0x109)+_0x5c89ab+_0x4a22fb(0x16b))[_0x4a22fb(0x10b)]('\x0a'),_0x50e81a=_0x50abba=>Array['isArray'](_0x50abba)?_0x50abba[_0x4a22fb(0xd5)](_0x4066e9)[_0x4a22fb(0x10b)]('\x0a'):_0x4066e9(_0x50abba);_0x181de9[_0x4a22fb(0x11a)](_0x4a22fb(0x181)),_0x3ed410[_0x4a22fb(0xc8)](_0x4a22fb(0x181)),_0x4bc024[_0x4a22fb(0xff)](_0x50e81a(_0x352f9a['message'])+_0x50e81a(_0x352f9a[_0x4a22fb(0x157)])),_0x23833e(new Error(_0x352f9a['result']),_0x352f9a);}})[_0x26bc06(0x14d)](_0x3a7688=>{const _0x229302=_0x26bc06;_0x1b003d=![],_0x484516[_0x229302(0x11a)](_0x229302(0x181)),_0x181de9['addClass'](_0x229302(0x181)),_0x3ed410[_0x229302(0xc8)](_0x229302(0x181)),_0x4bc024[_0x229302(0xff)]('internal\x20error\x20'+_0x3a7688[_0x229302(0x166)]),console[_0x229302(0x178)](_0x229302(0xf2),_0x3a7688),_0x23833e(_0x3a7688,null);});});}const _0x5e8e3c=()=>{const _0x4102d0=_0x7bd34d,_0x3c588a=$(_0x4102d0(0xe5)),_0x4242b3=_0x3c588a[_0x4102d0(0x10d)](),_0x21203b=RED[_0x4102d0(0xfa)][_0x4102d0(0x188)](_0x4242b3);if(!_0x21203b)return undefined;const {endpoint:_0x5562ee,securityMode:_0x4fd166,securityPolicy:_0x4d32f5,userIdentityType:_0x122021,credentials:_0x29db2e}=_0x21203b,_0x3d4af6={'endpoint':_0x5562ee,'securityMode':_0x4fd166,'securityPolicy':_0x4d32f5,'userIdentityType':_0x122021,'credentials':_0x29db2e};return _0x3d4af6;},_0x93e337=()=>{return{'endpointNode':_0x42f292};},_0x42f292=()=>{const _0x5bb38a=_0x7bd34d,_0x2282fd=$(_0x5bb38a(0xe5)),_0x15c532=_0x2282fd[_0x5bb38a(0x10d)](),_0x19040e=_0x5e8e3c();if(!_0x19040e)return undefined;return{'id':_0x15c532};};RED[_0x7bd34d(0xfa)][_0x7bd34d(0x112)](_0x7bd34d(0x186),{'category':_0x7bd34d(0x15f),'color':_0x7bd34d(0xcf),'align':_0x7bd34d(0x152),'icon':_0x7bd34d(0x136),'paletteLabel':_0x7bd34d(0x149),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x7bd34d(0x18b)},'action':{'value':'read','required':!![]},'methodId':{'value':'','required':!![]},'objectId':{'value':'','required':!![]}},'outputs':0x2,'label'(){const _0x48b1d4=_0x7bd34d;return this['name']||_0x48b1d4(0x106);},'labelStyle'(){const _0x121e13=_0x7bd34d;return this[_0x121e13(0xd4)]?'node_label_italic':'';},'oneditprepare'(){const _0x399586=_0x7bd34d,_0x1d84d7=this;_0x1353e8(),_0x1d84d7[_0x399586(0x117)]=0x1;let _0x348e30={};console[_0x399586(0x178)](_0x399586(0x122));const _0x246abf=$(_0x399586(0xf7)),_0x11add2=$(_0x399586(0x116)),_0x558048=$(_0x399586(0xd1)),_0x5a273f=$('#method-output-argument-definition'),_0x28e2a4=$(_0x399586(0x18a));_0x246abf[_0x399586(0x138)](Object[_0x399586(0x125)](Object[_0x399586(0x125)]({},_0x93e337()),{'filter'(_0x566b64){const _0x1fe19a=_0x399586;return _0x566b64[_0x1fe19a(0xea)]==='Object';}})),_0x11add2['nodeBrowser'](Object[_0x399586(0x125)](Object[_0x399586(0x125)]({},_0x93e337()),{'parentNode':()=>_0x3e61ea(this,void 0x0,void 0x0,function*(){const _0x41d7a5=_0x399586;let _0x2b4299=_0x246abf[_0x41d7a5(0x180)](_0x41d7a5(0x114));if(!_0x2b4299){const _0x6e59f=_0x246abf[_0x41d7a5(0x10d)](),_0x531620=_0x5e8e3c();if(!_0x531620)return null;const _0x4403d2={'baseUrl':'','endpoint':'','endpointNode':_0x531620};try{const _0x472bc3=yield _0x587bbe(_0x4403d2,_0x6e59f);_0x2b4299=_0x472bc3[_0x41d7a5(0x114)];}catch(_0xdb8580){console['log'](_0xdb8580);}}return _0x2b4299;}),'filter'(_0x48b025){const _0x44cd81=_0x399586;return _0x48b025[_0x44cd81(0xea)]===_0x44cd81(0x107)||_0x48b025[_0x44cd81(0xea)]===_0x44cd81(0x137);},'isSelectable'(_0x1ed7b1){const _0x1482dd=_0x399586;return _0x1ed7b1['nodeClass']===_0x1482dd(0x107);}})),_0x246abf['on'](_0x399586(0x164),()=>{const _0x49c55e=_0x399586;_0x11add2[_0x49c55e(0x138)]('reset');}),console['log'](_0x399586(0xf9));function _0x117112(_0x5ec16c,_0x34651c,_0x1c2dee){const _0x425761=_0x399586,_0x385d8e=$(_0x425761(0x110))['appendTo'](_0x5ec16c);$(_0x425761(0xda))['val'](_0x1c2dee[_0x425761(0xd4)]||'')[_0x425761(0x10a)]({'width':_0x425761(0x18c)})['appendTo'](_0x385d8e);const _0x1c5a91=_0x348e30[_0x1c2dee[_0x425761(0xe9)][_0x425761(0xde)]()],_0x1c79a9=(_0x1c5a91?_0x1c5a91[_0x425761(0x145)]['name']||'':_0x1c2dee[_0x425761(0xe9)][_0x425761(0xde)]())+(_0x1c2dee[_0x425761(0x11b)]===0x1?'[]':'');$(_0x425761(0xda))['val'](_0x1c2dee['description'][_0x425761(0xf5)]||'')['css']({'width':_0x425761(0x11e)})[_0x425761(0x11c)](_0x385d8e),$(_0x425761(0xda))[_0x425761(0x10d)](_0x1c79a9||'')['css']({'width':'50%'})[_0x425761(0x11c)](_0x385d8e);}_0x558048[_0x399586(0xd8)]({'addButton':![],'height':'auto','scrollOnAdd':![],'addItem'(_0x3289c5,_0x1f9339,_0x28deb5){_0x117112(_0x3289c5,_0x1f9339,_0x28deb5);}}),_0x5a273f[_0x399586(0xd8)]({'addButton':![],'height':'auto','scrollOnAdd':![],'addItem'(_0x1629c6,_0x18f9ba,_0x46808c){_0x117112(_0x1629c6,_0x18f9ba,_0x46808c);}});function _0x2f1fe2(_0x43c743,_0x1662e1){const _0x36fc28=_0x399586;console[_0x36fc28(0x178)](_0x36fc28(0x124),_0x1662e1[_0x36fc28(0x155)],_0x36fc28(0x17a),_0x1662e1),_0x43c743[_0x36fc28(0xd8)](_0x36fc28(0xe2));for(let _0x2a8ed8=0x0;_0x2a8ed8<_0x1662e1[_0x36fc28(0x155)];_0x2a8ed8++){_0x43c743[_0x36fc28(0xd8)]('addItem',_0x1662e1[_0x2a8ed8]);}}_0x558048[_0x399586(0x181)](),_0x5a273f['hide'](),_0x27ab9d(_0x399586(0xf3),_0x28e2a4,()=>({'url':'/opcua-endpoint2/argumentDefinition','body':{'endpointNode':_0x42f292(),'objectId':_0x246abf[_0x399586(0x10d)](),'methodId':_0x11add2[_0x399586(0x10d)]()}}),(_0x11582f,_0x3ff692)=>{const _0x40d0a0=_0x399586;if(_0x11582f)return;const _0x4d557e=_0x3ff692['argumentDefinition'];_0x348e30=_0x3ff692[_0x40d0a0(0xd9)],_0x558048[_0x40d0a0(0x13b)](),_0x5a273f[_0x40d0a0(0x13b)](),_0x2f1fe2(_0x558048,_0x4d557e[_0x40d0a0(0x18d)]),_0x2f1fe2(_0x5a273f,_0x4d557e['outputArguments']),console['log'](_0x40d0a0(0x180),_0x3ff692);});},'oneditsave'(){}});}()));function _0x5256(_0x10bbed,_0x23b14a){const _0x303b42=_0x303b();return _0x5256=function(_0x52565a,_0x253fc5){_0x52565a=_0x52565a-0xc7;let _0x2f1a09=_0x303b42[_0x52565a];return _0x2f1a09;},_0x5256(_0x10bbed,_0x23b14a);}function _0x303b(){const _0x38f5ea=['closest','filter','2655774kKJSYU','Both','removeClass','result','ReferenceType','Unspecified','-success','fetched\x20:\x20',';\x22></i>\x20','#C0DEED','stopPropagation','#method-input-argument-definition','<div/>','function','name','map','stringify','expandable','editableList','dataTypes','<input\x20type=\x22text\x22>','2663076TdoqCK','displayName','statusCode','toString','SuppressedError','<li><i\x20class=\x22fa\x20','IsForward','empty','ns=0;i=45','$toggleTreeBtn','#node-input-endpoint','i=61','Forward','options','dataType','nodeClass','<ul></ul></li>','expandable\x20expanded','$verifyBtn','typeDefinition','DodgerBlue','-pending','Objects','err','validate','\x20Fetching\x20done','text','error','#node-input-objectId','HasChild','Calling\x20nodeBrowser\x20Done','nodes','json','14135697ZkCVST','trigger','5300071PbsZKm','html','BrowseName','fa-object-group','isSelectable','417224dJCwUc','View','application/json','OPCUA-Call','Method','pageY','<p>','css','join','toggleClass','val','expanded','/browse','<div\x20class=\x22argument-entry\x22>','nodeAddressString','registerType','already\x20fetched','reference','185816MFGQRe','#node-input-methodId','inputs','/opcua-endpoint2','value','addClass','valueRank','appendTo','ns=0;i=40','50%','fa-text-width','offset','Invalid','Calling\x20nodeBrowser','!!failure!!','installArgumentList','assign','4616545QhNEfW','references','sterfive-info','ns=0;i=34','grey','then','ns=0;i=85','suppressed','toggle','$inputGroup','referenceTypeId','statusText','$combo','resolveParentNode','Testing\x20Connection\x20...','7TXmvrb','../../icons/opcuanodeLogo.png','Object','nodeBrowser','\x22\x20style=\x22color:','CadetBlue','show','throw','VariableType','Good','-failure','pageX','$info','4zWFCsj','Inverse','append','browseName','fetching\x20failed\x20with\x20error','verify','baseUrl','call','replaceWith','DarkOrange','browseResult','catch','DataType','attr','top','fetched','right','fa-sliders','nodeId','length','reset','extra',':visible','ObjectType','NodeClass','HasComponent','HasTypeDefinition','isTypeRef','failure','opcua','parentNode','SteelBlue','$dropdown','$tree','change','replace','message','endpoint','done','element','split','</p>','fa-folder','loading','rgba(61,\x2060,\x204,\x200.525)','currentParent','children','placeholder','HasSubtype','<ul\x20class=\x22sterfive-tree\x22></ul>','left','Variable','hasClass','$input','log','already\x20loading','arguments','<div\x20class=\x22spinner\x22></div>','SeaGreen','next','/checkNodeId','TypeDefinition','data','hide','status','click','Bad','endpointNode','OpcUa-Client2-Call','fa-list-alt','node','DisplayName','#validate-call-arguments-button','OpcUa-Endpoint2','100%','inputArguments','ns=0;i=35','Organizes'];_0x303b=function(){return _0x38f5ea;};return _0x303b();}
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgzZTYxZWEiLCJfMHgxMzMwOGIiLCJfMHg0MTYzODUiLCJfMHgzM2JjMTAiLCJfMHg1OTY1MGUiLCJfMHg0YWY3ZWIiLCJfMHgzN2FkZWIiLCJfMHg1MzY5ZjciLCJQcm9taXNlIiwiXzB4MzZiODBlIiwiXzB4MmQ2MWNmIiwiXzB4NTZmNzRiIiwiXzB4MWExZDY1IiwiXzB4NGM1YTBiIiwiXzB4NDEzNzIyIiwiXzB4MzBhMzExIiwiXzB4NWE1NDcyIiwiXzB4ZGZlYmM3IiwiXzB4ZDViOGYxIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4MmM2NjZkIiwiXzB4MjQ4ODUyIiwiXzB4NWI3YmQyIiwiXzB4MjdkZDZhIiwiRXJyb3IiLCJfMHgyY2I5OTEiLCJfMHg0M2E0ZTAiLCJfMHgxNjEyOGYiLCJfMHgyYTI5NDgiLCJfMHgyOWJkMWQiLCJfMHgxYTU3MGUiLCJfMHg0YmFjMTgiLCJfMHgyYzQzNzEiLCJfMHgxNGUyY2EiLCJfMHg0NzczNmUiLCJfMHg1YjRlYzUiLCJfMHg1ZDQwZGUiLCJfMHg1YzA1NTUiLCJfMHgyNTg2MWIiLCJfMHgyMDA2ZjAiLCJfMHg0ZjAzOWIiLCJfMHhmMTQ1NTIiLCJfMHgxMDNlM2IiLCJfMHgxMGU1YjUiLCJfMHgyODdhNzciLCJlbmRwb2ludE5vZGUiLCJfMHgyNDMxN2MiLCJlbmRwb2ludCIsIl8weDRhMzI4ZiIsImJhc2VVcmwiLCJfMHgxMGRiMzMiLCJfMHgxZGZjZDAiLCJfMHg1MTgxYzEiLCJfMHgxZmNhYzkiLCJfMHgxZjdkMWMiLCJfMHg1ODNhMDUiLCJPYmplY3QiLCJfMHg0MDZmZDMiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4MTNhN2U1IiwiXzB4OWUyYzI4IiwiXzB4MzZiZGI0IiwiXzB4MmNkNDcxIiwiXzB4MjFkZDA0IiwiXzB4MWU3ODZlIiwiXzB4NDMwMTQ5IiwiXzB4MjZjYmNkIiwiXzB4OTgwNWQzIiwiXzB4MmFiY2I4IiwiXzB4NGFjMWY3IiwiXzB4M2VhYzc2IiwiXzB4MTA4N2Q5IiwiXzB4NDQyZWVkIiwiXzB4MWI5Njk2IiwiXzB4NDhkYjk4Iiwic2V0VGltZW91dCIsIl8weDI4NTIzOCIsIl8weDM3ZTdmZSIsIl8weDM5Mzg2ZSIsIl8weDMzYWZlYiIsIl8weDE1NWUzOSIsIl8weDI0YWE2NyIsIl8weDNmYmViOCIsIl8weDFhNjVkZiIsIl8weDQ3M2NhMyIsIl8weGE3YzQ4MSIsIl8weDEzODJiZCIsIl8weDVkYmQwYyIsIl8weDNiYjA0NCIsIl8weDVmMzExMiIsIl8weDJmOWI5NSIsIl8weDY1ZGI0OCIsIl8weDNhNGM3MiIsIl8weDUzM2EwYiIsIiQiLCJfMHg5ZTU0YyIsIl8weDJjNDQ4MSIsImljb24iLCJfMHgzMjhjODkiLCJjb2xvciIsIl8weGUwYTNhNCIsIl8weGQwYjgzMCIsIl8weDEzNTNlOCIsInVuZGVmaW5lZCIsIl8weDI5NDM1MyIsIl8weDJhZWM0NiIsIl8weDIxOGJjMSIsIl8weDNmNzFjMSIsIl8weDI0YmE3OCIsIl8weDQ3YTRmYiIsIl8weDFhMDU4YiIsIl8weGI0NDc5MSIsIl8weDM0NTkwOSIsIl8weDFjODg2ZiIsIl8weDViN2RlNiIsIl8weDM2MjM0ZCIsInJlZmVyZW5jZXMiLCJfMHgzYzc2NTMiLCJfMHgxZGJmN2IiLCJfMHgyNjNiNjciLCJfMHgxZGY5YzQiLCJfMHgzOTU4MjAiLCJfMHgyZDcyODQiLCJfMHg1ZTc5MDgiLCJfMHg0YzZjMjAiLCJfMHg1MDU3NzciLCJfMHg0MzVhNTkiLCJfMHgxNzY2YzMiLCJfMHg1NGI4NTgiLCJfMHg0NDkyMGUiLCJfMHgzMjc1YmEiLCJfMHgzZjNhMzgiLCJfMHg1ZTllZmEiLCJfMHg0YzFlNGYiLCJfMHgxZjE4Y2EiLCJfMHg3NTI5YjAiLCJfMHg0ZTM3Y2YiLCJfMHgzZmI5OGQiLCJkb2N1bWVudCIsIl8weGVkZjExOCIsIl8weDU4N2JiZSIsIl8weDJmZGEwZSIsIl8weDVlZjFmMCIsIl8weDUyMDY2NCIsIl8weDU0NGMzMCIsIl8weDJmMjNkOSIsIl8weDJjYWQyYiIsIl8weDFjYzlhMiIsIl8weDEwOTYxNSIsIl8weDIzMzQ4NSIsIl8weDI3YWI5ZCIsIl8weDE5MTNkYyIsIl8weGRjNzQ5MCIsIl8weDQ4ZWY1MCIsIl8weDIzODMzZSIsIl8weDE4MWRlOSIsIl8weDNlZDQxMCIsIl8weDQ4NDUxNiIsIl8weDRiYzAyNCIsIl8weDFiMDAzZCIsImJvZHkiLCJfMHg0M2Q3MDEiLCJ1cmwiLCJfMHg0ZDE2NyIsIl8weDQ5MjU5OSIsIl8weDM1MmY5YSIsIl8weDQwNjZlOSIsIl8weDNhOWQ0ZSIsIl8weDVjODlhYiIsIl8weDUwZTgxYSIsIl8weDUwYWJiYSIsIkFycmF5IiwiXzB4M2E3Njg4IiwiXzB4NWU4ZTNjIiwiXzB4M2M1ODhhIiwiXzB4NDI0MmIzIiwiXzB4MjEyMDNiIiwiUkVEIiwiXzB4NTU2MmVlIiwic2VjdXJpdHlNb2RlIiwiXzB4NGZkMTY2Iiwic2VjdXJpdHlQb2xpY3kiLCJfMHg0ZDMyZjUiLCJ1c2VySWRlbnRpdHlUeXBlIiwiXzB4MTIyMDIxIiwiY3JlZGVudGlhbHMiLCJfMHgyOWRiMmUiLCJfMHgzZDRhZjYiLCJfMHg5M2UzMzciLCJfMHg0MmYyOTIiLCJfMHgyMjgyZmQiLCJfMHgxNWM1MzIiLCJfMHgxOTA0MGUiLCJfMHgxZDg0ZDciLCJfMHgzNDhlMzAiLCJfMHgyNDZhYmYiLCJfMHgxMWFkZDIiLCJfMHg1NTgwNDgiLCJfMHg1YTI3M2YiLCJfMHgyOGUyYTQiLCJfMHg1NjZiNjQiLCJfMHgyYjQyOTkiLCJfMHg2ZTU5ZiIsIl8weDUzMTYyMCIsIl8weDQ0MDNkMiIsIl8weDQ3MmJjMyIsIl8weGRiODU4MCIsIl8weDQ4YjAyNSIsIl8weDFlZDdiMSIsIl8weDExNzExMiIsIl8weDVlYzE2YyIsIl8weDM0NjUxYyIsIl8weDFjMmRlZSIsIl8weDM4NWQ4ZSIsIl8weDFjNWE5MSIsIl8weDFjNzlhOSIsIl8weDMyODljNSIsIl8weDFmOTMzOSIsIl8weDI4ZGViNSIsIl8weDE2MjljNiIsIl8weDE4ZjliYSIsIl8weDQ2ODA4YyIsIl8weDJmMWZlMiIsIl8weDQzYzc0MyIsIl8weDE2NjJlMSIsIl8weDJhOGVkOCIsIl8weDExNTgyZiIsIl8weDNmZjY5MiIsIl8weDRkNTU3ZSJdLCJtYXBwaW5ncyI6Im9pQkFBQSxDQUFDLFUsQ0FDRyxhLHdCQW1CQSxTQUFTQSxTQUFULENBQW1CQyxTQUFuQixDQUE0QkMsU0FBNUIsQ0FBd0NDLFNBQXhDLENBQTJDQyxTQUEzQyxDLENBQ0ksU0FBU0MsU0FBVCxDQUFlQyxTQUFmLEMsUUFBK0JBLFNBQUEsWUFBaUJILFNBQWpCLENBQXFCRyxTQUFyQixDQUE2QixJQUFJSCxTQUFKLENBQU0sU0FBVUksU0FBVixDLENBQXFCQSxTQUFBLENBQVFELFNBQVIsQyxFQUEzQixDLFNBQ3JELEdBQUssQ0FBQUgsU0FBQSxFQUFNLENBQUFBLFNBQUEsQ0FBSUssT0FBSixDQUFOLENBQUwsQ0FBeUIsU0FBVUMsU0FBVixDQUFtQkMsU0FBbkIsQyx5QkFDNUIsU0FBU0MsU0FBVCxDQUFtQkMsU0FBbkIsQyxDQUE0QixHLENBQU1DLFNBQUEsQ0FBS1QsU0FBQSxDLE1BQUEsRUFBZVEsU0FBZixDQUFMLEMsRUFBK0IsTUFBT0UsU0FBUCxDLENBQVlKLFNBQUEsQ0FBT0ksU0FBUCxDLEdBQzdFLFNBQVNDLFNBQVQsQ0FBa0JDLFNBQWxCLEMseUJBQTJCLEcsQ0FBTUgsU0FBQSxDQUFLVCxTQUFBLEMsZ0JBQUEsRUFBbUJZLFNBQW5CLENBQUwsQyxFQUFtQyxNQUFPQyxTQUFQLEMsQ0FBWVAsU0FBQSxDQUFPTyxTQUFQLEMsR0FDaEYsU0FBU0osU0FBVCxDQUFjSyxTQUFkLEMseUJBQXdCQSxTQUFBLEMsZ0JBQUEsRUFBY1QsU0FBQSxDQUFRUyxTQUFBLEMsZ0JBQUEsQ0FBUixDQUFkLENBQXNDYixTQUFBLENBQU1hLFNBQUEsQyxnQkFBQSxDQUFOLEUsZ0JBQUEsRUFBeUJQLFNBQXpCLENBQW9DSSxTQUFwQyxDLEVBQzlERixTQUFBLENBQU0sQ0FBQVQsU0FBQSxDQUFZQSxTQUFBLEMsT0FBQSxFQUFnQkgsU0FBaEIs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bEJKLEMsRUFuSHFDLEMsWUF3SXpDLEUsRUF4SXlDLENBQTdDLEMsRUFwbEJKLEciLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuICAgIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG4gICAgcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxyXG5cclxuICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuICAgIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG4gICAgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULFxyXG4gICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbiAgICBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG4gICAgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUlxyXG4gICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbiAgICAvKiBnbG9iYWwgUmVmbGVjdCwgUHJvbWlzZSwgU3VwcHJlc3NlZEVycm9yLCBTeW1ib2wgKi9cclxuXHJcblxyXG4gICAgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gXCJmdW5jdGlvblwiID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7XHJcbiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICAgICAgcmV0dXJuIGUubmFtZSA9IFwiU3VwcHJlc3NlZEVycm9yXCIsIGUuZXJyb3IgPSBlcnJvciwgZS5zdXBwcmVzc2VkID0gc3VwcHJlc3NlZCwgZTtcclxuICAgIH07XG5cbiAgICBjb25zdCBPcmdhbml6ZXNSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNVwiO1xuICAgIGNvbnN0IEZvbGRlclR5cGUgPSBcIm5zPTA7aT02MVwiO1xuICAgIGNvbnN0IEhhc0NvbXBvbmVudFJlZk5vZGVJZCA9IFwibnM9MDtpPTQ3XCI7XG4gICAgY29uc3QgSGFzUHJvcGVydHlSZWZOb2RlSWQgPSBcIm5zPTA7aT00NlwiO1xuICAgIGNvbnN0IEhhc0NoaWxkUmVmTm9kZUlkID0gXCJucz0wO2k9MzRcIjtcbiAgICBjb25zdCBIYXNTdWJ0eXBlUmVmTm9kZUlkID0gXCJucz0wO2k9NDVcIjtcbiAgICBjb25zdCBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZCA9IFwibnM9MDtpPTQwXCI7XG5cbiAgICB2YXIgQnJvd3NlRGlyZWN0aW9uO1xuICAgIChmdW5jdGlvbiAoQnJvd3NlRGlyZWN0aW9uKSB7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJGb3J3YXJkXCJdID0gMF0gPSBcIkZvcndhcmRcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmVyc2VcIl0gPSAxXSA9IFwiSW52ZXJzZVwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiQm90aFwiXSA9IDJdID0gXCJCb3RoXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZhbGlkXCJdID0gM10gPSBcIkludmFsaWRcIjtcbiAgICB9KShCcm93c2VEaXJlY3Rpb24gfHwgKEJyb3dzZURpcmVjdGlvbiA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzcztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzcykge1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVW5zcGVjaWZpZWRcIl0gPSAwXSA9IFwiVW5zcGVjaWZpZWRcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzIHx8IChOb2RlQ2xhc3MgPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3NNYXNrO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzTWFzaykge1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzTWFzayB8fCAoTm9kZUNsYXNzTWFzayA9IHt9KSk7XG4gICAgdmFyIFJlc3VsdE1hc2s7XG4gICAgKGZ1bmN0aW9uIChSZXN1bHRNYXNrKSB7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAxXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJJc0ZvcndhcmRcIl0gPSAyXSA9IFwiSXNGb3J3YXJkXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIk5vZGVDbGFzc1wiXSA9IDRdID0gXCJOb2RlQ2xhc3NcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiQnJvd3NlTmFtZVwiXSA9IDhdID0gXCJCcm93c2VOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkRpc3BsYXlOYW1lXCJdID0gMTZdID0gXCJEaXNwbGF5TmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJUeXBlRGVmaW5pdGlvblwiXSA9IDMyXSA9IFwiVHlwZURlZmluaXRpb25cIjtcbiAgICB9KShSZXN1bHRNYXNrIHx8IChSZXN1bHRNYXNrID0ge30pKTtcbiAgICAvLyAgY29uc3QgcSA9IFJlZmVyZW5jZVR5cGVJZHMuT3JnYW5pemVzO1xuICAgIGZ1bmN0aW9uIHJlc29sdmVOb2RlSWQobm9kZUlkTGlrZSkge1xuICAgICAgICBzd2l0Y2ggKG5vZGVJZExpa2UpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPcmdhbml6ZXNcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gT3JnYW5pemVzUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1Byb3BlcnR5XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1Byb3BlcnR5UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NvbXBvbmVudFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDb21wb25lbnRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ2hpbGRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ2hpbGRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzU3VidHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNTdWJ0eXBlUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1R5cGVEZWZpbml0aW9uXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZ2V0SWNvbiA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgc3dpdGNoIChyZWZlcmVuY2Uubm9kZUNsYXNzKSB7XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0XCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IE9yZ2FuaXplc1JlZk5vZGVJZCkgO1xuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UudHlwZURlZmluaXRpb24gPT09IEZvbGRlclR5cGUgfHwgcmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gXCJpPTYxXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1mb2xkZXJcIiwgY29sb3I6IFwicmdiYSg2MSwgNjAsIDQsIDAuNTI1KVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIlNlYUdyZWVuXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNDb21wb25lbnRSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJTdGVlbEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNQcm9wZXJ0eVJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkRvZGdlckJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgXCJNZXRob2RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWNvZ1wiLCBjb2xvcjogXCJTYW5keUJyb3duXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1zbGlkZXJzXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIkRhdGFUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS10ZXh0LXdpZHRoXCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1xdWVzdGlvblwiLCBjb2xvcjogXCJncmV5XCIgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgYnJvd3NlID0gKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQsIHRlbXBsYXRlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2Jyb3dzZWA7XG4gICAgICAgIGNvbnN0IGJyb3dzZURlc2NyaXB0aW9uID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB0ZW1wbGF0ZSksIHsgbm9kZUlkLCByZXN1bHRNYXNrOiA2MyB9KTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgYnJvd3NlRGVzY3JpcHRpb24sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlczogW10gfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZXMgPSByZXNwb25zZS5icm93c2VSZXN1bHQucmVmZXJlbmNlcyB8fCBbXTtcbiAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlcyB9O1xuICAgIH0pO1xuXG4gICAgY29uc3QgdGVtcGxhdGUxID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNDaGlsZFwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IHRlbXBsYXRlMiA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiT3JnYW5pemVzXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgaW50ZXJuYWxWZXJpZnkgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sICRpbnB1dEVsZW1lbnQsICRpbmZvKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IG5vZGVJZCA9ICRpbnB1dEVsZW1lbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaChgJHtyb290fS9jaGVja05vZGVJZGAsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgc2V0Tm90aWZpY2F0aW9uID0gKHRleHQsIGNsYXNzTmFtZSkgPT4ge1xuICAgICAgICAgICAgJGluZm8udGV4dCh0ZXh0KS5hZGRDbGFzcyhcInN0ZXJmaXZlLWluZm9cIikuYWRkQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICRpbmZvLnNob3coKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICRpbmZvLnJlbW92ZUNsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAgICAgJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgfSwgMzAwMCk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGpzb24gPSAoeWllbGQgZGF0YS5qc29uKCkpO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nO1xuICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiISFmYWlsdXJlISFcIiArIG5vZGVJZCwgXCJmYWlsdXJlXCIpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGpzb24uc3RhdHVzQ29kZS5tYXRjaCgvR29vZC8pKSB7XG4gICAgICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nXG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoanNvbi5ub2RlQWRkcmVzc1N0cmluZyk7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihcIkdvb2RcIiwgXCJva1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGAke25vZGVJZH1gKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oYCR7anNvbi5zdGF0dXNDb2RlfSAke2RhdGEuc3RhdHVzVGV4dH1gLCBcImZhaWx1cmVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBmdW5jdGlvbiBmZXRjaENoaWxkcmVuKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUxKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDIgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTIpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzOiBbLi4uYnJvd3NlUmVzdWx0MS5yZWZlcmVuY2VzLCAuLi5icm93c2VSZXN1bHQyLnJlZmVyZW5jZXNdLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHRlbXBsYXRlU1QgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc1N1YnR5cGVcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfCBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8IE5vZGVDbGFzcy5EYXRhVHlwZSB8IE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgZnVuY3Rpb24gZmV0Y2hTdWJ0eXBlcygkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlU1QpO1xuICAgICAgICAgICAgcmV0dXJuIGJyb3dzZVJlc3VsdDE7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBtYWtlRWxlbWVudCA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKCFyZWZlcmVuY2UpIHtcbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgZmEtZXJyb3JcIiBzdHlsZT1cImNvbG9yOnJlZDtcIj48L2k+bm8gcmVmZXJlbmNlICE8dWw+PC91bD48L2xpPmApO1xuICAgICAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHQgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB7IGljb24sIGNvbG9yIH0gPSBnZXRJY29uKHJlZmVyZW5jZSk7XG4gICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgJHtpY29ufVwiIHN0eWxlPVwiY29sb3I6JHtjb2xvcn07XCI+PC9pPiAke3R9PHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoXCJleHBhbmRhYmxlXCIpO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwidmFsdWVcIiwgbik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgIH07XG4gICAgY29uc3QgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogWyBUZW1wZXJhdHVyZSAgXVxuICAgICAgICAgKiAgICggdG9vbHRpcCA6ICgvT2JqZWN0cy9NeVNlbnNvcikgKG5zPTE7cz1UZW1wZXJhdHVyZSkpXG4gICAgICAgICAqIFsgKyBbRm9sZGVyXSBPYmplY3RzXVxuICAgICAgICAgKiBbICAgICBbT2JqZWN0XSBNeVNlbnNvcl1cbiAgICAgICAgICogWyAgICAgKCApIFtWYXJpYWJsZV0gVGVtcGVyYXR1cmVdXG4gICAgICAgICAqL1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLm5vZGVCcm93c2VyXCIsIHtcbiAgICAgICAgICAgIC8qIGRlZmF1bHQgb3B0aW9ucyAqL1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogKCkgPT4gKHsgZW5kcG9pbnQ6IFwib3BjLnRjcDovL29wY3VhZGVtby5zdGVyZml2ZS5jb206MjY1NDNcIiB9KSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludDogKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGU6ICgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIGJyb3dzZU5hbWU6IHsgbmFtZXNwYWNlSW5kZXg6IDAsIG5hbWU6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIG5vZGVDbGFzczogXCJPYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgbm9kZUlkOiBcIm5zPTA7aT04NVwiLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogeyB0ZXh0OiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICB0eXBlRGVmaW5pdGlvbjogRm9sZGVyVHlwZSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6ICgpID0+IHRydWUsXG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgICAgICBpc1R5cGVSZWY6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc29sdmVQYXJlbnROb2RlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdHlwZW9mIHRoYXQub3B0aW9ucy5wYXJlbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHlpZWxkIGE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGE7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXQoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzb2x2ZVBhcmVudE5vZGUoKS50aGVuKChwYXJlbnROb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jdXJyZW50UGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJpZnkoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbFZlcmlmeShkYXRhLCB0aGF0LiRpbnB1dCwgdGhhdC4kaW5mbyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBfZmV0Y2hEYXRhRm9yTm9kZSgkbm9kZSwgZmV0Y2hGdW5jLCBkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwibG9hZGluZ1wiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFwcGVuZCgnPGRpdiBjbGFzcz1cInNwaW5uZXJcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcmVmZXJlbmNlcyB9ID0geWllbGQgZmV0Y2hGdW5jKCRub2RlLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlZmVyZW5jZSBvZiByZWZlcmVuY2VzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuZmlsdGVyICYmICF0aGF0Lm9wdGlvbnMuZmlsdGVyKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoYDxsaT5lcnJvciAke2Vyci5tZXNzYWdlfTwvbGk+YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmZpbmQoXCIuc3Bpbm5lclwiKS5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLnJlbW92ZUNsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvID0gJChcIjxkaXYvPlwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcInN0ZXJmaXZlLWNvbWJvLWJveFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQucmVwbGFjZVdpdGgodGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAgPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwiaW5wdXQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGlucHV0R3JvdXApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJGlucHV0KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLXNpdGVtYXBcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdG9nZ2xlVHJlZUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0bi5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRkcm9wZG93bi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0cmVlIHdpZGdldCBpcyBnb2luZyB0byBiZWNvbWUgdmlzaWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5yZXNvbHZlUGFyZW50Tm9kZSgpLnRoZW4oKHBhcmVudE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudE5vZGUgIT09IHRoYXQuY3VycmVudFBhcmVudCB8fCAoKF9hID0gdGhhdC5jdXJyZW50UGFyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eubm9kZUlkKSAhPT0gcGFyZW50Tm9kZS5ub2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLWZsYXNrXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHZlcmlmeUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZlcmlmeSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICghdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiLCBcImVudGVyIGEgbm9kZUlkIG9yIGEgYnJvd3NlUGF0aCBcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8gPSAkKGA8ZGl2IGNsYXNzPVwiaW5mby10ZXh0XCI+PC9kaXY+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24gPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwic3RlcmZpdmUtZHJvcGRvd25cIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUgPSAkKGA8dWwgY2xhc3M9XCJzdGVyZml2ZS10cmVlXCI+PC91bD5gKS5hcHBlbmRUbyh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVdpZHRoID0gMjA7IC8vIFNldCB3aWR0aCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVIZWlnaHQgPSAyMDsgLy8gU2V0IGhlaWdodCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50UG9zID0gJCh0aGlzKS5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5wYWdlWCA+PSBlbGVtZW50UG9zLmxlZnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVggPD0gZWxlbWVudFBvcy5sZWZ0ICsgYmVmb3JlV2lkdGggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPj0gZWxlbWVudFBvcy50b3AgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPD0gZWxlbWVudFBvcy50b3AgKyBiZWZvcmVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZiA9ICF0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmID8gZmV0Y2hDaGlsZHJlbiA6IGZldGNoU3VidHlwZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2ZldGNoRGF0YUZvck5vZGUoJGxpLCBmLCBkYXRhKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiIEZldGNoaW5nIGRvbmVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFyayBhcyBleHBhbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvZ2dsZSBpdHMgZXhwYW5kZWQvY29sbGFwc2VkIHN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gJGxpLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9ICRsaS5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUgJiYgIXRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gYFske2Rpc3BsYXlOYW1lfV0oJHt2YWx1ZX0pYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgY2hlY2tOb2RlSWQgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9jaGVja05vZGVJZGA7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICBjb25zdCByZXMgPSB7XG4gICAgICAgICAgICAgICAgc3RhdHVzQ29kZTogXCJCYWRcIixcbiAgICAgICAgICAgICAgICBub2RlQWRkcmVzc1N0cmluZzogbm9kZUlkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBtYW5hZ2VBUElDYWxsKHByZWZpeCwgYnRuLCBmdW5jLCBvblJlc3VsdCkge1xuICAgICAgICBjb25zdCBzdWNjZXNzSWNvbiA9ICQoYCMke3ByZWZpeH0tc3VjY2Vzc2ApO1xuICAgICAgICBjb25zdCBmYWlsdXJlSWNvbiA9ICQoYCMke3ByZWZpeH0tZmFpbHVyZWApO1xuICAgICAgICBjb25zdCBwZW5kaW5nSWNvbiA9ICQoYCMke3ByZWZpeH0tcGVuZGluZ2ApO1xuICAgICAgICBjb25zdCBtZXNzYWdlcyA9ICQoYCMke3ByZWZpeH0tbWVzc2FnZXNgKTtcbiAgICAgICAgbGV0IGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgc3VjY2Vzc0ljb24uaGlkZSgpO1xuICAgICAgICBmYWlsdXJlSWNvbi5oaWRlKCk7XG4gICAgICAgIHBlbmRpbmdJY29uLmhpZGUoKTtcbiAgICAgICAgYnRuLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGFjdGlvblBlbmRpbmcpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgYWN0aW9uUGVuZGluZyA9IHRydWU7XG4gICAgICAgICAgICBwZW5kaW5nSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICBwZW5kaW5nSWNvbi5odG1sKFwiVGVzdGluZyBDb25uZWN0aW9uIC4uLlwiKTtcbiAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIGZhaWx1cmVJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoXCJcIik7XG4gICAgICAgICAgICBjb25zdCB7IGJvZHksIHVybCB9ID0gZnVuYygpO1xuICAgICAgICAgICAgLy8geHggY29uc29sZS5sb2coXCJ4eHh4eFwiLCBib2R5KTtcbiAgICAgICAgICAgIGZldGNoKHVybCwge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGJvZHkpLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAudGhlbigoZGF0YSkgPT4gZGF0YS5qc29uKCkpXG4gICAgICAgICAgICAgICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcGVuZGluZ0ljb24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIFwiIFwiKSk7XG4gICAgICAgICAgICAgICAgaWYgKGpzb24ucmVzdWx0ID09PSBcIm9rXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoanNvbi5tZXNzYWdlLnJlcGxhY2UoXCJcXG5cIiwgXCI8YnI+XCIpKTtcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQobnVsbCwganNvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhZGFwdCA9IChzdHIpID0+ICFzdHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gXCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzdHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3BsaXQoXCJcXG5cIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKChhKSA9PiBgPHA+JHthfTwvcD5gKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKFwiXFxuXCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhZGFwdDIgPSAoc3RyKSA9PiAoQXJyYXkuaXNBcnJheShzdHIpID8gc3RyLm1hcChhZGFwdCkuam9pbihcIlxcblwiKSA6IGFkYXB0KHN0cikpO1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChhZGFwdDIoanNvbi5tZXNzYWdlKSArIGFkYXB0Mihqc29uLmV4dHJhKSk7XG4gICAgICAgICAgICAgICAgICAgIG9uUmVzdWx0KG5ldyBFcnJvcihqc29uLnJlc3VsdCksIGpzb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcGVuZGluZ0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChcImludGVybmFsIGVycm9yIFwiICsgZXJyLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG4gICAgICAgICAgICAgICAgb25SZXN1bHQoZXJyLCBudWxsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBnZXRFbmRQb2ludEF0dHJpYnV0ZXMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgcmVkTm9kZSA9IFJFRC5ub2Rlcy5ub2RlKGVuZHBvaW50SWQpO1xuICAgICAgICBpZiAoIXJlZE5vZGUpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAvLyBjb25zdCBjcmVkZW50aWFscyA9IFJFRC4oZW5kcG9pbnRJZCk7XG4gICAgICAgIC8vIHdlIG5lZWQgdG8gc2FuaXRpemUgYW5kIGV4dHJhY3QgdGhlIGVuZHBvaW50IGF0dHJpYnV0ZXMgb25seSAoIG5vdCB0aGUgbm9kZS1yZWQgc3R1ZmYpXG4gICAgICAgIGNvbnN0IHsgZW5kcG9pbnQsIHNlY3VyaXR5TW9kZSwgc2VjdXJpdHlQb2xpY3ksIHVzZXJJZGVudGl0eVR5cGUsIGNyZWRlbnRpYWxzIH0gPSByZWROb2RlO1xuICAgICAgICBjb25zdCByZXRWYWx1ZSA9IHtcbiAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgY3JlZGVudGlhbHMsXG4gICAgICAgIH07XG4gICAgICAgIC8vIHh4IGNvbnNvbGUubG9nKFwieHh4XCIsIHJldFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHJldFZhbHVlO1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50TnIgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgaWYgKCFlbmRwb2ludE5yKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogZW5kcG9pbnRJZCxcbiAgICAgICAgICAgIC8vIGVuZHBvaW50OiBlbmRwb2ludE5yLmVuZHBvaW50LFxuICAgICAgICAgICAgLy8gc2VjdXJpdHlNb2RlOiBlbmRwb2ludE5yLnNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIC8vIHNlY3VyaXR5UG9saWN5OiBlbmRwb2ludE5yLnNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIHVzZXJJZGVudGl0eVR5cGU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIC8vIGNyZWRlbnRpYWw6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gdXNlck5hbWU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyTmFtZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC8vIHBhc3N3b3JkOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIuY3JlZGVudGlhbHMucGFzc3dvcmQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyB1c2VyQ2VydGlmaWNhdGU6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlckNlcnRpZmljYXRlLFxuICAgICAgICAgICAgLy8gdXNlclByaXZhdGVrZXk6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlclByaXZhdGVrZXksXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1DbGllbnQyLUNhbGxcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJvcGN1YVwiLFxuICAgICAgICBjb2xvcjogXCIjQzBERUVEXCIsXG4gICAgICAgIGFsaWduOiBcInJpZ2h0XCIsXG4gICAgICAgIGljb246IFwiLi4vLi4vaWNvbnMvb3BjdWFub2RlTG9nby5wbmdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcImNhbGxcIixcbiAgICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgICAgIGlucHV0czogeyB2YWx1ZTogMSB9LFxuICAgICAgICAgICAgb3V0cHV0OiB7IHZhbHVlOiA0IH0sXG4gICAgICAgICAgICAvLyBDb21tb25cbiAgICAgICAgICAgIG5hbWU6IHsgdmFsdWU6IFwiXCIgfSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSwgdHlwZTogXCJPcGNVYS1FbmRwb2ludDJcIiB9LFxuICAgICAgICAgICAgYWN0aW9uOiB7IHZhbHVlOiBcInJlYWRcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIC8vIGZvciBhY3Rpb24gY2FsbFxuICAgICAgICAgICAgbWV0aG9kSWQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBvYmplY3RJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gaW5wdXRzOixcbiAgICAgICAgb3V0cHV0czogMiwgLy8gMiBvdXRwdXQsIHNlY29uZCBmb3IgcmF3IG5vZGUtb3BjdWEgZGlhZ25vc3RpY3Mgb3IgbW9yZSBjb21wbGV0ZSBtZXNzYWdlXG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCBcIk9QQ1VBLUNhbGxcIjtcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWxTdHlsZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgPyBcIm5vZGVfbGFiZWxfaXRhbGljXCIgOiBcIlwiO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXM7XG4gICAgICAgICAgICBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQoKTtcbiAgICAgICAgICAgIG5vZGUuaW5wdXRzID0gMTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgU2VjdGlvbiBDYWxsXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgbGV0IGRhdGFUeXBlcyA9IHt9O1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJDYWxsaW5nIG5vZGVCcm93c2VyXCIpO1xuICAgICAgICAgICAgLy8gdG8gZG8gYWRkIGEgdHlwZXNjcmlwdCBkZWZpbml0aW9uIGZvciB0aGlzXG4gICAgICAgICAgICBjb25zdCAkb2JqZWN0SWQgPSAkKFwiI25vZGUtaW5wdXQtb2JqZWN0SWRcIik7XG4gICAgICAgICAgICBjb25zdCAkbWV0aG9kSWQgPSAkKFwiI25vZGUtaW5wdXQtbWV0aG9kSWRcIik7XG4gICAgICAgICAgICBjb25zdCAkaW5wdXRBcmd1bWVudERlZmluaXRpb24gPSAkKFwiI21ldGhvZC1pbnB1dC1hcmd1bWVudC1kZWZpbml0aW9uXCIpO1xuICAgICAgICAgICAgY29uc3QgJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbiA9ICQoXCIjbWV0aG9kLW91dHB1dC1hcmd1bWVudC1kZWZpbml0aW9uXCIpO1xuICAgICAgICAgICAgY29uc3QgJHZhbGlkYXRlQnRuID0gJChcIiN2YWxpZGF0ZS1jYWxsLWFyZ3VtZW50cy1idXR0b25cIik7XG4gICAgICAgICAgICAkb2JqZWN0SWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IGZpbHRlcihub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiO1xuICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICAgICAgJG1ldGhvZElkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBwYXJlbnROb2RlOiAoKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gcmVzeW5jIHdpdGggd2hhdCdzIGluICAjbm9kZS1pbnB1dC1vYmplY3RJZFxuICAgICAgICAgICAgICAgICAgICBsZXQgcmVmZXJlbmNlID0gJG9iamVjdElkLmRhdGEoXCJyZWZlcmVuY2VcIik7XG4gICAgICAgICAgICAgICAgICAgIGlmICghcmVmZXJlbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBub2RlSWRFeCA9ICRvYmplY3RJZC52YWwoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVuZHBvaW50Tm9kZSA9IGdldEVuZFBvaW50QXR0cmlidXRlcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFlbmRwb2ludE5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbm5lY3Rpb25EYXRhID0geyBiYXNlVXJsOiBcIlwiLCBlbmRwb2ludDogXCJcIiwgZW5kcG9pbnROb2RlIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHIgPSB5aWVsZCBjaGVja05vZGVJZChjb25uZWN0aW9uRGF0YSwgbm9kZUlkRXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZSA9IHIucmVmZXJlbmNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZmVyZW5jZTtcbiAgICAgICAgICAgICAgICB9KSwgZmlsdGVyKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiTWV0aG9kXCIgfHwgbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgaXNTZWxlY3RhYmxlKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiTWV0aG9kXCI7XG4gICAgICAgICAgICAgICAgfSB9KSk7XG4gICAgICAgICAgICAkb2JqZWN0SWQub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICRtZXRob2RJZC5ub2RlQnJvd3NlcihcInJlc2V0XCIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkNhbGxpbmcgbm9kZUJyb3dzZXIgRG9uZVwiKTtcbiAgICAgICAgICAgIGZ1bmN0aW9uIGFkZEFyZ3VtZW50Q3RybChjb250YWluZXIsIGluZGV4LCBhcmcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0gJCgnPGRpdiBjbGFzcz1cImFyZ3VtZW50LWVudHJ5XCI+JykuYXBwZW5kVG8oY29udGFpbmVyKTtcbiAgICAgICAgICAgICAgICAvLyBjb250YWluZXIuZGF0YShcImRhdGFcIiwgYXJnKTtcbiAgICAgICAgICAgICAgICAkKCc8aW5wdXQgdHlwZT1cInRleHRcIj4nKVxuICAgICAgICAgICAgICAgICAgICAudmFsKGFyZy5uYW1lIHx8IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgIC5jc3MoeyB3aWR0aDogXCIxMDAlXCIgfSlcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKGl0ZW0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGQgPSBkYXRhVHlwZXNbYXJnLmRhdGFUeXBlLnRvU3RyaW5nKCldO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGFUeXBlTiA9IChkID8gZC5icm93c2VOYW1lLm5hbWUgfHwgXCJcIiA6IGFyZy5kYXRhVHlwZS50b1N0cmluZygpKSArIChhcmcudmFsdWVSYW5rID09PSAxID8gXCJbXVwiIDogXCJcIik7XG4gICAgICAgICAgICAgICAgJCgnPGlucHV0IHR5cGU9XCJ0ZXh0XCI+JylcbiAgICAgICAgICAgICAgICAgICAgLnZhbChhcmcuZGVzY3JpcHRpb24udGV4dCB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAuY3NzKHsgd2lkdGg6IFwiNTAlXCIgfSlcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKGl0ZW0pO1xuICAgICAgICAgICAgICAgICQoJzxpbnB1dCB0eXBlPVwidGV4dFwiPicpXG4gICAgICAgICAgICAgICAgICAgIC52YWwoZGF0YVR5cGVOIHx8IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgIC5jc3MoeyB3aWR0aDogXCI1MCVcIiB9KVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8oaXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkaW5wdXRBcmd1bWVudERlZmluaXRpb24uZWRpdGFibGVMaXN0KHtcbiAgICAgICAgICAgICAgICBhZGRCdXR0b246IGZhbHNlLFxuICAgICAgICAgICAgICAgIGhlaWdodDogXCJhdXRvXCIsXG4gICAgICAgICAgICAgICAgc2Nyb2xsT25BZGQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGFkZEl0ZW0oY29udGFpbmVyLCBpLCBvYmplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgYWRkQXJndW1lbnRDdHJsKGNvbnRhaW5lciwgaSwgb2JqZWN0KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAkb3V0cHV0QXJndW1lbnREZWZpbml0aW9uLmVkaXRhYmxlTGlzdCh7XG4gICAgICAgICAgICAgICAgYWRkQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiLFxuICAgICAgICAgICAgICAgIHNjcm9sbE9uQWRkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBhZGRJdGVtKGNvbnRhaW5lciwgaSwgb2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgIGFkZEFyZ3VtZW50Q3RybChjb250YWluZXIsIGksIG9iamVjdCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZnVuY3Rpb24gaW5zdGFsbEFyZ3VtZW50TGlzdChsaXN0LCBtZXRob2RBcmd1bWVudHMpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImluc3RhbGxBcmd1bWVudExpc3RcIiwgbWV0aG9kQXJndW1lbnRzLmxlbmd0aCwgXCJhcmd1bWVudHNcIiwgbWV0aG9kQXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICBsaXN0LmVkaXRhYmxlTGlzdChcImVtcHR5XCIpO1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWV0aG9kQXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGxpc3QuZWRpdGFibGVMaXN0KFwiYWRkSXRlbVwiLCBtZXRob2RBcmd1bWVudHNbaV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRpbnB1dEFyZ3VtZW50RGVmaW5pdGlvbi5oaWRlKCk7XG4gICAgICAgICAgICAkb3V0cHV0QXJndW1lbnREZWZpbml0aW9uLmhpZGUoKTtcbiAgICAgICAgICAgIG1hbmFnZUFQSUNhbGwoXCJ2YWxpZGF0ZVwiLCAkdmFsaWRhdGVCdG4sICgpID0+ICh7XG4gICAgICAgICAgICAgICAgdXJsOiBcIi9vcGN1YS1lbmRwb2ludDIvYXJndW1lbnREZWZpbml0aW9uXCIsXG4gICAgICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycygpLFxuICAgICAgICAgICAgICAgICAgICBvYmplY3RJZDogJG9iamVjdElkLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICBtZXRob2RJZDogJG1ldGhvZElkLnZhbCgpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSwgKGVyciwgZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBwb3B1bGF0ZSB0aGUgbGlzdFxuICAgICAgICAgICAgICAgIGNvbnN0IGFyZ3VtZW50RGVmaW5pdGlvbiA9IGRhdGEuYXJndW1lbnREZWZpbml0aW9uO1xuICAgICAgICAgICAgICAgIGRhdGFUeXBlcyA9IGRhdGEuZGF0YVR5cGVzO1xuICAgICAgICAgICAgICAgICRpbnB1dEFyZ3VtZW50RGVmaW5pdGlvbi5zaG93KCk7XG4gICAgICAgICAgICAgICAgJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbi5zaG93KCk7XG4gICAgICAgICAgICAgICAgaW5zdGFsbEFyZ3VtZW50TGlzdCgkaW5wdXRBcmd1bWVudERlZmluaXRpb24sIGFyZ3VtZW50RGVmaW5pdGlvbi5pbnB1dEFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgaW5zdGFsbEFyZ3VtZW50TGlzdCgkb3V0cHV0QXJndW1lbnREZWZpbml0aW9uLCBhcmd1bWVudERlZmluaXRpb24ub3V0cHV0QXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImRhdGFcIiwgZGF0YSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0c2F2ZSgpIHsgfSxcbiAgICB9KTtcblxufSkoKTsiXX0=
|
7
|
+
(function(_0x3eab82,_0x4c1b1a){const _0x3ab910=_0x10e9,_0x3394d8=_0x3eab82();while(!![]){try{const _0x478446=-parseInt(_0x3ab910(0x142))/0x1*(-parseInt(_0x3ab910(0x145))/0x2)+-parseInt(_0x3ab910(0x15e))/0x3*(parseInt(_0x3ab910(0x112))/0x4)+-parseInt(_0x3ab910(0x16e))/0x5+parseInt(_0x3ab910(0x13b))/0x6+parseInt(_0x3ab910(0xce))/0x7*(-parseInt(_0x3ab910(0x154))/0x8)+parseInt(_0x3ab910(0x12a))/0x9+parseInt(_0x3ab910(0xc2))/0xa;if(_0x478446===_0x4c1b1a)break;else _0x3394d8['push'](_0x3394d8['shift']());}catch(_0x44fc78){_0x3394d8['push'](_0x3394d8['shift']());}}}(_0x3e20,0xd2e9f),(function(){'use strict';const _0x13f334=_0x10e9;function _0x4008c4(_0x31b8c4,_0x3e0773,_0x4d0eaa,_0x18ed40){function _0xa3b7c7(_0x3c37a1){return _0x3c37a1 instanceof _0x4d0eaa?_0x3c37a1:new _0x4d0eaa(function(_0x539321){_0x539321(_0x3c37a1);});}return new(_0x4d0eaa||(_0x4d0eaa=Promise))(function(_0x2b85fb,_0x2c55b2){const _0x105a6a=_0x10e9;function _0x54712d(_0x2560aa){const _0x24ebf9=_0x10e9;try{_0x5791a6(_0x18ed40[_0x24ebf9(0x139)](_0x2560aa));}catch(_0xa0c12e){_0x2c55b2(_0xa0c12e);}}function _0x1b3e54(_0x222670){try{_0x5791a6(_0x18ed40['throw'](_0x222670));}catch(_0x2491df){_0x2c55b2(_0x2491df);}}function _0x5791a6(_0x309194){const _0x34e0f8=_0x10e9;_0x309194[_0x34e0f8(0x15c)]?_0x2b85fb(_0x309194[_0x34e0f8(0x13f)]):_0xa3b7c7(_0x309194[_0x34e0f8(0x13f)])[_0x34e0f8(0x171)](_0x54712d,_0x1b3e54);}_0x5791a6((_0x18ed40=_0x18ed40['apply'](_0x31b8c4,_0x3e0773||[]))[_0x105a6a(0x139)]());});}typeof SuppressedError==='function'?SuppressedError:function(_0x35d016,_0x2408be,_0x55135f){const _0x302661=_0x10e9;var _0x306fd4=new Error(_0x55135f);return _0x306fd4['name']=_0x302661(0x17d),_0x306fd4[_0x302661(0xaa)]=_0x35d016,_0x306fd4[_0x302661(0x118)]=_0x2408be,_0x306fd4;};const _0x310a8b=_0x13f334(0xb8),_0x4644f3=_0x13f334(0x165),_0x3c64d9=_0x13f334(0xc5),_0x369060=_0x13f334(0xfe),_0x4b7d1d='ns=0;i=34',_0x4feb6a='ns=0;i=45',_0xb235a1=_0x13f334(0xa1);var _0x2e22e5;(function(_0x3225c6){const _0x1f6601=_0x13f334;_0x3225c6[_0x3225c6[_0x1f6601(0xf5)]=0x0]='Forward',_0x3225c6[_0x3225c6['Inverse']=0x1]=_0x1f6601(0xed),_0x3225c6[_0x3225c6[_0x1f6601(0x10d)]=0x2]=_0x1f6601(0x10d),_0x3225c6[_0x3225c6[_0x1f6601(0x127)]=0x3]=_0x1f6601(0x127);}(_0x2e22e5||(_0x2e22e5={})));var _0x5a533b;(function(_0x38f696){const _0x356264=_0x13f334;_0x38f696[_0x38f696['Unspecified']=0x0]='Unspecified',_0x38f696[_0x38f696[_0x356264(0x131)]=0x1]=_0x356264(0x131),_0x38f696[_0x38f696['Variable']=0x2]=_0x356264(0x150),_0x38f696[_0x38f696[_0x356264(0xcc)]=0x4]='Method',_0x38f696[_0x38f696[_0x356264(0x140)]=0x8]='ObjectType',_0x38f696[_0x38f696['VariableType']=0x10]='VariableType',_0x38f696[_0x38f696[_0x356264(0xd8)]=0x20]=_0x356264(0xd8),_0x38f696[_0x38f696['DataType']=0x40]='DataType',_0x38f696[_0x38f696[_0x356264(0x15b)]=0x80]=_0x356264(0x15b);}(_0x5a533b||(_0x5a533b={})));var _0x1cfe51;(function(_0x56609b){const _0x2cfaf=_0x13f334;_0x56609b[_0x56609b['Object']=0x1]=_0x2cfaf(0x131),_0x56609b[_0x56609b[_0x2cfaf(0x150)]=0x2]=_0x2cfaf(0x150),_0x56609b[_0x56609b[_0x2cfaf(0xcc)]=0x4]='Method',_0x56609b[_0x56609b['ObjectType']=0x8]='ObjectType',_0x56609b[_0x56609b[_0x2cfaf(0xa6)]=0x10]=_0x2cfaf(0xa6),_0x56609b[_0x56609b[_0x2cfaf(0xd8)]=0x20]=_0x2cfaf(0xd8),_0x56609b[_0x56609b[_0x2cfaf(0xae)]=0x40]='DataType',_0x56609b[_0x56609b[_0x2cfaf(0x15b)]=0x80]=_0x2cfaf(0x15b);}(_0x1cfe51||(_0x1cfe51={})));var _0x2d5946;(function(_0x594325){const _0x1400da=_0x13f334;_0x594325[_0x594325['ReferenceType']=0x1]=_0x1400da(0xd8),_0x594325[_0x594325[_0x1400da(0xf2)]=0x2]=_0x1400da(0xf2),_0x594325[_0x594325[_0x1400da(0x160)]=0x4]=_0x1400da(0x160),_0x594325[_0x594325[_0x1400da(0xe4)]=0x8]=_0x1400da(0xe4),_0x594325[_0x594325[_0x1400da(0x163)]=0x10]=_0x1400da(0x163),_0x594325[_0x594325[_0x1400da(0xb0)]=0x20]=_0x1400da(0xb0);}(_0x2d5946||(_0x2d5946={})));function _0x5e1db0(_0x4e2754){const _0x2fd6b4=_0x13f334;switch(_0x4e2754){case _0x2fd6b4(0x111):return _0x310a8b;case _0x2fd6b4(0x104):return _0x369060;case'HasComponent':return _0x3c64d9;case _0x2fd6b4(0x110):return _0x4b7d1d;case'HasSubtype':return _0x4feb6a;case _0x2fd6b4(0x13e):return _0xb235a1;}}const _0x27186d=_0x3ad4e6=>{const _0x546e55=_0x13f334;switch(_0x3ad4e6[_0x546e55(0x15f)]){case _0x546e55(0x131):if(_0x3ad4e6[_0x546e55(0xc0)]===_0x310a8b);if(_0x3ad4e6[_0x546e55(0xff)]===_0x4644f3||_0x3ad4e6[_0x546e55(0xc0)]===_0x546e55(0xcd))return{'icon':'fa-folder','color':_0x546e55(0x156)};return{'icon':_0x546e55(0x17a),'color':_0x546e55(0xe2)};case _0x546e55(0x150):if(_0x3ad4e6[_0x546e55(0xc0)]===_0x3c64d9)return{'icon':_0x546e55(0x161),'color':'SteelBlue'};else return _0x3ad4e6[_0x546e55(0xc0)]===_0x369060?{'icon':'fa-list-alt','color':_0x546e55(0x16c)}:{'icon':_0x546e55(0x161),'color':'CadetBlue'};case _0x546e55(0xcc):return{'icon':_0x546e55(0x178),'color':_0x546e55(0xd4)};case _0x546e55(0x140):return{'icon':'fa-object-group','color':_0x546e55(0xd1)};case'VariableType':return{'icon':_0x546e55(0x10e),'color':_0x546e55(0xd1)};case _0x546e55(0xae):return{'icon':_0x546e55(0xc4),'color':'CadetBlue'};}return{'icon':'fa-question','color':_0x546e55(0xab)};},_0x1543e7=({endpointNode:_0x32360d,endpoint:_0x235e52,baseUrl:_0x1c0821},_0x6eac24,_0x5f0b32)=>_0x4008c4(void 0x0,void 0x0,void 0x0,function*(){const _0x4a71b1=_0x13f334,_0x1646d9=_0x1c0821+'/opcua-endpoint2',_0x23166f=_0x1646d9+_0x4a71b1(0x11a),_0xf07ea7=Object[_0x4a71b1(0xd2)](Object[_0x4a71b1(0xd2)]({},_0x5f0b32),{'nodeId':_0x6eac24,'resultMask':0x3f}),_0x566c2e=yield fetch(_0x23166f,{'method':_0x4a71b1(0x17b),'body':JSON[_0x4a71b1(0x10b)]({'endpointNode':_0x32360d,'endpoint':_0x235e52,'browseDescription':_0xf07ea7}),'headers':{'Content-Type':_0x4a71b1(0xfc)}});if(_0x566c2e[_0x4a71b1(0x158)]!==0xc8)return console['log'](_0x4a71b1(0x173),_0x566c2e[_0x4a71b1(0x158)],_0x566c2e[_0x4a71b1(0x166)]),{'references':[]};const _0x5d6568=yield _0x566c2e[_0x4a71b1(0xbe)](),_0x25b923=_0x5d6568['browseResult'][_0x4a71b1(0xb6)]||[];return{'references':_0x25b923};}),_0x3d5a25={'referenceTypeId':_0x5e1db0(_0x13f334(0x110)),'includeSubtypes':!![],'browseDirection':_0x2e22e5[_0x13f334(0xf5)],'nodeClassMask':_0x5a533b[_0x13f334(0x150)]|_0x5a533b['Object']|_0x5a533b[_0x13f334(0xcc)],'resultMask':0x3f},_0x5ece79={'referenceTypeId':_0x5e1db0(_0x13f334(0x111)),'includeSubtypes':!![],'browseDirection':_0x2e22e5[_0x13f334(0xf5)],'nodeClassMask':_0x5a533b[_0x13f334(0x150)]|_0x5a533b[_0x13f334(0x131)]|_0x5a533b[_0x13f334(0xcc)],'resultMask':0x3f},_0x2100c4=({endpointNode:_0x1cc910,endpoint:_0x2a184d,baseUrl:_0x3b7b4e},{nodeId:_0x2a070d,rootNodeId:_0x1ea578,isType:_0x688537})=>_0x4008c4(void 0x0,void 0x0,void 0x0,function*(){const _0x79ceb4=_0x13f334,_0x29e466=_0x3b7b4e+_0x79ceb4(0x159),_0x288156=_0x29e466+_0x79ceb4(0xeb),_0x7c8e76=yield fetch(_0x288156,{'method':_0x79ceb4(0x17b),'body':JSON[_0x79ceb4(0x10b)]({'endpointNode':_0x1cc910,'endpoint':_0x2a184d,'nodeId':_0x2a070d,'rootNodeId':_0x1ea578,'isType':_0x688537}),'headers':{'Content-Type':_0x79ceb4(0xfc)}});if(_0x7c8e76[_0x79ceb4(0x158)]!==0xc8)return null;const _0x23f35b=yield _0x7c8e76[_0x79ceb4(0xbe)]();return _0x23f35b['browsePath'];}),_0x1fb701=({endpointNode:_0x9cdf8b,endpoint:_0x23a261,baseUrl:_0x57e9a2},_0x3ccb18,_0x5e5c04)=>_0x4008c4(void 0x0,void 0x0,void 0x0,function*(){const _0x119064=_0x13f334,_0x177b51=_0x57e9a2+_0x119064(0x159),_0x6bd73f=_0x177b51+'/checkNodeId',_0x1bea35=_0x3ccb18[_0x119064(0x115)](),_0x996af2=yield fetch(_0x6bd73f,{'method':'POST','body':JSON['stringify']({'endpointNode':_0x9cdf8b,'endpoint':_0x23a261,'nodeId':_0x1bea35}),'headers':{'Content-Type':_0x119064(0xfc)}}),_0x51a9b2=(_0x2ba43e,_0x5f5191)=>{const _0x143235=_0x119064;_0x5e5c04[_0x143235(0x148)](_0x2ba43e)['addClass'](_0x143235(0x10f))['addClass'](_0x5f5191),_0x5e5c04['show'](),setTimeout(()=>{_0x5e5c04['removeClass'](_0x5f5191),_0x5e5c04['hide']();},0xbb8);},_0x155593=yield _0x996af2[_0x119064(0xbe)]();_0x996af2[_0x119064(0x158)]!==0xc8?_0x51a9b2(_0x119064(0xbf)+_0x1bea35,'failure'):_0x155593[_0x119064(0x12e)][_0x119064(0x103)](/Good/)?(_0x3ccb18[_0x119064(0x115)](_0x155593[_0x119064(0x120)]),_0x3ccb18['trigger'](_0x119064(0xa7)),_0x51a9b2(_0x119064(0xe3),'ok')):(_0x3ccb18[_0x119064(0x115)](''+_0x1bea35),_0x51a9b2(_0x155593[_0x119064(0x12e)]+'\x20'+_0x996af2[_0x119064(0x166)],_0x119064(0x179)));});function _0x5d0f46(_0xd3cd32,_0x5750a0){return _0x4008c4(this,void 0x0,void 0x0,function*(){const _0x179caf=_0x10e9,_0x1f47f7=_0xd3cd32[_0x179caf(0x168)](_0x179caf(0x13f)),_0x22c908=yield _0x1543e7(_0x5750a0,_0x1f47f7,_0x3d5a25),_0x5a3ca3=yield _0x1543e7(_0x5750a0,_0x1f47f7,_0x5ece79);return{'references':[..._0x22c908[_0x179caf(0xb6)],..._0x5a3ca3['references']]};});}const _0xc5bb7={'referenceTypeId':_0x5e1db0(_0x13f334(0x10c)),'includeSubtypes':!![],'browseDirection':_0x2e22e5[_0x13f334(0xf5)],'nodeClassMask':_0x5a533b[_0x13f334(0xd8)]|_0x5a533b[_0x13f334(0x140)]|_0x5a533b[_0x13f334(0xae)]|_0x5a533b[_0x13f334(0xa6)],'resultMask':0x3f};function _0x32272b(_0x1acb9a,_0x5be125){return _0x4008c4(this,void 0x0,void 0x0,function*(){const _0x42c047=_0x10e9,_0x2dc533=_0x1acb9a['data'](_0x42c047(0x13f)),_0x2103b6=yield _0x1543e7(_0x5be125,_0x2dc533,_0xc5bb7);return _0x2103b6;});}const _0x456aa0=_0x2962c8=>{const _0x1bb31a=_0x13f334;var _0x535bd5,_0xfe6f59,_0xcddf28,_0x159b1e;if(!_0x2962c8||!_0x2962c8[_0x1bb31a(0x13c)]){const _0x14c523=$(_0x1bb31a(0xf3));return _0x14c523;}const _0x17c557=_0x2962c8[_0x1bb31a(0x13c)][_0x1bb31a(0x15a)](),_0x205ae6=((_0x535bd5=_0x2962c8['displayName'])===null||_0x535bd5===void 0x0?void 0x0:_0x535bd5[_0x1bb31a(0x148)])||((_0xfe6f59=_0x2962c8[_0x1bb31a(0xee)])===null||_0xfe6f59===void 0x0?void 0x0:_0xfe6f59[_0x1bb31a(0xf8)])||_0x2962c8[_0x1bb31a(0x13c)][_0x1bb31a(0x15a)](),{icon:_0x315974,color:_0x9b3c20}=_0x27186d(_0x2962c8),_0xb2ade7='('+_0x2962c8['nodeId'][_0x1bb31a(0x15a)]()+')\x20'+(((_0xcddf28=_0x2962c8['browseName'])===null||_0xcddf28===void 0x0?void 0x0:_0xcddf28[_0x1bb31a(0xf8)])||((_0x159b1e=_0x2962c8['displayName'])===null||_0x159b1e===void 0x0?void 0x0:_0x159b1e[_0x1bb31a(0x148)])||''),_0x15671f=$(_0x1bb31a(0xfd)+_0x2962c8[_0x1bb31a(0x13c)][_0x1bb31a(0x15a)]()+_0x1bb31a(0x128)+_0xb2ade7+_0x1bb31a(0x152)+_0x315974+'\x22\x20style=\x22color:'+_0x9b3c20+_0x1bb31a(0x146)+_0x205ae6+_0x1bb31a(0x101));return _0x15671f[_0x1bb31a(0xf0)](_0x1bb31a(0xa4)),_0x15671f[_0x1bb31a(0x168)](_0x1bb31a(0x13f),_0x17c557),_0x15671f['data'](_0x1bb31a(0x155),_0x2962c8),_0x15671f;},_0x3369e3=(_0x4b6aae,_0x20bc1d)=>{const _0x3843ff=_0x13f334;return _0x20bc1d['find'](_0x3843ff(0x12f)+_0x4b6aae+'\x22]');},_0x2b5414=(_0x4d00a2,_0x51344f)=>{const _0x5ae81f=_0x13f334;_0x4d00a2[_0x5ae81f(0x16b)][_0x5ae81f(0x124)](_0x5ae81f(0x177))[_0x5ae81f(0xc8)](_0x5ae81f(0x11b)),_0x51344f['find'](_0x5ae81f(0x14e))[_0x5ae81f(0xf0)](_0x5ae81f(0x11b));},_0x5dbe7f=(_0x25f3ec,_0x2e8166,_0x5e1bda)=>_0x4008c4(void 0x0,void 0x0,void 0x0,function*(){const _0x5dbfbf=_0x13f334;let _0x35d21f=_0x5e1bda[_0x5dbfbf(0xdf)](_0x5dbfbf(0x153));_0x2e8166[_0x5dbfbf(0xca)][_0x5dbfbf(0x14d)]||[];const _0xb81a76=_0x2e8166['nodeIds']||[];if(_0xb81a76['length']===0x0)return;for(const _0x1c62a8 of _0xb81a76){_0x35d21f[_0x5dbfbf(0x16f)](_0x5dbfbf(0xa4))&&(yield _0x4f9c9f(_0x25f3ec,_0x35d21f));const _0x3dd5d3=_0x3369e3(_0x1c62a8,_0x35d21f);if(_0x3dd5d3[_0x5dbfbf(0xdc)]===0x0)return;_0x35d21f=_0x3dd5d3;}_0x2b5414(_0x25f3ec,_0x35d21f),_0x357a7f(_0x25f3ec['$dropdown'],_0x35d21f);});function _0x357a7f(_0xcbeff9,_0x14a20c){const _0x5510e4=_0x13f334,_0x5b4f91=_0x14a20c[_0x5510e4(0xef)]()[_0x5510e4(0xb7)],_0x427eee=_0xcbeff9[_0x5510e4(0xd6)]();if(_0x427eee==undefined)return;const _0x1a3e9a=_0x427eee+_0x5b4f91-_0xcbeff9[_0x5510e4(0x169)]()/0x2+_0x14a20c[_0x5510e4(0x169)]()/0x2;_0xcbeff9[_0x5510e4(0x133)]({'scrollTop':_0x1a3e9a},0x1f4);}const _0xa3586c=(_0x3a8a32,_0x2e5e05)=>_0x4008c4(void 0x0,void 0x0,void 0x0,function*(){const _0x13cd0d=_0x13f334,_0x191b22=_0x3a8a32['$input'][_0x13cd0d(0x115)](),_0x1cd2ec={'nodeId':_0x191b22,'rootNodeId':_0x2e5e05[_0x13cd0d(0x13c)],'isType':_0x3a8a32['options'][_0x13cd0d(0xd5)]||![]},_0x275a79=_0x1d77ce(_0x3a8a32),_0x1160d2=yield _0x2100c4(_0x275a79,_0x1cd2ec);if(!_0x1160d2)return;yield _0x5dbe7f(_0x3a8a32,_0x1160d2,_0x3a8a32[_0x13cd0d(0x16b)]);});function _0xadbbf(_0x2215d4,_0xa23b65,_0x1763f1,_0x48e6d2){return _0x4008c4(this,void 0x0,void 0x0,function*(){const _0x2c090d=_0x10e9;if(_0xa23b65[_0x2c090d(0x16f)](_0x2c090d(0xa0))){console[_0x2c090d(0xfb)]('already\x20fetched');return;}if(_0xa23b65['hasClass'](_0x2c090d(0x117))){console[_0x2c090d(0xfb)]('already\x20loading');return;}_0xa23b65[_0x2c090d(0xf0)]('loading'),_0xa23b65[_0x2c090d(0xe1)](_0x2c090d(0x123));try{_0xa23b65[_0x2c090d(0xdf)]('ul')[_0x2c090d(0x10a)]();const {references:_0x2cf44e}=yield _0x1763f1(_0xa23b65,_0x48e6d2);for(const _0x451ab5 of _0x2cf44e){if(_0x2215d4[_0x2c090d(0x176)][_0x2c090d(0xb2)]&&!_0x2215d4['options'][_0x2c090d(0xb2)](_0x451ab5))continue;const _0x412aaa=_0x456aa0(_0x451ab5);_0xa23b65[_0x2c090d(0xdf)]('ul')[_0x2c090d(0xe1)](_0x412aaa);}_0xa23b65[_0x2c090d(0xf0)](_0x2c090d(0xa0));}catch(_0x44de2a){_0xa23b65['children']('ul')[_0x2c090d(0xe1)](_0x2c090d(0x105)+_0x44de2a[_0x2c090d(0x141)]+_0x2c090d(0xda)),console[_0x2c090d(0xfb)](_0x2c090d(0x11d),_0x44de2a);}_0xa23b65[_0x2c090d(0x124)]('.spinner')[_0x2c090d(0x14c)](),_0xa23b65[_0x2c090d(0xc8)](_0x2c090d(0x117));});}function _0x1d77ce(_0x17c3e5){const _0x12c400=_0x13f334,_0x3ce92a={'baseUrl':_0x17c3e5[_0x12c400(0x176)][_0x12c400(0x126)],'endpointNode':typeof _0x17c3e5[_0x12c400(0x176)][_0x12c400(0xb3)]===_0x12c400(0x125)?_0x17c3e5[_0x12c400(0x176)][_0x12c400(0xb3)]():_0x17c3e5[_0x12c400(0x176)][_0x12c400(0xb3)],'endpoint':typeof _0x17c3e5[_0x12c400(0x176)]['endpoint']==='function'?_0x17c3e5[_0x12c400(0x176)][_0x12c400(0x136)]():_0x17c3e5['options']['endpoint']};return _0x3ce92a;}function _0x4f9c9f(_0x2b50a6,_0x18d866){return _0x4008c4(this,void 0x0,void 0x0,function*(){const _0x14a5a4=_0x10e9;if(_0x18d866[_0x14a5a4(0x16f)](_0x14a5a4(0xa0))){_0x18d866[_0x14a5a4(0xc8)]('expandable')['addClass'](_0x14a5a4(0xd9)),_0x18d866[_0x14a5a4(0xdf)]('ul')[_0x14a5a4(0x113)]();return;}const _0x3d4cf9=_0x1d77ce(_0x2b50a6),_0x4c1e5a=!_0x2b50a6[_0x14a5a4(0x176)][_0x14a5a4(0xd5)]?_0x5d0f46:_0x32272b;try{yield _0xadbbf(_0x2b50a6,_0x18d866,_0x4c1e5a,_0x3d4cf9),_0x18d866[_0x14a5a4(0xc8)](_0x14a5a4(0xa4))[_0x14a5a4(0xf0)](_0x14a5a4(0xd9));}catch(_0x560ff6){_0x18d866[_0x14a5a4(0xc8)](_0x14a5a4(0xa4))[_0x14a5a4(0xf0)](_0x14a5a4(0xd9)),console[_0x14a5a4(0xfb)](_0x14a5a4(0xaa),_0x560ff6);}});}const _0x267b75=()=>{const _0x303410=_0x13f334;$[_0x303410(0xfa)](_0x303410(0x130),{'options':{'endpointNode':()=>({'endpoint':'opc.tcp://opcuademo.sterfive.com:26543'}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x303410(0x175)},'nodeClass':'Object','nodeId':_0x303410(0xa2),'displayName':{'text':_0x303410(0x175)},'typeDefinition':_0x4644f3}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x4008c4(this,void 0x0,void 0x0,function*(){const _0x192c6d=_0x10e9,_0xeff67d=this;if(!_0xeff67d['__parentNode']){const _0x2e8e94=typeof _0xeff67d['options'][_0x192c6d(0x144)]===_0x192c6d(0x125)?_0xeff67d[_0x192c6d(0x176)][_0x192c6d(0x144)][_0x192c6d(0x9f)](_0xeff67d):_0xeff67d[_0x192c6d(0x176)][_0x192c6d(0x144)];if(_0x2e8e94 instanceof Promise){const _0x34073e=yield _0x2e8e94;_0xeff67d[_0x192c6d(0x119)]=_0x34073e;}else _0xeff67d[_0x192c6d(0x119)]=_0x2e8e94;}return _0xeff67d[_0x192c6d(0x119)];});},'reset'(){return _0x4008c4(this,void 0x0,void 0x0,function*(){const _0x593fb1=_0x10e9,_0x1e74c5=this,_0x36899c=_0x1e74c5;_0x36899c[_0x593fb1(0x119)]=undefined,_0x1e74c5[_0x593fb1(0x16b)][_0x593fb1(0x10a)]();const _0x1b31a3=yield this[_0x593fb1(0xf6)](),_0x1db216=_0x456aa0(_0x1b31a3);_0x1e74c5[_0x593fb1(0x16b)][_0x593fb1(0xe1)](_0x1db216),_0x1e74c5[_0x593fb1(0xb5)]=_0x1b31a3;});},'verify'(){const _0x1b66fb=_0x303410,_0x70441c=this,_0x30f08d=_0x1d77ce(_0x70441c);_0x1fb701(_0x30f08d,_0x70441c[_0x1b66fb(0x106)],_0x70441c[_0x1b66fb(0xc7)]);},'_create'(){const _0x2b0a48=_0x303410,_0x5bad12=this;_0x5bad12[_0x2b0a48(0x106)]=this[_0x2b0a48(0xaf)],_0x5bad12['$combo']=$(_0x2b0a48(0xe7)),_0x5bad12['$combo']['addClass'](_0x2b0a48(0xc9)),this[_0x2b0a48(0xaf)]['replaceWith'](_0x5bad12[_0x2b0a48(0xd3)]),_0x5bad12['$inputGroup']=$(_0x2b0a48(0xe7))[_0x2b0a48(0xf0)](_0x2b0a48(0xa9)),_0x5bad12[_0x2b0a48(0xd3)]['append'](_0x5bad12[_0x2b0a48(0x14b)]),_0x5bad12[_0x2b0a48(0x14b)][_0x2b0a48(0xe1)](_0x5bad12[_0x2b0a48(0x106)]),_0x5bad12[_0x2b0a48(0x12d)]=$(_0x2b0a48(0xde)),_0x5bad12[_0x2b0a48(0x14b)][_0x2b0a48(0xe1)](_0x5bad12[_0x2b0a48(0x12d)]),_0x5bad12['$toggleTreeBtn']['on'](_0x2b0a48(0xb1),function(){var _0x49da4c;return _0x4008c4(this,void 0x0,void 0x0,function*(){const _0x297129=_0x10e9;let _0x3bc0c7=![],_0x78220a;!_0x5bad12[_0x297129(0x14f)]['is'](_0x297129(0x116))&&(_0x5bad12[_0x297129(0xc7)]['hide'](),_0x78220a=yield _0x5bad12[_0x297129(0xf6)](),(_0x78220a!==_0x5bad12[_0x297129(0xb5)]||((_0x49da4c=_0x5bad12[_0x297129(0xb5)])===null||_0x49da4c===void 0x0?void 0x0:_0x49da4c[_0x297129(0x13c)])!==_0x78220a['nodeId'])&&(yield _0x5bad12['reset']()),_0x3bc0c7=!![]),_0x5bad12[_0x297129(0x14f)][_0x297129(0x113)](),_0x3bc0c7&&(yield _0xa3586c(_0x5bad12,_0x78220a));});}),_0x5bad12[_0x2b0a48(0xf9)]=$(_0x2b0a48(0x157)),_0x5bad12['$inputGroup']['append'](_0x5bad12[_0x2b0a48(0xf9)]),_0x5bad12[_0x2b0a48(0xf9)]['on'](_0x2b0a48(0xb1),()=>{const _0x91f12e=_0x2b0a48;this[_0x91f12e(0x11f)]();});!_0x5bad12['$input'][_0x2b0a48(0x132)](_0x2b0a48(0x122))&&_0x5bad12['$input'][_0x2b0a48(0x132)](_0x2b0a48(0x122),_0x2b0a48(0x174));_0x5bad12[_0x2b0a48(0xc7)]=$(_0x2b0a48(0x13d)),_0x5bad12[_0x2b0a48(0xc7)]['hide'](),_0x5bad12['$dropdown']=$(_0x2b0a48(0xe7))['addClass']('sterfive-dropdown')[_0x2b0a48(0x129)](),_0x5bad12['$combo']['append'](_0x5bad12[_0x2b0a48(0xc7)]),_0x5bad12[_0x2b0a48(0xd3)][_0x2b0a48(0xe1)](_0x5bad12[_0x2b0a48(0x14f)]),_0x5bad12[_0x2b0a48(0x16b)]=$('<ul\x20class=\x22sterfive-tree\x22></ul>')[_0x2b0a48(0xd0)](_0x5bad12[_0x2b0a48(0x14f)]),this['reset']();const _0x5089db=(_0x19a719,_0xcc72f3)=>{const _0x4490b9=_0x2b0a48,_0xedee9=0x14,_0x49d22d=0x14,_0x1fb64e=_0x19a719[_0x4490b9(0x147)](),_0x4c99d8=_0xcc72f3;if(_0x4c99d8[_0x4490b9(0xb9)]>=_0x1fb64e['left']&&_0x4c99d8['pageX']<=_0x1fb64e[_0x4490b9(0xbd)]+_0xedee9&&_0x4c99d8[_0x4490b9(0x143)]>=_0x1fb64e[_0x4490b9(0xb7)]&&_0x4c99d8[_0x4490b9(0x143)]<=_0x1fb64e[_0x4490b9(0xb7)]+_0x49d22d)return!![];return![];},_0x19387f=_0x2facd0=>_0x4008c4(this,void 0x0,void 0x0,function*(){const _0x18e525=_0x2b0a48;if(_0x2facd0[_0x18e525(0x16f)](_0x18e525(0xa4)))_0x4f9c9f(_0x5bad12,_0x2facd0);else{if(_0x2facd0[_0x18e525(0x16f)](_0x18e525(0xd9)))_0x2facd0[_0x18e525(0xdf)]('ul')[_0x18e525(0x113)](),_0x2facd0['toggleClass'](_0x18e525(0x108));else{if(_0x2facd0[_0x18e525(0xdf)]('ul')[_0x18e525(0xdf)]()[_0x18e525(0xdc)]>0x0)_0x2facd0['children']('ul')[_0x18e525(0x113)](),_0x2facd0['toggleClass'](_0x18e525(0x108));else;}}});_0x5bad12['$tree']['on'](_0x2b0a48(0x167),'li',function(_0xafebd7){const _0x55053e=_0x2b0a48;var _0x25addc,_0x56b3d5;_0xafebd7['stopPropagation']();let _0x4ce80e=$(this);if(_0x5089db(_0x4ce80e,_0xafebd7))_0x19387f(_0x4ce80e);else{const _0x5e5d16=_0x4ce80e['data'](_0x55053e(0x13f)),_0x151bd9=_0x4ce80e[_0x55053e(0x168)](_0x55053e(0x155));if(_0x5bad12[_0x55053e(0x176)][_0x55053e(0x102)]&&!_0x5bad12[_0x55053e(0x176)][_0x55053e(0x102)](_0x151bd9))return;_0x5bad12[_0x55053e(0x106)]['data'](_0x55053e(0x155),_0x151bd9);const _0x3c5f59=((_0x25addc=_0x151bd9[_0x55053e(0xa5)])===null||_0x25addc===void 0x0?void 0x0:_0x25addc['text'])||((_0x56b3d5=_0x151bd9[_0x55053e(0xee)])===null||_0x56b3d5===void 0x0?void 0x0:_0x56b3d5[_0x55053e(0xf8)])||_0x151bd9[_0x55053e(0x13c)][_0x55053e(0x15a)](),_0x480fa0='['+_0x3c5f59+']('+_0x5e5d16+')';_0x5bad12[_0x55053e(0x106)]['val'](_0x480fa0),_0x5bad12[_0x55053e(0x106)][_0x55053e(0xa8)](_0x55053e(0xa7)),_0x5bad12['$dropdown'][_0x55053e(0x129)]();}}),_0x5bad12[_0x2b0a48(0x16b)]['on'](_0x2b0a48(0xb1),'li',function(_0x3c4e2b){_0x3c4e2b['stopPropagation']();let _0x223688=$(this);_0x5089db(_0x223688,_0x3c4e2b)&&_0x19387f(_0x223688),_0x2b5414(_0x5bad12,_0x223688);}),$(document)['on']('click',function(_0x12a983){const _0x3d65fe=_0x2b0a48;!$(_0x12a983[_0x3d65fe(0xbb)])[_0x3d65fe(0xd7)](_0x5bad12[_0x3d65fe(0xd3)])['length']&&_0x5bad12[_0x3d65fe(0x14f)][_0x3d65fe(0x129)]();});}});},_0x5c4554=({endpointNode:_0x556a99,endpoint:_0x53e489,baseUrl:_0x168827},_0x2c1e3f)=>_0x4008c4(void 0x0,void 0x0,void 0x0,function*(){const _0x113836=_0x13f334,_0x237dc6=_0x168827+_0x113836(0x159),_0x4790cb=_0x237dc6+'/checkNodeId',_0x4326ed=yield fetch(_0x4790cb,{'method':_0x113836(0x17b),'body':JSON[_0x113836(0x10b)]({'endpointNode':_0x556a99,'endpoint':_0x53e489,'nodeId':_0x2c1e3f}),'headers':{'Content-Type':_0x113836(0xfc)}});if(_0x4326ed[_0x113836(0x158)]!==0xc8){console[_0x113836(0xfb)](_0x113836(0x173),_0x4326ed[_0x113836(0x158)],_0x4326ed[_0x113836(0x166)]);const _0x49a447={'statusCode':_0x113836(0xad),'nodeAddressString':_0x2c1e3f};return _0x49a447;}console[_0x113836(0xfb)](_0x113836(0x16a),_0x4326ed[_0x113836(0x158)],_0x4326ed[_0x113836(0x166)]);const _0x2b1c6a=yield _0x4326ed[_0x113836(0xbe)]();return _0x2b1c6a;});function _0x38c141(_0x5b0514,_0x1c56cc,_0x49c1bc,_0x15ef92){const _0x4c671f=_0x13f334,_0xb52553=$('#'+_0x5b0514+_0x4c671f(0xe8)),_0x34c699=$('#'+_0x5b0514+_0x4c671f(0x137)),_0x1dc227=$('#'+_0x5b0514+_0x4c671f(0x11c)),_0x3b28c0=$('#'+_0x5b0514+_0x4c671f(0xec));let _0x4e2805=![];_0xb52553[_0x4c671f(0x129)](),_0x34c699[_0x4c671f(0x129)](),_0x1dc227[_0x4c671f(0x129)](),_0x1c56cc['on']('click',()=>{const _0x465d42=_0x4c671f;if(_0x4e2805)return;_0x4e2805=!![],_0x1dc227[_0x465d42(0xc8)](_0x465d42(0x129)),_0x1dc227[_0x465d42(0x16d)](_0x465d42(0x134)),_0xb52553[_0x465d42(0xf0)](_0x465d42(0x129)),_0x34c699[_0x465d42(0xf0)](_0x465d42(0x129)),_0x3b28c0[_0x465d42(0x16d)]('');const {body:_0x290199,url:_0x42b161}=_0x49c1bc();fetch(_0x42b161,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](_0x290199)})[_0x465d42(0x171)](_0x1d17aa=>_0x1d17aa['json']())['then'](_0x4882a6=>{const _0x2a40fd=_0x465d42;_0x4e2805=![],_0x1dc227[_0x2a40fd(0x129)](),console[_0x2a40fd(0xfb)](JSON[_0x2a40fd(0x10b)](_0x4882a6,null,'\x20'));if(_0x4882a6[_0x2a40fd(0xea)]==='ok')_0xb52553['removeClass'](_0x2a40fd(0x129)),_0x34c699[_0x2a40fd(0xf0)](_0x2a40fd(0x129)),_0x3b28c0[_0x2a40fd(0x16d)](_0x4882a6[_0x2a40fd(0x141)][_0x2a40fd(0x109)]('\x0a','<br>')),_0x15ef92(null,_0x4882a6);else{const _0x133606=_0x4020d9=>!_0x4020d9?'':_0x4020d9[_0x2a40fd(0x12c)]('\x0a')['map'](_0x482bd5=>'<p>'+_0x482bd5+'</p>')[_0x2a40fd(0xdb)]('\x0a'),_0xd9ef17=_0x5d3e7f=>Array[_0x2a40fd(0xbc)](_0x5d3e7f)?_0x5d3e7f[_0x2a40fd(0x151)](_0x133606)[_0x2a40fd(0xdb)]('\x0a'):_0x133606(_0x5d3e7f);_0xb52553[_0x2a40fd(0xf0)]('hide'),_0x34c699['removeClass'](_0x2a40fd(0x129)),_0x3b28c0[_0x2a40fd(0x16d)](_0xd9ef17(_0x4882a6['message'])+_0xd9ef17(_0x4882a6['extra'])),_0x15ef92(new Error(_0x4882a6[_0x2a40fd(0xea)]),_0x4882a6);}})['catch'](_0x488a9a=>{const _0x16c4ee=_0x465d42;_0x4e2805=![],_0x1dc227[_0x16c4ee(0xf0)](_0x16c4ee(0x129)),_0xb52553[_0x16c4ee(0xf0)]('hide'),_0x34c699[_0x16c4ee(0xc8)]('hide'),_0x3b28c0[_0x16c4ee(0x16d)]('internal\x20error\x20'+_0x488a9a[_0x16c4ee(0x141)]),console[_0x16c4ee(0xfb)](_0x16c4ee(0x11d),_0x488a9a),_0x15ef92(_0x488a9a,null);});});}const _0x4f6f02=()=>{const _0x44cd45=_0x13f334,_0x3a9797=$(_0x44cd45(0xac)),_0x4fa4be=_0x3a9797[_0x44cd45(0x115)](),_0x5e9f42=RED['nodes']['node'](_0x4fa4be);if(!_0x5e9f42)return undefined;const {endpoint:_0xc3c38a,securityMode:_0x3e19db,securityPolicy:_0x39cb4a,userIdentityType:_0x4137b6,credentials:_0x5f4bcf}=_0x5e9f42,_0x4ae44c={'endpoint':_0xc3c38a,'securityMode':_0x3e19db,'securityPolicy':_0x39cb4a,'userIdentityType':_0x4137b6,'credentials':_0x5f4bcf};return _0x4ae44c;},_0x1ed565=()=>{return{'endpointNode':_0x30889a};},_0x30889a=()=>{const _0x3fbc46=_0x13f334,_0x4607d5=$(_0x3fbc46(0xac)),_0x442098=_0x4607d5['val'](),_0x229c2c=_0x4f6f02();if(!_0x229c2c)return undefined;return{'id':_0x442098};};RED[_0x13f334(0xe6)][_0x13f334(0x149)]('OpcUa-Client2-Call',{'category':_0x13f334(0x13a),'color':'#C0DEED','align':_0x13f334(0x162),'icon':'../../icons/opcuanodeLogo.png','paletteLabel':'call','defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':'OpcUa-Endpoint2'},'action':{'value':'read','required':!![]},'methodId':{'value':'','required':!![]},'objectId':{'value':'','required':!![]}},'outputs':0x2,'label'(){const _0x48766b=_0x13f334;return this[_0x48766b(0xf8)]||_0x48766b(0xa3);},'labelStyle'(){const _0x12e977=_0x13f334;return this[_0x12e977(0xf8)]?'node_label_italic':'';},'oneditprepare'(){const _0x136559=_0x13f334,_0x54d605=this;_0x267b75(),_0x54d605[_0x136559(0x15d)]=0x1;let _0x19cb44={};const _0x3e1aa9=$('#node-input-objectId'),_0x1ecae3=$('#node-input-methodId'),_0x32e833=$('#method-input-argument-definition'),_0x1e7ddc=$(_0x136559(0x138)),_0x1f1bc6=$(_0x136559(0xdd));_0x3e1aa9[_0x136559(0x14a)](Object[_0x136559(0xd2)](Object[_0x136559(0xd2)]({},_0x1ed565()),{'filter'(_0x35307b){const _0x3a13f2=_0x136559;return _0x35307b['nodeClass']===_0x3a13f2(0x131);}})),_0x1ecae3[_0x136559(0x14a)](Object[_0x136559(0xd2)](Object['assign']({},_0x1ed565()),{'parentNode':function(){return _0x4008c4(this,void 0x0,void 0x0,function*(){const _0x322b53=_0x10e9,_0x5db30c=_0x1d77ce(this);let _0x3d0b37=_0x3e1aa9[_0x322b53(0x168)](_0x322b53(0x155));if(!_0x3d0b37){const _0x456bde=_0x3e1aa9[_0x322b53(0x115)](),_0x7d6a63=_0x4f6f02();if(!_0x7d6a63)return null;try{const _0x82c66=yield _0x5c4554(_0x5db30c,_0x456bde);_0x3d0b37=_0x82c66['reference'];}catch(_0x22f3ef){console['log'](_0x22f3ef);}}return _0x3d0b37;});},'filter'(_0x2400a9){const _0x593a6d=_0x136559;return _0x2400a9[_0x593a6d(0x15f)]===_0x593a6d(0xcc)||_0x2400a9[_0x593a6d(0x15f)]===_0x593a6d(0x131);},'isSelectable'(_0x472739){const _0x3d1f12=_0x136559;return _0x472739[_0x3d1f12(0x15f)]==='Method';}})),_0x3e1aa9['on'](_0x136559(0xa7),()=>{const _0x3a9544=_0x136559;_0x1ecae3[_0x3a9544(0x14a)](_0x3a9544(0xcf));});function _0x5284c9(_0x3c1679,_0x268c90,_0xadf51b){const _0x5493b3=_0x136559,_0x20c9e5=$(_0x5493b3(0xe9))[_0x5493b3(0xd0)](_0x3c1679);$('<input\x20type=\x22text\x22>')[_0x5493b3(0x115)](_0xadf51b[_0x5493b3(0xf8)]||'')[_0x5493b3(0x107)]({'width':_0x5493b3(0xf4)})[_0x5493b3(0xd0)](_0x20c9e5);const _0x23be72=_0x19cb44[_0xadf51b[_0x5493b3(0xc1)][_0x5493b3(0x15a)]()],_0x1aae9c=(_0x23be72?_0x23be72['browseName']['name']||'':_0xadf51b['dataType'][_0x5493b3(0x15a)]())+(_0xadf51b[_0x5493b3(0x114)]===0x1?'[]':'');$(_0x5493b3(0xf7))[_0x5493b3(0x115)](_0xadf51b[_0x5493b3(0xba)][_0x5493b3(0x148)]||'')[_0x5493b3(0x107)]({'width':_0x5493b3(0x164)})[_0x5493b3(0xd0)](_0x20c9e5),$(_0x5493b3(0xf7))['val'](_0x1aae9c||'')[_0x5493b3(0x107)]({'width':_0x5493b3(0x164)})['appendTo'](_0x20c9e5);}_0x32e833[_0x136559(0xf1)]({'addButton':![],'height':_0x136559(0xcb),'scrollOnAdd':![],'addItem'(_0x5d8107,_0x4201d6,_0x32349d){_0x5284c9(_0x5d8107,_0x4201d6,_0x32349d);}}),_0x1e7ddc[_0x136559(0xf1)]({'addButton':![],'height':_0x136559(0xcb),'scrollOnAdd':![],'addItem'(_0xe487b4,_0x8808b9,_0x406079){_0x5284c9(_0xe487b4,_0x8808b9,_0x406079);}});function _0x5514c5(_0x322ee0,_0x539944){const _0x1c1204=_0x136559;console[_0x1c1204(0xfb)](_0x1c1204(0xc6),_0x539944[_0x1c1204(0xdc)],_0x1c1204(0xb4),_0x539944),_0x322ee0[_0x1c1204(0xf1)](_0x1c1204(0x10a));for(let _0x45c1fb=0x0;_0x45c1fb<_0x539944[_0x1c1204(0xdc)];_0x45c1fb++){_0x322ee0[_0x1c1204(0xf1)](_0x1c1204(0x121),_0x539944[_0x45c1fb]);}}_0x32e833[_0x136559(0x129)](),_0x1e7ddc[_0x136559(0x129)]();let _0x6832={};const _0xfa4401=$(_0x136559(0xe0));_0xfa4401[_0x136559(0x129)](),_0xfa4401['on']('click',()=>{const _0x2d78cd=_0x136559;navigator[_0x2d78cd(0x170)]['writeText'](JSON[_0x2d78cd(0x10b)](_0x6832));}),_0x38c141('validate',_0x1f1bc6,()=>({'url':_0x136559(0x135),'body':{'endpointNode':_0x30889a(),'objectId':_0x3e1aa9[_0x136559(0x115)](),'methodId':_0x1ecae3[_0x136559(0x115)]()}}),(_0x2c553d,_0x59141c)=>{const _0x5c4ed2=_0x136559;if(_0x2c553d)return;const _0xc6c3c8=_0x59141c[_0x5c4ed2(0xc3)];_0x19cb44=_0x59141c[_0x5c4ed2(0x12b)],_0x32e833[_0x5c4ed2(0x17c)](),_0x1e7ddc[_0x5c4ed2(0x17c)](),_0x5514c5(_0x32e833,_0xc6c3c8['inputArguments']),_0x5514c5(_0x1e7ddc,_0xc6c3c8[_0x5c4ed2(0x172)]),_0x6832=_0x59141c[_0x5c4ed2(0x100)]||{},_0xfa4401[_0x5c4ed2(0x17c)](),navigator[_0x5c4ed2(0x170)][_0x5c4ed2(0x11e)](JSON[_0x5c4ed2(0x10b)](_0x6832)),console[_0x5c4ed2(0xfb)](_0x5c4ed2(0xe5),JSON[_0x5c4ed2(0x10b)](_0x6832)),console[_0x5c4ed2(0xfb)](_0x5c4ed2(0x168),_0x59141c);});},'oneditsave'(){}});}()));function _0x10e9(_0x3f5421,_0x1f3205){const _0x3e20ed=_0x3e20();return _0x10e9=function(_0x10e997,_0x2fc216){_0x10e997=_0x10e997-0x9f;let _0x2f4f98=_0x3e20ed[_0x10e997];return _0x2f4f98;},_0x10e9(_0x3f5421,_0x1f3205);}function _0x3e20(){const _0x6873f1=['typeDefinition','inputArgumentsExampleAsJson','</span><ul></ul></li>','isSelectable','match','HasProperty','<li>error\x20','$input','css','expandable\x20expanded','replace','empty','stringify','HasSubtype','Both','fa-sliders','sterfive-info','HasChild','Organizes','6302348JQWasy','toggle','valueRank','val',':visible','loading','suppressed','__parentNode','/browse','selected','-pending','err','writeText','verify','nodeAddressString','addItem','placeholder','<div\x20class=\x22spinner\x22></div>','find','function','baseUrl','Invalid','\x22}><span\x20class=\x22tree-text\x22\x20title=','hide','9023652MGBtfV','dataTypes','split','$toggleTreeBtn','statusCode','li[key=\x22','sterfive.nodeBrowser','Object','attr','animate','Testing\x20Connection\x20...','/opcua-endpoint2/argumentDefinition','endpoint','-failure','#method-output-argument-definition','next','opcua','8323956grPiHG','nodeId','<div\x20class=\x22info-text\x22></div>','HasTypeDefinition','value','ObjectType','message','2qCfKir','pageY','parentNode','1318540SEuJlM',';\x22></i>\x20','offset','text','registerType','nodeBrowser','$inputGroup','remove','elements','.tree-text:first','$dropdown','Variable','map','><i\x20class=\x22fa\x20',':first','19256TAPDli','reference','rgba(61,\x2060,\x204,\x200.525)','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','status','/opcua-endpoint2','toString','View','done','inputs','3lxDKgU','nodeClass','NodeClass','fa-list-alt','right','DisplayName','50%','ns=0;i=61','statusText','dblclick','data','height','fetched\x20:\x20','$tree','DodgerBlue','html','3262860wdtpXN','hasClass','clipboard','then','outputArguments','fetching\x20failed\x20with\x20error','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','Objects','options','li\x20>\x20.tree-text','fa-cog','failure','fa-object-group','POST','show','SuppressedError','call','fetched','ns=0;i=40','ns=0;i=85','OPCUA-Call','expandable','displayName','VariableType','change','trigger','input-group','error','grey','#node-input-endpoint','Bad','DataType','element','TypeDefinition','click','filter','endpointNode','arguments','currentParent','references','top','ns=0;i=35','pageX','description','target','isArray','left','json','!!failure!!','referenceTypeId','dataType','10468050bTDmMK','argumentDefinition','fa-text-width','ns=0;i=47','installArgumentList','$info','removeClass','sterfive-combo-box','relativePath','auto','Method','i=61','4837UKRhEG','reset','appendTo','DarkOrange','assign','$combo','SandyBrown','isTypeRef','scrollTop','closest','ReferenceType','expanded','</li>','join','length','#validate-call-arguments-button','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','children','#copy-input','append','SeaGreen','Good','BrowseName','JSON','nodes','<div/>','-success','<div\x20class=\x22argument-entry\x22>','result','/walk-backward','-messages','Inverse','browseName','position','addClass','editableList','IsForward','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','100%','Forward','resolveParentNode','<input\x20type=\x22text\x22>','name','$verifyBtn','widget','log','application/json','<li\x20key=\x22','ns=0;i=46'];_0x3e20=function(){return _0x6873f1;};return _0x3e20();}
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg0MDA4YzQiLCJfMHgzMWI4YzQiLCJfMHgzZTA3NzMiLCJfMHg0ZDBlYWEiLCJfMHgxOGVkNDAiLCJfMHhhM2I3YzciLCJfMHgzYzM3YTEiLCJfMHg1MzkzMjEiLCJQcm9taXNlIiwiXzB4MmI4NWZiIiwiXzB4MmM1NWIyIiwiXzB4NTQ3MTJkIiwiXzB4MjU2MGFhIiwiXzB4NTc5MWE2IiwiXzB4YTBjMTJlIiwiXzB4MWIzZTU0IiwiXzB4MjIyNjcwIiwiXzB4MjQ5MWRmIiwiXzB4MzA5MTk0IiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4MzVkMDE2IiwiXzB4MjQwOGJlIiwiXzB4NTUxMzVmIiwiXzB4MzA2ZmQ0IiwiRXJyb3IiLCJfMHgzMTBhOGIiLCJfMHg0NjQ0ZjMiLCJfMHgzYzY0ZDkiLCJfMHgzNjkwNjAiLCJfMHg0YjdkMWQiLCJfMHg0ZmViNmEiLCJfMHhiMjM1YTEiLCJfMHgyZTIyZTUiLCJfMHgzMjI1YzYiLCJfMHg1YTUzM2IiLCJfMHgzOGY2OTYiLCJfMHgxY2ZlNTEiLCJfMHg1NjYwOWIiLCJfMHgyZDU5NDYiLCJfMHg1OTQzMjUiLCJfMHg1ZTFkYjAiLCJfMHg0ZTI3NTQiLCJfMHgyNzE4NmQiLCJfMHgzYWQ0ZTYiLCJfMHgxNTQzZTciLCJlbmRwb2ludE5vZGUiLCJfMHgzMjM2MGQiLCJlbmRwb2ludCIsIl8weDIzNWU1MiIsImJhc2VVcmwiLCJfMHgxYzA4MjEiLCJfMHg2ZWFjMjQiLCJfMHg1ZjBiMzIiLCJfMHgxNjQ2ZDkiLCJfMHgyMzE2NmYiLCJfMHhmMDdlYTciLCJPYmplY3QiLCJfMHg1NjZjMmUiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4NWQ2NTY4IiwiXzB4MjViOTIzIiwiXzB4M2Q1YTI1IiwiXzB4NWVjZTc5IiwiXzB4MjEwMGM0IiwiXzB4MWNjOTEwIiwiXzB4MmExODRkIiwiXzB4M2I3YjRlIiwibm9kZUlkIiwiXzB4MmEwNzBkIiwicm9vdE5vZGVJZCIsIl8weDFlYTU3OCIsImlzVHlwZSIsIl8weDY4ODUzNyIsIl8weDI5ZTQ2NiIsIl8weDI4ODE1NiIsIl8weDdjOGU3NiIsIl8weDIzZjM1YiIsIl8weDFmYjcwMSIsIl8weDljZGY4YiIsIl8weDIzYTI2MSIsIl8weDU3ZTlhMiIsIl8weDNjY2IxOCIsIl8weDVlNWMwNCIsIl8weDE3N2I1MSIsIl8weDZiZDczZiIsIl8weDFiZWEzNSIsIl8weDk5NmFmMiIsIl8weDUxYTliMiIsIl8weDJiYTQzZSIsIl8weDVmNTE5MSIsInNldFRpbWVvdXQiLCJfMHgxNTU1OTMiLCJfMHg1ZDBmNDYiLCJfMHhkM2NkMzIiLCJfMHg1NzUwYTAiLCJfMHgxZjQ3ZjciLCJfMHgyMmM5MDgiLCJfMHg1YTNjYTMiLCJfMHhjNWJiNyIsIl8weDMyMjcyYiIsIl8weDFhY2I5YSIsIl8weDViZTEyNSIsIl8weDJkYzUzMyIsIl8weDIxMDNiNiIsIl8weDQ1NmFhMCIsIl8weDI5NjJjOCIsIl8weDUzNWJkNSIsIl8weGZlNmY1OSIsIl8weGNkZGYyOCIsIl8weDE1OWIxZSIsIl8weDE0YzUyMyIsIiQiLCJfMHgxN2M1NTciLCJfMHgyMDVhZTYiLCJpY29uIiwiXzB4MzE1OTc0IiwiY29sb3IiLCJfMHg5YjNjMjAiLCJfMHhiMmFkZTciLCJfMHgxNTY3MWYiLCJfMHgzMzY5ZTMiLCJfMHg0YjZhYWUiLCJfMHgyMGJjMWQiLCJfMHgyYjU0MTQiLCJfMHg0ZDAwYTIiLCJfMHg1MTM0NGYiLCJfMHg1ZGJlN2YiLCJfMHgyNWYzZWMiLCJfMHgyZTgxNjYiLCJfMHg1ZTFiZGEiLCJfMHgzNWQyMWYiLCJfMHhiODFhNzYiLCJfMHgxYzYyYTgiLCJfMHg0ZjljOWYiLCJfMHgzZGQ1ZDMiLCJfMHgzNTdhN2YiLCJfMHhjYmVmZjkiLCJfMHgxNGEyMGMiLCJfMHg1YjRmOTEiLCJfMHg0MjdlZWUiLCJ1bmRlZmluZWQiLCJfMHgxYTNlOWEiLCJfMHhhMzU4NmMiLCJfMHgzYThhMzIiLCJfMHgyZTVlMDUiLCJfMHgxOTFiMjIiLCJfMHgxY2QyZWMiLCJfMHgyNzVhNzkiLCJfMHgxZDc3Y2UiLCJfMHgxMTYwZDIiLCJfMHhhZGJiZiIsIl8weDIyMTVkNCIsIl8weGEyM2I2NSIsIl8weDE3NjNmMSIsIl8weDQ4ZTZkMiIsInJlZmVyZW5jZXMiLCJfMHgyY2Y0NGUiLCJfMHg0NTFhYjUiLCJfMHg0MTJhYWEiLCJfMHg0NGRlMmEiLCJfMHgxN2MzZTUiLCJfMHgzY2U5MmEiLCJfMHgyYjUwYTYiLCJfMHgxOGQ4NjYiLCJfMHgzZDRjZjkiLCJfMHg0YzFlNWEiLCJfMHg1NjBmZjYiLCJfMHgyNjdiNzUiLCJfMHhlZmY2N2QiLCJfMHgyZThlOTQiLCJfMHgzNDA3M2UiLCJfMHgxZTc0YzUiLCJfMHgzNjg5OWMiLCJfMHgxYjMxYTMiLCJfMHgxZGIyMTYiLCJfMHg3MDQ0MWMiLCJfMHgzMGYwOGQiLCJfMHg1YmFkMTIiLCJfMHg0OWRhNGMiLCJfMHgzYmMwYzciLCJfMHg3ODIyMGEiLCJfMHg1MDg5ZGIiLCJfMHgxOWE3MTkiLCJfMHhjYzcyZjMiLCJfMHhlZGVlOSIsIl8weDQ5ZDIyZCIsIl8weDFmYjY0ZSIsIl8weDRjOTlkOCIsIl8weDE5Mzg3ZiIsIl8weDJmYWNkMCIsIl8weGFmZWJkNyIsIl8weDI1YWRkYyIsIl8weDU2YjNkNSIsIl8weDRjZTgwZSIsIl8weDVlNWQxNiIsIl8weDE1MWJkOSIsIl8weDNjNWY1OSIsIl8weDQ4MGZhMCIsIl8weDNjNGUyYiIsIl8weDIyMzY4OCIsImRvY3VtZW50IiwiXzB4MTJhOTgzIiwiXzB4NWM0NTU0IiwiXzB4NTU2YTk5IiwiXzB4NTNlNDg5IiwiXzB4MTY4ODI3IiwiXzB4MmMxZTNmIiwiXzB4MjM3ZGM2IiwiXzB4NDc5MGNiIiwiXzB4NDMyNmVkIiwiXzB4NDlhNDQ3IiwiXzB4MmIxYzZhIiwiXzB4MzhjMTQxIiwiXzB4NWIwNTE0IiwiXzB4MWM1NmNjIiwiXzB4NDljMWJjIiwiXzB4MTVlZjkyIiwiXzB4YjUyNTUzIiwiXzB4MzRjNjk5IiwiXzB4MWRjMjI3IiwiXzB4M2IyOGMwIiwiXzB4NGUyODA1IiwiYm9keSIsIl8weDI5MDE5OSIsInVybCIsIl8weDQyYjE2MSIsIl8weDFkMTdhYSIsIl8weDQ4ODJhNiIsIl8weDEzMzYwNiIsIl8weDQwMjBkOSIsIl8weDQ4MmJkNSIsIl8weGQ5ZWYxNyIsIl8weDVkM2U3ZiIsIkFycmF5IiwiXzB4NDg4YTlhIiwiXzB4NGY2ZjAyIiwiXzB4M2E5Nzk3IiwiXzB4NGZhNGJlIiwiXzB4NWU5ZjQyIiwiUkVEIiwiXzB4YzNjMzhhIiwic2VjdXJpdHlNb2RlIiwiXzB4M2UxOWRiIiwic2VjdXJpdHlQb2xpY3kiLCJfMHgzOWNiNGEiLCJ1c2VySWRlbnRpdHlUeXBlIiwiXzB4NDEzN2I2IiwiY3JlZGVudGlhbHMiLCJfMHg1ZjRiY2YiLCJfMHg0YWU0NGMiLCJfMHgxZWQ1NjUiLCJfMHgzMDg4OWEiLCJfMHg0NjA3ZDUiLCJfMHg0NDIwOTgiLCJfMHgyMjljMmMiLCJfMHg1NGQ2MDUiLCJfMHgxOWNiNDQiLCJfMHgzZTFhYTkiLCJfMHgxZWNhZTMiLCJfMHgzMmU4MzMiLCJfMHgxZTdkZGMiLCJfMHgxZjFiYzYiLCJfMHgzNTMwN2IiLCJfMHg1ZGIzMGMiLCJfMHgzZDBiMzciLCJfMHg0NTZiZGUiLCJfMHg3ZDZhNjMiLCJfMHg4MmM2NiIsIl8weDIyZjNlZiIsIl8weDI0MDBhOSIsIl8weDQ3MjczOSIsIl8weDUyODRjOSIsIl8weDNjMTY3OSIsIl8weDI2OGM5MCIsIl8weGFkZjUxYiIsIl8weDIwYzllNSIsIl8weDIzYmU3MiIsIl8weDFhYWU5YyIsIl8weDVkODEwNyIsIl8weDQyMDFkNiIsIl8weDMyMzQ5ZCIsIl8weGU0ODdiNCIsIl8weDg4MDhiOSIsIl8weDQwNjA3OSIsIl8weDU1MTRjNSIsIl8weDMyMmVlMCIsIl8weDUzOTk0NCIsIl8weDQ1YzFmYiIsIl8weDY4MzIiLCJfMHhmYTQ0MDEiLCJuYXZpZ2F0b3IiLCJfMHgyYzU1M2QiLCJfMHg1OTE0MWMiLCJfMHhjNmMzYzgiXSwibWFwcGluZ3MiOiJ1a0JBQUEsQ0FBQyxVLENBQ0csYSx3QkFtQkEsU0FBU0Es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LENBQ0EsT0FHSixNQUFNRSxTQUFBLENBQXFCRCxTQUFBLEMsZUFBQSxDQUEzQixDQUNBcEMsU0FBQSxDQUFZb0MsU0FBQSxDLGdCQUFBLEMsQ0FDWmpDLFNBQUEsQyxnQkFBQSxHLENBQ0FDLFNBQUEsQyxnQkFBQSxHLENBQ0F3QixTQUFBLENBQW9CekIsU0FBcEIsQ0FBOENrQyxTQUFBLEMsZ0JBQUEsQ0FBOUMsQyxDQUNBVCxTQUFBLENBQW9CeEIsU0FBcEIsQ0FBK0NpQyxTQUFBLEMsZ0JBQUEsQ0FBL0MsQyxDQUNBTCxPQUFBLENBQWNJLFNBQUEsQyxnQkFBQSxHQUFvQyxFLENBQ2xESCxTQUFBLEMsZ0JBQUEsRyxDQUNBQyxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUE4QnpPLElBQUEsQyxnQkFBQSxFQUFldU8sT0FBZixDQUE5QixDLENBQ0F0TyxPQUFBLEMsZUFBQSxFLGVBQUEsQ0FBb0JELElBQUEsQyxnQkFBQSxFQUFldU8sT0FBZixDQUFwQixDLENBQ0F0TyxPQUFBLEMsZUFBQSxFLGdCQUFBLENBQW9CME8sU0FBcEIsQyxFQXRCSixDLEVBM0hxQyxDLFlBb0p6QyxFLEVBcEp5QyxDQUE3QyxDLEVBanNCSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJEYXRhVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtdGV4dC13aWR0aFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGljb246IFwiZmEtcXVlc3Rpb25cIiwgY29sb3I6IFwiZ3JleVwiIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGJyb3dzZSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkLCB0ZW1wbGF0ZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9icm93c2VgO1xuICAgICAgICBjb25zdCBicm93c2VEZXNjcmlwdGlvbiA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGVtcGxhdGUpLCB7IG5vZGVJZCwgcmVzdWx0TWFzazogNjMgfSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGJyb3dzZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXM6IFtdIH07XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJicm93c2UgZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB3YWxrQmFja3dhcmQgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIHsgbm9kZUlkLCByb290Tm9kZUlkLCBpc1R5cGUgfSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS93YWxrLWJhY2t3YXJkYDtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgICAgIHJvb3ROb2RlSWQsXG4gICAgICAgICAgICAgICAgaXNUeXBlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIHJldHVybiBqc29uLmJyb3dzZVBhdGg7XG4gICAgfSk7XG4gICAgY29uc3QgaW50ZXJuYWxWZXJpZnkgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sICRpbnB1dEVsZW1lbnQsICRpbmZvKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2NoZWNrTm9kZUlkYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2Q7XG4gICAgICAgIGlmICghcmVmZXJlbmNlIHx8ICFyZWZlcmVuY2Uubm9kZUlkKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCB0aXRsZSA9IGAoJHtyZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCl9KSAkeygoX2MgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLm5hbWUpIHx8ICgoX2QgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC50ZXh0KSB8fCBcIlwifWA7XG4gICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpIGtleT1cIiR7cmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpfVwifT48c3BhbiBjbGFzcz1cInRyZWUtdGV4dFwiIHRpdGxlPSR7dGl0bGV9PjxpIGNsYXNzPVwiZmEgJHtpY29ufVwiIHN0eWxlPVwiY29sb3I6JHtjb2xvcn07XCI+PC9pPiAke3R9PC9zcGFuPjx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKFwiZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInZhbHVlXCIsIG4pO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICB9O1xuICAgIGNvbnN0IGZpbmRFbGVtZW50ID0gKG5vZGVJZCwgJHRyZWUpID0+IHtcbiAgICAgICAgcmV0dXJuICR0cmVlLmZpbmQoYGxpW2tleT1cIiR7bm9kZUlkfVwiXWApO1xuICAgIH07XG4gICAgY29uc3Qgc2VsZWN0U2luZ2xlID0gKHRoYXQsICRsaSkgPT4ge1xuICAgICAgICB0aGF0LiR0cmVlLmZpbmQoXCJsaSA+IC50cmVlLXRleHRcIikucmVtb3ZlQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgICAgICAgLy8gY2xlYXIgYWxsIHNlbGVjdGVkIGl0ZW1zXG4gICAgICAgICRsaS5maW5kKFwiLnRyZWUtdGV4dDpmaXJzdFwiKS5hZGRDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgIH07XG4gICAgY29uc3QgYXV0b0V4cGFuZCA9ICh0aGF0LCBicm93c2VQYXRoLCAkdHJlZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIC8vIGV4cGFuZCB0aGUgdHJlZSB0byBzaG93IHRoZSBub2RlSWRcbiAgICAgICAgbGV0ICRjdXJyZW50ID0gJHRyZWUuY2hpbGRyZW4oXCI6Zmlyc3RcIik7XG4gICAgICAgIGJyb3dzZVBhdGgucmVsYXRpdmVQYXRoLmVsZW1lbnRzIHx8IFtdO1xuICAgICAgICBjb25zdCBub2RlSWRzID0gYnJvd3NlUGF0aC5ub2RlSWRzIHx8IFtdO1xuICAgICAgICBpZiAobm9kZUlkcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IG4gb2Ygbm9kZUlkcykge1xuICAgICAgICAgICAgaWYgKCRjdXJyZW50Lmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gZXhwYW5kIGFuZCBzZWxlY3QgdGhlIHJpZ2h0IGVsZW1lbnRcbiAgICAgICAgICAgICAgICB5aWVsZCBfZXhwYW5kTGkodGhhdCwgJGN1cnJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBmaW5kRWxlbWVudChuLCAkY3VycmVudCk7XG4gICAgICAgICAgICBpZiAoJGVsZW1lbnQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGN1cnJlbnQgPSAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBzZWxlY3RTaW5nbGUodGhhdCwgJGN1cnJlbnQpO1xuICAgICAgICBzY3JvbGxUb0xpKHRoYXQuJGRyb3Bkb3duLCAkY3VycmVudCk7XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gc2Nyb2xsVG9MaSgkY29udGFpbmVyLCAkdGFyZ2V0TGkpIHtcbiAgICAgICAgLy8gR2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgdGFyZ2V0IGl0ZW0gcmVsYXRpdmUgdG8gaXRzIGNvbnRhaW5lclxuICAgICAgICBjb25zdCBsaVBvcyA9ICR0YXJnZXRMaS5wb3NpdGlvbigpLnRvcDtcbiAgICAgICAgLy8gR2V0IHRoZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiBvZiB0aGUgY29udGFpbmVyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclNjcm9sbFRvcCA9ICRjb250YWluZXIuc2Nyb2xsVG9wKCk7XG4gICAgICAgIGlmIChjb250YWluZXJTY3JvbGxUb3AgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBwb3NpdGlvbiB0byBzY3JvbGwgdG8gKGN1cnJlbnQgc2Nyb2xsICsgaXRlbSdzIHBvc2l0aW9uKVxuICAgICAgICAvLyBBZGp1c3QgdGhpcyBjYWxjdWxhdGlvbiBiYXNlZCBvbiB5b3VyIG5lZWRzXG4gICAgICAgIGNvbnN0IHNjcm9sbFRvID0gY29udGFpbmVyU2Nyb2xsVG9wICsgbGlQb3MgLSAkY29udGFpbmVyLmhlaWdodCgpIC8gMiArICR0YXJnZXRMaS5oZWlnaHQoKSAvIDI7XG4gICAgICAgIC8vIFNjcm9sbCB0aGUgY29udGFpbmVyIHRvIGVuc3VyZSB0aGUgaXRlbSBpcyB2aXNpYmxlXG4gICAgICAgICRjb250YWluZXIuYW5pbWF0ZSh7XG4gICAgICAgICAgICBzY3JvbGxUb3A6IHNjcm9sbFRvLFxuICAgICAgICB9LCA1MDApOyAvLyBBZGp1c3QgdGhlIGR1cmF0aW9uICg1MDBtcykgYXMgbmVlZGVkXG4gICAgfVxuICAgIGNvbnN0IHJlYWNoU2VsZWN0aW9uID0gKHRoYXQsIHBhcmVudE5vZGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBub2RlSWQgPSB0aGF0LiRpbnB1dC52YWwoKTtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIHJvb3ROb2RlSWQ6IHBhcmVudE5vZGUubm9kZUlkLFxuICAgICAgICAgICAgaXNUeXBlOiB0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmIHx8IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgIGNvbnN0IGJyb3dzZVBhdGggPSB5aWVsZCB3YWxrQmFja3dhcmQoZGF0YSwgb3B0aW9ucyk7XG4gICAgICAgIGlmICghYnJvd3NlUGF0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHlpZWxkIGF1dG9FeHBhbmQodGhhdCwgYnJvd3NlUGF0aCwgdGhhdC4kdHJlZSk7XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gX2ZldGNoRGF0YUZvck5vZGUodGhhdCwgJG5vZGUsIGZldGNoRnVuYywgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImxvYWRpbmdcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgbG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgICAgICAkbm9kZS5hcHBlbmQoJzxkaXYgY2xhc3M9XCJzcGlubmVyXCI+PC9kaXY+Jyk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHJlZmVyZW5jZXMgfSA9IHlpZWxkIGZldGNoRnVuYygkbm9kZSwgZGF0YSk7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCByZWZlcmVuY2Ugb2YgcmVmZXJlbmNlcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmZpbHRlciAmJiAhdGhhdC5vcHRpb25zLmZpbHRlcihyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKGA8bGk+ZXJyb3IgJHtlcnIubWVzc2FnZX08L2xpPmApO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbm9kZS5maW5kKFwiLnNwaW5uZXJcIikucmVtb3ZlKCk7XG4gICAgICAgICAgICAkbm9kZS5yZW1vdmVDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYWtlQ29ubmVjdGlvbih0aGF0KSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgICBmdW5jdGlvbiBfZXhwYW5kTGkodGhhdCwgJGxpKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgeWllbGQgX2ZldGNoRGF0YUZvck5vZGUodGhhdCwgJGxpLCBmLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbIFRlbXBlcmF0dXJlICBdXG4gICAgICAgICAqICAgKCB0b29sdGlwIDogKC9PYmplY3RzL015U2Vuc29yKSAobnM9MTtzPVRlbXBlcmF0dXJlKSlcbiAgICAgICAgICogWyArIFtGb2xkZXJdIE9iamVjdHNdXG4gICAgICAgICAqIFsgICAgIFtPYmplY3RdIE15U2Vuc29yXVxuICAgICAgICAgKiBbICAgICAoICkgW1ZhcmlhYmxlXSBUZW1wZXJhdHVyZV1cbiAgICAgICAgICovXG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUubm9kZUJyb3dzZXJcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZTogKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgbm9kZUNsYXNzOiBcIk9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBub2RlSWQ6IFwibnM9MDtpPTg1XCIsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIHR5cGVEZWZpbml0aW9uOiBGb2xkZXJUeXBlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgICAgIGlzVHlwZVJlZjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZVBhcmVudE5vZGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhhdC5fX3BhcmVudE5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdGhhdC5vcHRpb25zLnBhcmVudE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlLmNhbGwodGhhdCkgOiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlc2MgPSB5aWVsZCBhO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX19wYXJlbnROb2RlID0gZGVzYztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX19wYXJlbnROb2RlID0gYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhhdC5fX3BhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIC8vIGFsc28gcmVzZXQgcGFyZW50IG5vZGVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHRoYXQ7XG4gICAgICAgICAgICAgICAgICAgIGEuX19wYXJlbnROb2RlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSB5aWVsZCB0aGlzLnJlc29sdmVQYXJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jdXJyZW50UGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJpZnkoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbFZlcmlmeShkYXRhLCB0aGF0LiRpbnB1dCwgdGhhdC4kaW5mbyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZWVkVG9SZWFjaFNlbGVjdGlvbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0cmVlIHdpZGdldCBpcyBnb2luZyB0byBiZWNvbWUgdmlzaWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudE5vZGUgPSB5aWVsZCB0aGF0LnJlc29sdmVQYXJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudE5vZGUgIT09IHRoYXQuY3VycmVudFBhcmVudCB8fCAoKF9hID0gdGhhdC5jdXJyZW50UGFyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eubm9kZUlkKSAhPT0gcGFyZW50Tm9kZS5ub2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgdGhhdC5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkVG9SZWFjaFNlbGVjdGlvbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRUb1JlYWNoU2VsZWN0aW9uICYmICh5aWVsZCByZWFjaFNlbGVjdGlvbih0aGF0LCBwYXJlbnROb2RlKSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1mbGFza1wiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR2ZXJpZnlCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52ZXJpZnkoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIiwgXCJlbnRlciBhIG5vZGVJZCBvciBhIGJyb3dzZVBhdGggXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvID0gJChgPGRpdiBjbGFzcz1cImluZm8tdGV4dFwiPjwvZGl2PmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcInN0ZXJmaXZlLWRyb3Bkb3duXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5mbyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlID0gJChgPHVsIGNsYXNzPVwic3RlcmZpdmUtdHJlZVwiPjwvdWw+YCkuYXBwZW5kVG8odGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpc09uTGVmdFNpemUgPSAoJGxpLCBldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVXaWR0aCA9IDIwOyAvLyBTZXQgd2lkdGggb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlSGVpZ2h0ID0gMjA7IC8vIFNldCBoZWlnaHQgb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFBvcyA9ICRsaS5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5wYWdlWCA+PSBlbGVtZW50UG9zLmxlZnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVggPD0gZWxlbWVudFBvcy5sZWZ0ICsgYmVmb3JlV2lkdGggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPj0gZWxlbWVudFBvcy50b3AgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPD0gZWxlbWVudFBvcy50b3AgKyBiZWZvcmVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvZ2dsZUV4cGFuc2lvbiA9ICgkbGkpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9leHBhbmRMaSh0aGF0LCAkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUb2dnbGUgaXRzIGV4cGFuZGVkL2NvbGxhcHNlZCBzdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiZGJsY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPbkxlZnRTaXplKCRsaSwgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVFeHBhbnNpb24oJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gJGxpLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9ICRsaS5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUgJiYgIXRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gYFske2Rpc3BsYXlOYW1lfV0oJHt2YWx1ZX0pYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0U2luZ2xlKHRoYXQsICRsaSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgY2hlY2tOb2RlSWQgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9jaGVja05vZGVJZGA7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICBjb25zdCByZXMgPSB7XG4gICAgICAgICAgICAgICAgc3RhdHVzQ29kZTogXCJCYWRcIixcbiAgICAgICAgICAgICAgICBub2RlQWRkcmVzc1N0cmluZzogbm9kZUlkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBtYW5hZ2VBUElDYWxsKHByZWZpeCwgYnRuLCBmdW5jLCBvblJlc3VsdCkge1xuICAgICAgICBjb25zdCBzdWNjZXNzSWNvbiA9ICQoYCMke3ByZWZpeH0tc3VjY2Vzc2ApO1xuICAgICAgICBjb25zdCBmYWlsdXJlSWNvbiA9ICQoYCMke3ByZWZpeH0tZmFpbHVyZWApO1xuICAgICAgICBjb25zdCBwZW5kaW5nSWNvbiA9ICQoYCMke3ByZWZpeH0tcGVuZGluZ2ApO1xuICAgICAgICBjb25zdCBtZXNzYWdlcyA9ICQoYCMke3ByZWZpeH0tbWVzc2FnZXNgKTtcbiAgICAgICAgbGV0IGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgc3VjY2Vzc0ljb24uaGlkZSgpO1xuICAgICAgICBmYWlsdXJlSWNvbi5oaWRlKCk7XG4gICAgICAgIHBlbmRpbmdJY29uLmhpZGUoKTtcbiAgICAgICAgYnRuLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGFjdGlvblBlbmRpbmcpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgYWN0aW9uUGVuZGluZyA9IHRydWU7XG4gICAgICAgICAgICBwZW5kaW5nSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICBwZW5kaW5nSWNvbi5odG1sKFwiVGVzdGluZyBDb25uZWN0aW9uIC4uLlwiKTtcbiAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIGZhaWx1cmVJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoXCJcIik7XG4gICAgICAgICAgICBjb25zdCB7IGJvZHksIHVybCB9ID0gZnVuYygpO1xuICAgICAgICAgICAgLy8geHggY29uc29sZS5sb2coXCJ4eHh4eFwiLCBib2R5KTtcbiAgICAgICAgICAgIGZldGNoKHVybCwge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGJvZHkpLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAudGhlbigoZGF0YSkgPT4gZGF0YS5qc29uKCkpXG4gICAgICAgICAgICAgICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcGVuZGluZ0ljb24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIFwiIFwiKSk7XG4gICAgICAgICAgICAgICAgaWYgKGpzb24ucmVzdWx0ID09PSBcIm9rXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoanNvbi5tZXNzYWdlLnJlcGxhY2UoXCJcXG5cIiwgXCI8YnI+XCIpKTtcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQobnVsbCwganNvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhZGFwdCA9IChzdHIpID0+ICFzdHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gXCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzdHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3BsaXQoXCJcXG5cIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKChhKSA9PiBgPHA+JHthfTwvcD5gKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKFwiXFxuXCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhZGFwdDIgPSAoc3RyKSA9PiAoQXJyYXkuaXNBcnJheShzdHIpID8gc3RyLm1hcChhZGFwdCkuam9pbihcIlxcblwiKSA6IGFkYXB0KHN0cikpO1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChhZGFwdDIoanNvbi5tZXNzYWdlKSArIGFkYXB0Mihqc29uLmV4dHJhKSk7XG4gICAgICAgICAgICAgICAgICAgIG9uUmVzdWx0KG5ldyBFcnJvcihqc29uLnJlc3VsdCksIGpzb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcGVuZGluZ0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChcImludGVybmFsIGVycm9yIFwiICsgZXJyLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG4gICAgICAgICAgICAgICAgb25SZXN1bHQoZXJyLCBudWxsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBnZXRFbmRQb2ludEF0dHJpYnV0ZXMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgcmVkTm9kZSA9IFJFRC5ub2Rlcy5ub2RlKGVuZHBvaW50SWQpO1xuICAgICAgICBpZiAoIXJlZE5vZGUpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAvLyBjb25zdCBjcmVkZW50aWFscyA9IFJFRC4oZW5kcG9pbnRJZCk7XG4gICAgICAgIC8vIHdlIG5lZWQgdG8gc2FuaXRpemUgYW5kIGV4dHJhY3QgdGhlIGVuZHBvaW50IGF0dHJpYnV0ZXMgb25seSAoIG5vdCB0aGUgbm9kZS1yZWQgc3R1ZmYpXG4gICAgICAgIGNvbnN0IHsgZW5kcG9pbnQsIHNlY3VyaXR5TW9kZSwgc2VjdXJpdHlQb2xpY3ksIHVzZXJJZGVudGl0eVR5cGUsIGNyZWRlbnRpYWxzIH0gPSByZWROb2RlO1xuICAgICAgICBjb25zdCByZXRWYWx1ZSA9IHtcbiAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgY3JlZGVudGlhbHMsXG4gICAgICAgIH07XG4gICAgICAgIC8vIHh4IGNvbnNvbGUubG9nKFwieHh4XCIsIHJldFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHJldFZhbHVlO1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50TnIgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgaWYgKCFlbmRwb2ludE5yKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogZW5kcG9pbnRJZCxcbiAgICAgICAgICAgIC8vIGVuZHBvaW50OiBlbmRwb2ludE5yLmVuZHBvaW50LFxuICAgICAgICAgICAgLy8gc2VjdXJpdHlNb2RlOiBlbmRwb2ludE5yLnNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIC8vIHNlY3VyaXR5UG9saWN5OiBlbmRwb2ludE5yLnNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIHVzZXJJZGVudGl0eVR5cGU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIC8vIGNyZWRlbnRpYWw6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gdXNlck5hbWU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyTmFtZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC8vIHBhc3N3b3JkOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIuY3JlZGVudGlhbHMucGFzc3dvcmQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyB1c2VyQ2VydGlmaWNhdGU6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlckNlcnRpZmljYXRlLFxuICAgICAgICAgICAgLy8gdXNlclByaXZhdGVrZXk6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlclByaXZhdGVrZXksXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1DbGllbnQyLUNhbGxcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJvcGN1YVwiLFxuICAgICAgICBjb2xvcjogXCIjQzBERUVEXCIsXG4gICAgICAgIGFsaWduOiBcInJpZ2h0XCIsXG4gICAgICAgIGljb246IFwiLi4vLi4vaWNvbnMvb3BjdWFub2RlTG9nby5wbmdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcImNhbGxcIixcbiAgICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgICAgIGlucHV0czogeyB2YWx1ZTogMSB9LFxuICAgICAgICAgICAgb3V0cHV0OiB7IHZhbHVlOiA0IH0sXG4gICAgICAgICAgICAvLyBDb21tb25cbiAgICAgICAgICAgIG5hbWU6IHsgdmFsdWU6IFwiXCIgfSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSwgdHlwZTogXCJPcGNVYS1FbmRwb2ludDJcIiB9LFxuICAgICAgICAgICAgYWN0aW9uOiB7IHZhbHVlOiBcInJlYWRcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIC8vIGZvciBhY3Rpb24gY2FsbFxuICAgICAgICAgICAgbWV0aG9kSWQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBvYmplY3RJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gaW5wdXRzOixcbiAgICAgICAgb3V0cHV0czogMiwgLy8gMiBvdXRwdXQsIHNlY29uZCBmb3IgcmF3IG5vZGUtb3BjdWEgZGlhZ25vc3RpY3Mgb3IgbW9yZSBjb21wbGV0ZSBtZXNzYWdlXG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCBcIk9QQ1VBLUNhbGxcIjtcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWxTdHlsZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgPyBcIm5vZGVfbGFiZWxfaXRhbGljXCIgOiBcIlwiO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXM7XG4gICAgICAgICAgICBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQoKTtcbiAgICAgICAgICAgIG5vZGUuaW5wdXRzID0gMTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgU2VjdGlvbiBDYWxsXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgbGV0IGRhdGFUeXBlcyA9IHt9O1xuICAgICAgICAgICAgLy8gdG8gZG8gYWRkIGEgdHlwZXNjcmlwdCBkZWZpbml0aW9uIGZvciB0aGlzXG4gICAgICAgICAgICBjb25zdCAkb2JqZWN0SWQgPSAkKFwiI25vZGUtaW5wdXQtb2JqZWN0SWRcIik7XG4gICAgICAgICAgICBjb25zdCAkbWV0aG9kSWQgPSAkKFwiI25vZGUtaW5wdXQtbWV0aG9kSWRcIik7XG4gICAgICAgICAgICBjb25zdCAkaW5wdXRBcmd1bWVudERlZmluaXRpb24gPSAkKFwiI21ldGhvZC1pbnB1dC1hcmd1bWVudC1kZWZpbml0aW9uXCIpO1xuICAgICAgICAgICAgY29uc3QgJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbiA9ICQoXCIjbWV0aG9kLW91dHB1dC1hcmd1bWVudC1kZWZpbml0aW9uXCIpO1xuICAgICAgICAgICAgY29uc3QgJHZhbGlkYXRlQnRuID0gJChcIiN2YWxpZGF0ZS1jYWxsLWFyZ3VtZW50cy1idXR0b25cIik7XG4gICAgICAgICAgICAkb2JqZWN0SWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IGZpbHRlcihub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiO1xuICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICAgICAgJG1ldGhvZElkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBwYXJlbnROb2RlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhpcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIHJlc3luYyB3aXRoIHdoYXQncyBpbiAgI25vZGUtaW5wdXQtb2JqZWN0SWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZWZlcmVuY2UgPSAkb2JqZWN0SWQuZGF0YShcInJlZmVyZW5jZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcmVmZXJlbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9kZUlkRXggPSAkb2JqZWN0SWQudmFsKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5kcG9pbnROb2RlID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFlbmRwb2ludE5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHIgPSB5aWVsZCBjaGVja05vZGVJZChkYXRhLCBub2RlSWRFeCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZSA9IHIucmVmZXJlbmNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZmVyZW5jZTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSwgZmlsdGVyKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiTWV0aG9kXCIgfHwgbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgaXNTZWxlY3RhYmxlKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiTWV0aG9kXCI7XG4gICAgICAgICAgICAgICAgfSB9KSk7XG4gICAgICAgICAgICAkb2JqZWN0SWQub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICRtZXRob2RJZC5ub2RlQnJvd3NlcihcInJlc2V0XCIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBmdW5jdGlvbiBhZGRBcmd1bWVudEN0cmwoY29udGFpbmVyLCBpbmRleCwgYXJnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9ICQoJzxkaXYgY2xhc3M9XCJhcmd1bWVudC1lbnRyeVwiPicpLmFwcGVuZFRvKGNvbnRhaW5lcik7XG4gICAgICAgICAgICAgICAgLy8gY29udGFpbmVyLmRhdGEoXCJkYXRhXCIsIGFyZyk7XG4gICAgICAgICAgICAgICAgJCgnPGlucHV0IHR5cGU9XCJ0ZXh0XCI+JylcbiAgICAgICAgICAgICAgICAgICAgLnZhbChhcmcubmFtZSB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAuY3NzKHsgd2lkdGg6IFwiMTAwJVwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhpdGVtKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkID0gZGF0YVR5cGVzW2FyZy5kYXRhVHlwZS50b1N0cmluZygpXTtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhVHlwZU4gPSAoZCA/IGQuYnJvd3NlTmFtZS5uYW1lIHx8IFwiXCIgOiBhcmcuZGF0YVR5cGUudG9TdHJpbmcoKSkgKyAoYXJnLnZhbHVlUmFuayA9PT0gMSA/IFwiW11cIiA6IFwiXCIpO1xuICAgICAgICAgICAgICAgICQoJzxpbnB1dCB0eXBlPVwidGV4dFwiPicpXG4gICAgICAgICAgICAgICAgICAgIC52YWwoYXJnLmRlc2NyaXB0aW9uLnRleHQgfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjUwJVwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhpdGVtKTtcbiAgICAgICAgICAgICAgICAkKCc8aW5wdXQgdHlwZT1cInRleHRcIj4nKVxuICAgICAgICAgICAgICAgICAgICAudmFsKGRhdGFUeXBlTiB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAuY3NzKHsgd2lkdGg6IFwiNTAlXCIgfSlcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGlucHV0QXJndW1lbnREZWZpbml0aW9uLmVkaXRhYmxlTGlzdCh7XG4gICAgICAgICAgICAgICAgYWRkQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiLFxuICAgICAgICAgICAgICAgIHNjcm9sbE9uQWRkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBhZGRJdGVtKGNvbnRhaW5lciwgaSwgb2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgIGFkZEFyZ3VtZW50Q3RybChjb250YWluZXIsIGksIG9iamVjdCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbi5lZGl0YWJsZUxpc3Qoe1xuICAgICAgICAgICAgICAgIGFkZEJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBcImF1dG9cIixcbiAgICAgICAgICAgICAgICBzY3JvbGxPbkFkZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgYWRkSXRlbShjb250YWluZXIsIGksIG9iamVjdCkge1xuICAgICAgICAgICAgICAgICAgICBhZGRBcmd1bWVudEN0cmwoY29udGFpbmVyLCBpLCBvYmplY3QpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGZ1bmN0aW9uIGluc3RhbGxBcmd1bWVudExpc3QobGlzdCwgbWV0aG9kQXJndW1lbnRzKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJpbnN0YWxsQXJndW1lbnRMaXN0XCIsIG1ldGhvZEFyZ3VtZW50cy5sZW5ndGgsIFwiYXJndW1lbnRzXCIsIG1ldGhvZEFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgbGlzdC5lZGl0YWJsZUxpc3QoXCJlbXB0eVwiKTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1ldGhvZEFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBsaXN0LmVkaXRhYmxlTGlzdChcImFkZEl0ZW1cIiwgbWV0aG9kQXJndW1lbnRzW2ldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkaW5wdXRBcmd1bWVudERlZmluaXRpb24uaGlkZSgpO1xuICAgICAgICAgICAgJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbi5oaWRlKCk7XG4gICAgICAgICAgICBsZXQgaW5wdXRBc0pzb24gPSB7fTtcbiAgICAgICAgICAgIGNvbnN0ICRjb3B5SW5wdXQgPSAkKFwiI2NvcHktaW5wdXRcIik7XG4gICAgICAgICAgICAkY29weUlucHV0LmhpZGUoKTtcbiAgICAgICAgICAgICRjb3B5SW5wdXQub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gQ29weSB0aGUgdGV4dCBpbnNpZGUgdGhlIHRleHQgZmllbGRcbiAgICAgICAgICAgICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChKU09OLnN0cmluZ2lmeShpbnB1dEFzSnNvbikpO1xuICAgICAgICAgICAgICAgIC8vIGFsZXJ0KEpTT04uc3RyaW5naWZ5KGlucHV0QXNKc29uKSArIFwiIGNvcGllZCB0byBjbGlwYm9hcmRcIik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIG1hbmFnZUFQSUNhbGwoXCJ2YWxpZGF0ZVwiLCAkdmFsaWRhdGVCdG4sICgpID0+ICh7XG4gICAgICAgICAgICAgICAgdXJsOiBcIi9vcGN1YS1lbmRwb2ludDIvYXJndW1lbnREZWZpbml0aW9uXCIsXG4gICAgICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycygpLFxuICAgICAgICAgICAgICAgICAgICBvYmplY3RJZDogJG9iamVjdElkLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICBtZXRob2RJZDogJG1ldGhvZElkLnZhbCgpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSwgKGVyciwgZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBwb3B1bGF0ZSB0aGUgbGlzdFxuICAgICAgICAgICAgICAgIGNvbnN0IGFyZ3VtZW50RGVmaW5pdGlvbiA9IGRhdGEuYXJndW1lbnREZWZpbml0aW9uO1xuICAgICAgICAgICAgICAgIGRhdGFUeXBlcyA9IGRhdGEuZGF0YVR5cGVzO1xuICAgICAgICAgICAgICAgICRpbnB1dEFyZ3VtZW50RGVmaW5pdGlvbi5zaG93KCk7XG4gICAgICAgICAgICAgICAgJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbi5zaG93KCk7XG4gICAgICAgICAgICAgICAgaW5zdGFsbEFyZ3VtZW50TGlzdCgkaW5wdXRBcmd1bWVudERlZmluaXRpb24sIGFyZ3VtZW50RGVmaW5pdGlvbi5pbnB1dEFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgaW5zdGFsbEFyZ3VtZW50TGlzdCgkb3V0cHV0QXJndW1lbnREZWZpbml0aW9uLCBhcmd1bWVudERlZmluaXRpb24ub3V0cHV0QXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICBpbnB1dEFzSnNvbiA9IGRhdGEuaW5wdXRBcmd1bWVudHNFeGFtcGxlQXNKc29uIHx8IHt9O1xuICAgICAgICAgICAgICAgICRjb3B5SW5wdXQuc2hvdygpO1xuICAgICAgICAgICAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KEpTT04uc3RyaW5naWZ5KGlucHV0QXNKc29uKSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJKU09OXCIsIEpTT04uc3RyaW5naWZ5KGlucHV0QXNKc29uKSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJkYXRhXCIsIGRhdGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHNhdmUoKSB7IH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
|
9
9
|
</script>
|
10
10
|
<script type="text/x-red" data-template-name="OpcUa-Client2-Call">
|
11
11
|
<div class="form-row">
|
@@ -36,7 +36,9 @@
|
|
36
36
|
<span id="validate-messages"></span>
|
37
37
|
</div>
|
38
38
|
<div class="form-row">
|
39
|
-
<legend>
|
39
|
+
<legend>
|
40
|
+
input arguments <button id="copy-input"><i class="fa fa-copy"></i></button>
|
41
|
+
</legend>
|
40
42
|
<div id="method-input-argument-definition"></div>
|
41
43
|
<legend>output arguments</legend>
|
42
44
|
<div id="method-output-argument-definition"></div>
|
@@ -48,3 +50,4 @@
|
|
48
50
|
### Perform a Method Call
|
49
51
|
|
50
52
|
</script>
|
53
|
+
//# sourceMappingURL=OpcUa-Client2-Call.html.map
|