@opcua/for-node-red 2.20.0 → 2.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,8 +4,8 @@
4
4
  </style>
5
5
 
6
6
  <script type="text/javascript">
7
- function _0x3e31(_0x5749b8,_0x52896a){const _0x5594ac=_0x5594();return _0x3e31=function(_0x3e3113,_0x43a060){_0x3e3113=_0x3e3113-0x170;let _0x4a7345=_0x5594ac[_0x3e3113];return _0x4a7345;},_0x3e31(_0x5749b8,_0x52896a);}(function(_0x446cda,_0x312ecf){const _0x25e7c6=_0x3e31,_0x12a484=_0x446cda();while(!![]){try{const _0x46730c=-parseInt(_0x25e7c6(0x231))/0x1+parseInt(_0x25e7c6(0x1b4))/0x2+-parseInt(_0x25e7c6(0x1be))/0x3*(-parseInt(_0x25e7c6(0x1e1))/0x4)+parseInt(_0x25e7c6(0x1e6))/0x5+-parseInt(_0x25e7c6(0x176))/0x6+-parseInt(_0x25e7c6(0x1a1))/0x7*(parseInt(_0x25e7c6(0x1fb))/0x8)+parseInt(_0x25e7c6(0x1a9))/0x9;if(_0x46730c===_0x312ecf)break;else _0x12a484['push'](_0x12a484['shift']());}catch(_0x22eb92){_0x12a484['push'](_0x12a484['shift']());}}}(_0x5594,0xe2e2f),(function(){'use strict';const _0x380ed4=_0x3e31;function _0x442e61(_0x56dcf7,_0x15b96b,_0x3068e1,_0x32a3a2){function _0x15c356(_0x3c0392){return _0x3c0392 instanceof _0x3068e1?_0x3c0392:new _0x3068e1(function(_0x10ec79){_0x10ec79(_0x3c0392);});}return new(_0x3068e1||(_0x3068e1=Promise))(function(_0x2ee4ab,_0x387b5b){const _0x2e3ecc=_0x3e31;function _0x362130(_0x1f5e11){try{_0x4fba30(_0x32a3a2['next'](_0x1f5e11));}catch(_0x54a844){_0x387b5b(_0x54a844);}}function _0x124f9b(_0x56ac47){const _0x3ca82d=_0x3e31;try{_0x4fba30(_0x32a3a2[_0x3ca82d(0x194)](_0x56ac47));}catch(_0x276e54){_0x387b5b(_0x276e54);}}function _0x4fba30(_0x2135c1){const _0x23305a=_0x3e31;_0x2135c1['done']?_0x2ee4ab(_0x2135c1[_0x23305a(0x1b3)]):_0x15c356(_0x2135c1[_0x23305a(0x1b3)])[_0x23305a(0x1ee)](_0x362130,_0x124f9b);}_0x4fba30((_0x32a3a2=_0x32a3a2[_0x2e3ecc(0x177)](_0x56dcf7,_0x15b96b||[]))[_0x2e3ecc(0x18b)]());});}typeof SuppressedError==='function'?SuppressedError:function(_0x583716,_0xf6e138,_0x2d714b){const _0x595beb=_0x3e31;var _0x2cfd2e=new Error(_0x2d714b);return _0x2cfd2e[_0x595beb(0x19b)]=_0x595beb(0x178),_0x2cfd2e[_0x595beb(0x221)]=_0x583716,_0x2cfd2e['suppressed']=_0xf6e138,_0x2cfd2e;};const _0x3fa023='ns=0;i=35',_0x516c2e=_0x380ed4(0x193),_0x733191=_0x380ed4(0x225),_0x38f894=_0x380ed4(0x238),_0x5eedff=_0x380ed4(0x19f),_0x4d43c2='ns=0;i=45',_0xd0c59b=_0x380ed4(0x20b);var _0x4f80dd;(function(_0xd32dc9){const _0x596e9d=_0x380ed4;_0xd32dc9[_0xd32dc9['Forward']=0x0]=_0x596e9d(0x204),_0xd32dc9[_0xd32dc9[_0x596e9d(0x239)]=0x1]='Inverse',_0xd32dc9[_0xd32dc9[_0x596e9d(0x1bc)]=0x2]=_0x596e9d(0x1bc),_0xd32dc9[_0xd32dc9[_0x596e9d(0x1a3)]=0x3]=_0x596e9d(0x1a3);}(_0x4f80dd||(_0x4f80dd={})));var _0x85de33;(function(_0x42c51b){const _0x19a90b=_0x380ed4;_0x42c51b[_0x42c51b[_0x19a90b(0x22b)]=0x0]='Unspecified',_0x42c51b[_0x42c51b['Object']=0x1]=_0x19a90b(0x195),_0x42c51b[_0x42c51b['Variable']=0x2]=_0x19a90b(0x1d1),_0x42c51b[_0x42c51b[_0x19a90b(0x186)]=0x4]=_0x19a90b(0x186),_0x42c51b[_0x42c51b[_0x19a90b(0x173)]=0x8]=_0x19a90b(0x173),_0x42c51b[_0x42c51b[_0x19a90b(0x1d7)]=0x10]='VariableType',_0x42c51b[_0x42c51b['ReferenceType']=0x20]=_0x19a90b(0x1b7),_0x42c51b[_0x42c51b[_0x19a90b(0x1ab)]=0x40]=_0x19a90b(0x1ab),_0x42c51b[_0x42c51b[_0x19a90b(0x1f3)]=0x80]='View';}(_0x85de33||(_0x85de33={})));var _0xc42bfb;(function(_0x14e82e){const _0x4a6f43=_0x380ed4;_0x14e82e[_0x14e82e['Object']=0x1]=_0x4a6f43(0x195),_0x14e82e[_0x14e82e[_0x4a6f43(0x1d1)]=0x2]='Variable',_0x14e82e[_0x14e82e['Method']=0x4]=_0x4a6f43(0x186),_0x14e82e[_0x14e82e[_0x4a6f43(0x173)]=0x8]='ObjectType',_0x14e82e[_0x14e82e[_0x4a6f43(0x1d7)]=0x10]=_0x4a6f43(0x1d7),_0x14e82e[_0x14e82e['ReferenceType']=0x20]='ReferenceType',_0x14e82e[_0x14e82e[_0x4a6f43(0x1ab)]=0x40]=_0x4a6f43(0x1ab),_0x14e82e[_0x14e82e['View']=0x80]=_0x4a6f43(0x1f3);}(_0xc42bfb||(_0xc42bfb={})));var _0x317fa5;(function(_0x540b7e){const _0x474eab=_0x380ed4;_0x540b7e[_0x540b7e[_0x474eab(0x1b7)]=0x1]=_0x474eab(0x1b7),_0x540b7e[_0x540b7e[_0x474eab(0x22f)]=0x2]=_0x474eab(0x22f),_0x540b7e[_0x540b7e[_0x474eab(0x227)]=0x4]='NodeClass',_0x540b7e[_0x540b7e[_0x474eab(0x21d)]=0x8]=_0x474eab(0x21d),_0x540b7e[_0x540b7e[_0x474eab(0x1e2)]=0x10]=_0x474eab(0x1e2),_0x540b7e[_0x540b7e[_0x474eab(0x22c)]=0x20]=_0x474eab(0x22c);}(_0x317fa5||(_0x317fa5={})));function _0x4bba9b(_0x44efb4){const _0x267614=_0x380ed4;switch(_0x44efb4){case _0x267614(0x1f4):return _0x3fa023;case'HasProperty':return _0x38f894;case'HasComponent':return _0x733191;case'HasChild':return _0x5eedff;case'HasSubtype':return _0x4d43c2;case _0x267614(0x200):return _0xd0c59b;}}const _0x1eadea=_0x2a1af6=>{const _0x11c592=_0x380ed4;switch(_0x2a1af6[_0x11c592(0x249)]){case'Object':if(_0x2a1af6[_0x11c592(0x218)]===_0x3fa023);if(_0x2a1af6['typeDefinition']===_0x516c2e||_0x2a1af6[_0x11c592(0x218)]===_0x11c592(0x184))return{'icon':_0x11c592(0x216),'color':_0x11c592(0x24a)};return{'icon':_0x11c592(0x1ba),'color':_0x11c592(0x1f2)};case _0x11c592(0x1d1):if(_0x2a1af6[_0x11c592(0x218)]===_0x733191)return{'icon':_0x11c592(0x236),'color':_0x11c592(0x1b8)};else return _0x2a1af6[_0x11c592(0x218)]===_0x38f894?{'icon':_0x11c592(0x236),'color':_0x11c592(0x1b1)}:{'icon':_0x11c592(0x236),'color':_0x11c592(0x1c2)};case _0x11c592(0x186):return{'icon':_0x11c592(0x24d),'color':_0x11c592(0x1c9)};case'ObjectType':return{'icon':_0x11c592(0x1ba),'color':_0x11c592(0x1ec)};case'VariableType':return{'icon':_0x11c592(0x24c),'color':'DarkOrange'};case _0x11c592(0x1ab):return{'icon':_0x11c592(0x191),'color':_0x11c592(0x1c2)};}return{'icon':'fa-question','color':'grey'};},_0x3aac91=(_0x225dee,_0x3322db,_0x39b6b1)=>_0x442e61(void 0x0,[_0x225dee,_0x3322db,_0x39b6b1],void 0x0,function*({endpointNode:_0x42bbb3,endpoint:_0x1ae2d8,baseUrl:_0x24d790},_0x54ae13,_0x1ff7d4){const _0x450b48=_0x380ed4,_0x5c2e84=_0x24d790+_0x450b48(0x1c7),_0x80f396=_0x5c2e84+_0x450b48(0x1e3),_0x405c3c=Object[_0x450b48(0x1c0)](Object[_0x450b48(0x1c0)]({},_0x1ff7d4),{'nodeId':_0x54ae13,'resultMask':0x3f}),_0x1a3f66=yield fetch(_0x80f396,{'method':_0x450b48(0x1d5),'body':JSON[_0x450b48(0x21b)]({'endpointNode':_0x42bbb3,'endpoint':_0x1ae2d8,'browseDescription':_0x405c3c}),'headers':{'Content-Type':_0x450b48(0x220)}});if(_0x1a3f66[_0x450b48(0x1fd)]!==0xc8)return console['log'](_0x450b48(0x1eb),_0x1a3f66[_0x450b48(0x1fd)],_0x1a3f66['statusText']),{'references':[]};const _0x3a1e03=yield _0x1a3f66[_0x450b48(0x222)](),_0x4bcae4=_0x3a1e03[_0x450b48(0x1c8)][_0x450b48(0x1cf)]||[];return{'references':_0x4bcae4};}),_0x1ca5ae={'referenceTypeId':_0x4bba9b('HasChild'),'includeSubtypes':!![],'browseDirection':_0x4f80dd[_0x380ed4(0x204)],'nodeClassMask':_0x85de33[_0x380ed4(0x1d1)]|_0x85de33[_0x380ed4(0x195)]|_0x85de33[_0x380ed4(0x186)],'resultMask':0x3f},_0x3783dd={'referenceTypeId':_0x4bba9b(_0x380ed4(0x1f4)),'includeSubtypes':!![],'browseDirection':_0x4f80dd[_0x380ed4(0x204)],'nodeClassMask':_0x85de33[_0x380ed4(0x1d1)]|_0x85de33[_0x380ed4(0x195)]|_0x85de33[_0x380ed4(0x186)],'resultMask':0x3f},_0x5bf810=(_0x49fb6c,_0x3cef78)=>_0x442e61(void 0x0,[_0x49fb6c,_0x3cef78],void 0x0,function*({endpointNode:_0x58911c,endpoint:_0x7ea71,baseUrl:_0x4bd9ec},{nodeId:_0x3ffcb3,rootNodeId:_0x5b0c5f,isType:_0x239991}){const _0x439863=_0x380ed4,_0x38f706=_0x4bd9ec+_0x439863(0x1c7),_0xb7c0df=_0x38f706+_0x439863(0x1e0),_0x1d668e=yield fetch(_0xb7c0df,{'method':_0x439863(0x1d5),'body':JSON[_0x439863(0x21b)]({'endpointNode':_0x58911c,'endpoint':_0x7ea71,'nodeId':_0x3ffcb3,'rootNodeId':_0x5b0c5f,'isType':_0x239991}),'headers':{'Content-Type':_0x439863(0x220)}});if(_0x1d668e[_0x439863(0x1fd)]!==0xc8)return null;const _0x4964aa=yield _0x1d668e[_0x439863(0x222)]();return _0x4964aa[_0x439863(0x189)];}),_0x4eeea8=(_0x466d32,_0x5e3ecd,_0x169e71)=>_0x442e61(void 0x0,[_0x466d32,_0x5e3ecd,_0x169e71],void 0x0,function*({endpointNode:_0xe16402,endpoint:_0x2f086d,baseUrl:_0x273edb},_0x5e89fa,_0x354e43){const _0x1e497a=_0x380ed4,_0x4167a8=_0x273edb+_0x1e497a(0x1c7),_0x321e05=_0x4167a8+_0x1e497a(0x1dd),_0xa6a33=_0x5e89fa[_0x1e497a(0x181)](),_0x22769f=yield fetch(_0x321e05,{'method':_0x1e497a(0x1d5),'body':JSON[_0x1e497a(0x21b)]({'endpointNode':_0xe16402,'endpoint':_0x2f086d,'nodeId':_0xa6a33}),'headers':{'Content-Type':_0x1e497a(0x220)}}),_0x59478f=(_0x1bc2d3,_0x13af2e)=>{const _0x3ef4fd=_0x1e497a;_0x354e43[_0x3ef4fd(0x198)](_0x1bc2d3)[_0x3ef4fd(0x20a)](_0x3ef4fd(0x175))[_0x3ef4fd(0x20a)](_0x13af2e),_0x354e43[_0x3ef4fd(0x1fe)](),setTimeout(()=>{const _0x156483=_0x3ef4fd;_0x354e43[_0x156483(0x1cc)](_0x13af2e),_0x354e43['hide']();},0xbb8);},_0x1a1be6=yield _0x22769f[_0x1e497a(0x222)]();_0x22769f[_0x1e497a(0x1fd)]!==0xc8?_0x59478f(_0x1e497a(0x182)+_0xa6a33,_0x1e497a(0x1aa)):_0x1a1be6['statusCode']['match'](/Good/)?(_0x5e89fa['val'](_0x1a1be6['nodeAddressString']),_0x5e89fa[_0x1e497a(0x1e4)](_0x1e497a(0x1ad)),_0x59478f('Good','ok')):(_0x5e89fa['val'](''+_0xa6a33),_0x59478f(_0x1a1be6[_0x1e497a(0x174)]+'\x20'+_0x22769f['statusText'],'failure'));});function _0x466ed7(_0x53e459,_0x2dba8c){return _0x442e61(this,void 0x0,void 0x0,function*(){const _0x7b395a=_0x3e31,_0x4d0b4d=_0x53e459['data'](_0x7b395a(0x1b3)),_0x2fa549=yield _0x3aac91(_0x2dba8c,_0x4d0b4d,_0x1ca5ae),_0xbc488e=yield _0x3aac91(_0x2dba8c,_0x4d0b4d,_0x3783dd);return{'references':[..._0x2fa549[_0x7b395a(0x1cf)],..._0xbc488e['references']]};});}const _0x28c651={'referenceTypeId':_0x4bba9b(_0x380ed4(0x20e)),'includeSubtypes':!![],'browseDirection':_0x4f80dd[_0x380ed4(0x204)],'nodeClassMask':_0x85de33[_0x380ed4(0x1b7)]|_0x85de33[_0x380ed4(0x173)]|_0x85de33[_0x380ed4(0x1ab)]|_0x85de33['VariableType'],'resultMask':0x3f};function _0xc95734(_0x46fd56,_0x47b50a){return _0x442e61(this,void 0x0,void 0x0,function*(){const _0x2a7bab=_0x3e31,_0x6dfe73=_0x46fd56[_0x2a7bab(0x1a8)](_0x2a7bab(0x1b3)),_0x20eeb7=yield _0x3aac91(_0x47b50a,_0x6dfe73,_0x28c651);return _0x20eeb7;});}const _0x2a27b3=_0x51a9e8=>{const _0x219c08=_0x380ed4;var _0x4f1966,_0x1f5bc7,_0x1ef639,_0x123152;if(!_0x51a9e8||!_0x51a9e8['nodeId']){const _0x575958=$(_0x219c08(0x230));return _0x575958;}const _0x5b7895=_0x51a9e8['nodeId']['toString'](),_0x5083bf=((_0x4f1966=_0x51a9e8['displayName'])===null||_0x4f1966===void 0x0?void 0x0:_0x4f1966[_0x219c08(0x198)])||((_0x1f5bc7=_0x51a9e8['browseName'])===null||_0x1f5bc7===void 0x0?void 0x0:_0x1f5bc7[_0x219c08(0x19b)])||_0x51a9e8[_0x219c08(0x20d)][_0x219c08(0x253)](),{icon:_0x13d3d9,color:_0xefdd40}=_0x1eadea(_0x51a9e8),_0x275829='('+_0x51a9e8[_0x219c08(0x20d)][_0x219c08(0x253)]()+')\x20'+(((_0x1ef639=_0x51a9e8[_0x219c08(0x24e)])===null||_0x1ef639===void 0x0?void 0x0:_0x1ef639['name'])||((_0x123152=_0x51a9e8[_0x219c08(0x1f0)])===null||_0x123152===void 0x0?void 0x0:_0x123152['text'])||''),_0x5b09e1=$(_0x219c08(0x183)+_0x51a9e8[_0x219c08(0x20d)][_0x219c08(0x253)]()+_0x219c08(0x208)+_0x275829+_0x219c08(0x250)+_0x13d3d9+_0x219c08(0x251)+_0xefdd40+_0x219c08(0x190)+_0x5083bf+'</span><ul></ul></li>');return _0x5b09e1[_0x219c08(0x20a)](_0x219c08(0x1d2)),_0x5b09e1[_0x219c08(0x1a8)](_0x219c08(0x1b3),_0x5b7895),_0x5b09e1[_0x219c08(0x1a8)]('reference',_0x51a9e8),_0x5b09e1;},_0x4cf395=(_0xe39ec4,_0x291b69)=>{const _0x31e2aa=_0x380ed4;return _0x291b69[_0x31e2aa(0x247)]('li[key=\x22'+_0xe39ec4+'\x22]');},_0xcae62a=(_0x46d9d4,_0x5a04c6)=>{const _0x1ea784=_0x380ed4;_0x46d9d4['$tree'][_0x1ea784(0x247)]('li\x20>\x20.tree-text')[_0x1ea784(0x1cc)](_0x1ea784(0x1f9)),_0x5a04c6[_0x1ea784(0x247)]('.tree-text:first')[_0x1ea784(0x20a)](_0x1ea784(0x1f9));},_0x109af6=(_0x4da6cb,_0x28a9c8,_0xf509a9)=>_0x442e61(void 0x0,void 0x0,void 0x0,function*(){const _0x58f91e=_0x380ed4;let _0x169b1f=_0xf509a9[_0x58f91e(0x1d9)](_0x58f91e(0x1f1));_0x28a9c8[_0x58f91e(0x1f5)][_0x58f91e(0x1ed)]||[];const _0x118753=_0x28a9c8[_0x58f91e(0x1a0)]||[];if(_0x118753['length']===0x0)return;for(const _0x270578 of _0x118753){_0x169b1f[_0x58f91e(0x17f)](_0x58f91e(0x1d2))&&(yield _0x499293(_0x4da6cb,_0x169b1f));const _0x32007a=_0x4cf395(_0x270578,_0x169b1f);if(_0x32007a['length']===0x0)return;_0x169b1f=_0x32007a;}_0xcae62a(_0x4da6cb,_0x169b1f),_0x24b389(_0x4da6cb['$dropdown'],_0x169b1f);});function _0x24b389(_0x25f2c3,_0x5c4fa0){const _0x431e39=_0x380ed4,_0x18e3a5=_0x5c4fa0['position']()[_0x431e39(0x1af)],_0xb463f9=_0x25f2c3['scrollTop']();if(_0xb463f9==undefined)return;const _0x40e6b0=_0xb463f9+_0x18e3a5-_0x25f2c3[_0x431e39(0x1e7)]()/0x2+_0x5c4fa0[_0x431e39(0x1e7)]()/0x2;_0x25f2c3[_0x431e39(0x1bd)]({'scrollTop':_0x40e6b0},0x1f4);}const _0x50ac93=(_0x5497be,_0xeff098)=>_0x442e61(void 0x0,void 0x0,void 0x0,function*(){const _0x4778f1=_0x380ed4,_0x2e2bef=_0x5497be[_0x4778f1(0x229)][_0x4778f1(0x181)](),_0x45ab1c={'nodeId':_0x2e2bef,'rootNodeId':_0xeff098['nodeId'],'isType':_0x5497be['options']['isTypeRef']||![]},_0x2fc121=_0xf84c55(_0x5497be),_0x5376f9=yield _0x5bf810(_0x2fc121,_0x45ab1c);if(!_0x5376f9)return;yield _0x109af6(_0x5497be,_0x5376f9,_0x5497be['$tree']);});function _0x4b58f8(_0x37e821,_0x2b4de3,_0x135603,_0x28b949){return _0x442e61(this,void 0x0,void 0x0,function*(){const _0x30c9e7=_0x3e31;if(_0x2b4de3[_0x30c9e7(0x17f)](_0x30c9e7(0x197))){console[_0x30c9e7(0x19e)](_0x30c9e7(0x1e9));return;}if(_0x2b4de3[_0x30c9e7(0x17f)](_0x30c9e7(0x1c1))){console[_0x30c9e7(0x19e)](_0x30c9e7(0x244));return;}_0x2b4de3['addClass']('loading'),_0x2b4de3[_0x30c9e7(0x187)](_0x30c9e7(0x1a5));try{_0x2b4de3['children']('ul')[_0x30c9e7(0x17d)]();const {references:_0x431b41}=yield _0x135603(_0x2b4de3,_0x28b949);for(const _0x50c7a8 of _0x431b41){if(_0x37e821[_0x30c9e7(0x20c)]['filter']&&!_0x37e821[_0x30c9e7(0x20c)][_0x30c9e7(0x1cd)](_0x50c7a8))continue;const _0x301b09=_0x2a27b3(_0x50c7a8);_0x2b4de3[_0x30c9e7(0x1d9)]('ul')[_0x30c9e7(0x187)](_0x301b09);}_0x2b4de3[_0x30c9e7(0x20a)](_0x30c9e7(0x197));}catch(_0x38b89d){_0x2b4de3[_0x30c9e7(0x1d9)]('ul')[_0x30c9e7(0x187)](_0x30c9e7(0x17e)+_0x38b89d[_0x30c9e7(0x1dc)]+_0x30c9e7(0x18a)),console[_0x30c9e7(0x19e)](_0x30c9e7(0x206),_0x38b89d);}_0x2b4de3[_0x30c9e7(0x247)](_0x30c9e7(0x20f))[_0x30c9e7(0x1a4)](),_0x2b4de3[_0x30c9e7(0x1cc)](_0x30c9e7(0x1c1));});}function _0xf84c55(_0x3bf83d){const _0x3f05f9=_0x380ed4,_0x24bdb1={'baseUrl':_0x3bf83d['options'][_0x3f05f9(0x226)],'endpointNode':typeof _0x3bf83d['options']['endpointNode']==='function'?_0x3bf83d['options'][_0x3f05f9(0x1d4)]():_0x3bf83d[_0x3f05f9(0x20c)][_0x3f05f9(0x1d4)],'endpoint':typeof _0x3bf83d['options'][_0x3f05f9(0x242)]===_0x3f05f9(0x21f)?_0x3bf83d[_0x3f05f9(0x20c)]['endpoint']():_0x3bf83d[_0x3f05f9(0x20c)][_0x3f05f9(0x242)]};return _0x24bdb1;}function _0x499293(_0x45fe9d,_0x22d931){return _0x442e61(this,void 0x0,void 0x0,function*(){const _0xf80b6e=_0x3e31;if(_0x22d931[_0xf80b6e(0x17f)]('fetched')){_0x22d931[_0xf80b6e(0x1cc)](_0xf80b6e(0x1d2))['addClass']('expanded'),_0x22d931[_0xf80b6e(0x1d9)]('ul')[_0xf80b6e(0x170)]();return;}const _0x1794ef=_0xf84c55(_0x45fe9d),_0x26f3ea=!_0x45fe9d[_0xf80b6e(0x20c)]['isTypeRef']?_0x466ed7:_0xc95734;try{yield _0x4b58f8(_0x45fe9d,_0x22d931,_0x26f3ea,_0x1794ef),_0x22d931[_0xf80b6e(0x1cc)](_0xf80b6e(0x1d2))['addClass']('expanded');}catch(_0x23b35f){_0x22d931[_0xf80b6e(0x1cc)](_0xf80b6e(0x1d2))[_0xf80b6e(0x20a)](_0xf80b6e(0x23e)),console[_0xf80b6e(0x19e)](_0xf80b6e(0x221),_0x23b35f);}});}const _0x341cb6=()=>{const _0x4e4940=_0x380ed4;$[_0x4e4940(0x179)](_0x4e4940(0x234),{'options':{'endpointNode':()=>({'endpoint':_0x4e4940(0x23a)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':'Objects'},'nodeClass':'Object','nodeId':'ns=0;i=85','displayName':{'text':_0x4e4940(0x240)},'typeDefinition':_0x516c2e}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x442e61(this,void 0x0,void 0x0,function*(){const _0x1edd35=_0x3e31,_0x3ce1be=this;if(!_0x3ce1be['__parentNode']){const _0x556721=typeof _0x3ce1be[_0x1edd35(0x20c)][_0x1edd35(0x1da)]==='function'?_0x3ce1be[_0x1edd35(0x20c)][_0x1edd35(0x1da)][_0x1edd35(0x180)](_0x3ce1be):_0x3ce1be[_0x1edd35(0x20c)]['parentNode'];if(_0x556721 instanceof Promise){const _0x46e8e9=yield _0x556721;_0x3ce1be[_0x1edd35(0x1b0)]=_0x46e8e9;}else _0x3ce1be[_0x1edd35(0x1b0)]=_0x556721;}return _0x3ce1be[_0x1edd35(0x1b0)];});},'reset'(){return _0x442e61(this,void 0x0,void 0x0,function*(){const _0x29b284=_0x3e31,_0x342a11=this,_0x503070=_0x342a11;_0x503070[_0x29b284(0x1b0)]=undefined,_0x342a11[_0x29b284(0x211)][_0x29b284(0x17d)]();const _0x42c074=yield this[_0x29b284(0x199)](),_0x23312a=_0x2a27b3(_0x42c074);_0x342a11[_0x29b284(0x211)][_0x29b284(0x187)](_0x23312a),_0x342a11[_0x29b284(0x1bb)]=_0x42c074;});},'verify'(){const _0x3d4da1=_0x4e4940,_0x3ca7f6=this,_0x55d260=_0xf84c55(_0x3ca7f6);_0x4eeea8(_0x55d260,_0x3ca7f6[_0x3d4da1(0x229)],_0x3ca7f6[_0x3d4da1(0x248)]);},'_create'(){const _0x3fb98a=_0x4e4940,_0x1dade8=this;_0x1dade8[_0x3fb98a(0x229)]=this['element'],_0x1dade8['$combo']=$('<div/>'),_0x1dade8[_0x3fb98a(0x1b2)][_0x3fb98a(0x20a)](_0x3fb98a(0x1de)),this['element'][_0x3fb98a(0x213)](_0x1dade8['$combo']),_0x1dade8[_0x3fb98a(0x17c)]=$('<div/>')[_0x3fb98a(0x20a)](_0x3fb98a(0x1d6)),_0x1dade8[_0x3fb98a(0x1b2)][_0x3fb98a(0x187)](_0x1dade8['$inputGroup']),_0x1dade8['$inputGroup'][_0x3fb98a(0x187)](_0x1dade8[_0x3fb98a(0x229)]),_0x1dade8[_0x3fb98a(0x237)]=$(_0x3fb98a(0x1e8)),_0x1dade8[_0x3fb98a(0x17c)][_0x3fb98a(0x187)](_0x1dade8[_0x3fb98a(0x237)]),_0x1dade8[_0x3fb98a(0x237)]['on'](_0x3fb98a(0x19c),function(){return _0x442e61(this,void 0x0,void 0x0,function*(){const _0x35927f=_0x3e31;var _0x506e5e;let _0x299cf=![],_0x396537;!_0x1dade8[_0x35927f(0x245)]['is'](':visible')&&(_0x1dade8[_0x35927f(0x248)]['hide'](),_0x396537=yield _0x1dade8[_0x35927f(0x199)](),(_0x396537!==_0x1dade8[_0x35927f(0x1bb)]||((_0x506e5e=_0x1dade8[_0x35927f(0x1bb)])===null||_0x506e5e===void 0x0?void 0x0:_0x506e5e[_0x35927f(0x20d)])!==_0x396537['nodeId'])&&(yield _0x1dade8['reset']()),_0x299cf=!![]),_0x1dade8[_0x35927f(0x245)][_0x35927f(0x170)](),_0x299cf&&(yield _0x50ac93(_0x1dade8,_0x396537));});}),_0x1dade8[_0x3fb98a(0x219)]=$(_0x3fb98a(0x1f6)),_0x1dade8[_0x3fb98a(0x17c)][_0x3fb98a(0x187)](_0x1dade8[_0x3fb98a(0x219)]),_0x1dade8[_0x3fb98a(0x219)]['on']('click',()=>{const _0x2d3d8=_0x3fb98a;this[_0x2d3d8(0x233)]();});!_0x1dade8[_0x3fb98a(0x229)][_0x3fb98a(0x224)]('placeholder')&&_0x1dade8[_0x3fb98a(0x229)][_0x3fb98a(0x224)](_0x3fb98a(0x1ce),'enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20');_0x1dade8['$info']=$(_0x3fb98a(0x196)),_0x1dade8[_0x3fb98a(0x248)][_0x3fb98a(0x1db)](),_0x1dade8[_0x3fb98a(0x245)]=$(_0x3fb98a(0x252))[_0x3fb98a(0x20a)](_0x3fb98a(0x232))['hide'](),_0x1dade8[_0x3fb98a(0x1b2)][_0x3fb98a(0x187)](_0x1dade8[_0x3fb98a(0x248)]),_0x1dade8[_0x3fb98a(0x1b2)]['append'](_0x1dade8['$dropdown']),_0x1dade8[_0x3fb98a(0x211)]=$('<ul\x20class=\x22sterfive-tree\x22></ul>')['appendTo'](_0x1dade8['$dropdown']),this['reset']();const _0x1c8f02=(_0x335d83,_0x4047e5)=>{const _0x1df7dd=_0x3fb98a,_0x23af4e=0x14,_0x2c9404=0x14,_0x14f988=_0x335d83['offset'](),_0x823cc0=_0x4047e5;if(_0x823cc0[_0x1df7dd(0x205)]>=_0x14f988[_0x1df7dd(0x21a)]&&_0x823cc0['pageX']<=_0x14f988[_0x1df7dd(0x21a)]+_0x23af4e&&_0x823cc0[_0x1df7dd(0x24f)]>=_0x14f988[_0x1df7dd(0x1af)]&&_0x823cc0[_0x1df7dd(0x24f)]<=_0x14f988['top']+_0x2c9404)return!![];return![];},_0x3c23e6=_0x3bb8bb=>_0x442e61(this,void 0x0,void 0x0,function*(){const _0x344fce=_0x3fb98a;if(_0x3bb8bb[_0x344fce(0x17f)](_0x344fce(0x1d2)))_0x499293(_0x1dade8,_0x3bb8bb);else{if(_0x3bb8bb[_0x344fce(0x17f)]('expanded'))_0x3bb8bb[_0x344fce(0x1d9)]('ul')['toggle'](),_0x3bb8bb[_0x344fce(0x18e)](_0x344fce(0x1fa));else{if(_0x3bb8bb[_0x344fce(0x1d9)]('ul')[_0x344fce(0x1d9)]()[_0x344fce(0x215)]>0x0)_0x3bb8bb[_0x344fce(0x1d9)]('ul')[_0x344fce(0x170)](),_0x3bb8bb[_0x344fce(0x18e)](_0x344fce(0x1fa));else;}}});_0x1dade8[_0x3fb98a(0x211)]['on'](_0x3fb98a(0x18d),'li',function(_0x2b6a93){const _0x1db020=_0x3fb98a;var _0x31b685,_0x52c518;_0x2b6a93[_0x1db020(0x1a2)]();let _0x2f06dd=$(this);if(_0x1c8f02(_0x2f06dd,_0x2b6a93))_0x3c23e6(_0x2f06dd);else{const _0x10adf7=_0x2f06dd[_0x1db020(0x1a8)]('value'),_0x58d19c=_0x2f06dd['data'](_0x1db020(0x188));if(_0x1dade8[_0x1db020(0x20c)]['isSelectable']&&!_0x1dade8[_0x1db020(0x20c)][_0x1db020(0x1ea)](_0x58d19c))return;_0x1dade8[_0x1db020(0x229)][_0x1db020(0x1a8)]('reference',_0x58d19c);const _0x366c7e=((_0x31b685=_0x58d19c[_0x1db020(0x1f0)])===null||_0x31b685===void 0x0?void 0x0:_0x31b685[_0x1db020(0x198)])||((_0x52c518=_0x58d19c[_0x1db020(0x24e)])===null||_0x52c518===void 0x0?void 0x0:_0x52c518[_0x1db020(0x19b)])||_0x58d19c[_0x1db020(0x20d)][_0x1db020(0x253)](),_0x15b5b9='['+_0x366c7e+']('+_0x10adf7+')';_0x1dade8[_0x1db020(0x229)][_0x1db020(0x181)](_0x15b5b9),_0x1dade8['$input'][_0x1db020(0x1e4)]('change'),_0x1dade8[_0x1db020(0x245)][_0x1db020(0x1db)]();}}),_0x1dade8[_0x3fb98a(0x211)]['on']('click','li',function(_0x132893){const _0x5ba24a=_0x3fb98a;_0x132893[_0x5ba24a(0x1a2)]();let _0x548cc9=$(this);_0x1c8f02(_0x548cc9,_0x132893)&&_0x3c23e6(_0x548cc9),_0xcae62a(_0x1dade8,_0x548cc9);}),$(document)['on']('click',function(_0x5c6cde){const _0x4296bd=_0x3fb98a;!$(_0x5c6cde['target'])[_0x4296bd(0x23f)](_0x1dade8[_0x4296bd(0x1b2)])['length']&&_0x1dade8['$dropdown'][_0x4296bd(0x1db)]();});}});},_0x4aa279=()=>{const _0x5e7d79=_0x380ed4,_0x3f7863=$('#node-input-endpoint'),_0x4d5776=_0x3f7863['val'](),_0x1e1a2=RED[_0x5e7d79(0x1c3)][_0x5e7d79(0x246)](_0x4d5776);if(!_0x1e1a2)return undefined;const {endpoint:_0x1c60e2,securityMode:_0x56d177,securityPolicy:_0x2b55b5,userIdentityType:_0x224090,credentials:_0x4721d3}=_0x1e1a2,_0x317c6a={'endpoint':_0x1c60e2,'securityMode':_0x56d177,'securityPolicy':_0x2b55b5,'userIdentityType':_0x224090,'credentials':_0x4721d3};return _0x317c6a;},_0x3be7ee=()=>{return{'endpointNode':_0x22c96e};},_0x22c96e=()=>{const _0x23b086=_0x380ed4,_0x3c7f89=$(_0x23b086(0x185)),_0x4934b7=_0x3c7f89[_0x23b086(0x181)](),_0xb03c9d=_0x4aa279();if(!_0xb03c9d)return undefined;return{'id':_0x4934b7};};RED['nodes']['registerType'](_0x380ed4(0x17a),{'category':'opcua','color':_0x380ed4(0x172),'align':'right','icon':_0x380ed4(0x1b9),'paletteLabel':_0x380ed4(0x19d),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':'OpcUa-Endpoint2'},'historyReadParam':{'value':{'type':'raw','endTime':_0x380ed4(0x201),'startTime':_0x380ed4(0x217),'numValuesPerNode':0x64,'returnBounds':!![]},'required':!![],'validate':_0x291859=>{if(_0x291859==='')return![];return!![];}},'nodeId':{'value':'','required':![]},'outputType':{'value':_0x380ed4(0x21c),'required':!![]}},'outputs':0x2,'label'(){const _0x5590e2=_0x380ed4;return this[_0x5590e2(0x19b)]||_0x5590e2(0x1ef);},'labelStyle'(){const _0x11af67=_0x380ed4;return this[_0x11af67(0x19b)]?_0x11af67(0x1e5):'';},'oneditprepare'(){const _0x234c02=_0x380ed4,_0x38004b=this;_0x341cb6(),_0x38004b['inputs']=0x1;const _0xeccaef=$(_0x234c02(0x24b));_0xeccaef[_0x234c02(0x22d)](Object[_0x234c02(0x1c0)](Object[_0x234c02(0x1c0)]({},_0x3be7ee()),{'isSelectable'(_0x45a64c){const _0x578474=_0x234c02;return _0x45a64c['nodeClass']===_0x578474(0x1d1);}})),$(_0x234c02(0x235))['val'](_0x38004b[_0x234c02(0x1ac)][_0x234c02(0x17b)]);switch(_0x38004b[_0x234c02(0x1ac)][_0x234c02(0x17b)]){case _0x234c02(0x1f7):$(_0x234c02(0x1c6))['val'](_0x38004b[_0x234c02(0x1ac)][_0x234c02(0x207)]),$(_0x234c02(0x22e))['val'](_0x38004b[_0x234c02(0x1ac)][_0x234c02(0x23b)]),$('#node-input-raw-numValuesPerNode')[_0x234c02(0x181)](_0x38004b[_0x234c02(0x1ac)][_0x234c02(0x202)]),$(_0x234c02(0x1b5))[_0x234c02(0x1a7)](_0x234c02(0x223),_0x38004b[_0x234c02(0x1ac)][_0x234c02(0x1ae)]);break;case _0x234c02(0x1a6):$(_0x234c02(0x228))['val'](_0x38004b[_0x234c02(0x1ac)]['startTime']),$(_0x234c02(0x171))[_0x234c02(0x181)](_0x38004b[_0x234c02(0x1ac)][_0x234c02(0x23b)]),$(_0x234c02(0x23d))[_0x234c02(0x181)](_0x38004b[_0x234c02(0x1ac)][_0x234c02(0x202)]),$(_0x234c02(0x1c5))[_0x234c02(0x1a7)](_0x234c02(0x223),_0x38004b[_0x234c02(0x1ac)]['returnBounds']);break;case _0x234c02(0x1ff):_0x38004b[_0x234c02(0x1ac)]['aggregateConfiguration']=_0x38004b[_0x234c02(0x1ac)][_0x234c02(0x22a)]||{},$(_0x234c02(0x1bf))[_0x234c02(0x181)](_0x38004b[_0x234c02(0x1ac)][_0x234c02(0x207)]),$('#node-input-processed-details-endTime')[_0x234c02(0x181)](_0x38004b[_0x234c02(0x1ac)][_0x234c02(0x23b)]),$(_0x234c02(0x1df))['val'](_0x38004b[_0x234c02(0x1ac)][_0x234c02(0x1d0)]),$(_0x234c02(0x203))[_0x234c02(0x181)](_0x38004b['historyReadParam'][_0x234c02(0x1c4)]),$(_0x234c02(0x243))[_0x234c02(0x1a7)]('checked',_0x38004b['historyReadParam'][_0x234c02(0x22a)][_0x234c02(0x1fc)]),$(_0x234c02(0x1d8))['prop']('checked',_0x38004b['historyReadParam'][_0x234c02(0x22a)][_0x234c02(0x210)]),$(_0x234c02(0x1cb))[_0x234c02(0x181)](_0x38004b[_0x234c02(0x1ac)]['aggregateConfiguration'][_0x234c02(0x21e)]),$(_0x234c02(0x214))[_0x234c02(0x181)](_0x38004b[_0x234c02(0x1ac)][_0x234c02(0x22a)][_0x234c02(0x1b6)]),$('#node-input-processed-details-aggregateConfiguration-useSlopedExtrapolation')['prop'](_0x234c02(0x223),_0x38004b['historyReadParam'][_0x234c02(0x22a)][_0x234c02(0x192)]);break;}{function _0x3be219(){const _0x4bbb62=_0x234c02;$(_0x4bbb62(0x23c))[_0x4bbb62(0x1db)](),$(_0x4bbb62(0x1f8))[_0x4bbb62(0x1db)](),$(_0x4bbb62(0x1d3))[_0x4bbb62(0x1db)](),$(_0x4bbb62(0x1ca))['hide'](),$(_0x4bbb62(0x18f))['hide'](),$(_0x4bbb62(0x18c))[_0x4bbb62(0x1db)]();}function _0x55f358(){const _0xe388f1=_0x234c02;_0x3be219();var _0x2a8498=$(_0xe388f1(0x235))[_0xe388f1(0x181)]();$(_0xe388f1(0x241)+_0x2a8498)['show']();}$(_0x234c02(0x235))['on']('change',_0x55f358),_0x55f358();}},'oneditsave'(){const _0x5e8f01=_0x380ed4,_0x4eae73=_0x1c8346=>_0x1c8346[_0x5e8f01(0x181)]()==undefined?'':_0x1c8346['val']()[_0x5e8f01(0x253)](),_0x432f20=_0x19d61f=>_0x19d61f[_0x5e8f01(0x181)]()==undefined?0x0:_0x19d61f[_0x5e8f01(0x181)](),_0x3fd88b=$(_0x5e8f01(0x235))[_0x5e8f01(0x181)]();switch(_0x3fd88b){case _0x5e8f01(0x1f7):this[_0x5e8f01(0x1ac)]={'type':_0x5e8f01(0x1f7),'startTime':_0x4eae73($('#node-input-raw-startTime')),'endTime':_0x4eae73($(_0x5e8f01(0x22e))),'numValuesPerNode':_0x432f20($(_0x5e8f01(0x212))),'returnBounds':$('#node-input-returnBounds')[_0x5e8f01(0x1a7)](_0x5e8f01(0x223))};break;case _0x5e8f01(0x1a6):this[_0x5e8f01(0x1ac)]={'type':_0x5e8f01(0x1a6),'startTime':_0x4eae73($(_0x5e8f01(0x228))),'endTime':_0x4eae73($(_0x5e8f01(0x171))),'numValuesPerNode':_0x432f20($(_0x5e8f01(0x23d))),'returnBounds':$(_0x5e8f01(0x1c5))['prop'](_0x5e8f01(0x223))};break;case'processed-details':this[_0x5e8f01(0x1ac)]={'type':'processed-details','startTime':_0x4eae73($(_0x5e8f01(0x1bf))),'endTime':_0x4eae73($(_0x5e8f01(0x209))),'processingInterval':_0x432f20($('#node-input-processed-details-processingInterval')),'aggregateType':_0x4eae73($(_0x5e8f01(0x203))),'aggregateConfiguration':{'useServerCapabilitiesDefaults':$(_0x5e8f01(0x243))['prop']('checked'),'treatUncertainAsBad':$(_0x5e8f01(0x1d8))['prop'](_0x5e8f01(0x223)),'percentDataBad':_0x432f20($(_0x5e8f01(0x1cb))),'percentDataGood':_0x432f20($(_0x5e8f01(0x214))),'useSlopedExtrapolation':$(_0x5e8f01(0x19a))[_0x5e8f01(0x1a7)]('checked')}};break;}}});}()));function _0x5594(){const _0xbd37ec=['<li>error\x20','hasClass','call','val','!!failure!!','<li\x20key=\x22','i=61','#node-input-endpoint','Method','append','reference','browsePath','</li>','next','#section-event','dblclick','toggleClass','#section-annotation-data',';\x22></i>\x20','fa-text-width','useSlopedExtrapolation','ns=0;i=61','throw','Object','<div\x20class=\x22info-text\x22></div>','fetched','text','resolveParentNode','#node-input-processed-details-aggregateConfiguration-useSlopedExtrapolation','name','click','read-history','log','ns=0;i=34','nodeIds','1308559FDtVfz','stopPropagation','Invalid','remove','<div\x20class=\x22spinner\x22></div>','modified','prop','data','11622735AEmpzF','failure','DataType','historyReadParam','change','returnBounds','top','__parentNode','DodgerBlue','$combo','value','1297384MnQCbi','#node-input-returnBounds','percentDataGood','ReferenceType','SteelBlue','../../icons/opcuanodeLogo.png','fa-object-group','currentParent','Both','animate','13011FhAymT','#node-input-processed-details-startTime','assign','loading','CadetBlue','nodes','aggregateType','#node-input-modified-returnBounds','#node-input-raw-startTime','/opcua-for-node-red','browseResult','SandyBrown','#section-at-time','#node-input-processed-details-aggregateConfiguration-percentDataBad','removeClass','filter','placeholder','references','processingInterval','Variable','expandable','#section-processed-details','endpointNode','POST','input-group','VariableType','#node-input-processed-details-aggregateConfiguration-treatUncertainAsBad','children','parentNode','hide','message','/checkNodeId','sterfive-combo-box','#node-input-processed-details-processingInterval','/walk-backward','60foObog','DisplayName','/browse','trigger','node_label_italic','6545245zRkPwr','height','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','already\x20fetched','isSelectable','fetching\x20failed\x20with\x20error','DarkOrange','elements','then','OPCUA\x20Client\x20HistoryRead','displayName',':first','SeaGreen','View','Organizes','relativePath','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','raw','#section-modified','selected','expandable\x20expanded','32uWWOuN','useServerCapabilitiesDefaults','status','show','processed-details','HasTypeDefinition','1m\x20ago','numValuesPerNode','#node-input-processed-details-aggregateType','Forward','pageX','err','startTime','\x22}><span\x20class=\x22tree-text\x22\x20title=','#node-input-processed-details-endTime','addClass','ns=0;i=40','options','nodeId','HasSubtype','.spinner','treatUncertainAsBad','$tree','#node-input-raw-numValuesPerNode','replaceWith','#node-input-processed-details-aggregateConfiguration-percentDataGood','length','fa-folder','11m\x20ago','referenceTypeId','$verifyBtn','left','stringify','Value','BrowseName','percentDataBad','function','application/json','error','json','checked','attr','ns=0;i=47','baseUrl','NodeClass','#node-input-modified-startTime','$input','aggregateConfiguration','Unspecified','TypeDefinition','nodeBrowser','#node-input-raw-endTime','IsForward','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','205134ecdUjl','sterfive-dropdown','verify','sterfive.nodeBrowser','#select-history-type','fa-list-alt','$toggleTreeBtn','ns=0;i=46','Inverse','opc.tcp://opcuademo.sterfive.com:26543','endTime','#section-raw','#node-input-modified-numValuesPerNode','expanded','closest','Objects','#section-','endpoint','#node-input-processed-details-aggregateConfiguration-useServerCapabilitiesDefaults','already\x20loading','$dropdown','node','find','$info','nodeClass','rgba(61,\x2060,\x204,\x200.525)','#node-input-nodeId','fa-sliders','fa-cog','browseName','pageY','><i\x20class=\x22fa\x20','\x22\x20style=\x22color:','<div/>','toString','toggle','#node-input-modified-endTime','#C0DEED','ObjectType','statusCode','sterfive-info','8592012NldXtw','apply','SuppressedError','widget','OpcUa-Client2-HistoryRead','type','$inputGroup','empty'];_0x5594=function(){return _0xbd37ec;};return _0x5594();}
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg0NDJlNjEiLCJfMHg1NmRjZjciLCJfMHgxNWI5NmIiLCJfMHgzMDY4ZTEiLCJfMHgzMmEzYTIiLCJfMHgxNWMzNTYiLCJfMHgzYzAzOTIiLCJfMHgxMGVjNzkiLCJQcm9taXNlIiwiXzB4MmVlNGFiIiwiXzB4Mzg3YjViIiwiXzB4MzYyMTMwIiwiXzB4MWY1ZTExIiwiXzB4NGZiYTMwIiwiXzB4NTRhODQ0IiwiXzB4MTI0ZjliIiwiXzB4NTZhYzQ3IiwiXzB4Mjc2ZTU0IiwiXzB4MjEzNWMxIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4NTgzNzE2IiwiXzB4ZjZlMTM4IiwiXzB4MmQ3MTRiIiwiXzB4MmNmZDJlIiwiRXJyb3IiLCJfMHgzZmEwMjMiLCJfMHg1MTZjMmUiLCJfMHg3MzMxOTEiLCJfMHgzOGY4OTQiLCJfMHg1ZWVkZmYiLCJfMHg0ZDQzYzIiLCJfMHhkMGM1OWIiLCJfMHg0ZjgwZGQiLCJfMHhkMzJkYzkiLCJfMHg4NWRlMzMiLCJfMHg0MmM1MWIiLCJfMHhjNDJiZmIiLCJfMHgxNGU4MmUiLCJfMHgzMTdmYTUiLCJfMHg1NDBiN2UiLCJfMHg0YmJhOWIiLCJfMHg0NGVmYjQiLCJfMHgxZWFkZWEiLCJfMHgyYTFhZjYiLCJfMHgzYWFjOTEiLCJfMHgyMjVkZWUiLCJfMHgzMzIyZGIiLCJfMHgzOWI2YjEiLCJlbmRwb2ludE5vZGUiLCJfMHg0MmJiYjMiLCJlbmRwb2ludCIsIl8weDFhZTJkOCIsImJhc2VVcmwiLCJfMHgyNGQ3OTAiLCJfMHg1NGFlMTMiLCJfMHgxZmY3ZDQiLCJfMHg1YzJlODQiLCJfMHg4MGYzOTYiLCJfMHg0MDVjM2MiLCJPYmplY3QiLCJfMHgxYTNmNjYiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4M2ExZTAzIiwiXzB4NGJjYWU0IiwiXzB4MWNhNWFlIiwiXzB4Mzc4M2RkIiwiXzB4NWJmODEwIiwiXzB4NDlmYjZjIiwiXzB4M2NlZjc4IiwiXzB4NTg5MTFjIiwiXzB4N2VhNzEiLCJfMHg0YmQ5ZWMiLCJub2RlSWQiLCJfMHgzZmZjYjMiLCJyb290Tm9kZUlkIiwiXzB4NWIwYzVmIiwiaXNUeXBlIiwiXzB4MjM5OTkxIiwiXzB4MzhmNzA2IiwiXzB4YjdjMGRmIiwiXzB4MWQ2NjhlIiwiXzB4NDk2NGFhIiwiXzB4NGVlZWE4IiwiXzB4NDY2ZDMyIiwiXzB4NWUzZWNkIiwiXzB4MTY5ZTcxIiwiXzB4ZTE2NDAyIiwiXzB4MmYwODZkIiwiXzB4MjczZWRiIiwiXzB4NWU4OWZhIiwiXzB4MzU0ZTQzIiwiXzB4NDE2N2E4IiwiXzB4MzIxZTA1IiwiXzB4YTZhMzMiLCJfMHgyMjc2OWYiLCJfMHg1OTQ3OGYiLCJfMHgxYmMyZDMiLCJfMHgxM2FmMmUiLCJzZXRUaW1lb3V0IiwiXzB4MWExYmU2IiwiXzB4NDY2ZWQ3IiwiXzB4NTNlNDU5IiwiXzB4MmRiYThjIiwiXzB4NGQwYjRkIiwiXzB4MmZhNTQ5IiwiXzB4YmM0ODhlIiwiXzB4MjhjNjUxIiwiXzB4Yzk1NzM0IiwiXzB4NDZmZDU2IiwiXzB4NDdiNTBhIiwiXzB4NmRmZTczIiwiXzB4MjBlZWI3IiwiXzB4MmEyN2IzIiwiXzB4NTFhOWU4IiwiXzB4NGYxOTY2IiwiXzB4MWY1YmM3IiwiXzB4MWVmNjM5IiwiXzB4MTIzMTUyIiwiXzB4NTc1OTU4IiwiJCIsIl8weDViNzg5NSIsIl8weDUwODNiZiIsImljb24iLCJfMHgxM2QzZDkiLCJjb2xvciIsIl8weGVmZGQ0MCIsIl8weDI3NTgyOSIsIl8weDViMDllMSIsIl8weDRjZjM5NSIsIl8weGUzOWVjNCIsIl8weDI5MWI2OSIsIl8weGNhZTYyYSIsIl8weDQ2ZDlkNCIsIl8weDVhMDRjNiIsIl8weDEwOWFmNiIsIl8weDRkYTZjYiIsIl8weDI4YTljOCIsIl8weGY1MDlhOSIsIl8weDE2OWIxZiIsIl8weDExODc1MyIsIl8weDI3MDU3OCIsIl8weDQ5OTI5MyIsIl8weDMyMDA3YSIsIl8weDI0YjM4OSIsIl8weDI1ZjJjMyIsIl8weDVjNGZhMCIsIl8weDE4ZTNhNSIsIl8weGI0NjNmOSIsInVuZGVmaW5lZCIsIl8weDQwZTZiMCIsIl8weDUwYWM5MyIsIl8weDU0OTdiZSIsIl8weGVmZjA5OCIsIl8weDJlMmJlZiIsIl8weDQ1YWIxYyIsIl8weDJmYzEyMSIsIl8weGY4NGM1NSIsIl8weDUzNzZmOSIsIl8weDRiNThmOCIsIl8weDM3ZTgyMSIsIl8weDJiNGRlMyIsIl8weDEzNTYwMyIsIl8weDI4Yjk0OSIsInJlZmVyZW5jZXMiLCJfMHg0MzFiNDEiLCJfMHg1MGM3YTgiLCJfMHgzMDFiMDkiLCJfMHgzOGI4OWQiLCJfMHgzYmY4M2QiLCJfMHgyNGJkYjEiLCJfMHg0NWZlOWQiLCJfMHgyMmQ5MzEiLCJfMHgxNzk0ZWYiLCJfMHgyNmYzZWEiLCJfMHgyM2IzNWYiLCJfMHgzNDFjYjYiLCJfMHgzY2UxYmUiLCJfMHg1NTY3MjEiLCJfMHg0NmU4ZTkiLCJfMHgzNDJhMTEiLCJfMHg1MDMwNzAiLCJfMHg0MmMwNzQiLCJfMHgyMzMxMmEiLCJfMHgzY2E3ZjYiLCJfMHg1NWQyNjAiLCJfMHgxZGFkZTgiLCJfMHg1MDZlNWUiLCJfMHgyOTljZiIsIl8weDM5NjUzNyIsIl8weDFjOGYwMiIsIl8weDMzNWQ4MyIsIl8weDQwNDdlNSIsIl8weDIzYWY0ZSIsIl8weDJjOTQwNCIsIl8weDE0Zjk4OCIsIl8weDgyM2NjMCIsIl8weDNjMjNlNiIsIl8weDNiYjhiYiIsIl8weDJiNmE5MyIsIl8weDMxYjY4NSIsIl8weDUyYzUxOCIsIl8weDJmMDZkZCIsIl8weDEwYWRmNyIsIl8weDU4ZDE5YyIsIl8weDM2NmM3ZSIsIl8weDE1YjViOSIsIl8weDEzMjg5MyIsIl8weDU0OGNjOSIsImRvY3VtZW50IiwiXzB4NWM2Y2RlIiwiXzB4NGFhMjc5IiwiXzB4M2Y3ODYzIiwiXzB4NGQ1Nzc2IiwiXzB4MWUxYTIiLCJSRUQiLCJfMHgxYzYwZTIiLCJzZWN1cml0eU1vZGUiLCJfMHg1NmQxNzciLCJzZWN1cml0eVBvbGljeSIsIl8weDJiNTViNSIsInVzZXJJZGVudGl0eVR5cGUiLCJfMHgyMjQwOTAiLCJjcmVkZW50aWFscyIsIl8weDQ3MjFkMyIsIl8weDMxN2M2YSIsIl8weDNiZTdlZSIsIl8weDIyYzk2ZSIsIl8weDNjN2Y4OSIsIl8weDQ5MzRiNyIsIl8weGIwM2M5ZCIsIl8weDI5MTg1OSIsIl8weDM4MDA0YiIsIl8weGVjY2FlZiIsIl8weDQ1YTY0YyIsIl8weDNiZTIxOSIsIl8weDU1ZjM1OCIsIl8weDJhODQ5OCIsIl8weDRlYWU3MyIsIl8weDFjODM0NiIsIl8weDQzMmYyMCIsIl8weDE5ZDYxZiIsIl8weDNmZDg4YiJdLCJtYXBwaW5ncyI6Im13QkFBQSxDQUFDLFUsQ0FDRyxhLHdCQW1CQSxTQUFTQSxTQUFULENBQW1CQyxTQUFuQixDQUE0QkMsU0FBNUIsQ0FBd0NDLFNBQXhDLENBQTJDQyxTQUEzQyxDLENBQ0ksU0FBU0MsU0FBVCxDQUFlQyxTQUFmLEMsUUFBK0JBLFNBQUEsWUFBaUJILFNBQWpCLENBQXFCRyxTQUFyQixDQUE2QixJQUFJSCxTQUFKLENBQU0sU0FBVUksU0FBVixDLENBQXFCQSxTQUFBLENBQVFELFNBQVIsQyxFQUEzQixDLFNBQ3JELEdBQUssQ0FBQUgsU0FBQSxFQUFNLENBQUFBLFNBQUEsQ0FBSUssT0FBSixDQUFOLENBQUwsQ0FBeUIsU0FBVUMsU0FBVixDQUFtQkMsU0FBbkIsQyx5QkFDNUIsU0FBU0MsU0FBVCxDQUFtQkMsU0FBbkIsQyxDQUE0QixHLENBQU1DLFNBQUEsQ0FBS1QsU0FBQSxDLE1BQUEsRUFBZVEsU0FBZixDQUFMLEMsRUFBK0IsTUFBT0UsU0FBUCxDLENBQVlKLFNBQUEsQ0FBT0ksU0FBUCxDLEdBQzdFLFNBQVNDLFNBQVQsQ0FBa0JDLFNBQWxCLEMseUJBQTJCLEcsQ0FBTUgsU0FBQSxDQUFLVCxTQUFBLEMsZ0JBQUEsRUFBbUJZLFNBQW5CLENBQUwsQyxFQUFtQyxNQUFPQyxTQUFQLEMsQ0FBWVAsU0FBQSxDQUFPTyxTQUFQLEMsR0FDaEYsU0FBU0osU0FBVCxDQUFjSyxTQUFkLEMseUJBQXdCQSxTQUFBLEMsTUFBQSxFQUFjVCxTQUFBLENBQVFTLFNBQUEsQyxnQkFBQSxDQUFSLENBQWQsQ0FBc0NiLFNBQUEsQ0FBTWEsU0FBQSxDLGdCQUFBLENBQU4sRSxnQkFBQSxFQUF5QlAsU0FBekIsQ0FBb0NJLFNBQXBDLEMsRUFDOURGLFNBQUEsQ0FBTSxDQUFBVCxTQUFBLENBQVlBLFNBQUEsQyxnQkFBQSxFQUFnQkgsU0FBaEIsQ0FBeUJDLFNBQUEsRUFBYyxFQUF2QyxDQUFaLENBQUQsQyxnQkFBQSxHQUFMLEMsRUFKRyxDLEVBUVgsT0FBT2lCLGVBQVAsRyxVQUFBLENBQXdDQSxlQUF4QyxDQUEwRCxTQUFVQyxTQUFWLENBQWlCQyxTQUFqQixDQUE2QkMsU0FBN0IsQyx5QkFDdEQsSUFBSUMsU0FBQSxDQUFJLElBQUlDLEtBQUosQ0FBVUYsU0FBVixDQUFSLEMsT0FDT0MsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBNEJBLFNBQUEsQyxnQkFBQSxFQUFVSCxTQUF0QyxDQUE2Q0csU0FBQSxDLFlBQUEsRUFBZUYsU0FBNUQsQ0FBd0VFLFMsRUFGbkYsQ0FLQSxNQUFNRSxTQUFBLEMsV0FBTixDQUNNQyxTQUFBLEMsZ0JBRE4sQ0FFTUMsU0FBQSxDLGdCQUZOLENBR01DLFNBQUEsQyxnQkFITixDQUlNQyxTQUFBLEMsZ0JBSk4sQ0FLTUMsU0FBQSxDLFdBTE4sQ0FNTUMsU0FBQSxDLGdCQU5OLENBUUEsSUFBSUMsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQWdCQSxTQUFBLEMsU0FBQSxFLEdBQWhCLEUsaUJBQ0FBLFNBQUEsQ0FBZ0JBLFNBQUEsQyxnQkFBQSxFLEdBQWhCLEUsVUFDQUEsU0FBQSxDQUFnQkEsU0FBQSxDLGdCQUFBLEUsR0FBaEIsRSxpQkFDQUEsU0FBQSxDQUFnQkEsU0FBQSxDLGdCQUFBLEUsR0FBaEIsRSxrQkFKSixDQUtHRCxTQUFBLEVBQW9CLENBQUFBLFNBQUEsQ0FBa0IsRUFBbEIsQ0FMdkIsR0FNQSxJQUFJRSxTQUFKLENBQ0EsQ0FBQyxTQUFVQyxTQUFWLEMsMkJBQ0dBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsR0FBVixFLGNBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLFFBQUEsRSxHQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLFVBQUEsRSxHQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsR0FBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLEdBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxJQUFWLEUsZUFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZUFBQSxFLElBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxJQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsSUFBVixFLFFBVEosQ0FVR0QsU0FBQSxFQUFjLENBQUFBLFNBQUEsQ0FBWSxFQUFaLENBVmpCLEdBV0EsSUFBSUUsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQWNBLFNBQUEsQyxRQUFBLEUsR0FBZCxFLGlCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLEdBQWQsRSxXQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxRQUFBLEUsR0FBZCxFLGlCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLEdBQWQsRSxhQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLElBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZUFBQSxFLElBQWQsRSxnQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxJQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLE1BQUEsRSxJQUFkLEUsa0JBUkosQ0FTR0QsU0FBQSxFQUFrQixDQUFBQSxTQUFBLENBQWdCLEVBQWhCLENBVHJCLEdBVUEsSUFBSUUsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQVdBLFNBQUEsQyxnQkFBQSxFLEdBQVgsRSxpQkFDQUEsU0FBQSxDQUFXQSxTQUFBLEMsZ0JBQUEsRSxHQUFYLEUsaUJBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGdCQUFBLEUsR0FBWCxFLFlBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGdCQUFBLEUsR0FBWCxFLGlCQUNBQSxTQUFBLENBQVdBLFNBQUEsQyxnQkFBQSxFLElBQVgsRSxpQkFDQUEsU0FBQSxDQUFXQSxTQUFBLEMsZ0JBQUEsRSxJQUFYLEUsa0JBTkosQ0FPR0QsU0FBQSxFQUFlLENBQUFBLFNBQUEsQ0FBYSxFQUFiLENBUGxCLEdBU0EsU0FBU0UsU0FBVCxDQUF1QkMsU0FBdkIsQywyQkFDSSxPQUFRQSxTQUFSLEVBQ0ksSyxnQkFBQSxDQUNJLE9BQU9oQixTQUFQLENBQ0osSSxhQUFBLENBQ0ksT0FBT0csU0FBUCxDQUNKLEksY0FBQSxDQUNJLE9BQU9ELFNBQVAsQ0FDSixJLFVBQUEsQ0FDSSxPQUFPRSxTQUFQLENBQ0osSSxZQUFBLENBQ0ksT0FBT0MsU0FBUCxDQUNKLEssZ0JBQUEsQ0FDSSxPQUFPQyxTQUFQLENBWlIsQyxDQWdCSixNQUFNVyxTQUFBLENBQVdDLFNBQUQsRSwyQkFDWixPQUFRQSxTQUFBLEMsZ0JBQUEsQ0FBUixFQUNJLEksUUFBQSxDLEdBQ1FBLFNBQUEsQyxnQkFBQSxJQUE4QmxCLFMsS0FDOUJrQixTQUFBLEMsZ0JBQUEsSUFBNkJqQixTQUE3QixFQUEyQ2lCLFNBQUEsQyxnQkFBQSxJLHVCQUNwQyxDLE1BQUUsQyxnQkFBRixDLE9BQXFCLEMsZ0JBQXJCLEMsQ0FFWCxNQUFPLEMsTUFBRSxDLGdCQUFGLEMsT0FBMkIsQyxnQkFBM0IsQ0FBUCxDQUNKLEssZ0JBQUEsQyxHQUNRQSxTQUFBLEMsZ0JBQUEsSUFBOEJoQixTLE9BQ3ZCLEMsTUFBRSxDLGdCQUFGLEMsT0FBdUIsQyxnQkFBdkIsQyxhQUVGZ0IsU0FBQSxDLGdCQUFBLElBQThCZixTLENBQzVCLEMsTUFBRSxDLGdCQUFGLEMsT0FBdUIsQyxnQkFBdkIsQyxDQUdBLEMsTUFBRSxDLGdCQUFGLEMsT0FBdUIsQyxnQkFBdkIsQyxDQUVmLEssZ0JBQUEsQ0FDSSxNQUFPLEMsTUFBRSxDLGdCQUFGLEMsT0FBa0IsQyxnQkFBbEIsQ0FBUCxDQUNKLEksWUFBQSxDQUNJLE1BQU8sQyxNQUFFLEMsZ0JBQUYsQyxPQUEyQixDLGdCQUEzQixDQUFQLENBQ0osSSxjQUFBLENBQ0ksTUFBTyxDLE1BQUUsQyxnQkFBRixDLE9BQXNCLEMsWUFBdEIsQ0FBUCxDQUNKLEssZ0JBQUEsQ0FDSSxNQUFPLEMsTUFBRSxDLGdCQUFGLEMsT0FBeUIsQyxnQkFBekIsQ0FBUCxDQXhCUixDLE1BMEJPLEMsTUFBRSxDLGFBQUYsQyxPQUF1QixDLE1BQXZCLEMsRUEzQlgsQ0E4Qk1nQixTQUFBLENBQVMsQ0FBQ0MsU0FBRCxDQUFLQyxTQUFMLENBQWVDLFNBQWYsR0FBOEIvQyxTQUFBLENBQVUsSyxHQUFWLENBQWtCLENBQUM2QyxTQUFELENBQUtDLFNBQUwsQ0FBZUMsU0FBZixDQUFsQixDQUE4QyxLLEdBQTlDLENBQXNELFVBQVcsQ0FBRUMsWUFBQSxDQUFBQyxTQUFGLENBQWdCQyxRQUFBLENBQUFDLFNBQWhCLENBQTBCQyxPQUFBLENBQUFDLFNBQTFCLENBQVgsQ0FBZ0RDLFNBQWhELENBQXdEQyxTQUF4RCxDLDJCQUN6RkMsU0FBQSxDQUFVSCxTLGtCQUNWSSxTQUFBLENBQVNELFMsa0JBQ1RFLFNBQUEsQ0FBb0JDLE1BQUEsQyxnQkFBQSxFQUFjQSxNQUFBLEMsZ0JBQUEsRUFBYyxFQUFkLENBQWtCSixTQUFsQixDQUFkLENBQTJDLEMsUUFBRSxDQUFBRCxTQUFGLEMsWUFBVSxDLElBQVYsQ0FBM0MsQyxDQUNwQk0sU0FBQSxDQUFPLE1BQU1DLEtBQUEsQ0FBTUosU0FBTixDQUFXLEMsUUFDMUIsQyxnQkFEMEIsQyxNQUUxQixDQUFNSyxJQUFBLEMsZ0JBQUEsRUFBZSxDLGNBQ2pCLENBQUFiLFNBRGlCLEMsVUFFakIsQ0FBQUUsU0FGaUIsQyxtQkFHakIsQ0FBQU8sU0FIaUIsQ0FBZixDQUZvQixDLFNBTzFCLENBQVMsQyxjQUFFLEMsZ0JBQUYsQ0FQaUIsQ0FBWCxDLElBU2ZFLFNBQUEsQyxnQkFBQSxJLFlBQ0FHLE9BQUEsQyxLQUFBLEUsZ0JBQUEsQ0FBMENILFNBQUEsQyxnQkFBQSxDQUExQyxDQUF1REEsU0FBQSxDLFlBQUEsQ0FBdkQsQyxDQUNPLEMsWUFBRSxDQUFZLEVBQWQsQyxDQUdYLE1BQU1JLFNBQUEsQ0FBVyxNQUFNSixTQUFBLEMsZ0JBQUEsR0FBdkIsQ0FDTUssU0FBQSxDQUFhRCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHQUFvQyxFQUR2RCxDLE1BRU8sQyxZQUFFLENBQUFDLFNBQUYsQyxFQXBCa0MsQ0E5QjdDLENBcURNQyxTQUFBLENBQVksQyxpQkFDZCxDQUFpQjFCLFNBQUEsQyxVQUFBLENBREgsQyxpQkFFZCxDLElBRmMsQyxpQkFHZCxDQUFpQlIsU0FBQSxDLGdCQUFBLENBSEgsQyxlQUlkLENBQWVFLFNBQUEsQyxnQkFBQSxFQUFxQkEsU0FBQSxDLGdCQUFBLENBQXJCLENBQXdDQSxTQUFBLEMsZ0JBQUEsQ0FKekMsQyxZQVVkLEMsSUFWYyxDQXJEbEIsQ0FpRU1pQyxTQUFBLENBQVksQyxpQkFDZCxDQUFpQjNCLFNBQUEsQyxnQkFBQSxDQURILEMsaUJBRWQsQyxJQUZjLEMsaUJBR2QsQ0FBaUJSLFNBQUEsQyxnQkFBQSxDQUhILEMsZUFJZCxDQUFlRSxTQUFBLEMsZ0JBQUEsRUFBcUJBLFNBQUEsQyxnQkFBQSxDQUFyQixDQUF3Q0EsU0FBQSxDLGdCQUFBLENBSnpDLEMsWUFVZCxDLElBVmMsQ0FqRWxCLENBNkVNa0MsU0FBQSxDQUFlLENBQUNDLFNBQUQsQ0FBS0MsU0FBTCxHQUFZdEUsU0FBQSxDQUFVLEssR0FBVixDQUFrQixDQUFDcUUsU0FBRCxDQUFLQyxTQUFMLENBQWxCLENBQTRCLEssR0FBNUIsQ0FBb0MsVUFBVyxDQUFFdEIsWUFBQSxDQUFBdUIsU0FBRixDQUFnQnJCLFFBQUEsQ0FBQXNCLFFBQWhCLENBQTBCcEIsT0FBQSxDQUFBcUIsU0FBMUIsQ0FBWCxDQUFnRCxDQUFFQyxNQUFBLENBQUFDLFNBQUYsQ0FBVUMsVUFBQSxDQUFBQyxTQUFWLENBQXNCQyxNQUFBLENBQUFDLFNBQXRCLENBQWhELEMsMkJBQzNEQyxTQUFBLENBQVVQLFMsa0JBQ1ZRLFNBQUEsQ0FBU0QsUyxrQkFDVEUsU0FBQSxDQUFPLE1BQU1yQixLQUFBLENBQU1vQixTQUFOLENBQVcsQyxRQUMxQixDLGdCQUQwQixDLE1BRTFCLENBQU1uQixJQUFBLEMsZ0JBQUEsRUFBZSxDLGNBQ2pCLENBQUFTLFNBRGlCLEMsVUFFakIsQ0FBQUMsUUFGaUIsQyxRQUdqQixDQUFBRyxTQUhpQixDLFlBSWpCLENBQUFFLFNBSmlCLEMsUUFLakIsQ0FBQUUsU0FMaUIsQ0FBZixDQUZvQixDLFNBUzFCLENBQVMsQyxjQUFFLEMsZ0JBQUYsQ0FUaUIsQ0FBWCxDLElBV2ZHLFNBQUEsQyxnQkFBQSxJLFlBQ08sSSxDQUVYLE1BQU1DLFNBQUEsQ0FBUSxNQUFNRCxTQUFBLEMsZ0JBQUEsR0FBcEIsQyxPQUNPQyxTQUFBLEMsZ0JBQUEsQyxFQWxCc0IsQ0E3RWpDLENBaUdNQyxTQUFBLENBQWlCLENBQUNDLFNBQUQsQ0FBS0MsU0FBTCxDQUFzQkMsU0FBdEIsR0FBa0N2RixTQUFBLENBQVUsSyxHQUFWLENBQWtCLENBQUNxRixTQUFELENBQUtDLFNBQUwsQ0FBc0JDLFNBQXRCLENBQWxCLENBQWtELEssR0FBbEQsQ0FBMEQsVUFBVyxDQUFFdkMsWUFBQSxDQUFBd0MsU0FBRixDQUFnQnRDLFFBQUEsQ0FBQXVDLFNBQWhCLENBQTBCckMsT0FBQSxDQUFBc0MsU0FBMUIsQ0FBWCxDQUFnREMsU0FBaEQsQ0FBK0RDLFNBQS9ELEMsMkJBQ3pHQyxTQUFBLENBQVVILFMsa0JBQ1ZJLFNBQUEsQ0FBU0QsUyxrQkFDVEUsUUFBQSxDQUFTSixTQUFBLEMsZ0JBQUEsRyxDQUNUSyxTQUFBLENBQU8sTUFBTW5DLEtBQUEsQ0FBTWlDLFNBQU4sQ0FBVyxDLFFBQzFCLEMsZ0JBRDBCLEMsTUFFMUIsQ0FBTWhDLElBQUEsQyxnQkFBQSxFQUFlLEMsY0FDakIsQ0FBQTBCLFNBRGlCLEMsVUFFakIsQ0FBQUMsU0FGaUIsQyxRQUdqQixDQUFBTSxRQUhpQixDQUFmLENBRm9CLEMsU0FPMUIsQ0FBUyxDLGNBQUUsQyxnQkFBRixDQVBpQixDQUFYLEMsQ0FTYkUsU0FBQSxDQUFrQixDQUFDQyxTQUFELENBQU9DLFNBQVAsRywyQkFDcEJQLFNBQUEsQyxnQkFBQSxFQUFXTSxTQUFYLEUsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLEVBQW9EQyxTQUFwRCxDLENBQ0FQLFNBQUEsQyxnQkFBQSxHLENBQ0FRLFVBQUEsQ0FBVyxJLDJCQUNQUixTQUFBLEMsZ0JBQUEsRUFBa0JPLFNBQWxCLEMsQ0FDQVAsU0FBQSxDLE1BQUEsRyxFQUZKLEMsS0FBQSxDLEdBS0VTLFNBQUEsQ0FBUSxNQUFNTCxTQUFBLEMsZ0JBQUEsRyxDQUNoQkEsU0FBQSxDLGdCQUFBLEksS0FFQUMsU0FBQSxDLGdCQUFnQixDQUFnQkYsUUFBaEMsQyxnQkFBQSxDLENBR0lNLFNBQUEsQyxZQUFBLEUsT0FBQSxFQUFzQixNQUF0QixDLEVBRUFWLFNBQUEsQyxLQUFBLEVBQWtCVSxTQUFBLEMsbUJBQUEsQ0FBbEIsQyxDQUNBVixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDLENBQ0FNLFNBQUEsQyxNQUFBLEMsSUFBQSxDLEdBR0FOLFNBQUEsQyxLQUFBLEUsR0FBcUJJLFFBQXJCLEMsQ0FDQUUsU0FBQSxDQUFtQkksU0FBQSxDLGdCQUFBLEMsUUFBbUJMLFNBQUEsQyxZQUFBLENBQXRDLEMsU0FBQSxDLEdBbkM2QyxDQWpHekQsQ0F3SUEsU0FBU00sU0FBVCxDQUF1QkMsU0FBdkIsQ0FBOEJDLFNBQTlCLEMsUUFDV3hHLFNBQUEsQ0FBVSxJQUFWLENBQWdCLEssR0FBaEIsQ0FBd0IsSyxHQUF4QixDQUFnQyxXLHlCQUM3QnlHLFNBQUEsQ0FBU0YsU0FBQSxDLE1BQUEsRSxnQkFBQSxDLENBQ1RHLFNBQUEsQ0FBZ0IsTUFBTTlELFNBQUEsQ0FBTzRELFNBQVAsQ0FBYUMsU0FBYixDQUFxQnZDLFNBQXJCLEMsQ0FDdEJ5QyxTQUFBLENBQWdCLE1BQU0vRCxTQUFBLENBQU80RCxTQUFQLENBQWFDLFNBQWIsQ0FBcUJ0QyxTQUFyQixDLE9BQ3JCLEMsWUFDSCxDQUFZLENBQUMsR0FBR3VDLFNBQUEsQyxnQkFBQSxDQUFKLENBQThCLEdBQUdDLFNBQUEsQyxZQUFBLENBQWpDLENBRFQsQyxFQUpKLEMsRUFTWCxNQUFNQyxTQUFBLENBQWEsQyxpQkFDZixDQUFpQnBFLFNBQUEsQyxnQkFBQSxDQURGLEMsaUJBRWYsQyxJQUZlLEMsaUJBR2YsQ0FBaUJSLFNBQUEsQyxnQkFBQSxDQUhGLEMsZUFJZixDQUFlRSxTQUFBLEMsZ0JBQUEsRUFBMEJBLFNBQUEsQyxnQkFBQSxDQUExQixDQUFpREEsU0FBQSxDLGdCQUFBLENBQWpELENBQXNFQSxTQUFBLEMsY0FBQSxDQUp0RSxDLFlBS2YsQyxJQUxlLENBQW5CLENBT0EsU0FBUzJFLFNBQVQsQ0FBdUJDLFNBQXZCLENBQThCQyxTQUE5QixDLFFBQ1cvRyxTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyx5QkFDN0JnSCxTQUFBLENBQVNGLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEMsQ0FDVEcsU0FBQSxDQUFnQixNQUFNckUsU0FBQSxDQUFPbUUsU0FBUCxDQUFhQyxTQUFiLENBQXFCSixTQUFyQixDLFFBQ3JCSyxTLEVBSEosQyxFQU1YLE1BQU1DLFNBQUEsQ0FBZUMsU0FBRCxFLDJCQUNoQixJQUFJQyxTQUFKLENBQVFDLFNBQVIsQ0FBWUMsU0FBWixDQUFnQkMsU0FBaEIsQyxHQUNJLENBQUNKLFNBQUQsRUFBYyxDQUFDQSxTQUFBLEMsUUFBQSxDLEVBQ2YsTUFBTUssU0FBQSxDQUFXQyxDQUFBLEMsZ0JBQUEsQ0FBakIsQyxPQUNPRCxTLEVBRVgsTUFBTUUsU0FBQSxDQUFJUCxTQUFBLEMsUUFBQSxFLFVBQUEsR0FBVixDQUNNUSxTQUFBLENBQUssQ0FBQyxDQUFBUCxTQUFBLENBQUtELFNBQUEsQyxhQUFBLENBQUwsQ0FBRCxHQUFpQyxJQUFqQyxFQUF5Q0MsU0FBQSxHQUFPLEssR0FBaEQsQ0FBeUQsSyxHQUF6RCxDQUFrRUEsU0FBQSxDLGdCQUFBLENBQWxFLENBQUQsRUFBZ0YsQ0FBQyxDQUFBQyxTQUFBLENBQUtGLFNBQUEsQyxZQUFBLENBQUwsQ0FBRCxHQUFnQyxJQUFoQyxFQUF3Q0UsU0FBQSxHQUFPLEssR0FBL0MsQ0FBd0QsSyxHQUF4RCxDQUFpRUEsU0FBQSxDLGdCQUFBLENBQWpFLENBQWhGLEVBQTZKRixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHQUR2SyxDQUVNLENBQUVTLElBQUEsQ0FBQUMsU0FBRixDQUFRQyxLQUFBLENBQUFDLFNBQVIsRUFBa0JyRixTQUFBLENBQVF5RSxTQUFSLENBRnhCLENBR01hLFNBQUEsQyxJQUFZYixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHLFNBQWdDLENBQUMsQ0FBQyxDQUFBRyxTQUFBLENBQUtILFNBQUEsQyxnQkFBQSxDQUFMLENBQUQsR0FBZ0MsSUFBaEMsRUFBd0NHLFNBQUEsR0FBTyxLLEdBQS9DLENBQXdELEssR0FBeEQsQ0FBaUVBLFNBQUEsQyxNQUFBLENBQWpFLENBQUQsRUFBK0UsQ0FBQyxDQUFBQyxTQUFBLENBQUtKLFNBQUEsQyxnQkFBQSxDQUFMLENBQUQsR0FBaUMsSUFBakMsRUFBeUNJLFNBQUEsR0FBTyxLLEdBQWhELENBQXlELEssR0FBekQsQ0FBa0VBLFNBQUEsQyxNQUFBLENBQWxFLENBQS9FLEUsRUFBQSxDQUhsRCxDQUlNVSxTQUFBLENBQVdSLENBQUEsQyxpQkFBY04sU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRyxrQkFBK0RhLFMsa0JBQXNCSCxTLGtCQUFzQkUsUyxrQkFBZ0JKLFMsd0JBQXpJLENBSmpCLEMsT0FLQU0sU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUF1QlAsU0FBdkIsQyxDQUNBTyxTQUFBLEMsZ0JBQUEsRSxXQUFBLENBQTJCZCxTQUEzQixDLENBQ09jLFMsRUFkWCxDQWdCTUMsU0FBQSxDQUFjLENBQUNDLFNBQUQsQ0FBU0MsU0FBVCxHLGtDQUNUQSxTQUFBLEMsZ0JBQUEsRSxjQUFzQkQsUyxRQUF0QixDLEVBakJYLENBbUJNRSxTQUFBLENBQWUsQ0FBQ0MsU0FBRCxDQUFPQyxTQUFQLEcsMkJBQ2pCRCxTQUFBLEMsT0FBQSxFLGdCQUFBLEUsdUJBQUEsRSxnQkFBQSxFLGdCQUFBLEMsQ0FFQUMsU0FBQSxDLGdCQUFBLEUsa0JBQUEsRSxnQkFBQSxFLGdCQUFBLEMsRUF0QkosQ0F3Qk1DLFNBQUEsQ0FBYSxDQUFDQyxTQUFELENBQU9DLFNBQVAsQ0FBbUJDLFNBQW5CLEdBQTZCM0ksU0FBQSxDQUFVLEssR0FBVixDQUFrQixLLEdBQWxCLENBQTBCLEssR0FBMUIsQ0FBa0MsVywyQkFFOUUsSUFBSTRJLFNBQUEsQ0FBV0QsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBZixDQUNBRCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHQUFvQyxFQUFwQyxDQUNBLE1BQU1HLFNBQUEsQ0FBVUgsU0FBQSxDLGdCQUFBLEdBQXNCLEVBQXRDLEMsR0FDSUcsU0FBQSxDLFFBQUEsSSxJQUNBLE9BRUosVUFBV0MsU0FBWCxJQUFnQkQsU0FBaEIsQyxDQUNRRCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDLEVBRUEsT0FBTUcsU0FBQSxDQUFVTixTQUFWLENBQWdCRyxTQUFoQixDQUFOLEMsQ0FFSixNQUFNSSxTQUFBLENBQVdkLFNBQUEsQ0FBWVksU0FBWixDQUFlRixTQUFmLENBQWpCLEMsR0FDSUksU0FBQSxDLFFBQUEsSSxJQUNBLE9BRUpKLFNBQUEsQ0FBV0ksUyxFQUVmWCxTQUFBLENBQWFJLFNBQWIsQ0FBbUJHLFNBQW5CLEMsQ0FDQUssU0FBQSxDQUFXUixTQUFBLEMsV0FBQSxDQUFYLENBQTJCRyxTQUEzQixDLEVBcEI0QyxDQXhCaEQsQ0E4Q0EsU0FBU0ssU0FBVCxDQUFvQkMsU0FBcEIsQ0FBZ0NDLFNBQWhDLEMsMkJBRVVDLFNBQUEsQ0FBUUQsU0FBQSxDLFVBQUEsSSxnQkFBQSxDLENBRVJFLFNBQUEsQ0FBcUJILFNBQUEsQyxXQUFBLEcsSUFDdkJHLFNBQUEsRUFBc0JDLFMsQ0FDdEIsT0FJSixNQUFNQyxTQUFBLENBQVdGLFNBQUEsQ0FBcUJELFNBQXJCLENBQTZCRixTQUFBLEMsZ0JBQUEsSSxHQUE3QixDQUF1REMsU0FBQSxDLGdCQUFBLEksR0FBeEUsQ0FFQUQsU0FBQSxDLGdCQUFBLEVBQW1CLEMsV0FDZixDQUFXSyxTQURJLENBQW5CLEMsS0FBQSxDLEVBSUosTUFBTUMsU0FBQSxDQUFpQixDQUFDQyxTQUFELENBQU9DLFNBQVAsR0FBc0IxSixTQUFBLENBQVUsSyxHQUFWLENBQWtCLEssR0FBbEIsQ0FBMEIsSyxHQUExQixDQUFrQyxXLDJCQUNyRTJKLFNBQUEsQ0FBU0YsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRyxDQUNURyxTQUFBLENBQVUsQyxRQUNaLENBQUFELFNBRFksQyxZQUVaLENBQVlELFNBQUEsQyxRQUFBLENBRkEsQyxRQUdaLENBQVFELFNBQUEsQyxTQUFBLEUsV0FBQSxHLEdBSEksQyxDQUtWSSxTQUFBLENBQU9DLFNBQUEsQ0FBZUwsU0FBZixDLENBQ1BNLFNBQUEsQ0FBYSxNQUFNM0YsU0FBQSxDQUFheUYsU0FBYixDQUFtQkQsU0FBbkIsQyxJQUNyQixDQUFDRyxTLENBQ0QsT0FFSixNQUFNdkIsU0FBQSxDQUFXaUIsU0FBWCxDQUFpQk0sU0FBakIsQ0FBNkJOLFNBQUEsQyxPQUFBLENBQTdCLEMsRUFabUMsQ0FBN0MsQ0FjQSxTQUFTTyxTQUFULENBQTJCQyxTQUEzQixDQUFpQ0MsU0FBakMsQ0FBd0NDLFNBQXhDLENBQW1EQyxTQUFuRCxDLFFBQ1dwSyxTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyw0QkFDL0JrSyxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDLEVBQ0FuRyxPQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUNBLE8sSUFFQW1HLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEMsRUFDQW5HLE9BQUEsQyxnQkFBQSxFLGdCQUFBLEVBQ0EsTyxDQUVKbUcsU0FBQSxDLFVBQUEsRSxTQUFBLEMsQ0FDQUEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FEQSxDQUVBLEcsQ0FDSUEsU0FBQSxDLFVBQUEsRSxJQUFBLEUsZ0JBQUEsSUFDQSxNQUFNLENBQUVHLFVBQUEsQ0FBQUMsU0FBRixFQUFpQixNQUFNSCxTQUFBLENBQVVELFNBQVYsQ0FBaUJFLFNBQWpCLENBQTdCLENBQ0EsVUFBV0csU0FBWCxJQUF3QkQsU0FBeEIsQyxJQUNRTCxTQUFBLEMsZ0JBQUEsRSxRQUFBLEdBQXVCLENBQUNBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQW9CTSxTQUFwQixDLENBQ3hCLFNBRUosTUFBTUMsU0FBQSxDQUFXdEQsU0FBQSxDQUFZcUQsU0FBWixDQUFqQixDQUNBTCxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsZ0JBQUEsRUFBNEJNLFNBQTVCLEMsRUFFSk4sU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxFQUVKLE1BQU9PLFNBQVAsQyxDQUNJUCxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsZ0JBQUEsRSxpQkFBeUNPLFNBQUEsQyxnQkFBQSxDLGlCQUF6QyxDLENBQ0ExRyxPQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUFtQjBHLFNBQW5CLEMsRUFFSlAsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxHLENBQ0FBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEMsRUE1QkcsQyxFQStCWCxTQUFTSixTQUFULENBQXdCWSxTQUF4QixDLDJCQUNVQyxTQUFBLENBQU8sQyxTQUNULENBQVNELFNBQUEsQyxTQUFBLEUsZ0JBQUEsQ0FEQSxDLGNBRVQsQ0FBYyxPQUFPQSxTQUFBLEMsU0FBQSxFLGNBQUEsQ0FBUCxHLFVBQUEsQ0FBa0RBLFNBQUEsQyxTQUFBLEUsZ0JBQUEsR0FBbEQsQ0FBZ0ZBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBRnJGLEMsVUFHVCxDQUFVLE9BQU9BLFNBQUEsQyxTQUFBLEUsZ0JBQUEsQ0FBUCxHLGdCQUFBLENBQThDQSxTQUFBLEMsZ0JBQUEsRSxVQUFBLEdBQTlDLENBQXdFQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUh6RSxDLFFBS05DLFMsRUFFWCxTQUFTNUIsU0FBVCxDQUFtQjZCLFNBQW5CLENBQXlCQyxTQUF6QixDLFFBQ1c3SyxTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyw0QkFDL0I2SyxTQUFBLEMsZ0JBQUEsRSxTQUFBLEMsRUFDQUEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxVQUFBLEUsVUFBQSxDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxnQkFBQSxHQURBLENBRUEsTyxDQUdKLE1BQU1DLFNBQUEsQ0FBT2hCLFNBQUEsQ0FBZWMsU0FBZixDQUFiLENBQ01HLFNBQUEsQ0FBSSxDQUFDSCxTQUFBLEMsZ0JBQUEsRSxXQUFBLENBQUQsQ0FBMEJ0RSxTQUExQixDQUEwQ08sU0FEcEQsQ0FFQSxHLENBQ0ksTUFBTW1ELFNBQUEsQ0FBa0JZLFNBQWxCLENBQXdCQyxTQUF4QixDQUE2QkUsU0FBN0IsQ0FBZ0NELFNBQWhDLEMsQ0FFTkQsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxVQUFBLEUsVUFBQSxDLEVBRUosTUFBT0csU0FBUCxDLENBQ0lILFNBQUEsQyxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxDLENBQ0E5RyxPQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUFxQmlILFNBQXJCLEMsR0FoQkQsQyxFQW9CWCxNQUFNQyxTQUFBLENBQTJCLEksMkJBUTdCeEQsQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBaUMsQyxTQUU3QixDQUFTLEMsY0FDTCxDQUFjLEtBQU8sQyxVQUFFLEMsZ0JBQUYsQ0FBUCxDQURULEMsVUFFTCxDQUFVLElBQU02QixTQUZYLEMsWUFHTCxDQUFZLEtBQU8sQyxZQUNmLENBQVksQyxnQkFBRSxDLEdBQUYsQyxNQUFxQixDLFNBQXJCLENBREcsQyxXQUVmLEMsUUFGZSxDLFFBR2YsQyxXQUhlLEMsYUFJZixDQUFhLEMsTUFBRSxDLGdCQUFGLENBSkUsQyxnQkFLZixDQUFnQjVILFNBTEQsQ0FBUCxDQUhQLEMsUUFVTCxDQUFRLEksSUFWSCxDLFNBV0wsQyxFQVhLLEMsV0FZTCxDLEdBWkssQ0FGb0IsQyxtQkFnQjdCLEUsUUFDVzFCLFNBQUEsQ0FBVSxJQUFWLENBQWdCLEssR0FBaEIsQ0FBd0IsSyxHQUF4QixDQUFnQyxXLHlCQUM3QmtMLFNBQUEsQ0FBTyxJLElBQ1QsQ0FBQ0EsU0FBQSxDLGNBQUEsQyxFQUNELE1BQU1DLFNBQUEsQ0FBSSxPQUFPRCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUFQLEcsVUFBQSxDQUFnREEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxFQUE2QkEsU0FBN0IsQ0FBaEQsQ0FBcUZBLFNBQUEsQyxnQkFBQSxFLFlBQUEsQ0FBL0YsQyxHQUNJQyxTQUFBLFlBQWEzSyxPLEVBQ2IsTUFBTTRLLFNBQUEsQ0FBTyxNQUFNRCxTQUFuQixDQUNBRCxTQUFBLEMsZ0JBQUEsRUFBb0JFLFMsT0FHcEJGLFNBQUEsQyxnQkFBQSxFQUFvQkMsUyxTQUdyQkQsU0FBQSxDLGdCQUFBLEMsRUFaSixDLEVBakJrQixDLE9BZ0M3QixFLFFBQ1dsTCxTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyx5QkFDN0JxTCxTQUFBLENBQU8sSSxDQUVQQyxTQUFBLENBQUlELFMsQ0FDVkMsU0FBQSxDLGdCQUFBLEVBQWlCaEMsUyxDQUNqQitCLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEdBREEsQ0FFQSxNQUFNRSxTQUFBLENBQWEsTUFBTSxLLGdCQUFBLEdBQXpCLENBQ01DLFNBQUEsQ0FBV3RFLFNBQUEsQ0FBWXFFLFNBQVosQ0FEakIsQ0FFQUYsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBa0JHLFNBQWxCLEMsQ0FDQUgsU0FBQSxDLGdCQUFBLEVBQXFCRSxTLEVBVGxCLEMsRUFqQ2tCLEMsUUE2QzdCLEUsMkJBQ1VFLFNBQUEsQ0FBTyxJLENBRVBDLFNBQUEsQ0FBTzVCLFNBQUEsQ0FBZTJCLFNBQWYsQyxDQUNickcsU0FBQSxDQUFlc0csU0FBZixDQUFxQkQsU0FBQSxDLGdCQUFBLENBQXJCLENBQWtDQSxTQUFBLEMsZ0JBQUEsQ0FBbEMsQyxFQWpEeUIsQyxTQW1EN0IsRSwyQkFDVUUsU0FBQSxDQUFPLEksQ0FDYkEsU0FBQSxDLGdCQUFBLEVBQWMsSyxTQUFBLEMsQ0FDZEEsU0FBQSxDLFFBQUEsRUFBY2xFLENBQUEsQyxRQUFBLEMsQ0FDZGtFLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsQyxDQUNBLEssU0FBQSxFLGdCQUFBLEVBQXlCQSxTQUFBLEMsUUFBQSxDQUF6QixDLENBQ0FBLFNBQUEsQyxnQkFBQSxFQUFtQmxFLENBQUEsQyxRQUFBLEUsZ0JBQUEsRSxnQkFBQSxDLENBQ25Ca0UsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBbUJBLFNBQUEsQyxhQUFBLENBQW5CLEMsQ0FDQUEsU0FBQSxDLGFBQUEsRSxnQkFBQSxFQUF3QkEsU0FBQSxDLGdCQUFBLENBQXhCLEMsQ0FDQUEsU0FBQSxDLGdCQUFBLEVBQXNCbEUsQ0FBQSxDLGdCQUFBLEMsQ0FDdEJrRSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUF3QkEsU0FBQSxDLGdCQUFBLENBQXhCLEMsQ0FDQUEsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLGdCQUFBLENBQWdDLFUsUUFDckIzTCxTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyx5QkFDbkMsSUFBSTRMLFNBQUosQ0FDQSxJQUFJQyxRQUFBLEMsR0FBSixDQUNJQyxTQURKLENBRUksQ0FBQ0gsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLFVBQUEsQyxHQUNEQSxTQUFBLEMsZ0JBQUEsRSxNQUFBLEcsQ0FFQUcsU0FBQSxDQUFhLE1BQU1ILFNBQUEsQyxnQkFBQSxHLENBQ2YsQ0FBQUcsU0FBQSxHQUFlSCxTQUFBLEMsZ0JBQUEsQ0FBZixFQUFzQyxDQUFDLENBQUFDLFNBQUEsQ0FBS0QsU0FBQSxDLGdCQUFBLENBQUwsQ0FBRCxHQUE4QixJQUE5QixFQUFzQ0MsU0FBQSxHQUFPLEssR0FBN0MsQ0FBc0QsSyxHQUF0RCxDQUErREEsU0FBQSxDLGdCQUFBLENBQS9ELENBQUQsR0FBK0VFLFNBQUEsQyxRQUFBLENBQXBILEMsRUFDQSxPQUFNSCxTQUFBLEMsT0FBQSxHQUFOLEMsQ0FFSkUsUUFBQSxDLE1BRUpGLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEcsQ0FDQUUsUUFBQSxFQUF5QixPQUFNckMsU0FBQSxDQUFlbUMsU0FBZixDQUFxQkcsU0FBckIsQ0FBTixDLEVBZHRCLEMsRUFEWCxDLENBa0JBSCxTQUFBLEMsZ0JBQUEsRUFBa0JsRSxDQUFBLEMsZ0JBQUEsQyxDQUNsQmtFLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQXdCQSxTQUFBLEMsZ0JBQUEsQ0FBeEIsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsT0FBQSxDQUE0QixJLDBCQUN4QixLLGVBQUEsRyxFQURKLENBN0JBLENBZ0NJLENBQUNBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEUsYUFBQSxDLEVBQ0RBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsQyxtREFBQSxDLENBRUpBLFNBQUEsQyxPQUFBLEVBQWFsRSxDQUFBLEMsZ0JBQUEsQyxDQUNia0UsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRyxDQUNBQSxTQUFBLEMsZ0JBQUEsRUFBaUJsRSxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLEUsTUFBQSxHLENBQ2pCa0UsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBbUJBLFNBQUEsQyxnQkFBQSxDQUFuQixDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLFFBQUEsRUFBbUJBLFNBQUEsQyxXQUFBLENBQW5CLEMsQ0FDQUEsU0FBQSxDLGdCQUFBLEVBQWFsRSxDQUFBLEMsMENBQUEsRSxVQUFBLEVBQThDa0UsU0FBQSxDLFdBQUEsQ0FBOUMsQyxDQUNiLEssT0FBQSxHQU5BLENBT0EsTUFBTUksU0FBQSxDQUFlLENBQUNDLFNBQUQsQ0FBTUMsU0FBTixHLDJCQUNYQyxTQUFBLEMsS0FDQUMsU0FBQSxDLEtBQ0FDLFNBQUEsQ0FBYUosU0FBQSxDLFFBQUEsRyxDQUNiSyxTQUFBLENBQUlKLFMsSUFDTkksU0FBQSxDLGdCQUFBLEdBQVdELFNBQUEsQyxnQkFBQSxDQUFYLEVBQ0FDLFNBQUEsQyxPQUFBLEdBQVdELFNBQUEsQyxnQkFBQSxFQUFrQkYsU0FEN0IsRUFFQUcsU0FBQSxDLGdCQUFBLEdBQVdELFNBQUEsQyxnQkFBQSxDQUZYLEVBR0FDLFNBQUEsQyxnQkFBQSxHQUFXRCxTQUFBLEMsS0FBQSxFQUFpQkQsUyx1QkFScEMsQ0FhTUcsU0FBQSxDQUFtQkMsU0FBRCxFQUFTdk0sU0FBQSxDQUFVLElBQVYsQ0FBZ0IsSyxHQUFoQixDQUF3QixLLEdBQXhCLENBQWdDLFcsOEJBQ3pEdU0sU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxDQUNBeEQsU0FBQSxDQUFVNEMsU0FBVixDQUFnQlksU0FBaEIsQyxTQUVLQSxTQUFBLEMsZ0JBQUEsRSxVQUFBLEMsQ0FFTEEsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLFFBQUEsRyxDQUVBQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDLFNBRUtBLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxnQkFBQSxJLGdCQUFBLEUsSUFDTEEsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLGdCQUFBLEcsQ0FFQUEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxTQWJ5QixDQWJqQyxDQThCQVosU0FBQSxDLGdCQUFBLEUsSUFBQSxFLGdCQUFBLEMsSUFBQSxDQUFnQyxTQUFVYSxTQUFWLEMsMkJBQzVCLElBQUlDLFNBQUosQ0FBUUMsU0FBUixDQUNBRixTQUFBLEMsZ0JBQUEsSUFDQSxJQUFJRyxTQUFBLENBQU1sRixDQUFBLENBQUUsSUFBRixDQUFWLEMsR0FDSXNFLFNBQUEsQ0FBYVksU0FBYixDQUFrQkgsU0FBbEIsQyxDQUNBRixTQUFBLENBQWdCSyxTQUFoQixDLE1BR0EsTUFBTUMsU0FBQSxDQUFRRCxTQUFBLEMsZ0JBQUEsRSxPQUFBLENBQWQsQ0FDTUUsU0FBQSxDQUFZRixTQUFBLEMsTUFBQSxFLGdCQUFBLENBRGxCLEMsR0FFSWhCLFNBQUEsQyxnQkFBQSxFLGNBQUEsR0FBNkIsQ0FBQ0EsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBMEJrQixTQUExQixDLENBQzlCLE9BRUpsQixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLFdBQUEsQ0FBOEJrQixTQUE5QixFQUNBLE1BQU1DLFNBQUEsQ0FBZSxDQUFDLENBQUFMLFNBQUEsQ0FBS0ksU0FBQSxDLGdCQUFBLENBQUwsQ0FBRCxHQUFpQyxJQUFqQyxFQUF5Q0osU0FBQSxHQUFPLEssR0FBaEQsQ0FBeUQsSyxHQUF6RCxDQUFrRUEsU0FBQSxDLGdCQUFBLENBQWxFLENBQUQsRUFBZ0YsQ0FBQyxDQUFBQyxTQUFBLENBQUtHLFNBQUEsQyxnQkFBQSxDQUFMLENBQUQsR0FBZ0MsSUFBaEMsRUFBd0NILFNBQUEsR0FBTyxLLEdBQS9DLENBQXdELEssR0FBeEQsQ0FBaUVBLFNBQUEsQyxnQkFBQSxDQUFqRSxDQUFoRixFQUE2SkcsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsR0FBakwsQ0FDTUUsU0FBQSxDLElBQVlELFMsTUFBZ0JGLFMsSUFEbEMsQ0FFQWpCLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQWdCb0IsU0FBaEIsQyxDQUNBcEIsU0FBQSxDLFFBQUEsRSxnQkFBQSxFLFFBQUEsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHLEdBbEJSLEMsQ0FxQkFBLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxPQUFBLEMsSUFBQSxDQUE2QixTQUFVcUIsU0FBVixDLDJCQUN6QkEsU0FBQSxDLGdCQUFBLElBQ0EsSUFBSUMsU0FBQSxDQUFNeEYsQ0FBQSxDQUFFLElBQUYsQ0FBVixDQUNJc0UsU0FBQSxDQUFha0IsU0FBYixDQUFrQkQsU0FBbEIsQyxFQUNBVixTQUFBLENBQWdCVyxTQUFoQixDLENBRUo1RSxTQUFBLENBQWFzRCxTQUFiLENBQW1Cc0IsU0FBbkIsQyxFQU5KLEMsQ0FRQXhGLENBQUEsQ0FBRXlGLFFBQUYsRSxJQUFBLEUsT0FBQSxDQUF3QixTQUFVQyxTQUFWLEMsMkJBRWhCLENBQUMxRixDQUFBLENBQUUwRixTQUFBLEMsUUFBQSxDQUFGLEUsZ0JBQUEsRUFBd0J4QixTQUFBLEMsZ0JBQUEsQ0FBeEIsRSxRQUFBLEMsRUFDREEsU0FBQSxDLFdBQUEsRSxnQkFBQSxHLEVBSFIsQyxFQTFKeUIsQ0FBakMsQyxFQVJKLENBNEtNeUIsU0FBQSxDQUF3QixJLDJCQUNwQkMsU0FBQSxDQUFZNUYsQ0FBQSxDLHNCQUFBLEMsQ0FDWjZGLFNBQUEsQ0FBYUQsU0FBQSxDLEtBQUEsRyxDQUNiRSxRQUFBLENBQVVDLEdBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQWVGLFNBQWYsQyxJQUNaLENBQUNDLFEsQ0FDRCxPQUFPakUsU0FBUCxDQUdKLE1BQU0sQ0FBRXBHLFFBQUEsQ0FBQXVLLFNBQUYsQ0FBWUMsWUFBQSxDQUFBQyxTQUFaLENBQTBCQyxjQUFBLENBQUFDLFNBQTFCLENBQTBDQyxnQkFBQSxDQUFBQyxTQUExQyxDQUE0REMsV0FBQSxDQUFBQyxTQUE1RCxFQUE0RVYsUUFBbEYsQ0FDTVcsU0FBQSxDQUFXLEMsVUFDYixDQUFBVCxTQURhLEMsY0FFYixDQUFBRSxTQUZhLEMsZ0JBR2IsQ0FBQUUsU0FIYSxDLGtCQUliLENBQUFFLFNBSmEsQyxhQUtiLENBQUFFLFNBTGEsQ0FEakIsQyxPQVNPQyxTLEVBN0xYLENBK0xNQyxTQUFBLENBQStCLEksT0FDMUIsQyxjQUNILENBQWNDLFNBRFgsQyxFQWhNWCxDQW9NTUEsU0FBQSxDQUF3QixJLDJCQUNwQkMsU0FBQSxDQUFZNUcsQ0FBQSxDLGdCQUFBLEMsQ0FDWjZHLFNBQUEsQ0FBYUQsU0FBQSxDLGdCQUFBLEcsQ0FDYkUsU0FBQSxDQUFhbkIsU0FBQSxFLElBQ2YsQ0FBQ21CLFMsUUFDTWpGLFMsT0FFSixDLElBQ0gsQ0FBSWdGLFNBREQsQyxFQTNNWCxDQTJOQWQsR0FBQSxDLE9BQUEsRSxjQUFBLEUsZ0JBQUEsQ0FBb0QsQyxVQUNoRCxDLE9BRGdELEMsT0FFaEQsQyxnQkFGZ0QsQyxPQUdoRCxDLE9BSGdELEMsTUFJaEQsQyxnQkFKZ0QsQyxjQUtoRCxDLGdCQUxnRCxDLFVBTWhELENBQVUsQyxRQUNOLENBQVEsQyxPQUFFLEMsR0FBRixDQURGLEMsUUFFTixDQUFRLEMsT0FBRSxDLEdBQUYsQ0FGRixDLE1BSU4sQ0FBTSxDLE9BQUUsQyxFQUFGLENBSkEsQyxVQUtOLENBQVUsQyxPQUFFLEMsRUFBRixDLFVBQWEsQyxJQUFiLEMsTUFBNkIsQyxpQkFBN0IsQ0FMSixDLGtCQU1OLENBQWtCLEMsT0FDZCxDQUFPLEMsTUFDSCxDLEtBREcsQyxTQUVILEMsZ0JBRkcsQyxXQUdILEMsZ0JBSEcsQyxrQkFJSCxDLElBSkcsQyxjQUtILEMsSUFMRyxDQURPLEMsVUFRZCxDLElBUmMsQyxVQVNkLENBQVdnQixTQUFELEUsSUFDRkEsU0FBQSxHLEdBQ0EsTSxHQUFBLEMsWUFYTSxDQU5aLEMsUUFzQk4sQ0FBUSxDLE9BQUUsQyxFQUFGLEMsVUFBYSxDLEdBQWIsQ0F0QkYsQyxZQXVCTixDQUFZLEMsT0FBRSxDLGdCQUFGLEMsVUFBa0IsQyxJQUFsQixDQXZCTixDQU5zQyxDLFNBZ0NoRCxDLEdBaENnRCxDLE9BaUNoRCxFLGtDQUNXLEssZ0JBQUEsRyxrQkFsQ3FDLEMsWUFvQ2hELEUsa0NBQ1csSyxnQkFBQSxFLGdCQUFBLEMsSUFyQ3FDLEMsZUF1Q2hELEUsMkJBQ1VDLFNBQUEsQ0FBTyxJLENBQ2J4RCxTQUFBLEUsQ0FDQXdELFNBQUEsQyxRQUFBLEUsR0FEQSxDQUVBLE1BQU1DLFNBQUEsQ0FBVWpILENBQUEsQyxnQkFBQSxDQUFoQixDQUNBaUgsU0FBQSxDLGdCQUFBLEVBQW9CL0ssTUFBQSxDLGdCQUFBLEVBQWNBLE1BQUEsQyxnQkFBQSxFQUFjLEVBQWQsQ0FBa0J3SyxTQUFBLEVBQWxCLENBQWQsQ0FBaUUsQyxjQUFFLENBQWFRLFNBQWIsQyxrQ0FDeEVBLFNBQUEsQyxXQUFBLEksa0JBRHNFLENBQWpFLENBQXBCLEMsQ0FHQWxILENBQUEsQyxnQkFBQSxFLEtBQUEsRUFBOEJnSCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUE5QixDQUhBLENBSUEsT0FBUUEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBUixFQUNJLEssZ0JBQUEsQ0FDSWhILENBQUEsQyxnQkFBQSxFLEtBQUEsRUFBbUNnSCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUFuQyxDLENBQ0FoSCxDQUFBLEMsZ0JBQUEsRSxLQUFBLEVBQWlDZ0gsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBakMsQyxDQUNBaEgsQ0FBQSxDLGtDQUFBLEUsZ0JBQUEsRUFBMENnSCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUExQyxDLENBQ0FoSCxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLENBQThDZ0gsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBOUMsQ0FIQSxDQUlBLE1BQ0osSyxnQkFBQSxDQUNJaEgsQ0FBQSxDLGdCQUFBLEUsS0FBQSxFQUF3Q2dILFNBQUEsQyxnQkFBQSxFLFdBQUEsQ0FBeEMsQyxDQUNBaEgsQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBc0NnSCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUF0QyxDLENBQ0FoSCxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUErQ2dILFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBQS9DLEMsQ0FDQWhILENBQUEsQyxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsQ0FBdURnSCxTQUFBLEMsZ0JBQUEsRSxjQUFBLENBQXZELENBSEEsQ0FJQSxNQUNKLEssZ0JBQUEsQ0FDSUEsU0FBQSxDLGdCQUFBLEUsd0JBQUEsRUFBK0NBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEdBQWdELEUsQ0FDL0ZoSCxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUFpRGdILFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBQWpELEMsQ0FDQWhILENBQUEsQyx1Q0FBQSxFLGdCQUFBLEVBQStDZ0gsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBL0MsQyxDQUNBaEgsQ0FBQSxDLGdCQUFBLEUsS0FBQSxFQUEwRGdILFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBQTFELEMsQ0FDQWhILENBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQXFEZ0gsU0FBQSxDLGtCQUFBLEUsZ0JBQUEsQ0FBckQsQyxDQUNBaEgsQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxTQUFBLENBQXdHZ0gsU0FBQSxDLGtCQUFBLEUsZ0JBQUEsRSxnQkFBQSxDQUF4RyxDLENBQ0FoSCxDQUFBLEMsZ0JBQUEsRSxNQUFBLEUsU0FBQSxDQUE4RmdILFNBQUEsQyxrQkFBQSxFLGdCQUFBLEUsZ0JBQUEsQ0FBOUYsQyxDQUNBaEgsQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBNkVnSCxTQUFBLEMsZ0JBQUEsRSx3QkFBQSxFLGdCQUFBLENBQTdFLEMsQ0FDQWhILENBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQThFZ0gsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxDQUE5RSxDLENBQ0FoSCxDQUFBLEMsNkVBQUEsRSxNQUFBLEUsZ0JBQUEsQ0FBaUdnSCxTQUFBLEMsa0JBQUEsRSxnQkFBQSxFLGdCQUFBLENBQWpHLENBVEEsQ0FVQSxNQXhCUixDLENBOEJJLFNBQVNHLFNBQVQsRSwyQkFDSW5ILENBQUEsQyxnQkFBQSxFLGdCQUFBLEcsQ0FDQUEsQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsRyxDQUNBQSxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxHLENBQ0FBLENBQUEsQyxnQkFBQSxFLE1BQUEsRyxDQUNBQSxDQUFBLEMsZ0JBQUEsRSxNQUFBLEcsQ0FDQUEsQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsRyxFQUVKLFNBQVNvSCxTQUFULEUsMkJBQ0lELFNBQUEsR0FDQSxJQUFJRSxTQUFBLENBQWdCckgsQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsR0FBcEIsQ0FFQUEsQ0FBQSxDLGdCQUFFLENBQWNxSCxTQUFoQixFLE1BQUEsRyxFQUVKckgsQ0FBQSxDLGdCQUFBLEUsSUFBQSxFLFFBQUEsQ0FBdUNvSCxTQUF2QyxDLENBQ0FBLFNBQUEsRSxHQTdGd0MsQyxZQWdHaEQsRSwyQkFDVUUsU0FBQSxDQUFlQyxTQUFELEVBQVFBLFNBQUEsQyxnQkFBQSxLQUFXMUYsU0FBWCxDLEVBQUEsQ0FBNEIwRixTQUFBLEMsS0FBQSxJLGdCQUFBLEcsQ0FDbERDLFNBQUEsQ0FBaUJDLFNBQUQsRUFBUUEsU0FBQSxDLGdCQUFBLEtBQVc1RixTQUFYLEMsR0FBQSxDQUEyQjRGLFNBQUEsQyxnQkFBQSxHLENBQ25EQyxTQUFBLENBQU8xSCxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxHLENBQ2IsT0FBUTBILFNBQVIsRUFDSSxLLGdCQUFBLENBQ0ksSyxnQkFBQSxFQUF3QixDLE1BQ3BCLEMsZ0JBRG9CLEMsV0FFcEIsQ0FBV0osU0FBQSxDQUFZdEgsQ0FBQSxDLDJCQUFBLENBQVosQ0FGUyxDLFNBR3BCLENBQVNzSCxTQUFBLENBQVl0SCxDQUFBLEMsZ0JBQUEsQ0FBWixDQUhXLEMsa0JBSXBCLENBQWtCd0gsU0FBQSxDQUFjeEgsQ0FBQSxDLGdCQUFBLENBQWQsQ0FKRSxDLGNBS3BCLENBQWNBLENBQUEsQywwQkFBQSxFLGdCQUFBLEUsZ0JBQUEsQ0FMTSxDQUF4QixDQU9BLE1BQ0osSyxnQkFBQSxDQUNJLEssZ0JBQUEsRUFBd0IsQyxNQUNwQixDLGdCQURvQixDLFdBRXBCLENBQVdzSCxTQUFBLENBQVl0SCxDQUFBLEMsZ0JBQUEsQ0FBWixDQUZTLEMsU0FHcEIsQ0FBU3NILFNBQUEsQ0FBWXRILENBQUEsQyxnQkFBQSxDQUFaLENBSFcsQyxrQkFJcEIsQ0FBa0J3SCxTQUFBLENBQWN4SCxDQUFBLEMsZ0JBQUEsQ0FBZCxDQUpFLEMsY0FLcEIsQ0FBY0EsQ0FBQSxDLGdCQUFBLEUsTUFBQSxFLGdCQUFBLENBTE0sQ0FBeEIsQ0FPQSxNQUNKLEksbUJBQUEsQ0FDSSxLLGdCQUFBLEVBQXdCLEMsTUFDcEIsQyxtQkFEb0IsQyxXQUVwQixDQUFXc0gsU0FBQSxDQUFZdEgsQ0FBQSxDLGdCQUFBLENBQVosQ0FGUyxDLFNBR3BCLENBQVNzSCxTQUFBLENBQVl0SCxDQUFBLEMsZ0JBQUEsQ0FBWixDQUhXLEMsb0JBSXBCLENBQW9Cd0gsU0FBQSxDQUFjeEgsQ0FBQSxDLGtEQUFBLENBQWQsQ0FKQSxDLGVBS3BCLENBQWVzSCxTQUFBLENBQVl0SCxDQUFBLEMsZ0JBQUEsQ0FBWixDQUxLLEMsd0JBTXBCLENBQXdCLEMsK0JBQ3BCLENBQStCQSxDQUFBLEMsZ0JBQUEsRSxNQUFBLEUsU0FBQSxDQURYLEMscUJBRXBCLENBQXFCQSxDQUFBLEMsZ0JBQUEsRSxNQUFBLEUsZ0JBQUEsQ0FGRCxDLGdCQUdwQixDQUFnQndILFNBQUEsQ0FBY3hILENBQUEsQyxnQkFBQSxDQUFkLENBSEksQyxpQkFJcEIsQ0FBaUJ3SCxTQUFBLENBQWN4SCxDQUFBLEMsZ0JBQUEsQ0FBZCxDQUpHLEMsd0JBS3BCLENBQXdCQSxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLFNBQUEsQ0FMSixDQU5KLENBQXhCLENBY0EsTUFsQ1IsQyxDQXBHNEMsQ0FBcEQsQyxFQXhtQkosRyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCwgSXRlcmF0b3IgKi9cclxuXHJcblxyXG4gICAgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gXCJmdW5jdGlvblwiID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7XHJcbiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICAgICAgcmV0dXJuIGUubmFtZSA9IFwiU3VwcHJlc3NlZEVycm9yXCIsIGUuZXJyb3IgPSBlcnJvciwgZS5zdXBwcmVzc2VkID0gc3VwcHJlc3NlZCwgZTtcclxuICAgIH07XG5cbiAgICBjb25zdCBPcmdhbml6ZXNSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNVwiO1xuICAgIGNvbnN0IEZvbGRlclR5cGUgPSBcIm5zPTA7aT02MVwiO1xuICAgIGNvbnN0IEhhc0NvbXBvbmVudFJlZk5vZGVJZCA9IFwibnM9MDtpPTQ3XCI7XG4gICAgY29uc3QgSGFzUHJvcGVydHlSZWZOb2RlSWQgPSBcIm5zPTA7aT00NlwiO1xuICAgIGNvbnN0IEhhc0NoaWxkUmVmTm9kZUlkID0gXCJucz0wO2k9MzRcIjtcbiAgICBjb25zdCBIYXNTdWJ0eXBlUmVmTm9kZUlkID0gXCJucz0wO2k9NDVcIjtcbiAgICBjb25zdCBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZCA9IFwibnM9MDtpPTQwXCI7XG5cbiAgICB2YXIgQnJvd3NlRGlyZWN0aW9uO1xuICAgIChmdW5jdGlvbiAoQnJvd3NlRGlyZWN0aW9uKSB7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJGb3J3YXJkXCJdID0gMF0gPSBcIkZvcndhcmRcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmVyc2VcIl0gPSAxXSA9IFwiSW52ZXJzZVwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiQm90aFwiXSA9IDJdID0gXCJCb3RoXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZhbGlkXCJdID0gM10gPSBcIkludmFsaWRcIjtcbiAgICB9KShCcm93c2VEaXJlY3Rpb24gfHwgKEJyb3dzZURpcmVjdGlvbiA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzcztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzcykge1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVW5zcGVjaWZpZWRcIl0gPSAwXSA9IFwiVW5zcGVjaWZpZWRcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzIHx8IChOb2RlQ2xhc3MgPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3NNYXNrO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzTWFzaykge1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzTWFzayB8fCAoTm9kZUNsYXNzTWFzayA9IHt9KSk7XG4gICAgdmFyIFJlc3VsdE1hc2s7XG4gICAgKGZ1bmN0aW9uIChSZXN1bHRNYXNrKSB7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAxXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJJc0ZvcndhcmRcIl0gPSAyXSA9IFwiSXNGb3J3YXJkXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIk5vZGVDbGFzc1wiXSA9IDRdID0gXCJOb2RlQ2xhc3NcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiQnJvd3NlTmFtZVwiXSA9IDhdID0gXCJCcm93c2VOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkRpc3BsYXlOYW1lXCJdID0gMTZdID0gXCJEaXNwbGF5TmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJUeXBlRGVmaW5pdGlvblwiXSA9IDMyXSA9IFwiVHlwZURlZmluaXRpb25cIjtcbiAgICB9KShSZXN1bHRNYXNrIHx8IChSZXN1bHRNYXNrID0ge30pKTtcbiAgICAvLyAgY29uc3QgcSA9IFJlZmVyZW5jZVR5cGVJZHMuT3JnYW5pemVzO1xuICAgIGZ1bmN0aW9uIHJlc29sdmVOb2RlSWQobm9kZUlkTGlrZSkge1xuICAgICAgICBzd2l0Y2ggKG5vZGVJZExpa2UpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPcmdhbml6ZXNcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gT3JnYW5pemVzUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1Byb3BlcnR5XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1Byb3BlcnR5UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NvbXBvbmVudFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDb21wb25lbnRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ2hpbGRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ2hpbGRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzU3VidHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNTdWJ0eXBlUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1R5cGVEZWZpbml0aW9uXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZ2V0SWNvbiA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgc3dpdGNoIChyZWZlcmVuY2Uubm9kZUNsYXNzKSB7XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0XCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IE9yZ2FuaXplc1JlZk5vZGVJZCkgO1xuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UudHlwZURlZmluaXRpb24gPT09IEZvbGRlclR5cGUgfHwgcmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gXCJpPTYxXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1mb2xkZXJcIiwgY29sb3I6IFwicmdiYSg2MSwgNjAsIDQsIDAuNTI1KVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIlNlYUdyZWVuXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNDb21wb25lbnRSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJTdGVlbEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNQcm9wZXJ0eVJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkRvZGdlckJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgXCJNZXRob2RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWNvZ1wiLCBjb2xvcjogXCJTYW5keUJyb3duXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1zbGlkZXJzXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIkRhdGFUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS10ZXh0LXdpZHRoXCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1xdWVzdGlvblwiLCBjb2xvcjogXCJncmV5XCIgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgYnJvd3NlID0gKF9hLCBub2RlSWRfMSwgdGVtcGxhdGVfMSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hLCBub2RlSWRfMSwgdGVtcGxhdGVfMV0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkLCB0ZW1wbGF0ZSkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZm9yLW5vZGUtcmVkYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vYnJvd3NlYDtcbiAgICAgICAgY29uc3QgYnJvd3NlRGVzY3JpcHRpb24gPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRlKSwgeyBub2RlSWQsIHJlc3VsdE1hc2s6IDYzIH0pO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBicm93c2VEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzOiBbXSB9O1xuICAgICAgICB9XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiYnJvd3NlIGZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZXMgPSByZXNwb25zZS5icm93c2VSZXN1bHQucmVmZXJlbmNlcyB8fCBbXTtcbiAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlcyB9O1xuICAgIH0pO1xuXG4gICAgY29uc3QgdGVtcGxhdGUxID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNDaGlsZFwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IHRlbXBsYXRlMiA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiT3JnYW5pemVzXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3Qgd2Fsa0JhY2t3YXJkID0gKF9hLCBfYikgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hLCBfYl0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgeyBub2RlSWQsIHJvb3ROb2RlSWQsIGlzVHlwZSB9KSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1mb3Itbm9kZS1yZWRgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS93YWxrLWJhY2t3YXJkYDtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgICAgIHJvb3ROb2RlSWQsXG4gICAgICAgICAgICAgICAgaXNUeXBlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIHJldHVybiBqc29uLmJyb3dzZVBhdGg7XG4gICAgfSk7XG4gICAgY29uc3QgaW50ZXJuYWxWZXJpZnkgPSAoX2EsICRpbnB1dEVsZW1lbnRfMSwgJGluZm9fMSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hLCAkaW5wdXRFbGVtZW50XzEsICRpbmZvXzFdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sICRpbnB1dEVsZW1lbnQsICRpbmZvKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1mb3Itbm9kZS1yZWRgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9jaGVja05vZGVJZGA7XG4gICAgICAgIGNvbnN0IG5vZGVJZCA9ICRpbnB1dEVsZW1lbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgc2V0Tm90aWZpY2F0aW9uID0gKHRleHQsIGNsYXNzTmFtZSkgPT4ge1xuICAgICAgICAgICAgJGluZm8udGV4dCh0ZXh0KS5hZGRDbGFzcyhcInN0ZXJmaXZlLWluZm9cIikuYWRkQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICRpbmZvLnNob3coKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICRpbmZvLnJlbW92ZUNsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAgICAgJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgfSwgMzAwMCk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGpzb24gPSAoeWllbGQgZGF0YS5qc29uKCkpO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nO1xuICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiISFmYWlsdXJlISFcIiArIG5vZGVJZCwgXCJmYWlsdXJlXCIpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGpzb24uc3RhdHVzQ29kZS5tYXRjaCgvR29vZC8pKSB7XG4gICAgICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nXG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoanNvbi5ub2RlQWRkcmVzc1N0cmluZyk7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihcIkdvb2RcIiwgXCJva1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGAke25vZGVJZH1gKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oYCR7anNvbi5zdGF0dXNDb2RlfSAke2RhdGEuc3RhdHVzVGV4dH1gLCBcImZhaWx1cmVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBmdW5jdGlvbiBmZXRjaENoaWxkcmVuKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUxKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDIgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTIpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzOiBbLi4uYnJvd3NlUmVzdWx0MS5yZWZlcmVuY2VzLCAuLi5icm93c2VSZXN1bHQyLnJlZmVyZW5jZXNdLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHRlbXBsYXRlU1QgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc1N1YnR5cGVcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfCBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8IE5vZGVDbGFzcy5EYXRhVHlwZSB8IE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgZnVuY3Rpb24gZmV0Y2hTdWJ0eXBlcygkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlU1QpO1xuICAgICAgICAgICAgcmV0dXJuIGJyb3dzZVJlc3VsdDE7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBtYWtlRWxlbWVudCA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgICAgICBpZiAoIXJlZmVyZW5jZSB8fCAhcmVmZXJlbmNlLm5vZGVJZCkge1xuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSBmYS1lcnJvclwiIHN0eWxlPVwiY29sb3I6cmVkO1wiPjwvaT5ubyByZWZlcmVuY2UgITx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbiA9IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgdCA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHsgaWNvbiwgY29sb3IgfSA9IGdldEljb24ocmVmZXJlbmNlKTtcbiAgICAgICAgY29uc3QgdGl0bGUgPSBgKCR7cmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpfSkgJHsoKF9jID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5uYW1lKSB8fCAoKF9kID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2QudGV4dCkgfHwgXCJcIn1gO1xuICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaSBrZXk9XCIke3JlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKX1cIn0+PHNwYW4gY2xhc3M9XCJ0cmVlLXRleHRcIiB0aXRsZT0ke3RpdGxlfT48aSBjbGFzcz1cImZhICR7aWNvbn1cIiBzdHlsZT1cImNvbG9yOiR7Y29sb3J9O1wiPjwvaT4gJHt0fTwvc3Bhbj48dWw+PC91bD48L2xpPmApO1xuICAgICAgICAkZWxlbWVudC5hZGRDbGFzcyhcImV4cGFuZGFibGVcIik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJ2YWx1ZVwiLCBuKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgfTtcbiAgICBjb25zdCBmaW5kRWxlbWVudCA9IChub2RlSWQsICR0cmVlKSA9PiB7XG4gICAgICAgIHJldHVybiAkdHJlZS5maW5kKGBsaVtrZXk9XCIke25vZGVJZH1cIl1gKTtcbiAgICB9O1xuICAgIGNvbnN0IHNlbGVjdFNpbmdsZSA9ICh0aGF0LCAkbGkpID0+IHtcbiAgICAgICAgdGhhdC4kdHJlZS5maW5kKFwibGkgPiAudHJlZS10ZXh0XCIpLnJlbW92ZUNsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgICAgIC8vIGNsZWFyIGFsbCBzZWxlY3RlZCBpdGVtc1xuICAgICAgICAkbGkuZmluZChcIi50cmVlLXRleHQ6Zmlyc3RcIikuYWRkQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgICB9O1xuICAgIGNvbnN0IGF1dG9FeHBhbmQgPSAodGhhdCwgYnJvd3NlUGF0aCwgJHRyZWUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAvLyBleHBhbmQgdGhlIHRyZWUgdG8gc2hvdyB0aGUgbm9kZUlkXG4gICAgICAgIGxldCAkY3VycmVudCA9ICR0cmVlLmNoaWxkcmVuKFwiOmZpcnN0XCIpO1xuICAgICAgICBicm93c2VQYXRoLnJlbGF0aXZlUGF0aC5lbGVtZW50cyB8fCBbXTtcbiAgICAgICAgY29uc3Qgbm9kZUlkcyA9IGJyb3dzZVBhdGgubm9kZUlkcyB8fCBbXTtcbiAgICAgICAgaWYgKG5vZGVJZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBuIG9mIG5vZGVJZHMpIHtcbiAgICAgICAgICAgIGlmICgkY3VycmVudC5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIGV4cGFuZCBhbmQgc2VsZWN0IHRoZSByaWdodCBlbGVtZW50XG4gICAgICAgICAgICAgICAgeWllbGQgX2V4cGFuZExpKHRoYXQsICRjdXJyZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gZmluZEVsZW1lbnQobiwgJGN1cnJlbnQpO1xuICAgICAgICAgICAgaWYgKCRlbGVtZW50Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRjdXJyZW50ID0gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgc2VsZWN0U2luZ2xlKHRoYXQsICRjdXJyZW50KTtcbiAgICAgICAgc2Nyb2xsVG9MaSh0aGF0LiRkcm9wZG93biwgJGN1cnJlbnQpO1xuICAgIH0pO1xuICAgIGZ1bmN0aW9uIHNjcm9sbFRvTGkoJGNvbnRhaW5lciwgJHRhcmdldExpKSB7XG4gICAgICAgIC8vIEdldCB0aGUgcG9zaXRpb24gb2YgdGhlIHRhcmdldCBpdGVtIHJlbGF0aXZlIHRvIGl0cyBjb250YWluZXJcbiAgICAgICAgY29uc3QgbGlQb3MgPSAkdGFyZ2V0TGkucG9zaXRpb24oKS50b3A7XG4gICAgICAgIC8vIEdldCB0aGUgY3VycmVudCBzY3JvbGwgcG9zaXRpb24gb2YgdGhlIGNvbnRhaW5lclxuICAgICAgICBjb25zdCBjb250YWluZXJTY3JvbGxUb3AgPSAkY29udGFpbmVyLnNjcm9sbFRvcCgpO1xuICAgICAgICBpZiAoY29udGFpbmVyU2Nyb2xsVG9wID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgcG9zaXRpb24gdG8gc2Nyb2xsIHRvIChjdXJyZW50IHNjcm9sbCArIGl0ZW0ncyBwb3NpdGlvbilcbiAgICAgICAgLy8gQWRqdXN0IHRoaXMgY2FsY3VsYXRpb24gYmFzZWQgb24geW91ciBuZWVkc1xuICAgICAgICBjb25zdCBzY3JvbGxUbyA9IGNvbnRhaW5lclNjcm9sbFRvcCArIGxpUG9zIC0gJGNvbnRhaW5lci5oZWlnaHQoKSAvIDIgKyAkdGFyZ2V0TGkuaGVpZ2h0KCkgLyAyO1xuICAgICAgICAvLyBTY3JvbGwgdGhlIGNvbnRhaW5lciB0byBlbnN1cmUgdGhlIGl0ZW0gaXMgdmlzaWJsZVxuICAgICAgICAkY29udGFpbmVyLmFuaW1hdGUoe1xuICAgICAgICAgICAgc2Nyb2xsVG9wOiBzY3JvbGxUbyxcbiAgICAgICAgfSwgNTAwKTsgLy8gQWRqdXN0IHRoZSBkdXJhdGlvbiAoNTAwbXMpIGFzIG5lZWRlZFxuICAgIH1cbiAgICBjb25zdCByZWFjaFNlbGVjdGlvbiA9ICh0aGF0LCBwYXJlbnROb2RlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gdGhhdC4kaW5wdXQudmFsKCk7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICByb290Tm9kZUlkOiBwYXJlbnROb2RlLm5vZGVJZCxcbiAgICAgICAgICAgIGlzVHlwZTogdGhhdC5vcHRpb25zLmlzVHlwZVJlZiB8fCBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICBjb25zdCBicm93c2VQYXRoID0geWllbGQgd2Fsa0JhY2t3YXJkKGRhdGEsIG9wdGlvbnMpO1xuICAgICAgICBpZiAoIWJyb3dzZVBhdGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB5aWVsZCBhdXRvRXhwYW5kKHRoYXQsIGJyb3dzZVBhdGgsIHRoYXQuJHRyZWUpO1xuICAgIH0pO1xuICAgIGZ1bmN0aW9uIF9mZXRjaERhdGFGb3JOb2RlKHRoYXQsICRub2RlLCBmZXRjaEZ1bmMsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJsb2FkaW5nXCIpKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgJG5vZGUuYXBwZW5kKCc8ZGl2IGNsYXNzPVwic3Bpbm5lclwiPjwvZGl2PicpO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgeyByZWZlcmVuY2VzIH0gPSB5aWVsZCBmZXRjaEZ1bmMoJG5vZGUsIGRhdGEpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5maWx0ZXIgJiYgIXRoYXQub3B0aW9ucy5maWx0ZXIocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFrZUNvbm5lY3Rpb24odGhhdCkge1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgZnVuY3Rpb24gX2V4cGFuZExpKHRoYXQsICRsaSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgY29uc3QgZiA9ICF0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmID8gZmV0Y2hDaGlsZHJlbiA6IGZldGNoU3VidHlwZXM7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHlpZWxkIF9mZXRjaERhdGFGb3JOb2RlKHRoYXQsICRsaSwgZiwgZGF0YSk7XG4gICAgICAgICAgICAgICAgLy8gbWFyayBhcyBleHBhbmRlZFxuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogWyBUZW1wZXJhdHVyZSAgXVxuICAgICAgICAgKiAgICggdG9vbHRpcCA6ICgvT2JqZWN0cy9NeVNlbnNvcikgKG5zPTE7cz1UZW1wZXJhdHVyZSkpXG4gICAgICAgICAqIFsgKyBbRm9sZGVyXSBPYmplY3RzXVxuICAgICAgICAgKiBbICAgICBbT2JqZWN0XSBNeVNlbnNvcl1cbiAgICAgICAgICogWyAgICAgKCApIFtWYXJpYWJsZV0gVGVtcGVyYXR1cmVdXG4gICAgICAgICAqL1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLm5vZGVCcm93c2VyXCIsIHtcbiAgICAgICAgICAgIC8qIGRlZmF1bHQgb3B0aW9ucyAqL1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogKCkgPT4gKHsgZW5kcG9pbnQ6IFwib3BjLnRjcDovL29wY3VhZGVtby5zdGVyZml2ZS5jb206MjY1NDNcIiB9KSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludDogKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGU6ICgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIGJyb3dzZU5hbWU6IHsgbmFtZXNwYWNlSW5kZXg6IDAsIG5hbWU6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIG5vZGVDbGFzczogXCJPYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgbm9kZUlkOiBcIm5zPTA7aT04NVwiLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogeyB0ZXh0OiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICB0eXBlRGVmaW5pdGlvbjogRm9sZGVyVHlwZSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6ICgpID0+IHRydWUsXG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgICAgICBpc1R5cGVSZWY6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc29sdmVQYXJlbnROb2RlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuX19wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdHlwZW9mIHRoYXQub3B0aW9ucy5wYXJlbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZS5jYWxsKHRoYXQpIDogdGhhdC5vcHRpb25zLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkZXNjID0geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGRlc2M7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoYXQuX19wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc2V0KCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICAvLyBhbHNvIHJlc2V0IHBhcmVudCBub2RlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0aGF0O1xuICAgICAgICAgICAgICAgICAgICBhLl9fcGFyZW50Tm9kZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnROb2RlID0geWllbGQgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KHBhcmVudE5vZGUpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuY3VycmVudFBhcmVudCA9IHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdmVyaWZ5KCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICAgICAgaW50ZXJuYWxWZXJpZnkoZGF0YSwgdGhhdC4kaW5wdXQsIHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5yZXBsYWNlV2l0aCh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cCA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJpbnB1dC1ncm91cFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5wdXRHcm91cCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kaW5wdXQpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5lZWRUb1JlYWNoU2VsZWN0aW9uID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyZWUgd2lkZ2V0IGlzIGdvaW5nIHRvIGJlY29tZSB2aXNpYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50Tm9kZSA9IHlpZWxkIHRoYXQucmVzb2x2ZVBhcmVudE5vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAhPT0gdGhhdC5jdXJyZW50UGFyZW50IHx8ICgoX2EgPSB0aGF0LmN1cnJlbnRQYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ub2RlSWQpICE9PSBwYXJlbnROb2RlLm5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB0aGF0LnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRUb1JlYWNoU2VsZWN0aW9uID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmVlZFRvUmVhY2hTZWxlY3Rpb24gJiYgKHlpZWxkIHJlYWNoU2VsZWN0aW9uKHRoYXQsIHBhcmVudE5vZGUpKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLWZsYXNrXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHZlcmlmeUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZlcmlmeSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICghdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiLCBcImVudGVyIGEgbm9kZUlkIG9yIGEgYnJvd3NlUGF0aCBcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8gPSAkKGA8ZGl2IGNsYXNzPVwiaW5mby10ZXh0XCI+PC9kaXY+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24gPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwic3RlcmZpdmUtZHJvcGRvd25cIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUgPSAkKGA8dWwgY2xhc3M9XCJzdGVyZml2ZS10cmVlXCI+PC91bD5gKS5hcHBlbmRUbyh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzT25MZWZ0U2l6ZSA9ICgkbGksIGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVdpZHRoID0gMjA7IC8vIFNldCB3aWR0aCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVIZWlnaHQgPSAyMDsgLy8gU2V0IGhlaWdodCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50UG9zID0gJGxpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgdG9nZ2xlRXhwYW5zaW9uID0gKCRsaSkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX2V4cGFuZExpKHRoYXQsICRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvZ2dsZSBpdHMgZXhwYW5kZWQvY29sbGFwc2VkIHN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuY2hpbGRyZW4oXCJ1bFwiKS5jaGlsZHJlbigpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJkYmxjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc09uTGVmdFNpemUoJGxpLCBldmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZUV4cGFuc2lvbigkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkbGkuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gJGxpLmRhdGEoXCJyZWZlcmVuY2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZSAmJiAhdGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZShyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBgWyR7ZGlzcGxheU5hbWV9XSgke3ZhbHVlfSlgO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPbkxlZnRTaXplKCRsaSwgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVFeHBhbnNpb24oJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RTaW5nbGUodGhhdCwgJGxpKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjbGlja2luZyBvdXRzaWRlIHRoZSBwYWdlIHdpbGwgaGlkZSB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCh0aGF0LiRjb21ibykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBnZXRFbmRQb2ludEF0dHJpYnV0ZXMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgcmVkTm9kZSA9IFJFRC5ub2Rlcy5ub2RlKGVuZHBvaW50SWQpO1xuICAgICAgICBpZiAoIXJlZE5vZGUpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAvLyBjb25zdCBjcmVkZW50aWFscyA9IFJFRC4oZW5kcG9pbnRJZCk7XG4gICAgICAgIC8vIHdlIG5lZWQgdG8gc2FuaXRpemUgYW5kIGV4dHJhY3QgdGhlIGVuZHBvaW50IGF0dHJpYnV0ZXMgb25seSAoIG5vdCB0aGUgbm9kZS1yZWQgc3R1ZmYpXG4gICAgICAgIGNvbnN0IHsgZW5kcG9pbnQsIHNlY3VyaXR5TW9kZSwgc2VjdXJpdHlQb2xpY3ksIHVzZXJJZGVudGl0eVR5cGUsIGNyZWRlbnRpYWxzIH0gPSByZWROb2RlO1xuICAgICAgICBjb25zdCByZXRWYWx1ZSA9IHtcbiAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgY3JlZGVudGlhbHMsXG4gICAgICAgIH07XG4gICAgICAgIC8vIHh4IGNvbnNvbGUubG9nKFwieHh4XCIsIHJldFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHJldFZhbHVlO1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50TnIgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgaWYgKCFlbmRwb2ludE5yKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogZW5kcG9pbnRJZCxcbiAgICAgICAgICAgIC8vIGVuZHBvaW50OiBlbmRwb2ludE5yLmVuZHBvaW50LFxuICAgICAgICAgICAgLy8gc2VjdXJpdHlNb2RlOiBlbmRwb2ludE5yLnNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIC8vIHNlY3VyaXR5UG9saWN5OiBlbmRwb2ludE5yLnNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIHVzZXJJZGVudGl0eVR5cGU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIC8vIGNyZWRlbnRpYWw6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gdXNlck5hbWU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyTmFtZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC8vIHBhc3N3b3JkOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIuY3JlZGVudGlhbHMucGFzc3dvcmQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyB1c2VyQ2VydGlmaWNhdGU6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlckNlcnRpZmljYXRlLFxuICAgICAgICAgICAgLy8gdXNlclByaXZhdGVrZXk6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlclByaXZhdGVrZXksXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1DbGllbnQyLUhpc3RvcnlSZWFkXCIsIHtcbiAgICAgICAgY2F0ZWdvcnk6IFwib3BjdWFcIixcbiAgICAgICAgY29sb3I6IFwiI0MwREVFRFwiLFxuICAgICAgICBhbGlnbjogXCJyaWdodFwiLFxuICAgICAgICBpY29uOiBcIi4uLy4uL2ljb25zL29wY3Vhbm9kZUxvZ28ucG5nXCIsXG4gICAgICAgIHBhbGV0dGVMYWJlbDogXCJyZWFkLWhpc3RvcnlcIixcbiAgICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgICAgIGlucHV0czogeyB2YWx1ZTogMSB9LFxuICAgICAgICAgICAgb3V0cHV0OiB7IHZhbHVlOiA0IH0sXG4gICAgICAgICAgICAvLyBDb21tb25cbiAgICAgICAgICAgIG5hbWU6IHsgdmFsdWU6IFwiXCIgfSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSwgdHlwZTogXCJPcGNVYS1FbmRwb2ludDJcIiB9LFxuICAgICAgICAgICAgaGlzdG9yeVJlYWRQYXJhbToge1xuICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwicmF3XCIsXG4gICAgICAgICAgICAgICAgICAgIGVuZFRpbWU6IFwiMW0gYWdvXCIsXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZTogXCIxMW0gYWdvXCIsXG4gICAgICAgICAgICAgICAgICAgIG51bVZhbHVlc1Blck5vZGU6IDEwMCxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuQm91bmRzOiB0cnVlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgdmFsaWRhdGU6ICh2YWwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbCA9PT0gXCJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvLyBmb3IgYWN0aW9uIHJlYWQgSGlzdG9yeVxuICAgICAgICAgICAgbm9kZUlkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIG91dHB1dFR5cGU6IHsgdmFsdWU6IFwiVmFsdWVcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gaW5wdXRzOixcbiAgICAgICAgb3V0cHV0czogMiwgLy8gMiBvdXRwdXQsIHNlY29uZCBmb3IgcmF3IG5vZGUtb3BjdWEgZGlhZ25vc3RpY3Mgb3IgbW9yZSBjb21wbGV0ZSBtZXNzYWdlXG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCBcIk9QQ1VBIENsaWVudCBIaXN0b3J5UmVhZFwiO1xuICAgICAgICB9LFxuICAgICAgICBsYWJlbFN0eWxlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IFwibm9kZV9sYWJlbF9pdGFsaWNcIiA6IFwiXCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHByZXBhcmUoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcztcbiAgICAgICAgICAgIGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCgpO1xuICAgICAgICAgICAgbm9kZS5pbnB1dHMgPSAxO1xuICAgICAgICAgICAgY29uc3QgJG5vZGVJZCA9ICQoXCIjbm9kZS1pbnB1dC1ub2RlSWRcIik7XG4gICAgICAgICAgICAkbm9kZUlkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBpc1NlbGVjdGFibGUobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJWYXJpYWJsZVwiO1xuICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICAgICAgJChcIiNzZWxlY3QtaGlzdG9yeS10eXBlXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0udHlwZSk7XG4gICAgICAgICAgICBzd2l0Y2ggKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS50eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcInJhd1wiOlxuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcmF3LXN0YXJ0VGltZVwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLnN0YXJ0VGltZSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1yYXctZW5kVGltZVwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLmVuZFRpbWUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcmF3LW51bVZhbHVlc1Blck5vZGVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5udW1WYWx1ZXNQZXJOb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXJldHVybkJvdW5kc1wiKS5wcm9wKFwiY2hlY2tlZFwiLCBub2RlLmhpc3RvcnlSZWFkUGFyYW0ucmV0dXJuQm91bmRzKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcIm1vZGlmaWVkXCI6XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1tb2RpZmllZC1zdGFydFRpbWVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5zdGFydFRpbWUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtbW9kaWZpZWQtZW5kVGltZVwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLmVuZFRpbWUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtbW9kaWZpZWQtbnVtVmFsdWVzUGVyTm9kZVwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLm51bVZhbHVlc1Blck5vZGUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtbW9kaWZpZWQtcmV0dXJuQm91bmRzXCIpLnByb3AoXCJjaGVja2VkXCIsIG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5yZXR1cm5Cb3VuZHMpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwicHJvY2Vzc2VkLWRldGFpbHNcIjpcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5oaXN0b3J5UmVhZFBhcmFtLmFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24gPSBub2RlLmhpc3RvcnlSZWFkUGFyYW0uYWdncmVnYXRlQ29uZmlndXJhdGlvbiB8fCB7fTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLXN0YXJ0VGltZVwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLnN0YXJ0VGltZSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1lbmRUaW1lXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0uZW5kVGltZSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1wcm9jZXNzaW5nSW50ZXJ2YWxcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5wcm9jZXNzaW5nSW50ZXJ2YWwpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlVHlwZVwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLmFnZ3JlZ2F0ZVR5cGUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi11c2VTZXJ2ZXJDYXBhYmlsaXRpZXNEZWZhdWx0c1wiKS5wcm9wKFwiY2hlY2tlZFwiLCBub2RlLmhpc3RvcnlSZWFkUGFyYW0uYWdncmVnYXRlQ29uZmlndXJhdGlvbi51c2VTZXJ2ZXJDYXBhYmlsaXRpZXNEZWZhdWx0cyk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVDb25maWd1cmF0aW9uLXRyZWF0VW5jZXJ0YWluQXNCYWRcIikucHJvcChcImNoZWNrZWRcIiwgbm9kZS5oaXN0b3J5UmVhZFBhcmFtLmFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24udHJlYXRVbmNlcnRhaW5Bc0JhZCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVDb25maWd1cmF0aW9uLXBlcmNlbnREYXRhQmFkXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0uYWdncmVnYXRlQ29uZmlndXJhdGlvbi5wZXJjZW50RGF0YUJhZCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVDb25maWd1cmF0aW9uLXBlcmNlbnREYXRhR29vZFwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLmFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24ucGVyY2VudERhdGFHb29kKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24tdXNlU2xvcGVkRXh0cmFwb2xhdGlvblwiKS5wcm9wKFwiY2hlY2tlZFwiLCBub2RlLmhpc3RvcnlSZWFkUGFyYW0uYWdncmVnYXRlQ29uZmlndXJhdGlvbi51c2VTbG9wZWRFeHRyYXBvbGF0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIGFkdmFuY2VkIGNvbnRyb2xzXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGhpZGVBbGxTZWN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tcmF3XCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLW1vZGlmaWVkXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLXByb2Nlc3NlZC1kZXRhaWxzXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLWF0LXRpbWVcIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tYW5ub3RhdGlvbi1kYXRhXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLWV2ZW50XCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gdG9nZ2xlU2VjdGlvbnMoKSB7XG4gICAgICAgICAgICAgICAgICAgIGhpZGVBbGxTZWN0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3RlZFZhbHVlID0gJChcIiNzZWxlY3QtaGlzdG9yeS10eXBlXCIpLnZhbCgpO1xuICAgICAgICAgICAgICAgICAgICAvLyBhbGVydChcInRvZ2dsZVNlY3Rpb25zIFwiICsgc2VsZWN0ZWRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1cIiArIHNlbGVjdGVkVmFsdWUpLnNob3coKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJChcIiNzZWxlY3QtaGlzdG9yeS10eXBlXCIpLm9uKFwiY2hhbmdlXCIsIHRvZ2dsZVNlY3Rpb25zKTtcbiAgICAgICAgICAgICAgICB0b2dnbGVTZWN0aW9ucygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWVBc1RleHQgPSAoYSkgPT4gKGEudmFsKCkgPT0gdW5kZWZpbmVkID8gXCJcIiA6IGEudmFsKCkudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZUFzTnVtYmVyID0gKGEpID0+IChhLnZhbCgpID09IHVuZGVmaW5lZCA/IDAgOiBhLnZhbCgpKTtcbiAgICAgICAgICAgIGNvbnN0IHR5cGUgPSAkKFwiI3NlbGVjdC1oaXN0b3J5LXR5cGVcIikudmFsKCk7XG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwicmF3XCI6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGlzdG9yeVJlYWRQYXJhbSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwicmF3XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWU6IHZhbHVlQXNUZXh0KCQoXCIjbm9kZS1pbnB1dC1yYXctc3RhcnRUaW1lXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZFRpbWU6IHZhbHVlQXNUZXh0KCQoXCIjbm9kZS1pbnB1dC1yYXctZW5kVGltZVwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBudW1WYWx1ZXNQZXJOb2RlOiB2YWx1ZUFzTnVtYmVyKCQoXCIjbm9kZS1pbnB1dC1yYXctbnVtVmFsdWVzUGVyTm9kZVwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5Cb3VuZHM6ICQoXCIjbm9kZS1pbnB1dC1yZXR1cm5Cb3VuZHNcIikucHJvcChcImNoZWNrZWRcIiksXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJtb2RpZmllZFwiOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpc3RvcnlSZWFkUGFyYW0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcIm1vZGlmaWVkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWU6IHZhbHVlQXNUZXh0KCQoXCIjbm9kZS1pbnB1dC1tb2RpZmllZC1zdGFydFRpbWVcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kVGltZTogdmFsdWVBc1RleHQoJChcIiNub2RlLWlucHV0LW1vZGlmaWVkLWVuZFRpbWVcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbnVtVmFsdWVzUGVyTm9kZTogdmFsdWVBc051bWJlcigkKFwiI25vZGUtaW5wdXQtbW9kaWZpZWQtbnVtVmFsdWVzUGVyTm9kZVwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5Cb3VuZHM6ICQoXCIjbm9kZS1pbnB1dC1tb2RpZmllZC1yZXR1cm5Cb3VuZHNcIikucHJvcChcImNoZWNrZWRcIiksXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJwcm9jZXNzZWQtZGV0YWlsc1wiOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpc3RvcnlSZWFkUGFyYW0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInByb2Nlc3NlZC1kZXRhaWxzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWU6IHZhbHVlQXNUZXh0KCQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1zdGFydFRpbWVcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kVGltZTogdmFsdWVBc1RleHQoJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWVuZFRpbWVcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc2luZ0ludGVydmFsOiB2YWx1ZUFzTnVtYmVyKCQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1wcm9jZXNzaW5nSW50ZXJ2YWxcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWdncmVnYXRlVHlwZTogdmFsdWVBc1RleHQoJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZVR5cGVcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWdncmVnYXRlQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZVNlcnZlckNhcGFiaWxpdGllc0RlZmF1bHRzOiAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi11c2VTZXJ2ZXJDYXBhYmlsaXRpZXNEZWZhdWx0c1wiKS5wcm9wKFwiY2hlY2tlZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmVhdFVuY2VydGFpbkFzQmFkOiAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi10cmVhdFVuY2VydGFpbkFzQmFkXCIpLnByb3AoXCJjaGVja2VkXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcmNlbnREYXRhQmFkOiB2YWx1ZUFzTnVtYmVyKCQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVDb25maWd1cmF0aW9uLXBlcmNlbnREYXRhQmFkXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJjZW50RGF0YUdvb2Q6IHZhbHVlQXNOdW1iZXIoJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24tcGVyY2VudERhdGFHb29kXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VTbG9wZWRFeHRyYXBvbGF0aW9uOiAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi11c2VTbG9wZWRFeHRyYXBvbGF0aW9uXCIpLnByb3AoXCJjaGVja2VkXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
7
+ function _0xf99d(){const _0x501ddf=['Organizes','#node-input-raw-startTime','ns=0;i=46','$tree','HasComponent','registerType','endTime','#section-at-time','fa-text-width','inputs','<ul\x20class=\x22sterfive-tree\x22></ul>','892hTYxmW','placeholder','statusCode','match','elements','isSelectable','loading','Objects','length','$verifyBtn','then','apply','#node-input-raw-numValuesPerNode','reference','ns=0;i=34','/checkNodeId','#node-input-returnBounds','378613gQqBlM','resolveParentNode','fa-list-alt','#section-processed-details','baseUrl','Good','#node-input-nodeId','verify','161NUFRws','#node-input-processed-details-aggregateConfiguration-useSlopedExtrapolation','useServerCapabilitiesDefaults','statusText','#section-','fa-cog','node','\x22\x20style=\x22color:','children','DataType','percentDataGood','fa-question','sterfive.nodeBrowser','prop','returnBounds','assign','checked','Variable','$inputGroup','toggleClass','isTypeRef','DisplayName','<div/>','#select-history-type','OpcUa-Client2-HistoryRead','$toggleTreeBtn','text','ns=0;i=61','#node-input-endpoint','aggregateType','trigger','rgba(61,\x2060,\x204,\x200.525)','throw','already\x20loading','append','application/json','nodes','.tree-text:first','displayName','target','appendTo','offset','scrollTop','currentParent','height','1148810eLRVIB','Method','../../icons/opcuanodeLogo.png','<li\x20key=\x22','nodeClass','click','BrowseName','#section-event','.spinner','#node-input-processed-details-aggregateConfiguration-percentDataGood','#node-input-modified-returnBounds','type','#node-input-modified-startTime','><i\x20class=\x22fa\x20','/walk-backward','next','nodeIds','treatUncertainAsBad','7206039dOfrrZ','Invalid','Inverse','POST','change','endpointNode','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','#node-input-processed-details-aggregateConfiguration-treatUncertainAsBad','$combo','references','widget','nodeBrowser','#section-modified','Object','processed-details','DarkOrange','OpcUa-Endpoint2','#section-raw','endpoint','historyReadParam','View','HasProperty','remove','referenceTypeId','grey','read-history','stringify','left','typeDefinition','suppressed','Value','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','$input','19452zmqkKa','fetched','options','processingInterval','CadetBlue','HasSubtype','toggle','/opcua-for-node-red','call','parentNode','/browse','hasClass','function','message','#node-input-processed-details-aggregateType','#node-input-processed-details-startTime',':first','<div\x20class=\x22info-text\x22></div>','failure','ns=0;i=85',';\x22></i>\x20','filter','SteelBlue','selected','position','modified','status','name','stopPropagation','#node-input-raw-endTime','error','Forward','relativePath','numValuesPerNode','<div\x20class=\x22spinner\x22></div>','NodeClass','HasChild','11m\x20ago','i=61','aggregateConfiguration','OPCUA\x20Client\x20HistoryRead','value','#node-input-processed-details-aggregateConfiguration-useServerCapabilitiesDefaults','find','fetching\x20failed\x20with\x20error','DodgerBlue','top','node_label_italic','expanded','log','$info','hide','386514HuBnhx','ns=0;i=40','browseResult','json','expandable\x20expanded','HasTypeDefinition','empty','SuppressedError','Unspecified','VariableType','done','data','</li>','#node-input-modified-endTime','sterfive-combo-box','sterfive-info','browseName','expandable','$dropdown','startTime','toString','fa-sliders','nodeId','show','ObjectType','attr','val','dblclick','opc.tcp://opcuademo.sterfive.com:26543','addClass','3086370dtSljh','removeClass','useSlopedExtrapolation','__parentNode','pageX','SeaGreen','animate','ReferenceType','opcua','12652864NFFIMG','!!failure!!','browsePath','fa-object-group','raw','reset','element','TypeDefinition','#node-input-processed-details-aggregateConfiguration-percentDataBad','right','#node-input-processed-details-processingInterval','#node-input-processed-details-endTime'];_0xf99d=function(){return _0x501ddf;};return _0xf99d();}function _0x1880(_0x2b05c8,_0x20b338){const _0xf99d8=_0xf99d();return _0x1880=function(_0x188029,_0x126c7d){_0x188029=_0x188029-0x110;let _0x28f32f=_0xf99d8[_0x188029];return _0x28f32f;},_0x1880(_0x2b05c8,_0x20b338);}(function(_0x215c92,_0x30a0f7){const _0x22b420=_0x1880,_0x168eba=_0x215c92();while(!![]){try{const _0x4d65f4=parseInt(_0x22b420(0x182))/0x1+parseInt(_0x22b420(0x1b7))/0x2+-parseInt(_0x22b420(0x1ea))/0x3*(parseInt(_0x22b420(0x171))/0x4)+parseInt(_0x22b420(0x151))/0x5+-parseInt(_0x22b420(0x133))/0x6*(-parseInt(_0x22b420(0x18a))/0x7)+-parseInt(_0x22b420(0x15a))/0x8+parseInt(_0x22b420(0x1c9))/0x9;if(_0x4d65f4===_0x30a0f7)break;else _0x168eba['push'](_0x168eba['shift']());}catch(_0x5e438d){_0x168eba['push'](_0x168eba['shift']());}}}(_0xf99d,0xc96e4),(function(){'use strict';const _0x52e0be=_0x1880;function _0x98de03(_0x59a98e,_0x18f115,_0x3b6593,_0x1cb479){function _0x1797a7(_0x5a861f){return _0x5a861f instanceof _0x3b6593?_0x5a861f:new _0x3b6593(function(_0x4dbe4c){_0x4dbe4c(_0x5a861f);});}return new(_0x3b6593||(_0x3b6593=Promise))(function(_0x5b9573,_0x25da07){const _0x965ccb=_0x1880;function _0x406dd7(_0x10ecd6){try{_0x460cd5(_0x1cb479['next'](_0x10ecd6));}catch(_0x2d3720){_0x25da07(_0x2d3720);}}function _0x1621cc(_0xeb6105){const _0x15fbc5=_0x1880;try{_0x460cd5(_0x1cb479[_0x15fbc5(0x1aa)](_0xeb6105));}catch(_0x2c48c4){_0x25da07(_0x2c48c4);}}function _0x460cd5(_0x599157){const _0x217a4c=_0x1880;_0x599157[_0x217a4c(0x13d)]?_0x5b9573(_0x599157[_0x217a4c(0x128)]):_0x1797a7(_0x599157[_0x217a4c(0x128)])[_0x217a4c(0x17b)](_0x406dd7,_0x1621cc);}_0x460cd5((_0x1cb479=_0x1cb479[_0x965ccb(0x17c)](_0x59a98e,_0x18f115||[]))[_0x965ccb(0x1c6)]());});}typeof SuppressedError===_0x52e0be(0x1f6)?SuppressedError:function(_0x32dbf8,_0x511243,_0x59273f){const _0x44abdb=_0x52e0be;var _0x1b9440=new Error(_0x59273f);return _0x1b9440[_0x44abdb(0x11a)]=_0x44abdb(0x13a),_0x1b9440[_0x44abdb(0x11d)]=_0x32dbf8,_0x1b9440[_0x44abdb(0x1e6)]=_0x511243,_0x1b9440;};const _0x949ce2='ns=0;i=35',_0x42fdef=_0x52e0be(0x1a5),_0x214c76='ns=0;i=47',_0xd59386=_0x52e0be(0x168),_0x5b86b0=_0x52e0be(0x17f),_0x457452='ns=0;i=45',_0x328a59=_0x52e0be(0x134);var _0x3b145a;(function(_0x27ce94){const _0x1135e5=_0x52e0be;_0x27ce94[_0x27ce94[_0x1135e5(0x11e)]=0x0]='Forward',_0x27ce94[_0x27ce94[_0x1135e5(0x1cb)]=0x1]='Inverse',_0x27ce94[_0x27ce94['Both']=0x2]='Both',_0x27ce94[_0x27ce94[_0x1135e5(0x1ca)]=0x3]=_0x1135e5(0x1ca);}(_0x3b145a||(_0x3b145a={})));var _0x27cf7c;(function(_0x2ead09){const _0x11cc76=_0x52e0be;_0x2ead09[_0x2ead09[_0x11cc76(0x13b)]=0x0]=_0x11cc76(0x13b),_0x2ead09[_0x2ead09['Object']=0x1]=_0x11cc76(0x1d6),_0x2ead09[_0x2ead09['Variable']=0x2]=_0x11cc76(0x19b),_0x2ead09[_0x2ead09[_0x11cc76(0x1b8)]=0x4]=_0x11cc76(0x1b8),_0x2ead09[_0x2ead09['ObjectType']=0x8]=_0x11cc76(0x14b),_0x2ead09[_0x2ead09[_0x11cc76(0x13c)]=0x10]='VariableType',_0x2ead09[_0x2ead09['ReferenceType']=0x20]=_0x11cc76(0x158),_0x2ead09[_0x2ead09[_0x11cc76(0x193)]=0x40]=_0x11cc76(0x193),_0x2ead09[_0x2ead09[_0x11cc76(0x1dd)]=0x80]=_0x11cc76(0x1dd);}(_0x27cf7c||(_0x27cf7c={})));var _0x6c9ad9;(function(_0x170482){const _0x1ab6de=_0x52e0be;_0x170482[_0x170482[_0x1ab6de(0x1d6)]=0x1]=_0x1ab6de(0x1d6),_0x170482[_0x170482[_0x1ab6de(0x19b)]=0x2]=_0x1ab6de(0x19b),_0x170482[_0x170482['Method']=0x4]=_0x1ab6de(0x1b8),_0x170482[_0x170482['ObjectType']=0x8]=_0x1ab6de(0x14b),_0x170482[_0x170482['VariableType']=0x10]=_0x1ab6de(0x13c),_0x170482[_0x170482['ReferenceType']=0x20]=_0x1ab6de(0x158),_0x170482[_0x170482['DataType']=0x40]=_0x1ab6de(0x193),_0x170482[_0x170482[_0x1ab6de(0x1dd)]=0x80]=_0x1ab6de(0x1dd);}(_0x6c9ad9||(_0x6c9ad9={})));var _0x499823;(function(_0x1904a3){const _0x42596c=_0x52e0be;_0x1904a3[_0x1904a3['ReferenceType']=0x1]=_0x42596c(0x158),_0x1904a3[_0x1904a3['IsForward']=0x2]='IsForward',_0x1904a3[_0x1904a3[_0x42596c(0x122)]=0x4]=_0x42596c(0x122),_0x1904a3[_0x1904a3[_0x42596c(0x1bd)]=0x8]=_0x42596c(0x1bd),_0x1904a3[_0x1904a3[_0x42596c(0x19f)]=0x10]=_0x42596c(0x19f),_0x1904a3[_0x1904a3[_0x42596c(0x161)]=0x20]=_0x42596c(0x161);}(_0x499823||(_0x499823={})));function _0xe2e6ca(_0x36099c){const _0x3ed304=_0x52e0be;switch(_0x36099c){case _0x3ed304(0x166):return _0x949ce2;case _0x3ed304(0x1de):return _0xd59386;case _0x3ed304(0x16a):return _0x214c76;case _0x3ed304(0x123):return _0x5b86b0;case'HasSubtype':return _0x457452;case _0x3ed304(0x138):return _0x328a59;}}const _0x44354c=_0x3e7f4d=>{const _0x317e5d=_0x52e0be;switch(_0x3e7f4d['nodeClass']){case _0x317e5d(0x1d6):if(_0x3e7f4d[_0x317e5d(0x1e0)]===_0x949ce2);if(_0x3e7f4d[_0x317e5d(0x1e5)]===_0x42fdef||_0x3e7f4d[_0x317e5d(0x1e0)]===_0x317e5d(0x125))return{'icon':'fa-folder','color':_0x317e5d(0x1a9)};return{'icon':'fa-object-group','color':_0x317e5d(0x156)};case _0x317e5d(0x19b):if(_0x3e7f4d[_0x317e5d(0x1e0)]===_0x214c76)return{'icon':'fa-list-alt','color':_0x317e5d(0x115)};else return _0x3e7f4d[_0x317e5d(0x1e0)]===_0xd59386?{'icon':_0x317e5d(0x184),'color':_0x317e5d(0x12c)}:{'icon':_0x317e5d(0x184),'color':_0x317e5d(0x1ee)};case _0x317e5d(0x1b8):return{'icon':_0x317e5d(0x18f),'color':'SandyBrown'};case _0x317e5d(0x14b):return{'icon':_0x317e5d(0x15d),'color':_0x317e5d(0x1d8)};case _0x317e5d(0x13c):return{'icon':_0x317e5d(0x148),'color':_0x317e5d(0x1d8)};case _0x317e5d(0x193):return{'icon':_0x317e5d(0x16e),'color':_0x317e5d(0x1ee)};}return{'icon':_0x317e5d(0x195),'color':_0x317e5d(0x1e1)};},_0x2b01c2=(_0x339007,_0x32ec3b,_0x63d64e)=>_0x98de03(void 0x0,[_0x339007,_0x32ec3b,_0x63d64e],void 0x0,function*({endpointNode:_0x453702,endpoint:_0x32cfd4,baseUrl:_0x31cc59},_0x1f0f0a,_0x392710){const _0x445dfb=_0x52e0be,_0x28b874=_0x31cc59+_0x445dfb(0x1f1),_0xd1fe1=_0x28b874+_0x445dfb(0x1f4),_0x218db8=Object[_0x445dfb(0x199)](Object[_0x445dfb(0x199)]({},_0x392710),{'nodeId':_0x1f0f0a,'resultMask':0x3f}),_0x578e20=yield fetch(_0xd1fe1,{'method':_0x445dfb(0x1cc),'body':JSON[_0x445dfb(0x1e3)]({'endpointNode':_0x453702,'endpoint':_0x32cfd4,'browseDescription':_0x218db8}),'headers':{'Content-Type':'application/json'}});if(_0x578e20['status']!==0xc8)return console[_0x445dfb(0x130)](_0x445dfb(0x12b),_0x578e20[_0x445dfb(0x119)],_0x578e20[_0x445dfb(0x18d)]),{'references':[]};const _0x34e07d=yield _0x578e20[_0x445dfb(0x136)](),_0x1e8198=_0x34e07d[_0x445dfb(0x135)][_0x445dfb(0x1d2)]||[];return{'references':_0x1e8198};}),_0xe15c50={'referenceTypeId':_0xe2e6ca('HasChild'),'includeSubtypes':!![],'browseDirection':_0x3b145a['Forward'],'nodeClassMask':_0x27cf7c['Variable']|_0x27cf7c['Object']|_0x27cf7c[_0x52e0be(0x1b8)],'resultMask':0x3f},_0x1cb34b={'referenceTypeId':_0xe2e6ca('Organizes'),'includeSubtypes':!![],'browseDirection':_0x3b145a[_0x52e0be(0x11e)],'nodeClassMask':_0x27cf7c[_0x52e0be(0x19b)]|_0x27cf7c['Object']|_0x27cf7c['Method'],'resultMask':0x3f},_0x2b906b=(_0x162a3a,_0x339242)=>_0x98de03(void 0x0,[_0x162a3a,_0x339242],void 0x0,function*({endpointNode:_0x5f406c,endpoint:_0x2bbf16,baseUrl:_0x43fc55},{nodeId:_0x501f03,rootNodeId:_0x28e7ca,isType:_0x49eecf}){const _0x597993=_0x52e0be,_0x3bf34c=_0x43fc55+_0x597993(0x1f1),_0xc1ca0d=_0x3bf34c+_0x597993(0x1c5),_0x22f3b4=yield fetch(_0xc1ca0d,{'method':'POST','body':JSON[_0x597993(0x1e3)]({'endpointNode':_0x5f406c,'endpoint':_0x2bbf16,'nodeId':_0x501f03,'rootNodeId':_0x28e7ca,'isType':_0x49eecf}),'headers':{'Content-Type':_0x597993(0x1ad)}});if(_0x22f3b4[_0x597993(0x119)]!==0xc8)return null;const _0x4a5b1e=yield _0x22f3b4[_0x597993(0x136)]();return _0x4a5b1e[_0x597993(0x15c)];}),_0x3aa2ab=(_0x23ac86,_0xab482b,_0x440c93)=>_0x98de03(void 0x0,[_0x23ac86,_0xab482b,_0x440c93],void 0x0,function*({endpointNode:_0x35943c,endpoint:_0x3dd545,baseUrl:_0x150cee},_0x19a092,_0x11e414){const _0x1f4291=_0x52e0be,_0x96baa0=_0x150cee+'/opcua-for-node-red',_0x297c20=_0x96baa0+_0x1f4291(0x180),_0x1f4442=_0x19a092['val'](),_0x6dce87=yield fetch(_0x297c20,{'method':_0x1f4291(0x1cc),'body':JSON[_0x1f4291(0x1e3)]({'endpointNode':_0x35943c,'endpoint':_0x3dd545,'nodeId':_0x1f4442}),'headers':{'Content-Type':_0x1f4291(0x1ad)}}),_0x401917=(_0x4e327f,_0x5b841d)=>{const _0x32d6c4=_0x1f4291;_0x11e414[_0x32d6c4(0x1a4)](_0x4e327f)[_0x32d6c4(0x150)](_0x32d6c4(0x142))[_0x32d6c4(0x150)](_0x5b841d),_0x11e414[_0x32d6c4(0x14a)](),setTimeout(()=>{const _0x286986=_0x32d6c4;_0x11e414['removeClass'](_0x5b841d),_0x11e414[_0x286986(0x132)]();},0xbb8);},_0x4e29bc=yield _0x6dce87[_0x1f4291(0x136)]();_0x6dce87[_0x1f4291(0x119)]!==0xc8?_0x401917(_0x1f4291(0x15b)+_0x1f4442,_0x1f4291(0x111)):_0x4e29bc['statusCode'][_0x1f4291(0x174)](/Good/)?(_0x19a092[_0x1f4291(0x14d)](_0x4e29bc['nodeAddressString']),_0x19a092[_0x1f4291(0x1a8)](_0x1f4291(0x1cd)),_0x401917(_0x1f4291(0x187),'ok')):(_0x19a092[_0x1f4291(0x14d)](''+_0x1f4442),_0x401917(_0x4e29bc[_0x1f4291(0x173)]+'\x20'+_0x6dce87[_0x1f4291(0x18d)],_0x1f4291(0x111)));});function _0x46fccc(_0x24bc45,_0xa6789b){return _0x98de03(this,void 0x0,void 0x0,function*(){const _0x2c3e59=_0x1880,_0x1d5a75=_0x24bc45[_0x2c3e59(0x13e)](_0x2c3e59(0x128)),_0x4a494c=yield _0x2b01c2(_0xa6789b,_0x1d5a75,_0xe15c50),_0xa7783a=yield _0x2b01c2(_0xa6789b,_0x1d5a75,_0x1cb34b);return{'references':[..._0x4a494c[_0x2c3e59(0x1d2)],..._0xa7783a[_0x2c3e59(0x1d2)]]};});}const _0x2af16c={'referenceTypeId':_0xe2e6ca(_0x52e0be(0x1ef)),'includeSubtypes':!![],'browseDirection':_0x3b145a[_0x52e0be(0x11e)],'nodeClassMask':_0x27cf7c['ReferenceType']|_0x27cf7c['ObjectType']|_0x27cf7c[_0x52e0be(0x193)]|_0x27cf7c[_0x52e0be(0x13c)],'resultMask':0x3f};function _0x2c4af6(_0x4bc116,_0x52850b){return _0x98de03(this,void 0x0,void 0x0,function*(){const _0x45003f=_0x1880,_0x545b36=_0x4bc116[_0x45003f(0x13e)](_0x45003f(0x128)),_0x4be7aa=yield _0x2b01c2(_0x52850b,_0x545b36,_0x2af16c);return _0x4be7aa;});}const _0x783667=_0x34ab41=>{const _0x345e14=_0x52e0be;var _0x4eb194,_0x399d54,_0x5c0adc,_0x1abb21;if(!_0x34ab41||!_0x34ab41[_0x345e14(0x149)]){const _0x318916=$('<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>');return _0x318916;}const _0x4e5bd0=_0x34ab41[_0x345e14(0x149)][_0x345e14(0x147)](),_0x32bd5f=((_0x4eb194=_0x34ab41[_0x345e14(0x1b0)])===null||_0x4eb194===void 0x0?void 0x0:_0x4eb194['text'])||((_0x399d54=_0x34ab41[_0x345e14(0x143)])===null||_0x399d54===void 0x0?void 0x0:_0x399d54['name'])||_0x34ab41['nodeId'][_0x345e14(0x147)](),{icon:_0x3a913a,color:_0x558325}=_0x44354c(_0x34ab41),_0x2c26eb='('+_0x34ab41[_0x345e14(0x149)][_0x345e14(0x147)]()+')\x20'+(((_0x5c0adc=_0x34ab41[_0x345e14(0x143)])===null||_0x5c0adc===void 0x0?void 0x0:_0x5c0adc[_0x345e14(0x11a)])||((_0x1abb21=_0x34ab41[_0x345e14(0x1b0)])===null||_0x1abb21===void 0x0?void 0x0:_0x1abb21['text'])||''),_0x241aea=$(_0x345e14(0x1ba)+_0x34ab41[_0x345e14(0x149)]['toString']()+'\x22}><span\x20class=\x22tree-text\x22\x20title='+_0x2c26eb+_0x345e14(0x1c4)+_0x3a913a+_0x345e14(0x191)+_0x558325+_0x345e14(0x113)+_0x32bd5f+'</span><ul></ul></li>');return _0x241aea[_0x345e14(0x150)](_0x345e14(0x144)),_0x241aea[_0x345e14(0x13e)]('value',_0x4e5bd0),_0x241aea[_0x345e14(0x13e)](_0x345e14(0x17e),_0x34ab41),_0x241aea;},_0x9961d=(_0x2fb44b,_0x1135db)=>{const _0xc51d7e=_0x52e0be;return _0x1135db[_0xc51d7e(0x12a)]('li[key=\x22'+_0x2fb44b+'\x22]');},_0x5d8017=(_0x542cf5,_0x10c758)=>{const _0x5c5227=_0x52e0be;_0x542cf5['$tree'][_0x5c5227(0x12a)]('li\x20>\x20.tree-text')[_0x5c5227(0x152)](_0x5c5227(0x116)),_0x10c758['find'](_0x5c5227(0x1af))['addClass'](_0x5c5227(0x116));},_0x59057a=(_0x4595d4,_0x219dbb,_0x1e7d74)=>_0x98de03(void 0x0,void 0x0,void 0x0,function*(){const _0x313600=_0x52e0be;let _0x25d842=_0x1e7d74['children'](_0x313600(0x1fa));_0x219dbb[_0x313600(0x11f)][_0x313600(0x175)]||[];const _0x25207d=_0x219dbb[_0x313600(0x1c7)]||[];if(_0x25207d[_0x313600(0x179)]===0x0)return;for(const _0x19aa5 of _0x25207d){_0x25d842[_0x313600(0x1f5)]('expandable')&&(yield _0x3caaa0(_0x4595d4,_0x25d842));const _0x5c6775=_0x9961d(_0x19aa5,_0x25d842);if(_0x5c6775[_0x313600(0x179)]===0x0)return;_0x25d842=_0x5c6775;}_0x5d8017(_0x4595d4,_0x25d842),_0x1ee033(_0x4595d4['$dropdown'],_0x25d842);});function _0x1ee033(_0x3377b3,_0x32b478){const _0x49db4a=_0x52e0be,_0x3c0317=_0x32b478[_0x49db4a(0x117)]()['top'],_0x533165=_0x3377b3[_0x49db4a(0x1b4)]();if(_0x533165==undefined)return;const _0x195d2a=_0x533165+_0x3c0317-_0x3377b3[_0x49db4a(0x1b6)]()/0x2+_0x32b478['height']()/0x2;_0x3377b3[_0x49db4a(0x157)]({'scrollTop':_0x195d2a},0x1f4);}const _0x1e16c8=(_0x3a2925,_0x2a1fa8)=>_0x98de03(void 0x0,void 0x0,void 0x0,function*(){const _0x1bd7ef=_0x52e0be,_0x1e0dd2=_0x3a2925[_0x1bd7ef(0x1e9)][_0x1bd7ef(0x14d)](),_0x462764={'nodeId':_0x1e0dd2,'rootNodeId':_0x2a1fa8[_0x1bd7ef(0x149)],'isType':_0x3a2925[_0x1bd7ef(0x1ec)]['isTypeRef']||![]},_0x5ac537=_0x1051e6(_0x3a2925),_0x2ed5a9=yield _0x2b906b(_0x5ac537,_0x462764);if(!_0x2ed5a9)return;yield _0x59057a(_0x3a2925,_0x2ed5a9,_0x3a2925['$tree']);});function _0x44bc9e(_0x59e41a,_0x470d12,_0x540584,_0x82a0e4){return _0x98de03(this,void 0x0,void 0x0,function*(){const _0x31e6e9=_0x1880;if(_0x470d12[_0x31e6e9(0x1f5)](_0x31e6e9(0x1eb))){console[_0x31e6e9(0x130)]('already\x20fetched');return;}if(_0x470d12[_0x31e6e9(0x1f5)](_0x31e6e9(0x177))){console[_0x31e6e9(0x130)](_0x31e6e9(0x1ab));return;}_0x470d12[_0x31e6e9(0x150)]('loading'),_0x470d12[_0x31e6e9(0x1ac)](_0x31e6e9(0x121));try{_0x470d12[_0x31e6e9(0x192)]('ul')[_0x31e6e9(0x139)]();const {references:_0x1ee5dd}=yield _0x540584(_0x470d12,_0x82a0e4);for(const _0x45c988 of _0x1ee5dd){if(_0x59e41a[_0x31e6e9(0x1ec)]['filter']&&!_0x59e41a[_0x31e6e9(0x1ec)][_0x31e6e9(0x114)](_0x45c988))continue;const _0x20c723=_0x783667(_0x45c988);_0x470d12[_0x31e6e9(0x192)]('ul')[_0x31e6e9(0x1ac)](_0x20c723);}_0x470d12[_0x31e6e9(0x150)](_0x31e6e9(0x1eb));}catch(_0x2f64b9){_0x470d12[_0x31e6e9(0x192)]('ul')[_0x31e6e9(0x1ac)]('<li>error\x20'+_0x2f64b9[_0x31e6e9(0x1f7)]+_0x31e6e9(0x13f)),console[_0x31e6e9(0x130)]('err',_0x2f64b9);}_0x470d12['find'](_0x31e6e9(0x1bf))[_0x31e6e9(0x1df)](),_0x470d12[_0x31e6e9(0x152)](_0x31e6e9(0x177));});}function _0x1051e6(_0x3a29f8){const _0x4e8cd7=_0x52e0be,_0x3067dc={'baseUrl':_0x3a29f8['options'][_0x4e8cd7(0x186)],'endpointNode':typeof _0x3a29f8[_0x4e8cd7(0x1ec)]['endpointNode']===_0x4e8cd7(0x1f6)?_0x3a29f8[_0x4e8cd7(0x1ec)][_0x4e8cd7(0x1ce)]():_0x3a29f8[_0x4e8cd7(0x1ec)][_0x4e8cd7(0x1ce)],'endpoint':typeof _0x3a29f8['options'][_0x4e8cd7(0x1db)]===_0x4e8cd7(0x1f6)?_0x3a29f8['options'][_0x4e8cd7(0x1db)]():_0x3a29f8[_0x4e8cd7(0x1ec)][_0x4e8cd7(0x1db)]};return _0x3067dc;}function _0x3caaa0(_0x56474a,_0x59b33b){return _0x98de03(this,void 0x0,void 0x0,function*(){const _0x5ccb0b=_0x1880;if(_0x59b33b[_0x5ccb0b(0x1f5)](_0x5ccb0b(0x1eb))){_0x59b33b[_0x5ccb0b(0x152)](_0x5ccb0b(0x144))[_0x5ccb0b(0x150)]('expanded'),_0x59b33b[_0x5ccb0b(0x192)]('ul')[_0x5ccb0b(0x1f0)]();return;}const _0x10c1fd=_0x1051e6(_0x56474a),_0x332194=!_0x56474a['options'][_0x5ccb0b(0x19e)]?_0x46fccc:_0x2c4af6;try{yield _0x44bc9e(_0x56474a,_0x59b33b,_0x332194,_0x10c1fd),_0x59b33b[_0x5ccb0b(0x152)]('expandable')[_0x5ccb0b(0x150)](_0x5ccb0b(0x12f));}catch(_0x312f3b){_0x59b33b[_0x5ccb0b(0x152)](_0x5ccb0b(0x144))[_0x5ccb0b(0x150)](_0x5ccb0b(0x12f)),console['log'](_0x5ccb0b(0x11d),_0x312f3b);}});}const _0x50353e=()=>{const _0x671098=_0x52e0be;$[_0x671098(0x1d3)](_0x671098(0x196),{'options':{'endpointNode':()=>({'endpoint':_0x671098(0x14f)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x671098(0x178)},'nodeClass':_0x671098(0x1d6),'nodeId':_0x671098(0x112),'displayName':{'text':_0x671098(0x178)},'typeDefinition':_0x42fdef}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x98de03(this,void 0x0,void 0x0,function*(){const _0x4335e7=_0x1880,_0x3d8386=this;if(!_0x3d8386[_0x4335e7(0x154)]){const _0x392013=typeof _0x3d8386[_0x4335e7(0x1ec)][_0x4335e7(0x1f3)]==='function'?_0x3d8386[_0x4335e7(0x1ec)][_0x4335e7(0x1f3)][_0x4335e7(0x1f2)](_0x3d8386):_0x3d8386['options']['parentNode'];if(_0x392013 instanceof Promise){const _0x491c22=yield _0x392013;_0x3d8386[_0x4335e7(0x154)]=_0x491c22;}else _0x3d8386['__parentNode']=_0x392013;}return _0x3d8386[_0x4335e7(0x154)];});},'reset'(){return _0x98de03(this,void 0x0,void 0x0,function*(){const _0x49a351=_0x1880,_0x291700=this,_0x2a579a=_0x291700;_0x2a579a['__parentNode']=undefined,_0x291700[_0x49a351(0x169)][_0x49a351(0x139)]();const _0x160fc1=yield this[_0x49a351(0x183)](),_0x20c9c9=_0x783667(_0x160fc1);_0x291700[_0x49a351(0x169)][_0x49a351(0x1ac)](_0x20c9c9),_0x291700[_0x49a351(0x1b5)]=_0x160fc1;});},'verify'(){const _0x2a132b=_0x671098,_0xd5d51b=this,_0x53176c=_0x1051e6(_0xd5d51b);_0x3aa2ab(_0x53176c,_0xd5d51b[_0x2a132b(0x1e9)],_0xd5d51b['$info']);},'_create'(){const _0x125906=_0x671098,_0x2284b5=this;_0x2284b5['$input']=this[_0x125906(0x160)],_0x2284b5[_0x125906(0x1d1)]=$(_0x125906(0x1a0)),_0x2284b5[_0x125906(0x1d1)][_0x125906(0x150)](_0x125906(0x141)),this[_0x125906(0x160)]['replaceWith'](_0x2284b5[_0x125906(0x1d1)]),_0x2284b5[_0x125906(0x19c)]=$('<div/>')[_0x125906(0x150)]('input-group'),_0x2284b5[_0x125906(0x1d1)][_0x125906(0x1ac)](_0x2284b5[_0x125906(0x19c)]),_0x2284b5[_0x125906(0x19c)]['append'](_0x2284b5[_0x125906(0x1e9)]),_0x2284b5[_0x125906(0x1a3)]=$(_0x125906(0x1cf)),_0x2284b5[_0x125906(0x19c)][_0x125906(0x1ac)](_0x2284b5[_0x125906(0x1a3)]),_0x2284b5[_0x125906(0x1a3)]['on']('click',function(){return _0x98de03(this,void 0x0,void 0x0,function*(){const _0x5e92b6=_0x1880;var _0x383943;let _0x4bb89d=![],_0x5e323a;!_0x2284b5[_0x5e92b6(0x145)]['is'](':visible')&&(_0x2284b5[_0x5e92b6(0x131)][_0x5e92b6(0x132)](),_0x5e323a=yield _0x2284b5['resolveParentNode'](),(_0x5e323a!==_0x2284b5[_0x5e92b6(0x1b5)]||((_0x383943=_0x2284b5['currentParent'])===null||_0x383943===void 0x0?void 0x0:_0x383943[_0x5e92b6(0x149)])!==_0x5e323a[_0x5e92b6(0x149)])&&(yield _0x2284b5[_0x5e92b6(0x15f)]()),_0x4bb89d=!![]),_0x2284b5['$dropdown'][_0x5e92b6(0x1f0)](),_0x4bb89d&&(yield _0x1e16c8(_0x2284b5,_0x5e323a));});}),_0x2284b5['$verifyBtn']=$(_0x125906(0x1e8)),_0x2284b5[_0x125906(0x19c)][_0x125906(0x1ac)](_0x2284b5[_0x125906(0x17a)]),_0x2284b5['$verifyBtn']['on'](_0x125906(0x1bc),()=>{const _0x5a14b9=_0x125906;this[_0x5a14b9(0x189)]();});!_0x2284b5[_0x125906(0x1e9)][_0x125906(0x14c)](_0x125906(0x172))&&_0x2284b5[_0x125906(0x1e9)]['attr'](_0x125906(0x172),'enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20');_0x2284b5[_0x125906(0x131)]=$(_0x125906(0x110)),_0x2284b5[_0x125906(0x131)][_0x125906(0x132)](),_0x2284b5[_0x125906(0x145)]=$(_0x125906(0x1a0))[_0x125906(0x150)]('sterfive-dropdown')['hide'](),_0x2284b5[_0x125906(0x1d1)][_0x125906(0x1ac)](_0x2284b5[_0x125906(0x131)]),_0x2284b5[_0x125906(0x1d1)][_0x125906(0x1ac)](_0x2284b5[_0x125906(0x145)]),_0x2284b5[_0x125906(0x169)]=$(_0x125906(0x170))[_0x125906(0x1b2)](_0x2284b5[_0x125906(0x145)]),this[_0x125906(0x15f)]();const _0x3ca504=(_0x343e85,_0x5dd583)=>{const _0x1276bb=_0x125906,_0x5d17f0=0x14,_0x3befc3=0x14,_0x522deb=_0x343e85[_0x1276bb(0x1b3)](),_0x46c0dd=_0x5dd583;if(_0x46c0dd['pageX']>=_0x522deb[_0x1276bb(0x1e4)]&&_0x46c0dd[_0x1276bb(0x155)]<=_0x522deb[_0x1276bb(0x1e4)]+_0x5d17f0&&_0x46c0dd['pageY']>=_0x522deb[_0x1276bb(0x12d)]&&_0x46c0dd['pageY']<=_0x522deb[_0x1276bb(0x12d)]+_0x3befc3)return!![];return![];},_0x2366e5=_0x279892=>_0x98de03(this,void 0x0,void 0x0,function*(){const _0x13ab15=_0x125906;if(_0x279892['hasClass']('expandable'))_0x3caaa0(_0x2284b5,_0x279892);else{if(_0x279892[_0x13ab15(0x1f5)]('expanded'))_0x279892[_0x13ab15(0x192)]('ul')[_0x13ab15(0x1f0)](),_0x279892[_0x13ab15(0x19d)](_0x13ab15(0x137));else{if(_0x279892[_0x13ab15(0x192)]('ul')[_0x13ab15(0x192)]()[_0x13ab15(0x179)]>0x0)_0x279892[_0x13ab15(0x192)]('ul')[_0x13ab15(0x1f0)](),_0x279892[_0x13ab15(0x19d)](_0x13ab15(0x137));else;}}});_0x2284b5['$tree']['on'](_0x125906(0x14e),'li',function(_0x27ec21){const _0x245dc8=_0x125906;var _0x554984,_0x1e8fe6;_0x27ec21[_0x245dc8(0x11b)]();let _0x26dbc6=$(this);if(_0x3ca504(_0x26dbc6,_0x27ec21))_0x2366e5(_0x26dbc6);else{const _0x34956d=_0x26dbc6[_0x245dc8(0x13e)]('value'),_0x20bdec=_0x26dbc6[_0x245dc8(0x13e)]('reference');if(_0x2284b5[_0x245dc8(0x1ec)][_0x245dc8(0x176)]&&!_0x2284b5[_0x245dc8(0x1ec)]['isSelectable'](_0x20bdec))return;_0x2284b5[_0x245dc8(0x1e9)][_0x245dc8(0x13e)](_0x245dc8(0x17e),_0x20bdec);const _0x41625e=((_0x554984=_0x20bdec[_0x245dc8(0x1b0)])===null||_0x554984===void 0x0?void 0x0:_0x554984['text'])||((_0x1e8fe6=_0x20bdec[_0x245dc8(0x143)])===null||_0x1e8fe6===void 0x0?void 0x0:_0x1e8fe6[_0x245dc8(0x11a)])||_0x20bdec[_0x245dc8(0x149)][_0x245dc8(0x147)](),_0x3979f0='['+_0x41625e+']('+_0x34956d+')';_0x2284b5['$input'][_0x245dc8(0x14d)](_0x3979f0),_0x2284b5[_0x245dc8(0x1e9)][_0x245dc8(0x1a8)]('change'),_0x2284b5[_0x245dc8(0x145)][_0x245dc8(0x132)]();}}),_0x2284b5['$tree']['on'](_0x125906(0x1bc),'li',function(_0x3bdb6a){const _0x58cc2f=_0x125906;_0x3bdb6a[_0x58cc2f(0x11b)]();let _0x44739f=$(this);_0x3ca504(_0x44739f,_0x3bdb6a)&&_0x2366e5(_0x44739f),_0x5d8017(_0x2284b5,_0x44739f);}),$(document)['on'](_0x125906(0x1bc),function(_0x5b32cf){const _0x308ed2=_0x125906;!$(_0x5b32cf[_0x308ed2(0x1b1)])['closest'](_0x2284b5['$combo'])['length']&&_0x2284b5[_0x308ed2(0x145)][_0x308ed2(0x132)]();});}});},_0x5598f1=()=>{const _0x4434e4=_0x52e0be,_0x2ff514=$(_0x4434e4(0x1a6)),_0x5ccd0e=_0x2ff514[_0x4434e4(0x14d)](),_0x6c1824=RED['nodes'][_0x4434e4(0x190)](_0x5ccd0e);if(!_0x6c1824)return undefined;const {endpoint:_0xdf35c7,securityMode:_0x375cb3,securityPolicy:_0x530175,userIdentityType:_0x2874c7,credentials:_0x5ea159}=_0x6c1824,_0x4b44a={'endpoint':_0xdf35c7,'securityMode':_0x375cb3,'securityPolicy':_0x530175,'userIdentityType':_0x2874c7,'credentials':_0x5ea159};return _0x4b44a;},_0x2685b4=()=>{return{'endpointNode':_0x8e941f};},_0x8e941f=()=>{const _0x593176=_0x52e0be,_0x2248e7=$(_0x593176(0x1a6)),_0x20ec85=_0x2248e7[_0x593176(0x14d)](),_0x21ef8a=_0x5598f1();if(!_0x21ef8a)return undefined;return{'id':_0x20ec85};};RED[_0x52e0be(0x1ae)][_0x52e0be(0x16b)](_0x52e0be(0x1a2),{'category':_0x52e0be(0x159),'color':'#C0DEED','align':_0x52e0be(0x163),'icon':_0x52e0be(0x1b9),'paletteLabel':_0x52e0be(0x1e2),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x52e0be(0x1d9)},'historyReadParam':{'value':{'type':_0x52e0be(0x15e),'endTime':'1m\x20ago','startTime':_0x52e0be(0x124),'numValuesPerNode':0x64,'returnBounds':!![]},'required':!![],'validate':_0x328b78=>{if(_0x328b78==='')return![];return!![];}},'nodeId':{'value':'','required':![]},'outputType':{'value':_0x52e0be(0x1e7),'required':!![]}},'outputs':0x2,'label'(){const _0xf8dcec=_0x52e0be;return this[_0xf8dcec(0x11a)]||_0xf8dcec(0x127);},'labelStyle'(){const _0x1bffb6=_0x52e0be;return this['name']?_0x1bffb6(0x12e):'';},'oneditprepare'(){const _0x1d0357=_0x52e0be,_0x50d96c=this;_0x50353e(),_0x50d96c[_0x1d0357(0x16f)]=0x1;const _0x229517=$(_0x1d0357(0x188));_0x229517[_0x1d0357(0x1d4)](Object[_0x1d0357(0x199)](Object[_0x1d0357(0x199)]({},_0x2685b4()),{'isSelectable'(_0xbe6f5a){const _0x3dd0ca=_0x1d0357;return _0xbe6f5a[_0x3dd0ca(0x1bb)]===_0x3dd0ca(0x19b);}})),$(_0x1d0357(0x1a1))[_0x1d0357(0x14d)](_0x50d96c[_0x1d0357(0x1dc)][_0x1d0357(0x1c2)]);switch(_0x50d96c[_0x1d0357(0x1dc)][_0x1d0357(0x1c2)]){case _0x1d0357(0x15e):$(_0x1d0357(0x167))[_0x1d0357(0x14d)](_0x50d96c[_0x1d0357(0x1dc)][_0x1d0357(0x146)]),$('#node-input-raw-endTime')['val'](_0x50d96c[_0x1d0357(0x1dc)][_0x1d0357(0x16c)]),$(_0x1d0357(0x17d))[_0x1d0357(0x14d)](_0x50d96c[_0x1d0357(0x1dc)][_0x1d0357(0x120)]),$(_0x1d0357(0x181))[_0x1d0357(0x197)](_0x1d0357(0x19a),_0x50d96c['historyReadParam'][_0x1d0357(0x198)]);break;case'modified':$(_0x1d0357(0x1c3))['val'](_0x50d96c[_0x1d0357(0x1dc)][_0x1d0357(0x146)]),$('#node-input-modified-endTime')[_0x1d0357(0x14d)](_0x50d96c[_0x1d0357(0x1dc)]['endTime']),$('#node-input-modified-numValuesPerNode')[_0x1d0357(0x14d)](_0x50d96c['historyReadParam'][_0x1d0357(0x120)]),$(_0x1d0357(0x1c1))[_0x1d0357(0x197)](_0x1d0357(0x19a),_0x50d96c['historyReadParam'][_0x1d0357(0x198)]);break;case _0x1d0357(0x1d7):_0x50d96c['historyReadParam']['aggregateConfiguration']=_0x50d96c[_0x1d0357(0x1dc)][_0x1d0357(0x126)]||{},$('#node-input-processed-details-startTime')['val'](_0x50d96c[_0x1d0357(0x1dc)]['startTime']),$(_0x1d0357(0x165))[_0x1d0357(0x14d)](_0x50d96c['historyReadParam'][_0x1d0357(0x16c)]),$('#node-input-processed-details-processingInterval')[_0x1d0357(0x14d)](_0x50d96c[_0x1d0357(0x1dc)][_0x1d0357(0x1ed)]),$(_0x1d0357(0x1f8))[_0x1d0357(0x14d)](_0x50d96c[_0x1d0357(0x1dc)][_0x1d0357(0x1a7)]),$(_0x1d0357(0x129))[_0x1d0357(0x197)](_0x1d0357(0x19a),_0x50d96c[_0x1d0357(0x1dc)][_0x1d0357(0x126)][_0x1d0357(0x18c)]),$(_0x1d0357(0x1d0))[_0x1d0357(0x197)](_0x1d0357(0x19a),_0x50d96c[_0x1d0357(0x1dc)][_0x1d0357(0x126)][_0x1d0357(0x1c8)]),$(_0x1d0357(0x162))[_0x1d0357(0x14d)](_0x50d96c['historyReadParam'][_0x1d0357(0x126)]['percentDataBad']),$(_0x1d0357(0x1c0))[_0x1d0357(0x14d)](_0x50d96c['historyReadParam'][_0x1d0357(0x126)][_0x1d0357(0x194)]),$(_0x1d0357(0x18b))[_0x1d0357(0x197)](_0x1d0357(0x19a),_0x50d96c[_0x1d0357(0x1dc)]['aggregateConfiguration'][_0x1d0357(0x153)]);break;}{function _0x41ff7d(){const _0x605d52=_0x1d0357;$(_0x605d52(0x1da))['hide'](),$(_0x605d52(0x1d5))[_0x605d52(0x132)](),$(_0x605d52(0x185))[_0x605d52(0x132)](),$(_0x605d52(0x16d))[_0x605d52(0x132)](),$('#section-annotation-data')[_0x605d52(0x132)](),$(_0x605d52(0x1be))[_0x605d52(0x132)]();}function _0x2d8899(){const _0x1e716f=_0x1d0357;_0x41ff7d();var _0xa57a0c=$(_0x1e716f(0x1a1))[_0x1e716f(0x14d)]();$(_0x1e716f(0x18e)+_0xa57a0c)[_0x1e716f(0x14a)]();}$(_0x1d0357(0x1a1))['on'](_0x1d0357(0x1cd),_0x2d8899),_0x2d8899();}},'oneditsave'(){const _0xc805f6=_0x52e0be,_0x417569=_0x43e78b=>_0x43e78b[_0xc805f6(0x14d)]()==undefined?'':_0x43e78b['val']()['toString'](),_0x72beb3=_0x2b2199=>_0x2b2199['val']()==undefined?0x0:_0x2b2199['val'](),_0x4d12fb=$(_0xc805f6(0x1a1))[_0xc805f6(0x14d)]();switch(_0x4d12fb){case'raw':this[_0xc805f6(0x1dc)]={'type':'raw','startTime':_0x417569($(_0xc805f6(0x167))),'endTime':_0x417569($(_0xc805f6(0x11c))),'numValuesPerNode':_0x72beb3($(_0xc805f6(0x17d))),'returnBounds':$(_0xc805f6(0x181))[_0xc805f6(0x197)](_0xc805f6(0x19a))};break;case _0xc805f6(0x118):this[_0xc805f6(0x1dc)]={'type':_0xc805f6(0x118),'startTime':_0x417569($(_0xc805f6(0x1c3))),'endTime':_0x417569($(_0xc805f6(0x140))),'numValuesPerNode':_0x72beb3($('#node-input-modified-numValuesPerNode')),'returnBounds':$(_0xc805f6(0x1c1))['prop']('checked')};break;case _0xc805f6(0x1d7):this['historyReadParam']={'type':_0xc805f6(0x1d7),'startTime':_0x417569($(_0xc805f6(0x1f9))),'endTime':_0x417569($('#node-input-processed-details-endTime')),'processingInterval':_0x72beb3($(_0xc805f6(0x164))),'aggregateType':_0x417569($('#node-input-processed-details-aggregateType')),'aggregateConfiguration':{'useServerCapabilitiesDefaults':$(_0xc805f6(0x129))[_0xc805f6(0x197)](_0xc805f6(0x19a)),'treatUncertainAsBad':$(_0xc805f6(0x1d0))[_0xc805f6(0x197)](_0xc805f6(0x19a)),'percentDataBad':_0x72beb3($(_0xc805f6(0x162))),'percentDataGood':_0x72beb3($(_0xc805f6(0x1c0))),'useSlopedExtrapolation':$('#node-input-processed-details-aggregateConfiguration-useSlopedExtrapolation')[_0xc805f6(0x197)](_0xc805f6(0x19a))}};break;}}});}()));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg5OGRlMDMiLCJfMHg1OWE5OGUiLCJfMHgxOGYxMTUiLCJfMHgzYjY1OTMiLCJfMHgxY2I0NzkiLCJfMHgxNzk3YTciLCJfMHg1YTg2MWYiLCJfMHg0ZGJlNGMiLCJQcm9taXNlIiwiXzB4NWI5NTczIiwiXzB4MjVkYTA3IiwiXzB4NDA2ZGQ3IiwiXzB4MTBlY2Q2IiwiXzB4NDYwY2Q1IiwiXzB4MmQzNzIwIiwiXzB4MTYyMWNjIiwiXzB4ZWI2MTA1IiwiXzB4MmM0OGM0IiwiXzB4NTk5MTU3IiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4MzJkYmY4IiwiXzB4NTExMjQzIiwiXzB4NTkyNzNmIiwiXzB4MWI5NDQwIiwiRXJyb3IiLCJfMHg5NDljZTIiLCJfMHg0MmZkZWYiLCJfMHgyMTRjNzYiLCJfMHhkNTkzODYiLCJfMHg1Yjg2YjAiLCJfMHg0NTc0NTIiLCJfMHgzMjhhNTkiLCJfMHgzYjE0NWEiLCJfMHgyN2NlOTQiLCJfMHgyN2NmN2MiLCJfMHgyZWFkMDkiLCJfMHg2YzlhZDkiLCJfMHgxNzA0ODIiLCJfMHg0OTk4MjMiLCJfMHgxOTA0YTMiLCJfMHhlMmU2Y2EiLCJfMHgzNjA5OWMiLCJfMHg0NDM1NGMiLCJfMHgzZTdmNGQiLCJfMHgyYjAxYzIiLCJfMHgzMzkwMDciLCJfMHgzMmVjM2IiLCJfMHg2M2Q2NGUiLCJlbmRwb2ludE5vZGUiLCJfMHg0NTM3MDIiLCJlbmRwb2ludCIsIl8weDMyY2ZkNCIsImJhc2VVcmwiLCJfMHgzMWNjNTkiLCJfMHgxZjBmMGEiLCJfMHgzOTI3MTAiLCJfMHgyOGI4NzQiLCJfMHhkMWZlMSIsIl8weDIxOGRiOCIsIk9iamVjdCIsIl8weDU3OGUyMCIsImZldGNoIiwiSlNPTiIsImNvbnNvbGUiLCJfMHgzNGUwN2QiLCJfMHgxZTgxOTgiLCJfMHhlMTVjNTAiLCJfMHgxY2IzNGIiLCJfMHgyYjkwNmIiLCJfMHgxNjJhM2EiLCJfMHgzMzkyNDIiLCJfMHg1ZjQwNmMiLCJfMHgyYmJmMTYiLCJfMHg0M2ZjNTUiLCJub2RlSWQiLCJfMHg1MDFmMDMiLCJyb290Tm9kZUlkIiwiXzB4MjhlN2NhIiwiaXNUeXBlIiwiXzB4NDllZWNmIiwiXzB4M2JmMzRjIiwiXzB4YzFjYTBkIiwiXzB4MjJmM2I0IiwiXzB4NGE1YjFlIiwiXzB4M2FhMmFiIiwiXzB4MjNhYzg2IiwiXzB4YWI0ODJiIiwiXzB4NDQwYzkzIiwiXzB4MzU5NDNjIiwiXzB4M2RkNTQ1IiwiXzB4MTUwY2VlIiwiXzB4MTlhMDkyIiwiXzB4MTFlNDE0IiwiXzB4OTZiYWEwIiwiXzB4Mjk3YzIwIiwiXzB4MWY0NDQyIiwiXzB4NmRjZTg3IiwiXzB4NDAxOTE3IiwiXzB4NGUzMjdmIiwiXzB4NWI4NDFkIiwic2V0VGltZW91dCIsIl8weDRlMjliYyIsIl8weDQ2ZmNjYyIsIl8weDI0YmM0NSIsIl8weGE2Nzg5YiIsIl8weDFkNWE3NSIsIl8weDRhNDk0YyIsIl8weGE3NzgzYSIsIl8weDJhZjE2YyIsIl8weDJjNGFmNiIsIl8weDRiYzExNiIsIl8weDUyODUwYiIsIl8weDU0NWIzNiIsIl8weDRiZTdhYSIsIl8weDc4MzY2NyIsIl8weDM0YWI0MSIsIl8weDRlYjE5NCIsIl8weDM5OWQ1NCIsIl8weDVjMGFkYyIsIl8weDFhYmIyMSIsIl8weDMxODkxNiIsIiQiLCJfMHg0ZTViZDAiLCJfMHgzMmJkNWYiLCJpY29uIiwiXzB4M2E5MTNhIiwiY29sb3IiLCJfMHg1NTgzMjUiLCJfMHgyYzI2ZWIiLCJfMHgyNDFhZWEiLCJfMHg5OTYxZCIsIl8weDJmYjQ0YiIsIl8weDExMzVkYiIsIl8weDVkODAxNyIsIl8weDU0MmNmNSIsIl8weDEwYzc1OCIsIl8weDU5MDU3YSIsIl8weDQ1OTVkNCIsIl8weDIxOWRiYiIsIl8weDFlN2Q3NCIsIl8weDI1ZDg0MiIsIl8weDI1MjA3ZCIsIl8weDE5YWE1IiwiXzB4M2NhYWEwIiwiXzB4NWM2Nzc1IiwiXzB4MWVlMDMzIiwiXzB4MzM3N2IzIiwiXzB4MzJiNDc4IiwiXzB4M2MwMzE3IiwiXzB4NTMzMTY1IiwidW5kZWZpbmVkIiwiXzB4MTk1ZDJhIiwiXzB4MWUxNmM4IiwiXzB4M2EyOTI1IiwiXzB4MmExZmE4IiwiXzB4MWUwZGQyIiwiXzB4NDYyNzY0IiwiXzB4NWFjNTM3IiwiXzB4MTA1MWU2IiwiXzB4MmVkNWE5IiwiXzB4NDRiYzllIiwiXzB4NTllNDFhIiwiXzB4NDcwZDEyIiwiXzB4NTQwNTg0IiwiXzB4ODJhMGU0IiwicmVmZXJlbmNlcyIsIl8weDFlZTVkZCIsIl8weDQ1Yzk4OCIsIl8weDIwYzcyMyIsIl8weDJmNjRiOSIsIl8weDNhMjlmOCIsIl8weDMwNjdkYyIsIl8weDU2NDc0YSIsIl8weDU5YjMzYiIsIl8weDEwYzFmZCIsIl8weDMzMjE5NCIsIl8weDMxMmYzYiIsIl8weDUwMzUzZSIsIl8weDNkODM4NiIsIl8weDM5MjAxMyIsIl8weDQ5MWMyMiIsIl8weDI5MTcwMCIsIl8weDJhNTc5YSIsIl8weDE2MGZjMSIsIl8weDIwYzljOSIsIl8weGQ1ZDUxYiIsIl8weDUzMTc2YyIsIl8weDIyODRiNSIsIl8weDM4Mzk0MyIsIl8weDRiYjg5ZCIsIl8weDVlMzIzYSIsIl8weDNjYTUwNCIsIl8weDM0M2U4NSIsIl8weDVkZDU4MyIsIl8weDVkMTdmMCIsIl8weDNiZWZjMyIsIl8weDUyMmRlYiIsIl8weDQ2YzBkZCIsIl8weDIzNjZlNSIsIl8weDI3OTg5MiIsIl8weDI3ZWMyMSIsIl8weDU1NDk4NCIsIl8weDFlOGZlNiIsIl8weDI2ZGJjNiIsIl8weDM0OTU2ZCIsIl8weDIwYmRlYyIsIl8weDQxNjI1ZSIsIl8weDM5NzlmMCIsIl8weDNiZGI2YSIsIl8weDQ0NzM5ZiIsImRvY3VtZW50IiwiXzB4NWIzMmNmIiwiXzB4NTU5OGYxIiwiXzB4MmZmNTE0IiwiXzB4NWNjZDBlIiwiXzB4NmMxODI0IiwiUkVEIiwiXzB4ZGYzNWM3Iiwic2VjdXJpdHlNb2RlIiwiXzB4Mzc1Y2IzIiwic2VjdXJpdHlQb2xpY3kiLCJfMHg1MzAxNzUiLCJ1c2VySWRlbnRpdHlUeXBlIiwiXzB4Mjg3NGM3IiwiY3JlZGVudGlhbHMiLCJfMHg1ZWExNTkiLCJfMHg0YjQ0YSIsIl8weDI2ODViNCIsIl8weDhlOTQxZiIsIl8weDIyNDhlNyIsIl8weDIwZWM4NSIsIl8weDIxZWY4YSIsIl8weDMyOGI3OCIsIl8weDUwZDk2YyIsIl8weDIyOTUxNyIsIl8weGJlNmY1YSIsIl8weDQxZmY3ZCIsIl8weDJkODg5OSIsIl8weGE1N2EwYyIsIl8weDQxNzU2OSIsIl8weDQzZTc4YiIsIl8weDcyYmViMyIsIl8weDJiMjE5OSIsIl8weDRkMTJmYiJdLCJtYXBwaW5ncyI6IjJuSkFBQSxDQUFDLFUsQ0FDRyxhLHdCQW1CQSxTQUFTQSxTQUFULENBQW1CQyxTQUFuQixDQUE0QkMsU0FBNUIsQ0FBd0NDLFNBQXhDLENBQTJDQyxTQUEzQyxDLENBQ0ksU0FBU0MsU0FBVCxDQUFlQyxTQUFmLEMsUUFBK0JBLFNBQUEsWUFBaUJILFNBQWpCLENBQXFCRyxTQUFyQixDQUE2QixJQUFJSCxTQUFKLENBQU0sU0FBVUksU0FBVixDLENBQXFCQSxTQUFBLENBQVFELFNBQVIsQyxFQUEzQixDLFNBQ3JELEdBQUssQ0FBQUgsU0FBQSxFQUFNLENBQUFBLFNBQUEsQ0FBSUssT0FBSixDQUFOLENBQUwsQ0FBeUIsU0FBVUMsU0FBVixDQUFtQkMsU0FBbkIsQyx5QkFDNUIsU0FBU0MsU0FBVCxDQUFtQkMsU0FBbkIsQyxDQUE0QixHLENBQU1DLFNBQUEsQ0FBS1QsU0FBQSxDLE1BQUEsRUFBZVEsU0FBZixDQUFMLEMsRUFBK0IsTUFBT0UsU0FBUCxDLENBQVlKLFNBQUEsQ0FBT0ksU0FBUCxDLEdBQzdFLFNBQVNDLFNBQVQsQ0FBa0JDLFNBQWxCLEMseUJBQTJCLEcsQ0FBTUgsU0FBQSxDQUFLVCxTQUFBLEMsZ0JBQUEsRUFBbUJZLFNBQW5CLENBQUwsQyxFQUFtQyxNQUFPQyxTQUFQLEMsQ0FBWVAsU0FBQSxDQUFPTyxTQUFQLEMsR0FDaEYsU0FBU0osU0FBVCxDQUFjSyxTQUFkLEMseUJBQXdCQSxTQUFBLEMsZ0JBQUEsRUFBY1Qs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LENBQWN4SCxDQUFBLEMsZ0JBQUEsQ0FBZCxDQUpBLEMsZUFLcEIsQ0FBZXNILFNBQUEsQ0FBWXRILENBQUEsQyw2Q0FBQSxDQUFaLENBTEssQyx3QkFNcEIsQ0FBd0IsQywrQkFDcEIsQ0FBK0JBLENBQUEsQyxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsQ0FEWCxDLHFCQUVwQixDQUFxQkEsQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxDQUZELEMsZ0JBR3BCLENBQWdCd0gsU0FBQSxDQUFjeEgsQ0FBQSxDLGdCQUFBLENBQWQsQ0FISSxDLGlCQUlwQixDQUFpQndILFNBQUEsQ0FBY3hILENBQUEsQyxnQkFBQSxDQUFkLENBSkcsQyx3QkFLcEIsQ0FBd0JBLENBQUEsQyw2RUFBQSxFLGdCQUFBLEUsZ0JBQUEsQ0FMSixDQU5KLENBQXhCLENBY0EsTUFsQ1IsQyxDQXBHNEMsQ0FBcEQsQyxFQXhtQkosRyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCwgSXRlcmF0b3IgKi9cclxuXHJcblxyXG4gICAgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gXCJmdW5jdGlvblwiID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7XHJcbiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICAgICAgcmV0dXJuIGUubmFtZSA9IFwiU3VwcHJlc3NlZEVycm9yXCIsIGUuZXJyb3IgPSBlcnJvciwgZS5zdXBwcmVzc2VkID0gc3VwcHJlc3NlZCwgZTtcclxuICAgIH07XG5cbiAgICBjb25zdCBPcmdhbml6ZXNSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNVwiO1xuICAgIGNvbnN0IEZvbGRlclR5cGUgPSBcIm5zPTA7aT02MVwiO1xuICAgIGNvbnN0IEhhc0NvbXBvbmVudFJlZk5vZGVJZCA9IFwibnM9MDtpPTQ3XCI7XG4gICAgY29uc3QgSGFzUHJvcGVydHlSZWZOb2RlSWQgPSBcIm5zPTA7aT00NlwiO1xuICAgIGNvbnN0IEhhc0NoaWxkUmVmTm9kZUlkID0gXCJucz0wO2k9MzRcIjtcbiAgICBjb25zdCBIYXNTdWJ0eXBlUmVmTm9kZUlkID0gXCJucz0wO2k9NDVcIjtcbiAgICBjb25zdCBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZCA9IFwibnM9MDtpPTQwXCI7XG5cbiAgICB2YXIgQnJvd3NlRGlyZWN0aW9uO1xuICAgIChmdW5jdGlvbiAoQnJvd3NlRGlyZWN0aW9uKSB7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJGb3J3YXJkXCJdID0gMF0gPSBcIkZvcndhcmRcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmVyc2VcIl0gPSAxXSA9IFwiSW52ZXJzZVwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiQm90aFwiXSA9IDJdID0gXCJCb3RoXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZhbGlkXCJdID0gM10gPSBcIkludmFsaWRcIjtcbiAgICB9KShCcm93c2VEaXJlY3Rpb24gfHwgKEJyb3dzZURpcmVjdGlvbiA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzcztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzcykge1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVW5zcGVjaWZpZWRcIl0gPSAwXSA9IFwiVW5zcGVjaWZpZWRcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzIHx8IChOb2RlQ2xhc3MgPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3NNYXNrO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzTWFzaykge1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzTWFzayB8fCAoTm9kZUNsYXNzTWFzayA9IHt9KSk7XG4gICAgdmFyIFJlc3VsdE1hc2s7XG4gICAgKGZ1bmN0aW9uIChSZXN1bHRNYXNrKSB7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAxXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJJc0ZvcndhcmRcIl0gPSAyXSA9IFwiSXNGb3J3YXJkXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIk5vZGVDbGFzc1wiXSA9IDRdID0gXCJOb2RlQ2xhc3NcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiQnJvd3NlTmFtZVwiXSA9IDhdID0gXCJCcm93c2VOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkRpc3BsYXlOYW1lXCJdID0gMTZdID0gXCJEaXNwbGF5TmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJUeXBlRGVmaW5pdGlvblwiXSA9IDMyXSA9IFwiVHlwZURlZmluaXRpb25cIjtcbiAgICB9KShSZXN1bHRNYXNrIHx8IChSZXN1bHRNYXNrID0ge30pKTtcbiAgICAvLyAgY29uc3QgcSA9IFJlZmVyZW5jZVR5cGVJZHMuT3JnYW5pemVzO1xuICAgIGZ1bmN0aW9uIHJlc29sdmVOb2RlSWQobm9kZUlkTGlrZSkge1xuICAgICAgICBzd2l0Y2ggKG5vZGVJZExpa2UpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPcmdhbml6ZXNcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gT3JnYW5pemVzUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1Byb3BlcnR5XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1Byb3BlcnR5UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NvbXBvbmVudFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDb21wb25lbnRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ2hpbGRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ2hpbGRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzU3VidHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNTdWJ0eXBlUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1R5cGVEZWZpbml0aW9uXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZ2V0SWNvbiA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgc3dpdGNoIChyZWZlcmVuY2Uubm9kZUNsYXNzKSB7XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0XCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IE9yZ2FuaXplc1JlZk5vZGVJZCkgO1xuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UudHlwZURlZmluaXRpb24gPT09IEZvbGRlclR5cGUgfHwgcmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gXCJpPTYxXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1mb2xkZXJcIiwgY29sb3I6IFwicmdiYSg2MSwgNjAsIDQsIDAuNTI1KVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIlNlYUdyZWVuXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNDb21wb25lbnRSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJTdGVlbEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNQcm9wZXJ0eVJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkRvZGdlckJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgXCJNZXRob2RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWNvZ1wiLCBjb2xvcjogXCJTYW5keUJyb3duXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1zbGlkZXJzXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIkRhdGFUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS10ZXh0LXdpZHRoXCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1xdWVzdGlvblwiLCBjb2xvcjogXCJncmV5XCIgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgYnJvd3NlID0gKF9hLCBub2RlSWRfMSwgdGVtcGxhdGVfMSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hLCBub2RlSWRfMSwgdGVtcGxhdGVfMV0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkLCB0ZW1wbGF0ZSkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZm9yLW5vZGUtcmVkYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vYnJvd3NlYDtcbiAgICAgICAgY29uc3QgYnJvd3NlRGVzY3JpcHRpb24gPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRlKSwgeyBub2RlSWQsIHJlc3VsdE1hc2s6IDYzIH0pO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBicm93c2VEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzOiBbXSB9O1xuICAgICAgICB9XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiYnJvd3NlIGZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZXMgPSByZXNwb25zZS5icm93c2VSZXN1bHQucmVmZXJlbmNlcyB8fCBbXTtcbiAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlcyB9O1xuICAgIH0pO1xuXG4gICAgY29uc3QgdGVtcGxhdGUxID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNDaGlsZFwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IHRlbXBsYXRlMiA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiT3JnYW5pemVzXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3Qgd2Fsa0JhY2t3YXJkID0gKF9hLCBfYikgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hLCBfYl0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgeyBub2RlSWQsIHJvb3ROb2RlSWQsIGlzVHlwZSB9KSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1mb3Itbm9kZS1yZWRgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS93YWxrLWJhY2t3YXJkYDtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgICAgIHJvb3ROb2RlSWQsXG4gICAgICAgICAgICAgICAgaXNUeXBlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIHJldHVybiBqc29uLmJyb3dzZVBhdGg7XG4gICAgfSk7XG4gICAgY29uc3QgaW50ZXJuYWxWZXJpZnkgPSAoX2EsICRpbnB1dEVsZW1lbnRfMSwgJGluZm9fMSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hLCAkaW5wdXRFbGVtZW50XzEsICRpbmZvXzFdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sICRpbnB1dEVsZW1lbnQsICRpbmZvKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1mb3Itbm9kZS1yZWRgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9jaGVja05vZGVJZGA7XG4gICAgICAgIGNvbnN0IG5vZGVJZCA9ICRpbnB1dEVsZW1lbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgc2V0Tm90aWZpY2F0aW9uID0gKHRleHQsIGNsYXNzTmFtZSkgPT4ge1xuICAgICAgICAgICAgJGluZm8udGV4dCh0ZXh0KS5hZGRDbGFzcyhcInN0ZXJmaXZlLWluZm9cIikuYWRkQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICRpbmZvLnNob3coKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICRpbmZvLnJlbW92ZUNsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAgICAgJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgfSwgMzAwMCk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGpzb24gPSAoeWllbGQgZGF0YS5qc29uKCkpO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nO1xuICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiISFmYWlsdXJlISFcIiArIG5vZGVJZCwgXCJmYWlsdXJlXCIpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGpzb24uc3RhdHVzQ29kZS5tYXRjaCgvR29vZC8pKSB7XG4gICAgICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nXG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoanNvbi5ub2RlQWRkcmVzc1N0cmluZyk7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihcIkdvb2RcIiwgXCJva1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGAke25vZGVJZH1gKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oYCR7anNvbi5zdGF0dXNDb2RlfSAke2RhdGEuc3RhdHVzVGV4dH1gLCBcImZhaWx1cmVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBmdW5jdGlvbiBmZXRjaENoaWxkcmVuKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUxKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDIgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTIpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzOiBbLi4uYnJvd3NlUmVzdWx0MS5yZWZlcmVuY2VzLCAuLi5icm93c2VSZXN1bHQyLnJlZmVyZW5jZXNdLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHRlbXBsYXRlU1QgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc1N1YnR5cGVcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfCBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8IE5vZGVDbGFzcy5EYXRhVHlwZSB8IE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgZnVuY3Rpb24gZmV0Y2hTdWJ0eXBlcygkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlU1QpO1xuICAgICAgICAgICAgcmV0dXJuIGJyb3dzZVJlc3VsdDE7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBtYWtlRWxlbWVudCA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgICAgICBpZiAoIXJlZmVyZW5jZSB8fCAhcmVmZXJlbmNlLm5vZGVJZCkge1xuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSBmYS1lcnJvclwiIHN0eWxlPVwiY29sb3I6cmVkO1wiPjwvaT5ubyByZWZlcmVuY2UgITx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbiA9IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgdCA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHsgaWNvbiwgY29sb3IgfSA9IGdldEljb24ocmVmZXJlbmNlKTtcbiAgICAgICAgY29uc3QgdGl0bGUgPSBgKCR7cmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpfSkgJHsoKF9jID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5uYW1lKSB8fCAoKF9kID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2QudGV4dCkgfHwgXCJcIn1gO1xuICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaSBrZXk9XCIke3JlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKX1cIn0+PHNwYW4gY2xhc3M9XCJ0cmVlLXRleHRcIiB0aXRsZT0ke3RpdGxlfT48aSBjbGFzcz1cImZhICR7aWNvbn1cIiBzdHlsZT1cImNvbG9yOiR7Y29sb3J9O1wiPjwvaT4gJHt0fTwvc3Bhbj48dWw+PC91bD48L2xpPmApO1xuICAgICAgICAkZWxlbWVudC5hZGRDbGFzcyhcImV4cGFuZGFibGVcIik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJ2YWx1ZVwiLCBuKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgfTtcbiAgICBjb25zdCBmaW5kRWxlbWVudCA9IChub2RlSWQsICR0cmVlKSA9PiB7XG4gICAgICAgIHJldHVybiAkdHJlZS5maW5kKGBsaVtrZXk9XCIke25vZGVJZH1cIl1gKTtcbiAgICB9O1xuICAgIGNvbnN0IHNlbGVjdFNpbmdsZSA9ICh0aGF0LCAkbGkpID0+IHtcbiAgICAgICAgdGhhdC4kdHJlZS5maW5kKFwibGkgPiAudHJlZS10ZXh0XCIpLnJlbW92ZUNsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgICAgIC8vIGNsZWFyIGFsbCBzZWxlY3RlZCBpdGVtc1xuICAgICAgICAkbGkuZmluZChcIi50cmVlLXRleHQ6Zmlyc3RcIikuYWRkQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgICB9O1xuICAgIGNvbnN0IGF1dG9FeHBhbmQgPSAodGhhdCwgYnJvd3NlUGF0aCwgJHRyZWUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAvLyBleHBhbmQgdGhlIHRyZWUgdG8gc2hvdyB0aGUgbm9kZUlkXG4gICAgICAgIGxldCAkY3VycmVudCA9ICR0cmVlLmNoaWxkcmVuKFwiOmZpcnN0XCIpO1xuICAgICAgICBicm93c2VQYXRoLnJlbGF0aXZlUGF0aC5lbGVtZW50cyB8fCBbXTtcbiAgICAgICAgY29uc3Qgbm9kZUlkcyA9IGJyb3dzZVBhdGgubm9kZUlkcyB8fCBbXTtcbiAgICAgICAgaWYgKG5vZGVJZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBuIG9mIG5vZGVJZHMpIHtcbiAgICAgICAgICAgIGlmICgkY3VycmVudC5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIGV4cGFuZCBhbmQgc2VsZWN0IHRoZSByaWdodCBlbGVtZW50XG4gICAgICAgICAgICAgICAgeWllbGQgX2V4cGFuZExpKHRoYXQsICRjdXJyZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gZmluZEVsZW1lbnQobiwgJGN1cnJlbnQpO1xuICAgICAgICAgICAgaWYgKCRlbGVtZW50Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRjdXJyZW50ID0gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgc2VsZWN0U2luZ2xlKHRoYXQsICRjdXJyZW50KTtcbiAgICAgICAgc2Nyb2xsVG9MaSh0aGF0LiRkcm9wZG93biwgJGN1cnJlbnQpO1xuICAgIH0pO1xuICAgIGZ1bmN0aW9uIHNjcm9sbFRvTGkoJGNvbnRhaW5lciwgJHRhcmdldExpKSB7XG4gICAgICAgIC8vIEdldCB0aGUgcG9zaXRpb24gb2YgdGhlIHRhcmdldCBpdGVtIHJlbGF0aXZlIHRvIGl0cyBjb250YWluZXJcbiAgICAgICAgY29uc3QgbGlQb3MgPSAkdGFyZ2V0TGkucG9zaXRpb24oKS50b3A7XG4gICAgICAgIC8vIEdldCB0aGUgY3VycmVudCBzY3JvbGwgcG9zaXRpb24gb2YgdGhlIGNvbnRhaW5lclxuICAgICAgICBjb25zdCBjb250YWluZXJTY3JvbGxUb3AgPSAkY29udGFpbmVyLnNjcm9sbFRvcCgpO1xuICAgICAgICBpZiAoY29udGFpbmVyU2Nyb2xsVG9wID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgcG9zaXRpb24gdG8gc2Nyb2xsIHRvIChjdXJyZW50IHNjcm9sbCArIGl0ZW0ncyBwb3NpdGlvbilcbiAgICAgICAgLy8gQWRqdXN0IHRoaXMgY2FsY3VsYXRpb24gYmFzZWQgb24geW91ciBuZWVkc1xuICAgICAgICBjb25zdCBzY3JvbGxUbyA9IGNvbnRhaW5lclNjcm9sbFRvcCArIGxpUG9zIC0gJGNvbnRhaW5lci5oZWlnaHQoKSAvIDIgKyAkdGFyZ2V0TGkuaGVpZ2h0KCkgLyAyO1xuICAgICAgICAvLyBTY3JvbGwgdGhlIGNvbnRhaW5lciB0byBlbnN1cmUgdGhlIGl0ZW0gaXMgdmlzaWJsZVxuICAgICAgICAkY29udGFpbmVyLmFuaW1hdGUoe1xuICAgICAgICAgICAgc2Nyb2xsVG9wOiBzY3JvbGxUbyxcbiAgICAgICAgfSwgNTAwKTsgLy8gQWRqdXN0IHRoZSBkdXJhdGlvbiAoNTAwbXMpIGFzIG5lZWRlZFxuICAgIH1cbiAgICBjb25zdCByZWFjaFNlbGVjdGlvbiA9ICh0aGF0LCBwYXJlbnROb2RlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gdGhhdC4kaW5wdXQudmFsKCk7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICByb290Tm9kZUlkOiBwYXJlbnROb2RlLm5vZGVJZCxcbiAgICAgICAgICAgIGlzVHlwZTogdGhhdC5vcHRpb25zLmlzVHlwZVJlZiB8fCBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICBjb25zdCBicm93c2VQYXRoID0geWllbGQgd2Fsa0JhY2t3YXJkKGRhdGEsIG9wdGlvbnMpO1xuICAgICAgICBpZiAoIWJyb3dzZVBhdGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB5aWVsZCBhdXRvRXhwYW5kKHRoYXQsIGJyb3dzZVBhdGgsIHRoYXQuJHRyZWUpO1xuICAgIH0pO1xuICAgIGZ1bmN0aW9uIF9mZXRjaERhdGFGb3JOb2RlKHRoYXQsICRub2RlLCBmZXRjaEZ1bmMsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJsb2FkaW5nXCIpKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgJG5vZGUuYXBwZW5kKCc8ZGl2IGNsYXNzPVwic3Bpbm5lclwiPjwvZGl2PicpO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgeyByZWZlcmVuY2VzIH0gPSB5aWVsZCBmZXRjaEZ1bmMoJG5vZGUsIGRhdGEpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5maWx0ZXIgJiYgIXRoYXQub3B0aW9ucy5maWx0ZXIocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFrZUNvbm5lY3Rpb24odGhhdCkge1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgZnVuY3Rpb24gX2V4cGFuZExpKHRoYXQsICRsaSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgY29uc3QgZiA9ICF0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmID8gZmV0Y2hDaGlsZHJlbiA6IGZldGNoU3VidHlwZXM7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHlpZWxkIF9mZXRjaERhdGFGb3JOb2RlKHRoYXQsICRsaSwgZiwgZGF0YSk7XG4gICAgICAgICAgICAgICAgLy8gbWFyayBhcyBleHBhbmRlZFxuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogWyBUZW1wZXJhdHVyZSAgXVxuICAgICAgICAgKiAgICggdG9vbHRpcCA6ICgvT2JqZWN0cy9NeVNlbnNvcikgKG5zPTE7cz1UZW1wZXJhdHVyZSkpXG4gICAgICAgICAqIFsgKyBbRm9sZGVyXSBPYmplY3RzXVxuICAgICAgICAgKiBbICAgICBbT2JqZWN0XSBNeVNlbnNvcl1cbiAgICAgICAgICogWyAgICAgKCApIFtWYXJpYWJsZV0gVGVtcGVyYXR1cmVdXG4gICAgICAgICAqL1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLm5vZGVCcm93c2VyXCIsIHtcbiAgICAgICAgICAgIC8qIGRlZmF1bHQgb3B0aW9ucyAqL1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogKCkgPT4gKHsgZW5kcG9pbnQ6IFwib3BjLnRjcDovL29wY3VhZGVtby5zdGVyZml2ZS5jb206MjY1NDNcIiB9KSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludDogKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGU6ICgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIGJyb3dzZU5hbWU6IHsgbmFtZXNwYWNlSW5kZXg6IDAsIG5hbWU6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIG5vZGVDbGFzczogXCJPYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgbm9kZUlkOiBcIm5zPTA7aT04NVwiLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogeyB0ZXh0OiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICB0eXBlRGVmaW5pdGlvbjogRm9sZGVyVHlwZSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6ICgpID0+IHRydWUsXG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgICAgICBpc1R5cGVSZWY6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc29sdmVQYXJlbnROb2RlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuX19wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdHlwZW9mIHRoYXQub3B0aW9ucy5wYXJlbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZS5jYWxsKHRoYXQpIDogdGhhdC5vcHRpb25zLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkZXNjID0geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGRlc2M7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoYXQuX19wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc2V0KCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICAvLyBhbHNvIHJlc2V0IHBhcmVudCBub2RlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0aGF0O1xuICAgICAgICAgICAgICAgICAgICBhLl9fcGFyZW50Tm9kZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnROb2RlID0geWllbGQgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KHBhcmVudE5vZGUpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuY3VycmVudFBhcmVudCA9IHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdmVyaWZ5KCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICAgICAgaW50ZXJuYWxWZXJpZnkoZGF0YSwgdGhhdC4kaW5wdXQsIHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5yZXBsYWNlV2l0aCh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cCA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJpbnB1dC1ncm91cFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5wdXRHcm91cCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kaW5wdXQpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5lZWRUb1JlYWNoU2VsZWN0aW9uID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyZWUgd2lkZ2V0IGlzIGdvaW5nIHRvIGJlY29tZSB2aXNpYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50Tm9kZSA9IHlpZWxkIHRoYXQucmVzb2x2ZVBhcmVudE5vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAhPT0gdGhhdC5jdXJyZW50UGFyZW50IHx8ICgoX2EgPSB0aGF0LmN1cnJlbnRQYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ub2RlSWQpICE9PSBwYXJlbnROb2RlLm5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB0aGF0LnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRUb1JlYWNoU2VsZWN0aW9uID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmVlZFRvUmVhY2hTZWxlY3Rpb24gJiYgKHlpZWxkIHJlYWNoU2VsZWN0aW9uKHRoYXQsIHBhcmVudE5vZGUpKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLWZsYXNrXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHZlcmlmeUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZlcmlmeSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICghdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiLCBcImVudGVyIGEgbm9kZUlkIG9yIGEgYnJvd3NlUGF0aCBcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8gPSAkKGA8ZGl2IGNsYXNzPVwiaW5mby10ZXh0XCI+PC9kaXY+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24gPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwic3RlcmZpdmUtZHJvcGRvd25cIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUgPSAkKGA8dWwgY2xhc3M9XCJzdGVyZml2ZS10cmVlXCI+PC91bD5gKS5hcHBlbmRUbyh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzT25MZWZ0U2l6ZSA9ICgkbGksIGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVdpZHRoID0gMjA7IC8vIFNldCB3aWR0aCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVIZWlnaHQgPSAyMDsgLy8gU2V0IGhlaWdodCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50UG9zID0gJGxpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgdG9nZ2xlRXhwYW5zaW9uID0gKCRsaSkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX2V4cGFuZExpKHRoYXQsICRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvZ2dsZSBpdHMgZXhwYW5kZWQvY29sbGFwc2VkIHN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuY2hpbGRyZW4oXCJ1bFwiKS5jaGlsZHJlbigpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJkYmxjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc09uTGVmdFNpemUoJGxpLCBldmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZUV4cGFuc2lvbigkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkbGkuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gJGxpLmRhdGEoXCJyZWZlcmVuY2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZSAmJiAhdGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZShyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBgWyR7ZGlzcGxheU5hbWV9XSgke3ZhbHVlfSlgO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPbkxlZnRTaXplKCRsaSwgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVFeHBhbnNpb24oJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RTaW5nbGUodGhhdCwgJGxpKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjbGlja2luZyBvdXRzaWRlIHRoZSBwYWdlIHdpbGwgaGlkZSB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCh0aGF0LiRjb21ibykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBnZXRFbmRQb2ludEF0dHJpYnV0ZXMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgcmVkTm9kZSA9IFJFRC5ub2Rlcy5ub2RlKGVuZHBvaW50SWQpO1xuICAgICAgICBpZiAoIXJlZE5vZGUpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAvLyBjb25zdCBjcmVkZW50aWFscyA9IFJFRC4oZW5kcG9pbnRJZCk7XG4gICAgICAgIC8vIHdlIG5lZWQgdG8gc2FuaXRpemUgYW5kIGV4dHJhY3QgdGhlIGVuZHBvaW50IGF0dHJpYnV0ZXMgb25seSAoIG5vdCB0aGUgbm9kZS1yZWQgc3R1ZmYpXG4gICAgICAgIGNvbnN0IHsgZW5kcG9pbnQsIHNlY3VyaXR5TW9kZSwgc2VjdXJpdHlQb2xpY3ksIHVzZXJJZGVudGl0eVR5cGUsIGNyZWRlbnRpYWxzIH0gPSByZWROb2RlO1xuICAgICAgICBjb25zdCByZXRWYWx1ZSA9IHtcbiAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgY3JlZGVudGlhbHMsXG4gICAgICAgIH07XG4gICAgICAgIC8vIHh4IGNvbnNvbGUubG9nKFwieHh4XCIsIHJldFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHJldFZhbHVlO1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50TnIgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgaWYgKCFlbmRwb2ludE5yKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogZW5kcG9pbnRJZCxcbiAgICAgICAgICAgIC8vIGVuZHBvaW50OiBlbmRwb2ludE5yLmVuZHBvaW50LFxuICAgICAgICAgICAgLy8gc2VjdXJpdHlNb2RlOiBlbmRwb2ludE5yLnNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIC8vIHNlY3VyaXR5UG9saWN5OiBlbmRwb2ludE5yLnNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIHVzZXJJZGVudGl0eVR5cGU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIC8vIGNyZWRlbnRpYWw6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gdXNlck5hbWU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyTmFtZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC8vIHBhc3N3b3JkOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIuY3JlZGVudGlhbHMucGFzc3dvcmQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyB1c2VyQ2VydGlmaWNhdGU6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlckNlcnRpZmljYXRlLFxuICAgICAgICAgICAgLy8gdXNlclByaXZhdGVrZXk6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlclByaXZhdGVrZXksXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1DbGllbnQyLUhpc3RvcnlSZWFkXCIsIHtcbiAgICAgICAgY2F0ZWdvcnk6IFwib3BjdWFcIixcbiAgICAgICAgY29sb3I6IFwiI0MwREVFRFwiLFxuICAgICAgICBhbGlnbjogXCJyaWdodFwiLFxuICAgICAgICBpY29uOiBcIi4uLy4uL2ljb25zL29wY3Vhbm9kZUxvZ28ucG5nXCIsXG4gICAgICAgIHBhbGV0dGVMYWJlbDogXCJyZWFkLWhpc3RvcnlcIixcbiAgICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgICAgIGlucHV0czogeyB2YWx1ZTogMSB9LFxuICAgICAgICAgICAgb3V0cHV0OiB7IHZhbHVlOiA0IH0sXG4gICAgICAgICAgICAvLyBDb21tb25cbiAgICAgICAgICAgIG5hbWU6IHsgdmFsdWU6IFwiXCIgfSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSwgdHlwZTogXCJPcGNVYS1FbmRwb2ludDJcIiB9LFxuICAgICAgICAgICAgaGlzdG9yeVJlYWRQYXJhbToge1xuICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwicmF3XCIsXG4gICAgICAgICAgICAgICAgICAgIGVuZFRpbWU6IFwiMW0gYWdvXCIsXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZTogXCIxMW0gYWdvXCIsXG4gICAgICAgICAgICAgICAgICAgIG51bVZhbHVlc1Blck5vZGU6IDEwMCxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuQm91bmRzOiB0cnVlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgdmFsaWRhdGU6ICh2YWwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbCA9PT0gXCJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvLyBmb3IgYWN0aW9uIHJlYWQgSGlzdG9yeVxuICAgICAgICAgICAgbm9kZUlkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIG91dHB1dFR5cGU6IHsgdmFsdWU6IFwiVmFsdWVcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gaW5wdXRzOixcbiAgICAgICAgb3V0cHV0czogMiwgLy8gMiBvdXRwdXQsIHNlY29uZCBmb3IgcmF3IG5vZGUtb3BjdWEgZGlhZ25vc3RpY3Mgb3IgbW9yZSBjb21wbGV0ZSBtZXNzYWdlXG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCBcIk9QQ1VBIENsaWVudCBIaXN0b3J5UmVhZFwiO1xuICAgICAgICB9LFxuICAgICAgICBsYWJlbFN0eWxlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IFwibm9kZV9sYWJlbF9pdGFsaWNcIiA6IFwiXCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHByZXBhcmUoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcztcbiAgICAgICAgICAgIGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCgpO1xuICAgICAgICAgICAgbm9kZS5pbnB1dHMgPSAxO1xuICAgICAgICAgICAgY29uc3QgJG5vZGVJZCA9ICQoXCIjbm9kZS1pbnB1dC1ub2RlSWRcIik7XG4gICAgICAgICAgICAkbm9kZUlkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBpc1NlbGVjdGFibGUobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJWYXJpYWJsZVwiO1xuICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICAgICAgJChcIiNzZWxlY3QtaGlzdG9yeS10eXBlXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0udHlwZSk7XG4gICAgICAgICAgICBzd2l0Y2ggKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS50eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcInJhd1wiOlxuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcmF3LXN0YXJ0VGltZVwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLnN0YXJ0VGltZSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1yYXctZW5kVGltZVwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLmVuZFRpbWUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcmF3LW51bVZhbHVlc1Blck5vZGVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5udW1WYWx1ZXNQZXJOb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXJldHVybkJvdW5kc1wiKS5wcm9wKFwiY2hlY2tlZFwiLCBub2RlLmhpc3RvcnlSZWFkUGFyYW0ucmV0dXJuQm91bmRzKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcIm1vZGlmaWVkXCI6XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1tb2RpZmllZC1zdGFydFRpbWVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5zdGFydFRpbWUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtbW9kaWZpZWQtZW5kVGltZVwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLmVuZFRpbWUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtbW9kaWZpZWQtbnVtVmFsdWVzUGVyTm9kZVwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLm51bVZhbHVlc1Blck5vZGUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtbW9kaWZpZWQtcmV0dXJuQm91bmRzXCIpLnByb3AoXCJjaGVja2VkXCIsIG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5yZXR1cm5Cb3VuZHMpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwicHJvY2Vzc2VkLWRldGFpbHNcIjpcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5oaXN0b3J5UmVhZFBhcmFtLmFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24gPSBub2RlLmhpc3RvcnlSZWFkUGFyYW0uYWdncmVnYXRlQ29uZmlndXJhdGlvbiB8fCB7fTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLXN0YXJ0VGltZVwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLnN0YXJ0VGltZSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1lbmRUaW1lXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0uZW5kVGltZSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1wcm9jZXNzaW5nSW50ZXJ2YWxcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5wcm9jZXNzaW5nSW50ZXJ2YWwpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlVHlwZVwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLmFnZ3JlZ2F0ZVR5cGUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi11c2VTZXJ2ZXJDYXBhYmlsaXRpZXNEZWZhdWx0c1wiKS5wcm9wKFwiY2hlY2tlZFwiLCBub2RlLmhpc3RvcnlSZWFkUGFyYW0uYWdncmVnYXRlQ29uZmlndXJhdGlvbi51c2VTZXJ2ZXJDYXBhYmlsaXRpZXNEZWZhdWx0cyk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVDb25maWd1cmF0aW9uLXRyZWF0VW5jZXJ0YWluQXNCYWRcIikucHJvcChcImNoZWNrZWRcIiwgbm9kZS5oaXN0b3J5UmVhZFBhcmFtLmFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24udHJlYXRVbmNlcnRhaW5Bc0JhZCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVDb25maWd1cmF0aW9uLXBlcmNlbnREYXRhQmFkXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0uYWdncmVnYXRlQ29uZmlndXJhdGlvbi5wZXJjZW50RGF0YUJhZCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVDb25maWd1cmF0aW9uLXBlcmNlbnREYXRhR29vZFwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLmFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24ucGVyY2VudERhdGFHb29kKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24tdXNlU2xvcGVkRXh0cmFwb2xhdGlvblwiKS5wcm9wKFwiY2hlY2tlZFwiLCBub2RlLmhpc3RvcnlSZWFkUGFyYW0uYWdncmVnYXRlQ29uZmlndXJhdGlvbi51c2VTbG9wZWRFeHRyYXBvbGF0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIGFkdmFuY2VkIGNvbnRyb2xzXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGhpZGVBbGxTZWN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tcmF3XCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLW1vZGlmaWVkXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLXByb2Nlc3NlZC1kZXRhaWxzXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLWF0LXRpbWVcIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tYW5ub3RhdGlvbi1kYXRhXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLWV2ZW50XCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gdG9nZ2xlU2VjdGlvbnMoKSB7XG4gICAgICAgICAgICAgICAgICAgIGhpZGVBbGxTZWN0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3RlZFZhbHVlID0gJChcIiNzZWxlY3QtaGlzdG9yeS10eXBlXCIpLnZhbCgpO1xuICAgICAgICAgICAgICAgICAgICAvLyBhbGVydChcInRvZ2dsZVNlY3Rpb25zIFwiICsgc2VsZWN0ZWRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1cIiArIHNlbGVjdGVkVmFsdWUpLnNob3coKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJChcIiNzZWxlY3QtaGlzdG9yeS10eXBlXCIpLm9uKFwiY2hhbmdlXCIsIHRvZ2dsZVNlY3Rpb25zKTtcbiAgICAgICAgICAgICAgICB0b2dnbGVTZWN0aW9ucygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWVBc1RleHQgPSAoYSkgPT4gKGEudmFsKCkgPT0gdW5kZWZpbmVkID8gXCJcIiA6IGEudmFsKCkudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZUFzTnVtYmVyID0gKGEpID0+IChhLnZhbCgpID09IHVuZGVmaW5lZCA/IDAgOiBhLnZhbCgpKTtcbiAgICAgICAgICAgIGNvbnN0IHR5cGUgPSAkKFwiI3NlbGVjdC1oaXN0b3J5LXR5cGVcIikudmFsKCk7XG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwicmF3XCI6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGlzdG9yeVJlYWRQYXJhbSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwicmF3XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWU6IHZhbHVlQXNUZXh0KCQoXCIjbm9kZS1pbnB1dC1yYXctc3RhcnRUaW1lXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZFRpbWU6IHZhbHVlQXNUZXh0KCQoXCIjbm9kZS1pbnB1dC1yYXctZW5kVGltZVwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBudW1WYWx1ZXNQZXJOb2RlOiB2YWx1ZUFzTnVtYmVyKCQoXCIjbm9kZS1pbnB1dC1yYXctbnVtVmFsdWVzUGVyTm9kZVwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5Cb3VuZHM6ICQoXCIjbm9kZS1pbnB1dC1yZXR1cm5Cb3VuZHNcIikucHJvcChcImNoZWNrZWRcIiksXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJtb2RpZmllZFwiOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpc3RvcnlSZWFkUGFyYW0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcIm1vZGlmaWVkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWU6IHZhbHVlQXNUZXh0KCQoXCIjbm9kZS1pbnB1dC1tb2RpZmllZC1zdGFydFRpbWVcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kVGltZTogdmFsdWVBc1RleHQoJChcIiNub2RlLWlucHV0LW1vZGlmaWVkLWVuZFRpbWVcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbnVtVmFsdWVzUGVyTm9kZTogdmFsdWVBc051bWJlcigkKFwiI25vZGUtaW5wdXQtbW9kaWZpZWQtbnVtVmFsdWVzUGVyTm9kZVwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5Cb3VuZHM6ICQoXCIjbm9kZS1pbnB1dC1tb2RpZmllZC1yZXR1cm5Cb3VuZHNcIikucHJvcChcImNoZWNrZWRcIiksXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJwcm9jZXNzZWQtZGV0YWlsc1wiOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpc3RvcnlSZWFkUGFyYW0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInByb2Nlc3NlZC1kZXRhaWxzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWU6IHZhbHVlQXNUZXh0KCQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1zdGFydFRpbWVcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kVGltZTogdmFsdWVBc1RleHQoJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWVuZFRpbWVcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc2luZ0ludGVydmFsOiB2YWx1ZUFzTnVtYmVyKCQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1wcm9jZXNzaW5nSW50ZXJ2YWxcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWdncmVnYXRlVHlwZTogdmFsdWVBc1RleHQoJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZVR5cGVcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWdncmVnYXRlQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZVNlcnZlckNhcGFiaWxpdGllc0RlZmF1bHRzOiAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi11c2VTZXJ2ZXJDYXBhYmlsaXRpZXNEZWZhdWx0c1wiKS5wcm9wKFwiY2hlY2tlZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmVhdFVuY2VydGFpbkFzQmFkOiAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi10cmVhdFVuY2VydGFpbkFzQmFkXCIpLnByb3AoXCJjaGVja2VkXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcmNlbnREYXRhQmFkOiB2YWx1ZUFzTnVtYmVyKCQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVDb25maWd1cmF0aW9uLXBlcmNlbnREYXRhQmFkXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJjZW50RGF0YUdvb2Q6IHZhbHVlQXNOdW1iZXIoJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24tcGVyY2VudERhdGFHb29kXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VTbG9wZWRFeHRyYXBvbGF0aW9uOiAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi11c2VTbG9wZWRFeHRyYXBvbGF0aW9uXCIpLnByb3AoXCJjaGVja2VkXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
9
9
  </script>
10
10
  <script type="text/x-red" data-template-name="OpcUa-Client2-HistoryRead">
11
11
  <style>