@opcua/for-node-red 2.5.0 → 2.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/all.js +1 -1
- package/package.json +1 -1
- package/source/OpcUa-Client2-Browse/OpcUa-Client2-Browse.html +2 -13
- package/source/OpcUa-Client2-Call/OpcUa-Client2-Call.html +2 -2
- package/source/OpcUa-Client2-Explore/OpcUa-Client2-Explore.html +2 -5
- 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 +8 -6
- package/source/OpcUa-Client2-Write/OpcUa-Client2-Write.html +2 -5
- package/source/OpcUa-Endpoint2/OpcUa-Endpoint2.html +2 -2
package/package.json
CHANGED
@@ -4,8 +4,8 @@
|
|
4
4
|
</style>
|
5
5
|
|
6
6
|
<script type="text/javascript">
|
7
|
-
function _0x55e4(_0xf3acad,_0x4e5685){const _0x4ab48f=_0x4ab4();return _0x55e4=function(_0x55e4dd,_0x27faad){_0x55e4dd=_0x55e4dd-0x9d;let _0x56f31a=_0x4ab48f[_0x55e4dd];return _0x56f31a;},_0x55e4(_0xf3acad,_0x4e5685);}(function(_0x4be546,_0x5b7004){const _0xc4817d=_0x55e4,_0x4f83e7=_0x4be546();while(!![]){try{const _0x371c7a=parseInt(_0xc4817d(0xaf))/0x1*(parseInt(_0xc4817d(0xa1))/0x2)+-parseInt(_0xc4817d(0xbf))/0x3+parseInt(_0xc4817d(0x155))/0x4+parseInt(_0xc4817d(0x102))/0x5+-parseInt(_0xc4817d(0xc7))/0x6+-parseInt(_0xc4817d(0x135))/0x7*(-parseInt(_0xc4817d(0xf1))/0x8)+-parseInt(_0xc4817d(0x118))/0x9;if(_0x371c7a===_0x5b7004)break;else _0x4f83e7['push'](_0x4f83e7['shift']());}catch(_0x4addae){_0x4f83e7['push'](_0x4f83e7['shift']());}}}(_0x4ab4,0x94426),(function(){'use strict';const _0x3403fd=_0x55e4;function _0x2d3a17(_0x9b0072,_0xdc09cc,_0x42a382,_0x15ba41){function _0x1d259b(_0xb3699d){return _0xb3699d instanceof _0x42a382?_0xb3699d:new _0x42a382(function(_0x3b0538){_0x3b0538(_0xb3699d);});}return new(_0x42a382||(_0x42a382=Promise))(function(_0x1a1e09,_0x52d689){const _0x21efbe=_0x55e4;function _0x5da42e(_0x2aaf97){const _0x2381a2=_0x55e4;try{_0xb407f8(_0x15ba41[_0x2381a2(0x15c)](_0x2aaf97));}catch(_0x531ff9){_0x52d689(_0x531ff9);}}function _0x1abdb0(_0x466f07){try{_0xb407f8(_0x15ba41['throw'](_0x466f07));}catch(_0x54fcb1){_0x52d689(_0x54fcb1);}}function _0xb407f8(_0x410839){const _0x2f23b7=_0x55e4;_0x410839[_0x2f23b7(0x10c)]?_0x1a1e09(_0x410839[_0x2f23b7(0xf5)]):_0x1d259b(_0x410839['value'])[_0x2f23b7(0xfd)](_0x5da42e,_0x1abdb0);}_0xb407f8((_0x15ba41=_0x15ba41[_0x21efbe(0xb4)](_0x9b0072,_0xdc09cc||[]))[_0x21efbe(0x15c)]());});}typeof SuppressedError===_0x3403fd(0x119)?SuppressedError:function(_0xe40f14,_0x4ed84e,_0x391632){const _0x5c5378=_0x3403fd;var _0x450764=new Error(_0x391632);return _0x450764[_0x5c5378(0xd5)]='SuppressedError',_0x450764[_0x5c5378(0xff)]=_0xe40f14,_0x450764[_0x5c5378(0x13e)]=_0x4ed84e,_0x450764;};const _0x1cf865=_0x3403fd(0x134),_0x1858ae=_0x3403fd(0xce),_0x306084=_0x3403fd(0xd2),_0x2925e1=_0x3403fd(0xb0),_0x74b2da=_0x3403fd(0x101),_0x534118=_0x3403fd(0x10f),_0x29d242=_0x3403fd(0xfb);var _0x49d299;(function(_0x1c26be){const _0x37b10f=_0x3403fd;_0x1c26be[_0x1c26be[_0x37b10f(0xcf)]=0x0]=_0x37b10f(0xcf),_0x1c26be[_0x1c26be[_0x37b10f(0x142)]=0x1]='Inverse',_0x1c26be[_0x1c26be[_0x37b10f(0x14b)]=0x2]=_0x37b10f(0x14b),_0x1c26be[_0x1c26be[_0x37b10f(0xd0)]=0x3]=_0x37b10f(0xd0);}(_0x49d299||(_0x49d299={})));var _0x13e978;(function(_0x3086ce){const _0x449224=_0x3403fd;_0x3086ce[_0x3086ce[_0x449224(0x15b)]=0x0]=_0x449224(0x15b),_0x3086ce[_0x3086ce[_0x449224(0xa4)]=0x1]=_0x449224(0xa4),_0x3086ce[_0x3086ce[_0x449224(0x141)]=0x2]='Variable',_0x3086ce[_0x3086ce[_0x449224(0xee)]=0x4]=_0x449224(0xee),_0x3086ce[_0x3086ce[_0x449224(0xcb)]=0x8]=_0x449224(0xcb),_0x3086ce[_0x3086ce[_0x449224(0xde)]=0x10]=_0x449224(0xde),_0x3086ce[_0x3086ce[_0x449224(0xa6)]=0x20]=_0x449224(0xa6),_0x3086ce[_0x3086ce[_0x449224(0x11b)]=0x40]=_0x449224(0x11b),_0x3086ce[_0x3086ce[_0x449224(0xfc)]=0x80]=_0x449224(0xfc);}(_0x13e978||(_0x13e978={})));var _0x14378a;(function(_0x3c0e74){const _0x232f01=_0x3403fd;_0x3c0e74[_0x3c0e74[_0x232f01(0xa4)]=0x1]='Object',_0x3c0e74[_0x3c0e74[_0x232f01(0x141)]=0x2]=_0x232f01(0x141),_0x3c0e74[_0x3c0e74[_0x232f01(0xee)]=0x4]=_0x232f01(0xee),_0x3c0e74[_0x3c0e74[_0x232f01(0xcb)]=0x8]='ObjectType',_0x3c0e74[_0x3c0e74[_0x232f01(0xde)]=0x10]=_0x232f01(0xde),_0x3c0e74[_0x3c0e74[_0x232f01(0xa6)]=0x20]=_0x232f01(0xa6),_0x3c0e74[_0x3c0e74[_0x232f01(0x11b)]=0x40]='DataType',_0x3c0e74[_0x3c0e74[_0x232f01(0xfc)]=0x80]=_0x232f01(0xfc);}(_0x14378a||(_0x14378a={})));function _0x134e57(_0x1768fb,_0x2d9388){const _0x2afcaa=_0x3403fd;if(typeof _0x2d9388==='number')return _0x2d9388;const _0x42bc19=parseInt(_0x2d9388,0xa);if(!isNaN(_0x42bc19))return _0x42bc19;const _0x4a747f=_0x2d9388[_0x2afcaa(0x10d)](/\||;|,/)['map'](_0x495c3f=>_0x495c3f[_0x2afcaa(0x112)]());let _0x1d254a=0x0;for(const _0x5b1091 of _0x4a747f){_0x1d254a|=_0x1768fb[_0x5b1091];}return _0x1d254a;}function _0x2f931c(_0x3b21f3,_0x269af6){const _0x579537=_0x3403fd;_0x269af6=_0x134e57(_0x3b21f3,_0x269af6);const _0x1979be=[];if(!_0x3b21f3)return _0x1979be[_0x579537(0x14c)]('\x20|\x20');for(const [_0x2ccf7b,_0x3ebf6a]of Object[_0x579537(0x125)](_0x3b21f3)){typeof _0x269af6==='number'&&((_0x269af6&_0x3ebf6a)===_0x3ebf6a&&_0x1979be[_0x579537(0x13d)](_0x2ccf7b));}return _0x1979be[_0x579537(0x14c)](_0x579537(0xb7));}var _0x512040;(function(_0x5718d2){const _0x4e579c=_0x3403fd;_0x5718d2[_0x5718d2[_0x4e579c(0xa6)]=0x1]='ReferenceType',_0x5718d2[_0x5718d2[_0x4e579c(0x105)]=0x2]='IsForward',_0x5718d2[_0x5718d2[_0x4e579c(0xdc)]=0x4]=_0x4e579c(0xdc),_0x5718d2[_0x5718d2[_0x4e579c(0x146)]=0x8]=_0x4e579c(0x146),_0x5718d2[_0x5718d2[_0x4e579c(0xd3)]=0x10]=_0x4e579c(0xd3),_0x5718d2[_0x5718d2[_0x4e579c(0x12d)]=0x20]='TypeDefinition';}(_0x512040||(_0x512040={})));function _0x53777c(_0x1083cf){const _0x49427b=_0x3403fd;switch(_0x1083cf){case _0x49427b(0x130):return _0x1cf865;case'HasProperty':return _0x2925e1;case _0x49427b(0x147):return _0x306084;case'HasChild':return _0x74b2da;case _0x49427b(0x103):return _0x534118;case _0x49427b(0x11a):return _0x29d242;}}const _0x5cb9e8=_0x16728a=>{const _0x57394b=_0x3403fd;switch(_0x16728a[_0x57394b(0xb2)]){case _0x57394b(0xa4):if(_0x16728a[_0x57394b(0x157)]===_0x1cf865);if(_0x16728a[_0x57394b(0x131)]===_0x1858ae||_0x16728a['referenceTypeId']===_0x57394b(0x11f))return{'icon':_0x57394b(0xd9),'color':_0x57394b(0xe1)};return{'icon':'fa-object-group','color':_0x57394b(0xb9)};case'Variable':if(_0x16728a['referenceTypeId']===_0x306084)return{'icon':_0x57394b(0x121),'color':_0x57394b(0x10a)};else return _0x16728a[_0x57394b(0x157)]===_0x2925e1?{'icon':_0x57394b(0x121),'color':'DodgerBlue'}:{'icon':_0x57394b(0x121),'color':_0x57394b(0x10e)};case'Method':return{'icon':'fa-cog','color':_0x57394b(0xa2)};case _0x57394b(0xcb):return{'icon':'fa-object-group','color':_0x57394b(0x161)};case'VariableType':return{'icon':'fa-sliders','color':'DarkOrange'};}return{'icon':_0x57394b(0xaa),'color':'grey'};},_0x32249e=({endpointNode:_0x3399ae,endpoint:_0x44a2cd,baseUrl:_0x15768e},_0xac0948,_0x3e38a6)=>_0x2d3a17(void 0x0,void 0x0,void 0x0,function*(){const _0x4d467e=_0x3403fd,_0xa43392=_0x15768e+_0x4d467e(0x139),_0x34395e=_0xa43392+_0x4d467e(0xca),_0x5c8c18=Object[_0x4d467e(0xcd)](Object['assign']({},_0x3e38a6),{'nodeId':_0xac0948,'resultMask':0x3f}),_0x54c1d8=yield fetch(_0x34395e,{'method':_0x4d467e(0xc3),'body':JSON[_0x4d467e(0x13f)]({'endpointNode':_0x3399ae,'endpoint':_0x44a2cd,'browseDescription':_0x5c8c18}),'headers':{'Content-Type':'application/json'}});if(_0x54c1d8['status']!==0xc8)return console[_0x4d467e(0xd8)]('fetching\x20failed\x20with\x20error',_0x54c1d8[_0x4d467e(0xdf)],_0x54c1d8[_0x4d467e(0xf3)]),{'references':[]};console['log']('fetched\x20:\x20',_0x54c1d8['status'],_0x54c1d8[_0x4d467e(0xf3)]);const _0x4b5d81=yield _0x54c1d8[_0x4d467e(0x114)](),_0x2952d1=_0x4b5d81[_0x4d467e(0xd4)][_0x4d467e(0x104)]||[];return{'references':_0x2952d1};}),_0x34216d={'referenceTypeId':_0x53777c(_0x3403fd(0x12f)),'includeSubtypes':!![],'browseDirection':_0x49d299['Forward'],'nodeClassMask':_0x13e978[_0x3403fd(0x141)]|_0x13e978[_0x3403fd(0xa4)]|_0x13e978['Method'],'resultMask':0x3f},_0x224504={'referenceTypeId':_0x53777c(_0x3403fd(0x130)),'includeSubtypes':!![],'browseDirection':_0x49d299[_0x3403fd(0xcf)],'nodeClassMask':_0x13e978[_0x3403fd(0x141)]|_0x13e978[_0x3403fd(0xa4)]|_0x13e978[_0x3403fd(0xee)],'resultMask':0x3f},_0x16c383=({endpointNode:_0x9492b3,endpoint:_0x5ea08f,baseUrl:_0x14af56},_0x2ec155,_0x1020cd)=>_0x2d3a17(void 0x0,void 0x0,void 0x0,function*(){const _0x5f0a50=_0x3403fd,_0x31ad89=_0x14af56+_0x5f0a50(0x139),_0x573591=_0x2ec155['val'](),_0x580104=yield fetch(_0x31ad89+_0x5f0a50(0xb5),{'method':_0x5f0a50(0xc3),'body':JSON[_0x5f0a50(0x13f)]({'endpointNode':_0x9492b3,'endpoint':_0x5ea08f,'nodeId':_0x573591}),'headers':{'Content-Type':'application/json'}}),_0x4f6b50=(_0x36269a,_0x330627)=>{const _0x570bcc=_0x5f0a50;_0x1020cd[_0x570bcc(0xb1)](_0x36269a)[_0x570bcc(0xbc)](_0x570bcc(0x120))[_0x570bcc(0xbc)](_0x330627),_0x1020cd['show'](),setTimeout(()=>{const _0x172092=_0x570bcc;_0x1020cd[_0x172092(0x15e)](_0x330627),_0x1020cd[_0x172092(0xa5)]();},0xbb8);},_0x15984b=yield _0x580104[_0x5f0a50(0x114)]();_0x580104['status']!==0xc8?_0x4f6b50(_0x5f0a50(0x156)+_0x573591,_0x5f0a50(0xf0)):_0x15984b['statusCode'][_0x5f0a50(0x126)](/Good/)?(_0x2ec155[_0x5f0a50(0x13a)](_0x15984b[_0x5f0a50(0xa3)]),_0x2ec155[_0x5f0a50(0xad)](_0x5f0a50(0x11d)),_0x4f6b50('Good','ok')):(_0x2ec155[_0x5f0a50(0x13a)](''+_0x573591),_0x4f6b50(_0x15984b[_0x5f0a50(0x151)]+'\x20'+_0x580104['statusText'],'failure'));});function _0x5e714c(_0x5d868f,_0xc5b708){return _0x2d3a17(this,void 0x0,void 0x0,function*(){const _0x4a1789=_0x55e4,_0x83bb58=_0x5d868f[_0x4a1789(0x159)](_0x4a1789(0xf5)),_0x38b4bd=yield _0x32249e(_0xc5b708,_0x83bb58,_0x34216d),_0xa677d2=yield _0x32249e(_0xc5b708,_0x83bb58,_0x224504);return{'references':[..._0x38b4bd[_0x4a1789(0x104)],..._0xa677d2['references']]};});}const _0x3a241b={'referenceTypeId':_0x53777c(_0x3403fd(0x103)),'includeSubtypes':!![],'browseDirection':_0x49d299[_0x3403fd(0xcf)],'nodeClassMask':_0x13e978[_0x3403fd(0xa6)]|_0x13e978[_0x3403fd(0xcb)]|_0x13e978['DataType']|_0x13e978[_0x3403fd(0xde)],'resultMask':0x3f};function _0x426386(_0x703bb6,_0x4689fe){return _0x2d3a17(this,void 0x0,void 0x0,function*(){const _0x33bfd4=_0x55e4,_0x2c6176=_0x703bb6[_0x33bfd4(0x159)](_0x33bfd4(0xf5)),_0x35e42a=yield _0x32249e(_0x4689fe,_0x2c6176,_0x3a241b);return _0x35e42a;});}const _0x4c554b=_0x36e73b=>{const _0x11a15f=_0x3403fd;var _0x1979c8,_0x100843;if(!_0x36e73b){const _0x29aa52=$(_0x11a15f(0xe0));return _0x29aa52;}const _0x13583b=_0x36e73b[_0x11a15f(0xe9)][_0x11a15f(0x15f)](),_0x5b77b3=((_0x1979c8=_0x36e73b[_0x11a15f(0xc2)])===null||_0x1979c8===void 0x0?void 0x0:_0x1979c8['text'])||((_0x100843=_0x36e73b['browseName'])===null||_0x100843===void 0x0?void 0x0:_0x100843[_0x11a15f(0xd5)])||_0x36e73b[_0x11a15f(0xe9)][_0x11a15f(0x15f)](),{icon:_0x573f90,color:_0x3a2944}=_0x5cb9e8(_0x36e73b),_0x17704e=$(_0x11a15f(0x129)+_0x573f90+'\x22\x20style=\x22color:'+_0x3a2944+_0x11a15f(0x160)+_0x5b77b3+_0x11a15f(0xeb));return _0x17704e[_0x11a15f(0xbc)]('expandable'),_0x17704e[_0x11a15f(0x159)](_0x11a15f(0xf5),_0x13583b),_0x17704e[_0x11a15f(0x159)](_0x11a15f(0xb6),_0x36e73b),_0x17704e;},_0x5ec9bf=()=>{const _0x2b42df=_0x3403fd;$[_0x2b42df(0xd7)](_0x2b42df(0x10b),{'options':{'endpointNode':()=>({'endpoint':_0x2b42df(0x14a)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':'Objects'},'nodeClass':_0x2b42df(0xa4),'nodeId':_0x2b42df(0xe6),'displayName':{'text':'Objects'},'typeDefinition':_0x1858ae}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x2d3a17(this,void 0x0,void 0x0,function*(){const _0x4f8a08=_0x55e4,_0xce5a5e=this,_0x36eb4b=typeof _0xce5a5e['options'][_0x4f8a08(0xd6)]==='function'?_0xce5a5e[_0x4f8a08(0xef)][_0x4f8a08(0xd6)]():_0xce5a5e[_0x4f8a08(0xef)][_0x4f8a08(0xd6)];if(_0x36eb4b instanceof Promise)return yield _0x36eb4b;return _0x36eb4b;});},'reset'(){const _0x3e31bd=_0x2b42df,_0x2ddf0e=this;_0x2ddf0e['$tree'][_0x3e31bd(0x11e)](),this[_0x3e31bd(0xf4)]()['then'](_0x16be0b=>{const _0x1d454c=_0x3e31bd,_0x1191b4=_0x4c554b(_0x16be0b);_0x2ddf0e[_0x1d454c(0x12e)][_0x1d454c(0x132)](_0x1191b4),_0x2ddf0e[_0x1d454c(0xe8)]=_0x16be0b;});},'verify'(){const _0x1279a3=_0x2b42df,_0x31cea0=this,_0xb09736={'baseUrl':_0x31cea0[_0x1279a3(0xef)][_0x1279a3(0xc8)],'endpointNode':typeof _0x31cea0[_0x1279a3(0xef)][_0x1279a3(0x108)]===_0x1279a3(0x119)?_0x31cea0[_0x1279a3(0xef)][_0x1279a3(0x108)]():_0x31cea0[_0x1279a3(0xef)][_0x1279a3(0x108)],'endpoint':typeof _0x31cea0['options'][_0x1279a3(0x106)]==='function'?_0x31cea0['options'][_0x1279a3(0x106)]():_0x31cea0[_0x1279a3(0xef)][_0x1279a3(0x106)]};_0x16c383(_0xb09736,_0x31cea0['$input'],_0x31cea0['$info']);},'_create'(){const _0x207dfd=_0x2b42df,_0x4440ea=this;function _0x19c20a(_0x4aa108,_0xab3c7c,_0x2a6554){return _0x2d3a17(this,void 0x0,void 0x0,function*(){const _0x5e149f=_0x55e4;if(_0x4aa108[_0x5e149f(0x143)](_0x5e149f(0x150))){console['log']('already\x20fetched');return;}if(_0x4aa108[_0x5e149f(0x143)]('loading')){console['log']('already\x20loading');return;}_0x4aa108[_0x5e149f(0xbc)](_0x5e149f(0xdd)),_0x4aa108[_0x5e149f(0x132)](_0x5e149f(0x152));try{_0x4aa108[_0x5e149f(0xf9)]('ul')[_0x5e149f(0x11e)]();const {references:_0x3fe822}=yield _0xab3c7c(_0x4aa108,_0x2a6554);for(const _0x1cf208 of _0x3fe822){if(_0x4440ea[_0x5e149f(0xef)][_0x5e149f(0xbe)]&&!_0x4440ea['options']['filter'](_0x1cf208))continue;const _0x5942fd=_0x4c554b(_0x1cf208);_0x4aa108[_0x5e149f(0xf9)]('ul')[_0x5e149f(0x132)](_0x5942fd);}_0x4aa108['addClass']('fetched');}catch(_0x14c7d2){_0x4aa108[_0x5e149f(0xf9)]('ul')[_0x5e149f(0x132)](_0x5e149f(0xdb)+_0x14c7d2[_0x5e149f(0xa7)]+_0x5e149f(0x14f)),console['log'](_0x5e149f(0x110),_0x14c7d2);}_0x4aa108[_0x5e149f(0x145)]('.spinner')['remove'](),_0x4aa108[_0x5e149f(0x15e)](_0x5e149f(0xdd));});}_0x4440ea[_0x207dfd(0x14e)]=this[_0x207dfd(0x127)],_0x4440ea[_0x207dfd(0xb8)]=$(_0x207dfd(0xae)),_0x4440ea[_0x207dfd(0xb8)][_0x207dfd(0xbc)](_0x207dfd(0xc4)),this['element']['replaceWith'](_0x4440ea[_0x207dfd(0xb8)]),_0x4440ea[_0x207dfd(0x15d)]=$('<div/>')[_0x207dfd(0xbc)](_0x207dfd(0xf6)),_0x4440ea['$combo'][_0x207dfd(0x132)](_0x4440ea[_0x207dfd(0x15d)]),_0x4440ea[_0x207dfd(0x15d)]['append'](_0x4440ea[_0x207dfd(0x14e)]),_0x4440ea['$toggleTreeBtn']=$(_0x207dfd(0xbb)),_0x4440ea[_0x207dfd(0x15d)][_0x207dfd(0x132)](_0x4440ea[_0x207dfd(0xed)]),_0x4440ea['$toggleTreeBtn']['on'](_0x207dfd(0xb3),function(){const _0x4dc56c=_0x207dfd;!_0x4440ea['$dropdown']['is'](_0x4dc56c(0x14d))&&(_0x4440ea[_0x4dc56c(0xf4)]()[_0x4dc56c(0xfd)](_0x4da38c=>{const _0x49112d=_0x4dc56c;var _0x5004a8;(_0x4da38c!==_0x4440ea[_0x49112d(0xe8)]||((_0x5004a8=_0x4440ea[_0x49112d(0xe8)])===null||_0x5004a8===void 0x0?void 0x0:_0x5004a8[_0x49112d(0xe9)])!==_0x4da38c['nodeId'])&&_0x4440ea[_0x49112d(0xec)]();}),_0x4440ea[_0x4dc56c(0x154)][_0x4dc56c(0xa5)]()),_0x4440ea[_0x4dc56c(0xe7)][_0x4dc56c(0xfa)]();}),_0x4440ea[_0x207dfd(0x117)]=$(_0x207dfd(0xac)),_0x4440ea['$inputGroup'][_0x207dfd(0x132)](_0x4440ea[_0x207dfd(0x117)]),_0x4440ea[_0x207dfd(0x117)]['on'](_0x207dfd(0xb3),()=>{const _0x15c9c8=_0x207dfd;this[_0x15c9c8(0x149)]();}),!_0x4440ea[_0x207dfd(0x14e)][_0x207dfd(0xab)]('placeholder')&&_0x4440ea[_0x207dfd(0x14e)][_0x207dfd(0xab)](_0x207dfd(0x9f),_0x207dfd(0xe4)),_0x4440ea[_0x207dfd(0x154)]=$(_0x207dfd(0xc0)),_0x4440ea[_0x207dfd(0x154)][_0x207dfd(0xa5)](),{'baseUrl':_0x4440ea[_0x207dfd(0xef)][_0x207dfd(0xc8)],'endpointNode':typeof _0x4440ea['options'][_0x207dfd(0x108)]===_0x207dfd(0x119)?_0x4440ea['options'][_0x207dfd(0x108)]():_0x4440ea[_0x207dfd(0xef)][_0x207dfd(0x108)],'endpoint':typeof _0x4440ea[_0x207dfd(0xef)]['endpoint']===_0x207dfd(0x119)?_0x4440ea[_0x207dfd(0xef)]['endpoint']():_0x4440ea[_0x207dfd(0xef)][_0x207dfd(0x106)]},_0x4440ea[_0x207dfd(0xe7)]=$(_0x207dfd(0xae))[_0x207dfd(0xbc)](_0x207dfd(0x153))[_0x207dfd(0xa5)](),_0x4440ea['$combo'][_0x207dfd(0x132)](_0x4440ea['$info']),_0x4440ea['$combo'][_0x207dfd(0x132)](_0x4440ea['$dropdown']),_0x4440ea[_0x207dfd(0x12e)]=$('<ul\x20class=\x22sterfive-tree\x22></ul>')[_0x207dfd(0xf7)](_0x4440ea[_0x207dfd(0xe7)]),this['reset'](),_0x4440ea[_0x207dfd(0x12e)]['on'](_0x207dfd(0xb3),'li',function(_0x32db3d){const _0x55d02e=_0x207dfd;var _0x3e8304,_0x37481a;_0x32db3d[_0x55d02e(0xf8)]();let _0x3d4ff0=$(this);const _0x1ee5c1=0x14,_0x519cc6=0x14,_0x596e11=$(this)[_0x55d02e(0xe5)](),_0x4951be=_0x32db3d;if(_0x4951be['pageX']>=_0x596e11[_0x55d02e(0x111)]&&_0x4951be[_0x55d02e(0x100)]<=_0x596e11[_0x55d02e(0x111)]+_0x1ee5c1&&_0x4951be[_0x55d02e(0x140)]>=_0x596e11[_0x55d02e(0xe3)]&&_0x4951be[_0x55d02e(0x140)]<=_0x596e11[_0x55d02e(0xe3)]+_0x519cc6){if(_0x3d4ff0[_0x55d02e(0x143)]('expandable')){if(_0x3d4ff0['hasClass'](_0x55d02e(0x150))){_0x3d4ff0[_0x55d02e(0x15e)]('expandable')['addClass'](_0x55d02e(0xe2)),_0x3d4ff0[_0x55d02e(0xf9)]('ul')[_0x55d02e(0xfa)]();return;}const _0x2f0d93={'baseUrl':_0x4440ea[_0x55d02e(0xef)]['baseUrl'],'endpointNode':typeof _0x4440ea['options']['endpointNode']===_0x55d02e(0x119)?_0x4440ea[_0x55d02e(0xef)][_0x55d02e(0x108)]():_0x4440ea['options'][_0x55d02e(0x108)],'endpoint':typeof _0x4440ea[_0x55d02e(0xef)][_0x55d02e(0x106)]===_0x55d02e(0x119)?_0x4440ea['options'][_0x55d02e(0x106)]():_0x4440ea[_0x55d02e(0xef)][_0x55d02e(0x106)]},_0x1eacfc=!_0x4440ea[_0x55d02e(0xef)][_0x55d02e(0x116)]?_0x5e714c:_0x426386;_0x19c20a(_0x3d4ff0,_0x1eacfc,_0x2f0d93)[_0x55d02e(0xfd)](()=>{const _0x2b66ca=_0x55d02e;console[_0x2b66ca(0xd8)]('\x20Fetching\x20done'),console[_0x2b66ca(0xd8)]('fetched'),_0x3d4ff0[_0x2b66ca(0x15e)]('expandable')[_0x2b66ca(0xbc)](_0x2b66ca(0xe2));})[_0x55d02e(0x107)](_0x167c42=>{const _0x21abd1=_0x55d02e;_0x3d4ff0[_0x21abd1(0x15e)](_0x21abd1(0xc6))['addClass'](_0x21abd1(0xe2)),console['log'](_0x21abd1(0xff),_0x167c42);});}else{if(_0x3d4ff0[_0x55d02e(0x143)](_0x55d02e(0xe2)))_0x3d4ff0[_0x55d02e(0xf9)]('ul')[_0x55d02e(0xfa)](),_0x3d4ff0[_0x55d02e(0xbd)]('expandable\x20expanded');else{if(_0x3d4ff0[_0x55d02e(0xf9)]('ul')[_0x55d02e(0xf9)]()[_0x55d02e(0x12a)]>0x0)_0x3d4ff0[_0x55d02e(0xf9)]('ul')['toggle'](),_0x3d4ff0[_0x55d02e(0xbd)](_0x55d02e(0x124));else;}}}else{const _0x3e42c8=_0x3d4ff0['data'](_0x55d02e(0xf5)),_0xe6a08f=_0x3d4ff0['data'](_0x55d02e(0xb6));if(_0x4440ea['options'][_0x55d02e(0x128)]&&!_0x4440ea['options'][_0x55d02e(0x128)](_0xe6a08f))return;_0x4440ea['$input'][_0x55d02e(0x159)]('reference',_0xe6a08f);const _0x4baaf9=((_0x3e8304=_0xe6a08f[_0x55d02e(0xc2)])===null||_0x3e8304===void 0x0?void 0x0:_0x3e8304[_0x55d02e(0xb1)])||((_0x37481a=_0xe6a08f['browseName'])===null||_0x37481a===void 0x0?void 0x0:_0x37481a[_0x55d02e(0xd5)])||_0xe6a08f[_0x55d02e(0xe9)]['toString'](),_0x2b9c93='['+_0x4baaf9+']('+_0x3e42c8+')';_0x4440ea[_0x55d02e(0x14e)][_0x55d02e(0x13a)](_0x2b9c93),_0x4440ea[_0x55d02e(0x14e)][_0x55d02e(0xad)](_0x55d02e(0x11d)),_0x4440ea[_0x55d02e(0xe7)]['hide']();}}),$(document)['on'](_0x207dfd(0xb3),function(_0x4fab73){const _0x4b5c25=_0x207dfd;!$(_0x4fab73[_0x4b5c25(0x12c)])[_0x4b5c25(0xc5)](_0x4440ea[_0x4b5c25(0xb8)])[_0x4b5c25(0x12a)]&&_0x4440ea[_0x4b5c25(0xe7)]['hide']();});}});},_0x4e4e2c=()=>{const _0x149fb1=_0x3403fd;$[_0x149fb1(0xd7)](_0x149fb1(0x9e),{'options':{'namesToBits':{},'value':0x0},'_create'(){const _0x174e74=_0x149fb1,_0x2d3917=this;_0x2d3917['$input']=this[_0x174e74(0x127)],_0x2d3917[_0x174e74(0xb8)]=$(_0x174e74(0xae)),_0x2d3917[_0x174e74(0xb8)][_0x174e74(0xbc)](_0x174e74(0xc4)),this[_0x174e74(0x127)][0x0]['parentElement'][_0x174e74(0x144)](_0x2d3917[_0x174e74(0xb8)][0x0],this[_0x174e74(0x127)][0x0]),_0x2d3917['$inputGroup']=$('<div/>')['addClass'](_0x174e74(0xf6)),_0x2d3917[_0x174e74(0xb8)][_0x174e74(0x132)](_0x2d3917['$inputGroup']),_0x2d3917[_0x174e74(0x15d)][_0x174e74(0x132)](_0x2d3917[_0x174e74(0x14e)]),_0x2d3917[_0x174e74(0xed)]=$(_0x174e74(0xa9)),_0x2d3917[_0x174e74(0x15d)][_0x174e74(0x132)](_0x2d3917['$toggleTreeBtn']),_0x2d3917[_0x174e74(0xed)]['on'](_0x174e74(0xb3),function(){const _0x1030af=_0x174e74;_0x2d3917[_0x1030af(0xe7)][_0x1030af(0xfa)](),_0x2d3917[_0x1030af(0xe7)]['is'](_0x1030af(0x14d))&&(_0x534307(),_0x2d3917[_0x1030af(0xb8)][_0x1030af(0x145)](_0x1030af(0x15a))[_0x1030af(0x115)](function(){const _0x34b162=_0x1030af;let _0x23a2a5=$(this)[_0x34b162(0xb1)]();const _0x5443fd=_0x2d3917['options']['namesToBits'][_0x23a2a5];if(_0x5443fd===undefined)throw new Error(_0x34b162(0x136));(_0x2d3917[_0x34b162(0xef)]['value']&_0x5443fd)===_0x5443fd?$(this)[_0x34b162(0xbc)](_0x34b162(0xea)):$(this)['removeClass'](_0x34b162(0xea));}),_0x2d3917[_0x1030af(0xf2)]());}),_0x2d3917[_0x174e74(0xe7)]=$(_0x174e74(0x138))['hide']()[_0x174e74(0xa0)](this[_0x174e74(0x127)]),$[_0x174e74(0x115)](this[_0x174e74(0xef)][_0x174e74(0x109)],function(_0x1f1ac0){const _0x3d86d1=_0x174e74,_0x4a65cc=$('<div\x20class=\x22custom-option\x22\x20data-value=\x22'+_0x1f1ac0+'\x22>'+'<span\x20class=\x22custom-checkbox\x22></span>'+_0x1f1ac0+_0x3d86d1(0xc1));_0x2d3917[_0x3d86d1(0xe7)][_0x3d86d1(0x132)](_0x4a65cc);}),_0x2d3917['$dropdown']['on'](_0x174e74(0xb3),_0x174e74(0x15a),function(){const _0x2f3ef3=_0x174e74;$(this)[_0x2f3ef3(0xbd)]('selected');const _0x5be171=$(this)[_0x2f3ef3(0x159)](_0x2f3ef3(0xf5));$(this)['hasClass']('selected')?_0x342856(_0x5be171):_0x197b22(_0x5be171),_0x2d3917[_0x2f3ef3(0xf2)]();}),_0x2d3917[_0x174e74(0xb8)][_0x174e74(0x132)](_0x2d3917[_0x174e74(0xe7)]);const _0x534307=()=>{const _0x5c20e1=_0x174e74,_0x4c923a=this[_0x5c20e1(0x127)][_0x5c20e1(0x13a)]();_0x2d3917[_0x5c20e1(0xef)][_0x5c20e1(0xf5)]=_0x134e57(_0x2d3917[_0x5c20e1(0xef)][_0x5c20e1(0x109)],_0x4c923a);},_0x342856=_0x444da2=>{const _0x53104f=_0x174e74,_0x4273e7=_0x2d3917[_0x53104f(0xef)][_0x53104f(0x109)][_0x444da2];if(_0x4273e7===undefined)throw new Error(_0x53104f(0x136));this['options'][_0x53104f(0xf5)]|=_0x4273e7;},_0x197b22=_0x48ffef=>{const _0x3c002d=_0x174e74,_0x20dd87=_0x2d3917[_0x3c002d(0xef)]['namesToBits'][_0x48ffef];if(_0x20dd87===undefined)throw new Error(_0x3c002d(0x136));this['options'][_0x3c002d(0xf5)]&=~_0x20dd87,this[_0x3c002d(0x127)][_0x3c002d(0x13a)](_0x2f931c(_0x2d3917['options'][_0x3c002d(0x109)],this[_0x3c002d(0xef)][_0x3c002d(0xf5)]));};_0x534307();},'updateValue'(){const _0x1f428a=_0x149fb1,_0x24e076=this;this[_0x1f428a(0x127)][_0x1f428a(0x13a)](_0x2f931c(_0x24e076['options']['namesToBits'],this[_0x1f428a(0xef)][_0x1f428a(0xf5)]));},'_destroy'(){const _0x2d51be=this;_0x2d51be['$dropdown']['remove']();}});},_0x534941=()=>{const _0x2f1957=_0x3403fd,_0x228689=$('#node-input-endpoint'),_0x2c96ef=_0x228689['val'](),_0x33a0fb=RED[_0x2f1957(0x12b)]['node'](_0x2c96ef);if(!_0x33a0fb)return undefined;const {endpoint:_0x35d6da,securityMode:_0x5475e2,securityPolicy:_0x4c6a64,userIdentityType:_0x57e262,credentials:_0x29926f}=_0x33a0fb,_0x52b046={'endpoint':_0x35d6da,'securityMode':_0x5475e2,'securityPolicy':_0x4c6a64,'userIdentityType':_0x57e262,'credentials':_0x29926f};return console[_0x2f1957(0xd8)](_0x2f1957(0x9d),_0x52b046),_0x52b046;},_0x10f474=()=>{return{'endpointNode':_0x3645b9};},_0x3645b9=()=>{const _0x1657f2=_0x3403fd,_0x6529dd=$('#node-input-endpoint'),_0x1111e9=_0x6529dd[_0x1657f2(0x13a)](),_0x468d7e=_0x534941();if(!_0x468d7e)return undefined;return{'id':_0x1111e9};};RED[_0x3403fd(0x12b)][_0x3403fd(0x13b)](_0x3403fd(0xd1),{'category':_0x3403fd(0x148),'color':_0x3403fd(0xa8),'align':_0x3403fd(0x123),'icon':_0x3403fd(0xfe),'paletteLabel':_0x3403fd(0x13c),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x3403fd(0x158)},'nodeId':{'value':'','required':![]},'referenceTypeId':{'value':'HasChild','required':![]},'includeSubtypes':{'value':![],'required':!![]},'browseDirection':{'value':_0x3403fd(0xcf),'required':!![]},'nodeClassMask':{'value':_0x3403fd(0x113),'required':![]},'resultMask':{'value':_0x3403fd(0xcc),'required':![]}},'outputs':0x1,'label'(){const _0x2cd2bb=_0x3403fd;return this[_0x2cd2bb(0xd5)]||_0x2cd2bb(0xc9);},'labelStyle'(){const _0x1d0e6d=_0x3403fd;return this[_0x1d0e6d(0xd5)]?'node_label_italic':'';},'oneditprepare'(){const _0x230a17=_0x3403fd,_0xb5a96=this;_0x5ec9bf(),_0x4e4e2c(),_0xb5a96[_0x230a17(0x122)]=0x1;const _0x48d20b=$('#node-input-nodeClassMask');_0x48d20b[_0x230a17(0x133)]({'namesToBits':{'Object':0x1,'Variable':0x2,'Method':0x4,'ObjectType':0x8,'VariableType':0x10,'ReferenceType':0x20,'DataType':0x40,'View':0x80},'value':0x0});const _0x306bd0=$('#node-input-resultMask');_0x306bd0[_0x230a17(0x133)]({'namesToBits':{'ReferenceType':0x1,'IsForward':0x2,'NodeClass':0x4,'BrowseName':0x8,'DisplayName':0x10,'TypeDefinition':0x20},'value':0x3f});const _0x3500f=$('#node-input-nodeId');_0x3500f['nodeBrowser'](Object[_0x230a17(0xcd)](Object[_0x230a17(0xcd)]({},_0x10f474()),{'isSelectable'(_0x4e7867){const _0x206297=_0x230a17;return _0x4e7867[_0x206297(0xb2)]===_0x206297(0x141)||_0x4e7867['nodeClass']==='Object';}}));const _0x57f3e8={'nodeId':'i=31','referenceTypeId':'','browseName':{'namespaceIndex':0x0,'name':_0x230a17(0x11c)},'displayName':{'text':_0x230a17(0x11c)},'nodeClass':_0x230a17(0xa6),'typeDefinition':_0x230a17(0xda)},_0x505f3a=$(_0x230a17(0x137));_0x505f3a[_0x230a17(0xba)](Object['assign'](Object['assign']({},_0x10f474()),{'parentNode':()=>_0x57f3e8,'isSelectable'(_0x308ff3){const _0x1fa677=_0x230a17;return _0x308ff3[_0x1fa677(0xb2)]===_0x1fa677(0xa6);},'isTypeRef':!![]}));},'oneditsave'(){}});}()));function _0x4ab4(){const _0x408e75=['Both','join',':visible','$input','</li>','fetched','statusCode','<div\x20class=\x22spinner\x22></div>','sterfive-dropdown','$info','4210288dBbyEO','!!failure!!','referenceTypeId','OpcUa-Endpoint2','data','.custom-option','Unspecified','next','$inputGroup','removeClass','toString',';\x22></i>\x20','DarkOrange','xxx','sterfive.flagEditor','placeholder','insertAfter','139508NXWveN','SandyBrown','nodeAddressString','Object','hide','ReferenceType','message','#C0DEED','<button><i\x20class=\x22fa\x20fa-eye\x22></i></button>','fa-question','attr','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','trigger','<div/>','2arEbiN','ns=0;i=46','text','nodeClass','click','apply','/checkNodeId','reference','\x20|\x20','$combo','SeaGreen','nodeBrowser','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','addClass','toggleClass','filter','1811475ksGODw','<div\x20class=\x22info-text\x22></div>','</div>','displayName','POST','sterfive-combo-box','closest','expandable','6994908ogWqFM','baseUrl','OPCUA\x20Browse','/browse','ObjectType','ReferenceType\x20|\x20BrowseName\x20|\x20TypeDefinition\x20|\x20DisplayName\x20|\x20NodeClass\x20|\x20IsForward','assign','ns=0;i=61','Forward','Invalid','OpcUa-Client2-Browse','ns=0;i=47','DisplayName','browseResult','name','parentNode','widget','log','fa-folder','i=31','<li>error\x20','NodeClass','loading','VariableType','status','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','rgba(61,\x2060,\x204,\x200.525)','expanded','top','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','offset','ns=0;i=85','$dropdown','currentParent','nodeId','selected','<ul></ul></li>','reset','$toggleTreeBtn','Method','options','failure','6088wGzKSE','updateValue','statusText','resolveParentNode','value','input-group','appendTo','stopPropagation','children','toggle','ns=0;i=40','View','then','../../icons/opcuanodeLogo.png','error','pageX','ns=0;i=34','5470295XCxWYb','HasSubtype','references','IsForward','endpoint','catch','endpointNode','namesToBits','SteelBlue','sterfive.nodeBrowser','done','split','CadetBlue','ns=0;i=45','err','left','trim','Variable\x20|\x20Object\x20|\x20Method\x20|\x20ObjectType\x20|\x20VariableType','json','each','isTypeRef','$verifyBtn','7189515tcrvDG','function','HasTypeDefinition','DataType','References','change','empty','i=61','sterfive-info','fa-list-alt','inputs','right','expandable\x20expanded','entries','match','element','isSelectable','<li><i\x20class=\x22fa\x20','length','nodes','target','TypeDefinition','$tree','HasChild','Organizes','typeDefinition','append','flagEditor','ns=0;i=35','8183nCUdZP','Unknown\x20bit\x20name','#node-input-referenceTypeId','<div\x20class=\x22custom-select\x22></div>','/opcua-endpoint2','val','registerType','browse','push','suppressed','stringify','pageY','Variable','Inverse','hasClass','replaceChild','find','BrowseName','HasComponent','opcua','verify','opc.tcp://opcuademo.sterfive.com:26543'];_0x4ab4=function(){return _0x408e75;};return _0x4ab4();}
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgyZDNhMTciLCJfMHg5YjAwNzIiLCJfMHhkYzA5Y2MiLCJfMHg0MmEzODIiLCJfMHgxNWJhNDEiLCJfMHgxZDI1OWIiLCJfMHhiMzY5OWQiLCJfMHgzYjA1MzgiLCJQcm9taXNlIiwiXzB4MWExZTA5IiwiXzB4NTJkNjg5IiwiXzB4NWRhNDJlIiwiXzB4MmFhZjk3IiwiXzB4YjQwN2Y4IiwiXzB4NTMxZmY5IiwiXzB4MWFiZGIwIiwiXzB4NDY2ZjA3IiwiXzB4NTRmY2IxIiwiXzB4NDEwODM5IiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4ZTQwZjE0IiwiXzB4NGVkODRlIiwiXzB4MzkxNjMyIiwiXzB4NDUwNzY0IiwiRXJyb3IiLCJfMHgxY2Y4NjUiLCJfMHgxODU4YWUiLCJfMHgzMDYwODQiLCJfMHgyOTI1ZTEiLCJfMHg3NGIyZGEiLCJfMHg1MzQxMTgiLCJfMHgyOWQyNDIiLCJfMHg0OWQyOTkiLCJfMHgxYzI2YmUiLCJfMHgxM2U5NzgiLCJfMHgzMDg2Y2UiLCJfMHgxNDM3OGEiLCJfMHgzYzBlNzQiLCJfMHgxMzRlNTciLCJfMHgxNzY4ZmIiLCJfMHgyZDkzODgiLCJfMHg0MmJjMTkiLCJwYXJzZUludCIsImlzTmFOIiwiXzB4NGE3NDdmIiwiXzB4NDk1YzNmIiwiXzB4MWQyNTRhIiwiXzB4NWIxMDkxIiwiXzB4MmY5MzFjIiwiXzB4M2IyMWYzIiwiXzB4MjY5YWY2IiwiXzB4MTk3OWJlIiwiXzB4MmNjZjdiIiwiXzB4M2ViZjZhIiwiT2JqZWN0IiwiXzB4NTEyMDQwIiwiXzB4NTcxOGQyIiwiXzB4NTM3NzdjIiwiXzB4MTA4M2NmIiwiXzB4NWNiOWU4IiwiXzB4MTY3MjhhIiwiXzB4MzIyNDllIiwiZW5kcG9pbnROb2RlIiwiXzB4MzM5OWFlIiwiZW5kcG9pbnQiLCJfMHg0NGEyY2QiLCJiYXNlVXJsIiwiXzB4MTU3NjhlIiwiXzB4YWMwOTQ4IiwiXzB4M2UzOGE2IiwiXzB4YTQzMzkyIiwiXzB4MzQzOTVlIiwiXzB4NWM4YzE4IiwiXzB4NTRjMWQ4IiwiZmV0Y2giLCJKU09OIiwiY29uc29sZSIsIl8weDRiNWQ4MSIsIl8weDI5NTJkMSIsIl8weDM0MjE2ZCIsIl8weDIyNDUwNCIsIl8weDE2YzM4MyIsIl8weDk0OTJiMyIsIl8weDVlYTA4ZiIsIl8weDE0YWY1NiIsIl8weDJlYzE1NSIsIl8weDEwMjBjZCIsIl8weDMxYWQ4OSIsIl8weDU3MzU5MSIsIl8weDU4MDEwNCIsIl8weDRmNmI1MCIsIl8weDM2MjY5YSIsIl8weDMzMDYyNyIsInNldFRpbWVvdXQiLCJfMHgxNTk4NGIiLCJfMHg1ZTcxNGMiLCJfMHg1ZDg2OGYiLCJfMHhjNWI3MDgiLCJfMHg4M2JiNTgiLCJfMHgzOGI0YmQiLCJfMHhhNjc3ZDIiLCJfMHgzYTI0MWIiLCJfMHg0MjYzODYiLCJfMHg3MDNiYjYiLCJfMHg0Njg5ZmUiLCJfMHgyYzYxNzYiLCJfMHgzNWU0MmEiLCJfMHg0YzU1NGIiLCJfMHgzNmU3M2IiLCJfMHgxOTc5YzgiLCJfMHgxMDA4NDMiLCJfMHgyOWFhNTIiLCIkIiwiXzB4MTM1ODNiIiwiXzB4NWI3N2IzIiwiaWNvbiIsIl8weDU3M2Y5MCIsImNvbG9yIiwiXzB4M2EyOTQ0IiwiXzB4MTc3MDRlIiwiXzB4NWVjOWJmIiwidW5kZWZpbmVkIiwiXzB4Y2U1YTVlIiwiXzB4MzZlYjRiIiwiXzB4MmRkZjBlIiwiXzB4MTZiZTBiIiwiXzB4MTE5MWI0IiwiXzB4MzFjZWEwIiwiXzB4YjA5NzM2IiwiXzB4NDQ0MGVhIiwiXzB4MTljMjBhIiwiXzB4NGFhMTA4IiwiXzB4YWIzYzdjIiwiXzB4MmE2NTU0IiwicmVmZXJlbmNlcyIsIl8weDNmZTgyMiIsIl8weDFjZjIwOCIsIl8weDU5NDJmZCIsIl8weDE0YzdkMiIsIl8weDRkYTM4YyIsIl8weDUwMDRhOCIsIl8weDMyZGIzZCIsIl8weDNlODMwNCIsIl8weDM3NDgxYSIsIl8weDNkNGZmMCIsIl8weDFlZTVjMSIsIl8weDUxOWNjNiIsIl8weDU5NmUxMSIsIl8weDQ5NTFiZSIsIl8weDJmMGQ5MyIsIl8weDFlYWNmYyIsIl8weDE2N2M0MiIsIl8weDNlNDJjOCIsIl8weGU2YTA4ZiIsIl8weDRiYWFmOSIsIl8weDJiOWM5MyIsImRvY3VtZW50IiwiXzB4NGZhYjczIiwiXzB4NGU0ZTJjIiwiXzB4MmQzOTE3IiwiXzB4NTM0MzA3IiwiXzB4MjNhMmE1IiwiXzB4NTQ0M2ZkIiwiXzB4MWYxYWMwIiwiXzB4NGE2NWNjIiwiXzB4NWJlMTcxIiwiXzB4MzQyODU2IiwiXzB4MTk3YjIyIiwiXzB4NGM5MjNhIiwiXzB4NDQ0ZGEyIiwiXzB4NDI3M2U3IiwiXzB4NDhmZmVmIiwiXzB4MjBkZDg3IiwiXzB4MjRlMDc2IiwiXzB4MmQ1MWJlIiwiXzB4NTM0OTQxIiwiXzB4MjI4Njg5IiwiXzB4MmM5NmVmIiwiXzB4MzNhMGZiIiwiUkVEIiwiXzB4MzVkNmRhIiwic2VjdXJpdHlNb2RlIiwiXzB4NTQ3NWUyIiwic2VjdXJpdHlQb2xpY3kiLCJfMHg0YzZhNjQiLCJ1c2VySWRlbnRpdHlUeXBlIiwiXzB4NTdlMjYyIiwiY3JlZGVudGlhbHMiLCJfMHgyOTkyNmYiLCJfMHg1MmIwNDYiLCJfMHgxMGY0NzQiLCJfMHgzNjQ1YjkiLCJfMHg2NTI5ZGQiLCJfMHgxMTExZTkiLCJfMHg0NjhkN2UiLCJfMHhiNWE5NiIsIl8weDQ4ZDIwYiIsIl8weDMwNmJkMCIsIl8weDM1MDBmIiwiXzB4NGU3ODY3IiwiXzB4NTdmM2U4IiwiXzB4NTA1ZjNhIiwiXzB4MzA4ZmYzIl0sIm1hcHBpbmdzIjoiNnZCQUFBLENBQUMsVSxDQUNHLGEsd0JBbUJBLFNBQVNBLFNBQVQsQ0FBbUJDLFNBQW5CLENBQTRCQyxTQUE1QixDQUF3Q0MsU0FBeEMsQ0FBMkNDLFNBQTNDLEMsQ0FDSSxTQUFTQyxTQUFULENBQWVDLFNBQWYsQyxRQUErQkEsU0FBQSxZQUFpQkgsU0FBakIsQ0FBcUJHLFNBQXJCLENBQTZCLElBQUlILFNBQUosQ0FBTSxTQUFVSSxTQUFWLEMsQ0FBcUJBLFNBQUEsQ0FBUUQsU0FBUixDLEVBQTNCLEMsU0FD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LEMsUUFBQSxFQUFjQSxNQUFBLEMsUUFBQSxFQUFjLEVBQWQsQ0FBa0J3SSxTQUFBLEVBQWxCLENBQWQsQ0FBaUUsQyxZQUFFLENBQVksSUFBTVUsU0FBcEIsQyxjQUMxRixDQUFhRSxTQUFiLEMsa0NBQ1dBLFNBQUEsQyxlQUFBLEksaUJBRitFLEMsV0FHdkYsQyxJQUh1RixDQUFqRSxDQUE3QixDLEVBdkV1QyxDLFlBNEUzQyxFLEVBNUUyQyxDQUEvQyxDLEVBNW5CSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIGZ1bmN0aW9uIGNvZXJjZUZsYWdNYXNrVG9OdW1iZXIodHlwZSwgc3RyKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc3RyID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0ckFzTnVtID0gcGFyc2VJbnQoc3RyLCAxMCk7XG4gICAgICAgIGlmICghaXNOYU4oc3RyQXNOdW0pKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyQXNOdW07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmxhZ3MgPSBzdHIuc3BsaXQoL1xcfHw7fCwvKS5tYXAoKGEpID0+IGEudHJpbSgpKTtcbiAgICAgICAgbGV0IHJlc3VsdCA9IDA7XG4gICAgICAgIGZvciAoY29uc3QgZmxhZyBvZiBmbGFncykge1xuICAgICAgICAgICAgcmVzdWx0IHw9IHR5cGVbZmxhZ107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29lcmNlRmxhZ01hc2tUb1N0cmluZyh0eXBlLCB2YWx1ZSkge1xuICAgICAgICB2YWx1ZSA9IGNvZXJjZUZsYWdNYXNrVG9OdW1iZXIodHlwZSwgdmFsdWUpO1xuICAgICAgICBjb25zdCByID0gW107XG4gICAgICAgIGlmICghdHlwZSlcbiAgICAgICAgICAgIHJldHVybiByLmpvaW4oXCIgfCBcIik7XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgYml0TWFza10gb2YgT2JqZWN0LmVudHJpZXModHlwZSkpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoKHZhbHVlICYgYml0TWFzaykgPT09IGJpdE1hc2spIHtcbiAgICAgICAgICAgICAgICAgICAgci5wdXNoKGtleSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByLmpvaW4oXCIgfCBcIik7XG4gICAgfVxuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgdGVtcGxhdGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vYnJvd3NlYDtcbiAgICAgICAgY29uc3QgYnJvd3NlRGVzY3JpcHRpb24gPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRlKSwgeyBub2RlSWQsIHJlc3VsdE1hc2s6IDYzIH0pO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBicm93c2VEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzOiBbXSB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgJGlucHV0RWxlbWVudCwgJGluZm8pID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKGAke3Jvb3R9L2NoZWNrTm9kZUlkYCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoIXJlZmVyZW5jZSkge1xuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSBmYS1lcnJvclwiIHN0eWxlPVwiY29sb3I6cmVkO1wiPjwvaT5ubyByZWZlcmVuY2UgITx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbiA9IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgdCA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHsgaWNvbiwgY29sb3IgfSA9IGdldEljb24ocmVmZXJlbmNlKTtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+ICR7dH08dWw+PC91bD48L2xpPmApO1xuICAgICAgICAkZWxlbWVudC5hZGRDbGFzcyhcImV4cGFuZGFibGVcIik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJ2YWx1ZVwiLCBuKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgfTtcbiAgICBjb25zdCBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbIFRlbXBlcmF0dXJlICBdXG4gICAgICAgICAqICAgKCB0b29sdGlwIDogKC9PYmplY3RzL015U2Vuc29yKSAobnM9MTtzPVRlbXBlcmF0dXJlKSlcbiAgICAgICAgICogWyArIFtGb2xkZXJdIE9iamVjdHNdXG4gICAgICAgICAqIFsgICAgIFtPYmplY3RdIE15U2Vuc29yXVxuICAgICAgICAgKiBbICAgICAoICkgW1ZhcmlhYmxlXSBUZW1wZXJhdHVyZV1cbiAgICAgICAgICovXG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUubm9kZUJyb3dzZXJcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZTogKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgbm9kZUNsYXNzOiBcIk9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBub2RlSWQ6IFwibnM9MDtpPTg1XCIsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIHR5cGVEZWZpbml0aW9uOiBGb2xkZXJUeXBlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgICAgIGlzVHlwZVJlZjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZVBhcmVudE5vZGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdGhhdC5vcHRpb25zLnBhcmVudE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNldCgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpLnRoZW4oKHBhcmVudE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChwYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LmN1cnJlbnRQYXJlbnQgPSBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZlcmlmeSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGludGVybmFsVmVyaWZ5KGRhdGEsIHRoYXQuJGlucHV0LCB0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIF9mZXRjaERhdGFGb3JOb2RlKCRub2RlLCBmZXRjaEZ1bmMsIGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJsb2FkaW5nXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYXBwZW5kKCc8ZGl2IGNsYXNzPVwic3Bpbm5lclwiPjwvZGl2PicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyByZWZlcmVuY2VzIH0gPSB5aWVsZCBmZXRjaEZ1bmMoJG5vZGUsIGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5maWx0ZXIgJiYgIXRoYXQub3B0aW9ucy5maWx0ZXIocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5yZXBsYWNlV2l0aCh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cCA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJpbnB1dC1ncm91cFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5wdXRHcm91cCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kaW5wdXQpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyZWUgd2lkZ2V0IGlzIGdvaW5nIHRvIGJlY29tZSB2aXNpYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc29sdmVQYXJlbnROb2RlKCkudGhlbigocGFyZW50Tm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAhPT0gdGhhdC5jdXJyZW50UGFyZW50IHx8ICgoX2EgPSB0aGF0LmN1cnJlbnRQYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ub2RlSWQpICE9PSBwYXJlbnROb2RlLm5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZmxhc2tcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdmVyaWZ5QnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkKHRoaXMpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZmV0Y2hEYXRhRm9yTm9kZSgkbGksIGYsIGRhdGEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIgRmV0Y2hpbmcgZG9uZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkbGkuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gJGxpLmRhdGEoXCJyZWZlcmVuY2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZSAmJiAhdGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZShyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBgWyR7ZGlzcGxheU5hbWV9XSgke3ZhbHVlfSlgO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjbGlja2luZyBvdXRzaWRlIHRoZSBwYWdlIHdpbGwgaGlkZSB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCh0aGF0LiRjb21ibykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBkZWNsYXJlRmxhZ0VkaXRvcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5mbGFnRWRpdG9yXCIsIHtcbiAgICAgICAgICAgIC8vIGRlZmF1bHQgb3B0aW9uc1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIG5hbWVzVG9CaXRzOiB7XG4gICAgICAgICAgICAgICAgLy8gQWRkIG1vcmUgbmFtZXMgYW5kIGJpdCB2YWx1ZXNcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHZhbHVlOiAwLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gQ3VzdG9tIERyb3Bkb3duXG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFswXS5wYXJlbnRFbGVtZW50LnJlcGxhY2VDaGlsZCh0aGF0LiRjb21ib1swXSwgdGhpcy5lbGVtZW50WzBdKTtcbiAgICAgICAgICAgICAgICAvLyB0aGlzLmVsZW1lbnQucmVwbGFjZVdpdGgodGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAgPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwiaW5wdXQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGlucHV0R3JvdXApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJGlucHV0KTtcbiAgICAgICAgICAgICAgICAvLyB0aGUgdG9nZ2xlIHRyZWUgYnV0dG9uOlxuICAgICAgICAgICAgICAgIC8vICAgd2hlbiB3ZSBjbGljayBpdCB0aGUgZHJvcCBkb3duIHBhbmVsIGlzIGRpc3BsYXllZFxuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZXllXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC4kc2VsZWN0LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVGcm9tSW5wdXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmZpbmQoXCIuY3VzdG9tLW9wdGlvblwiKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgb3B0aW9uTmFtZSA9ICQodGhpcykudGV4dCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJpdFZhbHVlID0gdGhhdC5vcHRpb25zLm5hbWVzVG9CaXRzW29wdGlvbk5hbWVdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChiaXRWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVua25vd24gYml0IG5hbWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgodGhhdC5vcHRpb25zLnZhbHVlICYgYml0VmFsdWUpID09PSBiaXRWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGhpZGRlbiBzZWxlY3QgZWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC51cGRhdGVWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gdGhlIGRyb3AgZG93biBwYW5lbFxuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJCgnPGRpdiBjbGFzcz1cImN1c3RvbS1zZWxlY3RcIj48L2Rpdj4nKS5oaWRlKCkuaW5zZXJ0QWZ0ZXIodGhpcy5lbGVtZW50KTtcbiAgICAgICAgICAgICAgICAkLmVhY2godGhpcy5vcHRpb25zLm5hbWVzVG9CaXRzLCBmdW5jdGlvbiAobmFtZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkb3B0aW9uID0gJCgnPGRpdiBjbGFzcz1cImN1c3RvbS1vcHRpb25cIiBkYXRhLXZhbHVlPVwiJyArXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lICtcbiAgICAgICAgICAgICAgICAgICAgICAgICdcIj4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz1cImN1c3RvbS1jaGVja2JveFwiPjwvc3Bhbj4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgK1xuICAgICAgICAgICAgICAgICAgICAgICAgXCI8L2Rpdj5cIik7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmFwcGVuZCgkb3B0aW9uKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyB3aGVuIGEgb3B0aW9ucyBpbiB0aGUgZHJvcCBkb3duIHBhbmVsIGlzIGNsaWNrZWQsXG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24ub24oXCJjbGlja1wiLCBcIi5jdXN0b20tb3B0aW9uXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS50b2dnbGVDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICQodGhpcykuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5oYXNDbGFzcyhcInNlbGVjdGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRCaXQodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdW5zZXRCaXQodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoYXQudXBkYXRlVmFsdWUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZUZyb21JbnB1dCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmVsZW1lbnQudmFsKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQub3B0aW9ucy52YWx1ZSA9IGNvZXJjZUZsYWdNYXNrVG9OdW1iZXIodGhhdC5vcHRpb25zLm5hbWVzVG9CaXRzLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBzZXRCaXQgPSAoYml0TmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiaXQgPSB0aGF0Lm9wdGlvbnMubmFtZXNUb0JpdHNbYml0TmFtZV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChiaXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBiaXQgbmFtZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMudmFsdWUgfD0gYml0O1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgdW5zZXRCaXQgPSAoYml0TmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiaXQgPSB0aGF0Lm9wdGlvbnMubmFtZXNUb0JpdHNbYml0TmFtZV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChiaXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBiaXQgbmFtZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMudmFsdWUgJj0gfmJpdDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnZhbChjb2VyY2VGbGFnTWFza1RvU3RyaW5nKHRoYXQub3B0aW9ucy5uYW1lc1RvQml0cywgdGhpcy5vcHRpb25zLnZhbHVlKSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB1cGRhdGVGcm9tSW5wdXQoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB1cGRhdGVWYWx1ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQudmFsKGNvZXJjZUZsYWdNYXNrVG9TdHJpbmcodGhhdC5vcHRpb25zLm5hbWVzVG9CaXRzLCB0aGlzLm9wdGlvbnMudmFsdWUpKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfZGVzdHJveSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5yZW1vdmUoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBnZXRFbmRQb2ludEF0dHJpYnV0ZXMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgcmVkTm9kZSA9IFJFRC5ub2Rlcy5ub2RlKGVuZHBvaW50SWQpO1xuICAgICAgICBpZiAoIXJlZE5vZGUpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAvLyBjb25zdCBjcmVkZW50aWFscyA9IFJFRC4oZW5kcG9pbnRJZCk7XG4gICAgICAgIC8vIHdlIG5lZWQgdG8gc2FuaXRpemUgYW5kIGV4dHJhY3QgdGhlIGVuZHBvaW50IGF0dHJpYnV0ZXMgb25seSAoIG5vdCB0aGUgbm9kZS1yZWQgc3R1ZmYpXG4gICAgICAgIGNvbnN0IHsgZW5kcG9pbnQsIHNlY3VyaXR5TW9kZSwgc2VjdXJpdHlQb2xpY3ksIHVzZXJJZGVudGl0eVR5cGUsIGNyZWRlbnRpYWxzIH0gPSByZWROb2RlO1xuICAgICAgICBjb25zdCByZXRWYWx1ZSA9IHtcbiAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgY3JlZGVudGlhbHMsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnNvbGUubG9nKFwieHh4XCIsIHJldFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHJldFZhbHVlO1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50TnIgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgaWYgKCFlbmRwb2ludE5yKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogZW5kcG9pbnRJZCxcbiAgICAgICAgICAgIC8vIGVuZHBvaW50OiBlbmRwb2ludE5yLmVuZHBvaW50LFxuICAgICAgICAgICAgLy8gc2VjdXJpdHlNb2RlOiBlbmRwb2ludE5yLnNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIC8vIHNlY3VyaXR5UG9saWN5OiBlbmRwb2ludE5yLnNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIHVzZXJJZGVudGl0eVR5cGU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIC8vIGNyZWRlbnRpYWw6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gdXNlck5hbWU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyTmFtZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC8vIHBhc3N3b3JkOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIuY3JlZGVudGlhbHMucGFzc3dvcmQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyB1c2VyQ2VydGlmaWNhdGU6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlckNlcnRpZmljYXRlLFxuICAgICAgICAgICAgLy8gdXNlclByaXZhdGVrZXk6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlclByaXZhdGVrZXksXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1DbGllbnQyLUJyb3dzZVwiLCB7XG4gICAgICAgIGNhdGVnb3J5OiBcIm9wY3VhXCIsXG4gICAgICAgIGNvbG9yOiBcIiNDMERFRURcIixcbiAgICAgICAgYWxpZ246IFwicmlnaHRcIixcbiAgICAgICAgaWNvbjogXCIuLi8uLi9pY29ucy9vcGN1YW5vZGVMb2dvLnBuZ1wiLFxuICAgICAgICBwYWxldHRlTGFiZWw6IFwiYnJvd3NlXCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBpbnB1dHM6IHsgdmFsdWU6IDEgfSxcbiAgICAgICAgICAgIG91dHB1dDogeyB2YWx1ZTogNCB9LFxuICAgICAgICAgICAgLy8gQ29tbW9uXG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUsIHR5cGU6IFwiT3BjVWEtRW5kcG9pbnQyXCIgfSxcbiAgICAgICAgICAgIC8vIGZvciBhY3Rpb24gcmVhZFxuICAgICAgICAgICAgbm9kZUlkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIHJlZmVyZW5jZVR5cGVJZDogeyB2YWx1ZTogXCJIYXNDaGlsZFwiLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIGluY2x1ZGVTdWJ0eXBlczogeyB2YWx1ZTogZmFsc2UsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBicm93c2VEaXJlY3Rpb246IHsgdmFsdWU6IFwiRm9yd2FyZFwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgbm9kZUNsYXNzTWFzazogeyB2YWx1ZTogXCJWYXJpYWJsZSB8IE9iamVjdCB8IE1ldGhvZCB8IE9iamVjdFR5cGUgfCBWYXJpYWJsZVR5cGVcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICByZXN1bHRNYXNrOiB7IHZhbHVlOiBcIlJlZmVyZW5jZVR5cGUgfCBCcm93c2VOYW1lIHwgVHlwZURlZmluaXRpb24gfCBEaXNwbGF5TmFtZSB8IE5vZGVDbGFzcyB8IElzRm9yd2FyZFwiLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgfSxcbiAgICAgICAgb3V0cHV0czogMSxcbiAgICAgICAgbGFiZWwoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lIHx8IFwiT1BDVUEgQnJvd3NlXCI7XG4gICAgICAgIH0sXG4gICAgICAgIGxhYmVsU3R5bGUoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lID8gXCJub2RlX2xhYmVsX2l0YWxpY1wiIDogXCJcIjtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0cHJlcGFyZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzO1xuICAgICAgICAgICAgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0KCk7XG4gICAgICAgICAgICBkZWNsYXJlRmxhZ0VkaXRvcldpZGdldCgpO1xuICAgICAgICAgICAgbm9kZS5pbnB1dHMgPSAxO1xuICAgICAgICAgICAgY29uc3QgJG5vZGVDbGFzc01hc2sgPSAkKFwiI25vZGUtaW5wdXQtbm9kZUNsYXNzTWFza1wiKTtcbiAgICAgICAgICAgICRub2RlQ2xhc3NNYXNrLmZsYWdFZGl0b3Ioe1xuICAgICAgICAgICAgICAgIG5hbWVzVG9CaXRzOiB7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdDogMSxcbiAgICAgICAgICAgICAgICAgICAgVmFyaWFibGU6IDIsXG4gICAgICAgICAgICAgICAgICAgIE1ldGhvZDogNCxcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0VHlwZTogOCxcbiAgICAgICAgICAgICAgICAgICAgVmFyaWFibGVUeXBlOiAxNixcbiAgICAgICAgICAgICAgICAgICAgUmVmZXJlbmNlVHlwZTogMzIsXG4gICAgICAgICAgICAgICAgICAgIERhdGFUeXBlOiA2NCxcbiAgICAgICAgICAgICAgICAgICAgVmlldzogMTI4LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdmFsdWU6IDAsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0ICRyZXN1bHRNYXNrID0gJChcIiNub2RlLWlucHV0LXJlc3VsdE1hc2tcIik7XG4gICAgICAgICAgICAkcmVzdWx0TWFzay5mbGFnRWRpdG9yKHtcbiAgICAgICAgICAgICAgICBuYW1lc1RvQml0czoge1xuICAgICAgICAgICAgICAgICAgICBSZWZlcmVuY2VUeXBlOiAxLFxuICAgICAgICAgICAgICAgICAgICBJc0ZvcndhcmQ6IDIsXG4gICAgICAgICAgICAgICAgICAgIE5vZGVDbGFzczogNCxcbiAgICAgICAgICAgICAgICAgICAgQnJvd3NlTmFtZTogOCxcbiAgICAgICAgICAgICAgICAgICAgRGlzcGxheU5hbWU6IDE2LFxuICAgICAgICAgICAgICAgICAgICBUeXBlRGVmaW5pdGlvbjogMzIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogNjMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0ICRub2RlSWQgPSAkKFwiI25vZGUtaW5wdXQtbm9kZUlkXCIpO1xuICAgICAgICAgICAgJG5vZGVJZC5ub2RlQnJvd3NlcihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSksIHsgaXNTZWxlY3RhYmxlKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiVmFyaWFibGVcIiB8fCBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiT2JqZWN0XCI7XG4gICAgICAgICAgICAgICAgfSB9KSk7XG4gICAgICAgICAgICBjb25zdCByZWZlcmVuY2VzTm9kZURlc2MgPSB7XG4gICAgICAgICAgICAgICAgbm9kZUlkOiBcImk9MzFcIixcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJSZWZlcmVuY2VzXCIgfSxcbiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogeyB0ZXh0OiBcIlJlZmVyZW5jZXNcIiB9LFxuICAgICAgICAgICAgICAgIG5vZGVDbGFzczogXCJSZWZlcmVuY2VUeXBlXCIsXG4gICAgICAgICAgICAgICAgdHlwZURlZmluaXRpb246IFwiaT0zMVwiLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0ICRyZWZlcmVuY2VUeXBlSWQgPSAkKFwiI25vZGUtaW5wdXQtcmVmZXJlbmNlVHlwZUlkXCIpO1xuICAgICAgICAgICAgJHJlZmVyZW5jZVR5cGVJZC5ub2RlQnJvd3NlcihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSksIHsgcGFyZW50Tm9kZTogKCkgPT4gcmVmZXJlbmNlc05vZGVEZXNjLCAvLyBSZWZlcmVuY2VzLFxuICAgICAgICAgICAgICAgIGlzU2VsZWN0YWJsZShub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgICAgICAgICB9LCBpc1R5cGVSZWY6IHRydWUgfSkpO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkgeyB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
|
7
|
+
function _0x524a(){const _0x4f5341=['text','72444uUgNOm','HasProperty','TypeDefinition','$combo','/checkNodeId','number','HasComponent','SteelBlue','xxx','nodeBrowser','HasSubtype','suppressed','#node-input-nodeClassMask','$toggleTreeBtn','verify','appendTo','hide','widget','</li>','1271850ArzLkI','click','ns=0;i=46','element','browse','statusText','OpcUa-Endpoint2','ns=0;i=34','rgba(61,\x2060,\x204,\x200.525)','left','change','SuppressedError','/browse','Forward','then','108882xcMKpG','attr','../../icons/opcuanodeLogo.png','ns=0;i=45','Object','385GgsmeV','trim','<span\x20class=\x22custom-checkbox\x22></span>','fa-object-group','err','NodeClass','throw','match','done','referenceTypeId','value','grey','/opcua-endpoint2','HasChild','fa-question','insertAfter','references','fa-cog','Variable','Unspecified','<div/>','$tree','input-group','Method','$info','DataType','expanded','stringify','nodeId','fetching\x20failed\x20with\x20error','stopPropagation','addClass','33oHRqYo','options','i=31','<li><i\x20class=\x22fa\x20','toString','append','name','val','replaceChild','<div\x20class=\x22spinner\x22></div>','Both','Unknown\x20bit\x20name','baseUrl','4097750qZzVzz','already\x20loading','Inverse','map','browseName','assign','split','endpointNode','ns=0;i=61','opc.tcp://opcuademo.sterfive.com:26543','<div\x20class=\x22custom-option\x22\x20data-value=\x22','References','application/json','Variable\x20|\x20Object\x20|\x20Method\x20|\x20ObjectType\x20|\x20VariableType','filter','each','HasTypeDefinition','hasClass','BrowseName','reset','OpcUa-Client2-Browse','Objects','apply','pageY','placeholder','length','<li>error\x20','nodeClass','!!failure!!','fa-folder','Organizes','data','fa-list-alt','$inputGroup','DarkOrange','endpoint','705158bPEpOR','fetched\x20:\x20','selected','message','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','toggleClass','next','namesToBits','json','loading','#node-input-endpoint','SeaGreen','DisplayName','reference','<div\x20class=\x22custom-select\x22></div>','\x20Fetching\x20done','updateValue',':visible','isTypeRef','$dropdown','resolveParentNode','error','ObjectType','9RGdpdM','nodes','<div\x20class=\x22info-text\x22></div>','toggle','fa-sliders','$input','5514436YHOfgh','target','816ZOHUrR',';\x22></i>\x20','9034151hXKjuE','View','node_label_italic','status','ReferenceType','children','sterfive-combo-box','sterfive-info','\x22\x20style=\x22color:','IsForward','$verifyBtn','POST','remove','isSelectable','top','opcua','parentNode','ns=0;i=47','ns=0;i=85','Invalid','offset','failure','currentParent','expandable\x20expanded','flagEditor','right','#node-input-referenceTypeId','show','</div>','empty','VariableType','function','sterfive.flagEditor','ns=0;i=40','join','parentElement','expandable','push','find','CadetBlue','log','entries','fetched','<button><i\x20class=\x22fa\x20fa-eye\x22></i></button>','.custom-option','inputs','statusCode','removeClass','sterfive.nodeBrowser','\x20|\x20','#node-input-resultMask','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','trigger'];_0x524a=function(){return _0x4f5341;};return _0x524a();}function _0x43bf(_0x4abd39,_0x5aefe7){const _0x524aa4=_0x524a();return _0x43bf=function(_0x43bf31,_0x3967b6){_0x43bf31=_0x43bf31-0x113;let _0x2908c9=_0x524aa4[_0x43bf31];return _0x2908c9;},_0x43bf(_0x4abd39,_0x5aefe7);}(function(_0x59a3ff,_0x4b71e8){const _0x1c8d1f=_0x43bf,_0x5c776c=_0x59a3ff();while(!![]){try{const _0x601dac=parseInt(_0x1c8d1f(0x1c8))/0x1+parseInt(_0x1c8d1f(0x15e))/0x2*(parseInt(_0x1c8d1f(0x175))/0x3)+-parseInt(_0x1c8d1f(0x17b))/0x4+-parseInt(_0x1c8d1f(0x1dc))/0x5*(-parseInt(_0x1c8d1f(0x1b5))/0x6)+parseInt(_0x1c8d1f(0x17f))/0x7+-parseInt(_0x1c8d1f(0x17d))/0x8*(parseInt(_0x1c8d1f(0x1d7))/0x9)+-parseInt(_0x1c8d1f(0x13a))/0xa*(parseInt(_0x1c8d1f(0x12d))/0xb);if(_0x601dac===_0x4b71e8)break;else _0x5c776c['push'](_0x5c776c['shift']());}catch(_0x26431a){_0x5c776c['push'](_0x5c776c['shift']());}}}(_0x524a,0xacd6c),(function(){'use strict';const _0x143b73=_0x43bf;function _0x45c2b0(_0x26dec5,_0x4ae367,_0x2b9fca,_0x59ddfc){function _0x484d5e(_0x4b5b9d){return _0x4b5b9d instanceof _0x2b9fca?_0x4b5b9d:new _0x2b9fca(function(_0x485d5c){_0x485d5c(_0x4b5b9d);});}return new(_0x2b9fca||(_0x2b9fca=Promise))(function(_0x3706be,_0x348f17){const _0x527e51=_0x43bf;function _0x578142(_0x2be79e){try{_0x225eac(_0x59ddfc['next'](_0x2be79e));}catch(_0x2a2993){_0x348f17(_0x2a2993);}}function _0x743c60(_0x233306){const _0x3cb9b5=_0x43bf;try{_0x225eac(_0x59ddfc[_0x3cb9b5(0x113)](_0x233306));}catch(_0x821eba){_0x348f17(_0x821eba);}}function _0x225eac(_0x1840ae){const _0x3e76f0=_0x43bf;_0x1840ae[_0x3e76f0(0x115)]?_0x3706be(_0x1840ae[_0x3e76f0(0x117)]):_0x484d5e(_0x1840ae[_0x3e76f0(0x117)])[_0x3e76f0(0x1d6)](_0x578142,_0x743c60);}_0x225eac((_0x59ddfc=_0x59ddfc[_0x527e51(0x150)](_0x26dec5,_0x4ae367||[]))[_0x527e51(0x164)]());});}typeof SuppressedError===_0x143b73(0x19e)?SuppressedError:function(_0x2f041d,_0x4664c3,_0x103154){const _0x3beb96=_0x143b73;var _0x184269=new Error(_0x103154);return _0x184269[_0x3beb96(0x133)]=_0x3beb96(0x1d3),_0x184269['error']=_0x2f041d,_0x184269[_0x3beb96(0x1c0)]=_0x4664c3,_0x184269;};const _0x4cc68f='ns=0;i=35',_0x1d9b3d=_0x143b73(0x142),_0x2c14ca=_0x143b73(0x190),_0xf1e355=_0x143b73(0x1ca),_0x4000b9=_0x143b73(0x1cf),_0x4d4e6b=_0x143b73(0x1da),_0x451273=_0x143b73(0x1a0);var _0x234480;(function(_0x2211f6){const _0x4330d5=_0x143b73;_0x2211f6[_0x2211f6[_0x4330d5(0x1d5)]=0x0]='Forward',_0x2211f6[_0x2211f6[_0x4330d5(0x13c)]=0x1]=_0x4330d5(0x13c),_0x2211f6[_0x2211f6[_0x4330d5(0x137)]=0x2]=_0x4330d5(0x137),_0x2211f6[_0x2211f6[_0x4330d5(0x192)]=0x3]=_0x4330d5(0x192);}(_0x234480||(_0x234480={})));var _0x4e691e;(function(_0x47d11f){const _0x4dcc3c=_0x143b73;_0x47d11f[_0x47d11f['Unspecified']=0x0]=_0x4dcc3c(0x120),_0x47d11f[_0x47d11f[_0x4dcc3c(0x1db)]=0x1]=_0x4dcc3c(0x1db),_0x47d11f[_0x47d11f['Variable']=0x2]='Variable',_0x47d11f[_0x47d11f[_0x4dcc3c(0x124)]=0x4]=_0x4dcc3c(0x124),_0x47d11f[_0x47d11f[_0x4dcc3c(0x174)]=0x8]=_0x4dcc3c(0x174),_0x47d11f[_0x47d11f[_0x4dcc3c(0x19d)]=0x10]='VariableType',_0x47d11f[_0x47d11f[_0x4dcc3c(0x183)]=0x20]=_0x4dcc3c(0x183),_0x47d11f[_0x47d11f[_0x4dcc3c(0x126)]=0x40]=_0x4dcc3c(0x126),_0x47d11f[_0x47d11f[_0x4dcc3c(0x180)]=0x80]='View';}(_0x4e691e||(_0x4e691e={})));var _0x159c72;(function(_0x3e0424){const _0x524950=_0x143b73;_0x3e0424[_0x3e0424[_0x524950(0x1db)]=0x1]=_0x524950(0x1db),_0x3e0424[_0x3e0424[_0x524950(0x11f)]=0x2]='Variable',_0x3e0424[_0x3e0424[_0x524950(0x124)]=0x4]='Method',_0x3e0424[_0x3e0424[_0x524950(0x174)]=0x8]='ObjectType',_0x3e0424[_0x3e0424[_0x524950(0x19d)]=0x10]=_0x524950(0x19d),_0x3e0424[_0x3e0424[_0x524950(0x183)]=0x20]='ReferenceType',_0x3e0424[_0x3e0424['DataType']=0x40]=_0x524950(0x126),_0x3e0424[_0x3e0424[_0x524950(0x180)]=0x80]=_0x524950(0x180);}(_0x159c72||(_0x159c72={})));function _0x3aa52b(_0xefb642,_0x429f82){const _0x2f6316=_0x143b73;if(typeof _0x429f82===_0x2f6316(0x1ba))return _0x429f82;const _0x47dd3c=parseInt(_0x429f82,0xa);if(!isNaN(_0x47dd3c))return _0x47dd3c;const _0x267419=_0x429f82[_0x2f6316(0x140)](/\||;|,/)[_0x2f6316(0x13d)](_0x33d6a2=>_0x33d6a2[_0x2f6316(0x1dd)]());let _0x1e83bf=0x0;for(const _0xb6fae7 of _0x267419){_0x1e83bf|=_0xefb642[_0xb6fae7];}return _0x1e83bf;}function _0x21e652(_0x3bbba8,_0x41e1b1){const _0x443230=_0x143b73;_0x41e1b1=_0x3aa52b(_0x3bbba8,_0x41e1b1);const _0x4dd4ba=[];if(!_0x3bbba8)return _0x4dd4ba[_0x443230(0x1a1)](_0x443230(0x1b0));for(const [_0x5d1e4d,_0x3ccf4a]of Object[_0x443230(0x1a8)](_0x3bbba8)){typeof _0x41e1b1==='number'&&((_0x41e1b1&_0x3ccf4a)===_0x3ccf4a&&_0x4dd4ba[_0x443230(0x1a4)](_0x5d1e4d));}return _0x4dd4ba['join'](_0x443230(0x1b0));}var _0x3ab040;(function(_0x3c9bca){const _0x27a624=_0x143b73;_0x3c9bca[_0x3c9bca[_0x27a624(0x183)]=0x1]=_0x27a624(0x183),_0x3c9bca[_0x3c9bca['IsForward']=0x2]=_0x27a624(0x188),_0x3c9bca[_0x3c9bca[_0x27a624(0x1e1)]=0x4]=_0x27a624(0x1e1),_0x3c9bca[_0x3c9bca[_0x27a624(0x14c)]=0x8]=_0x27a624(0x14c),_0x3c9bca[_0x3c9bca[_0x27a624(0x16a)]=0x10]=_0x27a624(0x16a),_0x3c9bca[_0x3c9bca[_0x27a624(0x1b7)]=0x20]='TypeDefinition';}(_0x3ab040||(_0x3ab040={})));function _0x4566e2(_0x7f1b48){const _0x2d20a2=_0x143b73;switch(_0x7f1b48){case'Organizes':return _0x4cc68f;case _0x2d20a2(0x1b6):return _0xf1e355;case _0x2d20a2(0x1bb):return _0x2c14ca;case _0x2d20a2(0x11a):return _0x4000b9;case'HasSubtype':return _0x4d4e6b;case _0x2d20a2(0x14a):return _0x451273;}}const _0x31120a=_0x9d6ac5=>{const _0x12897a=_0x143b73;switch(_0x9d6ac5['nodeClass']){case _0x12897a(0x1db):if(_0x9d6ac5[_0x12897a(0x116)]===_0x4cc68f);if(_0x9d6ac5['typeDefinition']===_0x1d9b3d||_0x9d6ac5[_0x12897a(0x116)]==='i=61')return{'icon':_0x12897a(0x157),'color':_0x12897a(0x1d0)};return{'icon':_0x12897a(0x1df),'color':_0x12897a(0x169)};case'Variable':if(_0x9d6ac5[_0x12897a(0x116)]===_0x2c14ca)return{'icon':_0x12897a(0x15a),'color':_0x12897a(0x1bc)};else return _0x9d6ac5[_0x12897a(0x116)]===_0xf1e355?{'icon':_0x12897a(0x15a),'color':'DodgerBlue'}:{'icon':'fa-list-alt','color':_0x12897a(0x1a6)};case _0x12897a(0x124):return{'icon':_0x12897a(0x11e),'color':'SandyBrown'};case'ObjectType':return{'icon':_0x12897a(0x1df),'color':'DarkOrange'};case _0x12897a(0x19d):return{'icon':_0x12897a(0x179),'color':_0x12897a(0x15c)};}return{'icon':_0x12897a(0x11b),'color':_0x12897a(0x118)};},_0x40f3e8=({endpointNode:_0x5164c8,endpoint:_0x62533e,baseUrl:_0x50e8e7},_0x395d6f,_0xf87301)=>_0x45c2b0(void 0x0,void 0x0,void 0x0,function*(){const _0x4bd1bf=_0x143b73,_0x282f78=_0x50e8e7+_0x4bd1bf(0x119),_0x48fcb1=_0x282f78+_0x4bd1bf(0x1d4),_0x5a470a=Object['assign'](Object[_0x4bd1bf(0x13f)]({},_0xf87301),{'nodeId':_0x395d6f,'resultMask':0x3f}),_0x2e8b1b=yield fetch(_0x48fcb1,{'method':_0x4bd1bf(0x18a),'body':JSON[_0x4bd1bf(0x128)]({'endpointNode':_0x5164c8,'endpoint':_0x62533e,'browseDescription':_0x5a470a}),'headers':{'Content-Type':'application/json'}});if(_0x2e8b1b['status']!==0xc8)return console['log'](_0x4bd1bf(0x12a),_0x2e8b1b['status'],_0x2e8b1b[_0x4bd1bf(0x1cd)]),{'references':[]};console[_0x4bd1bf(0x1a7)](_0x4bd1bf(0x15f),_0x2e8b1b[_0x4bd1bf(0x182)],_0x2e8b1b[_0x4bd1bf(0x1cd)]);const _0x5448d3=yield _0x2e8b1b[_0x4bd1bf(0x166)](),_0x3cfbc6=_0x5448d3['browseResult'][_0x4bd1bf(0x11d)]||[];return{'references':_0x3cfbc6};}),_0x1aa820={'referenceTypeId':_0x4566e2(_0x143b73(0x11a)),'includeSubtypes':!![],'browseDirection':_0x234480['Forward'],'nodeClassMask':_0x4e691e['Variable']|_0x4e691e[_0x143b73(0x1db)]|_0x4e691e['Method'],'resultMask':0x3f},_0x128d15={'referenceTypeId':_0x4566e2(_0x143b73(0x158)),'includeSubtypes':!![],'browseDirection':_0x234480[_0x143b73(0x1d5)],'nodeClassMask':_0x4e691e[_0x143b73(0x11f)]|_0x4e691e[_0x143b73(0x1db)]|_0x4e691e[_0x143b73(0x124)],'resultMask':0x3f},_0x14f50b=({endpointNode:_0x496da8,endpoint:_0x129297,baseUrl:_0x4ded04},_0x9d9b5a,_0x33eac0)=>_0x45c2b0(void 0x0,void 0x0,void 0x0,function*(){const _0x378655=_0x143b73,_0x311056=_0x4ded04+_0x378655(0x119),_0x39ea49=_0x9d9b5a['val'](),_0x3604d5=yield fetch(_0x311056+_0x378655(0x1b9),{'method':_0x378655(0x18a),'body':JSON[_0x378655(0x128)]({'endpointNode':_0x496da8,'endpoint':_0x129297,'nodeId':_0x39ea49}),'headers':{'Content-Type':_0x378655(0x146)}}),_0x34eae1=(_0x72a8e8,_0x2cfa04)=>{const _0x2cd80a=_0x378655;_0x33eac0[_0x2cd80a(0x1b4)](_0x72a8e8)[_0x2cd80a(0x12c)](_0x2cd80a(0x186))[_0x2cd80a(0x12c)](_0x2cfa04),_0x33eac0[_0x2cd80a(0x19a)](),setTimeout(()=>{const _0xed62a8=_0x2cd80a;_0x33eac0['removeClass'](_0x2cfa04),_0x33eac0[_0xed62a8(0x1c5)]();},0xbb8);},_0x466380=yield _0x3604d5[_0x378655(0x166)]();_0x3604d5['status']!==0xc8?_0x34eae1(_0x378655(0x156)+_0x39ea49,_0x378655(0x194)):_0x466380['statusCode'][_0x378655(0x114)](/Good/)?(_0x9d9b5a['val'](_0x466380['nodeAddressString']),_0x9d9b5a[_0x378655(0x1b3)](_0x378655(0x1d2)),_0x34eae1('Good','ok')):(_0x9d9b5a['val'](''+_0x39ea49),_0x34eae1(_0x466380[_0x378655(0x1ad)]+'\x20'+_0x3604d5[_0x378655(0x1cd)],_0x378655(0x194)));});function _0xdc42a5(_0x4840f0,_0x172747){return _0x45c2b0(this,void 0x0,void 0x0,function*(){const _0x279691=_0x43bf,_0x10cc9f=_0x4840f0[_0x279691(0x159)](_0x279691(0x117)),_0x4062fd=yield _0x40f3e8(_0x172747,_0x10cc9f,_0x1aa820),_0x51725b=yield _0x40f3e8(_0x172747,_0x10cc9f,_0x128d15);return{'references':[..._0x4062fd[_0x279691(0x11d)],..._0x51725b[_0x279691(0x11d)]]};});}const _0x300b0a={'referenceTypeId':_0x4566e2(_0x143b73(0x1bf)),'includeSubtypes':!![],'browseDirection':_0x234480['Forward'],'nodeClassMask':_0x4e691e[_0x143b73(0x183)]|_0x4e691e[_0x143b73(0x174)]|_0x4e691e[_0x143b73(0x126)]|_0x4e691e[_0x143b73(0x19d)],'resultMask':0x3f};function _0x23035f(_0x277f0f,_0x48a1b4){return _0x45c2b0(this,void 0x0,void 0x0,function*(){const _0x4cfe26=_0x43bf,_0x3628b5=_0x277f0f[_0x4cfe26(0x159)](_0x4cfe26(0x117)),_0x358fcc=yield _0x40f3e8(_0x48a1b4,_0x3628b5,_0x300b0a);return _0x358fcc;});}const _0x50a9c1=_0xf760b1=>{const _0x5087b4=_0x143b73;var _0x424f20,_0x50970d;if(!_0xf760b1){const _0x3585e0=$('<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>');return _0x3585e0;}const _0xfaca08=_0xf760b1['nodeId'][_0x5087b4(0x131)](),_0x3ca2e4=((_0x424f20=_0xf760b1['displayName'])===null||_0x424f20===void 0x0?void 0x0:_0x424f20[_0x5087b4(0x1b4)])||((_0x50970d=_0xf760b1[_0x5087b4(0x13e)])===null||_0x50970d===void 0x0?void 0x0:_0x50970d[_0x5087b4(0x133)])||_0xf760b1[_0x5087b4(0x129)][_0x5087b4(0x131)](),{icon:_0x2e8e59,color:_0x132da6}=_0x31120a(_0xf760b1),_0x5ad8be=$(_0x5087b4(0x130)+_0x2e8e59+_0x5087b4(0x187)+_0x132da6+_0x5087b4(0x17e)+_0x3ca2e4+'<ul></ul></li>');return _0x5ad8be[_0x5087b4(0x12c)](_0x5087b4(0x1a3)),_0x5ad8be[_0x5087b4(0x159)]('value',_0xfaca08),_0x5ad8be[_0x5087b4(0x159)](_0x5087b4(0x16b),_0xf760b1),_0x5ad8be;},_0x4f7d67=()=>{const _0x14f86e=_0x143b73;$[_0x14f86e(0x1c6)](_0x14f86e(0x1af),{'options':{'endpointNode':()=>({'endpoint':_0x14f86e(0x143)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x14f86e(0x14f)},'nodeClass':_0x14f86e(0x1db),'nodeId':_0x14f86e(0x191),'displayName':{'text':_0x14f86e(0x14f)},'typeDefinition':_0x1d9b3d}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x45c2b0(this,void 0x0,void 0x0,function*(){const _0x2dbe89=_0x43bf,_0x26c2e8=this,_0x316628=typeof _0x26c2e8[_0x2dbe89(0x12e)][_0x2dbe89(0x18f)]===_0x2dbe89(0x19e)?_0x26c2e8[_0x2dbe89(0x12e)][_0x2dbe89(0x18f)]():_0x26c2e8[_0x2dbe89(0x12e)]['parentNode'];if(_0x316628 instanceof Promise)return yield _0x316628;return _0x316628;});},'reset'(){const _0x39fe7b=_0x14f86e,_0x35e383=this;_0x35e383[_0x39fe7b(0x122)][_0x39fe7b(0x19c)](),this[_0x39fe7b(0x172)]()[_0x39fe7b(0x1d6)](_0x4bd7b4=>{const _0x447b8e=_0x39fe7b,_0xb08a6e=_0x50a9c1(_0x4bd7b4);_0x35e383[_0x447b8e(0x122)]['append'](_0xb08a6e),_0x35e383[_0x447b8e(0x195)]=_0x4bd7b4;});},'verify'(){const _0x35a26f=_0x14f86e,_0x3fe659=this,_0x5e9ef6={'baseUrl':_0x3fe659[_0x35a26f(0x12e)]['baseUrl'],'endpointNode':typeof _0x3fe659[_0x35a26f(0x12e)][_0x35a26f(0x141)]===_0x35a26f(0x19e)?_0x3fe659[_0x35a26f(0x12e)][_0x35a26f(0x141)]():_0x3fe659['options']['endpointNode'],'endpoint':typeof _0x3fe659[_0x35a26f(0x12e)]['endpoint']===_0x35a26f(0x19e)?_0x3fe659[_0x35a26f(0x12e)][_0x35a26f(0x15d)]():_0x3fe659['options']['endpoint']};_0x14f50b(_0x5e9ef6,_0x3fe659[_0x35a26f(0x17a)],_0x3fe659[_0x35a26f(0x125)]);},'_create'(){const _0x118fef=_0x14f86e,_0x2065e4=this;function _0x2e0d62(_0x3d2f1d,_0x2dac26,_0x14aafd){return _0x45c2b0(this,void 0x0,void 0x0,function*(){const _0x102051=_0x43bf;if(_0x3d2f1d[_0x102051(0x14b)](_0x102051(0x1a9))){console[_0x102051(0x1a7)]('already\x20fetched');return;}if(_0x3d2f1d[_0x102051(0x14b)](_0x102051(0x167))){console[_0x102051(0x1a7)](_0x102051(0x13b));return;}_0x3d2f1d[_0x102051(0x12c)](_0x102051(0x167)),_0x3d2f1d[_0x102051(0x132)](_0x102051(0x136));try{_0x3d2f1d[_0x102051(0x184)]('ul')[_0x102051(0x19c)]();const {references:_0x490f81}=yield _0x2dac26(_0x3d2f1d,_0x14aafd);for(const _0x4fe034 of _0x490f81){if(_0x2065e4[_0x102051(0x12e)][_0x102051(0x148)]&&!_0x2065e4[_0x102051(0x12e)][_0x102051(0x148)](_0x4fe034))continue;const _0x464531=_0x50a9c1(_0x4fe034);_0x3d2f1d[_0x102051(0x184)]('ul')[_0x102051(0x132)](_0x464531);}_0x3d2f1d[_0x102051(0x12c)]('fetched');}catch(_0x456ec4){_0x3d2f1d[_0x102051(0x184)]('ul')['append'](_0x102051(0x154)+_0x456ec4[_0x102051(0x161)]+_0x102051(0x1c7)),console[_0x102051(0x1a7)](_0x102051(0x1e0),_0x456ec4);}_0x3d2f1d['find']('.spinner')[_0x102051(0x18b)](),_0x3d2f1d[_0x102051(0x1ae)](_0x102051(0x167));});}_0x2065e4[_0x118fef(0x17a)]=this[_0x118fef(0x1cb)],_0x2065e4[_0x118fef(0x1b8)]=$(_0x118fef(0x121)),_0x2065e4['$combo'][_0x118fef(0x12c)]('sterfive-combo-box'),this['element']['replaceWith'](_0x2065e4[_0x118fef(0x1b8)]),_0x2065e4['$inputGroup']=$(_0x118fef(0x121))[_0x118fef(0x12c)]('input-group'),_0x2065e4[_0x118fef(0x1b8)][_0x118fef(0x132)](_0x2065e4[_0x118fef(0x15b)]),_0x2065e4[_0x118fef(0x15b)]['append'](_0x2065e4['$input']),_0x2065e4[_0x118fef(0x1c2)]=$(_0x118fef(0x1b2)),_0x2065e4[_0x118fef(0x15b)]['append'](_0x2065e4[_0x118fef(0x1c2)]),_0x2065e4['$toggleTreeBtn']['on'](_0x118fef(0x1c9),function(){const _0x5787c8=_0x118fef;!_0x2065e4[_0x5787c8(0x171)]['is'](_0x5787c8(0x16f))&&(_0x2065e4[_0x5787c8(0x172)]()[_0x5787c8(0x1d6)](_0x2f9a77=>{const _0x4931d1=_0x5787c8;var _0x542816;(_0x2f9a77!==_0x2065e4[_0x4931d1(0x195)]||((_0x542816=_0x2065e4['currentParent'])===null||_0x542816===void 0x0?void 0x0:_0x542816[_0x4931d1(0x129)])!==_0x2f9a77[_0x4931d1(0x129)])&&_0x2065e4[_0x4931d1(0x14d)]();}),_0x2065e4[_0x5787c8(0x125)][_0x5787c8(0x1c5)]()),_0x2065e4[_0x5787c8(0x171)][_0x5787c8(0x178)]();}),_0x2065e4['$verifyBtn']=$('<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>'),_0x2065e4[_0x118fef(0x15b)]['append'](_0x2065e4[_0x118fef(0x189)]),_0x2065e4[_0x118fef(0x189)]['on']('click',()=>{const _0x477145=_0x118fef;this[_0x477145(0x1c3)]();}),!_0x2065e4[_0x118fef(0x17a)]['attr'](_0x118fef(0x152))&&_0x2065e4[_0x118fef(0x17a)][_0x118fef(0x1d8)](_0x118fef(0x152),_0x118fef(0x162)),_0x2065e4[_0x118fef(0x125)]=$(_0x118fef(0x177)),_0x2065e4[_0x118fef(0x125)][_0x118fef(0x1c5)](),{'baseUrl':_0x2065e4['options'][_0x118fef(0x139)],'endpointNode':typeof _0x2065e4[_0x118fef(0x12e)]['endpointNode']===_0x118fef(0x19e)?_0x2065e4['options'][_0x118fef(0x141)]():_0x2065e4[_0x118fef(0x12e)][_0x118fef(0x141)],'endpoint':typeof _0x2065e4[_0x118fef(0x12e)][_0x118fef(0x15d)]===_0x118fef(0x19e)?_0x2065e4[_0x118fef(0x12e)][_0x118fef(0x15d)]():_0x2065e4[_0x118fef(0x12e)]['endpoint']},_0x2065e4[_0x118fef(0x171)]=$('<div/>')[_0x118fef(0x12c)]('sterfive-dropdown')[_0x118fef(0x1c5)](),_0x2065e4[_0x118fef(0x1b8)][_0x118fef(0x132)](_0x2065e4[_0x118fef(0x125)]),_0x2065e4[_0x118fef(0x1b8)][_0x118fef(0x132)](_0x2065e4[_0x118fef(0x171)]),_0x2065e4[_0x118fef(0x122)]=$('<ul\x20class=\x22sterfive-tree\x22></ul>')[_0x118fef(0x1c4)](_0x2065e4[_0x118fef(0x171)]),this['reset'](),_0x2065e4[_0x118fef(0x122)]['on'](_0x118fef(0x1c9),'li',function(_0xc4bcf5){const _0x2539eb=_0x118fef;var _0x451cea,_0x4948ae;_0xc4bcf5[_0x2539eb(0x12b)]();let _0x396929=$(this);const _0x54a790=0x14,_0x267821=0x14,_0x25946b=$(this)[_0x2539eb(0x193)](),_0x724046=_0xc4bcf5;if(_0x724046['pageX']>=_0x25946b[_0x2539eb(0x1d1)]&&_0x724046['pageX']<=_0x25946b[_0x2539eb(0x1d1)]+_0x54a790&&_0x724046[_0x2539eb(0x151)]>=_0x25946b[_0x2539eb(0x18d)]&&_0x724046['pageY']<=_0x25946b[_0x2539eb(0x18d)]+_0x267821){if(_0x396929[_0x2539eb(0x14b)](_0x2539eb(0x1a3))){if(_0x396929[_0x2539eb(0x14b)](_0x2539eb(0x1a9))){_0x396929[_0x2539eb(0x1ae)]('expandable')[_0x2539eb(0x12c)](_0x2539eb(0x127)),_0x396929[_0x2539eb(0x184)]('ul')['toggle']();return;}const _0x2a3dfc={'baseUrl':_0x2065e4[_0x2539eb(0x12e)][_0x2539eb(0x139)],'endpointNode':typeof _0x2065e4[_0x2539eb(0x12e)][_0x2539eb(0x141)]===_0x2539eb(0x19e)?_0x2065e4[_0x2539eb(0x12e)][_0x2539eb(0x141)]():_0x2065e4[_0x2539eb(0x12e)][_0x2539eb(0x141)],'endpoint':typeof _0x2065e4[_0x2539eb(0x12e)][_0x2539eb(0x15d)]===_0x2539eb(0x19e)?_0x2065e4[_0x2539eb(0x12e)]['endpoint']():_0x2065e4[_0x2539eb(0x12e)][_0x2539eb(0x15d)]},_0xfadd0d=!_0x2065e4[_0x2539eb(0x12e)][_0x2539eb(0x170)]?_0xdc42a5:_0x23035f;_0x2e0d62(_0x396929,_0xfadd0d,_0x2a3dfc)[_0x2539eb(0x1d6)](()=>{const _0x4ed012=_0x2539eb;console[_0x4ed012(0x1a7)](_0x4ed012(0x16d)),console[_0x4ed012(0x1a7)](_0x4ed012(0x1a9)),_0x396929['removeClass'](_0x4ed012(0x1a3))[_0x4ed012(0x12c)](_0x4ed012(0x127));})['catch'](_0x2586e0=>{const _0x593f60=_0x2539eb;_0x396929[_0x593f60(0x1ae)](_0x593f60(0x1a3))[_0x593f60(0x12c)](_0x593f60(0x127)),console[_0x593f60(0x1a7)](_0x593f60(0x173),_0x2586e0);});}else{if(_0x396929[_0x2539eb(0x14b)](_0x2539eb(0x127)))_0x396929[_0x2539eb(0x184)]('ul')[_0x2539eb(0x178)](),_0x396929[_0x2539eb(0x163)](_0x2539eb(0x196));else{if(_0x396929['children']('ul')[_0x2539eb(0x184)]()[_0x2539eb(0x153)]>0x0)_0x396929[_0x2539eb(0x184)]('ul')['toggle'](),_0x396929['toggleClass'](_0x2539eb(0x196));else;}}}else{const _0x542978=_0x396929[_0x2539eb(0x159)](_0x2539eb(0x117)),_0x49791d=_0x396929[_0x2539eb(0x159)](_0x2539eb(0x16b));if(_0x2065e4[_0x2539eb(0x12e)][_0x2539eb(0x18c)]&&!_0x2065e4[_0x2539eb(0x12e)]['isSelectable'](_0x49791d))return;_0x2065e4['$input'][_0x2539eb(0x159)](_0x2539eb(0x16b),_0x49791d);const _0x13b5de=((_0x451cea=_0x49791d['displayName'])===null||_0x451cea===void 0x0?void 0x0:_0x451cea[_0x2539eb(0x1b4)])||((_0x4948ae=_0x49791d[_0x2539eb(0x13e)])===null||_0x4948ae===void 0x0?void 0x0:_0x4948ae[_0x2539eb(0x133)])||_0x49791d[_0x2539eb(0x129)][_0x2539eb(0x131)](),_0x2f03c0='['+_0x13b5de+']('+_0x542978+')';_0x2065e4[_0x2539eb(0x17a)]['val'](_0x2f03c0),_0x2065e4[_0x2539eb(0x17a)][_0x2539eb(0x1b3)](_0x2539eb(0x1d2)),_0x2065e4[_0x2539eb(0x171)][_0x2539eb(0x1c5)]();}}),$(document)['on'](_0x118fef(0x1c9),function(_0x1290f9){const _0x594fc8=_0x118fef;!$(_0x1290f9[_0x594fc8(0x17c)])['closest'](_0x2065e4[_0x594fc8(0x1b8)])[_0x594fc8(0x153)]&&_0x2065e4[_0x594fc8(0x171)][_0x594fc8(0x1c5)]();});}});},_0xde27b2=()=>{const _0x5c50a1=_0x143b73;$[_0x5c50a1(0x1c6)](_0x5c50a1(0x19f),{'options':{'namesToBits':{},'value':0x0},'_create'(){const _0x51cfe7=_0x5c50a1,_0x417132=this;_0x417132['$input']=this[_0x51cfe7(0x1cb)],_0x417132['$combo']=$('<div/>'),_0x417132['$combo']['addClass'](_0x51cfe7(0x185)),this[_0x51cfe7(0x1cb)][0x0][_0x51cfe7(0x1a2)][_0x51cfe7(0x135)](_0x417132[_0x51cfe7(0x1b8)][0x0],this['element'][0x0]),_0x417132[_0x51cfe7(0x15b)]=$(_0x51cfe7(0x121))['addClass'](_0x51cfe7(0x123)),_0x417132[_0x51cfe7(0x1b8)][_0x51cfe7(0x132)](_0x417132[_0x51cfe7(0x15b)]),_0x417132['$inputGroup'][_0x51cfe7(0x132)](_0x417132[_0x51cfe7(0x17a)]),_0x417132['$toggleTreeBtn']=$(_0x51cfe7(0x1aa)),_0x417132['$inputGroup'][_0x51cfe7(0x132)](_0x417132['$toggleTreeBtn']),_0x417132[_0x51cfe7(0x1c2)]['on']('click',function(){const _0x5951cc=_0x51cfe7;_0x417132[_0x5951cc(0x171)]['toggle'](),_0x417132[_0x5951cc(0x171)]['is'](':visible')&&(_0x31f220(),_0x417132[_0x5951cc(0x1b8)][_0x5951cc(0x1a5)](_0x5951cc(0x1ab))[_0x5951cc(0x149)](function(){const _0x4748d1=_0x5951cc;let _0x370364=$(this)[_0x4748d1(0x1b4)]();const _0x231bb6=_0x417132['options']['namesToBits'][_0x370364];if(_0x231bb6===undefined)throw new Error('Unknown\x20bit\x20name');(_0x417132[_0x4748d1(0x12e)][_0x4748d1(0x117)]&_0x231bb6)===_0x231bb6?$(this)[_0x4748d1(0x12c)](_0x4748d1(0x160)):$(this)[_0x4748d1(0x1ae)](_0x4748d1(0x160));}),_0x417132[_0x5951cc(0x16e)]());}),_0x417132[_0x51cfe7(0x171)]=$(_0x51cfe7(0x16c))[_0x51cfe7(0x1c5)]()[_0x51cfe7(0x11c)](this[_0x51cfe7(0x1cb)]),$[_0x51cfe7(0x149)](this[_0x51cfe7(0x12e)][_0x51cfe7(0x165)],function(_0xca34dd){const _0x3e770e=_0x51cfe7,_0x52c592=$(_0x3e770e(0x144)+_0xca34dd+'\x22>'+_0x3e770e(0x1de)+_0xca34dd+_0x3e770e(0x19b));_0x417132['$dropdown'][_0x3e770e(0x132)](_0x52c592);}),_0x417132[_0x51cfe7(0x171)]['on'](_0x51cfe7(0x1c9),'.custom-option',function(){const _0x416d2d=_0x51cfe7;$(this)['toggleClass']('selected');const _0x56116c=$(this)[_0x416d2d(0x159)](_0x416d2d(0x117));$(this)[_0x416d2d(0x14b)](_0x416d2d(0x160))?_0x51c70f(_0x56116c):_0x404dad(_0x56116c),_0x417132['updateValue']();}),_0x417132[_0x51cfe7(0x1b8)]['append'](_0x417132[_0x51cfe7(0x171)]);const _0x31f220=()=>{const _0x492855=_0x51cfe7,_0x7122ae=this[_0x492855(0x1cb)][_0x492855(0x134)]();_0x417132['options'][_0x492855(0x117)]=_0x3aa52b(_0x417132[_0x492855(0x12e)][_0x492855(0x165)],_0x7122ae);},_0x51c70f=_0x43fee6=>{const _0x5f01ca=_0x51cfe7,_0x59947b=_0x417132[_0x5f01ca(0x12e)][_0x5f01ca(0x165)][_0x43fee6];if(_0x59947b===undefined)throw new Error(_0x5f01ca(0x138));this[_0x5f01ca(0x12e)][_0x5f01ca(0x117)]|=_0x59947b;},_0x404dad=_0x3b206d=>{const _0x206041=_0x51cfe7,_0x56dda5=_0x417132[_0x206041(0x12e)][_0x206041(0x165)][_0x3b206d];if(_0x56dda5===undefined)throw new Error('Unknown\x20bit\x20name');this['options'][_0x206041(0x117)]&=~_0x56dda5,this[_0x206041(0x1cb)][_0x206041(0x134)](_0x21e652(_0x417132[_0x206041(0x12e)][_0x206041(0x165)],this['options']['value']));};_0x31f220();},'updateValue'(){const _0x477a50=_0x5c50a1,_0x4fbcd5=this;this['element'][_0x477a50(0x134)](_0x21e652(_0x4fbcd5[_0x477a50(0x12e)][_0x477a50(0x165)],this['options'][_0x477a50(0x117)]));},'_destroy'(){const _0xe4d022=this;_0xe4d022['$dropdown']['remove']();}});},_0xd01b47=()=>{const _0x18de94=_0x143b73,_0x272117=$(_0x18de94(0x168)),_0x59bd65=_0x272117[_0x18de94(0x134)](),_0x4a3171=RED[_0x18de94(0x176)]['node'](_0x59bd65);if(!_0x4a3171)return undefined;const {endpoint:_0x2ebe3,securityMode:_0x1c67f5,securityPolicy:_0x4fbbcb,userIdentityType:_0x4a5983,credentials:_0x10be17}=_0x4a3171,_0xda7236={'endpoint':_0x2ebe3,'securityMode':_0x1c67f5,'securityPolicy':_0x4fbbcb,'userIdentityType':_0x4a5983,'credentials':_0x10be17};return console[_0x18de94(0x1a7)](_0x18de94(0x1bd),_0xda7236),_0xda7236;},_0x4fe522=()=>{return{'endpointNode':_0x137b24};},_0x137b24=()=>{const _0x2480ae=_0x143b73,_0x4f9f70=$(_0x2480ae(0x168)),_0x54c17a=_0x4f9f70[_0x2480ae(0x134)](),_0x24d3f7=_0xd01b47();if(!_0x24d3f7)return undefined;return{'id':_0x54c17a};};RED[_0x143b73(0x176)]['registerType'](_0x143b73(0x14e),{'category':_0x143b73(0x18e),'color':'#C0DEED','align':_0x143b73(0x198),'icon':_0x143b73(0x1d9),'paletteLabel':_0x143b73(0x1cc),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x143b73(0x1ce)},'nodeId':{'value':'','required':![]},'referenceTypeId':{'value':'HasChild','required':![]},'includeSubtypes':{'value':![],'required':!![]},'browseDirection':{'value':_0x143b73(0x1d5),'required':!![]},'nodeClassMask':{'value':_0x143b73(0x147),'required':![]},'resultMask':{'value':'ReferenceType\x20|\x20BrowseName\x20|\x20TypeDefinition\x20|\x20DisplayName\x20|\x20NodeClass\x20|\x20IsForward','required':![]}},'outputs':0x1,'label'(){const _0x590401=_0x143b73;return this[_0x590401(0x133)]||'OPCUA\x20Browse';},'labelStyle'(){const _0x538245=_0x143b73;return this['name']?_0x538245(0x181):'';},'oneditprepare'(){const _0x2aad0f=_0x143b73,_0x195d76=this;_0x4f7d67(),_0xde27b2(),_0x195d76[_0x2aad0f(0x1ac)]=0x1;const _0x40e0ba=$(_0x2aad0f(0x1c1));_0x40e0ba[_0x2aad0f(0x197)]({'namesToBits':{'Object':0x1,'Variable':0x2,'Method':0x4,'ObjectType':0x8,'VariableType':0x10,'ReferenceType':0x20,'DataType':0x40,'View':0x80},'value':0x0});const _0x210012=$(_0x2aad0f(0x1b1));_0x210012['flagEditor']({'namesToBits':{'ReferenceType':0x1,'IsForward':0x2,'NodeClass':0x4,'BrowseName':0x8,'DisplayName':0x10,'TypeDefinition':0x20},'value':0x3f});const _0x2ba63c=$('#node-input-nodeId');_0x2ba63c[_0x2aad0f(0x1be)](Object[_0x2aad0f(0x13f)](Object['assign']({},_0x4fe522()),{'isSelectable'(_0x35d3cb){const _0x34dde2=_0x2aad0f;return _0x35d3cb[_0x34dde2(0x155)]===_0x34dde2(0x11f)||_0x35d3cb['nodeClass']===_0x34dde2(0x1db);}}));const _0x44b0ef={'nodeId':_0x2aad0f(0x12f),'referenceTypeId':'','browseName':{'namespaceIndex':0x0,'name':_0x2aad0f(0x145)},'displayName':{'text':_0x2aad0f(0x145)},'nodeClass':'ReferenceType','typeDefinition':'i=31'},_0xe77a45=$(_0x2aad0f(0x199));_0xe77a45[_0x2aad0f(0x1be)](Object[_0x2aad0f(0x13f)](Object[_0x2aad0f(0x13f)]({},_0x4fe522()),{'parentNode':()=>_0x44b0ef,'isSelectable'(_0x5edfbf){const _0x1ea0a9=_0x2aad0f;return _0x5edfbf[_0x1ea0a9(0x155)]===_0x1ea0a9(0x183);},'isTypeRef':!![]}));},'oneditsave'(){}});}()));
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg0NWMyYjAiLCJfMHgyNmRlYzUiLCJfMHg0YWUzNjciLCJfMHgyYjlmY2EiLCJfMHg1OWRkZmMiLCJfMHg0ODRkNWUiLCJfMHg0YjViOWQiLCJfMHg0ODVkNWMiLCJQcm9taXNlIiwiXzB4MzcwNmJlIiwiXzB4MzQ4ZjE3IiwiXzB4NTc4MTQyIiwiXzB4MmJlNzllIiwiXzB4MjI1ZWFjIiwiXzB4MmEyOTkzIiwiXzB4NzQzYzYwIiwiXzB4MjMzMzA2IiwiXzB4ODIxZWJhIiwiXzB4MTg0MGFlIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4MmYwNDFkIiwiXzB4NDY2NGMzIiwiXzB4MTAzMTU0IiwiXzB4MTg0MjY5IiwiRXJyb3IiLCJfMHg0Y2M2OGYiLCJfMHgxZDliM2QiLCJfMHgyYzE0Y2EiLCJfMHhmMWUzNTUiLCJfMHg0MDAwYjkiLCJfMHg0ZDRlNmIiLCJfMHg0NTEyNzMiLCJfMHgyMzQ0ODAiLCJfMHgyMjExZjYiLCJfMHg0ZTY5MWUiLCJfMHg0N2QxMWYiLCJfMHgxNTljNzIiLCJfMHgzZTA0MjQiLCJfMHgzYWE1MmIiLCJfMHhlZmI2NDIiLCJfMHg0MjlmODIiLCJfMHg0N2RkM2MiLCJwYXJzZUludCIsImlzTmFOIiwiXzB4MjY3NDE5IiwiXzB4MzNkNmEyIiwiXzB4MWU4M2JmIiwiXzB4YjZmYWU3IiwiXzB4MjFlNjUyIiwiXzB4M2JiYmE4IiwiXzB4NDFlMWIxIiwiXzB4NGRkNGJhIiwiXzB4NWQxZTRkIiwiXzB4M2NjZjRhIiwiT2JqZWN0IiwiXzB4M2FiMDQwIiwiXzB4M2M5YmNhIiwiXzB4NDU2NmUyIiwiXzB4N2YxYjQ4IiwiXzB4MzExMjBhIiwiXzB4OWQ2YWM1IiwiXzB4NDBmM2U4IiwiZW5kcG9pbnROb2RlIiwiXzB4NTE2NGM4IiwiZW5kcG9pbnQiLCJfMHg2MjUzM2UiLCJiYXNlVXJsIiwiXzB4NTBlOGU3IiwiXzB4Mzk1ZDZmIiwiXzB4Zjg3MzAxIiwiXzB4MjgyZjc4IiwiXzB4NDhmY2IxIiwiXzB4NWE0NzBhIiwiXzB4MmU4YjFiIiwiZmV0Y2giLCJKU09OIiwiY29uc29sZSIsIl8weDU0NDhkMyIsIl8weDNjZmJjNiIsIl8weDFhYTgyMCIsIl8weDEyOGQxNSIsIl8weDE0ZjUwYiIsIl8weDQ5NmRhOCIsIl8weDEyOTI5NyIsIl8weDRkZWQwNCIsIl8weDlkOWI1YSIsIl8weDMzZWFjMCIsIl8weDMxMTA1NiIsIl8weDM5ZWE0OSIsIl8weDM2MDRkNSIsIl8weDM0ZWFlMSIsIl8weDcyYThlOCIsIl8weDJjZmEwNCIsInNldFRpbWVvdXQiLCJfMHg0NjYzODAiLCJfMHhkYzQyYTUiLCJfMHg0ODQwZjAiLCJfMHgxNzI3NDciLCJfMHgxMGNjOWYiLCJfMHg0MDYyZmQiLCJfMHg1MTcyNWIiLCJfMHgzMDBiMGEiLCJfMHgyMzAzNWYiLCJfMHgyNzdmMGYiLCJfMHg0OGExYjQiLCJfMHgzNjI4YjUiLCJfMHgzNThmY2MiLCJfMHg1MGE5YzEiLCJfMHhmNzYwYjEiLCJfMHg0MjRmMjAiLCJfMHg1MDk3MGQiLCJfMHgzNTg1ZTAiLCIkIiwiXzB4ZmFjYTA4IiwiXzB4M2NhMmU0IiwiaWNvbiIsIl8weDJlOGU1OSIsImNvbG9yIiwiXzB4MTMyZGE2IiwiXzB4NWFkOGJlIiwiXzB4NGY3ZDY3IiwidW5kZWZpbmVkIiwiXzB4MjZjMmU4IiwiXzB4MzE2NjI4IiwiXzB4MzVlMzgzIiwiXzB4NGJkN2I0IiwiXzB4YjA4YTZlIiwiXzB4M2ZlNjU5IiwiXzB4NWU5ZWY2IiwiXzB4MjA2NWU0IiwiXzB4MmUwZDYyIiwiXzB4M2QyZjFkIiwiXzB4MmRhYzI2IiwiXzB4MTRhYWZkIiwicmVmZXJlbmNlcyIsIl8weDQ5MGY4MSIsIl8weDRmZTAzNCIsIl8weDQ2NDUzMSIsIl8weDQ1NmVjNCIsIl8weDJmOWE3NyIsIl8weDU0MjgxNiIsIl8weGM0YmNmNSIsIl8weDQ1MWNlYSIsIl8weDQ5NDhhZSIsIl8weDM5NjkyOSIsIl8weDU0YTc5MCIsIl8weDI2NzgyMSIsIl8weDI1OTQ2YiIsIl8weDcyNDA0NiIsIl8weDJhM2RmYyIsIl8weGZhZGQwZCIsIl8weDI1ODZlMCIsIl8weDU0Mjk3OCIsIl8weDQ5NzkxZCIsIl8weDEzYjVkZSIsIl8weDJmMDNjMCIsImRvY3VtZW50IiwiXzB4MTI5MGY5IiwiXzB4ZGUyN2IyIiwiXzB4NDE3MTMyIiwiXzB4MzFmMjIwIiwiXzB4MzcwMzY0IiwiXzB4MjMxYmI2IiwiXzB4Y2EzNGRkIiwiXzB4NTJjNTkyIiwiXzB4NTYxMTZjIiwiXzB4NTFjNzBmIiwiXzB4NDA0ZGFkIiwiXzB4NzEyMmFlIiwiXzB4NDNmZWU2IiwiXzB4NTk5NDdiIiwiXzB4M2IyMDZkIiwiXzB4NTZkZGE1IiwiXzB4NGZiY2Q1IiwiXzB4ZTRkMDIyIiwiXzB4ZDAxYjQ3IiwiXzB4MjcyMTE3IiwiXzB4NTliZDY1IiwiXzB4NGEzMTcxIiwiUkVEIiwiXzB4MmViZTMiLCJzZWN1cml0eU1vZGUiLCJfMHgxYzY3ZjUiLCJzZWN1cml0eVBvbGljeSIsIl8weDRmYmJjYiIsInVzZXJJZGVudGl0eVR5cGUiLCJfMHg0YTU5ODMiLCJjcmVkZW50aWFscyIsIl8weDEwYmUxNyIsIl8weGRhNzIzNiIsIl8weDRmZTUyMiIsIl8weDEzN2IyNCIsIl8weDRmOWY3MCIsIl8weDU0YzE3YSIsIl8weDI0ZDNmNyIsIl8weDE5NWQ3NiIsIl8weDQwZTBiYSIsIl8weDIxMDAxMiIsIl8weDJiYTYzYyIsIl8weDM1ZDNjYiIsIl8weDQ0YjBlZiIsIl8weGU3N2E0NSIsIl8weDVlZGZiZiJdLCJtYXBwaW5ncyI6InkySEFBQSxDQUFDLFUsQ0FDRyxhLHdCQW1CQSxTQUFTQSxTQUFULENBQW1CQyxTQUFuQixDQUE0QkMsU0FBNUIsQ0FBd0NDLFNBQXhDLENBQTJDQyxTQUEzQyxDLENBQ0ksU0FBU0MsU0FBVCxDQUFlQyxTQUFmLEMsUUFBK0JBLFNBQUEsWUFBaUJILFNBQWpCLENBQXFCRyxTQUFyQixDQUE2QixJQUFJSCxTQUFKLENBQU0sU0FBVUksU0FBVixDLENBQXFCQSxTQUFBLENBQVFELFNBQVIsQyxFQUEzQixDLFNBQ3JELEdBQUssQ0FBQUgsU0FBQSxFQUFNLENBQUFBLFNBQUEsQ0FBSUssT0FBSixDQUFOLENBQUwsQ0FBeUIsU0FBVUMsU0FBVixDQUFtQkMsU0FBbkIsQyx5QkFDNUIsU0FBU0MsU0FBVCxDQUFtQkMsU0FBbkIsQyxDQUE0QixHLENBQU1DLFNBQUEsQ0FBS1QsU0FBQSxDLE1BQUEsRUFBZVEsU0FBZixDQUFMLEMsRUFBK0IsTUFBT0UsU0FBUCxDLENBQVlKLFNBQUEsQ0FBT0ksU0FBUCxDLEdBQzdFLFNBQVNDLFNBQVQsQ0FBa0JDLFNBQWxCLEMseUJBQTJCLEcsQ0FBTUgsU0FBQSxDQUFLVCxTQUFBLEMsZ0JBQUEsRUFBbUJZLFNBQW5CLENBQUwsQyxFQUFtQyxNQUFPQyxTQUFQLEMsQ0FBWVAsU0FBQSxDQUFPTyxTQUFQLEMsR0FDaEYsU0FBU0osU0FBVCxDQUFjSyxTQUFkLEMseUJBQXdCQSxTQUFBLEMsZ0JBQUEsRUFBY1QsU0FBQSxDQUFRUyxTQUFBLEMsZ0JBQUEsQ0FBUixDQUFkLENBQXNDYixTQUFBLENBQU1hLFNBQUEsQyxnQkFBQSxDQUFOLEUsZ0JBQUEsRUFBeUJQLFNBQXpCLENBQW9DSSxTQUFwQyxDLEVBQzlERixTQUFBLENBQU0sQ0FBQVQsU0FBQSxDQUFZQSxTQUFBLEMsZ0JBQUEsRUFBZ0JILFNBQWhCLENBQXlCQyxTQUFBLEVBQWMsRUFBdkMsQ0FBWixDQUFELEMsZ0JBQUEsR0FBTCxDLEVBSkcsQyxFQVFYLE9BQU9pQixlQUFQLEcsZ0JBQUEsQ0FBd0NBLGVBQXhDLENBQTBELFNBQVVDLFNBQVYsQ0FBaUJDLFNBQWpCLENBQTZCQyxTQUE3QixDLDJCQUN0RCxJQUFJQyxTQUFBLENBQUksSUFBSUMsS0FBSixDQUFVRixTQUFWLENBQVIsQyxPQUNPQyxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUE0QkEsU0FBQSxDLE9BQUEsRUFBVUgsU0FBdEMsQ0FBNkNHLFNBQUEsQyxnQkFBQSxFQUFlRixTQUE1RCxDQUF3RUUsUyxFQUZuRixDQUtBLE1BQU1FLFNBQUEsQyxXQUFOLENBQ01DLFNBQUEsQyxnQkFETixDQUVNQyxTQUFBLEMsZ0JBRk4sQ0FHTUMsU0FBQSxDLGdCQUhOLENBSU1DLFNBQUEsQyxnQkFKTixDQUtNQyxTQUFBLEMsZ0JBTE4sQ0FNTUMsU0FBQSxDLGdCQU5OLENBUUEsSUFBSUMsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQWdCQSxTQUFBLEMsZ0JBQUEsRSxHQUFoQixFLFVBQ0FBLFNBQUEsQ0FBZ0JBLFNBQUEsQyxnQkFBQSxFLEdBQWhCLEUsaUJBQ0FBLFNBQUEsQ0FBZ0JBLFNBQUEsQyxnQkFBQSxFLEdBQWhCLEUsaUJBQ0FBLFNBQUEsQ0FBZ0JBLFNBQUEsQyxnQkFBQSxFLEdBQWhCLEUsa0JBSkosQ0FLR0QsU0FBQSxFQUFvQixDQUFBQSxTQUFBLENBQWtCLEVBQWxCLENBTHZCLEdBTUEsSUFBSUUsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQVVBLFNBQUEsQyxhQUFBLEUsR0FBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLEdBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsVUFBQSxFLEdBQVYsRSxXQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLEdBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxHQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsSUFBVixFLGVBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsSUFBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLElBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxJQUFWLEUsUUFUSixDQVVHRCxTQUFBLEVBQWMsQ0FBQUEsU0FBQSxDQUFZLEVBQVosQ0FWakIsR0FXQSxJQUFJRSxTQUFKLENBQ0EsQ0FBQyxTQUFVQyxTQUFWLEMsMkJBQ0dBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsR0FBZCxFLGlCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLEdBQWQsRSxXQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLEdBQWQsRSxTQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLEdBQWQsRSxhQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLElBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxJQUFkLEUsZ0JBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLFVBQUEsRSxJQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsSUFBZCxFLGtCQVJKLENBU0dELFNBQUEsRUFBa0IsQ0FBQUEsU0FBQSxDQUFnQixFQUFoQixDQVRyQixHQVVBLFNBQVNFLFNBQVQsQ0FBZ0NDLFNBQWhDLENBQXNDQyxTQUF0QyxDLDhCQUNRLE9BQU9BLFNBQVAsRyx3QkFDT0EsUyxDQUVYLE1BQU1DLFNBQUEsQ0FBV0MsUUFBQSxDQUFTRixTQUFULEMsR0FBQSxDQUFqQixDLEdBQ0ksQ0FBQ0csS0FBQSxDQUFNRixTQUFOLEMsUUFDTUEsUyxDQUVYLE1BQU1HLFNBQUEsQ0FBUUosU0FBQSxDLGdCQUFBLEVBQVUsUUFBVixFLGdCQUFBLEVBQXlCSyxTQUFELEVBQU9BLFNBQUEsQyxnQkFBQSxHQUEvQixDQUFkLENBQ0EsSUFBSUMsU0FBQSxDLEdBQUosQ0FDQSxVQUFXQyxTQUFYLElBQW1CSCxTQUFuQixDLENBQ0lFLFNBQUEsRUFBVVAsU0FBQSxDQUFLUSxTQUFMLEMsU0FFUEQsUyxFQUVYLFNBQVNFLFNBQVQsQ0FBZ0NDLFNBQWhDLENBQXNDQyxTQUF0QyxDLDJCQUNJQSxTQUFBLENBQVFaLFNBQUEsQ0FBdUJXLFNBQXZCLENBQTZCQyxTQUE3QixDQUFSLENBQ0EsTUFBTUMsU0FBQSxDQUFJLEVBQVYsQyxHQUNJLENBQUNGLFMsQ0FDRCxPQUFPRSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUFQLENBQ0osVUFBVyxDQUFDQyxTQUFELENBQU1DLFNBQU4sQ0FBWCxHQUE2QkMsTUFBQSxDLGdCQUFBLEVBQWVMLFNBQWYsQ0FBN0IsQyxDQUNRLE9BQU9DLFNBQVAsRyxXQUNLLENBQUFBLFNBQUEsQ0FBUUcsU0FBUixDQUFELEdBQXNCQSxTLEVBQ3RCRixTQUFBLEMsZ0JBQUEsRUFBT0MsU0FBUCxDLFVBSUxELFNBQUEsQyxNQUFBLEUsZ0JBQUEsQyxFQUVYLElBQUlJLFNBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFXQSxTQUFBLEMsZ0JBQUEsRSxHQUFYLEUsaUJBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLFdBQUEsRSxHQUFYLEUsaUJBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGdCQUFBLEUsR0FBWCxFLGlCQUNBQSxTQUFBLENBQVdBLFNBQUEsQyxnQkFBQSxFLEdBQVgsRSxpQkFDQUEsU0FBQSxDQUFXQSxTQUFBLEMsZ0JBQUEsRSxJQUFYLEUsaUJBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGdCQUFBLEUsSUFBWCxFLGtCQU5KLENBT0dELFNBQUEsRUFBZSxDQUFBQSxTQUFBLENBQWEsRUFBYixDQVBsQixHQVNBLFNBQVNFLFNBQVQsQ0FBdUJDLFNBQXZCLEMsMkJBQ0ksT0FBUUEsU0FBUixFQUNJLEksV0FBQSxDQUNJLE9BQU9qQyxTQUFQLENBQ0osSyxnQkFBQSxDQUNJLE9BQU9HLFNBQVAsQ0FDSixLLGdCQUFBLENBQ0ksT0FBT0QsU0FBUCxDQUNKLEssZ0JBQUEsQ0FDSSxPQUFPRSxTQUFQLENBQ0osSSxZQUFBLENBQ0ksT0FBT0MsU0FBUCxDQUNKLEssZ0JBQUEsQ0FDSSxPQUFPQyxTQUFQLENBWlIsQyxDQWdCSixNQUFNNEIsU0FBQSxDQUFXQyxTQUFELEUsMkJBQ1osT0FBUUEsU0FBQSxDLFdBQUEsQ0FBUixFQUNJLEssZ0JBQUEsQyxHQUNRQSxTQUFBLEMsZ0JBQUEsSUFBOEJuQyxTLEtBQzlCbUMsU0FBQSxDLGdCQUFBLElBQTZCbEMsU0FBN0IsRUFBMkNrQyxTQUFBLEMsZ0JBQUEsSSxhQUNwQyxDLE1BQUUsQyxnQkFBRixDLE9BQXFCLEMsZ0JBQXJCLEMsQ0FFWCxNQUFPLEMsTUFBRSxDLGdCQUFGLEMsT0FBMkIsQyxnQkFBM0IsQ0FBUCxDQUNKLEksVUFBQSxDLEdBQ1FBLFNBQUEsQyxnQkFBQSxJQUE4QmpDLFMsT0FDdkIsQyxNQUFFLEMsZ0JBQUYsQyxPQUF1QixDLGdCQUF2QixDLGFBRUZpQyxTQUFBLEMsZ0JBQUEsSUFBOEJoQyxTLENBQzVCLEMsTUFBRSxDLGdCQUFGLEMsT0FBdUIsQyxZQUF2QixDLENBR0EsQyxNQUFFLEMsYUFBRixDLE9BQXVCLEMsZ0JBQXZCLEMsQ0FFZixLLGdCQUFBLENBQ0ksTUFBTyxDLE1BQUUsQyxnQkFBRixDLE9BQWtCLEMsWUFBbEIsQ0FBUCxDQUNKLEksWUFBQSxDQUNJLE1BQU8sQyxNQUFFLEMsZ0JBQUYsQyxPQUEyQixDLFlBQTNCLENBQVAsQ0FDSixLLGdCQUFBLENBQ0ksTUFBTyxDLE1BQUUsQyxnQkFBRixDLE9BQXNCLEMsZ0JBQXRCLENBQVAsQ0F0QlIsQyxNQXdCTyxDLE1BQUUsQyxnQkFBRixDLE9BQXVCLEMsZ0JBQXZCLEMsRUF6QlgsQ0E0Qk1pQyxTQUFBLENBQVMsQ0FBQyxDQUFFQyxZQUFBLENBQUFDLFNBQUYsQ0FBZ0JDLFFBQUEsQ0FBQUMsU0FBaEIsQ0FBMEJDLE9BQUEsQ0FBQUMsU0FBMUIsQ0FBRCxDQUFzQ0MsU0FBdEMsQ0FBOENDLFNBQTlDLEdBQTJEckUsU0FBQSxDQUFVLEssR0FBVixDQUFrQixLLEdBQWxCLENBQTBCLEssR0FBMUIsQ0FBa0MsVywyQkFDbEdzRSxTQUFBLENBQVVILFMsa0JBQ1ZJLFNBQUEsQ0FBU0QsUyxrQkFDVEUsU0FBQSxDQUFvQmxCLE1BQUEsQyxRQUFBLEVBQWNBLE1BQUEsQyxnQkFBQSxFQUFjLEVBQWQsQ0FBa0JlLFNBQWxCLENBQWQsQ0FBMkMsQyxRQUFFLENBQUFELFNBQUYsQyxZQUFVLEMsSUFBVixDQUEzQyxDLENBQ3BCSyxTQUFBLENBQU8sTUFBTUMsS0FBQSxDQUFNSCxTQUFOLENBQVcsQyxRQUMxQixDLGdCQUQwQixDLE1BRTFCLENBQU1JLElBQUEsQyxnQkFBQSxFQUFlLEMsY0FDakIsQ0FBQVosU0FEaUIsQyxVQUVqQixDQUFBRSxTQUZpQixDLG1CQUdqQixDQUFBTyxTQUhpQixDQUFmLENBRm9CLEMsU0FPMUIsQ0FBUyxDLGNBQUUsQyxrQkFBRixDQVBpQixDQUFYLEMsSUFTZkMsU0FBQSxDLFFBQUEsSSxZQUNBRyxPQUFBLEMsS0FBQSxFLGdCQUFBLENBQTBDSCxTQUFBLEMsUUFBQSxDQUExQyxDQUF1REEsU0FBQSxDLGdCQUFBLENBQXZELEMsQ0FDTyxDLFlBQUUsQ0FBWSxFQUFkLEMsQ0FFWEcsT0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBMEJILFNBQUEsQyxnQkFBQSxDQUExQixDQUF1Q0EsU0FBQSxDLGdCQUFBLENBQXZDLEVBQ0EsTUFBTUksU0FBQSxDQUFXLE1BQU1KLFNBQUEsQyxnQkFBQSxHQUF2QixDQUNNSyxTQUFBLENBQWFELFNBQUEsQyxjQUFBLEUsZ0JBQUEsR0FBb0MsRUFEdkQsQyxNQUVPLEMsWUFBRSxDQUFBQyxTQUFGLEMsRUFwQitELENBNUIxRSxDQW1ETUMsU0FBQSxDQUFZLEMsaUJBQ2QsQ0FBaUJ0QixTQUFBLEMsZ0JBQUEsQ0FESCxDLGlCQUVkLEMsSUFGYyxDLGlCQUdkLENBQWlCekIsU0FBQSxDLFNBQUEsQ0FISCxDLGVBSWQsQ0FBZUUsU0FBQSxDLFVBQUEsRUFBcUJBLFNBQUEsQyxnQkFBQSxDQUFyQixDQUF3Q0EsU0FBQSxDLFFBQUEsQ0FKekMsQyxZQVVkLEMsSUFWYyxDQW5EbEIsQ0ErRE04QyxTQUFBLENBQVksQyxpQkFDZCxDQUFpQnZCLFNBQUEsQyxnQkFBQSxDQURILEMsaUJBRWQsQyxJQUZjLEMsaUJBR2QsQ0FBaUJ6QixTQUFBLEMsZ0JBQUEsQ0FISCxDLGVBSWQsQ0FBZUUsU0FBQSxDLGdCQUFBLEVBQXFCQSxTQUFBLEMsZ0JBQUEsQ0FBckIsQ0FBd0NBLFNBQUEsQyxnQkFBQSxDQUp6QyxDLFlBVWQsQyxJQVZjLENBL0RsQixDQTJFTStDLFNBQUEsQ0FBaUIsQ0FBQyxDQUFFbkIsWUFBQSxDQUFBb0IsU0FBRixDQUFnQmxCLFFBQUEsQ0FBQW1CLFNBQWhCLENBQTBCakIsT0FBQSxDQUFBa0IsU0FBMUIsQ0FBRCxDQUFzQ0MsU0FBdEMsQ0FBcURDLFNBQXJELEdBQStEdEYsU0FBQSxDQUFVLEssR0FBVixDQUFrQixLLEdBQWxCLENBQTBCLEssR0FBMUIsQ0FBa0MsVywyQkFDOUd1RixTQUFBLENBQVVILFMsa0JBQ1ZJLFNBQUEsQ0FBU0gsU0FBQSxDLEtBQUEsRyxDQUNUSSxTQUFBLENBQU8sTUFBTWYsS0FBQSxDQUFTYSxTLGlCQUFULENBQTZCLEMsUUFDNUMsQyxnQkFENEMsQyxNQUU1QyxDQUFNWixJQUFBLEMsZ0JBQUEsRUFBZSxDLGNBQ2pCLENBQUFPLFNBRGlCLEMsVUFFakIsQ0FBQUMsU0FGaUIsQyxRQUdqQixDQUFBSyxTQUhpQixDQUFmLENBRnNDLEMsU0FPNUMsQ0FBUyxDLGNBQUUsQyxnQkFBRixDQVBtQyxDQUE3QixDLENBU2JFLFNBQUEsQ0FBa0IsQ0FBQ0MsU0FBRCxDQUFPQyxTQUFQLEcsMkJBQ3BCTixTQUFBLEMsZ0JBQUEsRUFBV0ssU0FBWCxFLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxFQUFvREMsU0FBcEQsQyxDQUNBTixTQUFBLEMsZ0JBQUEsRyxDQUNBTyxVQUFBLENBQVcsSSwyQkFDUFAsU0FBQSxDLGFBQUEsRUFBa0JNLFNBQWxCLEMsQ0FDQU4sU0FBQSxDLGdCQUFBLEcsRUFGSixDLEtBQUEsQyxHQUtFUSxTQUFBLENBQVEsTUFBTUwsU0FBQSxDLGdCQUFBLEcsQ0FDaEJBLFNBQUEsQyxRQUFBLEksS0FFQUMsU0FBQSxDLGdCQUFnQixDQUFnQkYsU0FBaEMsQyxnQkFBQSxDLENBR0lNLFNBQUEsQyxZQUFBLEUsZ0JBQUEsRUFBc0IsTUFBdEIsQyxFQUVBVCxTQUFBLEMsS0FBQSxFQUFrQlMsU0FBQSxDLG1CQUFBLENBQWxCLEMsQ0FDQVQsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxDQUNBSyxTQUFBLEMsTUFBQSxDLElBQUEsQyxHQUdBTCxTQUFBLEMsS0FBQSxFLEdBQXFCRyxTQUFyQixDLENBQ0FFLFNBQUEsQ0FBbUJJLFNBQUEsQyxnQkFBQSxDLFFBQW1CTCxTQUFBLEMsZ0JBQUEsQ0FBdEMsQyxnQkFBQSxDLEdBbEMwRSxDQTNFdEYsQ0FpSEEsU0FBU00sU0FBVCxDQUF1QkMsU0FBdkIsQ0FBOEJDLFNBQTlCLEMsUUFDV2pHLFNBQUEsQ0FBVSxJQUFWLENBQWdCLEssR0FBaEIsQ0FBd0IsSyxHQUF4QixDQUFnQyxXLHlCQUM3QmtHLFNBQUEsQ0FBU0YsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxDQUNURyxTQUFBLENBQWdCLE1BQU10QyxTQUFBLENBQU9vQyxTQUFQLENBQWFDLFNBQWIsQ0FBcUJuQixTQUFyQixDLENBQ3RCcUIsU0FBQSxDQUFnQixNQUFNdkMsU0FBQSxDQUFPb0MsU0FBUCxDQUFhQyxTQUFiLENBQXFCbEIsU0FBckIsQyxPQUNyQixDLFlBQ0gsQ0FBWSxDQUFDLEdBQUdtQixTQUFBLEMsZ0JBQUEsQ0FBSixDQUE4QixHQUFHQyxTQUFBLEMsZ0JBQUEsQ0FBakMsQ0FEVCxDLEVBSkosQyxFQVNYLE1BQU1DLFNBQUEsQ0FBYSxDLGlCQUNmLENBQWlCNUMsU0FBQSxDLGdCQUFBLENBREYsQyxpQkFFZixDLElBRmUsQyxpQkFHZixDQUFpQnpCLFNBQUEsQyxTQUFBLENBSEYsQyxlQUlmLENBQWVFLFNBQUEsQyxnQkFBQSxFQUEwQkEsU0FBQSxDLGdCQUFBLENBQTFCLENBQWlEQSxTQUFBLEMsZ0JBQUEsQ0FBakQsQ0FBc0VBLFNBQUEsQyxnQkFBQSxDQUp0RSxDLFlBS2YsQyxJQUxlLENBQW5CLENBT0EsU0FBU29FLFNBQVQsQ0FBdUJDLFNBQXZCLENBQThCQyxTQUE5QixDLFFBQ1d4RyxTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyx5QkFDN0J5RyxTQUFBLENBQVNGLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEMsQ0FDVEcsU0FBQSxDQUFnQixNQUFNN0MsU0FBQSxDQUFPMkMsU0FBUCxDQUFhQyxTQUFiLENBQXFCSixTQUFyQixDLFFBQ3JCSyxTLEVBSEosQyxFQU1YLE1BQU1DLFNBQUEsQ0FBZUMsU0FBRCxFLDJCQUNoQixJQUFJQyxTQUFKLENBQVFDLFNBQVIsQyxHQUNJLENBQUNGLFMsRUFDRCxNQUFNRyxTQUFBLENBQVdDLENBQUEsQywyR0FBQSxDQUFqQixDLE9BQ09ELFMsRUFFWCxNQUFNRSxTQUFBLENBQUlMLFNBQUEsQyxRQUFBLEUsZ0JBQUEsR0FBVixDQUNNTSxTQUFBLENBQUssQ0FBQyxDQUFBTCxTQUFBLENBQUtELFNBQUEsQyxhQUFBLENBQUwsQ0FBRCxHQUFpQyxJQUFqQyxFQUF5Q0MsU0FBQSxHQUFPLEssR0FBaEQsQ0FBeUQsSyxHQUF6RCxDQUFrRUEsU0FBQSxDLGdCQUFBLENBQWxFLENBQUQsRUFBZ0YsQ0FBQyxDQUFBQyxTQUFBLENBQUtGLFNBQUEsQyxnQkFBQSxDQUFMLENBQUQsR0FBZ0MsSUFBaEMsRUFBd0NFLFNBQUEsR0FBTyxLLEdBQS9DLENBQXdELEssR0FBeEQsQ0FBaUVBLFNBQUEsQyxnQkFBQSxDQUFqRSxDQUFoRixFQUE2SkYsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsR0FEdkssQ0FFTSxDQUFFTyxJQUFBLENBQUFDLFNBQUYsQ0FBUUMsS0FBQSxDQUFBQyxTQUFSLEVBQWtCM0QsU0FBQSxDQUFRaUQsU0FBUixDQUZ4QixDQUdNVyxTQUFBLENBQVdQLENBQUEsQyxpQkFBc0JJLFMsa0JBQXNCRSxTLGtCQUFnQkosUyxpQkFBNUQsQ0FIakIsQyxPQUlBSyxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLE9BQUEsQ0FBdUJOLFNBQXZCLEMsQ0FDQU0sU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBMkJYLFNBQTNCLEMsQ0FDT1csUyxFQWJYLENBZU1DLFNBQUEsQ0FBMkIsSSwyQkFRN0JSLENBQUEsQyxnQkFBQSxFLGdCQUFBLENBQWlDLEMsU0FFN0IsQ0FBUyxDLGNBQ0wsQ0FBYyxLQUFPLEMsVUFBRSxDLGdCQUFGLENBQVAsQ0FEVCxDLFVBRUwsQ0FBVSxJQUFNUyxTQUZYLEMsWUFHTCxDQUFZLEtBQU8sQyxZQUNmLENBQVksQyxnQkFBRSxDLEdBQUYsQyxNQUFxQixDLGdCQUFyQixDQURHLEMsV0FFZixDLGdCQUZlLEMsUUFHZixDLGdCQUhlLEMsYUFJZixDQUFhLEMsTUFBRSxDLGdCQUFGLENBSkUsQyxnQkFLZixDQUFnQi9GLFNBTEQsQ0FBUCxDQUhQLEMsUUFVTCxDQUFRLEksSUFWSCxDLFNBV0wsQyxFQVhLLEMsV0FZTCxDLEdBWkssQ0FGb0IsQyxtQkFnQjdCLEUsUUFDVzFCLFNBQUEsQ0FBVSxJQUFWLENBQWdCLEssR0FBaEIsQ0FBd0IsSyxHQUF4QixDQUFnQyxXLHlCQUM3QjBILFNBQUEsQ0FBTyxJLENBQ1BDLFNBQUEsQ0FBSSxPQUFPRCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUFQLEcsZ0JBQUEsQ0FBZ0RBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEdBQWhELENBQTRFQSxTQUFBLEMsZ0JBQUEsRSxZQUFBLEMsSUFDbEZDLFNBQUEsWUFBYW5ILE8sUUFDTixNQUFNbUgsUyxRQUVWQSxTLEVBTkosQyxFQWpCa0IsQyxPQTBCN0IsRSwyQkFDVUMsU0FBQSxDQUFPLEksQ0FDYkEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRyxDQUNBLEssZ0JBQUEsSSxnQkFBQSxFQUErQkMsU0FBRCxFLDJCQUNwQkMsU0FBQSxDQUFXbkIsU0FBQSxDQUFZa0IsU0FBWixDLENBQ2pCRCxTQUFBLEMsZ0JBQUEsRSxRQUFBLEVBQWtCRSxTQUFsQixDLENBQ0FGLFNBQUEsQyxnQkFBQSxFQUFxQkMsUyxFQUh6QixDLEVBN0J5QixDLFFBbUM3QixFLDJCQUNVRSxTQUFBLENBQU8sSSxDQUVQQyxTQUFBLENBQU8sQyxTQUNULENBQVNELFNBQUEsQyxnQkFBQSxFLFNBQUEsQ0FEQSxDLGNBRVQsQ0FBYyxPQUFPQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUFQLEcsZ0JBQUEsQ0FBa0RBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEdBQWxELENBQWdGQSxTQUFBLEMsU0FBQSxFLGNBQUEsQ0FGckYsQyxVQUdULENBQVUsT0FBT0EsU0FBQSxDLGdCQUFBLEUsVUFBQSxDQUFQLEcsZ0JBQUEsQ0FBOENBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEdBQTlDLENBQXdFQSxTQUFBLEMsU0FBQSxFLFVBQUEsQ0FIekUsQyxDQUtiOUMsU0FBQSxDQUFlK0MsU0FBZixDQUFxQkQsU0FBQSxDLGdCQUFBLENBQXJCLENBQWtDQSxTQUFBLEMsZ0JBQUEsQ0FBbEMsQyxFQTNDeUIsQyxTQTZDN0IsRSwyQkFDVUUsU0FBQSxDQUFPLEksQ0FDYixTQUFTQyxTQUFULENBQTJCQyxTQUEzQixDQUFrQ0MsU0FBbEMsQ0FBNkNDLFNBQTdDLEMsUUFDV3JJLFNBQUEsQ0FBVSxJQUFWLENBQWdCLEssR0FBaEIsQ0FBd0IsSyxHQUF4QixDQUFnQyxXLDRCQUMvQm1JLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEMsRUFDQXZELE9BQUEsQyxnQkFBQSxFLG9CQUFBLEVBQ0EsTyxJQUVBdUQsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxFQUNBdkQsT0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFDQSxPLENBRUp1RCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBREEsQ0FFQSxHLENBQ0lBLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxnQkFBQSxJQUNBLE1BQU0sQ0FBRUcsVUFBQSxDQUFBQyxTQUFGLEVBQWlCLE1BQU1ILFNBQUEsQ0FBVUQsU0FBVixDQUFpQkUsU0FBakIsQ0FBN0IsQ0FDQSxVQUFXRyxTQUFYLElBQXdCRCxTQUF4QixDLElBQ1FOLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEdBQXVCLENBQUNBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQW9CTyxTQUFwQixDLENBQ3hCLFNBRUosTUFBTUMsU0FBQSxDQUFXOUIsU0FBQSxDQUFZNkIsU0FBWixDQUFqQixDQUNBTCxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsZ0JBQUEsRUFBNEJNLFNBQTVCLEMsRUFFSk4sU0FBQSxDLGdCQUFBLEUsU0FBQSxDLEVBRUosTUFBT08sU0FBUCxDLENBQ0lQLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxRQUFBLEUsaUJBQXlDTyxTQUFBLEMsZ0JBQUEsQyxpQkFBekMsQyxDQUNBOUQsT0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBbUI4RCxTQUFuQixDLEVBRUpQLFNBQUEsQyxNQUFBLEUsVUFBQSxFLGdCQUFBLEcsQ0FDQUEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxFQTVCRyxDLEVBK0JYRixTQUFBLEMsZ0JBQUEsRUFBYyxLLGdCQUFBLEMsQ0FDZEEsU0FBQSxDLGdCQUFBLEVBQWNqQixDQUFBLEMsZ0JBQUEsQyxDQUNkaUIsU0FBQSxDLFFBQUEsRSxnQkFBQSxFLG9CQUFBLEMsQ0FDQSxLLFNBQUEsRSxhQUFBLEVBQXlCQSxTQUFBLEMsZ0JBQUEsQ0FBekIsQyxDQUNBQSxTQUFBLEMsYUFBQSxFQUFtQmpCLENBQUEsQyxnQkFBQSxFLGdCQUFBLEUsYUFBQSxDLENBQ25CaUIsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBbUJBLFNBQUEsQyxnQkFBQSxDQUFuQixDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLFFBQUEsRUFBd0JBLFNBQUEsQyxRQUFBLENBQXhCLEMsQ0FDQUEsU0FBQSxDLGdCQUFBLEVBQXNCakIsQ0FBQSxDLGdCQUFBLEMsQ0FDdEJpQixTQUFBLEMsZ0JBQUEsRSxRQUFBLEVBQXdCQSxTQUFBLEMsZ0JBQUEsQ0FBeEIsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsZ0JBQUEsQ0FBZ0MsVSwyQkFDeEIsQ0FBQ0EsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLGdCQUFBLEMsR0FFREEsU0FBQSxDLGdCQUFBLEksZ0JBQUEsRUFBK0JVLFNBQUQsRSwyQkFDMUIsSUFBSUMsU0FBSixDQUNJLENBQUFELFNBQUEsR0FBZVYsU0FBQSxDLGdCQUFBLENBQWYsRUFBc0MsQ0FBQyxDQUFBVyxTQUFBLENBQUtYLFNBQUEsQyxlQUFBLENBQUwsQ0FBRCxHQUE4QixJQUE5QixFQUFzQ1csU0FBQSxHQUFPLEssR0FBN0MsQ0FBc0QsSyxHQUF0RCxDQUErREEsU0FBQSxDLGdCQUFBLENBQS9ELENBQUQsR0FBK0VELFNBQUEsQyxnQkFBQSxDQUFwSCxDLEVBQ0FWLFNBQUEsQyxnQkFBQSxHLEVBSFIsQyxDQU1BQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHLEVBRUpBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEcsRUFYSixDLENBYUFBLFNBQUEsQyxZQUFBLEVBQWtCakIsQ0FBQSxDLDBEQUFBLEMsQ0FDbEJpQixTQUFBLEMsZ0JBQUEsRSxRQUFBLEVBQXdCQSxTQUFBLEMsZ0JBQUEsQ0FBeEIsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsT0FBQSxDQUE0QixJLDJCQUN4QixLLGdCQUFBLEcsRUFESixDLENBR0ksQ0FBQ0EsU0FBQSxDLGdCQUFBLEUsTUFBQSxFLGdCQUFBLEMsRUFDREEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxDLGdCQUFBLEMsQ0FFSkEsU0FBQSxDLGdCQUFBLEVBQWFqQixDQUFBLEMsZ0JBQUEsQyxDQUNiaUIsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRyxDQUVDLEMsU0FDRyxDQUFTQSxTQUFBLEMsU0FBQSxFLGdCQUFBLENBRFosQyxjQUVHLENBQWMsT0FBT0EsU0FBQSxDLGdCQUFBLEUsY0FBQSxDQUFQLEcsZ0JBQUEsQ0FBa0RBLFNBQUEsQyxTQUFBLEUsZ0JBQUEsR0FBbEQsQ0FBZ0ZBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBRmpHLEMsVUFHRyxDQUFVLE9BQU9BLFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBQVAsRyxnQkFBQSxDQUE4Q0EsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsR0FBOUMsQ0FBd0VBLFNBQUEsQyxnQkFBQSxFLFVBQUEsQ0FIckYsQyxDQUtEQSxTQUFBLEMsZ0JBQUEsRUFBaUJqQixDQUFBLEMsUUFBQSxFLGdCQUFBLEUsbUJBQUEsRSxnQkFBQSxHLENBQ2pCaUIsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBbUJBLFNBQUEsQyxnQkFBQSxDQUFuQixDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQW1CQSxTQUFBLEMsZ0JBQUEsQ0FBbkIsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRUFBYWpCLENBQUEsQywwQ0FBQSxFLGdCQUFBLEVBQThDaUIsU0FBQSxDLGdCQUFBLENBQTlDLEMsQ0FDYixLLE9BQUEsRyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsZ0JBQUEsQyxJQUFBLENBQTZCLFNBQVVZLFNBQVYsQywyQkFDekIsSUFBSUMsU0FBSixDQUFRQyxTQUFSLENBQ0FGLFNBQUEsQyxnQkFBQSxJQUNBLElBQUlHLFNBQUEsQ0FBTWhDLENBQUEsQ0FBRSxJQUFGLENBQVYsQ0FDQSxNQUFNaUMsU0FBQSxDLElBQU4sQ0FDTUMsU0FBQSxDLElBRE4sQ0FFTUMsU0FBQSxDQUFhbkMsQ0FBQSxDQUFFLElBQUYsRSxnQkFBQSxHQUZuQixDQUdNb0MsU0FBQSxDQUFJUCxTQUhWLEMsR0FJSU8sU0FBQSxDLE9BQUEsR0FBV0QsU0FBQSxDLGdCQUFBLENBQVgsRUFDQUMsU0FBQSxDLE9BQUEsR0FBV0QsU0FBQSxDLGdCQUFBLEVBQWtCRixTQUQ3QixFQUVBRyxTQUFBLEMsZ0JBQUEsR0FBV0QsU0FBQSxDLGdCQUFBLENBRlgsRUFHQUMsU0FBQSxDLE9BQUEsR0FBV0QsU0FBQSxDLGdCQUFBLEVBQWlCRCxTLEtBQ3hCRixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDLEtBQ0lBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEMsRUFDQUEsU0FBQSxDLGdCQUFBLEUsWUFBQSxFLGdCQUFBLEUsZ0JBQUEsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsUUFBQSxHQURBLENBRUEsTyxDQUdKLE1BQU1LLFNBQUEsQ0FBTyxDLFNBQ1QsQ0FBU3BCLFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBREEsQyxjQUVULENBQWMsT0FBT0EsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBUCxHLGdCQUFBLENBQ1JBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEdBRFEsQ0FFUkEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FKRyxDLFVBS1QsQ0FBVSxPQUFPQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUFQLEcsZ0JBQUEsQ0FBOENBLFNBQUEsQyxnQkFBQSxFLFVBQUEsR0FBOUMsQ0FBd0VBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBTHpFLENBQWIsQ0FPTXFCLFNBQUEsQ0FBSSxDQUFDckIsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBRCxDQUEwQmxDLFNBQTFCLENBQTBDTyxTQVBwRCxDQVFBNEIsU0FBQSxDQUFrQmMsU0FBbEIsQ0FBdUJNLFNBQXZCLENBQTBCRCxTQUExQixFLGdCQUFBLEVBQ1UsSSwyQkFDTnpFLE9BQUEsQyxnQkFBQSxFLGdCQUFBLEMsQ0FDQUEsT0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxDQUVBb0UsU0FBQSxDLGFBQUEsRSxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsQyxFQUxKLEUsT0FBQSxFQU9ZTyxTQUFELEUsMkJBQ1BQLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxDLENBQ0FwRSxPQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUFxQjJFLFNBQXJCLEMsRUFUSixDLFVBWUtQLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEMsQ0FFTEEsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLGdCQUFBLEcsQ0FFQUEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxTQUVLQSxTQUFBLEMsVUFBQSxFLElBQUEsRSxnQkFBQSxJLGdCQUFBLEUsSUFDTEEsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLFFBQUEsRyxDQUVBQSxTQUFBLEMsYUFBQSxFLGdCQUFBLEMsY0FLSixNQUFNUSxTQUFBLENBQVFSLFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBQWQsQ0FDTVMsU0FBQSxDQUFZVCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQURsQixDLEdBRUlmLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEdBQTZCLENBQUNBLFNBQUEsQyxnQkFBQSxFLGNBQUEsRUFBMEJ3QixTQUExQixDLENBQzlCLE9BRUp4QixTQUFBLEMsUUFBQSxFLGdCQUFBLEUsZ0JBQUEsQ0FBOEJ3QixTQUE5QixFQUNBLE1BQU1DLFNBQUEsQ0FBZSxDQUFDLENBQUFaLFNBQUEsQ0FBS1csU0FBQSxDLGFBQUEsQ0FBTCxDQUFELEdBQWlDLElBQWpDLEVBQXlDWCxTQUFBLEdBQU8sSyxHQUFoRCxDQUF5RCxLLEdBQXpELENBQWtFQSxTQUFBLEMsZ0JBQUEsQ0FBbEUsQ0FBRCxFQUFnRixDQUFDLENBQUFDLFNBQUEsQ0FBS1UsU0FBQSxDLGdCQUFBLENBQUwsQ0FBRCxHQUFnQyxJQUFoQyxFQUF3Q1YsU0FBQSxHQUFPLEssR0FBL0MsQ0FBd0QsSyxHQUF4RCxDQUFpRUEsU0FBQSxDLGdCQUFBLENBQWpFLENBQWhGLEVBQTZKVSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHQUFqTCxDQUNNRSxTQUFBLEMsSUFBWUQsUyxNQUFnQkYsUyxJQURsQyxDQUVBdkIsU0FBQSxDLGdCQUFBLEUsS0FBQSxFQUFnQjBCLFNBQWhCLEMsQ0FDQTFCLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHLEdBL0RSLEMsQ0FrRUFqQixDQUFBLENBQUU0QyxRQUFGLEUsSUFBQSxFLGdCQUFBLENBQXdCLFNBQVVDLFNBQVYsQywyQkFFaEIsQ0FBQzdDLENBQUEsQ0FBRTZDLFNBQUEsQyxnQkFBQSxDQUFGLEUsU0FBQSxFQUF3QjVCLFNBQUEsQyxnQkFBQSxDQUF4QixFLGdCQUFBLEMsRUFDREEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRyxFQUhSLEMsRUE1THlCLENBQWpDLEMsRUF2QkosQ0E2Tk02QixTQUFBLENBQTBCLEksMkJBQzVCOUMsQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBZ0MsQyxTQUU1QixDQUFTLEMsYUFDTCxDQUFhLEVBRFIsQyxPQUlMLEMsR0FKSyxDQUZtQixDLFNBUTVCLEUsMkJBQ1UrQyxTQUFBLENBQU8sSSxDQUViQSxTQUFBLEMsUUFBQSxFQUFjLEssZ0JBQUEsQyxDQUNkQSxTQUFBLEMsUUFBQSxFQUFjL0MsQ0FBQSxDLFFBQUEsQyxDQUNkK0MsU0FBQSxDLFFBQUEsRSxVQUFBLEUsZ0JBQUEsQyxDQUNBLEssZ0JBQUEsRSxHQUFBLEUsZ0JBQUEsRSxnQkFBQSxFQUEyQ0EsU0FBQSxDLGdCQUFBLEUsR0FBQSxDQUEzQyxDQUEyRCxLLFNBQUEsRSxHQUFBLENBQTNELEMsQ0FFQUEsU0FBQSxDLGdCQUFBLEVBQW1CL0MsQ0FBQSxDLGdCQUFBLEUsVUFBQSxFLGdCQUFBLEMsQ0FDbkIrQyxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUFtQkEsU0FBQSxDLGdCQUFBLENBQW5CLEMsQ0FDQUEsU0FBQSxDLGFBQUEsRSxnQkFBQSxFQUF3QkEsU0FBQSxDLGdCQUFBLENBQXhCLEMsQ0FHQUEsU0FBQSxDLGdCQUFBLEVBQXNCL0MsQ0FBQSxDLGdCQUFBLEMsQ0FDdEIrQyxTQUFBLEMsYUFBQSxFLGdCQUFBLEVBQXdCQSxTQUFBLEMsZ0JBQUEsQ0FBeEIsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsT0FBQSxDQUFnQyxVLDJCQUM1QkEsU0FBQSxDLGdCQUFBLEUsUUFBQSxHLENBQ0lBLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxVQUFBLEMsR0FFQUMsU0FBQSxFLENBQ0FELFNBQUEsQyxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxFQUF3QyxVLDJCQUNwQyxJQUFJRSxTQUFBLENBQWFqRCxDQUFBLENBQUUsSUFBRixFLGdCQUFBLEdBQWpCLENBQ0EsTUFBTWtELFNBQUEsQ0FBV0gsU0FBQSxDLFNBQUEsRSxhQUFBLEVBQXlCRSxTQUF6QixDQUFqQixDLEdBQ0lDLFNBQUEsR0FBYXpDLFMsQ0FDYixNQUFNLElBQUlqRyxLQUFKLEMsd0JBQUEsQ0FBTixDQUVDLENBQUF1SSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUFxQkcsU0FBckIsQ0FBRCxHQUFvQ0EsUyxDQUNwQ2xELENBQUEsQ0FBRSxJQUFGLEUsZ0JBQUEsRSxnQkFBQSxDLENBR0FBLENBQUEsQ0FBRSxJQUFGLEUsZ0JBQUEsRSxnQkFBQSxDLEVBVlIsQyxDQWNBK0MsU0FBQSxDLGdCQUFBLEcsR0FuQlIsQyxDQXVCQUEsU0FBQSxDLGdCQUFBLEVBQWlCL0MsQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsSSxnQkFBQSxFQUEwRCxLLGdCQUFBLENBQTFELEMsQ0FDakJBLENBQUEsQyxnQkFBQSxFQUFPLEssZ0JBQUEsRSxnQkFBQSxDQUFQLENBQWlDLFNBQVVtRCxTQUFWLEMsMkJBQ3ZCQyxTQUFBLENBQVVwRCxDQUFBLEMsZ0JBQUUsQ0FDZG1ELFNBRGMsQyxPQUFBLEMsZ0JBQUEsQ0FJZEEsU0FKYyxDLGdCQUFGLEMsQ0FNaEJKLFNBQUEsQyxXQUFBLEUsZ0JBQUEsRUFBc0JLLFNBQXRCLEMsRUFQSixDLENBVUFMLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxnQkFBQSxDLGdCQUFBLENBQTZDLFUsMkJBQ3pDL0MsQ0FBQSxDQUFFLElBQUYsRSxhQUFBLEUsVUFBQSxFQUNBLE1BQU1xRCxTQUFBLENBQVFyRCxDQUFBLENBQUUsSUFBRixFLGdCQUFBLEUsZ0JBQUEsQ0FBZCxDQUNJQSxDQUFBLENBQUUsSUFBRixFLGdCQUFBLEUsZ0JBQUEsQyxDQUNBc0QsU0FBQSxDQUFPRCxTQUFQLEMsQ0FHQUUsU0FBQSxDQUFTRixTQUFULEMsQ0FFSk4sU0FBQSxDLGFBQUEsRyxFQVRKLEMsQ0FXQUEsU0FBQSxDLGdCQUFBLEUsUUFBQSxFQUFtQkEsU0FBQSxDLGdCQUFBLENBQW5CLENBekRBLENBMERBLE1BQU1DLFNBQUEsQ0FBa0IsSSwyQkFDZFEsU0FBQSxDQUFRLEssZ0JBQUEsRSxnQkFBQSxHLENBQ2RULFNBQUEsQyxTQUFBLEUsZ0JBQUEsRUFBcUJ6SCxTQUFBLENBQXVCeUgsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBdkIsQ0FBaURTLFNBQWpELEMsRUFGekIsQ0FJTUYsU0FBQSxDQUFVRyxTQUFELEUsMkJBQ0xDLFNBQUEsQ0FBTVgsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBeUJVLFNBQXpCLEMsSUFDUkMsU0FBQSxHQUFRakQsUyxDQUNSLE1BQU0sSUFBSWpHLEtBQUosQyxnQkFBQSxDQUFOLENBRUosSyxnQkFBQSxFLGdCQUFBLEdBQXNCa0osUyxFQVQxQixDQVdNSCxTQUFBLENBQVlJLFNBQUQsRSwyQkFDUEMsU0FBQSxDQUFNYixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUF5QlksU0FBekIsQyxJQUNSQyxTQUFBLEdBQVFuRCxTLENBQ1IsTUFBTSxJQUFJakcsS0FBSixDLHdCQUFBLENBQU4sQ0FFSixLLFNBQUEsRSxnQkFBQSxHQUFzQixDQUFDb0osUyxDQUN2QixLLGdCQUFBLEUsZ0JBQUEsRUFBaUI1SCxTQUFBLENBQXVCK0csU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBdkIsQ0FBaUQsSyxTQUFBLEUsT0FBQSxDQUFqRCxDQUFqQixDLEVBakJKLENBbUJBQyxTQUFBLEUsRUF4RndCLEMsYUEwRjVCLEUsMkJBQ1VhLFNBQUEsQ0FBTyxJLENBQ2IsSyxTQUFBLEUsZ0JBQUEsRUFBaUI3SCxTQUFBLENBQXVCNkgsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBdkIsQ0FBaUQsSyxTQUFBLEUsZ0JBQUEsQ0FBakQsQ0FBakIsQyxFQTVGd0IsQyxVQThGNUIsRSxDQUNJLE1BQU1DLFNBQUEsQ0FBTyxJQUFiLENBQ0FBLFNBQUEsQyxXQUFBLEUsUUFBQSxHLEVBaEd3QixDQUFoQyxDLEVBOU5KLENBbVVNQyxTQUFBLENBQXdCLEksMkJBQ3BCQyxTQUFBLENBQVloRSxDQUFBLEMsZ0JBQUEsQyxDQUNaaUUsU0FBQSxDQUFhRCxTQUFBLEMsZ0JBQUEsRyxDQUNiRSxTQUFBLENBQVVDLEdBQUEsQyxnQkFBQSxFLE1BQUEsRUFBZUYsU0FBZixDLElBQ1osQ0FBQ0MsUyxDQUNELE9BQU96RCxTQUFQLENBR0osTUFBTSxDQUFFekQsUUFBQSxDQUFBb0gsUUFBRixDQUFZQyxZQUFBLENBQUFDLFNBQVosQ0FBMEJDLGNBQUEsQ0FBQUMsU0FBMUIsQ0FBMENDLGdCQUFBLENBQUFDLFNBQTFDLENBQTREQyxXQUFBLENBQUFDLFNBQTVELEVBQTRFVixTQUFsRixDQUNNVyxTQUFBLENBQVcsQyxVQUNiLENBQUFULFFBRGEsQyxjQUViLENBQUFFLFNBRmEsQyxnQkFHYixDQUFBRSxTQUhhLEMsa0JBSWIsQ0FBQUUsU0FKYSxDLGFBS2IsQ0FBQUUsU0FMYSxDQURqQixDLE9BUUFoSCxPQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUFtQmlILFNBQW5CLEMsQ0FDT0EsUyxFQXBWWCxDQXNWTUMsU0FBQSxDQUErQixJLE9BQzFCLEMsY0FDSCxDQUFjQyxTQURYLEMsRUF2VlgsQ0EyVk1BLFNBQUEsQ0FBd0IsSSwyQkFDcEJDLFNBQUEsQ0FBWWhGLENBQUEsQyxnQkFBQSxDLENBQ1ppRixTQUFBLENBQWFELFNBQUEsQyxnQkFBQSxHLENBQ2JFLFNBQUEsQ0FBYW5CLFNBQUEsRSxJQUNmLENBQUNtQixTLFFBQ016RSxTLE9BRUosQyxJQUNILENBQUl3RSxTQURELEMsRUFsV1gsQ0FrWEFkLEdBQUEsQyxnQkFBQSxFLGNBQUEsRSxnQkFBQSxDQUErQyxDLFVBQzNDLEMsZ0JBRDJDLEMsT0FFM0MsQyxTQUYyQyxDLE9BRzNDLEMsZ0JBSDJDLEMsTUFJM0MsQyxnQkFKMkMsQyxjQUszQyxDLGdCQUwyQyxDLFVBTTNDLENBQVUsQyxRQUNOLENBQVEsQyxPQUFFLEMsR0FBRixDQURGLEMsUUFFTixDQUFRLEMsT0FBRSxDLEdBQUYsQ0FGRixDLE1BSU4sQ0FBTSxDLE9BQUUsQyxFQUFGLENBSkEsQyxVQUtOLENBQVUsQyxPQUFFLEMsRUFBRixDLFVBQWEsQyxJQUFiLEMsTUFBNkIsQyxnQkFBN0IsQ0FMSixDLFFBT04sQ0FBUSxDLE9BQUUsQyxFQUFGLEMsVUFBYSxDLEdBQWIsQ0FQRixDLGlCQVFOLENBQWlCLEMsT0FBRSxDLFVBQUYsQyxVQUFxQixDLEdBQXJCLENBUlgsQyxpQkFTTixDQUFpQixDLE9BQUUsQyxHQUFGLEMsVUFBZ0IsQyxJQUFoQixDQVRYLEMsaUJBVU4sQ0FBaUIsQyxPQUFFLEMsZ0JBQUYsQyxVQUFvQixDLElBQXBCLENBVlgsQyxlQVdOLENBQWUsQyxPQUFFLEMsZ0JBQUYsQyxVQUFtRSxDLEdBQW5FLENBWFQsQyxZQVlOLENBQVksQyxPQUFFLEMsaUhBQUYsQyxVQUE4RixDLEdBQTlGLENBWk4sQ0FOaUMsQyxTQW9CM0MsQyxHQXBCMkMsQyxPQXFCM0MsRSxrQ0FDVyxLLGdCQUFBLEcsbUJBdEJnQyxDLFlBd0IzQyxFLGtDQUNXLEssTUFBQSxFLGdCQUFBLEMsSUF6QmdDLEMsZUEyQjNDLEUsMkJBQ1VnQixTQUFBLENBQU8sSSxDQUNiM0UsU0FBQSxFLENBQ0FzQyxTQUFBLEUsQ0FDQXFDLFNBQUEsQyxnQkFBQSxFLEdBRkEsQ0FHQSxNQUFNQyxTQUFBLENBQWlCcEYsQ0FBQSxDLGdCQUFBLENBQXZCLENBQ0FvRixTQUFBLEMsZ0JBQUEsRUFBMEIsQyxhQUN0QixDQUFhLEMsUUFDVCxDLEdBRFMsQyxVQUVULEMsR0FGUyxDLFFBR1QsQyxHQUhTLEMsWUFJVCxDLEdBSlMsQyxjQUtULEMsSUFMUyxDLGVBTVQsQyxJQU5TLEMsVUFPVCxDLElBUFMsQyxNQVFULEMsSUFSUyxDQURTLEMsT0FXdEIsQyxHQVhzQixDQUExQixFQWFBLE1BQU1DLFNBQUEsQ0FBY3JGLENBQUEsQyxnQkFBQSxDQUFwQixDQUNBcUYsU0FBQSxDLFlBQUEsRUFBdUIsQyxhQUNuQixDQUFhLEMsZUFDVCxDLEdBRFMsQyxXQUVULEMsR0FGUyxDLFdBR1QsQyxHQUhTLEMsWUFJVCxDLEdBSlMsQyxhQUtULEMsSUFMUyxDLGdCQU1ULEMsSUFOUyxDQURNLEMsT0FTbkIsQyxJQVRtQixDQUF2QixFQVdBLE1BQU1DLFNBQUEsQ0FBVXRGLENBQUEsQyxvQkFBQSxDQUFoQixDQUNBc0YsU0FBQSxDLGdCQUFBLEVBQW9CaEosTUFBQSxDLGdCQUFBLEVBQWNBLE1BQUEsQyxRQUFBLEVBQWMsRUFBZCxDQUFrQndJLFNBQUEsRUFBbEIsQ0FBZCxDQUFpRSxDLGNBQUUsQ0FBYVMsU0FBYixDLGtDQUN4RUEsU0FBQSxDLGdCQUFBLEksZ0JBQUEsRUFBcUNBLFNBQUEsQyxXQUFBLEksa0JBRGlDLENBQWpFLENBQXBCLEVBR0EsTUFBTUMsU0FBQSxDQUFxQixDLFFBQ3ZCLEMsZ0JBRHVCLEMsaUJBRXZCLEMsRUFGdUIsQyxZQUd2QixDQUFZLEMsZ0JBQUUsQyxHQUFGLEMsTUFBcUIsQyxnQkFBckIsQ0FIVyxDLGFBSXZCLENBQWEsQyxNQUFFLEMsZ0JBQUYsQ0FKVSxDLFdBS3ZCLEMsZUFMdUIsQyxnQkFNdkIsQyxNQU51QixDQUEzQixDQVFNQyxTQUFBLENBQW1CekYsQ0FBQSxDLGdCQUFBLENBUnpCLENBU0F5RixTQUFBLEMsZ0JBQUEsRUFBNkJuSixNQUFBLEMsZ0JBQUEsRUFBY0EsTUFBQSxDLGdCQUFBLEVBQWMsRUFBZCxDQUFrQndJLFNBQUEsRUFBbEIsQ0FBZCxDQUFpRSxDLFlBQUUsQ0FBWSxJQUFNVSxTQUFwQixDLGNBQzFGLENBQWFFLFNBQWIsQyxrQ0FDV0EsU0FBQSxDLGdCQUFBLEksa0JBRitFLEMsV0FHdkYsQyxJQUh1RixDQUFqRSxDQUE3QixDLEVBdkV1QyxDLFlBNEUzQyxFLEVBNUUyQyxDQUEvQyxDLEVBNW5CSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIGZ1bmN0aW9uIGNvZXJjZUZsYWdNYXNrVG9OdW1iZXIodHlwZSwgc3RyKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc3RyID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0ckFzTnVtID0gcGFyc2VJbnQoc3RyLCAxMCk7XG4gICAgICAgIGlmICghaXNOYU4oc3RyQXNOdW0pKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyQXNOdW07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmxhZ3MgPSBzdHIuc3BsaXQoL1xcfHw7fCwvKS5tYXAoKGEpID0+IGEudHJpbSgpKTtcbiAgICAgICAgbGV0IHJlc3VsdCA9IDA7XG4gICAgICAgIGZvciAoY29uc3QgZmxhZyBvZiBmbGFncykge1xuICAgICAgICAgICAgcmVzdWx0IHw9IHR5cGVbZmxhZ107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29lcmNlRmxhZ01hc2tUb1N0cmluZyh0eXBlLCB2YWx1ZSkge1xuICAgICAgICB2YWx1ZSA9IGNvZXJjZUZsYWdNYXNrVG9OdW1iZXIodHlwZSwgdmFsdWUpO1xuICAgICAgICBjb25zdCByID0gW107XG4gICAgICAgIGlmICghdHlwZSlcbiAgICAgICAgICAgIHJldHVybiByLmpvaW4oXCIgfCBcIik7XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgYml0TWFza10gb2YgT2JqZWN0LmVudHJpZXModHlwZSkpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoKHZhbHVlICYgYml0TWFzaykgPT09IGJpdE1hc2spIHtcbiAgICAgICAgICAgICAgICAgICAgci5wdXNoKGtleSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByLmpvaW4oXCIgfCBcIik7XG4gICAgfVxuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgdGVtcGxhdGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vYnJvd3NlYDtcbiAgICAgICAgY29uc3QgYnJvd3NlRGVzY3JpcHRpb24gPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRlKSwgeyBub2RlSWQsIHJlc3VsdE1hc2s6IDYzIH0pO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBicm93c2VEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzOiBbXSB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgJGlucHV0RWxlbWVudCwgJGluZm8pID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKGAke3Jvb3R9L2NoZWNrTm9kZUlkYCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoIXJlZmVyZW5jZSkge1xuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSBmYS1lcnJvclwiIHN0eWxlPVwiY29sb3I6cmVkO1wiPjwvaT5ubyByZWZlcmVuY2UgITx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbiA9IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgdCA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHsgaWNvbiwgY29sb3IgfSA9IGdldEljb24ocmVmZXJlbmNlKTtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+ICR7dH08dWw+PC91bD48L2xpPmApO1xuICAgICAgICAkZWxlbWVudC5hZGRDbGFzcyhcImV4cGFuZGFibGVcIik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJ2YWx1ZVwiLCBuKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgfTtcbiAgICBjb25zdCBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbIFRlbXBlcmF0dXJlICBdXG4gICAgICAgICAqICAgKCB0b29sdGlwIDogKC9PYmplY3RzL015U2Vuc29yKSAobnM9MTtzPVRlbXBlcmF0dXJlKSlcbiAgICAgICAgICogWyArIFtGb2xkZXJdIE9iamVjdHNdXG4gICAgICAgICAqIFsgICAgIFtPYmplY3RdIE15U2Vuc29yXVxuICAgICAgICAgKiBbICAgICAoICkgW1ZhcmlhYmxlXSBUZW1wZXJhdHVyZV1cbiAgICAgICAgICovXG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUubm9kZUJyb3dzZXJcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZTogKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgbm9kZUNsYXNzOiBcIk9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBub2RlSWQ6IFwibnM9MDtpPTg1XCIsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIHR5cGVEZWZpbml0aW9uOiBGb2xkZXJUeXBlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgICAgIGlzVHlwZVJlZjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZVBhcmVudE5vZGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdGhhdC5vcHRpb25zLnBhcmVudE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNldCgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpLnRoZW4oKHBhcmVudE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChwYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LmN1cnJlbnRQYXJlbnQgPSBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZlcmlmeSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGludGVybmFsVmVyaWZ5KGRhdGEsIHRoYXQuJGlucHV0LCB0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIF9mZXRjaERhdGFGb3JOb2RlKCRub2RlLCBmZXRjaEZ1bmMsIGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJsb2FkaW5nXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYXBwZW5kKCc8ZGl2IGNsYXNzPVwic3Bpbm5lclwiPjwvZGl2PicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyByZWZlcmVuY2VzIH0gPSB5aWVsZCBmZXRjaEZ1bmMoJG5vZGUsIGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5maWx0ZXIgJiYgIXRoYXQub3B0aW9ucy5maWx0ZXIocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5yZXBsYWNlV2l0aCh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cCA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJpbnB1dC1ncm91cFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5wdXRHcm91cCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kaW5wdXQpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyZWUgd2lkZ2V0IGlzIGdvaW5nIHRvIGJlY29tZSB2aXNpYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc29sdmVQYXJlbnROb2RlKCkudGhlbigocGFyZW50Tm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAhPT0gdGhhdC5jdXJyZW50UGFyZW50IHx8ICgoX2EgPSB0aGF0LmN1cnJlbnRQYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ub2RlSWQpICE9PSBwYXJlbnROb2RlLm5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZmxhc2tcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdmVyaWZ5QnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkKHRoaXMpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZmV0Y2hEYXRhRm9yTm9kZSgkbGksIGYsIGRhdGEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIgRmV0Y2hpbmcgZG9uZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkbGkuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gJGxpLmRhdGEoXCJyZWZlcmVuY2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZSAmJiAhdGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZShyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBgWyR7ZGlzcGxheU5hbWV9XSgke3ZhbHVlfSlgO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjbGlja2luZyBvdXRzaWRlIHRoZSBwYWdlIHdpbGwgaGlkZSB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCh0aGF0LiRjb21ibykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBkZWNsYXJlRmxhZ0VkaXRvcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5mbGFnRWRpdG9yXCIsIHtcbiAgICAgICAgICAgIC8vIGRlZmF1bHQgb3B0aW9uc1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIG5hbWVzVG9CaXRzOiB7XG4gICAgICAgICAgICAgICAgLy8gQWRkIG1vcmUgbmFtZXMgYW5kIGJpdCB2YWx1ZXNcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHZhbHVlOiAwLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gQ3VzdG9tIERyb3Bkb3duXG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFswXS5wYXJlbnRFbGVtZW50LnJlcGxhY2VDaGlsZCh0aGF0LiRjb21ib1swXSwgdGhpcy5lbGVtZW50WzBdKTtcbiAgICAgICAgICAgICAgICAvLyB0aGlzLmVsZW1lbnQucmVwbGFjZVdpdGgodGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAgPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwiaW5wdXQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGlucHV0R3JvdXApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJGlucHV0KTtcbiAgICAgICAgICAgICAgICAvLyB0aGUgdG9nZ2xlIHRyZWUgYnV0dG9uOlxuICAgICAgICAgICAgICAgIC8vICAgd2hlbiB3ZSBjbGljayBpdCB0aGUgZHJvcCBkb3duIHBhbmVsIGlzIGRpc3BsYXllZFxuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZXllXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC4kc2VsZWN0LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVGcm9tSW5wdXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmZpbmQoXCIuY3VzdG9tLW9wdGlvblwiKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgb3B0aW9uTmFtZSA9ICQodGhpcykudGV4dCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJpdFZhbHVlID0gdGhhdC5vcHRpb25zLm5hbWVzVG9CaXRzW29wdGlvbk5hbWVdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChiaXRWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVua25vd24gYml0IG5hbWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgodGhhdC5vcHRpb25zLnZhbHVlICYgYml0VmFsdWUpID09PSBiaXRWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGhpZGRlbiBzZWxlY3QgZWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC51cGRhdGVWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gdGhlIGRyb3AgZG93biBwYW5lbFxuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJCgnPGRpdiBjbGFzcz1cImN1c3RvbS1zZWxlY3RcIj48L2Rpdj4nKS5oaWRlKCkuaW5zZXJ0QWZ0ZXIodGhpcy5lbGVtZW50KTtcbiAgICAgICAgICAgICAgICAkLmVhY2godGhpcy5vcHRpb25zLm5hbWVzVG9CaXRzLCBmdW5jdGlvbiAobmFtZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkb3B0aW9uID0gJCgnPGRpdiBjbGFzcz1cImN1c3RvbS1vcHRpb25cIiBkYXRhLXZhbHVlPVwiJyArXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lICtcbiAgICAgICAgICAgICAgICAgICAgICAgICdcIj4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz1cImN1c3RvbS1jaGVja2JveFwiPjwvc3Bhbj4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgK1xuICAgICAgICAgICAgICAgICAgICAgICAgXCI8L2Rpdj5cIik7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmFwcGVuZCgkb3B0aW9uKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyB3aGVuIGEgb3B0aW9ucyBpbiB0aGUgZHJvcCBkb3duIHBhbmVsIGlzIGNsaWNrZWQsXG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24ub24oXCJjbGlja1wiLCBcIi5jdXN0b20tb3B0aW9uXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS50b2dnbGVDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICQodGhpcykuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5oYXNDbGFzcyhcInNlbGVjdGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRCaXQodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdW5zZXRCaXQodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoYXQudXBkYXRlVmFsdWUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZUZyb21JbnB1dCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmVsZW1lbnQudmFsKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQub3B0aW9ucy52YWx1ZSA9IGNvZXJjZUZsYWdNYXNrVG9OdW1iZXIodGhhdC5vcHRpb25zLm5hbWVzVG9CaXRzLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBzZXRCaXQgPSAoYml0TmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiaXQgPSB0aGF0Lm9wdGlvbnMubmFtZXNUb0JpdHNbYml0TmFtZV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChiaXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBiaXQgbmFtZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMudmFsdWUgfD0gYml0O1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgdW5zZXRCaXQgPSAoYml0TmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiaXQgPSB0aGF0Lm9wdGlvbnMubmFtZXNUb0JpdHNbYml0TmFtZV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChiaXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBiaXQgbmFtZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMudmFsdWUgJj0gfmJpdDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnZhbChjb2VyY2VGbGFnTWFza1RvU3RyaW5nKHRoYXQub3B0aW9ucy5uYW1lc1RvQml0cywgdGhpcy5vcHRpb25zLnZhbHVlKSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB1cGRhdGVGcm9tSW5wdXQoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB1cGRhdGVWYWx1ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQudmFsKGNvZXJjZUZsYWdNYXNrVG9TdHJpbmcodGhhdC5vcHRpb25zLm5hbWVzVG9CaXRzLCB0aGlzLm9wdGlvbnMudmFsdWUpKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfZGVzdHJveSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5yZW1vdmUoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBnZXRFbmRQb2ludEF0dHJpYnV0ZXMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgcmVkTm9kZSA9IFJFRC5ub2Rlcy5ub2RlKGVuZHBvaW50SWQpO1xuICAgICAgICBpZiAoIXJlZE5vZGUpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAvLyBjb25zdCBjcmVkZW50aWFscyA9IFJFRC4oZW5kcG9pbnRJZCk7XG4gICAgICAgIC8vIHdlIG5lZWQgdG8gc2FuaXRpemUgYW5kIGV4dHJhY3QgdGhlIGVuZHBvaW50IGF0dHJpYnV0ZXMgb25seSAoIG5vdCB0aGUgbm9kZS1yZWQgc3R1ZmYpXG4gICAgICAgIGNvbnN0IHsgZW5kcG9pbnQsIHNlY3VyaXR5TW9kZSwgc2VjdXJpdHlQb2xpY3ksIHVzZXJJZGVudGl0eVR5cGUsIGNyZWRlbnRpYWxzIH0gPSByZWROb2RlO1xuICAgICAgICBjb25zdCByZXRWYWx1ZSA9IHtcbiAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgY3JlZGVudGlhbHMsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnNvbGUubG9nKFwieHh4XCIsIHJldFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHJldFZhbHVlO1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50TnIgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgaWYgKCFlbmRwb2ludE5yKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogZW5kcG9pbnRJZCxcbiAgICAgICAgICAgIC8vIGVuZHBvaW50OiBlbmRwb2ludE5yLmVuZHBvaW50LFxuICAgICAgICAgICAgLy8gc2VjdXJpdHlNb2RlOiBlbmRwb2ludE5yLnNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIC8vIHNlY3VyaXR5UG9saWN5OiBlbmRwb2ludE5yLnNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIHVzZXJJZGVudGl0eVR5cGU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIC8vIGNyZWRlbnRpYWw6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gdXNlck5hbWU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyTmFtZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC8vIHBhc3N3b3JkOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIuY3JlZGVudGlhbHMucGFzc3dvcmQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyB1c2VyQ2VydGlmaWNhdGU6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlckNlcnRpZmljYXRlLFxuICAgICAgICAgICAgLy8gdXNlclByaXZhdGVrZXk6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlclByaXZhdGVrZXksXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1DbGllbnQyLUJyb3dzZVwiLCB7XG4gICAgICAgIGNhdGVnb3J5OiBcIm9wY3VhXCIsXG4gICAgICAgIGNvbG9yOiBcIiNDMERFRURcIixcbiAgICAgICAgYWxpZ246IFwicmlnaHRcIixcbiAgICAgICAgaWNvbjogXCIuLi8uLi9pY29ucy9vcGN1YW5vZGVMb2dvLnBuZ1wiLFxuICAgICAgICBwYWxldHRlTGFiZWw6IFwiYnJvd3NlXCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBpbnB1dHM6IHsgdmFsdWU6IDEgfSxcbiAgICAgICAgICAgIG91dHB1dDogeyB2YWx1ZTogNCB9LFxuICAgICAgICAgICAgLy8gQ29tbW9uXG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUsIHR5cGU6IFwiT3BjVWEtRW5kcG9pbnQyXCIgfSxcbiAgICAgICAgICAgIC8vIGZvciBhY3Rpb24gcmVhZFxuICAgICAgICAgICAgbm9kZUlkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIHJlZmVyZW5jZVR5cGVJZDogeyB2YWx1ZTogXCJIYXNDaGlsZFwiLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIGluY2x1ZGVTdWJ0eXBlczogeyB2YWx1ZTogZmFsc2UsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBicm93c2VEaXJlY3Rpb246IHsgdmFsdWU6IFwiRm9yd2FyZFwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgbm9kZUNsYXNzTWFzazogeyB2YWx1ZTogXCJWYXJpYWJsZSB8IE9iamVjdCB8IE1ldGhvZCB8IE9iamVjdFR5cGUgfCBWYXJpYWJsZVR5cGVcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICByZXN1bHRNYXNrOiB7IHZhbHVlOiBcIlJlZmVyZW5jZVR5cGUgfCBCcm93c2VOYW1lIHwgVHlwZURlZmluaXRpb24gfCBEaXNwbGF5TmFtZSB8IE5vZGVDbGFzcyB8IElzRm9yd2FyZFwiLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgfSxcbiAgICAgICAgb3V0cHV0czogMSxcbiAgICAgICAgbGFiZWwoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lIHx8IFwiT1BDVUEgQnJvd3NlXCI7XG4gICAgICAgIH0sXG4gICAgICAgIGxhYmVsU3R5bGUoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lID8gXCJub2RlX2xhYmVsX2l0YWxpY1wiIDogXCJcIjtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0cHJlcGFyZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzO1xuICAgICAgICAgICAgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0KCk7XG4gICAgICAgICAgICBkZWNsYXJlRmxhZ0VkaXRvcldpZGdldCgpO1xuICAgICAgICAgICAgbm9kZS5pbnB1dHMgPSAxO1xuICAgICAgICAgICAgY29uc3QgJG5vZGVDbGFzc01hc2sgPSAkKFwiI25vZGUtaW5wdXQtbm9kZUNsYXNzTWFza1wiKTtcbiAgICAgICAgICAgICRub2RlQ2xhc3NNYXNrLmZsYWdFZGl0b3Ioe1xuICAgICAgICAgICAgICAgIG5hbWVzVG9CaXRzOiB7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdDogMSxcbiAgICAgICAgICAgICAgICAgICAgVmFyaWFibGU6IDIsXG4gICAgICAgICAgICAgICAgICAgIE1ldGhvZDogNCxcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0VHlwZTogOCxcbiAgICAgICAgICAgICAgICAgICAgVmFyaWFibGVUeXBlOiAxNixcbiAgICAgICAgICAgICAgICAgICAgUmVmZXJlbmNlVHlwZTogMzIsXG4gICAgICAgICAgICAgICAgICAgIERhdGFUeXBlOiA2NCxcbiAgICAgICAgICAgICAgICAgICAgVmlldzogMTI4LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdmFsdWU6IDAsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0ICRyZXN1bHRNYXNrID0gJChcIiNub2RlLWlucHV0LXJlc3VsdE1hc2tcIik7XG4gICAgICAgICAgICAkcmVzdWx0TWFzay5mbGFnRWRpdG9yKHtcbiAgICAgICAgICAgICAgICBuYW1lc1RvQml0czoge1xuICAgICAgICAgICAgICAgICAgICBSZWZlcmVuY2VUeXBlOiAxLFxuICAgICAgICAgICAgICAgICAgICBJc0ZvcndhcmQ6IDIsXG4gICAgICAgICAgICAgICAgICAgIE5vZGVDbGFzczogNCxcbiAgICAgICAgICAgICAgICAgICAgQnJvd3NlTmFtZTogOCxcbiAgICAgICAgICAgICAgICAgICAgRGlzcGxheU5hbWU6IDE2LFxuICAgICAgICAgICAgICAgICAgICBUeXBlRGVmaW5pdGlvbjogMzIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogNjMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0ICRub2RlSWQgPSAkKFwiI25vZGUtaW5wdXQtbm9kZUlkXCIpO1xuICAgICAgICAgICAgJG5vZGVJZC5ub2RlQnJvd3NlcihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSksIHsgaXNTZWxlY3RhYmxlKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiVmFyaWFibGVcIiB8fCBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiT2JqZWN0XCI7XG4gICAgICAgICAgICAgICAgfSB9KSk7XG4gICAgICAgICAgICBjb25zdCByZWZlcmVuY2VzTm9kZURlc2MgPSB7XG4gICAgICAgICAgICAgICAgbm9kZUlkOiBcImk9MzFcIixcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJSZWZlcmVuY2VzXCIgfSxcbiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogeyB0ZXh0OiBcIlJlZmVyZW5jZXNcIiB9LFxuICAgICAgICAgICAgICAgIG5vZGVDbGFzczogXCJSZWZlcmVuY2VUeXBlXCIsXG4gICAgICAgICAgICAgICAgdHlwZURlZmluaXRpb246IFwiaT0zMVwiLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0ICRyZWZlcmVuY2VUeXBlSWQgPSAkKFwiI25vZGUtaW5wdXQtcmVmZXJlbmNlVHlwZUlkXCIpO1xuICAgICAgICAgICAgJHJlZmVyZW5jZVR5cGVJZC5ub2RlQnJvd3NlcihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSksIHsgcGFyZW50Tm9kZTogKCkgPT4gcmVmZXJlbmNlc05vZGVEZXNjLCAvLyBSZWZlcmVuY2VzLFxuICAgICAgICAgICAgICAgIGlzU2VsZWN0YWJsZShub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgICAgICAgICB9LCBpc1R5cGVSZWY6IHRydWUgfSkpO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkgeyB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
|
9
9
|
</script>
|
10
10
|
<script type="text/x-red" data-template-name="OpcUa-Client2-Browse">
|
11
11
|
<style>
|
@@ -48,22 +48,11 @@ function _0x55e4(_0xf3acad,_0x4e5685){const _0x4ab48f=_0x4ab4();return _0x55e4=f
|
|
48
48
|
<div class="form-row">
|
49
49
|
<label for="node-input-nodeId"><i class="fa fa-tag"></i>NodeId</label>
|
50
50
|
<input type="text" id="node-input-nodeId" placeholder="ns=2;s=Variable1 or empty" />
|
51
|
-
<button for="node-input-nodeId" id="nodeId-checkBtn" class="red-ui-button red-ui-button-small" style="margin-left: 10px">
|
52
|
-
<i class="fa fa-flask"></i>Check
|
53
|
-
</button>
|
54
51
|
</div>
|
55
52
|
|
56
53
|
<div class="form-row">
|
57
54
|
<label for="node-input-referenceTypeId"><i class="fa fa-tag"></i>ReferenceTypeId</label>
|
58
55
|
<input type="text" id="node-input-referenceTypeId" placeholder="ns=2;s=Variable1 or empty" />
|
59
|
-
<button
|
60
|
-
for="node-input-referenceTypeId"
|
61
|
-
id="referenceTypeId-checkBtn"
|
62
|
-
class="red-ui-button red-ui-button-small"
|
63
|
-
style="margin-left: 10px"
|
64
|
-
>
|
65
|
-
<i class="fa fa-flask"></i>Check
|
66
|
-
</button>
|
67
56
|
</div>
|
68
57
|
<div class="form-row">
|
69
58
|
<label class="my-checkbox-label" for="node-input-includeSubtypes"><i class="fa fa-play"></i>Include Subtypes </label>
|