@opcua/for-node-red 2.17.0 → 2.18.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/config-panel/assets/{index-B2t8v8l8.css → index-QtyZbFyg.css} +1 -1
- package/config-panel/index.html +2 -2
- package/package.json +1 -1
- package/source/OpcUa-Client2-Browse/OpcUa-Client2-Browse.html +2 -2
- package/source/OpcUa-Client2-Call/OpcUa-Client2-Call.html +2 -2
- package/source/OpcUa-Client2-Explore/OpcUa-Client2-Explore.html +2 -2
- package/source/OpcUa-Client2-ExtensionObject/OpcUa-Client2-ExtensionObject.html +2 -2
- package/source/OpcUa-Client2-HistoryRead/OpcUa-Client2-HistoryRead.html +2 -2
- package/source/OpcUa-Client2-Monitor/OpcUa-Client2-Monitor.html +2 -2
- package/source/OpcUa-Client2-MonitorEvent/OpcUa-Client2-MonitorEvent.html +2 -2
- package/source/OpcUa-Client2-Read/OpcUa-Client2-Read.html +2 -2
- package/source/OpcUa-Client2-Write/OpcUa-Client2-Write.html +2 -2
- package/source/OpcUa-Endpoint2/OpcUa-Endpoint2.html +2 -2
- /package/config-panel/assets/{index-DWlTPfa9.js → index-B-6Bptzq.js} +0 -0
@@ -4,8 +4,8 @@
|
|
4
4
|
</style>
|
5
5
|
|
6
6
|
<script type="text/javascript">
|
7
|
-
(function(_0x2207d2,_0x229642){const _0x15d5c1=_0x4118,_0x123958=_0x2207d2();while(!![]){try{const _0x5a43a3=parseInt(_0x15d5c1(0x24a))/0x1+parseInt(_0x15d5c1(0x2c9))/0x2*(-parseInt(_0x15d5c1(0x2bf))/0x3)+-parseInt(_0x15d5c1(0x1fb))/0x4+-parseInt(_0x15d5c1(0x2d2))/0x5*(parseInt(_0x15d5c1(0x2ba))/0x6)+-parseInt(_0x15d5c1(0x27c))/0x7*(-parseInt(_0x15d5c1(0x26e))/0x8)+parseInt(_0x15d5c1(0x2b0))/0x9+-parseInt(_0x15d5c1(0x21e))/0xa;if(_0x5a43a3===_0x229642)break;else _0x123958['push'](_0x123958['shift']());}catch(_0x5c661c){_0x123958['push'](_0x123958['shift']());}}}(_0x1fcd,0x3b3ea),(function(){'use strict';const _0x3f329f=_0x4118;function _0x4524d3(_0x306f2c,_0x1c052f,_0xa21185,_0x347d90){function _0x15723e(_0x386b4a){return _0x386b4a instanceof _0xa21185?_0x386b4a:new _0xa21185(function(_0x2a61e5){_0x2a61e5(_0x386b4a);});}return new(_0xa21185||(_0xa21185=Promise))(function(_0xdf1fd8,_0x158251){const _0x20ba3e=_0x4118;function _0x5c70c1(_0x2039c0){try{_0x3db220(_0x347d90['next'](_0x2039c0));}catch(_0xc267af){_0x158251(_0xc267af);}}function _0x5404e4(_0x2b527d){try{_0x3db220(_0x347d90['throw'](_0x2b527d));}catch(_0x10845e){_0x158251(_0x10845e);}}function _0x3db220(_0x167a29){const _0x554945=_0x4118;_0x167a29[_0x554945(0x1fe)]?_0xdf1fd8(_0x167a29['value']):_0x15723e(_0x167a29[_0x554945(0x22c)])[_0x554945(0x20e)](_0x5c70c1,_0x5404e4);}_0x3db220((_0x347d90=_0x347d90['apply'](_0x306f2c,_0x1c052f||[]))[_0x20ba3e(0x228)]());});}typeof SuppressedError===_0x3f329f(0x206)?SuppressedError:function(_0x3a8c4b,_0x406afb,_0x571ad6){const _0x3d0de5=_0x3f329f;var _0x4e0c2a=new Error(_0x571ad6);return _0x4e0c2a['name']=_0x3d0de5(0x267),_0x4e0c2a[_0x3d0de5(0x2ac)]=_0x3a8c4b,_0x4e0c2a['suppressed']=_0x406afb,_0x4e0c2a;};const _0x15438a=_0x3f329f(0x24d),_0x764f3e=_0x3f329f(0x239),_0x317cb8=_0x3f329f(0x20b),_0xabc209=_0x3f329f(0x218),_0x14cfe8='ns=0;i=34',_0xfcd630=_0x3f329f(0x292),_0x5e17dc=_0x3f329f(0x209);var _0x57735c;(function(_0x2ad26e){const _0x3d0235=_0x3f329f;_0x2ad26e[_0x2ad26e['Forward']=0x0]=_0x3d0235(0x242),_0x2ad26e[_0x2ad26e[_0x3d0235(0x26d)]=0x1]='Inverse',_0x2ad26e[_0x2ad26e[_0x3d0235(0x262)]=0x2]=_0x3d0235(0x262),_0x2ad26e[_0x2ad26e['Invalid']=0x3]=_0x3d0235(0x28f);}(_0x57735c||(_0x57735c={})));var _0xfdc1ad;(function(_0xa0cbc3){const _0x4ac2eb=_0x3f329f;_0xa0cbc3[_0xa0cbc3[_0x4ac2eb(0x291)]=0x0]=_0x4ac2eb(0x291),_0xa0cbc3[_0xa0cbc3[_0x4ac2eb(0x25c)]=0x1]=_0x4ac2eb(0x25c),_0xa0cbc3[_0xa0cbc3[_0x4ac2eb(0x1fc)]=0x2]=_0x4ac2eb(0x1fc),_0xa0cbc3[_0xa0cbc3[_0x4ac2eb(0x29e)]=0x4]=_0x4ac2eb(0x29e),_0xa0cbc3[_0xa0cbc3['ObjectType']=0x8]='ObjectType',_0xa0cbc3[_0xa0cbc3['VariableType']=0x10]='VariableType',_0xa0cbc3[_0xa0cbc3[_0x4ac2eb(0x248)]=0x20]=_0x4ac2eb(0x248),_0xa0cbc3[_0xa0cbc3['DataType']=0x40]=_0x4ac2eb(0x27f),_0xa0cbc3[_0xa0cbc3[_0x4ac2eb(0x221)]=0x80]=_0x4ac2eb(0x221);}(_0xfdc1ad||(_0xfdc1ad={})));var _0x5edfb9;(function(_0x548910){const _0x471102=_0x3f329f;_0x548910[_0x548910[_0x471102(0x25c)]=0x1]=_0x471102(0x25c),_0x548910[_0x548910['Variable']=0x2]='Variable',_0x548910[_0x548910[_0x471102(0x29e)]=0x4]='Method',_0x548910[_0x548910[_0x471102(0x229)]=0x8]='ObjectType',_0x548910[_0x548910[_0x471102(0x2b4)]=0x10]=_0x471102(0x2b4),_0x548910[_0x548910[_0x471102(0x248)]=0x20]='ReferenceType',_0x548910[_0x548910[_0x471102(0x27f)]=0x40]='DataType',_0x548910[_0x548910[_0x471102(0x221)]=0x80]=_0x471102(0x221);}(_0x5edfb9||(_0x5edfb9={})));var _0x111754;(function(_0x55860c){const _0x53689f=_0x3f329f;_0x55860c[_0x55860c[_0x53689f(0x248)]=0x1]=_0x53689f(0x248),_0x55860c[_0x55860c['IsForward']=0x2]=_0x53689f(0x20a),_0x55860c[_0x55860c['NodeClass']=0x4]=_0x53689f(0x234),_0x55860c[_0x55860c['BrowseName']=0x8]=_0x53689f(0x23d),_0x55860c[_0x55860c[_0x53689f(0x2b6)]=0x10]=_0x53689f(0x2b6),_0x55860c[_0x55860c[_0x53689f(0x25e)]=0x20]=_0x53689f(0x25e);}(_0x111754||(_0x111754={})));function _0x21e5bd(_0x4472d9){const _0x1eb91b=_0x3f329f;switch(_0x4472d9){case _0x1eb91b(0x2c0):return _0x15438a;case _0x1eb91b(0x2a2):return _0xabc209;case _0x1eb91b(0x2ca):return _0x317cb8;case'HasChild':return _0x14cfe8;case _0x1eb91b(0x2a4):return _0xfcd630;case _0x1eb91b(0x2d5):return _0x5e17dc;}}const _0x289c85=_0x18632a=>{const _0x16ab10=_0x3f329f;switch(_0x18632a[_0x16ab10(0x2d0)]){case _0x16ab10(0x25c):if(_0x18632a[_0x16ab10(0x2c3)]===_0x15438a);if(_0x18632a[_0x16ab10(0x22d)]===_0x764f3e||_0x18632a[_0x16ab10(0x2c3)]===_0x16ab10(0x24e))return{'icon':_0x16ab10(0x21a),'color':_0x16ab10(0x26b)};return{'icon':_0x16ab10(0x27d),'color':_0x16ab10(0x285)};case _0x16ab10(0x1fc):if(_0x18632a['referenceTypeId']===_0x317cb8)return{'icon':_0x16ab10(0x28a),'color':_0x16ab10(0x260)};else return _0x18632a[_0x16ab10(0x2c3)]===_0xabc209?{'icon':_0x16ab10(0x28a),'color':_0x16ab10(0x1f2)}:{'icon':_0x16ab10(0x28a),'color':_0x16ab10(0x28b)};case _0x16ab10(0x29e):return{'icon':_0x16ab10(0x2a5),'color':_0x16ab10(0x278)};case _0x16ab10(0x229):return{'icon':'fa-object-group','color':_0x16ab10(0x235)};case _0x16ab10(0x2b4):return{'icon':_0x16ab10(0x1ff),'color':_0x16ab10(0x235)};case _0x16ab10(0x27f):return{'icon':_0x16ab10(0x2b3),'color':_0x16ab10(0x28b)};}return{'icon':_0x16ab10(0x2bb),'color':'grey'};},_0x1996bc=(_0x17d38c,_0x24c94b,_0xf43780)=>_0x4524d3(void 0x0,[_0x17d38c,_0x24c94b,_0xf43780],void 0x0,function*({endpointNode:_0x3fd155,endpoint:_0x40e30d,baseUrl:_0x576286},_0xe6b9b0,_0x3a2328){const _0x51370e=_0x3f329f,_0x3824c6=_0x576286+'/opcua-endpoint2',_0x4392d7=_0x3824c6+_0x51370e(0x2b9),_0x4fe44b=Object[_0x51370e(0x2c2)](Object['assign']({},_0x3a2328),{'nodeId':_0xe6b9b0,'resultMask':0x3f}),_0x5b17fa=yield fetch(_0x4392d7,{'method':_0x51370e(0x265),'body':JSON[_0x51370e(0x2d1)]({'endpointNode':_0x3fd155,'endpoint':_0x40e30d,'browseDescription':_0x4fe44b}),'headers':{'Content-Type':_0x51370e(0x280)}});if(_0x5b17fa[_0x51370e(0x271)]!==0xc8)return console['log'](_0x51370e(0x23a),_0x5b17fa[_0x51370e(0x271)],_0x5b17fa[_0x51370e(0x23b)]),{'references':[]};const _0x57fe02=yield _0x5b17fa[_0x51370e(0x27a)](),_0x196fe0=_0x57fe02[_0x51370e(0x2b8)][_0x51370e(0x244)]||[];return{'references':_0x196fe0};}),_0x1c6478={'referenceTypeId':_0x21e5bd(_0x3f329f(0x26f)),'includeSubtypes':!![],'browseDirection':_0x57735c['Forward'],'nodeClassMask':_0xfdc1ad[_0x3f329f(0x1fc)]|_0xfdc1ad[_0x3f329f(0x25c)]|_0xfdc1ad[_0x3f329f(0x29e)],'resultMask':0x3f},_0x5f56a4={'referenceTypeId':_0x21e5bd(_0x3f329f(0x2c0)),'includeSubtypes':!![],'browseDirection':_0x57735c[_0x3f329f(0x242)],'nodeClassMask':_0xfdc1ad['Variable']|_0xfdc1ad['Object']|_0xfdc1ad[_0x3f329f(0x29e)],'resultMask':0x3f},_0x3d8c89=(_0x215c6f,_0x54ac75)=>_0x4524d3(void 0x0,[_0x215c6f,_0x54ac75],void 0x0,function*({endpointNode:_0x32c415,endpoint:_0x40596e,baseUrl:_0x25ad0e},{nodeId:_0x200679,rootNodeId:_0x5b83bb,isType:_0x283c3d}){const _0x357ddb=_0x3f329f,_0x1140e9=_0x25ad0e+_0x357ddb(0x1f5),_0x5a620c=_0x1140e9+'/walk-backward',_0x3409bb=yield fetch(_0x5a620c,{'method':_0x357ddb(0x265),'body':JSON[_0x357ddb(0x2d1)]({'endpointNode':_0x32c415,'endpoint':_0x40596e,'nodeId':_0x200679,'rootNodeId':_0x5b83bb,'isType':_0x283c3d}),'headers':{'Content-Type':_0x357ddb(0x280)}});if(_0x3409bb['status']!==0xc8)return null;const _0x52e0ab=yield _0x3409bb[_0x357ddb(0x27a)]();return _0x52e0ab['browsePath'];}),_0x1f25af=(_0x37f83f,_0x15fce1,_0x4e0551)=>_0x4524d3(void 0x0,[_0x37f83f,_0x15fce1,_0x4e0551],void 0x0,function*({endpointNode:_0x50f22a,endpoint:_0x4ddc1a,baseUrl:_0x4fec2e},_0x2dee05,_0xea409b){const _0x41b903=_0x3f329f,_0x410161=_0x4fec2e+_0x41b903(0x1f5),_0x8d8ff=_0x410161+_0x41b903(0x25f),_0x14ab11=_0x2dee05[_0x41b903(0x2c6)](),_0x36d92b=yield fetch(_0x8d8ff,{'method':_0x41b903(0x265),'body':JSON[_0x41b903(0x2d1)]({'endpointNode':_0x50f22a,'endpoint':_0x4ddc1a,'nodeId':_0x14ab11}),'headers':{'Content-Type':_0x41b903(0x280)}}),_0x8f481a=(_0x4f4a43,_0x18e99c)=>{const _0x2d7e23=_0x41b903;_0xea409b[_0x2d7e23(0x23f)](_0x4f4a43)[_0x2d7e23(0x205)](_0x2d7e23(0x2cb))[_0x2d7e23(0x205)](_0x18e99c),_0xea409b[_0x2d7e23(0x29c)](),setTimeout(()=>{const _0x450f9d=_0x2d7e23;_0xea409b[_0x450f9d(0x1f8)](_0x18e99c),_0xea409b['hide']();},0xbb8);},_0x3acd89=yield _0x36d92b[_0x41b903(0x27a)]();_0x36d92b[_0x41b903(0x271)]!==0xc8?_0x8f481a(_0x41b903(0x212)+_0x14ab11,_0x41b903(0x276)):_0x3acd89[_0x41b903(0x277)][_0x41b903(0x207)](/Good/)?(_0x2dee05[_0x41b903(0x2c6)](_0x3acd89[_0x41b903(0x2b1)]),_0x2dee05[_0x41b903(0x290)]('change'),_0x8f481a(_0x41b903(0x236),'ok')):(_0x2dee05['val'](''+_0x14ab11),_0x8f481a(_0x3acd89['statusCode']+'\x20'+_0x36d92b[_0x41b903(0x23b)],_0x41b903(0x276)));});function _0x2afbd7(_0x335105,_0xd9447c){return _0x4524d3(this,void 0x0,void 0x0,function*(){const _0x198137=_0x4118,_0x1c046f=_0x335105['data'](_0x198137(0x22c)),_0x4431cc=yield _0x1996bc(_0xd9447c,_0x1c046f,_0x1c6478),_0x35f717=yield _0x1996bc(_0xd9447c,_0x1c046f,_0x5f56a4);return{'references':[..._0x4431cc['references'],..._0x35f717[_0x198137(0x244)]]};});}const _0x471746={'referenceTypeId':_0x21e5bd(_0x3f329f(0x2a4)),'includeSubtypes':!![],'browseDirection':_0x57735c['Forward'],'nodeClassMask':_0xfdc1ad[_0x3f329f(0x248)]|_0xfdc1ad[_0x3f329f(0x229)]|_0xfdc1ad[_0x3f329f(0x27f)]|_0xfdc1ad[_0x3f329f(0x2b4)],'resultMask':0x3f};function _0x48df27(_0x4888da,_0x121009){return _0x4524d3(this,void 0x0,void 0x0,function*(){const _0x24a5b9=_0x4118,_0x18ed45=_0x4888da[_0x24a5b9(0x252)]('value'),_0x58685e=yield _0x1996bc(_0x121009,_0x18ed45,_0x471746);return _0x58685e;});}const _0xeba080=_0x309f78=>{const _0x210675=_0x3f329f;var _0x4fef81,_0x5636fd,_0x28318a,_0x3f0b0c;if(!_0x309f78||!_0x309f78[_0x210675(0x28e)]){const _0x1d3611=$(_0x210675(0x21d));return _0x1d3611;}const _0x2fe5ff=_0x309f78[_0x210675(0x28e)][_0x210675(0x226)](),_0x3632b6=((_0x4fef81=_0x309f78['displayName'])===null||_0x4fef81===void 0x0?void 0x0:_0x4fef81['text'])||((_0x5636fd=_0x309f78[_0x210675(0x255)])===null||_0x5636fd===void 0x0?void 0x0:_0x5636fd[_0x210675(0x2d4)])||_0x309f78[_0x210675(0x28e)][_0x210675(0x226)](),{icon:_0x1bc85d,color:_0x3a53d9}=_0x289c85(_0x309f78),_0x3db81c='('+_0x309f78[_0x210675(0x28e)][_0x210675(0x226)]()+')\x20'+(((_0x28318a=_0x309f78[_0x210675(0x255)])===null||_0x28318a===void 0x0?void 0x0:_0x28318a[_0x210675(0x2d4)])||((_0x3f0b0c=_0x309f78[_0x210675(0x295)])===null||_0x3f0b0c===void 0x0?void 0x0:_0x3f0b0c[_0x210675(0x23f)])||''),_0x5ae103=$(_0x210675(0x24f)+_0x309f78[_0x210675(0x28e)][_0x210675(0x226)]()+_0x210675(0x227)+_0x3db81c+_0x210675(0x211)+_0x1bc85d+'\x22\x20style=\x22color:'+_0x3a53d9+_0x210675(0x25d)+_0x3632b6+_0x210675(0x230));return _0x5ae103['addClass'](_0x210675(0x24b)),_0x5ae103[_0x210675(0x252)]('value',_0x2fe5ff),_0x5ae103[_0x210675(0x252)](_0x210675(0x2d9),_0x309f78),_0x5ae103;},_0x14181b=(_0x5f3f5b,_0x2b0e2d)=>{return _0x2b0e2d['find']('li[key=\x22'+_0x5f3f5b+'\x22]');},_0x1b8b11=(_0x1db11b,_0x258386)=>{const _0x18a189=_0x3f329f;_0x1db11b[_0x18a189(0x21f)][_0x18a189(0x287)](_0x18a189(0x279))['removeClass'](_0x18a189(0x21c)),_0x258386[_0x18a189(0x287)](_0x18a189(0x213))[_0x18a189(0x205)](_0x18a189(0x21c));},_0x288b0f=(_0x8fe4e7,_0x48b6b9,_0x4f4c0c)=>_0x4524d3(void 0x0,void 0x0,void 0x0,function*(){const _0x405ea5=_0x3f329f;let _0xb9d340=_0x4f4c0c['children'](_0x405ea5(0x297));_0x48b6b9['relativePath']['elements']||[];const _0x1033c0=_0x48b6b9[_0x405ea5(0x2a9)]||[];if(_0x1033c0[_0x405ea5(0x289)]===0x0)return;for(const _0x24d726 of _0x1033c0){_0xb9d340[_0x405ea5(0x208)](_0x405ea5(0x24b))&&(yield _0x13a3d1(_0x8fe4e7,_0xb9d340));const _0x2b9e1d=_0x14181b(_0x24d726,_0xb9d340);if(_0x2b9e1d[_0x405ea5(0x289)]===0x0)return;_0xb9d340=_0x2b9e1d;}_0x1b8b11(_0x8fe4e7,_0xb9d340),_0x4f0f2d(_0x8fe4e7[_0x405ea5(0x282)],_0xb9d340);});function _0x4f0f2d(_0x55ca1f,_0x22f13c){const _0x429485=_0x3f329f,_0x4f790f=_0x22f13c[_0x429485(0x256)]()[_0x429485(0x268)],_0x4c905a=_0x55ca1f['scrollTop']();if(_0x4c905a==undefined)return;const _0x504c29=_0x4c905a+_0x4f790f-_0x55ca1f[_0x429485(0x294)]()/0x2+_0x22f13c[_0x429485(0x294)]()/0x2;_0x55ca1f['animate']({'scrollTop':_0x504c29},0x1f4);}const _0x5e7263=(_0x791555,_0x5d7e7e)=>_0x4524d3(void 0x0,void 0x0,void 0x0,function*(){const _0x5bd9ca=_0x3f329f,_0x25d8d7=_0x791555[_0x5bd9ca(0x2a7)][_0x5bd9ca(0x2c6)](),_0x3e4716={'nodeId':_0x25d8d7,'rootNodeId':_0x5d7e7e['nodeId'],'isType':_0x791555[_0x5bd9ca(0x215)][_0x5bd9ca(0x298)]||![]},_0x2f1967=_0x44cbfa(_0x791555),_0x1b72d3=yield _0x3d8c89(_0x2f1967,_0x3e4716);if(!_0x1b72d3)return;yield _0x288b0f(_0x791555,_0x1b72d3,_0x791555[_0x5bd9ca(0x21f)]);});function _0x3b6430(_0x1ace3f,_0x140f73,_0x444b90,_0xe312fc){return _0x4524d3(this,void 0x0,void 0x0,function*(){const _0x411c45=_0x4118;if(_0x140f73[_0x411c45(0x208)](_0x411c45(0x281))){console[_0x411c45(0x284)](_0x411c45(0x250));return;}if(_0x140f73[_0x411c45(0x208)](_0x411c45(0x22e))){console['log'](_0x411c45(0x219));return;}_0x140f73[_0x411c45(0x205)]('loading'),_0x140f73['append'](_0x411c45(0x21b));try{_0x140f73[_0x411c45(0x231)]('ul')[_0x411c45(0x20c)]();const {references:_0x259be0}=yield _0x444b90(_0x140f73,_0xe312fc);for(const _0x268ebd of _0x259be0){if(_0x1ace3f['options']['filter']&&!_0x1ace3f[_0x411c45(0x215)][_0x411c45(0x238)](_0x268ebd))continue;const _0x1b392e=_0xeba080(_0x268ebd);_0x140f73['children']('ul')[_0x411c45(0x240)](_0x1b392e);}_0x140f73[_0x411c45(0x205)](_0x411c45(0x281));}catch(_0xab9428){_0x140f73[_0x411c45(0x231)]('ul')['append'](_0x411c45(0x2c7)+_0xab9428[_0x411c45(0x2ae)]+_0x411c45(0x241)),console['log'](_0x411c45(0x201),_0xab9428);}_0x140f73[_0x411c45(0x287)](_0x411c45(0x1f3))[_0x411c45(0x2d3)](),_0x140f73[_0x411c45(0x1f8)]('loading');});}function _0x44cbfa(_0x51101b){const _0x34c3fa=_0x3f329f,_0x4539c3={'baseUrl':_0x51101b[_0x34c3fa(0x215)][_0x34c3fa(0x1f4)],'endpointNode':typeof _0x51101b[_0x34c3fa(0x215)][_0x34c3fa(0x2a8)]===_0x34c3fa(0x206)?_0x51101b[_0x34c3fa(0x215)][_0x34c3fa(0x2a8)]():_0x51101b[_0x34c3fa(0x215)]['endpointNode'],'endpoint':typeof _0x51101b[_0x34c3fa(0x215)][_0x34c3fa(0x263)]==='function'?_0x51101b[_0x34c3fa(0x215)]['endpoint']():_0x51101b[_0x34c3fa(0x215)][_0x34c3fa(0x263)]};return _0x4539c3;}function _0x13a3d1(_0x455500,_0x48716a){return _0x4524d3(this,void 0x0,void 0x0,function*(){const _0x53466e=_0x4118;if(_0x48716a[_0x53466e(0x208)]('fetched')){_0x48716a['removeClass'](_0x53466e(0x24b))[_0x53466e(0x205)](_0x53466e(0x2be)),_0x48716a['children']('ul')[_0x53466e(0x266)]();return;}const _0x2e2a70=_0x44cbfa(_0x455500),_0xd8e479=!_0x455500[_0x53466e(0x215)]['isTypeRef']?_0x2afbd7:_0x48df27;try{yield _0x3b6430(_0x455500,_0x48716a,_0xd8e479,_0x2e2a70),_0x48716a[_0x53466e(0x1f8)](_0x53466e(0x24b))['addClass'](_0x53466e(0x2be));}catch(_0x444a45){_0x48716a[_0x53466e(0x1f8)]('expandable')[_0x53466e(0x205)](_0x53466e(0x2be)),console['log'](_0x53466e(0x2ac),_0x444a45);}});}const _0x2f4ad4=()=>{const _0x5db023=_0x3f329f;$['widget'](_0x5db023(0x20f),{'options':{'endpointNode':()=>({'endpoint':_0x5db023(0x29b)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':'Objects'},'nodeClass':_0x5db023(0x25c),'nodeId':_0x5db023(0x2c1),'displayName':{'text':_0x5db023(0x22a)},'typeDefinition':_0x764f3e}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x4524d3(this,void 0x0,void 0x0,function*(){const _0x55cc84=_0x4118,_0x2b6cb7=this;if(!_0x2b6cb7['__parentNode']){const _0x560aca=typeof _0x2b6cb7[_0x55cc84(0x215)][_0x55cc84(0x2d7)]==='function'?_0x2b6cb7[_0x55cc84(0x215)][_0x55cc84(0x2d7)][_0x55cc84(0x286)](_0x2b6cb7):_0x2b6cb7[_0x55cc84(0x215)][_0x55cc84(0x2d7)];if(_0x560aca instanceof Promise){const _0x4f5a45=yield _0x560aca;_0x2b6cb7[_0x55cc84(0x1f7)]=_0x4f5a45;}else _0x2b6cb7[_0x55cc84(0x1f7)]=_0x560aca;}return _0x2b6cb7[_0x55cc84(0x1f7)];});},'reset'(){return _0x4524d3(this,void 0x0,void 0x0,function*(){const _0x50c847=_0x4118,_0x393027=this,_0x13762a=_0x393027;_0x13762a[_0x50c847(0x1f7)]=undefined,_0x393027[_0x50c847(0x21f)]['empty']();const _0x13a088=yield this['resolveParentNode'](),_0x5f05b8=_0xeba080(_0x13a088);_0x393027[_0x50c847(0x21f)][_0x50c847(0x240)](_0x5f05b8),_0x393027[_0x50c847(0x270)]=_0x13a088;});},'verify'(){const _0x5d7963=_0x5db023,_0x11fda1=this,_0xc1dc19=_0x44cbfa(_0x11fda1);_0x1f25af(_0xc1dc19,_0x11fda1[_0x5d7963(0x2a7)],_0x11fda1[_0x5d7963(0x2af)]);},'_create'(){const _0x32066f=_0x5db023,_0x4d4171=this;_0x4d4171[_0x32066f(0x2a7)]=this[_0x32066f(0x27e)],_0x4d4171[_0x32066f(0x296)]=$('<div/>'),_0x4d4171[_0x32066f(0x296)][_0x32066f(0x205)]('sterfive-combo-box'),this[_0x32066f(0x27e)][_0x32066f(0x200)](_0x4d4171[_0x32066f(0x296)]),_0x4d4171[_0x32066f(0x2d6)]=$(_0x32066f(0x257))[_0x32066f(0x205)](_0x32066f(0x247)),_0x4d4171[_0x32066f(0x296)]['append'](_0x4d4171['$inputGroup']),_0x4d4171['$inputGroup']['append'](_0x4d4171[_0x32066f(0x2a7)]),_0x4d4171['$toggleTreeBtn']=$(_0x32066f(0x203)),_0x4d4171[_0x32066f(0x2d6)][_0x32066f(0x240)](_0x4d4171[_0x32066f(0x2c4)]),_0x4d4171[_0x32066f(0x2c4)]['on'](_0x32066f(0x2c8),function(){return _0x4524d3(this,void 0x0,void 0x0,function*(){const _0x48236d=_0x4118;var _0x67d283;let _0x34558c=![],_0x1ab70b;!_0x4d4171[_0x48236d(0x282)]['is'](':visible')&&(_0x4d4171['$info']['hide'](),_0x1ab70b=yield _0x4d4171[_0x48236d(0x26c)](),(_0x1ab70b!==_0x4d4171[_0x48236d(0x270)]||((_0x67d283=_0x4d4171['currentParent'])===null||_0x67d283===void 0x0?void 0x0:_0x67d283[_0x48236d(0x28e)])!==_0x1ab70b[_0x48236d(0x28e)])&&(yield _0x4d4171[_0x48236d(0x2ad)]()),_0x34558c=!![]),_0x4d4171['$dropdown'][_0x48236d(0x266)](),_0x34558c&&(yield _0x5e7263(_0x4d4171,_0x1ab70b));});}),_0x4d4171['$verifyBtn']=$('<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>'),_0x4d4171['$inputGroup'][_0x32066f(0x240)](_0x4d4171[_0x32066f(0x253)]),_0x4d4171[_0x32066f(0x253)]['on'](_0x32066f(0x2c8),()=>{const _0x5a14b8=_0x32066f;this[_0x5a14b8(0x272)]();});!_0x4d4171[_0x32066f(0x2a7)][_0x32066f(0x29f)](_0x32066f(0x2ce))&&_0x4d4171['$input'][_0x32066f(0x29f)]('placeholder',_0x32066f(0x2a3));_0x4d4171['$info']=$(_0x32066f(0x2b7)),_0x4d4171['$info'][_0x32066f(0x2aa)](),_0x4d4171['$dropdown']=$(_0x32066f(0x257))[_0x32066f(0x205)](_0x32066f(0x1fd))[_0x32066f(0x2aa)](),_0x4d4171[_0x32066f(0x296)]['append'](_0x4d4171[_0x32066f(0x2af)]),_0x4d4171['$combo']['append'](_0x4d4171['$dropdown']),_0x4d4171[_0x32066f(0x21f)]=$('<ul\x20class=\x22sterfive-tree\x22></ul>')['appendTo'](_0x4d4171[_0x32066f(0x282)]),this[_0x32066f(0x2ad)]();const _0x753eb3=(_0x19b117,_0x57cfb5)=>{const _0x219a59=_0x32066f,_0x1b68e2=0x14,_0x237f82=0x14,_0x12a362=_0x19b117['offset'](),_0x44bb2d=_0x57cfb5;if(_0x44bb2d['pageX']>=_0x12a362[_0x219a59(0x258)]&&_0x44bb2d[_0x219a59(0x288)]<=_0x12a362[_0x219a59(0x258)]+_0x1b68e2&&_0x44bb2d[_0x219a59(0x204)]>=_0x12a362[_0x219a59(0x268)]&&_0x44bb2d['pageY']<=_0x12a362[_0x219a59(0x268)]+_0x237f82)return!![];return![];},_0x26bf7e=_0xc921b2=>_0x4524d3(this,void 0x0,void 0x0,function*(){const _0x30ab0b=_0x32066f;if(_0xc921b2[_0x30ab0b(0x208)]('expandable'))_0x13a3d1(_0x4d4171,_0xc921b2);else{if(_0xc921b2[_0x30ab0b(0x208)]('expanded'))_0xc921b2[_0x30ab0b(0x231)]('ul')[_0x30ab0b(0x266)](),_0xc921b2[_0x30ab0b(0x261)]('expandable\x20expanded');else{if(_0xc921b2['children']('ul')['children']()[_0x30ab0b(0x289)]>0x0)_0xc921b2['children']('ul')[_0x30ab0b(0x266)](),_0xc921b2[_0x30ab0b(0x261)](_0x30ab0b(0x223));else;}}});_0x4d4171['$tree']['on'](_0x32066f(0x27b),'li',function(_0x3046b){const _0x2d153f=_0x32066f;var _0x119744,_0x3ea446;_0x3046b[_0x2d153f(0x2da)]();let _0x18a18f=$(this);if(_0x753eb3(_0x18a18f,_0x3046b))_0x26bf7e(_0x18a18f);else{const _0x58e4e3=_0x18a18f[_0x2d153f(0x252)](_0x2d153f(0x22c)),_0x502a11=_0x18a18f[_0x2d153f(0x252)]('reference');if(_0x4d4171[_0x2d153f(0x215)]['isSelectable']&&!_0x4d4171[_0x2d153f(0x215)]['isSelectable'](_0x502a11))return;_0x4d4171[_0x2d153f(0x2a7)][_0x2d153f(0x252)](_0x2d153f(0x2d9),_0x502a11);const _0x129e76=((_0x119744=_0x502a11[_0x2d153f(0x295)])===null||_0x119744===void 0x0?void 0x0:_0x119744[_0x2d153f(0x23f)])||((_0x3ea446=_0x502a11[_0x2d153f(0x255)])===null||_0x3ea446===void 0x0?void 0x0:_0x3ea446[_0x2d153f(0x2d4)])||_0x502a11[_0x2d153f(0x28e)][_0x2d153f(0x226)](),_0x535fe6='['+_0x129e76+']('+_0x58e4e3+')';_0x4d4171['$input'][_0x2d153f(0x2c6)](_0x535fe6),_0x4d4171[_0x2d153f(0x2a7)][_0x2d153f(0x290)](_0x2d153f(0x222)),_0x4d4171[_0x2d153f(0x282)][_0x2d153f(0x2aa)]();}}),_0x4d4171[_0x32066f(0x21f)]['on']('click','li',function(_0x25651f){const _0x9d384a=_0x32066f;_0x25651f[_0x9d384a(0x2da)]();let _0x3a91aa=$(this);_0x753eb3(_0x3a91aa,_0x25651f)&&_0x26bf7e(_0x3a91aa),_0x1b8b11(_0x4d4171,_0x3a91aa);}),$(document)['on'](_0x32066f(0x2c8),function(_0xb66b4b){const _0x494420=_0x32066f;!$(_0xb66b4b[_0x494420(0x2b2)])[_0x494420(0x225)](_0x4d4171[_0x494420(0x296)])[_0x494420(0x289)]&&_0x4d4171[_0x494420(0x282)][_0x494420(0x2aa)]();});}});},_0x1ff060=()=>{const _0x14e4e5=_0x3f329f,_0x1e0151=$(_0x14e4e5(0x24c)),_0x1cc6d5=_0x1e0151[_0x14e4e5(0x2c6)](),_0x4c1ec7=RED[_0x14e4e5(0x202)][_0x14e4e5(0x254)](_0x1cc6d5);if(!_0x4c1ec7)return undefined;const {endpoint:_0xdd79,securityMode:_0x1285cc,securityPolicy:_0x406f09,userIdentityType:_0x1fc79d,credentials:_0x13a63f}=_0x4c1ec7,_0x3d29b4={'endpoint':_0xdd79,'securityMode':_0x1285cc,'securityPolicy':_0x406f09,'userIdentityType':_0x1fc79d,'credentials':_0x13a63f};return _0x3d29b4;},_0xb0abbf=()=>{return{'endpointNode':_0x365d6e};},_0x365d6e=()=>{const _0x276287=$('#node-input-endpoint'),_0x25a5bb=_0x276287['val'](),_0x1d1eca=_0x1ff060();if(!_0x1d1eca)return undefined;return{'id':_0x25a5bb};};RED[_0x3f329f(0x202)][_0x3f329f(0x23e)](_0x3f329f(0x233),{'category':_0x3f329f(0x269),'color':_0x3f329f(0x2cf),'align':_0x3f329f(0x26a),'icon':_0x3f329f(0x2a6),'paletteLabel':_0x3f329f(0x251),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x3f329f(0x2cc)},'historyReadParam':{'value':{'type':_0x3f329f(0x274),'endTime':'1m\x20ago','startTime':_0x3f329f(0x28c),'numValuesPerNode':0x64,'returnBounds':!![]},'required':!![],'validate':_0x24f9e9=>{if(_0x24f9e9==='')return![];return!![];}},'nodeId':{'value':'','required':![]},'outputType':{'value':'Value','required':!![]}},'outputs':0x2,'label'(){return this['name']||'OPCUA\x20Client\x20HistoryRead';},'labelStyle'(){const _0x4e57f1=_0x3f329f;return this[_0x4e57f1(0x2d4)]?_0x4e57f1(0x25b):'';},'oneditprepare'(){const _0x14ac85=_0x3f329f,_0x280777=this;_0x2f4ad4(),_0x280777[_0x14ac85(0x264)]=0x1;const _0x15cfa4=$('#node-input-nodeId');_0x15cfa4[_0x14ac85(0x220)](Object['assign'](Object[_0x14ac85(0x2c2)]({},_0xb0abbf()),{'isSelectable'(_0x45d1e2){const _0x37fac7=_0x14ac85;return _0x45d1e2[_0x37fac7(0x2d0)]===_0x37fac7(0x1fc);}})),$(_0x14ac85(0x216))[_0x14ac85(0x2c6)](_0x280777[_0x14ac85(0x2cd)][_0x14ac85(0x29a)]);switch(_0x280777[_0x14ac85(0x2cd)][_0x14ac85(0x29a)]){case'raw':$('#node-input-raw-startTime')[_0x14ac85(0x2c6)](_0x280777['historyReadParam']['startTime']),$('#node-input-raw-endTime')[_0x14ac85(0x2c6)](_0x280777['historyReadParam'][_0x14ac85(0x243)]),$(_0x14ac85(0x299))[_0x14ac85(0x2c6)](_0x280777[_0x14ac85(0x2cd)][_0x14ac85(0x224)]),$(_0x14ac85(0x22f))['prop']('checked',_0x280777[_0x14ac85(0x2cd)]['returnBounds']);break;case _0x14ac85(0x1f9):$(_0x14ac85(0x249))['val'](_0x280777[_0x14ac85(0x2cd)][_0x14ac85(0x2bd)]),$('#node-input-modified-endTime')[_0x14ac85(0x2c6)](_0x280777[_0x14ac85(0x2cd)]['endTime']),$('#node-input-modified-numValuesPerNode')['val'](_0x280777[_0x14ac85(0x2cd)][_0x14ac85(0x224)]),$('#node-input-modified-returnBounds')[_0x14ac85(0x283)](_0x14ac85(0x246),_0x280777[_0x14ac85(0x2cd)]['returnBounds']);break;case _0x14ac85(0x29d):_0x280777['historyReadParam'][_0x14ac85(0x1f1)]=_0x280777[_0x14ac85(0x2cd)][_0x14ac85(0x1f1)]||{},$(_0x14ac85(0x2bc))[_0x14ac85(0x2c6)](_0x280777[_0x14ac85(0x2cd)][_0x14ac85(0x2bd)]),$('#node-input-processed-details-endTime')['val'](_0x280777[_0x14ac85(0x2cd)][_0x14ac85(0x243)]),$(_0x14ac85(0x20d))[_0x14ac85(0x2c6)](_0x280777[_0x14ac85(0x2cd)][_0x14ac85(0x2a0)]),$('#node-input-processed-details-aggregateType')['val'](_0x280777['historyReadParam'][_0x14ac85(0x1f6)]),$(_0x14ac85(0x2c5))[_0x14ac85(0x283)](_0x14ac85(0x246),_0x280777[_0x14ac85(0x2cd)]['aggregateConfiguration'][_0x14ac85(0x2a1)]),$(_0x14ac85(0x2ab))[_0x14ac85(0x283)]('checked',_0x280777[_0x14ac85(0x2cd)][_0x14ac85(0x1f1)][_0x14ac85(0x273)]),$('#node-input-processed-details-aggregateConfiguration-percentDataBad')['val'](_0x280777[_0x14ac85(0x2cd)][_0x14ac85(0x1f1)][_0x14ac85(0x28d)]),$(_0x14ac85(0x275))[_0x14ac85(0x2c6)](_0x280777['historyReadParam'][_0x14ac85(0x1f1)][_0x14ac85(0x210)]),$(_0x14ac85(0x1fa))['prop'](_0x14ac85(0x246),_0x280777[_0x14ac85(0x2cd)][_0x14ac85(0x1f1)]['useSlopedExtrapolation']);break;}{function _0x2dc6be(){const _0x4450d3=_0x14ac85;$(_0x4450d3(0x293))[_0x4450d3(0x2aa)](),$(_0x4450d3(0x22b))['hide'](),$('#section-processed-details')[_0x4450d3(0x2aa)](),$(_0x4450d3(0x214))['hide'](),$(_0x4450d3(0x25a))[_0x4450d3(0x2aa)](),$(_0x4450d3(0x232))['hide']();}function _0x32eb1a(){const _0x573ef8=_0x14ac85;_0x2dc6be();var _0xc0d15=$('#select-history-type')['val']();$(_0x573ef8(0x217)+_0xc0d15)[_0x573ef8(0x29c)]();}$(_0x14ac85(0x216))['on'](_0x14ac85(0x222),_0x32eb1a),_0x32eb1a();}},'oneditsave'(){const _0x2b26f8=_0x3f329f,_0x187dad=_0x3f4ba8=>_0x3f4ba8['val']()==undefined?'':_0x3f4ba8[_0x2b26f8(0x2c6)]()[_0x2b26f8(0x226)](),_0x5c9381=_0x29bd10=>_0x29bd10['val']()==undefined?0x0:_0x29bd10[_0x2b26f8(0x2c6)](),_0x491e60=$(_0x2b26f8(0x216))[_0x2b26f8(0x2c6)]();switch(_0x491e60){case _0x2b26f8(0x274):this[_0x2b26f8(0x2cd)]={'type':_0x2b26f8(0x274),'startTime':_0x187dad($(_0x2b26f8(0x23c))),'endTime':_0x187dad($(_0x2b26f8(0x2b5))),'numValuesPerNode':_0x5c9381($(_0x2b26f8(0x299))),'returnBounds':$('#node-input-returnBounds')[_0x2b26f8(0x283)](_0x2b26f8(0x246))};break;case _0x2b26f8(0x1f9):this['historyReadParam']={'type':_0x2b26f8(0x1f9),'startTime':_0x187dad($(_0x2b26f8(0x249))),'endTime':_0x187dad($(_0x2b26f8(0x237))),'numValuesPerNode':_0x5c9381($(_0x2b26f8(0x245))),'returnBounds':$(_0x2b26f8(0x2d8))[_0x2b26f8(0x283)]('checked')};break;case _0x2b26f8(0x29d):this['historyReadParam']={'type':'processed-details','startTime':_0x187dad($(_0x2b26f8(0x2bc))),'endTime':_0x187dad($('#node-input-processed-details-endTime')),'processingInterval':_0x5c9381($(_0x2b26f8(0x20d))),'aggregateType':_0x187dad($('#node-input-processed-details-aggregateType')),'aggregateConfiguration':{'useServerCapabilitiesDefaults':$('#node-input-processed-details-aggregateConfiguration-useServerCapabilitiesDefaults')[_0x2b26f8(0x283)](_0x2b26f8(0x246)),'treatUncertainAsBad':$(_0x2b26f8(0x2ab))[_0x2b26f8(0x283)]('checked'),'percentDataBad':_0x5c9381($(_0x2b26f8(0x259))),'percentDataGood':_0x5c9381($(_0x2b26f8(0x275))),'useSlopedExtrapolation':$(_0x2b26f8(0x1fa))['prop'](_0x2b26f8(0x246))}};break;}}});}()));function _0x4118(_0x142d7f,_0x2c6997){const _0x1fcd80=_0x1fcd();return _0x4118=function(_0x4118d5,_0x2634b3){_0x4118d5=_0x4118d5-0x1f1;let _0x3f8821=_0x1fcd80[_0x4118d5];return _0x3f8821;},_0x4118(_0x142d7f,_0x2c6997);}function _0x1fcd(){const _0x5c76c8=['OpcUa-Client2-HistoryRead','NodeClass','DarkOrange','Good','#node-input-modified-endTime','filter','ns=0;i=61','fetching\x20failed\x20with\x20error','statusText','#node-input-raw-startTime','BrowseName','registerType','text','append','</li>','Forward','endTime','references','#node-input-modified-numValuesPerNode','checked','input-group','ReferenceType','#node-input-modified-startTime','65494GqAhSX','expandable','#node-input-endpoint','ns=0;i=35','i=61','<li\x20key=\x22','already\x20fetched','read-history','data','$verifyBtn','node','browseName','position','<div/>','left','#node-input-processed-details-aggregateConfiguration-percentDataBad','#section-annotation-data','node_label_italic','Object',';\x22></i>\x20','TypeDefinition','/checkNodeId','SteelBlue','toggleClass','Both','endpoint','inputs','POST','toggle','SuppressedError','top','opcua','right','rgba(61,\x2060,\x204,\x200.525)','resolveParentNode','Inverse','8bCjPlU','HasChild','currentParent','status','verify','treatUncertainAsBad','raw','#node-input-processed-details-aggregateConfiguration-percentDataGood','failure','statusCode','SandyBrown','li\x20>\x20.tree-text','json','dblclick','2143477mNYGbk','fa-object-group','element','DataType','application/json','fetched','$dropdown','prop','log','SeaGreen','call','find','pageX','length','fa-list-alt','CadetBlue','11m\x20ago','percentDataBad','nodeId','Invalid','trigger','Unspecified','ns=0;i=45','#section-raw','height','displayName','$combo',':first','isTypeRef','#node-input-raw-numValuesPerNode','type','opc.tcp://opcuademo.sterfive.com:26543','show','processed-details','Method','attr','processingInterval','useServerCapabilitiesDefaults','HasProperty','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','HasSubtype','fa-cog','../../icons/opcuanodeLogo.png','$input','endpointNode','nodeIds','hide','#node-input-processed-details-aggregateConfiguration-treatUncertainAsBad','error','reset','message','$info','270378CYdxIE','nodeAddressString','target','fa-text-width','VariableType','#node-input-raw-endTime','DisplayName','<div\x20class=\x22info-text\x22></div>','browseResult','/browse','132DIlLlN','fa-question','#node-input-processed-details-startTime','startTime','expanded','43467lGwnow','Organizes','ns=0;i=85','assign','referenceTypeId','$toggleTreeBtn','#node-input-processed-details-aggregateConfiguration-useServerCapabilitiesDefaults','val','<li>error\x20','click','14aFGKzC','HasComponent','sterfive-info','OpcUa-Endpoint2','historyReadParam','placeholder','#C0DEED','nodeClass','stringify','2085FxAmGc','remove','name','HasTypeDefinition','$inputGroup','parentNode','#node-input-modified-returnBounds','reference','stopPropagation','aggregateConfiguration','DodgerBlue','.spinner','baseUrl','/opcua-endpoint2','aggregateType','__parentNode','removeClass','modified','#node-input-processed-details-aggregateConfiguration-useSlopedExtrapolation','183404ELVkTC','Variable','sterfive-dropdown','done','fa-sliders','replaceWith','err','nodes','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','pageY','addClass','function','match','hasClass','ns=0;i=40','IsForward','ns=0;i=47','empty','#node-input-processed-details-processingInterval','then','sterfive.nodeBrowser','percentDataGood','><i\x20class=\x22fa\x20','!!failure!!','.tree-text:first','#section-at-time','options','#select-history-type','#section-','ns=0;i=46','already\x20loading','fa-folder','<div\x20class=\x22spinner\x22></div>','selected','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','26330uzlxjm','$tree','nodeBrowser','View','change','expandable\x20expanded','numValuesPerNode','closest','toString','\x22}><span\x20class=\x22tree-text\x22\x20title=','next','ObjectType','Objects','#section-modified','value','typeDefinition','loading','#node-input-returnBounds','</span><ul></ul></li>','children','#section-event'];_0x1fcd=function(){return _0x5c76c8;};return _0x1fcd();}
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg0NTI0ZDMiLCJfMHgzMDZmMmMiLCJfMHgxYzA1MmYiLCJfMHhhMjExODUiLCJfMHgzNDdkOTAiLCJfMHgxNTcyM2UiLCJfMHgzODZiNGEiLCJfMHgyYTYxZTUiLCJQcm9taXNlIiwiXzB4ZGYxZmQ4IiwiXzB4MTU4MjUxIiwiXzB4NWM3MGMxIiwiXzB4MjAzOWMwIiwiXzB4M2RiMjIwIiwiXzB4YzI2N2FmIiwiXzB4NTQwNGU0IiwiXzB4MmI1MjdkIiwiXzB4MTA4NDVlIiwiXzB4MTY3YTI5IiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4M2E4YzRiIiwiXzB4NDA2YWZiIiwiXzB4NTcxYWQ2IiwiXzB4NGUwYzJhIiwiRXJyb3IiLCJfMHgxNTQzOGEiLCJfMHg3NjRmM2UiLCJfMHgzMTdjYjgiLCJfMHhhYmMyMDkiLCJfMHgxNGNmZTgiLCJfMHhmY2Q2MzAiLCJfMHg1ZTE3ZGMiLCJfMHg1NzczNWMiLCJfMHgyYWQyNmUiLCJfMHhmZGMxYWQiLCJfMHhhMGNiYzMiLCJfMHg1ZWRmYjkiLCJfMHg1NDg5MTAiLCJfMHgxMTE3NTQiLCJfMHg1NTg2MGMiLCJfMHgyMWU1YmQiLCJfMHg0NDcyZDkiLCJfMHgyODljODUiLCJfMHgxODYzMmEiLCJfMHgxOTk2YmMiLCJfMHgxN2QzOGMiLCJfMHgyNGM5NGIiLCJfMHhmNDM3ODAiLCJlbmRwb2ludE5vZGUiLCJfMHgzZmQxNTUiLCJlbmRwb2ludCIsIl8weDQwZTMwZCIsImJhc2VVcmwiLCJfMHg1NzYyODYiLCJfMHhlNmI5YjAiLCJfMHgzYTIzMjgiLCJfMHgzODI0YzYiLCJfMHg0MzkyZDciLCJfMHg0ZmU0NGIiLCJPYmplY3QiLCJfMHg1YjE3ZmEiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4NTdmZTAyIiwiXzB4MTk2ZmUwIiwiXzB4MWM2NDc4IiwiXzB4NWY1NmE0IiwiXzB4M2Q4Yzg5IiwiXzB4MjE1YzZmIiwiXzB4NTRhYzc1IiwiXzB4MzJjNDE1IiwiXzB4NDA1OTZlIiwiXzB4MjVhZDBlIiwibm9kZUlkIiwiXzB4MjAwNjc5Iiwicm9vdE5vZGVJZCIsIl8weDViODNiYiIsImlzVHlwZSIsIl8weDI4M2MzZCIsIl8weDExNDBlOSIsIl8weDVhNjIwYyIsIl8weDM0MDliYiIsIl8weDUyZTBhYiIsIl8weDFmMjVhZiIsIl8weDM3ZjgzZiIsIl8weDE1ZmNlMSIsIl8weDRlMDU1MSIsIl8weDUwZjIyYSIsIl8weDRkZGMxYSIsIl8weDRmZWMyZSIsIl8weDJkZWUwNSIsIl8weGVhNDA5YiIsIl8weDQxMDE2MSIsIl8weDhkOGZmIiwiXzB4MTRhYjExIiwiXzB4MzZkOTJiIiwiXzB4OGY0ODFhIiwiXzB4NGY0YTQzIiwiXzB4MThlOTljIiwic2V0VGltZW91dCIsIl8weDNhY2Q4OSIsIl8weDJhZmJkNyIsIl8weDMzNTEwNSIsIl8weGQ5NDQ3YyIsIl8weDFjMDQ2ZiIsIl8weDQ0MzFjYyIsIl8weDM1ZjcxNyIsIl8weDQ3MTc0NiIsIl8weDQ4ZGYyNyIsIl8weDQ4ODhkYSIsIl8weDEyMTAwOSIsIl8weDE4ZWQ0NSIsIl8weDU4Njg1ZSIsIl8weGViYTA4MCIsIl8weDMwOWY3OCIsIl8weDRmZWY4MSIsIl8weDU2MzZmZCIsIl8weDI4MzE4YSIsIl8weDNmMGIwYyIsIl8weDFkMzYxMSIsIiQiLCJfMHgyZmU1ZmYiLCJfMHgzNjMyYjYiLCJpY29uIiwiXzB4MWJjODVkIiwiY29sb3IiLCJfMHgzYTUzZDkiLCJfMHgzZGI4MWMiLCJfMHg1YWUxMDMiLCJfMHgxNDE4MWIiLCJfMHg1ZjNmNWIiLCJfMHgyYjBlMmQiLCJfMHgxYjhiMTEiLCJfMHgxZGIxMWIiLCJfMHgyNTgzODYiLCJfMHgyODhiMGYiLCJfMHg4ZmU0ZTciLCJfMHg0OGI2YjkiLCJfMHg0ZjRjMGMiLCJfMHhiOWQzNDAiLCJfMHgxMDMzYzAiLCJfMHgyNGQ3MjYiLCJfMHgxM2EzZDEiLCJfMHgyYjllMWQiLCJfMHg0ZjBmMmQiLCJfMHg1NWNhMWYiLCJfMHgyMmYxM2MiLCJfMHg0Zjc5MGYiLCJfMHg0YzkwNWEiLCJ1bmRlZmluZWQiLCJfMHg1MDRjMjkiLCJfMHg1ZTcyNjMiLCJfMHg3OTE1NTUiLCJfMHg1ZDdlN2UiLCJfMHgyNWQ4ZDciLCJfMHgzZTQ3MTYiLCJfMHgyZjE5NjciLCJfMHg0NGNiZmEiLCJfMHgxYjcyZDMiLCJfMHgzYjY0MzAiLCJfMHgxYWNlM2YiLCJfMHgxNDBmNzMiLCJfMHg0NDRiOTAiLCJfMHhlMzEyZmMiLCJyZWZlcmVuY2VzIiwiXzB4MjU5YmUwIiwiXzB4MjY4ZWJkIiwiXzB4MWIzOTJlIiwiXzB4YWI5NDI4IiwiXzB4NTExMDFiIiwiXzB4NDUzOWMzIiwiXzB4NDU1NTAwIiwiXzB4NDg3MTZhIiwiXzB4MmUyYTcwIiwiXzB4ZDhlNDc5IiwiXzB4NDQ0YTQ1IiwiXzB4MmY0YWQ0IiwiXzB4MmI2Y2I3IiwiXzB4NTYwYWNhIiwiXzB4NGY1YTQ1IiwiXzB4MzkzMDI3IiwiXzB4MTM3NjJhIiwiXzB4MTNhMDg4IiwiXzB4NWYwNWI4IiwiXzB4MTFmZGExIiwiXzB4YzFkYzE5IiwiXzB4NGQ0MTcxIiwiXzB4NjdkMjgzIiwiXzB4MzQ1NThjIiwiXzB4MWFiNzBiIiwiXzB4NzUzZWIzIiwiXzB4MTliMTE3IiwiXzB4NTdjZmI1IiwiXzB4MWI2OGUyIiwiXzB4MjM3ZjgyIiwiXzB4MTJhMzYyIiwiXzB4NDRiYjJkIiwiXzB4MjZiZjdlIiwiXzB4YzkyMWIyIiwiXzB4MzA0NmIiLCJfMHgxMTk3NDQiLCJfMHgzZWE0NDYiLCJfMHgxOGExOGYiLCJfMHg1OGU0ZTMiLCJfMHg1MDJhMTEiLCJfMHgxMjllNzYiLCJfMHg1MzVmZTYiLCJfMHgyNTY1MWYiLCJfMHgzYTkxYWEiLCJkb2N1bWVudCIsIl8weGI2NmI0YiIsIl8weDFmZjA2MCIsIl8weDFlMDE1MSIsIl8weDFjYzZkNSIsIl8weDRjMWVjNyIsIlJFRCIsIl8weGRkNzkiLCJzZWN1cml0eU1vZGUiLCJfMHgxMjg1Y2MiLCJzZWN1cml0eVBvbGljeSIsIl8weDQwNmYwOSIsInVzZXJJZGVudGl0eVR5cGUiLCJfMHgxZmM3OWQiLCJjcmVkZW50aWFscyIsIl8weDEzYTYzZiIsIl8weDNkMjliNCIsIl8weGIwYWJiZiIsIl8weDM2NWQ2ZSIsIl8weDI3NjI4NyIsIl8weDI1YTViYiIsIl8weDFkMWVjYSIsIl8weDI0ZjllOSIsIl8weDI4MDc3NyIsIl8weDE1Y2ZhNCIsIl8weDQ1ZDFlMiIsIl8weDJkYzZiZSIsIl8weDMyZWIxYSIsIl8weGMwZDE1IiwiXzB4MTg3ZGFkIiwiXzB4M2Y0YmE4IiwiXzB4NWM5MzgxIiwiXzB4MjliZDEwIiwiXzB4NDkxZTYwIl0sIm1hcHBpbmdzIjoiMGtCQUFBLENBQUMsVSxDQUNHLGEsd0JBbUJBLFNBQVNBLFNBQVQsQ0FBbUJDLFNBQW5CLENBQTRCQyxTQUE1QixDQUF3Q0MsU0FBeEMsQ0FBMkNDLFNBQTNDLEMsQ0FDSSxTQUFTQyxTQUFULENBQWVDLFNBQWYsQyxRQUErQkEsU0FBQSxZQUFpQkgsU0FBakIsQ0FBcUJHLFNBQXJCLENBQTZCLElBQUlILFNBQUosQ0FBTSxTQUFVSSxTQUFWLEMsQ0FBcUJBLFNBQUEsQ0FBUUQsU0FBUixDLEVBQTNCLEMsU0FDckQsR0FBSyxDQUFBSCxTQUFBLEVBQU0sQ0FBQUEsU0FBQSxDQUFJSyxPQUFKLENBQU4sQ0FBTCxDQUF5QixTQUFVQyxTQUFWLENBQW1CQyxTQUFuQixDLHlCQUM1QixTQUFTQyxTQUFULENBQW1CQyxTQUFuQixDLENBQTRCLEcsQ0FBTUMsU0FBQSxDQUFLVCxTQUFBLEMsTUFBQSxFQUFlUSxTQUFmLENBQUwsQyxFQUErQixNQUFPRSxTQUFQLEMsQ0FBWUosU0FBQSxDQUFPSSxTQUFQLEMsR0FDN0UsU0FBU0MsU0FBVCxDQUFrQkMsU0FBbEIsQyxDQUEyQixHLENBQU1ILFNBQUEsQ0FBS1QsU0FBQSxDLE9BQUEsRUFBbUJZLFNBQW5CLENBQUwsQyxFQUFtQyxNQUFPQyxTQUFQLEMsQ0FBWVAsU0FBQSxDQUFPTyxTQUFQLEMsR0FDaEYsU0FBU0osU0FBVCxDQUFjSyxTQUFkLEMseUJBQXdCQSxTQUFBLEMsZ0JBQUEsRUFBY1QsU0FB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Q0FBY3hILENBQUEsQyxnQkFBQSxDQUFkLENBSkEsQyxlQUtwQixDQUFlc0gsU0FBQSxDQUFZdEgsQ0FBQSxDLDZDQUFBLENBQVosQ0FMSyxDLHdCQU1wQixDQUF3QixDLCtCQUNwQixDQUErQkEsQ0FBQSxDLG9GQUFBLEUsZ0JBQUEsRSxnQkFBQSxDQURYLEMscUJBRXBCLENBQXFCQSxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLFNBQUEsQ0FGRCxDLGdCQUdwQixDQUFnQndILFNBQUEsQ0FBY3hILENBQUEsQyxnQkFBQSxDQUFkLENBSEksQyxpQkFJcEIsQ0FBaUJ3SCxTQUFBLENBQWN4SCxDQUFBLEMsZ0JBQUEsQ0FBZCxDQUpHLEMsd0JBS3BCLENBQXdCQSxDQUFBLEMsZ0JBQUEsRSxNQUFBLEUsZ0JBQUEsQ0FMSixDQU5KLENBQXhCLENBY0EsTUFsQ1IsQyxDQXBHNEMsQ0FBcEQsQyxFQXhtQkosRyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIGNvbnN0IE9yZ2FuaXplc1JlZk5vZGVJZCA9IFwibnM9MDtpPTM1XCI7XG4gICAgY29uc3QgRm9sZGVyVHlwZSA9IFwibnM9MDtpPTYxXCI7XG4gICAgY29uc3QgSGFzQ29tcG9uZW50UmVmTm9kZUlkID0gXCJucz0wO2k9NDdcIjtcbiAgICBjb25zdCBIYXNQcm9wZXJ0eVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ2XCI7XG4gICAgY29uc3QgSGFzQ2hpbGRSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNFwiO1xuICAgIGNvbnN0IEhhc1N1YnR5cGVSZWZOb2RlSWQgPSBcIm5zPTA7aT00NVwiO1xuICAgIGNvbnN0IEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkID0gXCJucz0wO2k9NDBcIjtcblxuICAgIHZhciBCcm93c2VEaXJlY3Rpb247XG4gICAgKGZ1bmN0aW9uIChCcm93c2VEaXJlY3Rpb24pIHtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkZvcndhcmRcIl0gPSAwXSA9IFwiRm9yd2FyZFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52ZXJzZVwiXSA9IDFdID0gXCJJbnZlcnNlXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJCb3RoXCJdID0gMl0gPSBcIkJvdGhcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmFsaWRcIl0gPSAzXSA9IFwiSW52YWxpZFwiO1xuICAgIH0pKEJyb3dzZURpcmVjdGlvbiB8fCAoQnJvd3NlRGlyZWN0aW9uID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzKSB7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJVbnNwZWNpZmllZFwiXSA9IDBdID0gXCJVbnNwZWNpZmllZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3MgfHwgKE5vZGVDbGFzcyA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzc01hc2s7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3NNYXNrKSB7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3NNYXNrIHx8IChOb2RlQ2xhc3NNYXNrID0ge30pKTtcbiAgICB2YXIgUmVzdWx0TWFzaztcbiAgICAoZnVuY3Rpb24gKFJlc3VsdE1hc2spIHtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDFdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIklzRm9yd2FyZFwiXSA9IDJdID0gXCJJc0ZvcndhcmRcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiTm9kZUNsYXNzXCJdID0gNF0gPSBcIk5vZGVDbGFzc1wiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJCcm93c2VOYW1lXCJdID0gOF0gPSBcIkJyb3dzZU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiRGlzcGxheU5hbWVcIl0gPSAxNl0gPSBcIkRpc3BsYXlOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlR5cGVEZWZpbml0aW9uXCJdID0gMzJdID0gXCJUeXBlRGVmaW5pdGlvblwiO1xuICAgIH0pKFJlc3VsdE1hc2sgfHwgKFJlc3VsdE1hc2sgPSB7fSkpO1xuICAgIC8vICBjb25zdCBxID0gUmVmZXJlbmNlVHlwZUlkcy5Pcmdhbml6ZXM7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZU5vZGVJZChub2RlSWRMaWtlKSB7XG4gICAgICAgIHN3aXRjaCAobm9kZUlkTGlrZSkge1xuICAgICAgICAgICAgY2FzZSBcIk9yZ2FuaXplc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBPcmdhbml6ZXNSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzUHJvcGVydHlcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzUHJvcGVydHlSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ29tcG9uZW50XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NvbXBvbmVudFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDaGlsZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDaGlsZFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNTdWJ0eXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1N1YnR5cGVSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzVHlwZURlZmluaXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBnZXRJY29uID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHJlZmVyZW5jZS5ub2RlQ2xhc3MpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gT3JnYW5pemVzUmVmTm9kZUlkKSA7XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS50eXBlRGVmaW5pdGlvbiA9PT0gRm9sZGVyVHlwZSB8fCByZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBcImk9NjFcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWZvbGRlclwiLCBjb2xvcjogXCJyZ2JhKDYxLCA2MCwgNCwgMC41MjUpXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiU2VhR3JlZW5cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlXCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc0NvbXBvbmVudFJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIlN0ZWVsQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc1Byb3BlcnR5UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiRG9kZ2VyQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcIk1ldGhvZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtY29nXCIsIGNvbG9yOiBcIlNhbmR5QnJvd25cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXNsaWRlcnNcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiRGF0YVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXRleHQtd2lkdGhcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoX2EsIG5vZGVJZF8xLCB0ZW1wbGF0ZV8xKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIG5vZGVJZF8xLCB0ZW1wbGF0ZV8xXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQsIHRlbXBsYXRlKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9icm93c2VgO1xuICAgICAgICBjb25zdCBicm93c2VEZXNjcmlwdGlvbiA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGVtcGxhdGUpLCB7IG5vZGVJZCwgcmVzdWx0TWFzazogNjMgfSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGJyb3dzZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXM6IFtdIH07XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJicm93c2UgZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB3YWxrQmFja3dhcmQgPSAoX2EsIF9iKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIF9iXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCB7IG5vZGVJZCwgcm9vdE5vZGVJZCwgaXNUeXBlIH0pIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L3dhbGstYmFja3dhcmRgO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICAgICAgcm9vdE5vZGVJZCxcbiAgICAgICAgICAgICAgICBpc1R5cGUsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBqc29uID0gKHlpZWxkIGRhdGEuanNvbigpKTtcbiAgICAgICAgcmV0dXJuIGpzb24uYnJvd3NlUGF0aDtcbiAgICB9KTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9IChfYSwgJGlucHV0RWxlbWVudF8xLCAkaW5mb18xKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsICRpbnB1dEVsZW1lbnRfMSwgJGluZm9fMV0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgJGlucHV0RWxlbWVudCwgJGluZm8pIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2NoZWNrTm9kZUlkYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2Q7XG4gICAgICAgIGlmICghcmVmZXJlbmNlIHx8ICFyZWZlcmVuY2Uubm9kZUlkKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCB0aXRsZSA9IGAoJHtyZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCl9KSAkeygoX2MgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLm5hbWUpIHx8ICgoX2QgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC50ZXh0KSB8fCBcIlwifWA7XG4gICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpIGtleT1cIiR7cmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpfVwifT48c3BhbiBjbGFzcz1cInRyZWUtdGV4dFwiIHRpdGxlPSR7dGl0bGV9PjxpIGNsYXNzPVwiZmEgJHtpY29ufVwiIHN0eWxlPVwiY29sb3I6JHtjb2xvcn07XCI+PC9pPiAke3R9PC9zcGFuPjx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKFwiZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInZhbHVlXCIsIG4pO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICB9O1xuICAgIGNvbnN0IGZpbmRFbGVtZW50ID0gKG5vZGVJZCwgJHRyZWUpID0+IHtcbiAgICAgICAgcmV0dXJuICR0cmVlLmZpbmQoYGxpW2tleT1cIiR7bm9kZUlkfVwiXWApO1xuICAgIH07XG4gICAgY29uc3Qgc2VsZWN0U2luZ2xlID0gKHRoYXQsICRsaSkgPT4ge1xuICAgICAgICB0aGF0LiR0cmVlLmZpbmQoXCJsaSA+IC50cmVlLXRleHRcIikucmVtb3ZlQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgICAgICAgLy8gY2xlYXIgYWxsIHNlbGVjdGVkIGl0ZW1zXG4gICAgICAgICRsaS5maW5kKFwiLnRyZWUtdGV4dDpmaXJzdFwiKS5hZGRDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgIH07XG4gICAgY29uc3QgYXV0b0V4cGFuZCA9ICh0aGF0LCBicm93c2VQYXRoLCAkdHJlZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIC8vIGV4cGFuZCB0aGUgdHJlZSB0byBzaG93IHRoZSBub2RlSWRcbiAgICAgICAgbGV0ICRjdXJyZW50ID0gJHRyZWUuY2hpbGRyZW4oXCI6Zmlyc3RcIik7XG4gICAgICAgIGJyb3dzZVBhdGgucmVsYXRpdmVQYXRoLmVsZW1lbnRzIHx8IFtdO1xuICAgICAgICBjb25zdCBub2RlSWRzID0gYnJvd3NlUGF0aC5ub2RlSWRzIHx8IFtdO1xuICAgICAgICBpZiAobm9kZUlkcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IG4gb2Ygbm9kZUlkcykge1xuICAgICAgICAgICAgaWYgKCRjdXJyZW50Lmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gZXhwYW5kIGFuZCBzZWxlY3QgdGhlIHJpZ2h0IGVsZW1lbnRcbiAgICAgICAgICAgICAgICB5aWVsZCBfZXhwYW5kTGkodGhhdCwgJGN1cnJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBmaW5kRWxlbWVudChuLCAkY3VycmVudCk7XG4gICAgICAgICAgICBpZiAoJGVsZW1lbnQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGN1cnJlbnQgPSAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBzZWxlY3RTaW5nbGUodGhhdCwgJGN1cnJlbnQpO1xuICAgICAgICBzY3JvbGxUb0xpKHRoYXQuJGRyb3Bkb3duLCAkY3VycmVudCk7XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gc2Nyb2xsVG9MaSgkY29udGFpbmVyLCAkdGFyZ2V0TGkpIHtcbiAgICAgICAgLy8gR2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgdGFyZ2V0IGl0ZW0gcmVsYXRpdmUgdG8gaXRzIGNvbnRhaW5lclxuICAgICAgICBjb25zdCBsaVBvcyA9ICR0YXJnZXRMaS5wb3NpdGlvbigpLnRvcDtcbiAgICAgICAgLy8gR2V0IHRoZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiBvZiB0aGUgY29udGFpbmVyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclNjcm9sbFRvcCA9ICRjb250YWluZXIuc2Nyb2xsVG9wKCk7XG4gICAgICAgIGlmIChjb250YWluZXJTY3JvbGxUb3AgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBwb3NpdGlvbiB0byBzY3JvbGwgdG8gKGN1cnJlbnQgc2Nyb2xsICsgaXRlbSdzIHBvc2l0aW9uKVxuICAgICAgICAvLyBBZGp1c3QgdGhpcyBjYWxjdWxhdGlvbiBiYXNlZCBvbiB5b3VyIG5lZWRzXG4gICAgICAgIGNvbnN0IHNjcm9sbFRvID0gY29udGFpbmVyU2Nyb2xsVG9wICsgbGlQb3MgLSAkY29udGFpbmVyLmhlaWdodCgpIC8gMiArICR0YXJnZXRMaS5oZWlnaHQoKSAvIDI7XG4gICAgICAgIC8vIFNjcm9sbCB0aGUgY29udGFpbmVyIHRvIGVuc3VyZSB0aGUgaXRlbSBpcyB2aXNpYmxlXG4gICAgICAgICRjb250YWluZXIuYW5pbWF0ZSh7XG4gICAgICAgICAgICBzY3JvbGxUb3A6IHNjcm9sbFRvLFxuICAgICAgICB9LCA1MDApOyAvLyBBZGp1c3QgdGhlIGR1cmF0aW9uICg1MDBtcykgYXMgbmVlZGVkXG4gICAgfVxuICAgIGNvbnN0IHJlYWNoU2VsZWN0aW9uID0gKHRoYXQsIHBhcmVudE5vZGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBub2RlSWQgPSB0aGF0LiRpbnB1dC52YWwoKTtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIHJvb3ROb2RlSWQ6IHBhcmVudE5vZGUubm9kZUlkLFxuICAgICAgICAgICAgaXNUeXBlOiB0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmIHx8IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgIGNvbnN0IGJyb3dzZVBhdGggPSB5aWVsZCB3YWxrQmFja3dhcmQoZGF0YSwgb3B0aW9ucyk7XG4gICAgICAgIGlmICghYnJvd3NlUGF0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHlpZWxkIGF1dG9FeHBhbmQodGhhdCwgYnJvd3NlUGF0aCwgdGhhdC4kdHJlZSk7XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gX2ZldGNoRGF0YUZvck5vZGUodGhhdCwgJG5vZGUsIGZldGNoRnVuYywgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImxvYWRpbmdcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgbG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgICAgICAkbm9kZS5hcHBlbmQoJzxkaXYgY2xhc3M9XCJzcGlubmVyXCI+PC9kaXY+Jyk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHJlZmVyZW5jZXMgfSA9IHlpZWxkIGZldGNoRnVuYygkbm9kZSwgZGF0YSk7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCByZWZlcmVuY2Ugb2YgcmVmZXJlbmNlcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmZpbHRlciAmJiAhdGhhdC5vcHRpb25zLmZpbHRlcihyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKGA8bGk+ZXJyb3IgJHtlcnIubWVzc2FnZX08L2xpPmApO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbm9kZS5maW5kKFwiLnNwaW5uZXJcIikucmVtb3ZlKCk7XG4gICAgICAgICAgICAkbm9kZS5yZW1vdmVDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYWtlQ29ubmVjdGlvbih0aGF0KSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgICBmdW5jdGlvbiBfZXhwYW5kTGkodGhhdCwgJGxpKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgeWllbGQgX2ZldGNoRGF0YUZvck5vZGUodGhhdCwgJGxpLCBmLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbIFRlbXBlcmF0dXJlICBdXG4gICAgICAgICAqICAgKCB0b29sdGlwIDogKC9PYmplY3RzL015U2Vuc29yKSAobnM9MTtzPVRlbXBlcmF0dXJlKSlcbiAgICAgICAgICogWyArIFtGb2xkZXJdIE9iamVjdHNdXG4gICAgICAgICAqIFsgICAgIFtPYmplY3RdIE15U2Vuc29yXVxuICAgICAgICAgKiBbICAgICAoICkgW1ZhcmlhYmxlXSBUZW1wZXJhdHVyZV1cbiAgICAgICAgICovXG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUubm9kZUJyb3dzZXJcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZTogKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgbm9kZUNsYXNzOiBcIk9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBub2RlSWQ6IFwibnM9MDtpPTg1XCIsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIHR5cGVEZWZpbml0aW9uOiBGb2xkZXJUeXBlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgICAgIGlzVHlwZVJlZjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZVBhcmVudE5vZGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhhdC5fX3BhcmVudE5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdGhhdC5vcHRpb25zLnBhcmVudE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlLmNhbGwodGhhdCkgOiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlc2MgPSB5aWVsZCBhO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX19wYXJlbnROb2RlID0gZGVzYztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX19wYXJlbnROb2RlID0gYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhhdC5fX3BhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIC8vIGFsc28gcmVzZXQgcGFyZW50IG5vZGVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHRoYXQ7XG4gICAgICAgICAgICAgICAgICAgIGEuX19wYXJlbnROb2RlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSB5aWVsZCB0aGlzLnJlc29sdmVQYXJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jdXJyZW50UGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJpZnkoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbFZlcmlmeShkYXRhLCB0aGF0LiRpbnB1dCwgdGhhdC4kaW5mbyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmVlZFRvUmVhY2hTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRkcm9wZG93bi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJlZSB3aWRnZXQgaXMgZ29pbmcgdG8gYmVjb21lIHZpc2libGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnROb2RlID0geWllbGQgdGhhdC5yZXNvbHZlUGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnROb2RlICE9PSB0aGF0LmN1cnJlbnRQYXJlbnQgfHwgKChfYSA9IHRoYXQuY3VycmVudFBhcmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5vZGVJZCkgIT09IHBhcmVudE5vZGUubm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHRoYXQucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVlZFRvUmVhY2hTZWxlY3Rpb24gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZWVkVG9SZWFjaFNlbGVjdGlvbiAmJiAoeWllbGQgcmVhY2hTZWxlY3Rpb24odGhhdCwgcGFyZW50Tm9kZSkpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZmxhc2tcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdmVyaWZ5QnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNPbkxlZnRTaXplID0gKCRsaSwgZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkbGkub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBldmVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUucGFnZVggPj0gZWxlbWVudFBvcy5sZWZ0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VYIDw9IGVsZW1lbnRQb3MubGVmdCArIGJlZm9yZVdpZHRoICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZID49IGVsZW1lbnRQb3MudG9wICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZIDw9IGVsZW1lbnRQb3MudG9wICsgYmVmb3JlSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCB0b2dnbGVFeHBhbnNpb24gPSAoJGxpKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfZXhwYW5kTGkodGhhdCwgJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSA7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImRibGNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICRsaS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWZlcmVuY2UgPSAkbGkuZGF0YShcInJlZmVyZW5jZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlICYmICF0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5TmFtZSA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dCA9IGBbJHtkaXNwbGF5TmFtZX1dKCR7dmFsdWV9KWA7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC52YWwoaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc09uTGVmdFNpemUoJGxpLCBldmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZUV4cGFuc2lvbigkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdFNpbmdsZSh0aGF0LCAkbGkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG91dHNpZGUgdGhlIHBhZ2Ugd2lsbCBoaWRlIHRoZSBkcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHRoYXQuJGNvbWJvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGdldEVuZFBvaW50QXR0cmlidXRlcyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCByZWROb2RlID0gUkVELm5vZGVzLm5vZGUoZW5kcG9pbnRJZCk7XG4gICAgICAgIGlmICghcmVkTm9kZSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIC8vIGNvbnN0IGNyZWRlbnRpYWxzID0gUkVELihlbmRwb2ludElkKTtcbiAgICAgICAgLy8gd2UgbmVlZCB0byBzYW5pdGl6ZSBhbmQgZXh0cmFjdCB0aGUgZW5kcG9pbnQgYXR0cmlidXRlcyBvbmx5ICggbm90IHRoZSBub2RlLXJlZCBzdHVmZilcbiAgICAgICAgY29uc3QgeyBlbmRwb2ludCwgc2VjdXJpdHlNb2RlLCBzZWN1cml0eVBvbGljeSwgdXNlcklkZW50aXR5VHlwZSwgY3JlZGVudGlhbHMgfSA9IHJlZE5vZGU7XG4gICAgICAgIGNvbnN0IHJldFZhbHVlID0ge1xuICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICBzZWN1cml0eU1vZGUsXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICBjcmVkZW50aWFscyxcbiAgICAgICAgfTtcbiAgICAgICAgLy8geHggY29uc29sZS5sb2coXCJ4eHhcIiwgcmV0VmFsdWUpO1xuICAgICAgICByZXR1cm4gcmV0VmFsdWU7XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBnZXRFbmRwb2ludFBhcmFtZXRlcnMsXG4gICAgICAgIH07XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnROciA9IGdldEVuZFBvaW50QXR0cmlidXRlcygpO1xuICAgICAgICBpZiAoIWVuZHBvaW50TnIpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkOiBlbmRwb2ludElkLFxuICAgICAgICAgICAgLy8gZW5kcG9pbnQ6IGVuZHBvaW50TnIuZW5kcG9pbnQsXG4gICAgICAgICAgICAvLyBzZWN1cml0eU1vZGU6IGVuZHBvaW50TnIuc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgLy8gc2VjdXJpdHlQb2xpY3k6IGVuZHBvaW50TnIuc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gdXNlcklkZW50aXR5VHlwZTogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgLy8gY3JlZGVudGlhbDogZW5kcG9pbnROci5jcmVkZW50aWFscyxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyB1c2VyTmFtZTogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJOYW1lIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgLy8gcGFzc3dvcmQ6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci5jcmVkZW50aWFscy5wYXNzd29yZCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC8vIHVzZXJDZXJ0aWZpY2F0ZTogZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyQ2VydGlmaWNhdGUsXG4gICAgICAgICAgICAvLyB1c2VyUHJpdmF0ZWtleTogZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyUHJpdmF0ZWtleSxcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgUkVELm5vZGVzLnJlZ2lzdGVyVHlwZShcIk9wY1VhLUNsaWVudDItSGlzdG9yeVJlYWRcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJvcGN1YVwiLFxuICAgICAgICBjb2xvcjogXCIjQzBERUVEXCIsXG4gICAgICAgIGFsaWduOiBcInJpZ2h0XCIsXG4gICAgICAgIGljb246IFwiLi4vLi4vaWNvbnMvb3BjdWFub2RlTG9nby5wbmdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcInJlYWQtaGlzdG9yeVwiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgaW5wdXRzOiB7IHZhbHVlOiAxIH0sXG4gICAgICAgICAgICBvdXRwdXQ6IHsgdmFsdWU6IDQgfSxcbiAgICAgICAgICAgIC8vIENvbW1vblxuICAgICAgICAgICAgbmFtZTogeyB2YWx1ZTogXCJcIiB9LFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlLCB0eXBlOiBcIk9wY1VhLUVuZHBvaW50MlwiIH0sXG4gICAgICAgICAgICBoaXN0b3J5UmVhZFBhcmFtOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJyYXdcIixcbiAgICAgICAgICAgICAgICAgICAgZW5kVGltZTogXCIxbSBhZ29cIixcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lOiBcIjExbSBhZ29cIixcbiAgICAgICAgICAgICAgICAgICAgbnVtVmFsdWVzUGVyTm9kZTogMTAwLFxuICAgICAgICAgICAgICAgICAgICByZXR1cm5Cb3VuZHM6IHRydWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2YWxpZGF0ZTogKHZhbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsID09PSBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vIGZvciBhY3Rpb24gcmVhZCBIaXN0b3J5XG4gICAgICAgICAgICBub2RlSWQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgb3V0cHV0VHlwZTogeyB2YWx1ZTogXCJWYWx1ZVwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICB9LFxuICAgICAgICAvLyBpbnB1dHM6LFxuICAgICAgICBvdXRwdXRzOiAyLCAvLyAyIG91dHB1dCwgc2Vjb25kIGZvciByYXcgbm9kZS1vcGN1YSBkaWFnbm9zdGljcyBvciBtb3JlIGNvbXBsZXRlIG1lc3NhZ2VcbiAgICAgICAgbGFiZWwoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lIHx8IFwiT1BDVUEgQ2xpZW50IEhpc3RvcnlSZWFkXCI7XG4gICAgICAgIH0sXG4gICAgICAgIGxhYmVsU3R5bGUoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lID8gXCJub2RlX2xhYmVsX2l0YWxpY1wiIDogXCJcIjtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0cHJlcGFyZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzO1xuICAgICAgICAgICAgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0KCk7XG4gICAgICAgICAgICBub2RlLmlucHV0cyA9IDE7XG4gICAgICAgICAgICBjb25zdCAkbm9kZUlkID0gJChcIiNub2RlLWlucHV0LW5vZGVJZFwiKTtcbiAgICAgICAgICAgICRub2RlSWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IGlzU2VsZWN0YWJsZShub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIlZhcmlhYmxlXCI7XG4gICAgICAgICAgICAgICAgfSB9KSk7XG4gICAgICAgICAgICAkKFwiI3NlbGVjdC1oaXN0b3J5LXR5cGVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS50eXBlKTtcbiAgICAgICAgICAgIHN3aXRjaCAobm9kZS5oaXN0b3J5UmVhZFBhcmFtLnR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwicmF3XCI6XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1yYXctc3RhcnRUaW1lXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0uc3RhcnRUaW1lKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXJhdy1lbmRUaW1lXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0uZW5kVGltZSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1yYXctbnVtVmFsdWVzUGVyTm9kZVwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLm51bVZhbHVlc1Blck5vZGUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcmV0dXJuQm91bmRzXCIpLnByb3AoXCJjaGVja2VkXCIsIG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5yZXR1cm5Cb3VuZHMpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwibW9kaWZpZWRcIjpcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LW1vZGlmaWVkLXN0YXJ0VGltZVwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLnN0YXJ0VGltZSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1tb2RpZmllZC1lbmRUaW1lXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0uZW5kVGltZSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1tb2RpZmllZC1udW1WYWx1ZXNQZXJOb2RlXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0ubnVtVmFsdWVzUGVyTm9kZSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1tb2RpZmllZC1yZXR1cm5Cb3VuZHNcIikucHJvcChcImNoZWNrZWRcIiwgbm9kZS5oaXN0b3J5UmVhZFBhcmFtLnJldHVybkJvdW5kcyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJwcm9jZXNzZWQtZGV0YWlsc1wiOlxuICAgICAgICAgICAgICAgICAgICBub2RlLmhpc3RvcnlSZWFkUGFyYW0uYWdncmVnYXRlQ29uZmlndXJhdGlvbiA9IG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5hZ2dyZWdhdGVDb25maWd1cmF0aW9uIHx8IHt9O1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtc3RhcnRUaW1lXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0uc3RhcnRUaW1lKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWVuZFRpbWVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5lbmRUaW1lKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLXByb2Nlc3NpbmdJbnRlcnZhbFwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLnByb2Nlc3NpbmdJbnRlcnZhbCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVUeXBlXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0uYWdncmVnYXRlVHlwZSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVDb25maWd1cmF0aW9uLXVzZVNlcnZlckNhcGFiaWxpdGllc0RlZmF1bHRzXCIpLnByb3AoXCJjaGVja2VkXCIsIG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5hZ2dyZWdhdGVDb25maWd1cmF0aW9uLnVzZVNlcnZlckNhcGFiaWxpdGllc0RlZmF1bHRzKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24tdHJlYXRVbmNlcnRhaW5Bc0JhZFwiKS5wcm9wKFwiY2hlY2tlZFwiLCBub2RlLmhpc3RvcnlSZWFkUGFyYW0uYWdncmVnYXRlQ29uZmlndXJhdGlvbi50cmVhdFVuY2VydGFpbkFzQmFkKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24tcGVyY2VudERhdGFCYWRcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5hZ2dyZWdhdGVDb25maWd1cmF0aW9uLnBlcmNlbnREYXRhQmFkKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24tcGVyY2VudERhdGFHb29kXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0uYWdncmVnYXRlQ29uZmlndXJhdGlvbi5wZXJjZW50RGF0YUdvb2QpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi11c2VTbG9wZWRFeHRyYXBvbGF0aW9uXCIpLnByb3AoXCJjaGVja2VkXCIsIG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5hZ2dyZWdhdGVDb25maWd1cmF0aW9uLnVzZVNsb3BlZEV4dHJhcG9sYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgYWR2YW5jZWQgY29udHJvbHNcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gaGlkZUFsbFNlY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1yYXdcIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tbW9kaWZpZWRcIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tcHJvY2Vzc2VkLWRldGFpbHNcIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tYXQtdGltZVwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1hbm5vdGF0aW9uLWRhdGFcIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tZXZlbnRcIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmdW5jdGlvbiB0b2dnbGVTZWN0aW9ucygpIHtcbiAgICAgICAgICAgICAgICAgICAgaGlkZUFsbFNlY3Rpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkVmFsdWUgPSAkKFwiI3NlbGVjdC1oaXN0b3J5LXR5cGVcIikudmFsKCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIGFsZXJ0KFwidG9nZ2xlU2VjdGlvbnMgXCIgKyBzZWxlY3RlZFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLVwiICsgc2VsZWN0ZWRWYWx1ZSkuc2hvdygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAkKFwiI3NlbGVjdC1oaXN0b3J5LXR5cGVcIikub24oXCJjaGFuZ2VcIiwgdG9nZ2xlU2VjdGlvbnMpO1xuICAgICAgICAgICAgICAgIHRvZ2dsZVNlY3Rpb25zKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHNhdmUoKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZUFzVGV4dCA9IChhKSA9PiAoYS52YWwoKSA9PSB1bmRlZmluZWQgPyBcIlwiIDogYS52YWwoKS50b1N0cmluZygpKTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlQXNOdW1iZXIgPSAoYSkgPT4gKGEudmFsKCkgPT0gdW5kZWZpbmVkID8gMCA6IGEudmFsKCkpO1xuICAgICAgICAgICAgY29uc3QgdHlwZSA9ICQoXCIjc2VsZWN0LWhpc3RvcnktdHlwZVwiKS52YWwoKTtcbiAgICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJyYXdcIjpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaXN0b3J5UmVhZFBhcmFtID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJyYXdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZTogdmFsdWVBc1RleHQoJChcIiNub2RlLWlucHV0LXJhdy1zdGFydFRpbWVcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kVGltZTogdmFsdWVBc1RleHQoJChcIiNub2RlLWlucHV0LXJhdy1lbmRUaW1lXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bVZhbHVlc1Blck5vZGU6IHZhbHVlQXNOdW1iZXIoJChcIiNub2RlLWlucHV0LXJhdy1udW1WYWx1ZXNQZXJOb2RlXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybkJvdW5kczogJChcIiNub2RlLWlucHV0LXJldHVybkJvdW5kc1wiKS5wcm9wKFwiY2hlY2tlZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcIm1vZGlmaWVkXCI6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGlzdG9yeVJlYWRQYXJhbSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwibW9kaWZpZWRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZTogdmFsdWVBc1RleHQoJChcIiNub2RlLWlucHV0LW1vZGlmaWVkLXN0YXJ0VGltZVwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRUaW1lOiB2YWx1ZUFzVGV4dCgkKFwiI25vZGUtaW5wdXQtbW9kaWZpZWQtZW5kVGltZVwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBudW1WYWx1ZXNQZXJOb2RlOiB2YWx1ZUFzTnVtYmVyKCQoXCIjbm9kZS1pbnB1dC1tb2RpZmllZC1udW1WYWx1ZXNQZXJOb2RlXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybkJvdW5kczogJChcIiNub2RlLWlucHV0LW1vZGlmaWVkLXJldHVybkJvdW5kc1wiKS5wcm9wKFwiY2hlY2tlZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcInByb2Nlc3NlZC1kZXRhaWxzXCI6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGlzdG9yeVJlYWRQYXJhbSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwicHJvY2Vzc2VkLWRldGFpbHNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZTogdmFsdWVBc1RleHQoJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLXN0YXJ0VGltZVwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRUaW1lOiB2YWx1ZUFzVGV4dCgkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtZW5kVGltZVwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzaW5nSW50ZXJ2YWw6IHZhbHVlQXNOdW1iZXIoJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLXByb2Nlc3NpbmdJbnRlcnZhbFwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBhZ2dyZWdhdGVUeXBlOiB2YWx1ZUFzVGV4dCgkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlVHlwZVwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBhZ2dyZWdhdGVDb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlU2VydmVyQ2FwYWJpbGl0aWVzRGVmYXVsdHM6ICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVDb25maWd1cmF0aW9uLXVzZVNlcnZlckNhcGFiaWxpdGllc0RlZmF1bHRzXCIpLnByb3AoXCJjaGVja2VkXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyZWF0VW5jZXJ0YWluQXNCYWQ6ICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVDb25maWd1cmF0aW9uLXRyZWF0VW5jZXJ0YWluQXNCYWRcIikucHJvcChcImNoZWNrZWRcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVyY2VudERhdGFCYWQ6IHZhbHVlQXNOdW1iZXIoJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24tcGVyY2VudERhdGFCYWRcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcmNlbnREYXRhR29vZDogdmFsdWVBc051bWJlcigkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi1wZXJjZW50RGF0YUdvb2RcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZVNsb3BlZEV4dHJhcG9sYXRpb246ICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVDb25maWd1cmF0aW9uLXVzZVNsb3BlZEV4dHJhcG9sYXRpb25cIikucHJvcChcImNoZWNrZWRcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9KTtcblxufSkoKTsiXX0=
|
7
|
+
function _0x5b06(_0xf8d4eb,_0x286759){const _0x40946a=_0x4094();return _0x5b06=function(_0x5b06e0,_0x684a57){_0x5b06e0=_0x5b06e0-0x14f;let _0x941dc6=_0x40946a[_0x5b06e0];return _0x941dc6;},_0x5b06(_0xf8d4eb,_0x286759);}function _0x4094(){const _0x298206=['ns=0;i=47','animate','#node-input-processed-details-processingInterval','NodeClass','$toggleTreeBtn','TypeDefinition','replaceWith','addClass','#section-raw',':first','HasSubtype',';\x22></i>\x20','#node-input-returnBounds','element','$input','expandable','10ZqZRyc','SeaGreen','56tzFKFw','browseResult','IsForward','<ul\x20class=\x22sterfive-tree\x22></ul>','left','failure','HasProperty','pageX','registerType','#section-at-time','displayName','children','1m\x20ago','Both','#node-input-processed-details-aggregateType','#node-input-modified-startTime','text','ns=0;i=45','../../icons/opcuanodeLogo.png','Value','percentDataGood','processingInterval','useSlopedExtrapolation','><i\x20class=\x22fa\x20','closest','SandyBrown','#node-input-processed-details-aggregateConfiguration-useServerCapabilitiesDefaults','1356uMYuva','11m\x20ago','4661316JQMMIF','SteelBlue','ReferenceType','selected','Unspecified','fetched','$info','dblclick','Inverse','error','toggleClass','startTime','Good','hasClass','message','99BSfPKO','call','useServerCapabilitiesDefaults','ns=0;i=61','#node-input-modified-endTime','reference','ns=0;i=46','click','nodeClass','right','/browse','err','name','#node-input-raw-numValuesPerNode','statusText','fetching\x20failed\x20with\x20error','<div/>','opcua','scrollTop','currentParent','li\x20>\x20.tree-text','then','function','<li\x20key=\x22','pageY','grey','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','application/json','HasChild','fa-folder','BrowseName','nodeAddressString','placeholder','1355810aOHFgN','HasComponent',':visible','Method','val','filter','View','OpcUa-Client2-HistoryRead','browseName','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','#node-input-raw-endTime','processed-details','baseUrl','#section-processed-details','assign','append','VariableType','$inputGroup','#section-','!!failure!!','DarkOrange','returnBounds','value','nodeIds','statusCode','$combo','json','target','/opcua-endpoint2','expandable\x20expanded','treatUncertainAsBad','loading','match','data','nodeBrowser','reset','find','suppressed','li[key=\x22','log','elements','verify','aggregateConfiguration','top','POST','already\x20loading','attr','resolveParentNode','<li>error\x20','ns=0;i=85','node','removeClass','#node-input-processed-details-aggregateConfiguration-percentDataGood','SuppressedError','prop','toString','numValuesPerNode','isSelectable','height','$tree','nodeId','endTime','DataType','#select-history-type','Variable','status','<div\x20class=\x22info-text\x22></div>','show','HasTypeDefinition','stringify','249513ooLBeW','browsePath','DodgerBlue','parentNode','21376DXPIgF','__parentNode','1211334KPqlZq','#node-input-raw-startTime','129fEffMG','fa-text-width','length','/checkNodeId','.spinner','endpointNode','sterfive-dropdown','modified','ns=0;i=35','$dropdown','references','type','ObjectType','Objects','node_label_italic','#node-input-processed-details-startTime','/walk-backward','next','input-group','$verifyBtn','change','raw','nodes','typeDefinition','CadetBlue','apply','checked','fa-list-alt','trigger','#node-input-processed-details-aggregateConfiguration-treatUncertainAsBad','ns=0;i=34','isTypeRef','options','remove','endpoint','Object','rgba(61,\x2060,\x204,\x200.525)','stopPropagation','Forward','11918MsDTRL','ns=0;i=40','#node-input-modified-numValuesPerNode','DisplayName','#node-input-processed-details-aggregateConfiguration-useSlopedExtrapolation','toggle','#node-input-modified-returnBounds','referenceTypeId','Invalid','aggregateType','read-history','historyReadParam','252469QGPukD','OpcUa-Endpoint2','#node-input-processed-details-aggregateConfiguration-percentDataBad','position','percentDataBad','expanded','hide'];_0x4094=function(){return _0x298206;};return _0x4094();}(function(_0x15ca5b,_0x21809b){const _0x593e65=_0x5b06,_0x2ffca9=_0x15ca5b();while(!![]){try{const _0x86e580=parseInt(_0x593e65(0x1ef))/0x1*(-parseInt(_0x593e65(0x19e))/0x2)+parseInt(_0x593e65(0x177))/0x3*(-parseInt(_0x593e65(0x173))/0x4)+-parseInt(_0x593e65(0x1c1))/0x5*(parseInt(_0x593e65(0x175))/0x6)+parseInt(_0x593e65(0x1aa))/0x7*(-parseInt(_0x593e65(0x1c3))/0x8)+-parseInt(_0x593e65(0x1e0))/0x9+-parseInt(_0x593e65(0x210))/0xa+-parseInt(_0x593e65(0x16f))/0xb*(-parseInt(_0x593e65(0x1de))/0xc);if(_0x86e580===_0x21809b)break;else _0x2ffca9['push'](_0x2ffca9['shift']());}catch(_0x175d66){_0x2ffca9['push'](_0x2ffca9['shift']());}}}(_0x4094,0x69e1e),(function(){'use strict';const _0xc915fd=_0x5b06;function _0x46e40f(_0x333bb7,_0x24d749,_0x451ba0,_0x334801){function _0x2a3bb2(_0x41a9f7){return _0x41a9f7 instanceof _0x451ba0?_0x41a9f7:new _0x451ba0(function(_0x796ce8){_0x796ce8(_0x41a9f7);});}return new(_0x451ba0||(_0x451ba0=Promise))(function(_0x328e49,_0x160f95){const _0x3a589c=_0x5b06;function _0x462c76(_0x468cb0){const _0x407d30=_0x5b06;try{_0x5548b5(_0x334801[_0x407d30(0x188)](_0x468cb0));}catch(_0x5b54a5){_0x160f95(_0x5b54a5);}}function _0x1b8402(_0x3327c8){try{_0x5548b5(_0x334801['throw'](_0x3327c8));}catch(_0x10717c){_0x160f95(_0x10717c);}}function _0x5548b5(_0x444921){const _0x3e5289=_0x5b06;_0x444921['done']?_0x328e49(_0x444921[_0x3e5289(0x226)]):_0x2a3bb2(_0x444921[_0x3e5289(0x226)])[_0x3e5289(0x204)](_0x462c76,_0x1b8402);}_0x5548b5((_0x334801=_0x334801[_0x3a589c(0x190)](_0x333bb7,_0x24d749||[]))[_0x3a589c(0x188)]());});}typeof SuppressedError===_0xc915fd(0x205)?SuppressedError:function(_0x4b98c9,_0x19d068,_0x59f810){const _0x92bb06=_0xc915fd;var _0x3cdaf1=new Error(_0x59f810);return _0x3cdaf1[_0x92bb06(0x1fb)]=_0x92bb06(0x15e),_0x3cdaf1[_0x92bb06(0x1e9)]=_0x4b98c9,_0x3cdaf1[_0x92bb06(0x235)]=_0x19d068,_0x3cdaf1;};const _0x5e3b82=_0xc915fd(0x17f),_0x5e8172=_0xc915fd(0x1f2),_0x2c204d=_0xc915fd(0x1b1),_0x2d2432=_0xc915fd(0x1f5),_0x127d08=_0xc915fd(0x195),_0x526d3b=_0xc915fd(0x1d4),_0x256e0f=_0xc915fd(0x19f);var _0x5b1055;(function(_0x42f80a){const _0x3111a7=_0xc915fd;_0x42f80a[_0x42f80a[_0x3111a7(0x19d)]=0x0]=_0x3111a7(0x19d),_0x42f80a[_0x42f80a[_0x3111a7(0x1e8)]=0x1]='Inverse',_0x42f80a[_0x42f80a['Both']=0x2]=_0x3111a7(0x1d0),_0x42f80a[_0x42f80a[_0x3111a7(0x1a6)]=0x3]='Invalid';}(_0x5b1055||(_0x5b1055={})));var _0x15c554;(function(_0x3226d4){const _0x52495b=_0xc915fd;_0x3226d4[_0x3226d4[_0x52495b(0x1e4)]=0x0]='Unspecified',_0x3226d4[_0x3226d4[_0x52495b(0x19a)]=0x1]=_0x52495b(0x19a),_0x3226d4[_0x3226d4[_0x52495b(0x169)]=0x2]='Variable',_0x3226d4[_0x3226d4[_0x52495b(0x213)]=0x4]=_0x52495b(0x213),_0x3226d4[_0x3226d4['ObjectType']=0x8]=_0x52495b(0x183),_0x3226d4[_0x3226d4[_0x52495b(0x220)]=0x10]=_0x52495b(0x220),_0x3226d4[_0x3226d4[_0x52495b(0x1e2)]=0x20]=_0x52495b(0x1e2),_0x3226d4[_0x3226d4[_0x52495b(0x167)]=0x40]=_0x52495b(0x167),_0x3226d4[_0x3226d4['View']=0x80]=_0x52495b(0x216);}(_0x15c554||(_0x15c554={})));var _0x412de3;(function(_0x22ea7d){const _0x1e7b71=_0xc915fd;_0x22ea7d[_0x22ea7d[_0x1e7b71(0x19a)]=0x1]=_0x1e7b71(0x19a),_0x22ea7d[_0x22ea7d[_0x1e7b71(0x169)]=0x2]='Variable',_0x22ea7d[_0x22ea7d['Method']=0x4]=_0x1e7b71(0x213),_0x22ea7d[_0x22ea7d[_0x1e7b71(0x183)]=0x8]=_0x1e7b71(0x183),_0x22ea7d[_0x22ea7d['VariableType']=0x10]=_0x1e7b71(0x220),_0x22ea7d[_0x22ea7d[_0x1e7b71(0x1e2)]=0x20]=_0x1e7b71(0x1e2),_0x22ea7d[_0x22ea7d[_0x1e7b71(0x167)]=0x40]='DataType',_0x22ea7d[_0x22ea7d[_0x1e7b71(0x216)]=0x80]=_0x1e7b71(0x216);}(_0x412de3||(_0x412de3={})));var _0x432c06;(function(_0x49ff72){const _0x2a7dc9=_0xc915fd;_0x49ff72[_0x49ff72[_0x2a7dc9(0x1e2)]=0x1]=_0x2a7dc9(0x1e2),_0x49ff72[_0x49ff72[_0x2a7dc9(0x1c5)]=0x2]=_0x2a7dc9(0x1c5),_0x49ff72[_0x49ff72['NodeClass']=0x4]=_0x2a7dc9(0x1b4),_0x49ff72[_0x49ff72[_0x2a7dc9(0x20d)]=0x8]=_0x2a7dc9(0x20d),_0x49ff72[_0x49ff72[_0x2a7dc9(0x1a1)]=0x10]=_0x2a7dc9(0x1a1),_0x49ff72[_0x49ff72['TypeDefinition']=0x20]=_0x2a7dc9(0x1b6);}(_0x432c06||(_0x432c06={})));function _0x1328f1(_0x4f0bca){const _0x13ddf1=_0xc915fd;switch(_0x4f0bca){case'Organizes':return _0x5e3b82;case _0x13ddf1(0x1c9):return _0x2d2432;case _0x13ddf1(0x211):return _0x2c204d;case _0x13ddf1(0x20b):return _0x127d08;case _0x13ddf1(0x1bb):return _0x526d3b;case _0x13ddf1(0x16d):return _0x256e0f;}}const _0x8d5419=_0xc295df=>{const _0x5cce15=_0xc915fd;switch(_0xc295df['nodeClass']){case _0x5cce15(0x19a):if(_0xc295df[_0x5cce15(0x1a5)]===_0x5e3b82);if(_0xc295df[_0x5cce15(0x18e)]===_0x5e8172||_0xc295df[_0x5cce15(0x1a5)]==='i=61')return{'icon':_0x5cce15(0x20c),'color':_0x5cce15(0x19b)};return{'icon':'fa-object-group','color':_0x5cce15(0x1c2)};case _0x5cce15(0x169):if(_0xc295df[_0x5cce15(0x1a5)]===_0x2c204d)return{'icon':_0x5cce15(0x192),'color':_0x5cce15(0x1e1)};else return _0xc295df[_0x5cce15(0x1a5)]===_0x2d2432?{'icon':_0x5cce15(0x192),'color':_0x5cce15(0x171)}:{'icon':_0x5cce15(0x192),'color':_0x5cce15(0x18f)};case'Method':return{'icon':'fa-cog','color':_0x5cce15(0x1dc)};case _0x5cce15(0x183):return{'icon':'fa-object-group','color':'DarkOrange'};case _0x5cce15(0x220):return{'icon':'fa-sliders','color':_0x5cce15(0x224)};case _0x5cce15(0x167):return{'icon':_0x5cce15(0x178),'color':_0x5cce15(0x18f)};}return{'icon':'fa-question','color':_0x5cce15(0x208)};},_0x505f14=(_0x3bc17e,_0x5cdfca,_0x1116dd)=>_0x46e40f(void 0x0,[_0x3bc17e,_0x5cdfca,_0x1116dd],void 0x0,function*({endpointNode:_0x37cefd,endpoint:_0x543266,baseUrl:_0x5e1df0},_0x3f9927,_0x332edd){const _0x5770da=_0xc915fd,_0x3eedf7=_0x5e1df0+_0x5770da(0x22c),_0x117368=_0x3eedf7+_0x5770da(0x1f9),_0x36586f=Object[_0x5770da(0x21e)](Object[_0x5770da(0x21e)]({},_0x332edd),{'nodeId':_0x3f9927,'resultMask':0x3f}),_0x5540d6=yield fetch(_0x117368,{'method':_0x5770da(0x155),'body':JSON[_0x5770da(0x16e)]({'endpointNode':_0x37cefd,'endpoint':_0x543266,'browseDescription':_0x36586f}),'headers':{'Content-Type':_0x5770da(0x20a)}});if(_0x5540d6['status']!==0xc8)return console[_0x5770da(0x150)](_0x5770da(0x1fe),_0x5540d6[_0x5770da(0x16a)],_0x5540d6[_0x5770da(0x1fd)]),{'references':[]};const _0x427a94=yield _0x5540d6[_0x5770da(0x22a)](),_0x17d1ef=_0x427a94[_0x5770da(0x1c4)][_0x5770da(0x181)]||[];return{'references':_0x17d1ef};}),_0x47c9e4={'referenceTypeId':_0x1328f1(_0xc915fd(0x20b)),'includeSubtypes':!![],'browseDirection':_0x5b1055[_0xc915fd(0x19d)],'nodeClassMask':_0x15c554[_0xc915fd(0x169)]|_0x15c554[_0xc915fd(0x19a)]|_0x15c554['Method'],'resultMask':0x3f},_0x184f09={'referenceTypeId':_0x1328f1('Organizes'),'includeSubtypes':!![],'browseDirection':_0x5b1055[_0xc915fd(0x19d)],'nodeClassMask':_0x15c554[_0xc915fd(0x169)]|_0x15c554[_0xc915fd(0x19a)]|_0x15c554['Method'],'resultMask':0x3f},_0x4def17=(_0x32a4f2,_0x4594cc)=>_0x46e40f(void 0x0,[_0x32a4f2,_0x4594cc],void 0x0,function*({endpointNode:_0x41d3d5,endpoint:_0x255326,baseUrl:_0x41636c},{nodeId:_0x334ecc,rootNodeId:_0x56b66e,isType:_0x364691}){const _0x357e4f=_0xc915fd,_0x123147=_0x41636c+_0x357e4f(0x22c),_0x447fe7=_0x123147+_0x357e4f(0x187),_0x4afcf1=yield fetch(_0x447fe7,{'method':_0x357e4f(0x155),'body':JSON[_0x357e4f(0x16e)]({'endpointNode':_0x41d3d5,'endpoint':_0x255326,'nodeId':_0x334ecc,'rootNodeId':_0x56b66e,'isType':_0x364691}),'headers':{'Content-Type':_0x357e4f(0x20a)}});if(_0x4afcf1[_0x357e4f(0x16a)]!==0xc8)return null;const _0x3ebac1=yield _0x4afcf1[_0x357e4f(0x22a)]();return _0x3ebac1[_0x357e4f(0x170)];}),_0x2d6236=(_0x2f083a,_0x20a895,_0x31b316)=>_0x46e40f(void 0x0,[_0x2f083a,_0x20a895,_0x31b316],void 0x0,function*({endpointNode:_0x1a0ba6,endpoint:_0xd74aa9,baseUrl:_0x29158a},_0x165033,_0x50e571){const _0x455597=_0xc915fd,_0x5c9bee=_0x29158a+_0x455597(0x22c),_0x44919c=_0x5c9bee+_0x455597(0x17a),_0x13d7a1=_0x165033[_0x455597(0x214)](),_0x216f2f=yield fetch(_0x44919c,{'method':_0x455597(0x155),'body':JSON[_0x455597(0x16e)]({'endpointNode':_0x1a0ba6,'endpoint':_0xd74aa9,'nodeId':_0x13d7a1}),'headers':{'Content-Type':_0x455597(0x20a)}}),_0x52091b=(_0x502b34,_0x5c75e2)=>{const _0x2a11b5=_0x455597;_0x50e571[_0x2a11b5(0x1d3)](_0x502b34)[_0x2a11b5(0x1b8)]('sterfive-info')[_0x2a11b5(0x1b8)](_0x5c75e2),_0x50e571[_0x2a11b5(0x16c)](),setTimeout(()=>{const _0x8e3dd9=_0x2a11b5;_0x50e571[_0x8e3dd9(0x15c)](_0x5c75e2),_0x50e571['hide']();},0xbb8);},_0x46bccc=yield _0x216f2f[_0x455597(0x22a)]();_0x216f2f[_0x455597(0x16a)]!==0xc8?_0x52091b(_0x455597(0x223)+_0x13d7a1,'failure'):_0x46bccc[_0x455597(0x228)][_0x455597(0x230)](/Good/)?(_0x165033['val'](_0x46bccc[_0x455597(0x20e)]),_0x165033[_0x455597(0x193)](_0x455597(0x18b)),_0x52091b(_0x455597(0x1ec),'ok')):(_0x165033['val'](''+_0x13d7a1),_0x52091b(_0x46bccc[_0x455597(0x228)]+'\x20'+_0x216f2f['statusText'],_0x455597(0x1c8)));});function _0xe451b(_0x1288fa,_0x2e545b){return _0x46e40f(this,void 0x0,void 0x0,function*(){const _0xf5a39d=_0x5b06,_0x134404=_0x1288fa[_0xf5a39d(0x231)](_0xf5a39d(0x226)),_0x4dc2a8=yield _0x505f14(_0x2e545b,_0x134404,_0x47c9e4),_0x3ec85f=yield _0x505f14(_0x2e545b,_0x134404,_0x184f09);return{'references':[..._0x4dc2a8[_0xf5a39d(0x181)],..._0x3ec85f[_0xf5a39d(0x181)]]};});}const _0x4dab58={'referenceTypeId':_0x1328f1(_0xc915fd(0x1bb)),'includeSubtypes':!![],'browseDirection':_0x5b1055[_0xc915fd(0x19d)],'nodeClassMask':_0x15c554[_0xc915fd(0x1e2)]|_0x15c554[_0xc915fd(0x183)]|_0x15c554[_0xc915fd(0x167)]|_0x15c554[_0xc915fd(0x220)],'resultMask':0x3f};function _0xa467d1(_0x46d719,_0x5e0819){return _0x46e40f(this,void 0x0,void 0x0,function*(){const _0x20581d=_0x5b06,_0x18d658=_0x46d719['data'](_0x20581d(0x226)),_0x15e7fb=yield _0x505f14(_0x5e0819,_0x18d658,_0x4dab58);return _0x15e7fb;});}const _0x223e0a=_0x219d6f=>{const _0x4f8f19=_0xc915fd;var _0x20e138,_0x361083,_0x1705f8,_0x5839f4;if(!_0x219d6f||!_0x219d6f['nodeId']){const _0x1305c1=$('<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>');return _0x1305c1;}const _0x1e70de=_0x219d6f['nodeId'][_0x4f8f19(0x160)](),_0x52c3ba=((_0x20e138=_0x219d6f[_0x4f8f19(0x1cd)])===null||_0x20e138===void 0x0?void 0x0:_0x20e138[_0x4f8f19(0x1d3)])||((_0x361083=_0x219d6f['browseName'])===null||_0x361083===void 0x0?void 0x0:_0x361083[_0x4f8f19(0x1fb)])||_0x219d6f[_0x4f8f19(0x165)]['toString'](),{icon:_0x266da3,color:_0x1c2fa2}=_0x8d5419(_0x219d6f),_0x16e5c9='('+_0x219d6f[_0x4f8f19(0x165)][_0x4f8f19(0x160)]()+')\x20'+(((_0x1705f8=_0x219d6f[_0x4f8f19(0x218)])===null||_0x1705f8===void 0x0?void 0x0:_0x1705f8['name'])||((_0x5839f4=_0x219d6f[_0x4f8f19(0x1cd)])===null||_0x5839f4===void 0x0?void 0x0:_0x5839f4[_0x4f8f19(0x1d3)])||''),_0x4424e1=$(_0x4f8f19(0x206)+_0x219d6f['nodeId'][_0x4f8f19(0x160)]()+'\x22}><span\x20class=\x22tree-text\x22\x20title='+_0x16e5c9+_0x4f8f19(0x1da)+_0x266da3+'\x22\x20style=\x22color:'+_0x1c2fa2+_0x4f8f19(0x1bc)+_0x52c3ba+'</span><ul></ul></li>');return _0x4424e1[_0x4f8f19(0x1b8)](_0x4f8f19(0x1c0)),_0x4424e1[_0x4f8f19(0x231)](_0x4f8f19(0x226),_0x1e70de),_0x4424e1[_0x4f8f19(0x231)](_0x4f8f19(0x1f4),_0x219d6f),_0x4424e1;},_0x4eab02=(_0x2ba98c,_0x467049)=>{const _0x4a08b6=_0xc915fd;return _0x467049['find'](_0x4a08b6(0x14f)+_0x2ba98c+'\x22]');},_0x49ee46=(_0x3e6525,_0x48ff71)=>{const _0x41d3f4=_0xc915fd;_0x3e6525[_0x41d3f4(0x164)][_0x41d3f4(0x234)](_0x41d3f4(0x203))[_0x41d3f4(0x15c)](_0x41d3f4(0x1e3)),_0x48ff71['find']('.tree-text:first')[_0x41d3f4(0x1b8)]('selected');},_0x17bf55=(_0x43cc9e,_0x6b870b,_0x34532d)=>_0x46e40f(void 0x0,void 0x0,void 0x0,function*(){const _0x28083b=_0xc915fd;let _0x3b9f88=_0x34532d[_0x28083b(0x1ce)](_0x28083b(0x1ba));_0x6b870b['relativePath'][_0x28083b(0x151)]||[];const _0x14b16e=_0x6b870b[_0x28083b(0x227)]||[];if(_0x14b16e[_0x28083b(0x179)]===0x0)return;for(const _0x2a1da9 of _0x14b16e){_0x3b9f88[_0x28083b(0x1ed)](_0x28083b(0x1c0))&&(yield _0x14940f(_0x43cc9e,_0x3b9f88));const _0x22fdf8=_0x4eab02(_0x2a1da9,_0x3b9f88);if(_0x22fdf8[_0x28083b(0x179)]===0x0)return;_0x3b9f88=_0x22fdf8;}_0x49ee46(_0x43cc9e,_0x3b9f88),_0x57f6f5(_0x43cc9e[_0x28083b(0x180)],_0x3b9f88);});function _0x57f6f5(_0x5a7208,_0x290e2a){const _0x1f6819=_0xc915fd,_0x567ca3=_0x290e2a[_0x1f6819(0x1ad)]()[_0x1f6819(0x154)],_0x3ed8d7=_0x5a7208[_0x1f6819(0x201)]();if(_0x3ed8d7==undefined)return;const _0x1bb903=_0x3ed8d7+_0x567ca3-_0x5a7208[_0x1f6819(0x163)]()/0x2+_0x290e2a[_0x1f6819(0x163)]()/0x2;_0x5a7208[_0x1f6819(0x1b2)]({'scrollTop':_0x1bb903},0x1f4);}const _0x3312c0=(_0x1d01db,_0x28564c)=>_0x46e40f(void 0x0,void 0x0,void 0x0,function*(){const _0x2737d7=_0xc915fd,_0x2fa491=_0x1d01db['$input'][_0x2737d7(0x214)](),_0x2c438d={'nodeId':_0x2fa491,'rootNodeId':_0x28564c[_0x2737d7(0x165)],'isType':_0x1d01db[_0x2737d7(0x197)][_0x2737d7(0x196)]||![]},_0x407a83=_0x158133(_0x1d01db),_0xe614c1=yield _0x4def17(_0x407a83,_0x2c438d);if(!_0xe614c1)return;yield _0x17bf55(_0x1d01db,_0xe614c1,_0x1d01db[_0x2737d7(0x164)]);});function _0x41dc1d(_0x1018e7,_0x2395da,_0x4a0c4d,_0x3c1ece){return _0x46e40f(this,void 0x0,void 0x0,function*(){const _0xcfad14=_0x5b06;if(_0x2395da[_0xcfad14(0x1ed)](_0xcfad14(0x1e5))){console[_0xcfad14(0x150)]('already\x20fetched');return;}if(_0x2395da[_0xcfad14(0x1ed)](_0xcfad14(0x22f))){console['log'](_0xcfad14(0x156));return;}_0x2395da[_0xcfad14(0x1b8)]('loading'),_0x2395da[_0xcfad14(0x21f)]('<div\x20class=\x22spinner\x22></div>');try{_0x2395da['children']('ul')['empty']();const {references:_0x1fcc78}=yield _0x4a0c4d(_0x2395da,_0x3c1ece);for(const _0x65161d of _0x1fcc78){if(_0x1018e7[_0xcfad14(0x197)][_0xcfad14(0x215)]&&!_0x1018e7[_0xcfad14(0x197)][_0xcfad14(0x215)](_0x65161d))continue;const _0x40be4d=_0x223e0a(_0x65161d);_0x2395da[_0xcfad14(0x1ce)]('ul')['append'](_0x40be4d);}_0x2395da['addClass']('fetched');}catch(_0xb0a4fc){_0x2395da[_0xcfad14(0x1ce)]('ul')['append'](_0xcfad14(0x159)+_0xb0a4fc[_0xcfad14(0x1ee)]+'</li>'),console[_0xcfad14(0x150)](_0xcfad14(0x1fa),_0xb0a4fc);}_0x2395da[_0xcfad14(0x234)](_0xcfad14(0x17b))[_0xcfad14(0x198)](),_0x2395da[_0xcfad14(0x15c)](_0xcfad14(0x22f));});}function _0x158133(_0x576b21){const _0x5eea7b=_0xc915fd,_0x4b5b8a={'baseUrl':_0x576b21[_0x5eea7b(0x197)][_0x5eea7b(0x21c)],'endpointNode':typeof _0x576b21[_0x5eea7b(0x197)][_0x5eea7b(0x17c)]==='function'?_0x576b21[_0x5eea7b(0x197)]['endpointNode']():_0x576b21['options']['endpointNode'],'endpoint':typeof _0x576b21['options'][_0x5eea7b(0x199)]==='function'?_0x576b21[_0x5eea7b(0x197)][_0x5eea7b(0x199)]():_0x576b21[_0x5eea7b(0x197)][_0x5eea7b(0x199)]};return _0x4b5b8a;}function _0x14940f(_0x4a4281,_0x2b8427){return _0x46e40f(this,void 0x0,void 0x0,function*(){const _0x95b3e1=_0x5b06;if(_0x2b8427[_0x95b3e1(0x1ed)](_0x95b3e1(0x1e5))){_0x2b8427[_0x95b3e1(0x15c)]('expandable')['addClass'](_0x95b3e1(0x1af)),_0x2b8427['children']('ul')[_0x95b3e1(0x1a3)]();return;}const _0x3719ca=_0x158133(_0x4a4281),_0x51c276=!_0x4a4281['options'][_0x95b3e1(0x196)]?_0xe451b:_0xa467d1;try{yield _0x41dc1d(_0x4a4281,_0x2b8427,_0x51c276,_0x3719ca),_0x2b8427['removeClass'](_0x95b3e1(0x1c0))['addClass']('expanded');}catch(_0x4a11eb){_0x2b8427[_0x95b3e1(0x15c)](_0x95b3e1(0x1c0))[_0x95b3e1(0x1b8)]('expanded'),console[_0x95b3e1(0x150)](_0x95b3e1(0x1e9),_0x4a11eb);}});}const _0x111c8b=()=>{const _0x2befff=_0xc915fd;$['widget']('sterfive.nodeBrowser',{'options':{'endpointNode':()=>({'endpoint':'opc.tcp://opcuademo.sterfive.com:26543'}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x2befff(0x184)},'nodeClass':'Object','nodeId':_0x2befff(0x15a),'displayName':{'text':_0x2befff(0x184)},'typeDefinition':_0x5e8172}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x46e40f(this,void 0x0,void 0x0,function*(){const _0x39f71b=_0x5b06,_0x312bc2=this;if(!_0x312bc2[_0x39f71b(0x174)]){const _0x5b4642=typeof _0x312bc2[_0x39f71b(0x197)][_0x39f71b(0x172)]==='function'?_0x312bc2[_0x39f71b(0x197)][_0x39f71b(0x172)][_0x39f71b(0x1f0)](_0x312bc2):_0x312bc2[_0x39f71b(0x197)][_0x39f71b(0x172)];if(_0x5b4642 instanceof Promise){const _0x263371=yield _0x5b4642;_0x312bc2[_0x39f71b(0x174)]=_0x263371;}else _0x312bc2[_0x39f71b(0x174)]=_0x5b4642;}return _0x312bc2['__parentNode'];});},'reset'(){return _0x46e40f(this,void 0x0,void 0x0,function*(){const _0x1d5ec3=_0x5b06,_0x1ebc77=this,_0x10df55=_0x1ebc77;_0x10df55[_0x1d5ec3(0x174)]=undefined,_0x1ebc77['$tree']['empty']();const _0x514b3c=yield this['resolveParentNode'](),_0x177cd8=_0x223e0a(_0x514b3c);_0x1ebc77[_0x1d5ec3(0x164)]['append'](_0x177cd8),_0x1ebc77[_0x1d5ec3(0x202)]=_0x514b3c;});},'verify'(){const _0x5b7a6c=_0x2befff,_0x5908f5=this,_0x301b61=_0x158133(_0x5908f5);_0x2d6236(_0x301b61,_0x5908f5[_0x5b7a6c(0x1bf)],_0x5908f5[_0x5b7a6c(0x1e6)]);},'_create'(){const _0x1003c3=_0x2befff,_0x5ab124=this;_0x5ab124[_0x1003c3(0x1bf)]=this[_0x1003c3(0x1be)],_0x5ab124['$combo']=$('<div/>'),_0x5ab124[_0x1003c3(0x229)]['addClass']('sterfive-combo-box'),this[_0x1003c3(0x1be)][_0x1003c3(0x1b7)](_0x5ab124[_0x1003c3(0x229)]),_0x5ab124[_0x1003c3(0x221)]=$('<div/>')[_0x1003c3(0x1b8)](_0x1003c3(0x189)),_0x5ab124[_0x1003c3(0x229)][_0x1003c3(0x21f)](_0x5ab124['$inputGroup']),_0x5ab124[_0x1003c3(0x221)][_0x1003c3(0x21f)](_0x5ab124[_0x1003c3(0x1bf)]),_0x5ab124[_0x1003c3(0x1b5)]=$(_0x1003c3(0x209)),_0x5ab124[_0x1003c3(0x221)][_0x1003c3(0x21f)](_0x5ab124['$toggleTreeBtn']),_0x5ab124[_0x1003c3(0x1b5)]['on'](_0x1003c3(0x1f6),function(){return _0x46e40f(this,void 0x0,void 0x0,function*(){const _0x2a5648=_0x5b06;var _0x1993fd;let _0x28e2af=![],_0x2bc886;!_0x5ab124['$dropdown']['is'](_0x2a5648(0x212))&&(_0x5ab124[_0x2a5648(0x1e6)][_0x2a5648(0x1b0)](),_0x2bc886=yield _0x5ab124[_0x2a5648(0x158)](),(_0x2bc886!==_0x5ab124[_0x2a5648(0x202)]||((_0x1993fd=_0x5ab124['currentParent'])===null||_0x1993fd===void 0x0?void 0x0:_0x1993fd['nodeId'])!==_0x2bc886[_0x2a5648(0x165)])&&(yield _0x5ab124[_0x2a5648(0x233)]()),_0x28e2af=!![]),_0x5ab124[_0x2a5648(0x180)]['toggle'](),_0x28e2af&&(yield _0x3312c0(_0x5ab124,_0x2bc886));});}),_0x5ab124['$verifyBtn']=$(_0x1003c3(0x219)),_0x5ab124['$inputGroup']['append'](_0x5ab124[_0x1003c3(0x18a)]),_0x5ab124[_0x1003c3(0x18a)]['on'](_0x1003c3(0x1f6),()=>{const _0x274aaf=_0x1003c3;this[_0x274aaf(0x152)]();});!_0x5ab124['$input'][_0x1003c3(0x157)](_0x1003c3(0x20f))&&_0x5ab124[_0x1003c3(0x1bf)][_0x1003c3(0x157)](_0x1003c3(0x20f),'enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20');_0x5ab124[_0x1003c3(0x1e6)]=$(_0x1003c3(0x16b)),_0x5ab124[_0x1003c3(0x1e6)][_0x1003c3(0x1b0)](),_0x5ab124[_0x1003c3(0x180)]=$(_0x1003c3(0x1ff))[_0x1003c3(0x1b8)](_0x1003c3(0x17d))['hide'](),_0x5ab124[_0x1003c3(0x229)][_0x1003c3(0x21f)](_0x5ab124[_0x1003c3(0x1e6)]),_0x5ab124['$combo']['append'](_0x5ab124[_0x1003c3(0x180)]),_0x5ab124[_0x1003c3(0x164)]=$(_0x1003c3(0x1c6))['appendTo'](_0x5ab124[_0x1003c3(0x180)]),this[_0x1003c3(0x233)]();const _0x2467fd=(_0x464d9e,_0x38dcc2)=>{const _0x1a2061=_0x1003c3,_0x241fc1=0x14,_0x37a79f=0x14,_0x46d9db=_0x464d9e['offset'](),_0x89ac6=_0x38dcc2;if(_0x89ac6[_0x1a2061(0x1ca)]>=_0x46d9db[_0x1a2061(0x1c7)]&&_0x89ac6['pageX']<=_0x46d9db[_0x1a2061(0x1c7)]+_0x241fc1&&_0x89ac6[_0x1a2061(0x207)]>=_0x46d9db[_0x1a2061(0x154)]&&_0x89ac6['pageY']<=_0x46d9db[_0x1a2061(0x154)]+_0x37a79f)return!![];return![];},_0x2e32d8=_0x442106=>_0x46e40f(this,void 0x0,void 0x0,function*(){const _0x245da4=_0x1003c3;if(_0x442106[_0x245da4(0x1ed)](_0x245da4(0x1c0)))_0x14940f(_0x5ab124,_0x442106);else{if(_0x442106[_0x245da4(0x1ed)](_0x245da4(0x1af)))_0x442106[_0x245da4(0x1ce)]('ul')['toggle'](),_0x442106['toggleClass'](_0x245da4(0x22d));else{if(_0x442106[_0x245da4(0x1ce)]('ul')[_0x245da4(0x1ce)]()[_0x245da4(0x179)]>0x0)_0x442106['children']('ul')[_0x245da4(0x1a3)](),_0x442106[_0x245da4(0x1ea)](_0x245da4(0x22d));else;}}});_0x5ab124[_0x1003c3(0x164)]['on'](_0x1003c3(0x1e7),'li',function(_0x3bc552){const _0x54bfef=_0x1003c3;var _0x31980b,_0x30dca8;_0x3bc552[_0x54bfef(0x19c)]();let _0x27af0f=$(this);if(_0x2467fd(_0x27af0f,_0x3bc552))_0x2e32d8(_0x27af0f);else{const _0x1ce4de=_0x27af0f['data'](_0x54bfef(0x226)),_0x1926f1=_0x27af0f[_0x54bfef(0x231)](_0x54bfef(0x1f4));if(_0x5ab124[_0x54bfef(0x197)][_0x54bfef(0x162)]&&!_0x5ab124[_0x54bfef(0x197)][_0x54bfef(0x162)](_0x1926f1))return;_0x5ab124[_0x54bfef(0x1bf)][_0x54bfef(0x231)](_0x54bfef(0x1f4),_0x1926f1);const _0x5381c9=((_0x31980b=_0x1926f1['displayName'])===null||_0x31980b===void 0x0?void 0x0:_0x31980b[_0x54bfef(0x1d3)])||((_0x30dca8=_0x1926f1[_0x54bfef(0x218)])===null||_0x30dca8===void 0x0?void 0x0:_0x30dca8[_0x54bfef(0x1fb)])||_0x1926f1[_0x54bfef(0x165)][_0x54bfef(0x160)](),_0x5555ef='['+_0x5381c9+']('+_0x1ce4de+')';_0x5ab124[_0x54bfef(0x1bf)][_0x54bfef(0x214)](_0x5555ef),_0x5ab124[_0x54bfef(0x1bf)][_0x54bfef(0x193)](_0x54bfef(0x18b)),_0x5ab124['$dropdown'][_0x54bfef(0x1b0)]();}}),_0x5ab124[_0x1003c3(0x164)]['on'](_0x1003c3(0x1f6),'li',function(_0x662dc1){const _0x35bde0=_0x1003c3;_0x662dc1[_0x35bde0(0x19c)]();let _0x239a54=$(this);_0x2467fd(_0x239a54,_0x662dc1)&&_0x2e32d8(_0x239a54),_0x49ee46(_0x5ab124,_0x239a54);}),$(document)['on'](_0x1003c3(0x1f6),function(_0x188aa6){const _0x5d9818=_0x1003c3;!$(_0x188aa6[_0x5d9818(0x22b)])[_0x5d9818(0x1db)](_0x5ab124[_0x5d9818(0x229)])[_0x5d9818(0x179)]&&_0x5ab124['$dropdown'][_0x5d9818(0x1b0)]();});}});},_0x38c615=()=>{const _0x4159fe=_0xc915fd,_0x16db03=$('#node-input-endpoint'),_0x3c5672=_0x16db03[_0x4159fe(0x214)](),_0x62b2b=RED[_0x4159fe(0x18d)][_0x4159fe(0x15b)](_0x3c5672);if(!_0x62b2b)return undefined;const {endpoint:_0x4beaf0,securityMode:_0x174b9e,securityPolicy:_0xea2e66,userIdentityType:_0x17d4df,credentials:_0x570836}=_0x62b2b,_0x138dea={'endpoint':_0x4beaf0,'securityMode':_0x174b9e,'securityPolicy':_0xea2e66,'userIdentityType':_0x17d4df,'credentials':_0x570836};return _0x138dea;},_0x3f6e90=()=>{return{'endpointNode':_0x456160};},_0x456160=()=>{const _0x2686e6=_0xc915fd,_0x5d3a0c=$('#node-input-endpoint'),_0xc6ffac=_0x5d3a0c[_0x2686e6(0x214)](),_0x581597=_0x38c615();if(!_0x581597)return undefined;return{'id':_0xc6ffac};};RED[_0xc915fd(0x18d)][_0xc915fd(0x1cb)](_0xc915fd(0x217),{'category':_0xc915fd(0x200),'color':'#C0DEED','align':_0xc915fd(0x1f8),'icon':_0xc915fd(0x1d5),'paletteLabel':_0xc915fd(0x1a8),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0xc915fd(0x1ab)},'historyReadParam':{'value':{'type':'raw','endTime':_0xc915fd(0x1cf),'startTime':_0xc915fd(0x1df),'numValuesPerNode':0x64,'returnBounds':!![]},'required':!![],'validate':_0x43db0c=>{if(_0x43db0c==='')return![];return!![];}},'nodeId':{'value':'','required':![]},'outputType':{'value':_0xc915fd(0x1d6),'required':!![]}},'outputs':0x2,'label'(){const _0x2e082a=_0xc915fd;return this[_0x2e082a(0x1fb)]||'OPCUA\x20Client\x20HistoryRead';},'labelStyle'(){const _0x31b8af=_0xc915fd;return this[_0x31b8af(0x1fb)]?_0x31b8af(0x185):'';},'oneditprepare'(){const _0x9a17cd=_0xc915fd,_0x535e62=this;_0x111c8b(),_0x535e62['inputs']=0x1;const _0x2654ac=$('#node-input-nodeId');_0x2654ac[_0x9a17cd(0x232)](Object[_0x9a17cd(0x21e)](Object[_0x9a17cd(0x21e)]({},_0x3f6e90()),{'isSelectable'(_0x584c3b){const _0x12f4fe=_0x9a17cd;return _0x584c3b[_0x12f4fe(0x1f7)]===_0x12f4fe(0x169);}})),$(_0x9a17cd(0x168))[_0x9a17cd(0x214)](_0x535e62['historyReadParam']['type']);switch(_0x535e62['historyReadParam'][_0x9a17cd(0x182)]){case'raw':$(_0x9a17cd(0x176))[_0x9a17cd(0x214)](_0x535e62[_0x9a17cd(0x1a9)][_0x9a17cd(0x1eb)]),$(_0x9a17cd(0x21a))['val'](_0x535e62[_0x9a17cd(0x1a9)]['endTime']),$(_0x9a17cd(0x1fc))[_0x9a17cd(0x214)](_0x535e62['historyReadParam']['numValuesPerNode']),$(_0x9a17cd(0x1bd))[_0x9a17cd(0x15f)]('checked',_0x535e62['historyReadParam'][_0x9a17cd(0x225)]);break;case _0x9a17cd(0x17e):$('#node-input-modified-startTime')[_0x9a17cd(0x214)](_0x535e62[_0x9a17cd(0x1a9)][_0x9a17cd(0x1eb)]),$(_0x9a17cd(0x1f3))[_0x9a17cd(0x214)](_0x535e62['historyReadParam'][_0x9a17cd(0x166)]),$('#node-input-modified-numValuesPerNode')[_0x9a17cd(0x214)](_0x535e62[_0x9a17cd(0x1a9)][_0x9a17cd(0x161)]),$(_0x9a17cd(0x1a4))[_0x9a17cd(0x15f)]('checked',_0x535e62[_0x9a17cd(0x1a9)]['returnBounds']);break;case _0x9a17cd(0x21b):_0x535e62[_0x9a17cd(0x1a9)][_0x9a17cd(0x153)]=_0x535e62[_0x9a17cd(0x1a9)]['aggregateConfiguration']||{},$('#node-input-processed-details-startTime')[_0x9a17cd(0x214)](_0x535e62[_0x9a17cd(0x1a9)]['startTime']),$('#node-input-processed-details-endTime')[_0x9a17cd(0x214)](_0x535e62['historyReadParam'][_0x9a17cd(0x166)]),$(_0x9a17cd(0x1b3))[_0x9a17cd(0x214)](_0x535e62[_0x9a17cd(0x1a9)][_0x9a17cd(0x1d8)]),$(_0x9a17cd(0x1d1))['val'](_0x535e62[_0x9a17cd(0x1a9)][_0x9a17cd(0x1a7)]),$('#node-input-processed-details-aggregateConfiguration-useServerCapabilitiesDefaults')[_0x9a17cd(0x15f)]('checked',_0x535e62['historyReadParam'][_0x9a17cd(0x153)][_0x9a17cd(0x1f1)]),$(_0x9a17cd(0x194))[_0x9a17cd(0x15f)](_0x9a17cd(0x191),_0x535e62[_0x9a17cd(0x1a9)]['aggregateConfiguration'][_0x9a17cd(0x22e)]),$('#node-input-processed-details-aggregateConfiguration-percentDataBad')[_0x9a17cd(0x214)](_0x535e62[_0x9a17cd(0x1a9)][_0x9a17cd(0x153)][_0x9a17cd(0x1ae)]),$('#node-input-processed-details-aggregateConfiguration-percentDataGood')[_0x9a17cd(0x214)](_0x535e62[_0x9a17cd(0x1a9)]['aggregateConfiguration'][_0x9a17cd(0x1d7)]),$('#node-input-processed-details-aggregateConfiguration-useSlopedExtrapolation')[_0x9a17cd(0x15f)](_0x9a17cd(0x191),_0x535e62[_0x9a17cd(0x1a9)][_0x9a17cd(0x153)][_0x9a17cd(0x1d9)]);break;}{function _0x50dd8a(){const _0xe71d33=_0x9a17cd;$(_0xe71d33(0x1b9))['hide'](),$('#section-modified')[_0xe71d33(0x1b0)](),$(_0xe71d33(0x21d))['hide'](),$(_0xe71d33(0x1cc))['hide'](),$('#section-annotation-data')['hide'](),$('#section-event')['hide']();}function _0x182cb3(){const _0x1c9e33=_0x9a17cd;_0x50dd8a();var _0x5c887b=$(_0x1c9e33(0x168))[_0x1c9e33(0x214)]();$(_0x1c9e33(0x222)+_0x5c887b)[_0x1c9e33(0x16c)]();}$(_0x9a17cd(0x168))['on']('change',_0x182cb3),_0x182cb3();}},'oneditsave'(){const _0x275a4c=_0xc915fd,_0x184678=_0x8c8a6a=>_0x8c8a6a[_0x275a4c(0x214)]()==undefined?'':_0x8c8a6a[_0x275a4c(0x214)]()['toString'](),_0xbd0783=_0x4260d9=>_0x4260d9[_0x275a4c(0x214)]()==undefined?0x0:_0x4260d9[_0x275a4c(0x214)](),_0x3c97cf=$('#select-history-type')[_0x275a4c(0x214)]();switch(_0x3c97cf){case _0x275a4c(0x18c):this['historyReadParam']={'type':_0x275a4c(0x18c),'startTime':_0x184678($(_0x275a4c(0x176))),'endTime':_0x184678($(_0x275a4c(0x21a))),'numValuesPerNode':_0xbd0783($(_0x275a4c(0x1fc))),'returnBounds':$(_0x275a4c(0x1bd))[_0x275a4c(0x15f)](_0x275a4c(0x191))};break;case _0x275a4c(0x17e):this[_0x275a4c(0x1a9)]={'type':_0x275a4c(0x17e),'startTime':_0x184678($(_0x275a4c(0x1d2))),'endTime':_0x184678($(_0x275a4c(0x1f3))),'numValuesPerNode':_0xbd0783($(_0x275a4c(0x1a0))),'returnBounds':$('#node-input-modified-returnBounds')['prop'](_0x275a4c(0x191))};break;case _0x275a4c(0x21b):this['historyReadParam']={'type':_0x275a4c(0x21b),'startTime':_0x184678($(_0x275a4c(0x186))),'endTime':_0x184678($('#node-input-processed-details-endTime')),'processingInterval':_0xbd0783($('#node-input-processed-details-processingInterval')),'aggregateType':_0x184678($(_0x275a4c(0x1d1))),'aggregateConfiguration':{'useServerCapabilitiesDefaults':$(_0x275a4c(0x1dd))[_0x275a4c(0x15f)]('checked'),'treatUncertainAsBad':$(_0x275a4c(0x194))[_0x275a4c(0x15f)](_0x275a4c(0x191)),'percentDataBad':_0xbd0783($(_0x275a4c(0x1ac))),'percentDataGood':_0xbd0783($(_0x275a4c(0x15d))),'useSlopedExtrapolation':$(_0x275a4c(0x1a2))[_0x275a4c(0x15f)](_0x275a4c(0x191))}};break;}}});}()));
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg0NmU0MGYiLCJfMHgzMzNiYjciLCJfMHgyNGQ3NDkiLCJfMHg0NTFiYTAiLCJfMHgzMzQ4MDEiLCJfMHgyYTNiYjIiLCJfMHg0MWE5ZjciLCJfMHg3OTZjZTgiLCJQcm9taXNlIiwiXzB4MzI4ZTQ5IiwiXzB4MTYwZjk1IiwiXzB4NDYyYzc2IiwiXzB4NDY4Y2IwIiwiXzB4NTU0OGI1IiwiXzB4NWI1NGE1IiwiXzB4MWI4NDAyIiwiXzB4MzMyN2M4IiwiXzB4MTA3MTdjIiwiXzB4NDQ0OTIxIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4NGI5OGM5IiwiXzB4MTlkMDY4IiwiXzB4NTlmODEwIiwiXzB4M2NkYWYxIiwiRXJyb3IiLCJfMHg1ZTNiODIiLCJfMHg1ZTgxNzIiLCJfMHgyYzIwNGQiLCJfMHgyZDI0MzIiLCJfMHgxMjdkMDgiLCJfMHg1MjZkM2IiLCJfMHgyNTZlMGYiLCJfMHg1YjEwNTUiLCJfMHg0MmY4MGEiLCJfMHgxNWM1NTQiLCJfMHgzMjI2ZDQiLCJfMHg0MTJkZTMiLCJfMHgyMmVhN2QiLCJfMHg0MzJjMDYiLCJfMHg0OWZmNzIiLCJfMHgxMzI4ZjEiLCJfMHg0ZjBiY2EiLCJfMHg4ZDU0MTkiLCJfMHhjMjk1ZGYiLCJfMHg1MDVmMTQiLCJfMHgzYmMxN2UiLCJfMHg1Y2RmY2EiLCJfMHgxMTE2ZGQiLCJlbmRwb2ludE5vZGUiLCJfMHgzN2NlZmQiLCJlbmRwb2ludCIsIl8weDU0MzI2NiIsImJhc2VVcmwiLCJfMHg1ZTFkZjAiLCJfMHgzZjk5MjciLCJfMHgzMzJlZGQiLCJfMHgzZWVkZjciLCJfMHgxMTczNjgiLCJfMHgzNjU4NmYiLCJPYmplY3QiLCJfMHg1NTQwZDYiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4NDI3YTk0IiwiXzB4MTdkMWVmIiwiXzB4NDdjOWU0IiwiXzB4MTg0ZjA5IiwiXzB4NGRlZjE3IiwiXzB4MzJhNGYyIiwiXzB4NDU5NGNjIiwiXzB4NDFkM2Q1IiwiXzB4MjU1MzI2IiwiXzB4NDE2MzZjIiwibm9kZUlkIiwiXzB4MzM0ZWNjIiwicm9vdE5vZGVJZCIsIl8weDU2YjY2ZSIsImlzVHlwZSIsIl8weDM2NDY5MSIsIl8weDEyMzE0NyIsIl8weDQ0N2ZlNyIsIl8weDRhZmNmMSIsIl8weDNlYmFjMSIsIl8weDJkNjIzNiIsIl8weDJmMDgzYSIsIl8weDIwYTg5NSIsIl8weDMxYjMxNiIsIl8weDFhMGJhNiIsIl8weGQ3NGFhOSIsIl8weDI5MTU4YSIsIl8weDE2NTAzMyIsIl8weDUwZTU3MSIsIl8weDVjOWJlZSIsIl8weDQ0OTE5YyIsIl8weDEzZDdhMSIsIl8weDIxNmYyZiIsIl8weDUyMDkxYiIsIl8weDUwMmIzNCIsIl8weDVjNzVlMiIsInNldFRpbWVvdXQiLCJfMHg0NmJjY2MiLCJfMHhlNDUxYiIsIl8weDEyODhmYSIsIl8weDJlNTQ1YiIsIl8weDEzNDQwNCIsIl8weDRkYzJhOCIsIl8weDNlYzg1ZiIsIl8weDRkYWI1OCIsIl8weGE0NjdkMSIsIl8weDQ2ZDcxOSIsIl8weDVlMDgxOSIsIl8weDE4ZDY1OCIsIl8weDE1ZTdmYiIsIl8weDIyM2UwYSIsIl8weDIxOWQ2ZiIsIl8weDIwZTEzOCIsIl8weDM2MTA4MyIsIl8weDE3MDVmOCIsIl8weDU4MzlmNCIsIl8weDEzMDVjMSIsIiQiLCJfMHgxZTcwZGUiLCJfMHg1MmMzYmEiLCJpY29uIiwiXzB4MjY2ZGEzIiwiY29sb3IiLCJfMHgxYzJmYTIiLCJfMHgxNmU1YzkiLCJfMHg0NDI0ZTEiLCJfMHg0ZWFiMDIiLCJfMHgyYmE5OGMiLCJfMHg0NjcwNDkiLCJfMHg0OWVlNDYiLCJfMHgzZTY1MjUiLCJfMHg0OGZmNzEiLCJfMHgxN2JmNTUiLCJfMHg0M2NjOWUiLCJfMHg2Yjg3MGIiLCJfMHgzNDUzMmQiLCJfMHgzYjlmODgiLCJfMHgxNGIxNmUiLCJfMHgyYTFkYTkiLCJfMHgxNDk0MGYiLCJfMHgyMmZkZjgiLCJfMHg1N2Y2ZjUiLCJfMHg1YTcyMDgiLCJfMHgyOTBlMmEiLCJfMHg1NjdjYTMiLCJfMHgzZWQ4ZDciLCJ1bmRlZmluZWQiLCJfMHgxYmI5MDMiLCJfMHgzMzEyYzAiLCJfMHgxZDAxZGIiLCJfMHgyODU2NGMiLCJfMHgyZmE0OTEiLCJfMHgyYzQzOGQiLCJfMHg0MDdhODMiLCJfMHgxNTgxMzMiLCJfMHhlNjE0YzEiLCJfMHg0MWRjMWQiLCJfMHgxMDE4ZTciLCJfMHgyMzk1ZGEiLCJfMHg0YTBjNGQiLCJfMHgzYzFlY2UiLCJyZWZlcmVuY2VzIiwiXzB4MWZjYzc4IiwiXzB4NjUxNjFkIiwiXzB4NDBiZTRkIiwiXzB4YjBhNGZjIiwiXzB4NTc2YjIxIiwiXzB4NGI1YjhhIiwiXzB4NGE0MjgxIiwiXzB4MmI4NDI3IiwiXzB4MzcxOWNhIiwiXzB4NTFjMjc2IiwiXzB4NGExMWViIiwiXzB4MTExYzhiIiwiXzB4MzEyYmMyIiwiXzB4NWI0NjQyIiwiXzB4MjYzMzcxIiwiXzB4MWViYzc3IiwiXzB4MTBkZjU1IiwiXzB4NTE0YjNjIiwiXzB4MTc3Y2Q4IiwiXzB4NTkwOGY1IiwiXzB4MzAxYjYxIiwiXzB4NWFiMTI0IiwiXzB4MTk5M2ZkIiwiXzB4MjhlMmFmIiwiXzB4MmJjODg2IiwiXzB4MjQ2N2ZkIiwiXzB4NDY0ZDllIiwiXzB4MzhkY2MyIiwiXzB4MjQxZmMxIiwiXzB4MzdhNzlmIiwiXzB4NDZkOWRiIiwiXzB4ODlhYzYiLCJfMHgyZTMyZDgiLCJfMHg0NDIxMDYiLCJfMHgzYmM1NTIiLCJfMHgzMTk4MGIiLCJfMHgzMGRjYTgiLCJfMHgyN2FmMGYiLCJfMHgxY2U0ZGUiLCJfMHgxOTI2ZjEiLCJfMHg1MzgxYzkiLCJfMHg1NTU1ZWYiLCJfMHg2NjJkYzEiLCJfMHgyMzlhNTQiLCJkb2N1bWVudCIsIl8weDE4OGFhNiIsIl8weDM4YzYxNSIsIl8weDE2ZGIwMyIsIl8weDNjNTY3MiIsIl8weDYyYjJiIiwiUkVEIiwiXzB4NGJlYWYwIiwic2VjdXJpdHlNb2RlIiwiXzB4MTc0YjllIiwic2VjdXJpdHlQb2xpY3kiLCJfMHhlYTJlNjYiLCJ1c2VySWRlbnRpdHlUeXBlIiwiXzB4MTdkNGRmIiwiY3JlZGVudGlhbHMiLCJfMHg1NzA4MzYiLCJfMHgxMzhkZWEiLCJfMHgzZjZlOTAiLCJfMHg0NTYxNjAiLCJfMHg1ZDNhMGMiLCJfMHhjNmZmYWMiLCJfMHg1ODE1OTciLCJfMHg0M2RiMGMiLCJfMHg1MzVlNjIiLCJfMHgyNjU0YWMiLCJfMHg1ODRjM2IiLCJfMHg1MGRkOGEiLCJfMHgxODJjYjMiLCJfMHg1Yzg4N2IiLCJfMHgxODQ2NzgiLCJfMHg4YzhhNmEiLCJfMHhiZDA3ODMiLCJfMHg0MjYwZDkiLCJfMHgzYzk3Y2YiXSwibWFwcGluZ3MiOiJpa0pBQUEsQ0FBQyxVLENBQ0csYSx3QkFtQkEsU0FBU0EsU0FBVCxDQUFtQkMsU0FBbkIsQ0FBNEJDLFNBQTVCLENBQXdDQyxTQUF4QyxDQUEyQ0MsU0FBM0MsQyxDQUNJLFNBQVNDLFNBQVQsQ0FBZUMsU0FBZixDLFFBQStCQSxTQUFBLFlBQWlCSCxTQUFqQixDQUFxQkcsU0FBckIsQ0FBNkIsSUFBSUgsU0FBSixDQUFNLFNBQVVJLFNBQVYsQyxDQUFxQkEsU0FBQSxDQUFRRCxTQUFSLEMsRUFBM0IsQyxTQUNyRCxHQUFLLENBQUFILFNBQUEsRUFBTSxDQUFBQSxTQUFBLENBQUlLLE9BQUosQ0FBTixDQUFMLENBQXlCLFNBQVVDLFNBQVYsQ0FBbUJDLFNBQW5CLEMseUJBQzVCLFNBQVNDLFNBQVQsQ0FBbUJDLFNBQW5CLEMseUJBQTRCLEcsQ0FBTUMsU0FBQSxDQUFLVCxTQUFBLEMsZ0JBQUEsRUFBZVEsU0FBZixDQUFMLEMsRUFBK0IsTUFBT0UsU0FBUCxDLENBQVlKLFNBQUEsQ0FBT0ksU0FBUCxDLEdBQzdFLFNBQVNDLFNBQVQsQ0FBa0JDLFNBQWxCLEMsQ0FBMkIsRyxDQUFNSCxTQUFBLENBQUtULFNBQUEsQyxPQUFBLEVBQW1CWSxTQUFuQixDQUFMLEMsRUFBbUMsTUFBT0MsU0FBUCxDLENBQVlQLFNBQUEsQ0FBT08sU0FBUCxDLEdBQ2hGLFNBQVNKLFNBQVQsQ0FBY0ssU0FBZCxDLHlCQUF3QkEsU0FBQSxDLE1BQUEsRUFBY1Qs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QUFBLENBQWN4SCxDQUFBLEMsa0RBQUEsQ0FBZCxDQUpBLEMsZUFLcEIsQ0FBZXNILFNBQUEsQ0FBWXRILENBQUEsQyxnQkFBQSxDQUFaLENBTEssQyx3QkFNcEIsQ0FBd0IsQywrQkFDcEIsQ0FBK0JBLENBQUEsQyxnQkFBQSxFLGdCQUFBLEUsU0FBQSxDQURYLEMscUJBRXBCLENBQXFCQSxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLENBRkQsQyxnQkFHcEIsQ0FBZ0J3SCxTQUFBLENBQWN4SCxDQUFBLEMsZ0JBQUEsQ0FBZCxDQUhJLEMsaUJBSXBCLENBQWlCd0gsU0FBQSxDQUFjeEgsQ0FBQSxDLGdCQUFBLENBQWQsQ0FKRyxDLHdCQUtwQixDQUF3QkEsQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxDQUxKLENBTkosQ0FBeEIsQ0FjQSxNQWxDUixDLENBcEc0QyxDQUFwRCxDLEVBeG1CSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJEYXRhVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtdGV4dC13aWR0aFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGljb246IFwiZmEtcXVlc3Rpb25cIiwgY29sb3I6IFwiZ3JleVwiIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGJyb3dzZSA9IChfYSwgbm9kZUlkXzEsIHRlbXBsYXRlXzEpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgbm9kZUlkXzEsIHRlbXBsYXRlXzFdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgdGVtcGxhdGUpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2Jyb3dzZWA7XG4gICAgICAgIGNvbnN0IGJyb3dzZURlc2NyaXB0aW9uID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB0ZW1wbGF0ZSksIHsgbm9kZUlkLCByZXN1bHRNYXNrOiA2MyB9KTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgYnJvd3NlRGVzY3JpcHRpb24sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlczogW10gfTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcImJyb3dzZSBmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICBjb25zdCByZWZlcmVuY2VzID0gcmVzcG9uc2UuYnJvd3NlUmVzdWx0LnJlZmVyZW5jZXMgfHwgW107XG4gICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXMgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHRlbXBsYXRlMSA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzQ2hpbGRcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB0ZW1wbGF0ZTIgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIk9yZ2FuaXplc1wiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IHdhbGtCYWNrd2FyZCA9IChfYSwgX2IpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgX2JdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIHsgbm9kZUlkLCByb290Tm9kZUlkLCBpc1R5cGUgfSkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vd2Fsay1iYWNrd2FyZGA7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgICAgICByb290Tm9kZUlkLFxuICAgICAgICAgICAgICAgIGlzVHlwZSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGpzb24gPSAoeWllbGQgZGF0YS5qc29uKCkpO1xuICAgICAgICByZXR1cm4ganNvbi5icm93c2VQYXRoO1xuICAgIH0pO1xuICAgIGNvbnN0IGludGVybmFsVmVyaWZ5ID0gKF9hLCAkaW5wdXRFbGVtZW50XzEsICRpbmZvXzEpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgJGlucHV0RWxlbWVudF8xLCAkaW5mb18xXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCAkaW5wdXRFbGVtZW50LCAkaW5mbykge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vY2hlY2tOb2RlSWRgO1xuICAgICAgICBjb25zdCBub2RlSWQgPSAkaW5wdXRFbGVtZW50LnZhbCgpO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHNldE5vdGlmaWNhdGlvbiA9ICh0ZXh0LCBjbGFzc05hbWUpID0+IHtcbiAgICAgICAgICAgICRpbmZvLnRleHQodGV4dCkuYWRkQ2xhc3MoXCJzdGVyZml2ZS1pbmZvXCIpLmFkZENsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAkaW5mby5zaG93KCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAkaW5mby5yZW1vdmVDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgICAgICRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgIH0sIDMwMDApO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBqc29uID0gKHlpZWxkIGRhdGEuanNvbigpKTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZztcbiAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihcIiEhZmFpbHVyZSEhXCIgKyBub2RlSWQsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChqc29uLnN0YXR1c0NvZGUubWF0Y2goL0dvb2QvKSkge1xuICAgICAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZ1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGpzb24ubm9kZUFkZHJlc3NTdHJpbmcpO1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCJHb29kXCIsIFwib2tcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChgJHtub2RlSWR9YCk7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKGAke2pzb24uc3RhdHVzQ29kZX0gJHtkYXRhLnN0YXR1c1RleHR9YCwgXCJmYWlsdXJlXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gZmV0Y2hDaGlsZHJlbigkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMSk7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQyID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUyKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlczogWy4uLmJyb3dzZVJlc3VsdDEucmVmZXJlbmNlcywgLi4uYnJvd3NlUmVzdWx0Mi5yZWZlcmVuY2VzXSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB0ZW1wbGF0ZVNUID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNTdWJ0eXBlXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHwgTm9kZUNsYXNzLk9iamVjdFR5cGUgfCBOb2RlQ2xhc3MuRGF0YVR5cGUgfCBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlLFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGZldGNoU3VidHlwZXMoJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZVNUKTtcbiAgICAgICAgICAgIHJldHVybiBicm93c2VSZXN1bHQxO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgbWFrZUVsZW1lbnQgPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICAgICAgaWYgKCFyZWZlcmVuY2UgfHwgIXJlZmVyZW5jZS5ub2RlSWQpIHtcbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgZmEtZXJyb3JcIiBzdHlsZT1cImNvbG9yOnJlZDtcIj48L2k+bm8gcmVmZXJlbmNlICE8dWw+PC91bD48L2xpPmApO1xuICAgICAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHQgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB7IGljb24sIGNvbG9yIH0gPSBnZXRJY29uKHJlZmVyZW5jZSk7XG4gICAgICAgIGNvbnN0IHRpdGxlID0gYCgke3JlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKX0pICR7KChfYyA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MubmFtZSkgfHwgKChfZCA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLnRleHQpIHx8IFwiXCJ9YDtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGkga2V5PVwiJHtyZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCl9XCJ9PjxzcGFuIGNsYXNzPVwidHJlZS10ZXh0XCIgdGl0bGU9JHt0aXRsZX0+PGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+ICR7dH08L3NwYW4+PHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoXCJleHBhbmRhYmxlXCIpO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwidmFsdWVcIiwgbik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgIH07XG4gICAgY29uc3QgZmluZEVsZW1lbnQgPSAobm9kZUlkLCAkdHJlZSkgPT4ge1xuICAgICAgICByZXR1cm4gJHRyZWUuZmluZChgbGlba2V5PVwiJHtub2RlSWR9XCJdYCk7XG4gICAgfTtcbiAgICBjb25zdCBzZWxlY3RTaW5nbGUgPSAodGhhdCwgJGxpKSA9PiB7XG4gICAgICAgIHRoYXQuJHRyZWUuZmluZChcImxpID4gLnRyZWUtdGV4dFwiKS5yZW1vdmVDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgICAgICAvLyBjbGVhciBhbGwgc2VsZWN0ZWQgaXRlbXNcbiAgICAgICAgJGxpLmZpbmQoXCIudHJlZS10ZXh0OmZpcnN0XCIpLmFkZENsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgfTtcbiAgICBjb25zdCBhdXRvRXhwYW5kID0gKHRoYXQsIGJyb3dzZVBhdGgsICR0cmVlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgLy8gZXhwYW5kIHRoZSB0cmVlIHRvIHNob3cgdGhlIG5vZGVJZFxuICAgICAgICBsZXQgJGN1cnJlbnQgPSAkdHJlZS5jaGlsZHJlbihcIjpmaXJzdFwiKTtcbiAgICAgICAgYnJvd3NlUGF0aC5yZWxhdGl2ZVBhdGguZWxlbWVudHMgfHwgW107XG4gICAgICAgIGNvbnN0IG5vZGVJZHMgPSBicm93c2VQYXRoLm5vZGVJZHMgfHwgW107XG4gICAgICAgIGlmIChub2RlSWRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgbiBvZiBub2RlSWRzKSB7XG4gICAgICAgICAgICBpZiAoJGN1cnJlbnQuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgLy8gbmVlZCB0byBleHBhbmQgYW5kIHNlbGVjdCB0aGUgcmlnaHQgZWxlbWVudFxuICAgICAgICAgICAgICAgIHlpZWxkIF9leHBhbmRMaSh0aGF0LCAkY3VycmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IGZpbmRFbGVtZW50KG4sICRjdXJyZW50KTtcbiAgICAgICAgICAgIGlmICgkZWxlbWVudC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkY3VycmVudCA9ICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIHNlbGVjdFNpbmdsZSh0aGF0LCAkY3VycmVudCk7XG4gICAgICAgIHNjcm9sbFRvTGkodGhhdC4kZHJvcGRvd24sICRjdXJyZW50KTtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBzY3JvbGxUb0xpKCRjb250YWluZXIsICR0YXJnZXRMaSkge1xuICAgICAgICAvLyBHZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSB0YXJnZXQgaXRlbSByZWxhdGl2ZSB0byBpdHMgY29udGFpbmVyXG4gICAgICAgIGNvbnN0IGxpUG9zID0gJHRhcmdldExpLnBvc2l0aW9uKCkudG9wO1xuICAgICAgICAvLyBHZXQgdGhlIGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uIG9mIHRoZSBjb250YWluZXJcbiAgICAgICAgY29uc3QgY29udGFpbmVyU2Nyb2xsVG9wID0gJGNvbnRhaW5lci5zY3JvbGxUb3AoKTtcbiAgICAgICAgaWYgKGNvbnRhaW5lclNjcm9sbFRvcCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHBvc2l0aW9uIHRvIHNjcm9sbCB0byAoY3VycmVudCBzY3JvbGwgKyBpdGVtJ3MgcG9zaXRpb24pXG4gICAgICAgIC8vIEFkanVzdCB0aGlzIGNhbGN1bGF0aW9uIGJhc2VkIG9uIHlvdXIgbmVlZHNcbiAgICAgICAgY29uc3Qgc2Nyb2xsVG8gPSBjb250YWluZXJTY3JvbGxUb3AgKyBsaVBvcyAtICRjb250YWluZXIuaGVpZ2h0KCkgLyAyICsgJHRhcmdldExpLmhlaWdodCgpIC8gMjtcbiAgICAgICAgLy8gU2Nyb2xsIHRoZSBjb250YWluZXIgdG8gZW5zdXJlIHRoZSBpdGVtIGlzIHZpc2libGVcbiAgICAgICAgJGNvbnRhaW5lci5hbmltYXRlKHtcbiAgICAgICAgICAgIHNjcm9sbFRvcDogc2Nyb2xsVG8sXG4gICAgICAgIH0sIDUwMCk7IC8vIEFkanVzdCB0aGUgZHVyYXRpb24gKDUwMG1zKSBhcyBuZWVkZWRcbiAgICB9XG4gICAgY29uc3QgcmVhY2hTZWxlY3Rpb24gPSAodGhhdCwgcGFyZW50Tm9kZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IG5vZGVJZCA9IHRoYXQuJGlucHV0LnZhbCgpO1xuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgcm9vdE5vZGVJZDogcGFyZW50Tm9kZS5ub2RlSWQsXG4gICAgICAgICAgICBpc1R5cGU6IHRoYXQub3B0aW9ucy5pc1R5cGVSZWYgfHwgZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgY29uc3QgYnJvd3NlUGF0aCA9IHlpZWxkIHdhbGtCYWNrd2FyZChkYXRhLCBvcHRpb25zKTtcbiAgICAgICAgaWYgKCFicm93c2VQYXRoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgeWllbGQgYXV0b0V4cGFuZCh0aGF0LCBicm93c2VQYXRoLCB0aGF0LiR0cmVlKTtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBfZmV0Y2hEYXRhRm9yTm9kZSh0aGF0LCAkbm9kZSwgZmV0Y2hGdW5jLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwibG9hZGluZ1wiKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICRub2RlLmFwcGVuZCgnPGRpdiBjbGFzcz1cInNwaW5uZXJcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgcmVmZXJlbmNlcyB9ID0geWllbGQgZmV0Y2hGdW5jKCRub2RlLCBkYXRhKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlZmVyZW5jZSBvZiByZWZlcmVuY2VzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuZmlsdGVyICYmICF0aGF0Lm9wdGlvbnMuZmlsdGVyKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImZldGNoZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoYDxsaT5lcnJvciAke2Vyci5tZXNzYWdlfTwvbGk+YCk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJcIiwgZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRub2RlLmZpbmQoXCIuc3Bpbm5lclwiKS5yZW1vdmUoKTtcbiAgICAgICAgICAgICRub2RlLnJlbW92ZUNsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1ha2VDb25uZWN0aW9uKHRoYXQpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIGZ1bmN0aW9uIF9leHBhbmRMaSh0aGF0LCAkbGkpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgICAgIGNvbnN0IGYgPSAhdGhhdC5vcHRpb25zLmlzVHlwZVJlZiA/IGZldGNoQ2hpbGRyZW4gOiBmZXRjaFN1YnR5cGVzO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB5aWVsZCBfZmV0Y2hEYXRhRm9yTm9kZSh0aGF0LCAkbGksIGYsIGRhdGEpO1xuICAgICAgICAgICAgICAgIC8vIG1hcmsgYXMgZXhwYW5kZWRcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ub2RlQnJvd3NlclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlOiAoKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBicm93c2VOYW1lOiB7IG5hbWVzcGFjZUluZGV4OiAwLCBuYW1lOiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICBub2RlQ2xhc3M6IFwiT2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIG5vZGVJZDogXCJucz0wO2k9ODVcIixcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IHsgdGV4dDogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZURlZmluaXRpb246IEZvbGRlclR5cGUsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZmlsdGVyOiAoKSA9PiB0cnVlLFxuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICAgICAgaXNUeXBlUmVmOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNvbHZlUGFyZW50Tm9kZSgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGF0Ll9fcGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHR5cGVvZiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLnBhcmVudE5vZGUuY2FsbCh0aGF0KSA6IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVzYyA9IHlpZWxkIGE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fX3BhcmVudE5vZGUgPSBkZXNjO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fX3BhcmVudE5vZGUgPSBhO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGF0Ll9fcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNldCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgLy8gYWxzbyByZXNldCBwYXJlbnQgbm9kZVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdGhhdDtcbiAgICAgICAgICAgICAgICAgICAgYS5fX3BhcmVudE5vZGUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyZW50Tm9kZSA9IHlpZWxkIHRoaXMucmVzb2x2ZVBhcmVudE5vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChwYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LmN1cnJlbnRQYXJlbnQgPSBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZlcmlmeSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgICAgIGludGVybmFsVmVyaWZ5KGRhdGEsIHRoYXQuJGlucHV0LCB0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvID0gJChcIjxkaXYvPlwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcInN0ZXJmaXZlLWNvbWJvLWJveFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQucmVwbGFjZVdpdGgodGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAgPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwiaW5wdXQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGlucHV0R3JvdXApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJGlucHV0KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLXNpdGVtYXBcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdG9nZ2xlVHJlZUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0bi5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZWVkVG9SZWFjaFNlbGVjdGlvbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0cmVlIHdpZGdldCBpcyBnb2luZyB0byBiZWNvbWUgdmlzaWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudE5vZGUgPSB5aWVsZCB0aGF0LnJlc29sdmVQYXJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudE5vZGUgIT09IHRoYXQuY3VycmVudFBhcmVudCB8fCAoKF9hID0gdGhhdC5jdXJyZW50UGFyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eubm9kZUlkKSAhPT0gcGFyZW50Tm9kZS5ub2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgdGhhdC5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkVG9SZWFjaFNlbGVjdGlvbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRUb1JlYWNoU2VsZWN0aW9uICYmICh5aWVsZCByZWFjaFNlbGVjdGlvbih0aGF0LCBwYXJlbnROb2RlKSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1mbGFza1wiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR2ZXJpZnlCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52ZXJpZnkoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIiwgXCJlbnRlciBhIG5vZGVJZCBvciBhIGJyb3dzZVBhdGggXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvID0gJChgPGRpdiBjbGFzcz1cImluZm8tdGV4dFwiPjwvZGl2PmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcInN0ZXJmaXZlLWRyb3Bkb3duXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5mbyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlID0gJChgPHVsIGNsYXNzPVwic3RlcmZpdmUtdHJlZVwiPjwvdWw+YCkuYXBwZW5kVG8odGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpc09uTGVmdFNpemUgPSAoJGxpLCBldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVXaWR0aCA9IDIwOyAvLyBTZXQgd2lkdGggb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlSGVpZ2h0ID0gMjA7IC8vIFNldCBoZWlnaHQgb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFBvcyA9ICRsaS5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5wYWdlWCA+PSBlbGVtZW50UG9zLmxlZnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVggPD0gZWxlbWVudFBvcy5sZWZ0ICsgYmVmb3JlV2lkdGggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPj0gZWxlbWVudFBvcy50b3AgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPD0gZWxlbWVudFBvcy50b3AgKyBiZWZvcmVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvZ2dsZUV4cGFuc2lvbiA9ICgkbGkpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9leHBhbmRMaSh0aGF0LCAkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUb2dnbGUgaXRzIGV4cGFuZGVkL2NvbGxhcHNlZCBzdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiZGJsY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPbkxlZnRTaXplKCRsaSwgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVFeHBhbnNpb24oJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gJGxpLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9ICRsaS5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUgJiYgIXRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gYFske2Rpc3BsYXlOYW1lfV0oJHt2YWx1ZX0pYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0U2luZ2xlKHRoYXQsICRsaSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IHJlZE5vZGUgPSBSRUQubm9kZXMubm9kZShlbmRwb2ludElkKTtcbiAgICAgICAgaWYgKCFyZWROb2RlKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgLy8gY29uc3QgY3JlZGVudGlhbHMgPSBSRUQuKGVuZHBvaW50SWQpO1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIHNhbml0aXplIGFuZCBleHRyYWN0IHRoZSBlbmRwb2ludCBhdHRyaWJ1dGVzIG9ubHkgKCBub3QgdGhlIG5vZGUtcmVkIHN0dWZmKVxuICAgICAgICBjb25zdCB7IGVuZHBvaW50LCBzZWN1cml0eU1vZGUsIHNlY3VyaXR5UG9saWN5LCB1c2VySWRlbnRpdHlUeXBlLCBjcmVkZW50aWFscyB9ID0gcmVkTm9kZTtcbiAgICAgICAgY29uc3QgcmV0VmFsdWUgPSB7XG4gICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzLFxuICAgICAgICB9O1xuICAgICAgICAvLyB4eCBjb25zb2xlLmxvZyhcInh4eFwiLCByZXRWYWx1ZSk7XG4gICAgICAgIHJldHVybiByZXRWYWx1ZTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycyxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVycyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCBlbmRwb2ludE5yID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgIGlmICghZW5kcG9pbnROcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGVuZHBvaW50SWQsXG4gICAgICAgICAgICAvLyBlbmRwb2ludDogZW5kcG9pbnROci5lbmRwb2ludCxcbiAgICAgICAgICAgIC8vIHNlY3VyaXR5TW9kZTogZW5kcG9pbnROci5zZWN1cml0eU1vZGUsXG4gICAgICAgICAgICAvLyBzZWN1cml0eVBvbGljeTogZW5kcG9pbnROci5zZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyB1c2VySWRlbnRpdHlUeXBlOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICAvLyBjcmVkZW50aWFsOiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIHVzZXJOYW1lOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlck5hbWUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyBwYXNzd29yZDogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnBhc3N3b3JkIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgLy8gdXNlckNlcnRpZmljYXRlOiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJDZXJ0aWZpY2F0ZSxcbiAgICAgICAgICAgIC8vIHVzZXJQcml2YXRla2V5OiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJQcml2YXRla2V5LFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBSRUQubm9kZXMucmVnaXN0ZXJUeXBlKFwiT3BjVWEtQ2xpZW50Mi1IaXN0b3J5UmVhZFwiLCB7XG4gICAgICAgIGNhdGVnb3J5OiBcIm9wY3VhXCIsXG4gICAgICAgIGNvbG9yOiBcIiNDMERFRURcIixcbiAgICAgICAgYWxpZ246IFwicmlnaHRcIixcbiAgICAgICAgaWNvbjogXCIuLi8uLi9pY29ucy9vcGN1YW5vZGVMb2dvLnBuZ1wiLFxuICAgICAgICBwYWxldHRlTGFiZWw6IFwicmVhZC1oaXN0b3J5XCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBpbnB1dHM6IHsgdmFsdWU6IDEgfSxcbiAgICAgICAgICAgIG91dHB1dDogeyB2YWx1ZTogNCB9LFxuICAgICAgICAgICAgLy8gQ29tbW9uXG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUsIHR5cGU6IFwiT3BjVWEtRW5kcG9pbnQyXCIgfSxcbiAgICAgICAgICAgIGhpc3RvcnlSZWFkUGFyYW06IHtcbiAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInJhd1wiLFxuICAgICAgICAgICAgICAgICAgICBlbmRUaW1lOiBcIjFtIGFnb1wiLFxuICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWU6IFwiMTFtIGFnb1wiLFxuICAgICAgICAgICAgICAgICAgICBudW1WYWx1ZXNQZXJOb2RlOiAxMDAsXG4gICAgICAgICAgICAgICAgICAgIHJldHVybkJvdW5kczogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbGlkYXRlOiAodmFsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWwgPT09IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLy8gZm9yIGFjdGlvbiByZWFkIEhpc3RvcnlcbiAgICAgICAgICAgIG5vZGVJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBvdXRwdXRUeXBlOiB7IHZhbHVlOiBcIlZhbHVlXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIH0sXG4gICAgICAgIC8vIGlucHV0czosXG4gICAgICAgIG91dHB1dHM6IDIsIC8vIDIgb3V0cHV0LCBzZWNvbmQgZm9yIHJhdyBub2RlLW9wY3VhIGRpYWdub3N0aWNzIG9yIG1vcmUgY29tcGxldGUgbWVzc2FnZVxuICAgICAgICBsYWJlbCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgXCJPUENVQSBDbGllbnQgSGlzdG9yeVJlYWRcIjtcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWxTdHlsZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgPyBcIm5vZGVfbGFiZWxfaXRhbGljXCIgOiBcIlwiO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXM7XG4gICAgICAgICAgICBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQoKTtcbiAgICAgICAgICAgIG5vZGUuaW5wdXRzID0gMTtcbiAgICAgICAgICAgIGNvbnN0ICRub2RlSWQgPSAkKFwiI25vZGUtaW5wdXQtbm9kZUlkXCIpO1xuICAgICAgICAgICAgJG5vZGVJZC5ub2RlQnJvd3NlcihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSksIHsgaXNTZWxlY3RhYmxlKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiVmFyaWFibGVcIjtcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgICAgICQoXCIjc2VsZWN0LWhpc3RvcnktdHlwZVwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLnR5cGUpO1xuICAgICAgICAgICAgc3dpdGNoIChub2RlLmhpc3RvcnlSZWFkUGFyYW0udHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJyYXdcIjpcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXJhdy1zdGFydFRpbWVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5zdGFydFRpbWUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcmF3LWVuZFRpbWVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5lbmRUaW1lKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXJhdy1udW1WYWx1ZXNQZXJOb2RlXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0ubnVtVmFsdWVzUGVyTm9kZSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1yZXR1cm5Cb3VuZHNcIikucHJvcChcImNoZWNrZWRcIiwgbm9kZS5oaXN0b3J5UmVhZFBhcmFtLnJldHVybkJvdW5kcyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJtb2RpZmllZFwiOlxuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtbW9kaWZpZWQtc3RhcnRUaW1lXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0uc3RhcnRUaW1lKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LW1vZGlmaWVkLWVuZFRpbWVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5lbmRUaW1lKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LW1vZGlmaWVkLW51bVZhbHVlc1Blck5vZGVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5udW1WYWx1ZXNQZXJOb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LW1vZGlmaWVkLXJldHVybkJvdW5kc1wiKS5wcm9wKFwiY2hlY2tlZFwiLCBub2RlLmhpc3RvcnlSZWFkUGFyYW0ucmV0dXJuQm91bmRzKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcInByb2Nlc3NlZC1kZXRhaWxzXCI6XG4gICAgICAgICAgICAgICAgICAgIG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5hZ2dyZWdhdGVDb25maWd1cmF0aW9uID0gbm9kZS5oaXN0b3J5UmVhZFBhcmFtLmFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24gfHwge307XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1zdGFydFRpbWVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5zdGFydFRpbWUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtZW5kVGltZVwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLmVuZFRpbWUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtcHJvY2Vzc2luZ0ludGVydmFsXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0ucHJvY2Vzc2luZ0ludGVydmFsKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZVR5cGVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5hZ2dyZWdhdGVUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24tdXNlU2VydmVyQ2FwYWJpbGl0aWVzRGVmYXVsdHNcIikucHJvcChcImNoZWNrZWRcIiwgbm9kZS5oaXN0b3J5UmVhZFBhcmFtLmFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24udXNlU2VydmVyQ2FwYWJpbGl0aWVzRGVmYXVsdHMpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi10cmVhdFVuY2VydGFpbkFzQmFkXCIpLnByb3AoXCJjaGVja2VkXCIsIG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5hZ2dyZWdhdGVDb25maWd1cmF0aW9uLnRyZWF0VW5jZXJ0YWluQXNCYWQpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi1wZXJjZW50RGF0YUJhZFwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLmFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24ucGVyY2VudERhdGFCYWQpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi1wZXJjZW50RGF0YUdvb2RcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5hZ2dyZWdhdGVDb25maWd1cmF0aW9uLnBlcmNlbnREYXRhR29vZCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVDb25maWd1cmF0aW9uLXVzZVNsb3BlZEV4dHJhcG9sYXRpb25cIikucHJvcChcImNoZWNrZWRcIiwgbm9kZS5oaXN0b3J5UmVhZFBhcmFtLmFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24udXNlU2xvcGVkRXh0cmFwb2xhdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSBhZHZhbmNlZCBjb250cm9sc1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBoaWRlQWxsU2VjdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLXJhd1wiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1tb2RpZmllZFwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1wcm9jZXNzZWQtZGV0YWlsc1wiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1hdC10aW1lXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLWFubm90YXRpb24tZGF0YVwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1ldmVudFwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHRvZ2dsZVNlY3Rpb25zKCkge1xuICAgICAgICAgICAgICAgICAgICBoaWRlQWxsU2VjdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ZWRWYWx1ZSA9ICQoXCIjc2VsZWN0LWhpc3RvcnktdHlwZVwiKS52YWwoKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gYWxlcnQoXCJ0b2dnbGVTZWN0aW9ucyBcIiArIHNlbGVjdGVkVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tXCIgKyBzZWxlY3RlZFZhbHVlKS5zaG93KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICQoXCIjc2VsZWN0LWhpc3RvcnktdHlwZVwiKS5vbihcImNoYW5nZVwiLCB0b2dnbGVTZWN0aW9ucyk7XG4gICAgICAgICAgICAgICAgdG9nZ2xlU2VjdGlvbnMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0c2F2ZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlQXNUZXh0ID0gKGEpID0+IChhLnZhbCgpID09IHVuZGVmaW5lZCA/IFwiXCIgOiBhLnZhbCgpLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgY29uc3QgdmFsdWVBc051bWJlciA9IChhKSA9PiAoYS52YWwoKSA9PSB1bmRlZmluZWQgPyAwIDogYS52YWwoKSk7XG4gICAgICAgICAgICBjb25zdCB0eXBlID0gJChcIiNzZWxlY3QtaGlzdG9yeS10eXBlXCIpLnZhbCgpO1xuICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcInJhd1wiOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpc3RvcnlSZWFkUGFyYW0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInJhd1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lOiB2YWx1ZUFzVGV4dCgkKFwiI25vZGUtaW5wdXQtcmF3LXN0YXJ0VGltZVwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRUaW1lOiB2YWx1ZUFzVGV4dCgkKFwiI25vZGUtaW5wdXQtcmF3LWVuZFRpbWVcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbnVtVmFsdWVzUGVyTm9kZTogdmFsdWVBc051bWJlcigkKFwiI25vZGUtaW5wdXQtcmF3LW51bVZhbHVlc1Blck5vZGVcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuQm91bmRzOiAkKFwiI25vZGUtaW5wdXQtcmV0dXJuQm91bmRzXCIpLnByb3AoXCJjaGVja2VkXCIpLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwibW9kaWZpZWRcIjpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaXN0b3J5UmVhZFBhcmFtID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJtb2RpZmllZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lOiB2YWx1ZUFzVGV4dCgkKFwiI25vZGUtaW5wdXQtbW9kaWZpZWQtc3RhcnRUaW1lXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZFRpbWU6IHZhbHVlQXNUZXh0KCQoXCIjbm9kZS1pbnB1dC1tb2RpZmllZC1lbmRUaW1lXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bVZhbHVlc1Blck5vZGU6IHZhbHVlQXNOdW1iZXIoJChcIiNub2RlLWlucHV0LW1vZGlmaWVkLW51bVZhbHVlc1Blck5vZGVcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuQm91bmRzOiAkKFwiI25vZGUtaW5wdXQtbW9kaWZpZWQtcmV0dXJuQm91bmRzXCIpLnByb3AoXCJjaGVja2VkXCIpLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwicHJvY2Vzc2VkLWRldGFpbHNcIjpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaXN0b3J5UmVhZFBhcmFtID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJwcm9jZXNzZWQtZGV0YWlsc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lOiB2YWx1ZUFzVGV4dCgkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtc3RhcnRUaW1lXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZFRpbWU6IHZhbHVlQXNUZXh0KCQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1lbmRUaW1lXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NpbmdJbnRlcnZhbDogdmFsdWVBc051bWJlcigkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtcHJvY2Vzc2luZ0ludGVydmFsXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFnZ3JlZ2F0ZVR5cGU6IHZhbHVlQXNUZXh0KCQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVUeXBlXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VTZXJ2ZXJDYXBhYmlsaXRpZXNEZWZhdWx0czogJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24tdXNlU2VydmVyQ2FwYWJpbGl0aWVzRGVmYXVsdHNcIikucHJvcChcImNoZWNrZWRcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJlYXRVbmNlcnRhaW5Bc0JhZDogJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24tdHJlYXRVbmNlcnRhaW5Bc0JhZFwiKS5wcm9wKFwiY2hlY2tlZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJjZW50RGF0YUJhZDogdmFsdWVBc051bWJlcigkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi1wZXJjZW50RGF0YUJhZFwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVyY2VudERhdGFHb29kOiB2YWx1ZUFzTnVtYmVyKCQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVDb25maWd1cmF0aW9uLXBlcmNlbnREYXRhR29vZFwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlU2xvcGVkRXh0cmFwb2xhdGlvbjogJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24tdXNlU2xvcGVkRXh0cmFwb2xhdGlvblwiKS5wcm9wKFwiY2hlY2tlZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
|
9
9
|
</script>
|
10
10
|
<script type="text/x-red" data-template-name="OpcUa-Client2-HistoryRead">
|
11
11
|
<style>
|