@opcua/for-node-red 2.3.0 → 2.3.1

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 _0x3f96(){const _0x29a0db=['show','licence-widget','throw','.section-securityPolicy','56zolNbw','catch','<br>','function','FAILED','checked','Anonymous','change','class','requestedMaxKeepAliveCount','OpcUa-Endpoint2','css','fa\x20fa-exclamation-circle','#node-config-input-securityMode','head','opc.tcp://opcuademo.sterfive.com:26543/UA/SampleServer','<i>','#node-config-input-userCertificate','application/json','<a\x20href=\x22mailto:support@sterfive.com\x22\x20subject=\x22@opcua/for-node-red\x20support\x20request\x22>mailto:support@sterfive.com</a>','Please\x20contact\x20','Default\x20Subscription','150px','next','-failure','attr','src','addTab','#checkCertificate','connection','SuppressedError','licence-widget-msg','done','apply','.input-maxNotificationsPerPublish','baseUrl','template','\x20or\x20visit\x20our\x20website\x20to\x20renew\x20your\x20license\x20and\x20regain\x20access\x20to\x20our\x20services.̀','.input-priority','Sign','<p>','#node-input-maxChunkCount','/opcua-endpoint2/test-connection','val','pricing-table-id','password','.input-publishingEnabled','Your\x20license\x20has\x20expired.\x20Please\x20contact\x20our\x20support\x20team\x20or\x20visit\x20our\x20website\x20to\x20renew\x20your\x20license\x20and\x20regain\x20access\x20to\x20our\x20services.','.input-name','priority','getTime','appendTo','#node-config-input-userName','stringify','script','internal\x20error\x20','registerType','#licenceWidget','21vPEail','AUTHORIZED','create','node-config-endpoint-tabs','Demo\x20licence','parameters','length','Connection','each','invalid\x20endpoint','json','map','publishingEnabled','#node-config-input-securityPolicy','securityMode','element','licenceWidget','4405887wBamCP','then','result','Your\x20license\x20is\x20currently\x20invalid.','https://js.stripe.com/v3/pricing-table.js','label','Certificate','err','hide','append','maxNotificationsPerPublish','editableList','statusText','join',':checked','sterfive.licenceWidget','#node-config-input-userIdentityType','data-i','Basic256Sha256','extra','opc.tcp:','<a\x20href=\x22https://www.sterfive.com/opcua/for-node-red\x22\x20target=”_blank”>Sterfive\x27s\x20website\x20</a>','items','#subscriptions-container','#node-input-certificate','requestedLifetimeCount','removeAttr','None','log','27WSzsEg','invalid\x20securityMode\x20','.input-requestedMaxKeepAliveCount','Fast\x20Subscription','Slow\x20Subscription','disabled','.input-isDefault','prop','text','html','#node-input-sendBufferSize','userIdentityType','find','#test-connection','replace','UserName','floor','licence-widget-','#node-config-input-endpoint','#node-input-receiveBufferSize','tabs','value','#node-config-endpoint-tabs-content','/licenceInfo','/opcua-endpoint2/client_certificate.json','</p>','style','assign','empty','name','1343367iyLgGJ','2156428MkjdXz','890655ojpNqE','config','invalid\x20userIdentityType\x20','POST','endpoint-tab-connection','subscriptions','licence-widget-icon','margin-top:\x2020px;','#node-input-localkeyfile','resize','typedInput','prctbl_1OJt49BCNccbzsVzkaANOgFL','fa\x20fa-calendar-time','EXPIRED','/opcua-endpoint2','message','2592318jdDNrC','click','.red-ui-editableList-item-remove','54802cjARAN','subscribe-button','-messages','error','31268580QMnGYp','width','licenceInfo','#node-config-input-password','clone','#toggleAdvancedSection','isDefault','async','<span>','Your\x20licence\x20is\x20valid.','addClass','height:\x20100%\x20!important;','push','Testing\x20Connection\x20...','status','widget','removeClass','createElement','<stripe-pricing-table/>','fetching\x20failed\x20with\x20error','children','.input-requestedPublishingInterval','#node-input-maxMessageSize'];_0x3f96=function(){return _0x29a0db;};return _0x3f96();}function _0x50f9(_0x32673c,_0x1fb770){const _0x3f968b=_0x3f96();return _0x50f9=function(_0x50f9f8,_0xd09c56){_0x50f9f8=_0x50f9f8-0x13a;let _0x4b7005=_0x3f968b[_0x50f9f8];return _0x4b7005;},_0x50f9(_0x32673c,_0x1fb770);}(function(_0x172f8e,_0x569875){const _0x10c2f1=_0x50f9,_0x49397e=_0x172f8e();while(!![]){try{const _0x2f20d2=parseInt(_0x10c2f1(0x13d))/0x1*(parseInt(_0x10c2f1(0x170))/0x2)+-parseInt(_0x10c2f1(0x1da))/0x3+parseInt(_0x10c2f1(0x15c))/0x4+parseInt(_0x10c2f1(0x15d))/0x5+-parseInt(_0x10c2f1(0x16d))/0x6*(parseInt(_0x10c2f1(0x1c9))/0x7)+-parseInt(_0x10c2f1(0x18f))/0x8*(parseInt(_0x10c2f1(0x15b))/0x9)+parseInt(_0x10c2f1(0x174))/0xa;if(_0x2f20d2===_0x569875)break;else _0x49397e['push'](_0x49397e['shift']());}catch(_0x48e06c){_0x49397e['push'](_0x49397e['shift']());}}}(_0x3f96,0xbd096),(function(){'use strict';const _0x26d952=_0x50f9;function _0x542500(_0x5ae874,_0x32e0c9,_0x21c159,_0x5effc9){function _0xfe0233(_0x2d5272){return _0x2d5272 instanceof _0x21c159?_0x2d5272:new _0x21c159(function(_0x842071){_0x842071(_0x2d5272);});}return new(_0x21c159||(_0x21c159=Promise))(function(_0x69e3db,_0x451d11){const _0x586310=_0x50f9;function _0x5bf4c6(_0x29fd94){const _0x99aad2=_0x50f9;try{_0x3154a6(_0x5effc9[_0x99aad2(0x1a6)](_0x29fd94));}catch(_0x54e806){_0x451d11(_0x54e806);}}function _0x3884b2(_0x29faee){const _0x14116c=_0x50f9;try{_0x3154a6(_0x5effc9[_0x14116c(0x18d)](_0x29faee));}catch(_0x2ee0ca){_0x451d11(_0x2ee0ca);}}function _0x3154a6(_0x1eb287){const _0x317ed5=_0x50f9;_0x1eb287[_0x317ed5(0x1af)]?_0x69e3db(_0x1eb287[_0x317ed5(0x152)]):_0xfe0233(_0x1eb287[_0x317ed5(0x152)])[_0x317ed5(0x1db)](_0x5bf4c6,_0x3884b2);}_0x3154a6((_0x5effc9=_0x5effc9[_0x586310(0x1b0)](_0x5ae874,_0x32e0c9||[]))['next']());});}typeof SuppressedError===_0x26d952(0x192)?SuppressedError:function(_0x2bf88b,_0x43bb81,_0x2a2733){const _0x467bf8=_0x26d952;var _0x3ca261=new Error(_0x2a2733);return _0x3ca261[_0x467bf8(0x15a)]=_0x467bf8(0x1ad),_0x3ca261[_0x467bf8(0x173)]=_0x2bf88b,_0x3ca261['suppressed']=_0x43bb81,_0x3ca261;};function _0x57982d(_0xb9803f,_0x5e182c,_0x5cd95a,_0x12713f){const _0x58bafa=_0x26d952,_0x228026=$('#'+_0xb9803f+'-success'),_0x2c5039=$('#'+_0xb9803f+_0x58bafa(0x1a7)),_0x41d1d2=$('#'+_0xb9803f+'-pending'),_0x473790=$('#'+_0xb9803f+_0x58bafa(0x172));let _0x40dd4e=![];_0x228026[_0x58bafa(0x1e2)](),_0x2c5039[_0x58bafa(0x1e2)](),_0x41d1d2[_0x58bafa(0x1e2)](),_0x5e182c['on'](_0x58bafa(0x16e),()=>{const _0x31dfc5=_0x58bafa;if(_0x40dd4e)return;_0x40dd4e=!![],_0x41d1d2[_0x31dfc5(0x184)](_0x31dfc5(0x1e2)),_0x41d1d2[_0x31dfc5(0x146)](_0x31dfc5(0x181)),_0x228026[_0x31dfc5(0x17e)](_0x31dfc5(0x1e2)),_0x2c5039[_0x31dfc5(0x17e)]('hide'),_0x473790[_0x31dfc5(0x146)]('');const {body:_0x27af71,url:_0x2a6b3f}=_0x5cd95a();fetch(_0x2a6b3f,{'method':'POST','headers':{'Content-Type':_0x31dfc5(0x1a1)},'body':JSON['stringify'](_0x27af71)})[_0x31dfc5(0x1db)](_0x1f747c=>_0x1f747c[_0x31dfc5(0x1d3)]())[_0x31dfc5(0x1db)](_0x2d09e3=>{const _0x4be842=_0x31dfc5;_0x40dd4e=![],_0x41d1d2[_0x4be842(0x1e2)](),console[_0x4be842(0x13c)](JSON[_0x4be842(0x1c4)](_0x2d09e3,null,'\x20'));if(_0x2d09e3[_0x4be842(0x1dc)]==='ok')_0x228026[_0x4be842(0x184)](_0x4be842(0x1e2)),_0x2c5039[_0x4be842(0x17e)]('hide'),_0x473790[_0x4be842(0x146)](_0x2d09e3[_0x4be842(0x16c)][_0x4be842(0x14b)]('\x0a',_0x4be842(0x191))),_0x12713f(null,_0x2d09e3);else{const _0x23b74c=_0x264d1a=>!_0x264d1a?'':_0x264d1a['split']('\x0a')[_0x4be842(0x1d4)](_0x1af0fe=>_0x4be842(0x1b7)+_0x1af0fe+_0x4be842(0x156))[_0x4be842(0x1e7)]('\x0a'),_0x283126=_0x42c316=>Array['isArray'](_0x42c316)?_0x42c316['map'](_0x23b74c)['join']('\x0a'):_0x23b74c(_0x42c316);_0x228026['addClass'](_0x4be842(0x1e2)),_0x2c5039[_0x4be842(0x184)](_0x4be842(0x1e2)),_0x473790[_0x4be842(0x146)](_0x283126(_0x2d09e3[_0x4be842(0x16c)])+_0x283126(_0x2d09e3[_0x4be842(0x1ed)])),_0x12713f(new Error(_0x2d09e3[_0x4be842(0x1dc)]),_0x2d09e3);}})[_0x31dfc5(0x190)](_0x7ab856=>{const _0x3fff1a=_0x31dfc5;_0x40dd4e=![],_0x41d1d2[_0x3fff1a(0x17e)](_0x3fff1a(0x1e2)),_0x228026[_0x3fff1a(0x17e)](_0x3fff1a(0x1e2)),_0x2c5039[_0x3fff1a(0x184)]('hide'),_0x473790[_0x3fff1a(0x146)](_0x3fff1a(0x1c6)+_0x7ab856[_0x3fff1a(0x16c)]),console[_0x3fff1a(0x13c)](_0x3fff1a(0x1e1),_0x7ab856),_0x12713f(_0x7ab856,null);});});}const _0x1a072d=_0x26d952(0x168),_0x5c9a1f='pk_live_51HsE1sBCNccbzsVzt7zaq2uv20pkryWllAzvZgZd5AhwFI9A3qBIeOJvJwQF08lDoLpFqLjwmyA79wnPnYLsvKjt009f00VpCW';function _0xe2a6d1(_0x368376=''){return _0x542500(this,void 0x0,void 0x0,function*(){const _0x3d63fb=_0x50f9,_0x6bc3d3=_0x368376+_0x3d63fb(0x16b),_0x5e6703=_0x6bc3d3+_0x3d63fb(0x154),_0x11a0e5=yield fetch(_0x5e6703,{'method':_0x3d63fb(0x160),'headers':{'Content-Type':_0x3d63fb(0x1a1)}});if(_0x11a0e5[_0x3d63fb(0x182)]!==0xc8)return console['log'](_0x3d63fb(0x187),_0x11a0e5[_0x3d63fb(0x182)],_0x11a0e5[_0x3d63fb(0x1e6)]),{};const _0x1f0cf7=yield _0x11a0e5[_0x3d63fb(0x1d3)]();return _0x1f0cf7;});}const _0x19202b=()=>{const _0x24b653=_0x26d952;$[_0x24b653(0x183)](_0x24b653(0x1e9),{'options':{'baseUrl':''},'_create'(){const _0x5ca31d=_0x24b653,_0x71938e=this,_0xa5bd21=_0x5ca31d(0x1a2),_0x12727c=_0x5ca31d(0x1ef);_0xe2a6d1(_0x71938e[_0x5ca31d(0x1b2)])[_0x5ca31d(0x1db)](_0x48e306=>{const _0x42bba9=_0x5ca31d;let _0x2ae4da='',_0x197708='',_0x4be9d6='';const _0x53c107=_0x48e306[_0x42bba9(0x182)];switch(_0x53c107){case _0x42bba9(0x1ca):_0x2ae4da='fa\x20fa-check-circle';if(_0x48e306['isDemo']){const _0x12ad0f=_0x48e306[_0x42bba9(0x176)]['expiryDate'],_0x40d03a=Math[_0x42bba9(0x14d)]((_0x12ad0f-new Date()[_0x42bba9(0x1c1)]())/(0x3e8*0xe10*0x18));_0x197708=_0x42bba9(0x1cd),_0x4be9d6='This\x20is\x20a\x20demo\x20licence\x20and\x20will\x20expire\x20in\x20'+_0x40d03a+'\x20days.\x20Buy\x20online\x20and\x20visit\x20'+_0x12727c+'\x20to\x20acquire\x20a\x20license.';}else _0x197708=_0x42bba9(0x17d),_0x4be9d6=_0x12727c+_0x42bba9(0x191)+_0xa5bd21;break;case'EXPIRED':_0x2ae4da=_0x42bba9(0x169),_0x197708='Licence\x20expired',_0x4be9d6=_0x42bba9(0x1be);break;case _0x42bba9(0x193):default:_0x2ae4da=_0x42bba9(0x19b),_0x197708=_0x42bba9(0x1dd),_0x4be9d6=_0x42bba9(0x1a3)+_0xa5bd21+_0x42bba9(0x1b4);break;}this[_0x42bba9(0x1d8)][_0x42bba9(0x17e)](_0x42bba9(0x18c)),this[_0x42bba9(0x1d8)][_0x42bba9(0x17e)](_0x42bba9(0x14e)+_0x53c107),this[_0x42bba9(0x1d8)]['append']($(_0x42bba9(0x17c))[_0x42bba9(0x17e)](_0x42bba9(0x163))[_0x42bba9(0x1e3)]($(_0x42bba9(0x19f))[_0x42bba9(0x17e)](_0x2ae4da))),this[_0x42bba9(0x1d8)]['append']($(_0x42bba9(0x17c))[_0x42bba9(0x17e)](_0x42bba9(0x1ae))[_0x42bba9(0x145)](_0x197708)),this[_0x42bba9(0x1d8)][_0x42bba9(0x1e3)]($(_0x42bba9(0x191))),this[_0x42bba9(0x1d8)][_0x42bba9(0x1e3)]($(_0x42bba9(0x17c))[_0x42bba9(0x17e)]('licence-widget-details')[_0x42bba9(0x1e3)](_0x4be9d6));if(_0x53c107===_0x42bba9(0x16a)||_0x53c107===_0x42bba9(0x193)){const _0x2f358b=$('<button/>');_0x2f358b['attr']('id',_0x42bba9(0x171)),_0x2f358b[_0x42bba9(0x1a8)](_0x42bba9(0x197),'btn\x20btn-primary'),_0x2f358b['attr'](_0x42bba9(0x157),_0x42bba9(0x164)),_0x2f358b[_0x42bba9(0x145)]('Subscribe'),this[_0x42bba9(0x1d8)][_0x42bba9(0x1e3)](_0x2f358b);const _0x2d19f8=document[_0x42bba9(0x185)](_0x42bba9(0x1c5));_0x2d19f8[_0x42bba9(0x1a9)]=_0x42bba9(0x1de),_0x2d19f8[_0x42bba9(0x17b)]=!![],$(_0x42bba9(0x19d))[_0x42bba9(0x1e3)](_0x2d19f8);const _0x2d06da=$(_0x42bba9(0x186));_0x2d06da['attr'](_0x42bba9(0x1bb),_0x1a072d),_0x2d06da[_0x42bba9(0x1a8)]('publishable-key',_0x5c9a1f),_0x2d06da[_0x42bba9(0x1a8)]('style','height:\x20100%;max-height:\x20100%;'),_0x2d06da[_0x42bba9(0x1e2)](),this[_0x42bba9(0x1d8)][_0x42bba9(0x1e3)](_0x2d06da),_0x2f358b['on']('click',()=>{const _0x348ba9=_0x42bba9;_0x2d06da[_0x348ba9(0x18b)](),_0x2f358b[_0x348ba9(0x1e2)](),this[_0x348ba9(0x1d8)][_0x348ba9(0x1a8)](_0x348ba9(0x157),_0x348ba9(0x17f));});}})[_0x5ca31d(0x190)](_0x215295=>{const _0xabfa02=_0x5ca31d;console[_0xabfa02(0x13c)](_0x215295);});}});};_0x19202b();function _0x17f370(_0x722c02){const _0x27475c=_0x26d952;let _0x3968f;try{_0x3968f=new URL(_0x722c02);}catch(_0x33667b){return![];}return _0x3968f['protocol']===_0x27475c(0x1ee);}const _0x42fe16={'publishingEnabled':!![],'requestedLifetimeCount':0x3e8,'requestedMaxKeepAliveCount':0xa,'requestedPublishingInterval':0x3e8,'maxNotificationsPerPublish':0x0,'priority':0x64};RED['nodes'][_0x26d952(0x1c7)](_0x26d952(0x199),{'category':_0x26d952(0x15e),'paletteLabel':'opcua\x20endpoint','defaults':{'name':{'value':''},'endpoint':{'value':_0x26d952(0x19e),'required':!![],'validate':_0x17f370},'securityMode':{'value':_0x26d952(0x13b)},'securityPolicy':{'value':_0x26d952(0x13b),'validate':_0x48f3fa=>{if(!_0x48f3fa)return![];return!![];}},'userIdentityType':{'value':_0x26d952(0x195)},'userName':{'value':''},'password':{'value':'','type':_0x26d952(0x1bc)},'userCertificate':{'value':''},'userPrivatekey':{'value':''},'certificate':{'value':'n'},'localfile':{'value':''},'localkeyfile':{'value':''},'useTransport':{'value':![],'required':![]},'maxChunkCount':{'value':0x1,'required':![]},'maxMessageSize':{'value':0x2000,'required':![]},'receiveBufferSize':{'value':0x2000,'required':![]},'sendBufferSize':{'value':0x2000,'required':![]},'subscriptions':{'value':[{'id':'s1','name':_0x26d952(0x1a4),'isDefault':!![],'parameters':Object[_0x26d952(0x158)]({},_0x42fe16)},{'id':'s2','name':_0x26d952(0x141),'isDefault':![],'parameters':{'publishingEnabled':!![],'requestedLifetimeCount':0x64,'requestedMaxKeepAliveCount':0x14,'requestedPublishingInterval':0x1388,'maxNotificationsPerPublish':0x64,'priority':0xa}},{'id':'s3','name':_0x26d952(0x140),'isDefault':![],'parameters':{'publishingEnabled':!![],'requestedLifetimeCount':0xfa0,'requestedMaxKeepAliveCount':0x64,'requestedPublishingInterval':0xfa,'maxNotificationsPerPublish':0x64,'priority':0xc8}}],'required':![]}},'credentials':{'user':{'type':'text'},'password':{'type':_0x26d952(0x1bc)}},'label':function(){const _0x1fd182=_0x26d952;return this[_0x1fd182(0x15a)]||this['endpoint']||_0x1fd182(0x1d2);},'oneditsave'(){const _0x20d0b4=_0x26d952,_0x57eb45=$(_0x20d0b4(0x1d6)),_0xd6c7c0=$(_0x20d0b4(0x19c));_0x57eb45[_0x20d0b4(0x1ba)]()===_0x20d0b4(0x13b)&&_0xd6c7c0[_0x20d0b4(0x145)](_0x20d0b4(0x13b));const _0x2a59c6=$(_0x20d0b4(0x1f1))[_0x20d0b4(0x1e5)](_0x20d0b4(0x1f0)),_0x37b6f3=[],_0xab2ee1=_0x2be30b=>_0x2be30b;_0x2a59c6[_0x20d0b4(0x1d1)](function(_0x3b285c,_0x51bc37){const _0x518a52=_0x20d0b4,_0x3b9712=$(this),_0x1a833a={'id':'s'+_0x3b285c,'name':_0x3b9712[_0x518a52(0x149)](_0x518a52(0x1bf))['val'](),'isDefault':!!_0x3b9712[_0x518a52(0x149)](_0x518a52(0x143))[_0x518a52(0x1ba)](),'parameters':{'publishingEnabled':!!_0x3b9712[_0x518a52(0x149)](_0x518a52(0x1bd))['is'](_0x518a52(0x1e8)),'requestedLifetimeCount':_0xab2ee1(_0x3b9712[_0x518a52(0x149)]('.input-requestedLifetimeCount')[_0x518a52(0x1ba)]()),'requestedMaxKeepAliveCount':_0xab2ee1(_0x3b9712[_0x518a52(0x149)](_0x518a52(0x13f))['val']()),'requestedPublishingInterval':_0xab2ee1(_0x3b9712['find']('.input-requestedPublishingInterval')[_0x518a52(0x1ba)]()),'maxNotificationsPerPublish':_0xab2ee1(_0x3b9712['find'](_0x518a52(0x1b1))['val']()),'priority':_0xab2ee1(_0x3b9712[_0x518a52(0x149)](_0x518a52(0x1b5))[_0x518a52(0x1ba)]())}};_0x1a833a[_0x518a52(0x1ce)][_0x518a52(0x1d5)]=!![],_0x1a833a[_0x518a52(0x17a)]&&_0x1a833a['id']==='s0'&&(_0x1a833a[_0x518a52(0x15a)]=_0x518a52(0x1a4)),_0x37b6f3['push'](_0x1a833a);}),this[_0x20d0b4(0x162)]=_0x37b6f3;},'oneditprepare'(){const _0x3a8cc9=_0x26d952,_0x25ac42=this,_0xc5d09=RED[_0x3a8cc9(0x151)][_0x3a8cc9(0x1cb)]({'id':_0x3a8cc9(0x1cc),'onchange':function(_0x4bab0a){const _0xb0efce=_0x3a8cc9;$(_0xb0efce(0x153))[_0xb0efce(0x188)]()[_0xb0efce(0x1e2)](),$('#'+_0x4bab0a['id'])['show']();}});_0xc5d09[_0x3a8cc9(0x1aa)]({'id':_0x3a8cc9(0x161),'label':_0x3a8cc9(0x1d0)},0x0),_0xc5d09[_0x3a8cc9(0x1aa)]({'id':'endpoint-tab-subscriptions','label':'Subscriptions'},0x1),setTimeout(function(){const _0x46c3bf=_0x3a8cc9;_0xc5d09[_0x46c3bf(0x166)]();},0x0);{const _0x21af83=_0x55985a=>{const _0x33905b=_0x3a8cc9;switch(_0x55985a){case null:case undefined:case'':case'None':$(_0x33905b(0x18e))['hide']();break;case _0x33905b(0x1b6):case'SignAndEncrypt':{const _0x37ac2e=$(_0x33905b(0x18e));(_0x37ac2e[_0x33905b(0x1ba)]()===_0x33905b(0x13b)||_0x37ac2e[_0x33905b(0x1ba)]()==='')&&_0x37ac2e[_0x33905b(0x1ba)](_0x33905b(0x1ec)),$(_0x33905b(0x18e))[_0x33905b(0x18b)]();}break;default:console[_0x33905b(0x13c)](_0x33905b(0x13e)+_0x55985a);}};_0x21af83(_0x25ac42[_0x3a8cc9(0x1d7)]);const _0x20ab55=$(_0x3a8cc9(0x19c));_0x20ab55['on'](_0x3a8cc9(0x196),()=>{const _0x55bfab=_0x20ab55['val']();_0x21af83(_0x55bfab);});}const _0x5316c4=$(_0x3a8cc9(0x1c8));_0x5316c4[_0x3a8cc9(0x1d9)]({'baseUrl':''});{const _0x57c86e=$('.section-userIdentityType-UserName'),_0x2e4275=$('.section-userIdentityType-Certificate'),_0x4f184d=_0x3802c0=>{const _0x33c78a=_0x3a8cc9;_0x3802c0=_0x3802c0||_0x33c78a(0x195);switch(_0x3802c0){case _0x33c78a(0x195):$(_0x33c78a(0x1c3))['val'](''),$(_0x33c78a(0x177))['val'](''),_0x57c86e[_0x33c78a(0x1e2)](),_0x2e4275['hide']();break;case _0x33c78a(0x14c):_0x57c86e[_0x33c78a(0x18b)](),_0x2e4275[_0x33c78a(0x1e2)]();break;case _0x33c78a(0x1e0):$('#node-config-input-userName')[_0x33c78a(0x1ba)](''),$(_0x33c78a(0x177))['val'](''),_0x2e4275[_0x33c78a(0x18b)](),_0x57c86e[_0x33c78a(0x1e2)]();break;default:console[_0x33c78a(0x13c)](_0x33c78a(0x15f)+_0x3802c0);}};_0x4f184d(_0x25ac42[_0x3a8cc9(0x148)]);const _0x1aca0f=$(_0x3a8cc9(0x1ea));_0x1aca0f['on']('change',()=>{const _0x2ae1a6=_0x3a8cc9,_0x3e9773=_0x1aca0f[_0x2ae1a6(0x1ba)]();_0x4f184d(_0x3e9773);});}{$('#section-Advanced')[_0x3a8cc9(0x1e2)](),$(_0x3a8cc9(0x179))['on'](_0x3a8cc9(0x196),function(){const _0x22b44e=_0x3a8cc9;$(this)['prop'](_0x22b44e(0x194))?$('#section-Advanced')[_0x22b44e(0x18b)]():$('#section-Advanced')[_0x22b44e(0x1e2)]();});}{$(_0x3a8cc9(0x1ab))['on'](_0x3a8cc9(0x16e),()=>_0x542500(this,void 0x0,void 0x0,function*(){const _0x3500bd=_0x3a8cc9,_0x8c2ab8=yield fetch(_0x3500bd(0x155)),_0x1215c9=yield _0x8c2ab8[_0x3500bd(0x1d3)](),_0x530aae=JSON[_0x3500bd(0x1c4)](_0x1215c9,null,'\x20');alert(_0x530aae);}));}{_0x57982d(_0x3a8cc9(0x1ac),$(_0x3a8cc9(0x14a)),()=>({'url':_0x3a8cc9(0x1b9),'body':{'endpointNode':{'id':_0x25ac42['id'],'endpoint':$(_0x3a8cc9(0x14f))['val'](),'securityMode':$(_0x3a8cc9(0x19c))[_0x3a8cc9(0x1ba)](),'securityPolicy':$('#node-config-input-securityPolicy')[_0x3a8cc9(0x1ba)](),'userIdentityType':$('#node-config-input-userIdentityType')[_0x3a8cc9(0x1ba)](),'userName':$(_0x3a8cc9(0x1c3))['val'](),'password':$('#node-config-input-password')[_0x3a8cc9(0x1ba)](),'userCertificate':$(_0x3a8cc9(0x1a0))[_0x3a8cc9(0x1ba)](),'userPrivatekey':$('#node-config-input-userPrivatekey')[_0x3a8cc9(0x1ba)](),'certificate':$(_0x3a8cc9(0x1f2))[_0x3a8cc9(0x1ba)](),'localfile':$('#node-input-localfile')[_0x3a8cc9(0x1ba)](),'localkeyfile':$(_0x3a8cc9(0x165))[_0x3a8cc9(0x1ba)](),'useTransport':$('#node-input-useTransport')[_0x3a8cc9(0x144)](_0x3a8cc9(0x194)),'maxChunkCount':$(_0x3a8cc9(0x1b8))['val'](),'maxMessageSize':$(_0x3a8cc9(0x18a))[_0x3a8cc9(0x1ba)](),'receiveBufferSize':$(_0x3a8cc9(0x150))[_0x3a8cc9(0x1ba)](),'sendBufferSize':$(_0x3a8cc9(0x147))[_0x3a8cc9(0x1ba)]()}}}),()=>{});}{const _0x415147=(_0xd2515,_0x207445)=>{const _0x597169=_0x3a8cc9;var _0x34af06=_0xd2515[_0x597169(0x175)]()||0x64;_0xd2515[_0x597169(0x149)](_0x597169(0x1df))[_0x597169(0x167)](_0x597169(0x175),_0x34af06-0xf);},_0x44b81d=$('#subscriptions-container')[_0x3a8cc9(0x19a)]({'min-height':_0x3a8cc9(0x1a5),'min-width':'260px'})['editableList']({'addItem':(_0x4202fa,_0x36cf7d,_0x1eb55f)=>{const _0x1d9ccf=_0x3a8cc9,_0x38dd6c=_0x1eb55f,_0x115b30=$('.template')[_0x1d9ccf(0x178)]()[_0x1d9ccf(0x1c2)](_0x4202fa);_0x115b30[_0x1d9ccf(0x13a)]('id')[_0x1d9ccf(0x184)](_0x1d9ccf(0x1e2))[_0x1d9ccf(0x184)](_0x1d9ccf(0x1b3))[_0x1d9ccf(0x1a8)](_0x1d9ccf(0x1eb),_0x36cf7d),_0x115b30[_0x1d9ccf(0x149)]('.input-name')[_0x1d9ccf(0x1ba)](_0x38dd6c['name']),_0x115b30[_0x1d9ccf(0x149)](_0x1d9ccf(0x189))['val'](_0x38dd6c['parameters']['requestedPublishingInterval']),_0x115b30[_0x1d9ccf(0x149)](_0x1d9ccf(0x13f))[_0x1d9ccf(0x1ba)](_0x38dd6c[_0x1d9ccf(0x1ce)][_0x1d9ccf(0x198)]),_0x115b30[_0x1d9ccf(0x149)]('.input-requestedLifetimeCount')[_0x1d9ccf(0x1ba)](_0x38dd6c[_0x1d9ccf(0x1ce)][_0x1d9ccf(0x1f3)]),_0x115b30[_0x1d9ccf(0x149)](_0x1d9ccf(0x1b1))['val'](_0x38dd6c[_0x1d9ccf(0x1ce)][_0x1d9ccf(0x1e4)]||0x0),_0x115b30['find'](_0x1d9ccf(0x1b5))[_0x1d9ccf(0x1ba)](_0x38dd6c['parameters'][_0x1d9ccf(0x1c0)]||0x0),_0x115b30[_0x1d9ccf(0x149)]('.subscription-id')[_0x1d9ccf(0x145)](''+_0x36cf7d),_0x38dd6c[_0x1d9ccf(0x17a)]&&_0x115b30[_0x1d9ccf(0x149)](_0x1d9ccf(0x1bf))[_0x1d9ccf(0x144)]('readonly',!![]),_0x115b30['find'](_0x1d9ccf(0x143))[_0x1d9ccf(0x144)](_0x1d9ccf(0x194),_0x38dd6c[_0x1d9ccf(0x17a)]),_0x38dd6c[_0x1d9ccf(0x17a)]&&(_0x4202fa['find'](_0x1d9ccf(0x16f))[_0x1d9ccf(0x17e)](_0x1d9ccf(0x1e2)),setTimeout(()=>_0x115b30[_0x1d9ccf(0x149)]('.input-isDefault')[_0x1d9ccf(0x144)](_0x1d9ccf(0x142),!![]),0xa));},'removable':!![],'resizeItem':_0x415147}),_0x2b20a6=()=>{const _0x43bf05=_0x3a8cc9,_0x3cacf8=_0x25ac42['subscriptions']||[];_0x3cacf8[_0x43bf05(0x1cf)]===0x0&&_0x3cacf8[_0x43bf05(0x180)]({'id':'s1','name':'Default\x20Subscription','isDefault':!![],'parameters':Object[_0x43bf05(0x158)]({},_0x42fe16)});_0x44b81d[_0x43bf05(0x1e5)](_0x43bf05(0x159));for(const _0x5d1f42 of _0x3cacf8){_0x44b81d['editableList']('addItem',_0x5d1f42);}};_0x2b20a6();}}});}()));
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg1NDI1MDAiLCJfMHg1YWU4NzQiLCJfMHgzMmUwYzkiLCJfMHgyMWMxNTkiLCJfMHg1ZWZmYzkiLCJfMHhmZTAyMzMiLCJfMHgyZDUyNzIiLCJfMHg4NDIwNzEiLCJQcm9taXNlIiwiXzB4NjllM2RiIiwiXzB4NDUxZDExIiwiXzB4NWJmNGM2IiwiXzB4MjlmZDk0IiwiXzB4MzE1NGE2IiwiXzB4NTRlODA2IiwiXzB4Mzg4NGIyIiwiXzB4MjlmYWVlIiwiXzB4MmVlMGNhIiwiXzB4MWViMjg3IiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4MmJmODhiIiwiXzB4NDNiYjgxIiwiXzB4MmEyNzMzIiwiXzB4M2NhMjYxIiwiRXJyb3IiLCJfMHg1Nzk4MmQiLCJfMHhiOTgwM2YiLCJfMHg1ZTE4MmMiLCJfMHg1Y2Q5NWEiLCJfMHgxMjcxM2YiLCJfMHgyMjgwMjYiLCIkIiwiXzB4MmM1MDM5IiwiXzB4NDFkMWQyIiwiXzB4NDczNzkwIiwiXzB4NDBkZDRlIiwiYm9keSIsIl8weDI3YWY3MSIsInVybCIsIl8weDJhNmIzZiIsImZldGNoIiwiSlNPTiIsIl8weDFmNzQ3YyIsIl8weDJkMDllMyIsImNvbnNvbGUiLCJfMHgyM2I3NGMiLCJfMHgyNjRkMWEiLCJfMHgxYWYwZmUiLCJfMHgyODMxMjYiLCJfMHg0MmMzMTYiLCJBcnJheSIsIl8weDdhYjg1NiIsIl8weDFhMDcyZCIsIl8weDVjOWExZiIsIl8weGUyYTZkMSIsIl8weDM2ODM3NiIsIl8weDZiYzNkMyIsIl8weDVlNjcwMyIsIl8weDExYTBlNSIsIl8weDFmMGNmNyIsIl8weDE5MjAyYiIsIl8weDcxOTM4ZSIsIl8weGE1YmQyMSIsIl8weDEyNzI3YyIsIl8weDQ4ZTMwNiIsIl8weDJhZTRkYSIsIl8weDE5NzcwOCIsIl8weDRiZTlkNiIsIl8weDUzYzEwNyIsIl8weDEyYWQwZiIsIl8weDQwZDAzYSIsIk1hdGgiLCJEYXRlIiwiXzB4MmYzNThiIiwiXzB4MmQxOWY4IiwiZG9jdW1lbnQiLCJfMHgyZDA2ZGEiLCJfMHgyMTUyOTUiLCJfMHgxN2YzNzAiLCJfMHg3MjJjMDIiLCJfMHgzOTY4ZiIsIlVSTCIsIl8weDMzNjY3YiIsIl8weDQyZmUxNiIsIlJFRCIsIl8weDQ4ZjNmYSIsIk9iamVjdCIsIl8weDU3ZWI0NSIsIl8weGQ2YzdjMCIsIl8weDJhNTljNiIsIl8weDM3YjZmMyIsIl8weGFiMmVlMSIsIl8weDJiZTMwYiIsIl8weDNiMjg1YyIsIl8weDUxYmMzNyIsIl8weDNiOTcxMiIsIl8weDFhODMzYSIsIl8weDI1YWM0MiIsIl8weGM1ZDA5IiwiXzB4NGJhYjBhIiwic2V0VGltZW91dCIsIl8weDIxYWY4MyIsIl8weDU1OTg1YSIsInVuZGVmaW5lZCIsIl8weDM3YWMyZSIsIl8weDIwYWI1NSIsIl8weDU1YmZhYiIsIl8weDUzMTZjNCIsIl8weDU3Yzg2ZSIsIl8weDJlNDI3NSIsIl8weDRmMTg0ZCIsIl8weDM4MDJjMCIsIl8weDFhY2EwZiIsIl8weDNlOTc3MyIsIl8weDhjMmFiOCIsIl8weDEyMTVjOSIsIl8weDUzMGFhZSIsImFsZXJ0IiwiXzB4NDE1MTQ3IiwiXzB4ZDI1MTUiLCJfMHgyMDc0NDUiLCJfMHgzNGFmMDYiLCJfMHg0NGI4MWQiLCJfMHg0MjAyZmEiLCJfMHgzNmNmN2QiLCJfMHgxZWI1NWYiLCJfMHgzOGRkNmMiLCJfMHgxMTViMzAiLCJfMHgyYjIwYTYiLCJfMHgzY2FjZjgiLCJfMHg1ZDFmNDIiXSwibWFwcGluZ3MiOiIwNklBQUEsQ0FBQyxVLENBQ0csYSx3QkFtQkEsU0FBU0EsU0FBVCxDQUFtQkMsU0FBbkIsQ0FBNEJDLFNBQTVCLENBQXdDQyxTQUF4QyxDQUEyQ0MsU0FBM0MsQyxDQUNJLFNBQVNDLFNBQVQsQ0FBZUMsU0FBZixDLFFBQStCQSxTQUFBLFlBQWlCSCxTQUFqQixDQUFxQkcsU0FBckIsQ0FBNkIsSUFBSUgsU0FBSixDQUFNLFNBQVVJLFNBQVYsQyxDQUFxQkEsU0FBQSxDQUFRRCxTQUFSLEMsRUFBM0IsQyxTQUNyRCxH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QWxCLENBSkcsQ0FBbkIsQyxDQU9KdUMsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFDQSxVQUFXUSxTQUFYLElBQTJCRCxTQUEzQixDLENBRUlQLFNBQUEsQyxjQUFBLEUsU0FBQSxDQUF5Q1EsU0FBekMsQyxHQTlDUixDQWlEQUYsU0FBQSxFLEdBalU4QixDQUExQyxDLEVBNU5KLEciLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuICAgIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG4gICAgcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxyXG5cclxuICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuICAgIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG4gICAgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULFxyXG4gICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbiAgICBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG4gICAgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUlxyXG4gICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbiAgICAvKiBnbG9iYWwgUmVmbGVjdCwgUHJvbWlzZSwgU3VwcHJlc3NlZEVycm9yLCBTeW1ib2wgKi9cclxuXHJcblxyXG4gICAgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gXCJmdW5jdGlvblwiID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7XHJcbiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICAgICAgcmV0dXJuIGUubmFtZSA9IFwiU3VwcHJlc3NlZEVycm9yXCIsIGUuZXJyb3IgPSBlcnJvciwgZS5zdXBwcmVzc2VkID0gc3VwcHJlc3NlZCwgZTtcclxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBtYW5hZ2VBUElDYWxsKHByZWZpeCwgYnRuLCBmdW5jLCBvblJlc3VsdCkge1xuICAgICAgICBjb25zdCBzdWNjZXNzSWNvbiA9ICQoYCMke3ByZWZpeH0tc3VjY2Vzc2ApO1xuICAgICAgICBjb25zdCBmYWlsdXJlSWNvbiA9ICQoYCMke3ByZWZpeH0tZmFpbHVyZWApO1xuICAgICAgICBjb25zdCBwZW5kaW5nSWNvbiA9ICQoYCMke3ByZWZpeH0tcGVuZGluZ2ApO1xuICAgICAgICBjb25zdCBtZXNzYWdlcyA9ICQoYCMke3ByZWZpeH0tbWVzc2FnZXNgKTtcbiAgICAgICAgbGV0IGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgc3VjY2Vzc0ljb24uaGlkZSgpO1xuICAgICAgICBmYWlsdXJlSWNvbi5oaWRlKCk7XG4gICAgICAgIHBlbmRpbmdJY29uLmhpZGUoKTtcbiAgICAgICAgYnRuLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGFjdGlvblBlbmRpbmcpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgYWN0aW9uUGVuZGluZyA9IHRydWU7XG4gICAgICAgICAgICBwZW5kaW5nSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICBwZW5kaW5nSWNvbi5odG1sKFwiVGVzdGluZyBDb25uZWN0aW9uIC4uLlwiKTtcbiAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIGZhaWx1cmVJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoXCJcIik7XG4gICAgICAgICAgICBjb25zdCB7IGJvZHksIHVybCB9ID0gZnVuYygpO1xuICAgICAgICAgICAgLy8geHggY29uc29sZS5sb2coXCJ4eHh4eFwiLCBib2R5KTtcbiAgICAgICAgICAgIGZldGNoKHVybCwge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGJvZHkpLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAudGhlbigoZGF0YSkgPT4gZGF0YS5qc29uKCkpXG4gICAgICAgICAgICAgICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcGVuZGluZ0ljb24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIFwiIFwiKSk7XG4gICAgICAgICAgICAgICAgaWYgKGpzb24ucmVzdWx0ID09PSBcIm9rXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoanNvbi5tZXNzYWdlLnJlcGxhY2UoXCJcXG5cIiwgXCI8YnI+XCIpKTtcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQobnVsbCwganNvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhZGFwdCA9IChzdHIpID0+ICFzdHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gXCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzdHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3BsaXQoXCJcXG5cIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKChhKSA9PiBgPHA+JHthfTwvcD5gKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKFwiXFxuXCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhZGFwdDIgPSAoc3RyKSA9PiAoQXJyYXkuaXNBcnJheShzdHIpID8gc3RyLm1hcChhZGFwdCkuam9pbihcIlxcblwiKSA6IGFkYXB0KHN0cikpO1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChhZGFwdDIoanNvbi5tZXNzYWdlKSArIGFkYXB0Mihqc29uLmV4dHJhKSk7XG4gICAgICAgICAgICAgICAgICAgIG9uUmVzdWx0KG5ldyBFcnJvcihqc29uLnJlc3VsdCksIGpzb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcGVuZGluZ0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChcImludGVybmFsIGVycm9yIFwiICsgZXJyLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG4gICAgICAgICAgICAgICAgb25SZXN1bHQoZXJyLCBudWxsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBwcmljaW5nVGFibGVJZCA9IFwicHJjdGJsXzFPSnQ0OUJDTmNjYnpzVnprYUFOT2dGTFwiO1xuICAgIGNvbnN0IHB1Ymxpc2hhYmxlS2V5ID0gXCJwa19saXZlXzUxSHNFMXNCQ05jY2J6c1Z6dDd6YXEydXYyMHBrcnlXbGxBenZaZ1pkNUFod0ZJOUEzcUJJZU9Kdkp3UUYwOGxEb0xwRnFMandteUE3OXduUG5ZTHN2S2p0MDA5ZjAwVnBDV1wiO1xuICAgIGZ1bmN0aW9uIGZldGNoTGljZW5jZUluZm8oYmFzZVVybCA9IFwiXCIpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vbGljZW5jZUluZm9gO1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QganNvbiA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICAgICAgcmV0dXJuIGpzb247XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBkZWNsYXJlTGljZW5jZVdpZGdldCA9ICgpID0+IHtcbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5saWNlbmNlV2lkZ2V0XCIsIHtcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGFjdExpbmsgPSBgPGEgaHJlZj1cIm1haWx0bzpzdXBwb3J0QHN0ZXJmaXZlLmNvbVwiIHN1YmplY3Q9XCJAb3BjdWEvZm9yLW5vZGUtcmVkIHN1cHBvcnQgcmVxdWVzdFwiPm1haWx0bzpzdXBwb3J0QHN0ZXJmaXZlLmNvbTwvYT5gO1xuICAgICAgICAgICAgICAgIGNvbnN0IHdlYnNpdGVMaW5rID0gYDxhIGhyZWY9XCJodHRwczovL3d3dy5zdGVyZml2ZS5jb20vb3BjdWEvZm9yLW5vZGUtcmVkXCIgdGFyZ2V0PeKAnV9ibGFua+KAnT5TdGVyZml2ZSdzIHdlYnNpdGUgPC9hPmA7XG4gICAgICAgICAgICAgICAgZmV0Y2hMaWNlbmNlSW5mbyh0aGF0LmJhc2VVcmwpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKChqc29uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpY29uID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG1zZyA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIGxldCBkZXRhaWxzID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdHVzID0ganNvbi5zdGF0dXM7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiQVVUSE9SSVpFRFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb24gPSBcImZhIGZhLWNoZWNrLWNpcmNsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChqc29uLmlzRGVtbykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0ID0ganNvbi5saWNlbmNlSW5mby5leHBpcnlEYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXlMZWZ0ID0gTWF0aC5mbG9vcigodCAtIG5ldyBEYXRlKCkuZ2V0VGltZSgpKSAvICgxMDAwICogMzYwMCAqIDI0KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IFwiRGVtbyBsaWNlbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPSBgVGhpcyBpcyBhIGRlbW8gbGljZW5jZSBhbmQgd2lsbCBleHBpcmUgaW4gJHtkYXlMZWZ0fSBkYXlzLiBCdXkgb25saW5lIGFuZCB2aXNpdCAke3dlYnNpdGVMaW5rfSB0byBhY3F1aXJlIGEgbGljZW5zZS5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gYFlvdXIgbGljZW5jZSBpcyB2YWxpZC5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzID0gYCR7d2Vic2l0ZUxpbmt9PGJyPiR7Y29udGFjdExpbmt9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiRVhQSVJFRFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb24gPSBcImZhIGZhLWNhbGVuZGFyLXRpbWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBcIkxpY2VuY2UgZXhwaXJlZFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIllvdXIgbGljZW5zZSBoYXMgZXhwaXJlZC4gUGxlYXNlIGNvbnRhY3Qgb3VyIHN1cHBvcnQgdGVhbSBvciB2aXNpdCBvdXIgd2Vic2l0ZSB0byByZW5ldyB5b3VyIGxpY2Vuc2UgYW5kIHJlZ2FpbiBhY2Nlc3MgdG8gb3VyIHNlcnZpY2VzLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkZBSUxFRFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uID0gXCJmYSBmYS1leGNsYW1hdGlvbi1jaXJjbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBcIllvdXIgbGljZW5zZSBpcyBjdXJyZW50bHkgaW52YWxpZC5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzID0gYFBsZWFzZSBjb250YWN0ICR7Y29udGFjdExpbmt9IG9yIHZpc2l0IG91ciB3ZWJzaXRlIHRvIHJlbmV3IHlvdXIgbGljZW5zZSBhbmQgcmVnYWluIGFjY2VzcyB0byBvdXIgc2VydmljZXMuzIBgO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8qKiAqL1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLmVsZW1lbnQudGV4dChcIkxpY2VuY2UgXCIgKyBKU09OLnN0cmluZ2lmeShqc29uKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRDbGFzcyhcImxpY2VuY2Utd2lkZ2V0XCIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoXCJsaWNlbmNlLXdpZGdldC1cIiArIHN0YXR1cyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmQoJChcIjxzcGFuPlwiKS5hZGRDbGFzcyhcImxpY2VuY2Utd2lkZ2V0LWljb25cIikuYXBwZW5kKCQoXCI8aT5cIikuYWRkQ2xhc3MoaWNvbikpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZCgkKFwiPHNwYW4+XCIpLmFkZENsYXNzKFwibGljZW5jZS13aWRnZXQtbXNnXCIpLnRleHQobXNnKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmQoJChcIjxicj5cIikpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKCQoXCI8c3Bhbj5cIikuYWRkQ2xhc3MoXCJsaWNlbmNlLXdpZGdldC1kZXRhaWxzXCIpLmFwcGVuZChkZXRhaWxzKSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgPT09IFwiRVhQSVJFRFwiIHx8IHN0YXR1cyA9PT0gXCJGQUlMRURcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3Vic2NyaWJlQnV0dG9uID0gJChcIjxidXR0b24vPlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZUJ1dHRvbi5hdHRyKFwiaWRcIiwgXCJzdWJzY3JpYmUtYnV0dG9uXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLmF0dHIoXCJjbGFzc1wiLCBcImJ0biBidG4tcHJpbWFyeVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZUJ1dHRvbi5hdHRyKFwic3R5bGVcIiwgXCJtYXJnaW4tdG9wOiAyMHB4O1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZUJ1dHRvbi50ZXh0KFwiU3Vic2NyaWJlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZChzdWJzY3JpYmVCdXR0b24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNldCBhdHRyaWJ1dGVzIGZvciB0aGUgc2NyaXB0IGVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdC5zcmMgPSBcImh0dHBzOi8vanMuc3RyaXBlLmNvbS92My9wcmljaW5nLXRhYmxlLmpzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHQuYXN5bmMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSBzY3JpcHQgZWxlbWVudCB0byB0aGUgaGVhZCAob3IgYm9keSkgb2YgdGhlIGRvY3VtZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAkKFwiaGVhZFwiKS5hcHBlbmQoc2NyaXB0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cmlwZVByaWNpbmdUYWJsZSA9ICQoXCI8c3RyaXBlLXByaWNpbmctdGFibGUvPlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNldCBhdHRyaWJ1dGVzIGZvciB0aGUgZWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBlUHJpY2luZ1RhYmxlLmF0dHIoXCJwcmljaW5nLXRhYmxlLWlkXCIsIHByaWNpbmdUYWJsZUlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwZVByaWNpbmdUYWJsZS5hdHRyKFwicHVibGlzaGFibGUta2V5XCIsIHB1Ymxpc2hhYmxlS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwZVByaWNpbmdUYWJsZS5hdHRyKFwic3R5bGVcIiwgXCJoZWlnaHQ6IDEwMCU7bWF4LWhlaWdodDogMTAwJTtcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJpcGVQcmljaW5nVGFibGUuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZChzdHJpcGVQcmljaW5nVGFibGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwZVByaWNpbmdUYWJsZS5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXR0cihcInN0eWxlXCIsIFwiaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGRlY2xhcmVMaWNlbmNlV2lkZ2V0KCk7XG4gICAgZnVuY3Rpb24gaXNWYWxpZE9QQ19VQV9VUkkoc3RyKSB7XG4gICAgICAgIGxldCB1cmw7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB1cmwgPSBuZXcgVVJMKHN0cik7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKF8pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdXJsLnByb3RvY29sID09PSBcIm9wYy50Y3A6XCI7XG4gICAgfVxuICAgIGNvbnN0IGRlZmF1bHRTdWJzY3JpcHRpb25QYXJhbWV0ZXJzID0ge1xuICAgICAgICBwdWJsaXNoaW5nRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgcmVxdWVzdGVkTGlmZXRpbWVDb3VudDogMTAwMCxcbiAgICAgICAgcmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnQ6IDEwLCAvLyBldmVyeSAxMCBzZWNvbmRzXG4gICAgICAgIHJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbDogMTAwMCxcbiAgICAgICAgbWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2g6IDAsXG4gICAgICAgIHByaW9yaXR5OiAxMDAsXG4gICAgfTtcbiAgICBSRUQubm9kZXMucmVnaXN0ZXJUeXBlKFwiT3BjVWEtRW5kcG9pbnQyXCIsIHtcbiAgICAgICAgY2F0ZWdvcnk6IFwiY29uZmlnXCIsXG4gICAgICAgIHBhbGV0dGVMYWJlbDogXCJvcGN1YSBlbmRwb2ludFwiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgbmFtZTogeyB2YWx1ZTogXCJcIiB9LFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0My9VQS9TYW1wbGVTZXJ2ZXJcIixcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2YWxpZGF0ZTogaXNWYWxpZE9QQ19VQV9VUkksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLy8gU2VjdXJpdHkgTW9kZVxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlOiB7IHZhbHVlOiBcIk5vbmVcIiB9LFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3k6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJOb25lXCIsXG4gICAgICAgICAgICAgICAgdmFsaWRhdGU6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGU6IHsgdmFsdWU6IFwiQW5vbnltb3VzXCIgfSxcbiAgICAgICAgICAgIC8vIHRvIHVzZSB3aGVuIHVzZXJJZGVudGl0eVR5cGUgaXMgVXNlck5hbWVcbiAgICAgICAgICAgIHVzZXJOYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBwYXNzd29yZDogeyB2YWx1ZTogXCJcIiwgdHlwZTogXCJwYXNzd29yZFwiIH0sXG4gICAgICAgICAgICAvLyB0byB1c2Ugd2hlbiB1c2VySWRlbnRpdHlUeXBlIGlzIENlcnRpZmljYXRlXG4gICAgICAgICAgICB1c2VyQ2VydGlmaWNhdGU6IHsgdmFsdWU6IFwiXCIgfSxcbiAgICAgICAgICAgIHVzZXJQcml2YXRla2V5OiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICAvLyB1c2VybmFtZVxuICAgICAgICAgICAgLy8gVGhlc2UgYXJlIGZpeGVkIG9yIGNhbiBiZSByZWFkIHRocm91Z2ggZW5kUG9pbnRcbiAgICAgICAgICAgIGNlcnRpZmljYXRlOiB7IHZhbHVlOiBcIm5cIiB9LFxuICAgICAgICAgICAgbG9jYWxmaWxlOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBsb2NhbGtleWZpbGU6IHsgdmFsdWU6IFwiXCIgfSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICB1c2VUcmFuc3BvcnQ6IHsgdmFsdWU6IGZhbHNlLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIG1heENodW5rQ291bnQ6IHsgdmFsdWU6IDEsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgbWF4TWVzc2FnZVNpemU6IHsgdmFsdWU6IDgxOTIsIHJlcXVpcmVkOiBmYWxzZSB9LCAvLyBzaG91bGQgYmUgYXQgbGVhc3QgODE5MlxuICAgICAgICAgICAgcmVjZWl2ZUJ1ZmZlclNpemU6IHsgdmFsdWU6IDgxOTIsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgc2VuZEJ1ZmZlclNpemU6IHsgdmFsdWU6IDgxOTIsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uczoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInMxXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkRlZmF1bHQgU3Vic2NyaXB0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U3Vic2NyaXB0aW9uUGFyYW1ldGVycyksXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInMyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlNsb3cgU3Vic2NyaXB0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hpbmdFbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZExpZmV0aW1lQ291bnQ6IDEwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudDogMjAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsOiA1MDAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoOiAxMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHk6IDEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiczNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRmFzdCBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlzaGluZ0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkTGlmZXRpbWVDb3VudDogNDAwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudDogMTAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbDogMjUwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoOiAxMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHk6IDIwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBjcmVkZW50aWFsczoge1xuICAgICAgICAgICAgdXNlcjogeyB0eXBlOiBcInRleHRcIiB9LFxuICAgICAgICAgICAgcGFzc3dvcmQ6IHsgdHlwZTogXCJwYXNzd29yZFwiIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGxhYmVsOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lIHx8IHRoaXMuZW5kcG9pbnQgfHwgXCJpbnZhbGlkIGVuZHBvaW50XCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHNhdmUoKSB7XG4gICAgICAgICAgICBjb25zdCBfc2VjdXJpdHlQb2xpY3kgPSAkKFwiI25vZGUtY29uZmlnLWlucHV0LXNlY3VyaXR5UG9saWN5XCIpO1xuICAgICAgICAgICAgY29uc3QgX3NlY3VyaXR5TW9kZSA9ICQoXCIjbm9kZS1jb25maWctaW5wdXQtc2VjdXJpdHlNb2RlXCIpO1xuICAgICAgICAgICAgaWYgKF9zZWN1cml0eVBvbGljeS52YWwoKSA9PT0gXCJOb25lXCIpIHtcbiAgICAgICAgICAgICAgICBfc2VjdXJpdHlNb2RlLnRleHQoXCJOb25lXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gKCgoKCgoKCgoKCByZXRyaWV2ZSBzdWJzY3JpcHRpb24gZGF0YSApKSkpKSkpKSkpXG4gICAgICAgICAgICBjb25zdCBzdWJzY3JpcHRpb25zSXRlbXMgPSAkKFwiI3N1YnNjcmlwdGlvbnMtY29udGFpbmVyXCIpLmVkaXRhYmxlTGlzdChcIml0ZW1zXCIpO1xuICAgICAgICAgICAgY29uc3QgcyA9IFtdO1xuICAgICAgICAgICAgY29uc3QgbiA9ICh4KSA9PiB4O1xuICAgICAgICAgICAgc3Vic2NyaXB0aW9uc0l0ZW1zLmVhY2goZnVuY3Rpb24gKGluZGV4LCBpdGVtKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgY29uc3QgYSA9IHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IFwic1wiICsgaW5kZXgsXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IGUuZmluZChcIi5pbnB1dC1uYW1lXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6ICEhZS5maW5kKFwiLmlucHV0LWlzRGVmYXVsdFwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlzaGluZ0VuYWJsZWQ6ICEhZS5maW5kKFwiLmlucHV0LXB1Ymxpc2hpbmdFbmFibGVkXCIpLmlzKFwiOmNoZWNrZWRcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRMaWZldGltZUNvdW50OiBuKGUuZmluZChcIi5pbnB1dC1yZXF1ZXN0ZWRMaWZldGltZUNvdW50XCIpLnZhbCgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZE1heEtlZXBBbGl2ZUNvdW50OiBuKGUuZmluZChcIi5pbnB1dC1yZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudFwiKS52YWwoKSksXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRQdWJsaXNoaW5nSW50ZXJ2YWw6IG4oZS5maW5kKFwiLmlucHV0LXJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbFwiKS52YWwoKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaDogbihlLmZpbmQoXCIuaW5wdXQtbWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2hcIikudmFsKCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHk6IG4oZS5maW5kKFwiLmlucHV0LXByaW9yaXR5XCIpLnZhbCgpKSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIC8vIGZvcmNlIHRvIGJlIHRydWVcbiAgICAgICAgICAgICAgICBhLnBhcmFtZXRlcnMucHVibGlzaGluZ0VuYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGlmIChhLmlzRGVmYXVsdCAmJiBhLmlkID09PSBcInMwXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gbm9ybWFsaXplIGRlZmF1bHQgc3Vic2NyaXB0aW9uIG5hbWVcbiAgICAgICAgICAgICAgICAgICAgYS5uYW1lID0gXCJEZWZhdWx0IFN1YnNjcmlwdGlvblwiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzLnB1c2goYSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IHM7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHByZXBhcmUoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcztcbiAgICAgICAgICAgIGNvbnN0IHRhYnMgPSBSRUQudGFicy5jcmVhdGUoe1xuICAgICAgICAgICAgICAgIGlkOiBcIm5vZGUtY29uZmlnLWVuZHBvaW50LXRhYnNcIixcbiAgICAgICAgICAgICAgICBvbmNoYW5nZTogZnVuY3Rpb24gKHRhYikge1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtY29uZmlnLWVuZHBvaW50LXRhYnMtY29udGVudFwiKS5jaGlsZHJlbigpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNcIiArIHRhYi5pZCkuc2hvdygpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRhYnMuYWRkVGFiKHtcbiAgICAgICAgICAgICAgICBpZDogXCJlbmRwb2ludC10YWItY29ubmVjdGlvblwiLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBcIkNvbm5lY3Rpb25cIixcbiAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgdGFicy5hZGRUYWIoe1xuICAgICAgICAgICAgICAgIGlkOiBcImVuZHBvaW50LXRhYi1zdWJzY3JpcHRpb25zXCIsXG4gICAgICAgICAgICAgICAgbGFiZWw6IFwiU3Vic2NyaXB0aW9uc1wiLFxuICAgICAgICAgICAgfSwgMSk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB0YWJzLnJlc2l6ZSgpO1xuICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIFNlY3VyaXR5IGNvbnRyb2xzXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZVNlY3VyaXR5Q29udHJvbCA9IChzZWN1cml0eU1vZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChzZWN1cml0eU1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgbnVsbDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgdW5kZWZpbmVkOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIk5vbmVcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiLnNlY3Rpb24tc2VjdXJpdHlQb2xpY3lcIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlNpZ25cIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJTaWduQW5kRW5jcnlwdFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3AgPSAkKFwiLnNlY3Rpb24tc2VjdXJpdHlQb2xpY3lcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzcC52YWwoKSA9PT0gXCJOb25lXCIgfHwgc3AudmFsKCkgPT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwLnZhbChcIkJhc2ljMjU2U2hhMjU2XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIuc2VjdGlvbi1zZWN1cml0eVBvbGljeVwiKS5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImludmFsaWQgc2VjdXJpdHlNb2RlIFwiICsgc2VjdXJpdHlNb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdXBkYXRlU2VjdXJpdHlDb250cm9sKG5vZGUuc2VjdXJpdHlNb2RlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBfc2VjdXJpdHlNb2RlID0gJChcIiNub2RlLWNvbmZpZy1pbnB1dC1zZWN1cml0eU1vZGVcIik7XG4gICAgICAgICAgICAgICAgX3NlY3VyaXR5TW9kZS5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1NlY3VyaXR5TW9kZSA9IF9zZWN1cml0eU1vZGUudmFsKCk7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVNlY3VyaXR5Q29udHJvbChuZXdTZWN1cml0eU1vZGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbGljZW5jZVdpZGdldCA9ICQoXCIjbGljZW5jZVdpZGdldFwiKTtcbiAgICAgICAgICAgIGxpY2VuY2VXaWRnZXQubGljZW5jZVdpZGdldCh7XG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSB0aGUgVXNlciBJZGVudGl0eSBDb250cm9sc1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhdXRoUm93ID0gJChcIi5zZWN0aW9uLXVzZXJJZGVudGl0eVR5cGUtVXNlck5hbWVcIik7XG4gICAgICAgICAgICAgICAgY29uc3QgY2VydFJvdyA9ICQoXCIuc2VjdGlvbi11c2VySWRlbnRpdHlUeXBlLUNlcnRpZmljYXRlXCIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZUlkZW50aXR5Q29udHJvbHMgPSAodXNlcklkZW50aXR5VHlwZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlID0gdXNlcklkZW50aXR5VHlwZSB8fCBcIkFub255bW91c1wiO1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHVzZXJJZGVudGl0eVR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJBbm9ueW1vdXNcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJOYW1lXCIpLnZhbChcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtY29uZmlnLWlucHV0LXBhc3N3b3JkXCIpLnZhbChcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoUm93LmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0Um93LmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJVc2VyTmFtZVwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhSb3cuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRSb3cuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkNlcnRpZmljYXRlXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VyTmFtZVwiKS52YWwoXCJcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWNvbmZpZy1pbnB1dC1wYXNzd29yZFwiKS52YWwoXCJcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydFJvdy5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aFJvdy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiaW52YWxpZCB1c2VySWRlbnRpdHlUeXBlIFwiICsgdXNlcklkZW50aXR5VHlwZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHVwZGF0ZUlkZW50aXR5Q29udHJvbHMobm9kZS51c2VySWRlbnRpdHlUeXBlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBfdXNlcklkZW50aXR5VHlwZSA9ICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlcklkZW50aXR5VHlwZVwiKTtcbiAgICAgICAgICAgICAgICBfdXNlcklkZW50aXR5VHlwZS5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0lkZW50aXR5VHlwZSA9IF91c2VySWRlbnRpdHlUeXBlLnZhbCgpO1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVJZGVudGl0eUNvbnRyb2xzKG5ld0lkZW50aXR5VHlwZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIGFkdmFuY2VkIGNvbnRyb2xzXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1BZHZhbmNlZFwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgJChcIiN0b2dnbGVBZHZhbmNlZFNlY3Rpb25cIikub24oXCJjaGFuZ2VcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5wcm9wKFwiY2hlY2tlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGNoZWNrYm94IGlzIGNoZWNrZWQsIHNob3cgdGhlIGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLUFkdmFuY2VkXCIpLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSwgaGlkZSBpdFxuICAgICAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLUFkdmFuY2VkXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGNoZWNrQ2VydGlmaWNhdGVcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgJChcIiNjaGVja0NlcnRpZmljYXRlXCIpLm9uKFwiY2xpY2tcIiwgKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2goXCIvb3BjdWEtZW5kcG9pbnQyL2NsaWVudF9jZXJ0aWZpY2F0ZS5qc29uXCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmZvID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHQgPSBKU09OLnN0cmluZ2lmeShpbmZvLCBudWxsLCBcIiBcIik7XG4gICAgICAgICAgICAgICAgICAgIGFsZXJ0KHQpO1xuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgdGhlIFRlc3QgYnV0dG9uXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG1hbmFnZUFQSUNhbGwoXCJjb25uZWN0aW9uXCIsICQoXCIjdGVzdC1jb25uZWN0aW9uXCIpLCAoKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICB1cmw6IFwiL29wY3VhLWVuZHBvaW50Mi90ZXN0LWNvbm5lY3Rpb25cIixcbiAgICAgICAgICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IG5vZGUuaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtZW5kcG9pbnRcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VjdXJpdHlNb2RlOiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXNlY3VyaXR5TW9kZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWN1cml0eVBvbGljeTogJChcIiNub2RlLWNvbmZpZy1pbnB1dC1zZWN1cml0eVBvbGljeVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlOiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJJZGVudGl0eVR5cGVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlck5hbWU6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlck5hbWVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzc3dvcmQ6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtcGFzc3dvcmRcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlckNlcnRpZmljYXRlOiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJDZXJ0aWZpY2F0ZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyUHJpdmF0ZWtleTogJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VyUHJpdmF0ZWtleVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLy8gbm90IHRlc3RlZCB5ZXQgLi4uOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRpZmljYXRlOiAkKFwiI25vZGUtaW5wdXQtY2VydGlmaWNhdGVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxmaWxlOiAkKFwiI25vZGUtaW5wdXQtbG9jYWxmaWxlXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2Fsa2V5ZmlsZTogJChcIiNub2RlLWlucHV0LWxvY2Fsa2V5ZmlsZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VUcmFuc3BvcnQ6ICQoXCIjbm9kZS1pbnB1dC11c2VUcmFuc3BvcnRcIikucHJvcChcImNoZWNrZWRcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4Q2h1bmtDb3VudDogJChcIiNub2RlLWlucHV0LW1heENodW5rQ291bnRcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4TWVzc2FnZVNpemU6ICQoXCIjbm9kZS1pbnB1dC1tYXhNZXNzYWdlU2l6ZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWNlaXZlQnVmZmVyU2l6ZTogJChcIiNub2RlLWlucHV0LXJlY2VpdmVCdWZmZXJTaXplXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbmRCdWZmZXJTaXplOiAkKFwiI25vZGUtaW5wdXQtc2VuZEJ1ZmZlclNpemVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pLCAoKSA9PiB7IH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vICBJbnN0YWxsIHN1YnNjcmlwdGlvbnMgTGlzdCBtYW5hZ2VtZW50XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc2l6ZVRvcGljcyA9ICh0b3BpYywgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIG5ld1dpZHRoID0gdG9waWMud2lkdGgoKSB8fCAxMDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcGljLmZpbmQoXCJsYWJlbFwiKS50eXBlZElucHV0KFwid2lkdGhcIiwgbmV3V2lkdGggLSAxNSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpcHRpb25MaXN0ID0gJChcIiNzdWJzY3JpcHRpb25zLWNvbnRhaW5lclwiKVxuICAgICAgICAgICAgICAgICAgICAuY3NzKHsgXCJtaW4taGVpZ2h0XCI6IFwiMTUwcHhcIiwgXCJtaW4td2lkdGhcIjogXCIyNjBweFwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5lZGl0YWJsZUxpc3Qoe1xuICAgICAgICAgICAgICAgICAgICBhZGRJdGVtOiAoY29udGFpbmVyLCBpbmRleCwgZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgX2RhdGEgPSBkYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9ICQoXCIudGVtcGxhdGVcIikuY2xvbmUoKS5hcHBlbmRUbyhjb250YWluZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyKFwiaWRcIikucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpLnJlbW92ZUNsYXNzKFwidGVtcGxhdGVcIikuYXR0cihcImRhdGEtaVwiLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtbmFtZVwiKS52YWwoX2RhdGEubmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsXCIpLnZhbChfZGF0YS5wYXJhbWV0ZXJzLnJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnRcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMucmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKFwiLmlucHV0LXJlcXVlc3RlZExpZmV0aW1lQ291bnRcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMucmVxdWVzdGVkTGlmZXRpbWVDb3VudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtbWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2hcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMubWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2ggfHwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtcHJpb3JpdHlcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMucHJpb3JpdHkgfHwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuc3Vic2NyaXB0aW9uLWlkXCIpLnRleHQoXCJcIiArIGluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfZGF0YS5pc0RlZmF1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtbmFtZVwiKS5wcm9wKFwicmVhZG9ubHlcIiwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtaXNEZWZhdWx0XCIpLnByb3AoXCJjaGVja2VkXCIsIF9kYXRhLmlzRGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhhdCBkZWZhdWx0IHN1YnNjcmlwdGlvbiBjYW5ub3QgYmUgYWNjaWRlbnRhbGx5IHJlbW92ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfZGF0YS5pc0RlZmF1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuZmluZChcIi5yZWQtdWktZWRpdGFibGVMaXN0LWl0ZW0tcmVtb3ZlXCIpLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGVsZW1lbnQuZmluZChcIi5pbnB1dC1pc0RlZmF1bHRcIikucHJvcChcImRpc2FibGVkXCIsIHRydWUpLCAxMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIC8vIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICByZW1vdmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHJlc2l6ZUl0ZW06IHJlc2l6ZVRvcGljcyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCBBZGRTdWJzY3JpcHRpb24gPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbnMgPSBub2RlLnN1YnNjcmlwdGlvbnMgfHwgW107XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdWJzY3JpcHRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWRkIG1pc3NpbmcgZGVmYXVsdCBzdWJzY3JpcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiczFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkRlZmF1bHQgU3Vic2NyaXB0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNEZWZhdWx0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTdWJzY3JpcHRpb25QYXJhbWV0ZXJzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbkxpc3QuZWRpdGFibGVMaXN0KFwiZW1wdHlcIik7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIHN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN1YnNjcmlwdGlvbi5pc0RlZmF1bHQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbkxpc3QuZWRpdGFibGVMaXN0KFwiYWRkSXRlbVwiLCBzdWJzY3JpcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBBZGRTdWJzY3JpcHRpb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9KTtcblxufSkoKTsiXX0=
7
+ function _0x54ff(_0x2e5aa5,_0x2df341){const _0x98add6=_0x98ad();return _0x54ff=function(_0x54ff0d,_0x1f280e){_0x54ff0d=_0x54ff0d-0x1bd;let _0x11e7b4=_0x98add6[_0x54ff0d];return _0x11e7b4;},_0x54ff(_0x2e5aa5,_0x2df341);}(function(_0xc5aeed,_0xfe1613){const _0x4926da=_0x54ff,_0x578ed6=_0xc5aeed();while(!![]){try{const _0x32f148=parseInt(_0x4926da(0x201))/0x1+-parseInt(_0x4926da(0x202))/0x2*(parseInt(_0x4926da(0x1d9))/0x3)+parseInt(_0x4926da(0x23b))/0x4*(-parseInt(_0x4926da(0x256))/0x5)+-parseInt(_0x4926da(0x1e2))/0x6+-parseInt(_0x4926da(0x1f7))/0x7*(parseInt(_0x4926da(0x1f2))/0x8)+-parseInt(_0x4926da(0x1ff))/0x9+parseInt(_0x4926da(0x235))/0xa;if(_0x32f148===_0xfe1613)break;else _0x578ed6['push'](_0x578ed6['shift']());}catch(_0x5e40c5){_0x578ed6['push'](_0x578ed6['shift']());}}}(_0x98ad,0x27ec5),(function(){'use strict';const _0x4bd5bb=_0x54ff;function _0x198412(_0x39c7a4,_0x248ac0,_0x47a588,_0x3ce37c){function _0x34ea84(_0x26ae42){return _0x26ae42 instanceof _0x47a588?_0x26ae42:new _0x47a588(function(_0x594761){_0x594761(_0x26ae42);});}return new(_0x47a588||(_0x47a588=Promise))(function(_0x308d89,_0x48eb4d){const _0x11c6f1=_0x54ff;function _0x287aa7(_0x52179b){const _0x492990=_0x54ff;try{_0x15cfc5(_0x3ce37c[_0x492990(0x26a)](_0x52179b));}catch(_0x3c3e04){_0x48eb4d(_0x3c3e04);}}function _0x3100a2(_0x5c1013){const _0x800d73=_0x54ff;try{_0x15cfc5(_0x3ce37c[_0x800d73(0x1ee)](_0x5c1013));}catch(_0xb604){_0x48eb4d(_0xb604);}}function _0x15cfc5(_0x1974fe){const _0x1afd0d=_0x54ff;_0x1974fe[_0x1afd0d(0x1bd)]?_0x308d89(_0x1974fe[_0x1afd0d(0x229)]):_0x34ea84(_0x1974fe[_0x1afd0d(0x229)])[_0x1afd0d(0x1e5)](_0x287aa7,_0x3100a2);}_0x15cfc5((_0x3ce37c=_0x3ce37c[_0x11c6f1(0x26e)](_0x39c7a4,_0x248ac0||[]))[_0x11c6f1(0x26a)]());});}typeof SuppressedError===_0x4bd5bb(0x1f0)?SuppressedError:function(_0x476124,_0x49c049,_0x509eac){const _0xf947f3=_0x4bd5bb;var _0x195b92=new Error(_0x509eac);return _0x195b92['name']=_0xf947f3(0x1f1),_0x195b92[_0xf947f3(0x232)]=_0x476124,_0x195b92['suppressed']=_0x49c049,_0x195b92;};function _0xaa4332(_0x10180f,_0x1779d9,_0x3c1336,_0x33eb43){const _0x3c4dca=_0x4bd5bb,_0x4bd103=$('#'+_0x10180f+_0x3c4dca(0x25e)),_0x4f4130=$('#'+_0x10180f+_0x3c4dca(0x22b)),_0x52a19a=$('#'+_0x10180f+_0x3c4dca(0x211)),_0x37fa3d=$('#'+_0x10180f+_0x3c4dca(0x1d2));let _0x25b10b=![];_0x4bd103['hide'](),_0x4f4130['hide'](),_0x52a19a['hide'](),_0x1779d9['on'](_0x3c4dca(0x1d8),()=>{const _0x198ea7=_0x3c4dca;if(_0x25b10b)return;_0x25b10b=!![],_0x52a19a['removeClass'](_0x198ea7(0x1e4)),_0x52a19a[_0x198ea7(0x1dd)](_0x198ea7(0x1d0)),_0x4bd103['addClass'](_0x198ea7(0x1e4)),_0x4f4130[_0x198ea7(0x1d1)](_0x198ea7(0x1e4)),_0x37fa3d[_0x198ea7(0x1dd)]('');const {body:_0x1f0ec4,url:_0xa6e888}=_0x3c1336();fetch(_0xa6e888,{'method':'POST','headers':{'Content-Type':_0x198ea7(0x225)},'body':JSON[_0x198ea7(0x215)](_0x1f0ec4)})[_0x198ea7(0x1e5)](_0x37b343=>_0x37b343[_0x198ea7(0x213)]())[_0x198ea7(0x1e5)](_0x49bd3f=>{const _0x5de836=_0x198ea7;_0x25b10b=![],_0x52a19a[_0x5de836(0x1e4)](),console[_0x5de836(0x24c)](JSON[_0x5de836(0x215)](_0x49bd3f,null,'\x20'));if(_0x49bd3f[_0x5de836(0x1bf)]==='ok')_0x4bd103[_0x5de836(0x24b)](_0x5de836(0x1e4)),_0x4f4130[_0x5de836(0x1d1)](_0x5de836(0x1e4)),_0x37fa3d[_0x5de836(0x1dd)](_0x49bd3f[_0x5de836(0x214)][_0x5de836(0x1f6)]('\x0a',_0x5de836(0x1eb))),_0x33eb43(null,_0x49bd3f);else{const _0x1446db=_0x14777e=>!_0x14777e?'':_0x14777e[_0x5de836(0x1fa)]('\x0a')[_0x5de836(0x266)](_0x437f9a=>_0x5de836(0x20d)+_0x437f9a+'</p>')[_0x5de836(0x268)]('\x0a'),_0x9bcce6=_0x91e2cd=>Array[_0x5de836(0x1de)](_0x91e2cd)?_0x91e2cd['map'](_0x1446db)[_0x5de836(0x268)]('\x0a'):_0x1446db(_0x91e2cd);_0x4bd103[_0x5de836(0x1d1)](_0x5de836(0x1e4)),_0x4f4130['removeClass'](_0x5de836(0x1e4)),_0x37fa3d[_0x5de836(0x1dd)](_0x9bcce6(_0x49bd3f['message'])+_0x9bcce6(_0x49bd3f[_0x5de836(0x265)])),_0x33eb43(new Error(_0x49bd3f['result']),_0x49bd3f);}})[_0x198ea7(0x1e9)](_0x3a7898=>{const _0x32bc2f=_0x198ea7;_0x25b10b=![],_0x52a19a['addClass'](_0x32bc2f(0x1e4)),_0x4bd103[_0x32bc2f(0x1d1)]('hide'),_0x4f4130['removeClass'](_0x32bc2f(0x1e4)),_0x37fa3d[_0x32bc2f(0x1dd)](_0x32bc2f(0x239)+_0x3a7898[_0x32bc2f(0x214)]),console['log'](_0x32bc2f(0x1df),_0x3a7898),_0x33eb43(_0x3a7898,null);});});}const _0x21b3d8='prctbl_1OJt49BCNccbzsVzkaANOgFL',_0xddbfee='pk_live_51HsE1sBCNccbzsVzt7zaq2uv20pkryWllAzvZgZd5AhwFI9A3qBIeOJvJwQF08lDoLpFqLjwmyA79wnPnYLsvKjt009f00VpCW';function _0x22fb1c(_0xd56f58=''){return _0x198412(this,void 0x0,void 0x0,function*(){const _0x3ab78a=_0x54ff,_0x26e13c=_0xd56f58+'/opcua-endpoint2',_0x9ff14e=_0x26e13c+_0x3ab78a(0x1dc),_0x1e0ffd=yield fetch(_0x9ff14e,{'method':_0x3ab78a(0x210),'headers':{'Content-Type':_0x3ab78a(0x225)}});if(_0x1e0ffd['status']!==0xc8)return console[_0x3ab78a(0x24c)](_0x3ab78a(0x20a),_0x1e0ffd[_0x3ab78a(0x1da)],_0x1e0ffd[_0x3ab78a(0x212)]),{};const _0x1948f1=yield _0x1e0ffd[_0x3ab78a(0x213)]();return _0x1948f1;});}const _0x2d6833=()=>{const _0x3e5eae=_0x4bd5bb;$[_0x3e5eae(0x1e6)](_0x3e5eae(0x249),{'options':{'baseUrl':''},'_create'(){const _0x35bd9d=_0x3e5eae,_0xb7d278=this,_0x2dc173=_0x35bd9d(0x20c),_0x526f67=_0x35bd9d(0x1fc);_0x22fb1c(_0xb7d278[_0x35bd9d(0x1ca)])[_0x35bd9d(0x1e5)](_0x3fa3e4=>{const _0x159084=_0x35bd9d;let _0x593ad1='',_0x5cf845='',_0x2deced='';const _0x4226bf=_0x3fa3e4[_0x159084(0x1da)];switch(_0x4226bf){case'AUTHORIZED':_0x593ad1=_0x159084(0x258);if(_0x3fa3e4[_0x159084(0x1f4)]){const _0x56f7ed=_0x3fa3e4[_0x159084(0x1e3)][_0x159084(0x271)],_0x2081ec=Math[_0x159084(0x260)]((_0x56f7ed-new Date()[_0x159084(0x244)]())/(0x3e8*0xe10*0x18));_0x5cf845=_0x159084(0x1c3),_0x2deced=_0x159084(0x228)+_0x2081ec+'\x20days.\x20Buy\x20online\x20and\x20visit\x20'+_0x526f67+'\x20to\x20acquire\x20a\x20license.';}else _0x5cf845=_0x159084(0x231),_0x2deced=_0x526f67+_0x159084(0x1eb)+_0x2dc173;break;case _0x159084(0x216):_0x593ad1=_0x159084(0x1c7),_0x5cf845=_0x159084(0x257),_0x2deced=_0x159084(0x262);break;case _0x159084(0x26d):default:_0x593ad1=_0x159084(0x206),_0x5cf845=_0x159084(0x1e7),_0x2deced=_0x159084(0x1fb)+_0x2dc173+_0x159084(0x22a);break;}this[_0x159084(0x22d)][_0x159084(0x1d1)](_0x159084(0x254)),this[_0x159084(0x22d)]['addClass']('licence-widget-'+_0x4226bf),this['element'][_0x159084(0x233)]($(_0x159084(0x21a))[_0x159084(0x1d1)](_0x159084(0x243))[_0x159084(0x233)]($('<i>')['addClass'](_0x593ad1))),this[_0x159084(0x22d)][_0x159084(0x233)]($(_0x159084(0x21a))[_0x159084(0x1d1)]('licence-widget-msg')[_0x159084(0x209)](_0x5cf845)),this[_0x159084(0x22d)][_0x159084(0x233)]($(_0x159084(0x1eb))),this[_0x159084(0x22d)]['append']($(_0x159084(0x21a))[_0x159084(0x1d1)](_0x159084(0x269))[_0x159084(0x233)](_0x2deced));if(_0x4226bf==='EXPIRED'||_0x4226bf===_0x159084(0x26d)){const _0x10be3a=$('<button/>');_0x10be3a[_0x159084(0x218)]('id',_0x159084(0x1fd)),_0x10be3a[_0x159084(0x218)](_0x159084(0x1ed),_0x159084(0x25b)),_0x10be3a[_0x159084(0x218)](_0x159084(0x20f),_0x159084(0x251)),_0x10be3a[_0x159084(0x209)](_0x159084(0x1ce)),this['element'][_0x159084(0x233)](_0x10be3a);const _0x2ea492=document['createElement'](_0x159084(0x1ef));_0x2ea492[_0x159084(0x1ec)]=_0x159084(0x259),_0x2ea492['async']=!![],$(_0x159084(0x220))[_0x159084(0x233)](_0x2ea492);const _0x3166bc=$('<stripe-pricing-table/>');_0x3166bc['attr']('pricing-table-id',_0x21b3d8),_0x3166bc[_0x159084(0x218)](_0x159084(0x200),_0xddbfee),_0x3166bc['attr']('style','height:\x20100%;max-height:\x20100%;'),_0x3166bc['hide'](),this[_0x159084(0x22d)][_0x159084(0x233)](_0x3166bc),_0x10be3a['on'](_0x159084(0x1d8),()=>{const _0x56abc5=_0x159084;_0x3166bc[_0x56abc5(0x1c4)](),_0x10be3a[_0x56abc5(0x1e4)](),this[_0x56abc5(0x22d)]['attr'](_0x56abc5(0x20f),_0x56abc5(0x1cb));});}})[_0x35bd9d(0x1e9)](_0x40b081=>{const _0x1d0075=_0x35bd9d;console[_0x1d0075(0x24c)](_0x40b081);});}});};_0x2d6833();function _0x2f9e39(_0x2c0ff4){const _0x17c127=_0x4bd5bb;let _0x5da978;try{_0x5da978=new URL(_0x2c0ff4);}catch(_0x4a08cb){return![];}return _0x5da978[_0x17c127(0x219)]===_0x17c127(0x23a);}const _0x2cf58a={'publishingEnabled':!![],'requestedLifetimeCount':0x3e8,'requestedMaxKeepAliveCount':0xa,'requestedPublishingInterval':0x3e8,'maxNotificationsPerPublish':0x0,'priority':0x64};RED[_0x4bd5bb(0x1d6)][_0x4bd5bb(0x26c)](_0x4bd5bb(0x234),{'category':'config','paletteLabel':'opcua\x20endpoint','defaults':{'name':{'value':''},'endpoint':{'value':_0x4bd5bb(0x274),'required':!![],'validate':_0x2f9e39},'securityMode':{'value':_0x4bd5bb(0x23f)},'securityPolicy':{'value':'None','validate':_0x597d8e=>{if(!_0x597d8e)return![];return!![];}},'userIdentityType':{'value':_0x4bd5bb(0x1d3)},'userName':{'value':''},'password':{'value':'','type':_0x4bd5bb(0x1c0)},'userCertificate':{'value':''},'userPrivatekey':{'value':''},'certificate':{'value':'n'},'localfile':{'value':''},'localkeyfile':{'value':''},'useTransport':{'value':![],'required':![]},'maxChunkCount':{'value':0x1,'required':![]},'maxMessageSize':{'value':0x2000,'required':![]},'receiveBufferSize':{'value':0x2000,'required':![]},'sendBufferSize':{'value':0x2000,'required':![]},'subscriptions':{'value':[{'id':'s1','name':_0x4bd5bb(0x21b),'isDefault':!![],'parameters':Object[_0x4bd5bb(0x1be)]({},_0x2cf58a)},{'id':'s2','name':'Slow\x20Subscription','isDefault':![],'parameters':{'publishingEnabled':!![],'requestedLifetimeCount':0x64,'requestedMaxKeepAliveCount':0x14,'requestedPublishingInterval':0x1388,'maxNotificationsPerPublish':0x64,'priority':0xa}},{'id':'s3','name':_0x4bd5bb(0x1cd),'isDefault':![],'parameters':{'publishingEnabled':!![],'requestedLifetimeCount':0xfa0,'requestedMaxKeepAliveCount':0x64,'requestedPublishingInterval':0xfa,'maxNotificationsPerPublish':0x64,'priority':0xc8}}],'required':![]}},'credentials':{'user':{'type':_0x4bd5bb(0x209)},'password':{'type':_0x4bd5bb(0x1c0)}},'label':function(){const _0x1954ef=_0x4bd5bb;return this[_0x1954ef(0x1f5)]||this[_0x1954ef(0x248)]||_0x1954ef(0x23d);},'oneditsave'(){const _0x1d4c8b=_0x4bd5bb,_0x221974=$('#node-config-input-securityPolicy'),_0x313d19=$(_0x1d4c8b(0x21e));_0x221974[_0x1d4c8b(0x21d)]()===_0x1d4c8b(0x23f)&&_0x313d19[_0x1d4c8b(0x209)](_0x1d4c8b(0x23f));const _0x5e1a77=$(_0x1d4c8b(0x1db))['editableList']('items'),_0xd3ea63=[],_0x38fae8=_0x2dfc87=>_0x2dfc87;_0x5e1a77[_0x1d4c8b(0x241)](function(_0x180d56,_0x17ec4a){const _0x4872b7=_0x1d4c8b,_0x3155ac=$(this),_0x2fa8e1={'id':'s'+_0x180d56,'name':_0x3155ac[_0x4872b7(0x208)](_0x4872b7(0x1e0))[_0x4872b7(0x21d)](),'isDefault':!!_0x3155ac[_0x4872b7(0x208)](_0x4872b7(0x25a))[_0x4872b7(0x21d)](),'parameters':{'publishingEnabled':!!_0x3155ac['find']('.input-publishingEnabled')['is'](_0x4872b7(0x237)),'requestedLifetimeCount':_0x38fae8(_0x3155ac[_0x4872b7(0x208)](_0x4872b7(0x25f))[_0x4872b7(0x21d)]()),'requestedMaxKeepAliveCount':_0x38fae8(_0x3155ac[_0x4872b7(0x208)](_0x4872b7(0x1cf))['val']()),'requestedPublishingInterval':_0x38fae8(_0x3155ac[_0x4872b7(0x208)](_0x4872b7(0x1f3))['val']()),'maxNotificationsPerPublish':_0x38fae8(_0x3155ac[_0x4872b7(0x208)](_0x4872b7(0x227))[_0x4872b7(0x21d)]()),'priority':_0x38fae8(_0x3155ac[_0x4872b7(0x208)](_0x4872b7(0x205))[_0x4872b7(0x21d)]())}};_0x2fa8e1[_0x4872b7(0x23e)]['publishingEnabled']=!![],_0x2fa8e1[_0x4872b7(0x226)]&&_0x2fa8e1['id']==='s0'&&(_0x2fa8e1[_0x4872b7(0x1f5)]=_0x4872b7(0x21b)),_0xd3ea63['push'](_0x2fa8e1);}),this[_0x1d4c8b(0x22c)]=_0xd3ea63;},'oneditprepare'(){const _0x3f53cb=_0x4bd5bb,_0x21cbc8=this,_0x334de2=RED[_0x3f53cb(0x1ea)][_0x3f53cb(0x24a)]({'id':_0x3f53cb(0x272),'onchange':function(_0x5e1e0c){const _0x4a5334=_0x3f53cb;$(_0x4a5334(0x267))[_0x4a5334(0x250)]()[_0x4a5334(0x1e4)](),$('#'+_0x5e1e0c['id'])['show']();}});_0x334de2[_0x3f53cb(0x252)]({'id':_0x3f53cb(0x1d5),'label':_0x3f53cb(0x217)},0x0),_0x334de2['addTab']({'id':'endpoint-tab-subscriptions','label':'Subscriptions'},0x1),setTimeout(function(){_0x334de2['resize']();},0x0);{const _0x4a8c44=_0x1698b2=>{const _0x535553=_0x3f53cb;switch(_0x1698b2){case null:case undefined:case'':case _0x535553(0x23f):$(_0x535553(0x1fe))['hide']();break;case _0x535553(0x1cc):case _0x535553(0x245):{const _0x4a0005=$(_0x535553(0x1fe));(_0x4a0005[_0x535553(0x21d)]()===_0x535553(0x23f)||_0x4a0005[_0x535553(0x21d)]()==='')&&_0x4a0005[_0x535553(0x21d)](_0x535553(0x1d4)),$('.section-securityPolicy')[_0x535553(0x1c4)]();}break;default:console['log'](_0x535553(0x242)+_0x1698b2);}};_0x4a8c44(_0x21cbc8[_0x3f53cb(0x26f)]);const _0x774bf5=$(_0x3f53cb(0x21e));_0x774bf5['on'](_0x3f53cb(0x21c),()=>{const _0x56467e=_0x774bf5['val']();_0x4a8c44(_0x56467e);});}const _0x21b340=$(_0x3f53cb(0x236));_0x21b340['licenceWidget']({'baseUrl':''});{const _0x640204=$('.section-userIdentityType-UserName'),_0x9aab62=$(_0x3f53cb(0x1c5)),_0x56b128=_0x49f6bb=>{const _0x50c5cd=_0x3f53cb;_0x49f6bb=_0x49f6bb||_0x50c5cd(0x1d3);switch(_0x49f6bb){case _0x50c5cd(0x1d3):$(_0x50c5cd(0x246))[_0x50c5cd(0x21d)](''),$(_0x50c5cd(0x247))['val'](''),_0x640204[_0x50c5cd(0x1e4)](),_0x9aab62[_0x50c5cd(0x1e4)]();break;case _0x50c5cd(0x230):_0x640204[_0x50c5cd(0x1c4)](),_0x9aab62[_0x50c5cd(0x1e4)]();break;case _0x50c5cd(0x255):$(_0x50c5cd(0x246))[_0x50c5cd(0x21d)](''),$(_0x50c5cd(0x247))[_0x50c5cd(0x21d)](''),_0x9aab62[_0x50c5cd(0x1c4)](),_0x640204['hide']();break;default:console['log'](_0x50c5cd(0x1c1)+_0x49f6bb);}};_0x56b128(_0x21cbc8[_0x3f53cb(0x25c)]);const _0x1aa84b=$('#node-config-input-userIdentityType');_0x1aa84b['on'](_0x3f53cb(0x21c),()=>{const _0x31e493=_0x1aa84b['val']();_0x56b128(_0x31e493);});}{$(_0x3f53cb(0x22f))[_0x3f53cb(0x1e4)](),$(_0x3f53cb(0x24d))['on'](_0x3f53cb(0x21c),function(){const _0x256d66=_0x3f53cb;$(this)[_0x256d66(0x240)](_0x256d66(0x1c6))?$('#section-Advanced')[_0x256d66(0x1c4)]():$('#section-Advanced')['hide']();});}{$('#checkCertificate')['on']('click',()=>_0x198412(this,void 0x0,void 0x0,function*(){const _0x31baa6=_0x3f53cb,_0x22099a=yield fetch('/opcua-endpoint2/client_certificate.json'),_0x5afa63=yield _0x22099a[_0x31baa6(0x213)](),_0x29ef71=JSON[_0x31baa6(0x215)](_0x5afa63,null,'\x20');alert(_0x29ef71);}));}{_0xaa4332(_0x3f53cb(0x273),$(_0x3f53cb(0x264)),()=>({'url':'/opcua-endpoint2/test-connection','body':{'endpointNode':{'id':_0x21cbc8['id'],'endpoint':$('#node-config-input-endpoint')[_0x3f53cb(0x21d)](),'securityMode':$(_0x3f53cb(0x21e))[_0x3f53cb(0x21d)](),'securityPolicy':$(_0x3f53cb(0x1d7))[_0x3f53cb(0x21d)](),'userIdentityType':$(_0x3f53cb(0x23c))[_0x3f53cb(0x21d)](),'userName':$(_0x3f53cb(0x246))[_0x3f53cb(0x21d)](),'password':$(_0x3f53cb(0x247))['val'](),'userCertificate':$(_0x3f53cb(0x1c8))[_0x3f53cb(0x21d)](),'userPrivatekey':$('#node-config-input-userPrivatekey')[_0x3f53cb(0x21d)](),'certificate':$(_0x3f53cb(0x1c2))[_0x3f53cb(0x21d)](),'localfile':$(_0x3f53cb(0x238))['val'](),'localkeyfile':$(_0x3f53cb(0x22e))['val'](),'useTransport':$(_0x3f53cb(0x20e))['prop'](_0x3f53cb(0x1c6)),'maxChunkCount':$(_0x3f53cb(0x222))[_0x3f53cb(0x21d)](),'maxMessageSize':$('#node-input-maxMessageSize')[_0x3f53cb(0x21d)](),'receiveBufferSize':$(_0x3f53cb(0x253))[_0x3f53cb(0x21d)](),'sendBufferSize':$(_0x3f53cb(0x1c9))['val']()}}}),()=>{});}{const _0x4387be=(_0x7f59c6,_0x156b2c)=>{const _0x5d6acd=_0x3f53cb;var _0x186696=_0x7f59c6[_0x5d6acd(0x1e8)]()||0x64;_0x7f59c6[_0x5d6acd(0x208)](_0x5d6acd(0x223))[_0x5d6acd(0x21f)]('width',_0x186696-0xf);},_0x2ada7b=$('#subscriptions-container')['css']({'min-height':_0x3f53cb(0x1f8),'min-width':_0x3f53cb(0x263)})[_0x3f53cb(0x204)]({'addItem':(_0x424e65,_0x20f2a1,_0x3b8fe7)=>{const _0x481b8f=_0x3f53cb,_0x57ebb5=_0x3b8fe7,_0x3796d8=$(_0x481b8f(0x1f9))['clone']()[_0x481b8f(0x224)](_0x424e65);_0x3796d8[_0x481b8f(0x1e1)]('id')[_0x481b8f(0x24b)]('hide')[_0x481b8f(0x24b)](_0x481b8f(0x261))[_0x481b8f(0x218)](_0x481b8f(0x25d),_0x20f2a1),_0x3796d8[_0x481b8f(0x208)](_0x481b8f(0x1e0))[_0x481b8f(0x21d)](_0x57ebb5[_0x481b8f(0x1f5)]),_0x3796d8[_0x481b8f(0x208)](_0x481b8f(0x1f3))['val'](_0x57ebb5[_0x481b8f(0x23e)]['requestedPublishingInterval']),_0x3796d8[_0x481b8f(0x208)](_0x481b8f(0x1cf))[_0x481b8f(0x21d)](_0x57ebb5['parameters'][_0x481b8f(0x270)]),_0x3796d8[_0x481b8f(0x208)](_0x481b8f(0x25f))[_0x481b8f(0x21d)](_0x57ebb5[_0x481b8f(0x23e)][_0x481b8f(0x20b)]),_0x3796d8[_0x481b8f(0x208)](_0x481b8f(0x227))['val'](_0x57ebb5[_0x481b8f(0x23e)][_0x481b8f(0x24f)]||0x0),_0x3796d8[_0x481b8f(0x208)](_0x481b8f(0x205))['val'](_0x57ebb5[_0x481b8f(0x23e)][_0x481b8f(0x207)]||0x0),_0x3796d8[_0x481b8f(0x208)](_0x481b8f(0x203))[_0x481b8f(0x209)](''+_0x20f2a1),_0x57ebb5['isDefault']&&_0x3796d8['find']('.input-name')[_0x481b8f(0x240)]('readonly',!![]),_0x3796d8[_0x481b8f(0x208)]('.input-isDefault')[_0x481b8f(0x240)](_0x481b8f(0x1c6),_0x57ebb5[_0x481b8f(0x226)]),_0x57ebb5[_0x481b8f(0x226)]&&(_0x424e65['find'](_0x481b8f(0x221))[_0x481b8f(0x1d1)](_0x481b8f(0x1e4)),setTimeout(()=>_0x3796d8[_0x481b8f(0x208)](_0x481b8f(0x25a))[_0x481b8f(0x240)]('disabled',!![]),0xa));},'removable':!![],'resizeItem':_0x4387be}),_0x40a9cd=()=>{const _0x928d7=_0x3f53cb,_0x5d019a=_0x21cbc8[_0x928d7(0x22c)]||[];_0x5d019a[_0x928d7(0x24e)]===0x0&&_0x5d019a['push']({'id':'s1','name':_0x928d7(0x21b),'isDefault':!![],'parameters':Object[_0x928d7(0x1be)]({},_0x2cf58a)});_0x2ada7b['editableList'](_0x928d7(0x26b));for(const _0x33eb9e of _0x5d019a){_0x2ada7b[_0x928d7(0x204)]('addItem',_0x33eb9e);}};_0x40a9cd();}}});}()));function _0x98ad(){const _0x20840f=['json','message','stringify','EXPIRED','Connection','attr','protocol','<span>','Default\x20Subscription','change','val','#node-config-input-securityMode','typedInput','head','.red-ui-editableList-item-remove','#node-input-maxChunkCount','label','appendTo','application/json','isDefault','.input-maxNotificationsPerPublish','This\x20is\x20a\x20demo\x20licence\x20and\x20will\x20expire\x20in\x20','value','\x20or\x20visit\x20our\x20website\x20to\x20renew\x20your\x20license\x20and\x20regain\x20access\x20to\x20our\x20services.̀','-failure','subscriptions','element','#node-input-localkeyfile','#section-Advanced','UserName','Your\x20licence\x20is\x20valid.','error','append','OpcUa-Endpoint2','10086290KaKHZN','#licenceWidget',':checked','#node-input-localfile','internal\x20error\x20','opc.tcp:','76rbjamL','#node-config-input-userIdentityType','invalid\x20endpoint','parameters','None','prop','each','invalid\x20securityMode\x20','licence-widget-icon','getTime','SignAndEncrypt','#node-config-input-userName','#node-config-input-password','endpoint','sterfive.licenceWidget','create','removeClass','log','#toggleAdvancedSection','length','maxNotificationsPerPublish','children','margin-top:\x2020px;','addTab','#node-input-receiveBufferSize','licence-widget','Certificate','67775rEkTBr','Licence\x20expired','fa\x20fa-check-circle','https://js.stripe.com/v3/pricing-table.js','.input-isDefault','btn\x20btn-primary','userIdentityType','data-i','-success','.input-requestedLifetimeCount','floor','template','Your\x20license\x20has\x20expired.\x20Please\x20contact\x20our\x20support\x20team\x20or\x20visit\x20our\x20website\x20to\x20renew\x20your\x20license\x20and\x20regain\x20access\x20to\x20our\x20services.','260px','#test-connection','extra','map','#node-config-endpoint-tabs-content','join','licence-widget-details','next','empty','registerType','FAILED','apply','securityMode','requestedMaxKeepAliveCount','expiryDate','node-config-endpoint-tabs','connection','opc.tcp://opcuademo.sterfive.com:26543/UA/SampleServer','done','assign','result','password','invalid\x20userIdentityType\x20','#node-input-certificate','Demo\x20licence','show','.section-userIdentityType-Certificate','checked','fa\x20fa-calendar-time','#node-config-input-userCertificate','#node-input-sendBufferSize','baseUrl','height:\x20100%\x20!important;','Sign','Fast\x20Subscription','Subscribe','.input-requestedMaxKeepAliveCount','Testing\x20Connection\x20...','addClass','-messages','Anonymous','Basic256Sha256','endpoint-tab-connection','nodes','#node-config-input-securityPolicy','click','21YDrSvS','status','#subscriptions-container','/licenceInfo','html','isArray','err','.input-name','removeAttr','811230FTBuJo','licenceInfo','hide','then','widget','Your\x20license\x20is\x20currently\x20invalid.','width','catch','tabs','<br>','src','class','throw','script','function','SuppressedError','3992wokCWX','.input-requestedPublishingInterval','isDemo','name','replace','2989dnorNY','150px','.template','split','Please\x20contact\x20','<a\x20href=\x22https://www.sterfive.com/opcua/for-node-red\x22\x20target=”_blank”>Sterfive\x27s\x20website\x20</a>','subscribe-button','.section-securityPolicy','591615zzekGH','publishable-key','103283kkXHwl','79094TKYHqN','.subscription-id','editableList','.input-priority','fa\x20fa-exclamation-circle','priority','find','text','fetching\x20failed\x20with\x20error','requestedLifetimeCount','<a\x20href=\x22mailto:support@sterfive.com\x22\x20subject=\x22@opcua/for-node-red\x20support\x20request\x22>mailto:support@sterfive.com</a>','<p>','#node-input-useTransport','style','POST','-pending','statusText'];_0x98ad=function(){return _0x20840f;};return _0x98ad();}
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgxOTg0MTIiLCJfMHgzOWM3YTQiLCJfMHgyNDhhYzAiLCJfMHg0N2E1ODgiLCJfMHgzY2UzN2MiLCJfMHgzNGVhODQiLCJfMHgyNmFlNDIiLCJfMHg1OTQ3NjEiLCJQcm9taXNlIiwiXzB4MzA4ZDg5IiwiXzB4NDhlYjRkIiwiXzB4Mjg3YWE3IiwiXzB4NTIxNzliIiwiXzB4MTVjZmM1IiwiXzB4M2MzZTA0IiwiXzB4MzEwMGEyIiwiXzB4NWMxMDEzIiwiXzB4YjYwNCIsIl8weDE5NzRmZSIsIlN1cHByZXNzZWRFcnJvciIsIl8weDQ3NjEyNCIsIl8weDQ5YzA0OSIsIl8weDUwOWVhYyIsIl8weDE5NWI5MiIsIkVycm9yIiwiXzB4YWE0MzMyIiwiXzB4MTAxODBmIiwiXzB4MTc3OWQ5IiwiXzB4M2MxMzM2IiwiXzB4MzNlYjQzIiwiXzB4NGJkMTAzIiwiJCIsIl8weDRmNDEzMCIsIl8weDUyYTE5YSIsIl8weDM3ZmEzZCIsIl8weDI1YjEwYiIsImJvZHkiLCJfMHgxZjBlYzQiLCJ1cmwiLCJfMHhhNmU4ODgiLCJmZXRjaCIsIkpTT04iLCJfMHgzN2IzNDMiLCJfMHg0OWJkM2YiLCJjb25zb2xlIiwiXzB4MTQ0NmRiIiwiXzB4MTQ3NzdlIiwiXzB4NDM3ZjlhIiwiXzB4OWJjY2U2IiwiXzB4OTFlMmNkIiwiQXJyYXkiLCJfMHgzYTc4OTgiLCJfMHgyMWIzZDgiLCJfMHhkZGJmZWUiLCJfMHgyMmZiMWMiLCJfMHhkNTZmNTgiLCJfMHgyNmUxM2MiLCJfMHg5ZmYxNGUiLCJfMHgxZTBmZmQiLCJfMHgxOTQ4ZjEiLCJfMHgyZDY4MzMiLCJfMHhiN2QyNzgiLCJfMHgyZGMxNzMiLCJfMHg1MjZmNjciLCJfMHgzZmEzZTQiLCJfMHg1OTNhZDEiLCJfMHg1Y2Y4NDUiLCJfMHgyZGVjZWQiLCJfMHg0MjI2YmYiLCJfMHg1NmY3ZWQiLCJfMHgyMDgxZWMiLCJNYXRoIiwiRGF0ZSIsIl8weDEwYmUzYSIsIl8weDJlYTQ5MiIsImRvY3VtZW50IiwiXzB4MzE2NmJjIiwiXzB4NDBiMDgxIiwiXzB4MmY5ZTM5IiwiXzB4MmMwZmY0IiwiXzB4NWRhOTc4IiwiVVJMIiwiXzB4NGEwOGNiIiwiXzB4MmNmNThhIiwiUkVEIiwiXzB4NTk3ZDhlIiwiT2JqZWN0IiwiXzB4MjIxOTc0IiwiXzB4MzEzZDE5IiwiXzB4NWUxYTc3IiwiXzB4ZDNlYTYzIiwiXzB4MzhmYWU4IiwiXzB4MmRmYzg3IiwiXzB4MTgwZDU2IiwiXzB4MTdlYzRhIiwiXzB4MzE1NWFjIiwiXzB4MmZhOGUxIiwiXzB4MjFjYmM4IiwiXzB4MzM0ZGUyIiwiXzB4NWUxZTBjIiwic2V0VGltZW91dCIsIl8weDRhOGM0NCIsIl8weDE2OThiMiIsInVuZGVmaW5lZCIsIl8weDRhMDAwNSIsIl8weDc3NGJmNSIsIl8weDU2NDY3ZSIsIl8weDIxYjM0MCIsIl8weDY0MDIwNCIsIl8weDlhYWI2MiIsIl8weDU2YjEyOCIsIl8weDQ5ZjZiYiIsIl8weDFhYTg0YiIsIl8weDMxZTQ5MyIsIl8weDIyMDk5YSIsIl8weDVhZmE2MyIsIl8weDI5ZWY3MSIsImFsZXJ0IiwiXzB4NDM4N2JlIiwiXzB4N2Y1OWM2IiwiXzB4MTU2YjJjIiwiXzB4MTg2Njk2IiwiXzB4MmFkYTdiIiwiXzB4NDI0ZTY1IiwiXzB4MjBmMmExIiwiXzB4M2I4ZmU3IiwiXzB4NTdlYmI1IiwiXzB4Mzc5NmQ4IiwiXzB4NDBhOWNkIiwiXzB4NWQwMTlhIiwiXzB4MzNlYjllIl0sIm1hcHBpbmdzIjoib3lCQUFBLENBQUMsVSxDQUNHLGEsd0JBbUJBLFNBQVNBLFNBQVQsQ0FBbUJDLFNBQW5CLENBQTRCQyxTQUE1QixDQUF3Q0MsU0FBeEMsQ0FBMkNDLFNBQTNDLEMsQ0FDSSxTQUFTQyxTQUFULENBQWVDLFNBQWYsQyxRQUErQkEsU0FBQSxZQUFpQkgsU0FBakIsQ0FBcUJHLFNBQXJCLENBQTZCLElBQUlILFNBQUosQ0FBTSxTQUFVSSxTQUFWLEMsQ0FBcUJBLFNBQUEsQ0FBUUQsU0FBUixDLEVBQTNCLEMsU0FDckQs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LENBQW5CLEMsQ0FPSnVDLFNBQUEsQyxjQUFBLEUsZUFBQSxFQUNBLFVBQVdRLFNBQVgsSUFBMkJELFNBQTNCLEMsQ0FFSVAsU0FBQSxDLGVBQUEsRSxTQUFBLENBQXlDUSxTQUF6QyxDLEdBOUNSLENBaURBRixTQUFBLEUsR0FqVThCLENBQTFDLEMsRUE1TkosRyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIG1hbmFnZUFQSUNhbGwocHJlZml4LCBidG4sIGZ1bmMsIG9uUmVzdWx0KSB7XG4gICAgICAgIGNvbnN0IHN1Y2Nlc3NJY29uID0gJChgIyR7cHJlZml4fS1zdWNjZXNzYCk7XG4gICAgICAgIGNvbnN0IGZhaWx1cmVJY29uID0gJChgIyR7cHJlZml4fS1mYWlsdXJlYCk7XG4gICAgICAgIGNvbnN0IHBlbmRpbmdJY29uID0gJChgIyR7cHJlZml4fS1wZW5kaW5nYCk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2VzID0gJChgIyR7cHJlZml4fS1tZXNzYWdlc2ApO1xuICAgICAgICBsZXQgYWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICBzdWNjZXNzSWNvbi5oaWRlKCk7XG4gICAgICAgIGZhaWx1cmVJY29uLmhpZGUoKTtcbiAgICAgICAgcGVuZGluZ0ljb24uaGlkZSgpO1xuICAgICAgICBidG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWN0aW9uUGVuZGluZylcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHBlbmRpbmdJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIHBlbmRpbmdJY29uLmh0bWwoXCJUZXN0aW5nIENvbm5lY3Rpb24gLi4uXCIpO1xuICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgZmFpbHVyZUljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChcIlwiKTtcbiAgICAgICAgICAgIGNvbnN0IHsgYm9keSwgdXJsIH0gPSBmdW5jKCk7XG4gICAgICAgICAgICAvLyB4eCBjb25zb2xlLmxvZyhcInh4eHh4XCIsIGJvZHkpO1xuICAgICAgICAgICAgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoYm9keSksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiBkYXRhLmpzb24oKSlcbiAgICAgICAgICAgICAgICAudGhlbigoanNvbikgPT4ge1xuICAgICAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nSWNvbi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoanNvbiwgbnVsbCwgXCIgXCIpKTtcbiAgICAgICAgICAgICAgICBpZiAoanNvbi5yZXN1bHQgPT09IFwib2tcIikge1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChqc29uLm1lc3NhZ2UucmVwbGFjZShcIlxcblwiLCBcIjxicj5cIikpO1xuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdChudWxsLCBqc29uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkYXB0ID0gKHN0cikgPT4gIXN0clxuICAgICAgICAgICAgICAgICAgICAgICAgPyBcIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHN0clxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zcGxpdChcIlxcblwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKGEpID0+IGA8cD4ke2F9PC9wPmApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oXCJcXG5cIik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkYXB0MiA9IChzdHIpID0+IChBcnJheS5pc0FycmF5KHN0cikgPyBzdHIubWFwKGFkYXB0KS5qb2luKFwiXFxuXCIpIDogYWRhcHQoc3RyKSk7XG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgZmFpbHVyZUljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKGFkYXB0Mihqc29uLm1lc3NhZ2UpICsgYWRhcHQyKGpzb24uZXh0cmEpKTtcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQobmV3IEVycm9yKGpzb24ucmVzdWx0KSwganNvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKFwiaW50ZXJuYWwgZXJyb3IgXCIgKyBlcnIubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICBvblJlc3VsdChlcnIsIG51bGwpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHByaWNpbmdUYWJsZUlkID0gXCJwcmN0YmxfMU9KdDQ5QkNOY2NienNWemthQU5PZ0ZMXCI7XG4gICAgY29uc3QgcHVibGlzaGFibGVLZXkgPSBcInBrX2xpdmVfNTFIc0Uxc0JDTmNjYnpzVnp0N3phcTJ1djIwcGtyeVdsbEF6dlpnWmQ1QWh3Rkk5QTNxQkllT0p2SndRRjA4bERvTHBGcUxqd215QTc5d25QbllMc3ZLanQwMDlmMDBWcENXXCI7XG4gICAgZnVuY3Rpb24gZmV0Y2hMaWNlbmNlSW5mbyhiYXNlVXJsID0gXCJcIikge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9saWNlbmNlSW5mb2A7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBqc29uID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgICAgICByZXR1cm4ganNvbjtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGRlY2xhcmVMaWNlbmNlV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLmxpY2VuY2VXaWRnZXRcIiwge1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBjb25zdCBjb250YWN0TGluayA9IGA8YSBocmVmPVwibWFpbHRvOnN1cHBvcnRAc3RlcmZpdmUuY29tXCIgc3ViamVjdD1cIkBvcGN1YS9mb3Itbm9kZS1yZWQgc3VwcG9ydCByZXF1ZXN0XCI+bWFpbHRvOnN1cHBvcnRAc3RlcmZpdmUuY29tPC9hPmA7XG4gICAgICAgICAgICAgICAgY29uc3Qgd2Vic2l0ZUxpbmsgPSBgPGEgaHJlZj1cImh0dHBzOi8vd3d3LnN0ZXJmaXZlLmNvbS9vcGN1YS9mb3Itbm9kZS1yZWRcIiB0YXJnZXQ94oCdX2JsYW5r4oCdPlN0ZXJmaXZlJ3Mgd2Vic2l0ZSA8L2E+YDtcbiAgICAgICAgICAgICAgICBmZXRjaExpY2VuY2VJbmZvKHRoYXQuYmFzZVVybClcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGljb24gPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBsZXQgbXNnID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRldGFpbHMgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXMgPSBqc29uLnN0YXR1cztcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChzdGF0dXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJBVVRIT1JJWkVEXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbiA9IFwiZmEgZmEtY2hlY2stY2lyY2xlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGpzb24uaXNEZW1vKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHQgPSBqc29uLmxpY2VuY2VJbmZvLmV4cGlyeURhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRheUxlZnQgPSBNYXRoLmZsb29yKCh0IC0gbmV3IERhdGUoKS5nZXRUaW1lKCkpIC8gKDEwMDAgKiAzNjAwICogMjQpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gXCJEZW1vIGxpY2VuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscyA9IGBUaGlzIGlzIGEgZGVtbyBsaWNlbmNlIGFuZCB3aWxsIGV4cGlyZSBpbiAke2RheUxlZnR9IGRheXMuIEJ1eSBvbmxpbmUgYW5kIHZpc2l0ICR7d2Vic2l0ZUxpbmt9IHRvIGFjcXVpcmUgYSBsaWNlbnNlLmA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBgWW91ciBsaWNlbmNlIGlzIHZhbGlkLmA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPSBgJHt3ZWJzaXRlTGlua308YnI+JHtjb250YWN0TGlua31gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJFWFBJUkVEXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbiA9IFwiZmEgZmEtY2FsZW5kYXItdGltZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IFwiTGljZW5jZSBleHBpcmVkXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiWW91ciBsaWNlbnNlIGhhcyBleHBpcmVkLiBQbGVhc2UgY29udGFjdCBvdXIgc3VwcG9ydCB0ZWFtIG9yIHZpc2l0IG91ciB3ZWJzaXRlIHRvIHJlbmV3IHlvdXIgbGljZW5zZSBhbmQgcmVnYWluIGFjY2VzcyB0byBvdXIgc2VydmljZXMuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiRkFJTEVEXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb24gPSBcImZhIGZhLWV4Y2xhbWF0aW9uLWNpcmNsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IFwiWW91ciBsaWNlbnNlIGlzIGN1cnJlbnRseSBpbnZhbGlkLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPSBgUGxlYXNlIGNvbnRhY3QgJHtjb250YWN0TGlua30gb3IgdmlzaXQgb3VyIHdlYnNpdGUgdG8gcmVuZXcgeW91ciBsaWNlbnNlIGFuZCByZWdhaW4gYWNjZXNzIHRvIG91ciBzZXJ2aWNlcy7MgGA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLyoqICovXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuZWxlbWVudC50ZXh0KFwiTGljZW5jZSBcIiArIEpTT04uc3RyaW5naWZ5KGpzb24pKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZENsYXNzKFwibGljZW5jZS13aWRnZXRcIik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRDbGFzcyhcImxpY2VuY2Utd2lkZ2V0LVwiICsgc3RhdHVzKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZCgkKFwiPHNwYW4+XCIpLmFkZENsYXNzKFwibGljZW5jZS13aWRnZXQtaWNvblwiKS5hcHBlbmQoJChcIjxpPlwiKS5hZGRDbGFzcyhpY29uKSkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKCQoXCI8c3Bhbj5cIikuYWRkQ2xhc3MoXCJsaWNlbmNlLXdpZGdldC1tc2dcIikudGV4dChtc2cpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZCgkKFwiPGJyPlwiKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmQoJChcIjxzcGFuPlwiKS5hZGRDbGFzcyhcImxpY2VuY2Utd2lkZ2V0LWRldGFpbHNcIikuYXBwZW5kKGRldGFpbHMpKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXR1cyA9PT0gXCJFWFBJUkVEXCIgfHwgc3RhdHVzID09PSBcIkZBSUxFRFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpYmVCdXR0b24gPSAkKFwiPGJ1dHRvbi8+XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLmF0dHIoXCJpZFwiLCBcInN1YnNjcmliZS1idXR0b25cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVCdXR0b24uYXR0cihcImNsYXNzXCIsIFwiYnRuIGJ0bi1wcmltYXJ5XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLmF0dHIoXCJzdHlsZVwiLCBcIm1hcmdpbi10b3A6IDIwcHg7XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLnRleHQoXCJTdWJzY3JpYmVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKHN1YnNjcmliZUJ1dHRvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2V0IGF0dHJpYnV0ZXMgZm9yIHRoZSBzY3JpcHQgZWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0LnNyYyA9IFwiaHR0cHM6Ly9qcy5zdHJpcGUuY29tL3YzL3ByaWNpbmctdGFibGUuanNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdC5hc3luYyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBBcHBlbmQgdGhlIHNjcmlwdCBlbGVtZW50IHRvIHRoZSBoZWFkIChvciBib2R5KSBvZiB0aGUgZG9jdW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICQoXCJoZWFkXCIpLmFwcGVuZChzY3JpcHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyaXBlUHJpY2luZ1RhYmxlID0gJChcIjxzdHJpcGUtcHJpY2luZy10YWJsZS8+XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2V0IGF0dHJpYnV0ZXMgZm9yIHRoZSBlbGVtZW50XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJpcGVQcmljaW5nVGFibGUuYXR0cihcInByaWNpbmctdGFibGUtaWRcIiwgcHJpY2luZ1RhYmxlSWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBlUHJpY2luZ1RhYmxlLmF0dHIoXCJwdWJsaXNoYWJsZS1rZXlcIiwgcHVibGlzaGFibGVLZXkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBlUHJpY2luZ1RhYmxlLmF0dHIoXCJzdHlsZVwiLCBcImhlaWdodDogMTAwJTttYXgtaGVpZ2h0OiAxMDAlO1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwZVByaWNpbmdUYWJsZS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKHN0cmlwZVByaWNpbmdUYWJsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVCdXR0b24ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBlUHJpY2luZ1RhYmxlLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVCdXR0b24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hdHRyKFwic3R5bGVcIiwgXCJoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgZGVjbGFyZUxpY2VuY2VXaWRnZXQoKTtcbiAgICBmdW5jdGlvbiBpc1ZhbGlkT1BDX1VBX1VSSShzdHIpIHtcbiAgICAgICAgbGV0IHVybDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHVybCA9IG5ldyBVUkwoc3RyKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoXykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1cmwucHJvdG9jb2wgPT09IFwib3BjLnRjcDpcIjtcbiAgICB9XG4gICAgY29uc3QgZGVmYXVsdFN1YnNjcmlwdGlvblBhcmFtZXRlcnMgPSB7XG4gICAgICAgIHB1Ymxpc2hpbmdFbmFibGVkOiB0cnVlLFxuICAgICAgICByZXF1ZXN0ZWRMaWZldGltZUNvdW50OiAxMDAwLFxuICAgICAgICByZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudDogMTAsIC8vIGV2ZXJ5IDEwIHNlY29uZHNcbiAgICAgICAgcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsOiAxMDAwLFxuICAgICAgICBtYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaDogMCxcbiAgICAgICAgcHJpb3JpdHk6IDEwMCxcbiAgICB9O1xuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1FbmRwb2ludDJcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJjb25maWdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcIm9wY3VhIGVuZHBvaW50XCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzL1VBL1NhbXBsZVNlcnZlclwiLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbGlkYXRlOiBpc1ZhbGlkT1BDX1VBX1VSSSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvLyBTZWN1cml0eSBNb2RlXG4gICAgICAgICAgICBzZWN1cml0eU1vZGU6IHsgdmFsdWU6IFwiTm9uZVwiIH0sXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeToge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIk5vbmVcIixcbiAgICAgICAgICAgICAgICB2YWxpZGF0ZTogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZTogeyB2YWx1ZTogXCJBbm9ueW1vdXNcIiB9LFxuICAgICAgICAgICAgLy8gdG8gdXNlIHdoZW4gdXNlcklkZW50aXR5VHlwZSBpcyBVc2VyTmFtZVxuICAgICAgICAgICAgdXNlck5hbWU6IHsgdmFsdWU6IFwiXCIgfSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiB7IHZhbHVlOiBcIlwiLCB0eXBlOiBcInBhc3N3b3JkXCIgfSxcbiAgICAgICAgICAgIC8vIHRvIHVzZSB3aGVuIHVzZXJJZGVudGl0eVR5cGUgaXMgQ2VydGlmaWNhdGVcbiAgICAgICAgICAgIHVzZXJDZXJ0aWZpY2F0ZTogeyB2YWx1ZTogXCJcIiB9LFxuICAgICAgICAgICAgdXNlclByaXZhdGVrZXk6IHsgdmFsdWU6IFwiXCIgfSxcbiAgICAgICAgICAgIC8vIHVzZXJuYW1lXG4gICAgICAgICAgICAvLyBUaGVzZSBhcmUgZml4ZWQgb3IgY2FuIGJlIHJlYWQgdGhyb3VnaCBlbmRQb2ludFxuICAgICAgICAgICAgY2VydGlmaWNhdGU6IHsgdmFsdWU6IFwiblwiIH0sXG4gICAgICAgICAgICBsb2NhbGZpbGU6IHsgdmFsdWU6IFwiXCIgfSxcbiAgICAgICAgICAgIGxvY2Fsa2V5ZmlsZTogeyB2YWx1ZTogXCJcIiB9LFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIHVzZVRyYW5zcG9ydDogeyB2YWx1ZTogZmFsc2UsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgbWF4Q2h1bmtDb3VudDogeyB2YWx1ZTogMSwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBtYXhNZXNzYWdlU2l6ZTogeyB2YWx1ZTogODE5MiwgcmVxdWlyZWQ6IGZhbHNlIH0sIC8vIHNob3VsZCBiZSBhdCBsZWFzdCA4MTkyXG4gICAgICAgICAgICByZWNlaXZlQnVmZmVyU2l6ZTogeyB2YWx1ZTogODE5MiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBzZW5kQnVmZmVyU2l6ZTogeyB2YWx1ZTogODE5MiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBzdWJzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiczFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRGVmYXVsdCBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTdWJzY3JpcHRpb25QYXJhbWV0ZXJzKSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiczJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiU2xvdyBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlzaGluZ0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkTGlmZXRpbWVDb3VudDogMTAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZE1heEtlZXBBbGl2ZUNvdW50OiAyMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRQdWJsaXNoaW5nSW50ZXJ2YWw6IDUwMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2g6IDEwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eTogMTAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJzM1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJGYXN0IFN1YnNjcmlwdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNEZWZhdWx0OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaXNoaW5nRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRMaWZldGltZUNvdW50OiA0MDAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZE1heEtlZXBBbGl2ZUNvdW50OiAxMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsOiAyNTAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2g6IDEwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eTogMjAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGNyZWRlbnRpYWxzOiB7XG4gICAgICAgICAgICB1c2VyOiB7IHR5cGU6IFwidGV4dFwiIH0sXG4gICAgICAgICAgICBwYXNzd29yZDogeyB0eXBlOiBcInBhc3N3b3JkXCIgfSxcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWw6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgdGhpcy5lbmRwb2ludCB8fCBcImludmFsaWQgZW5kcG9pbnRcIjtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0c2F2ZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IF9zZWN1cml0eVBvbGljeSA9ICQoXCIjbm9kZS1jb25maWctaW5wdXQtc2VjdXJpdHlQb2xpY3lcIik7XG4gICAgICAgICAgICBjb25zdCBfc2VjdXJpdHlNb2RlID0gJChcIiNub2RlLWNvbmZpZy1pbnB1dC1zZWN1cml0eU1vZGVcIik7XG4gICAgICAgICAgICBpZiAoX3NlY3VyaXR5UG9saWN5LnZhbCgpID09PSBcIk5vbmVcIikge1xuICAgICAgICAgICAgICAgIF9zZWN1cml0eU1vZGUudGV4dChcIk5vbmVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAoKCgoKCgoKCgoIHJldHJpZXZlIHN1YnNjcmlwdGlvbiBkYXRhICkpKSkpKSkpKSlcbiAgICAgICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbnNJdGVtcyA9ICQoXCIjc3Vic2NyaXB0aW9ucy1jb250YWluZXJcIikuZWRpdGFibGVMaXN0KFwiaXRlbXNcIik7XG4gICAgICAgICAgICBjb25zdCBzID0gW107XG4gICAgICAgICAgICBjb25zdCBuID0gKHgpID0+IHg7XG4gICAgICAgICAgICBzdWJzY3JpcHRpb25zSXRlbXMuZWFjaChmdW5jdGlvbiAoaW5kZXgsIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICBjb25zdCBhID0ge1xuICAgICAgICAgICAgICAgICAgICBpZDogXCJzXCIgKyBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogZS5maW5kKFwiLmlucHV0LW5hbWVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogISFlLmZpbmQoXCIuaW5wdXQtaXNEZWZhdWx0XCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwdWJsaXNoaW5nRW5hYmxlZDogISFlLmZpbmQoXCIuaW5wdXQtcHVibGlzaGluZ0VuYWJsZWRcIikuaXMoXCI6Y2hlY2tlZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZExpZmV0aW1lQ291bnQ6IG4oZS5maW5kKFwiLmlucHV0LXJlcXVlc3RlZExpZmV0aW1lQ291bnRcIikudmFsKCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnQ6IG4oZS5maW5kKFwiLmlucHV0LXJlcXVlc3RlZE1heEtlZXBBbGl2ZUNvdW50XCIpLnZhbCgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbDogbihlLmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsXCIpLnZhbCgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoOiBuKGUuZmluZChcIi5pbnB1dC1tYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaFwiKS52YWwoKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eTogbihlLmZpbmQoXCIuaW5wdXQtcHJpb3JpdHlcIikudmFsKCkpLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgLy8gZm9yY2UgdG8gYmUgdHJ1ZVxuICAgICAgICAgICAgICAgIGEucGFyYW1ldGVycy5wdWJsaXNoaW5nRW5hYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKGEuaXNEZWZhdWx0ICYmIGEuaWQgPT09IFwiczBcIikge1xuICAgICAgICAgICAgICAgICAgICAvLyBub3JtYWxpemUgZGVmYXVsdCBzdWJzY3JpcHRpb24gbmFtZVxuICAgICAgICAgICAgICAgICAgICBhLm5hbWUgPSBcIkRlZmF1bHQgU3Vic2NyaXB0aW9uXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHMucHVzaChhKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zID0gcztcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0cHJlcGFyZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzO1xuICAgICAgICAgICAgY29uc3QgdGFicyA9IFJFRC50YWJzLmNyZWF0ZSh7XG4gICAgICAgICAgICAgICAgaWQ6IFwibm9kZS1jb25maWctZW5kcG9pbnQtdGFic1wiLFxuICAgICAgICAgICAgICAgIG9uY2hhbmdlOiBmdW5jdGlvbiAodGFiKSB7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctZW5kcG9pbnQtdGFicy1jb250ZW50XCIpLmNoaWxkcmVuKCkuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI1wiICsgdGFiLmlkKS5zaG93KCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGFicy5hZGRUYWIoe1xuICAgICAgICAgICAgICAgIGlkOiBcImVuZHBvaW50LXRhYi1jb25uZWN0aW9uXCIsXG4gICAgICAgICAgICAgICAgbGFiZWw6IFwiQ29ubmVjdGlvblwiLFxuICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICB0YWJzLmFkZFRhYih7XG4gICAgICAgICAgICAgICAgaWQ6IFwiZW5kcG9pbnQtdGFiLXN1YnNjcmlwdGlvbnNcIixcbiAgICAgICAgICAgICAgICBsYWJlbDogXCJTdWJzY3JpcHRpb25zXCIsXG4gICAgICAgICAgICB9LCAxKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHRhYnMucmVzaXplKCk7XG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgU2VjdXJpdHkgY29udHJvbHNcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlU2VjdXJpdHlDb250cm9sID0gKHNlY3VyaXR5TW9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHNlY3VyaXR5TW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBudWxsOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB1bmRlZmluZWQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiTm9uZVwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIuc2VjdGlvbi1zZWN1cml0eVBvbGljeVwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiU2lnblwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlNpZ25BbmRFbmNyeXB0XCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcCA9ICQoXCIuc2VjdGlvbi1zZWN1cml0eVBvbGljeVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNwLnZhbCgpID09PSBcIk5vbmVcIiB8fCBzcC52YWwoKSA9PT0gXCJcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3AudmFsKFwiQmFzaWMyNTZTaGEyNTZcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIi5zZWN0aW9uLXNlY3VyaXR5UG9saWN5XCIpLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiaW52YWxpZCBzZWN1cml0eU1vZGUgXCIgKyBzZWN1cml0eU1vZGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB1cGRhdGVTZWN1cml0eUNvbnRyb2wobm9kZS5zZWN1cml0eU1vZGUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IF9zZWN1cml0eU1vZGUgPSAkKFwiI25vZGUtY29uZmlnLWlucHV0LXNlY3VyaXR5TW9kZVwiKTtcbiAgICAgICAgICAgICAgICBfc2VjdXJpdHlNb2RlLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3U2VjdXJpdHlNb2RlID0gX3NlY3VyaXR5TW9kZS52YWwoKTtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU2VjdXJpdHlDb250cm9sKG5ld1NlY3VyaXR5TW9kZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBsaWNlbmNlV2lkZ2V0ID0gJChcIiNsaWNlbmNlV2lkZ2V0XCIpO1xuICAgICAgICAgICAgbGljZW5jZVdpZGdldC5saWNlbmNlV2lkZ2V0KHtcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIHRoZSBVc2VyIElkZW50aXR5IENvbnRyb2xzXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbnN0IGF1dGhSb3cgPSAkKFwiLnNlY3Rpb24tdXNlcklkZW50aXR5VHlwZS1Vc2VyTmFtZVwiKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjZXJ0Um93ID0gJChcIi5zZWN0aW9uLXVzZXJJZGVudGl0eVR5cGUtQ2VydGlmaWNhdGVcIik7XG4gICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlSWRlbnRpdHlDb250cm9scyA9ICh1c2VySWRlbnRpdHlUeXBlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGUgPSB1c2VySWRlbnRpdHlUeXBlIHx8IFwiQW5vbnltb3VzXCI7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodXNlcklkZW50aXR5VHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkFub255bW91c1wiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlck5hbWVcIikudmFsKFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctaW5wdXQtcGFzc3dvcmRcIikudmFsKFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhSb3cuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRSb3cuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlVzZXJOYW1lXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aFJvdy5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydFJvdy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiQ2VydGlmaWNhdGVcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJOYW1lXCIpLnZhbChcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtY29uZmlnLWlucHV0LXBhc3N3b3JkXCIpLnZhbChcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0Um93LnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoUm93LmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJpbnZhbGlkIHVzZXJJZGVudGl0eVR5cGUgXCIgKyB1c2VySWRlbnRpdHlUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdXBkYXRlSWRlbnRpdHlDb250cm9scyhub2RlLnVzZXJJZGVudGl0eVR5cGUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IF91c2VySWRlbnRpdHlUeXBlID0gJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VySWRlbnRpdHlUeXBlXCIpO1xuICAgICAgICAgICAgICAgIF91c2VySWRlbnRpdHlUeXBlLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3SWRlbnRpdHlUeXBlID0gX3VzZXJJZGVudGl0eVR5cGUudmFsKCk7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZUlkZW50aXR5Q29udHJvbHMobmV3SWRlbnRpdHlUeXBlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgYWR2YW5jZWQgY29udHJvbHNcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLUFkdmFuY2VkXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAkKFwiI3RvZ2dsZUFkdmFuY2VkU2VjdGlvblwiKS5vbihcImNoYW5nZVwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLnByb3AoXCJjaGVja2VkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgY2hlY2tib3ggaXMgY2hlY2tlZCwgc2hvdyB0aGUgZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tQWR2YW5jZWRcIikuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCBoaWRlIGl0XG4gICAgICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tQWR2YW5jZWRcIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gY2hlY2tDZXJ0aWZpY2F0ZVxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAkKFwiI2NoZWNrQ2VydGlmaWNhdGVcIikub24oXCJjbGlja1wiLCAoKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaChcIi9vcGN1YS1lbmRwb2ludDIvY2xpZW50X2NlcnRpZmljYXRlLmpzb25cIik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGluZm8gPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdCA9IEpTT04uc3RyaW5naWZ5KGluZm8sIG51bGwsIFwiIFwiKTtcbiAgICAgICAgICAgICAgICAgICAgYWxlcnQodCk7XG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSB0aGUgVGVzdCBidXR0b25cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbWFuYWdlQVBJQ2FsbChcImNvbm5lY3Rpb25cIiwgJChcIiN0ZXN0LWNvbm5lY3Rpb25cIiksICgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIHVybDogXCIvb3BjdWEtZW5kcG9pbnQyL3Rlc3QtY29ubmVjdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICBib2R5OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogbm9kZS5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogJChcIiNub2RlLWNvbmZpZy1pbnB1dC1lbmRwb2ludFwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWN1cml0eU1vZGU6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtc2VjdXJpdHlNb2RlXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5OiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXNlY3VyaXR5UG9saWN5XCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGU6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlcklkZW50aXR5VHlwZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyTmFtZTogJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VyTmFtZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNzd29yZDogJChcIiNub2RlLWNvbmZpZy1pbnB1dC1wYXNzd29yZFwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyQ2VydGlmaWNhdGU6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlckNlcnRpZmljYXRlXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJQcml2YXRla2V5OiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJQcml2YXRla2V5XCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vLyBub3QgdGVzdGVkIHlldCAuLi46XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydGlmaWNhdGU6ICQoXCIjbm9kZS1pbnB1dC1jZXJ0aWZpY2F0ZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGZpbGU6ICQoXCIjbm9kZS1pbnB1dC1sb2NhbGZpbGVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxrZXlmaWxlOiAkKFwiI25vZGUtaW5wdXQtbG9jYWxrZXlmaWxlXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZVRyYW5zcG9ydDogJChcIiNub2RlLWlucHV0LXVzZVRyYW5zcG9ydFwiKS5wcm9wKFwiY2hlY2tlZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhDaHVua0NvdW50OiAkKFwiI25vZGUtaW5wdXQtbWF4Q2h1bmtDb3VudFwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhNZXNzYWdlU2l6ZTogJChcIiNub2RlLWlucHV0LW1heE1lc3NhZ2VTaXplXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY2VpdmVCdWZmZXJTaXplOiAkKFwiI25vZGUtaW5wdXQtcmVjZWl2ZUJ1ZmZlclNpemVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VuZEJ1ZmZlclNpemU6ICQoXCIjbm9kZS1pbnB1dC1zZW5kQnVmZmVyU2l6ZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSksICgpID0+IHsgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gIEluc3RhbGwgc3Vic2NyaXB0aW9ucyBMaXN0IG1hbmFnZW1lbnRcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzaXplVG9waWNzID0gKHRvcGljLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB2YXIgbmV3V2lkdGggPSB0b3BpYy53aWR0aCgpIHx8IDEwMDtcbiAgICAgICAgICAgICAgICAgICAgdG9waWMuZmluZChcImxhYmVsXCIpLnR5cGVkSW5wdXQoXCJ3aWR0aFwiLCBuZXdXaWR0aCAtIDE1KTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbkxpc3QgPSAkKFwiI3N1YnNjcmlwdGlvbnMtY29udGFpbmVyXCIpXG4gICAgICAgICAgICAgICAgICAgIC5jc3MoeyBcIm1pbi1oZWlnaHRcIjogXCIxNTBweFwiLCBcIm1pbi13aWR0aFwiOiBcIjI2MHB4XCIgfSlcbiAgICAgICAgICAgICAgICAgICAgLmVkaXRhYmxlTGlzdCh7XG4gICAgICAgICAgICAgICAgICAgIGFkZEl0ZW06IChjb250YWluZXIsIGluZGV4LCBkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBfZGF0YSA9IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gJChcIi50ZW1wbGF0ZVwiKS5jbG9uZSgpLmFwcGVuZFRvKGNvbnRhaW5lcik7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHIoXCJpZFwiKS5yZW1vdmVDbGFzcyhcImhpZGVcIikucmVtb3ZlQ2xhc3MoXCJ0ZW1wbGF0ZVwiKS5hdHRyKFwiZGF0YS1pXCIsIGluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5pbnB1dC1uYW1lXCIpLnZhbChfZGF0YS5uYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5pbnB1dC1yZXF1ZXN0ZWRQdWJsaXNoaW5nSW50ZXJ2YWxcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMucmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5pbnB1dC1yZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudFwiKS52YWwoX2RhdGEucGFyYW1ldGVycy5yZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkTGlmZXRpbWVDb3VudFwiKS52YWwoX2RhdGEucGFyYW1ldGVycy5yZXF1ZXN0ZWRMaWZldGltZUNvdW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5pbnB1dC1tYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaFwiKS52YWwoX2RhdGEucGFyYW1ldGVycy5tYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaCB8fCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5pbnB1dC1wcmlvcml0eVwiKS52YWwoX2RhdGEucGFyYW1ldGVycy5wcmlvcml0eSB8fCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5zdWJzY3JpcHRpb24taWRcIikudGV4dChcIlwiICsgaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9kYXRhLmlzRGVmYXVsdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5pbnB1dC1uYW1lXCIpLnByb3AoXCJyZWFkb25seVwiLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5pbnB1dC1pc0RlZmF1bHRcIikucHJvcChcImNoZWNrZWRcIiwgX2RhdGEuaXNEZWZhdWx0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IGRlZmF1bHQgc3Vic2NyaXB0aW9uIGNhbm5vdCBiZSBhY2NpZGVudGFsbHkgcmVtb3ZlZFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9kYXRhLmlzRGVmYXVsdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5maW5kKFwiLnJlZC11aS1lZGl0YWJsZUxpc3QtaXRlbS1yZW1vdmVcIikuYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gZWxlbWVudC5maW5kKFwiLmlucHV0LWlzRGVmYXVsdFwiKS5wcm9wKFwiZGlzYWJsZWRcIiwgdHJ1ZSksIDEwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgLy8gc29ydGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHJlbW92YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgcmVzaXplSXRlbTogcmVzaXplVG9waWNzLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IEFkZFN1YnNjcmlwdGlvbiA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9ucyA9IG5vZGUuc3Vic2NyaXB0aW9ucyB8fCBbXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN1YnNjcmlwdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBhZGQgbWlzc2luZyBkZWZhdWx0IHN1YnNjcmlwdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJzMVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRGVmYXVsdCBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyczogT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdFN1YnNjcmlwdGlvblBhcmFtZXRlcnMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uTGlzdC5lZGl0YWJsZUxpc3QoXCJlbXB0eVwiKTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gb2Ygc3Vic2NyaXB0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3Vic2NyaXB0aW9uLmlzRGVmYXVsdCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uTGlzdC5lZGl0YWJsZUxpc3QoXCJhZGRJdGVtXCIsIHN1YnNjcmlwdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIEFkZFN1YnNjcmlwdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
9
9
  </script>
10
10
  <script type="text/x-red" data-template-name="OpcUa-Endpoint2">
11
11
  <div id="licenceWidget"></div>