@opcua/for-node-red 3.3.0 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/all.js +1 -1
- package/package.json +1 -1
- package/source/OpcUa-Client2-Browse/OpcUa-Client2-Browse.html +2 -2
- package/source/OpcUa-Client2-Call/OpcUa-Client2-Call.html +2 -2
- package/source/OpcUa-Client2-Explore/OpcUa-Client2-Explore.html +2 -2
- package/source/OpcUa-Client2-ExtensionObject/OpcUa-Client2-ExtensionObject.html +2 -2
- package/source/OpcUa-Client2-HistoryRead/OpcUa-Client2-HistoryRead.html +2 -2
- package/source/OpcUa-Client2-Monitor/OpcUa-Client2-Monitor.html +2 -2
- package/source/OpcUa-Client2-MonitorEvent/OpcUa-Client2-MonitorEvent.html +2 -2
- package/source/OpcUa-Client2-Read/OpcUa-Client2-Read.html +2 -2
- package/source/OpcUa-Client2-Write/OpcUa-Client2-Write.html +2 -2
- package/source/OpcUa-Endpoint2/OpcUa-Endpoint2.html +2 -2
@@ -4,8 +4,8 @@
|
|
4
4
|
</style>
|
5
5
|
|
6
6
|
<script type="text/javascript">
|
7
|
-
function _0x30c3(){const _0x2ebb03=['log','change','invalid\x20endpoint','186281ADpytY','#node-config-input-userPrivatekey','Slow\x20Subscription','.input-isDefault','#section-Advanced','apply','createElement','<div\x20class=\x22alias-entry\x22>','<span>','auto','<i>','prop','licence-widget-msg','fa\x20fa-exclamation-circle','clone','push','-messages','\x20for\x20more\x20information.','licenceType','script','alias','licence-widget-','resize','endpoint-tab-subscriptions','Connection','#node-config-input-userCertificate','addItem','securityMode','Trial\x20licence','addTab','<input/>','70%','#node-config-input-pkiName','-pending','<br>','prctbl_1OJt49BCNccbzsVzkaANOgFL','#test-connection','#node-input-maxMessageSize','protocol','None','status','_blank','SuppressedError','namespaceUri','statusText','node-config-endpoint-tabs','requestedPublishingInterval','label','element','toString','items','#node-input-maxChunkCount','node-input-alias-index','namespaceAliases','application/json','extra','toISOString','pricing-table-id','suppressed','#node-config-input-securityMode','.node-input-alias-alias','.input-requestedLifetimeCount','FAILED','.section-userIdentityType-UserName','then','#node-config-input-userName','#subscription-template','Fast\x20Subscription','attr','endpoint','POST','message','25%','error','pk_live_51HsE1sBCNccbzsVzt7zaq2uv20pkryWllAzvZgZd5AhwFI9A3qBIeOJvJwQF08lDoLpFqLjwmyA79wnPnYLsvKjt009f00VpCW','.input-maxNotificationsPerPublish','result','156VDFKcC','length','#node-config-endpoint-tabs-content','#section-TransportSettings','.input-requestedPublishingInterval','7fUKyjv','#node-config-input-userIdentityType','click','.section-securityPolicy','typedInput','val','licenceInfo','<a\x20href=\x22mailto:support@sterfive.com\x22\x20subject=\x22@opcua/for-node-red\x20support\x20request\x22>mailto:support@sterfive.com</a>','stringify','/opcua-for-node-red/config','81755Jtjsvm','#node-config-input-securityPolicy','nodes','Anonymous','isDefault','AUTHORIZED','html','Please\x20contact\x20','width','-success','</p>','licence-widget-icon','This\x20is\x20a\x20freeware\x20licence,\x20and\x20have\x20some\x20limitations.\x0a','licence-widget','opc.tcp://opcuademo.sterfive.com:26543/UA/SampleServer','requestedMaxKeepAliveCount','split','#editable-list-aliases-container','connection','Namespace\x20Aliases','each','append','invalid\x20securityMode\x20','endpoint-tab-connection','readonly','260px','Your\x20license\x20is\x20currently\x20invalid.','disabled','show','publishable-key',':checked','type','\x20to\x20acquire\x20a\x20license.','node-input-alias-namespace-uri','value','fetching\x20failed\x20with\x20error','onPremiseServerHost','#node-config-input-password','addClass','/licenceInfo','internal\x20error\x20','checked','password','Subscriptions','#node-input-receiveBufferSize','.input-publishingEnabled','parameters','UserName','editableList','#toggleAdvancedSection','\x20or\x20visit\x20our\x20website\x20to\x20renew\x20your\x20license\x20and\x20regain\x20access\x20to\x20our\x20services.̀','<p>','http://opcfoundation.org/UA/','#node-input-sendBufferSize','height:\x20100%\x20!important;','Default\x20Subscription','text','Your\x20licence\x20is\x20valid.','subscriptions','#node-config-input-endpoint','isArray','appendTo','css','2251038LJLGUR','tabs','\x20-\x20','invalid\x20userIdentityType\x20','.input-priority','widget','337544cjfsVf','OpcUa-Endpoint2','priority','margin-top:\x2020px;','node-input-alias-alias','http://opcfoundation.org/DI/','Basic256Sha256','daysLeft','json','licence-widget-details','assign','endpoint-tab-namespace-aliases','#node-config-input-name','empty','hide','opcua\x20endpoint','children','done','https://js.stripe.com/v3/pricing-table.js','#subscriptions-container','throw','EXPIRED','.red-ui-editableList-item-remove','929990XXBeSz','data-i','#goto-config','/opcua-for-node-red','#extract-aliases','next','removeClass','catch','find','-failure','baseUrl','10097901vSKIxo','function','config','.section-userIdentityType-Certificate','name','#node-config-input-useTransport','2149698bunPcl','requestedLifetimeCount','Certificate','#checkCertificate','/opcua-for-node-red/test-connection','.input-name','style','template'];_0x30c3=function(){return _0x2ebb03;};return _0x30c3();}function _0x4f1c(_0x29c7ab,_0x39e0cc){const _0x30c3fb=_0x30c3();return _0x4f1c=function(_0x4f1c43,_0x293e5a){_0x4f1c43=_0x4f1c43-0xba;let _0xa1e66d=_0x30c3fb[_0x4f1c43];return _0xa1e66d;},_0x4f1c(_0x29c7ab,_0x39e0cc);}(function(_0x5b9652,_0x284a70){const _0x4c9e83=_0x4f1c,_0x1c691f=_0x5b9652();while(!![]){try{const _0x4be135=-parseInt(_0x4c9e83(0x186))/0x1+parseInt(_0x4c9e83(0x16a))/0x2+-parseInt(_0x4c9e83(0x14d))/0x3+parseInt(_0x4c9e83(0xff))/0x4*(-parseInt(_0x4c9e83(0x10e))/0x5)+parseInt(_0x4c9e83(0x17b))/0x6+-parseInt(_0x4c9e83(0x104))/0x7*(-parseInt(_0x4c9e83(0x153))/0x8)+parseInt(_0x4c9e83(0x175))/0x9;if(_0x4be135===_0x284a70)break;else _0x1c691f['push'](_0x1c691f['shift']());}catch(_0x4e6f21){_0x1c691f['push'](_0x1c691f['shift']());}}}(_0x30c3,0x64dd8),(function(){'use strict';const _0x29ee16=_0x4f1c;function _0x1a34f3(_0x42c6c2,_0x49b43f,_0x53b617,_0x1b2579){function _0x189925(_0x3904f2){return _0x3904f2 instanceof _0x53b617?_0x3904f2:new _0x53b617(function(_0x4ba93d){_0x4ba93d(_0x3904f2);});}return new(_0x53b617||(_0x53b617=Promise))(function(_0x293461,_0x2dde8c){const _0x28ced8=_0x4f1c;function _0x2dc6bd(_0x5c8b6f){const _0x4b2da3=_0x4f1c;try{_0x4b0ff8(_0x1b2579[_0x4b2da3(0x16f)](_0x5c8b6f));}catch(_0x343dca){_0x2dde8c(_0x343dca);}}function _0x15d377(_0x5c7f94){const _0x4a498a=_0x4f1c;try{_0x4b0ff8(_0x1b2579[_0x4a498a(0x167)](_0x5c7f94));}catch(_0x10b9da){_0x2dde8c(_0x10b9da);}}function _0x4b0ff8(_0x1e9887){const _0x64a7fe=_0x4f1c;_0x1e9887[_0x64a7fe(0x164)]?_0x293461(_0x1e9887[_0x64a7fe(0x130)]):_0x189925(_0x1e9887[_0x64a7fe(0x130)])['then'](_0x2dc6bd,_0x15d377);}_0x4b0ff8((_0x1b2579=_0x1b2579[_0x28ced8(0x18b)](_0x42c6c2,_0x49b43f||[]))[_0x28ced8(0x16f)]());});}typeof SuppressedError===_0x29ee16(0x176)?SuppressedError:function(_0x55c1f5,_0x4e73bc,_0x55235c){const _0x105d58=_0x29ee16;var _0x33e69d=new Error(_0x55235c);return _0x33e69d[_0x105d58(0x179)]=_0x105d58(0xdc),_0x33e69d[_0x105d58(0xfb)]=_0x55c1f5,_0x33e69d[_0x105d58(0xec)]=_0x4e73bc,_0x33e69d;};function _0x56e5ff(_0x5c7afe,_0x22fac8,_0x4574e5,_0x4f24a){const _0x2389fb=_0x29ee16,_0x1ed5f9=$('#'+_0x5c7afe+_0x2389fb(0x117)),_0x316fa8=$('#'+_0x5c7afe+_0x2389fb(0x173)),_0x490e70=$('#'+_0x5c7afe+_0x2389fb(0xd3)),_0x402d94=$('#'+_0x5c7afe+_0x2389fb(0xc2));let _0x4a41d1=![];_0x1ed5f9[_0x2389fb(0x161)](),_0x316fa8[_0x2389fb(0x161)](),_0x490e70[_0x2389fb(0x161)](),_0x22fac8['on'](_0x2389fb(0x106),()=>{const _0x363249=_0x2389fb;if(_0x4a41d1)return;_0x4a41d1=!![],_0x490e70[_0x363249(0x170)]('hide'),_0x490e70[_0x363249(0x114)]('Testing\x20Connection\x20...'),_0x1ed5f9['addClass'](_0x363249(0x161)),_0x316fa8[_0x363249(0x134)](_0x363249(0x161)),_0x402d94[_0x363249(0x114)]('');const {body:_0x4c449d,url:_0x412e75}=_0x4574e5();fetch(_0x412e75,{'method':_0x363249(0xf8),'headers':{'Content-Type':_0x363249(0xe8)},'body':JSON[_0x363249(0x10c)](_0x4c449d)})[_0x363249(0xf2)](_0x4a0216=>_0x4a0216[_0x363249(0x15b)]())[_0x363249(0xf2)](_0x3cf542=>{const _0x39a548=_0x363249;_0x4a41d1=![],_0x490e70['hide'](),console[_0x39a548(0x183)](JSON[_0x39a548(0x10c)](_0x3cf542,null,'\x20'));if(_0x3cf542[_0x39a548(0xfe)]==='ok')_0x1ed5f9['removeClass']('hide'),_0x316fa8[_0x39a548(0x134)]('hide'),_0x402d94['html'](_0x3cf542[_0x39a548(0xf9)]['replace']('\x0a',_0x39a548(0xd4)));else{const _0x3dcb73=_0x1ded3f=>!_0x1ded3f?'':_0x1ded3f[_0x39a548(0x11e)]('\x0a')['map'](_0x577f8d=>_0x39a548(0x141)+_0x577f8d+_0x39a548(0x118))['join']('\x0a'),_0x24e688=_0x4d0d3e=>Array[_0x39a548(0x14a)](_0x4d0d3e)?_0x4d0d3e['map'](_0x3dcb73)['join']('\x0a'):_0x3dcb73(_0x4d0d3e);_0x1ed5f9['addClass']('hide'),_0x316fa8[_0x39a548(0x170)](_0x39a548(0x161)),_0x402d94[_0x39a548(0x114)](_0x24e688(_0x3cf542[_0x39a548(0xf9)])+_0x24e688(_0x3cf542[_0x39a548(0xe9)])),_0x4f24a(new Error(_0x3cf542[_0x39a548(0xfe)]),_0x3cf542);}})[_0x363249(0x171)](_0x4d3959=>{const _0x9ac3f8=_0x363249;_0x4a41d1=![],_0x490e70[_0x9ac3f8(0x134)](_0x9ac3f8(0x161)),_0x1ed5f9['addClass'](_0x9ac3f8(0x161)),_0x316fa8['removeClass']('hide'),_0x402d94[_0x9ac3f8(0x114)](_0x9ac3f8(0x136)+_0x4d3959[_0x9ac3f8(0xf9)]),console['log']('err',_0x4d3959);});});}const _0x5258b5=_0x29ee16(0xd5),_0x6a4083=_0x29ee16(0xfc);function _0x43efaa(){return _0x1a34f3(this,arguments,void 0x0,function*(_0x7bbad2=''){const _0x77cf9=_0x4f1c,_0xffb340=_0x7bbad2+_0x77cf9(0x16d),_0x550e1e=_0xffb340+_0x77cf9(0x135),_0x2ef270=yield fetch(_0x550e1e,{'method':'POST','headers':{'Content-Type':_0x77cf9(0xe8)}}),_0x50fe31=new Date()[_0x77cf9(0xea)]();if(_0x2ef270['status']!==0xc8)return console[_0x77cf9(0x183)](_0x77cf9(0x131),_0x2ef270[_0x77cf9(0xda)],_0x2ef270[_0x77cf9(0xde)]),{'status':_0x77cf9(0xf0),'type':'FREEWARE','licenceInfo':{'expiryDate':_0x50fe31}};const _0x328581=yield _0x2ef270[_0x77cf9(0x15b)]();return _0x328581;});}const _0x758758=()=>{const _0x22a9bd=_0x29ee16;$[_0x22a9bd(0x152)]('sterfive.licenceWidget',{'options':{'baseUrl':''},'_create'(){const _0x3e5ff6=_0x22a9bd,_0xdde3f2=this,_0x120f1c=_0x3e5ff6(0x10b),_0x3c7e7e='<a\x20href=\x22https://www.sterfive.com/opcua/for-node-red\x22\x20target=”_blank”>Sterfive\x27s\x20website\x20</a>';_0x43efaa(_0xdde3f2[_0x3e5ff6(0x174)])[_0x3e5ff6(0xf2)](_0x596f74=>{const _0x492ffb=_0x3e5ff6;let _0x4310d2='',_0x58d768='',_0x45a0f5='';const _0x41ed0f=_0x596f74[_0x492ffb(0xda)],_0x84c7f1=_0x596f74[_0x492ffb(0x15a)];switch(_0x41ed0f){case _0x492ffb(0x113):_0x4310d2='fa\x20fa-check-circle';switch(_0x596f74['type']){case'TRIAL':{_0x58d768=_0x492ffb(0xce),_0x45a0f5='The\x20Trial\x20will\x20expire\x20in\x20'+_0x84c7f1+'\x20days.\x0aBuy\x20online\x20and\x20visit\x20'+_0x3c7e7e+_0x492ffb(0x12e);break;}case'PROFESSIONAL':_0x58d768=_0x492ffb(0x147);_0x84c7f1<0x5a&&_0x84c7f1>=0x0&&(_0x58d768+='\x20It\x20will\x20expire\x20in\x20'+_0x84c7f1+'\x20days.');_0x45a0f5=_0x596f74[_0x492ffb(0x10a)][_0x492ffb(0xc4)]+_0x492ffb(0x14f)+(_0x596f74['licenceInfo'][_0x492ffb(0x132)]||'');break;case'FREEWARE':_0x58d768='Freeware\x20licence',_0x45a0f5=_0x492ffb(0x11a)+_0x3c7e7e+_0x492ffb(0xc3);break;}break;case _0x492ffb(0x168):_0x4310d2='fa\x20fa-calendar-time',_0x58d768='Licence\x20has\x20expired',_0x45a0f5='Your\x20license\x20has\x20expired.\x20Please\x20contact\x20our\x20support\x20team\x20or\x20visit\x20our\x20website\x20to\x20renew\x20your\x20license\x20and\x20regain\x20access\x20to\x20our\x20services.';break;case _0x492ffb(0xf0):default:_0x4310d2=_0x492ffb(0xbf),_0x58d768=_0x492ffb(0x128),_0x45a0f5=_0x492ffb(0x115)+_0x120f1c+_0x492ffb(0x140);break;}this[_0x492ffb(0xe2)][_0x492ffb(0x134)](_0x492ffb(0x11b)),this[_0x492ffb(0xe2)][_0x492ffb(0x134)](_0x492ffb(0xc7)+_0x41ed0f),this[_0x492ffb(0xe2)][_0x492ffb(0x123)]($(_0x492ffb(0xba))[_0x492ffb(0x134)](_0x492ffb(0x119))[_0x492ffb(0x123)]($(_0x492ffb(0xbc))[_0x492ffb(0x134)](_0x4310d2))),this[_0x492ffb(0xe2)][_0x492ffb(0x123)]($('<span>')[_0x492ffb(0x134)](_0x492ffb(0xbe))[_0x492ffb(0x146)](_0x58d768)),this['element'][_0x492ffb(0x123)]($(_0x492ffb(0xd4))),this['element'][_0x492ffb(0x123)]($(_0x492ffb(0xba))[_0x492ffb(0x134)](_0x492ffb(0x15c))[_0x492ffb(0x123)](_0x45a0f5));if(_0x41ed0f===_0x492ffb(0x168)||_0x41ed0f===_0x492ffb(0xf0)||_0x596f74[_0x492ffb(0x12d)]==='FREEWARE'||_0x596f74['type']==='TRIAL'){const _0x33d8bb=$('<button/>');_0x33d8bb[_0x492ffb(0xf6)]('id','subscribe-button'),_0x33d8bb['attr']('class','btn\x20btn-primary'),_0x33d8bb[_0x492ffb(0xf6)]('style',_0x492ffb(0x156)),_0x33d8bb[_0x492ffb(0x146)]('Subscribe'),this[_0x492ffb(0xe2)][_0x492ffb(0x123)](_0x33d8bb);const _0xa92186=document[_0x492ffb(0x18c)](_0x492ffb(0xc5));_0xa92186['src']=_0x492ffb(0x165),_0xa92186['async']=!![],$('head')[_0x492ffb(0x123)](_0xa92186);const _0x524556=$('<stripe-pricing-table/>');_0x524556[_0x492ffb(0xf6)](_0x492ffb(0xeb),_0x5258b5),_0x524556['attr'](_0x492ffb(0x12b),_0x6a4083),_0x524556[_0x492ffb(0xf6)](_0x492ffb(0x181),'height:\x20100%;max-height:\x20100%;'),_0x524556[_0x492ffb(0x161)](),this['element'][_0x492ffb(0x123)](_0x524556),_0x33d8bb['on']('click',()=>{const _0x3d49b0=_0x492ffb;_0x524556['show'](),_0x33d8bb[_0x3d49b0(0x161)](),this['element'][_0x3d49b0(0xf6)](_0x3d49b0(0x181),_0x3d49b0(0x144));});}})[_0x3e5ff6(0x171)](_0x2036f2=>{console['log'](_0x2036f2);});}});};_0x758758();function _0x419f77(_0x2c696f){const _0x374fed=_0x29ee16;let _0x234e1f;try{_0x234e1f=new URL(_0x2c696f);}catch(_0x1fd24a){return![];}return _0x234e1f[_0x374fed(0xd8)]==='opc.tcp:';}const _0x353b3a={'publishingEnabled':!![],'requestedLifetimeCount':0x3e8,'requestedMaxKeepAliveCount':0xa,'requestedPublishingInterval':0x3e8,'maxNotificationsPerPublish':0x0,'priority':0x64};RED[_0x29ee16(0x110)]['registerType'](_0x29ee16(0x154),{'category':_0x29ee16(0x177),'paletteLabel':_0x29ee16(0x162),'defaults':{'name':{'value':''},'endpoint':{'value':_0x29ee16(0x11c),'required':!![],'validate':_0x419f77},'securityMode':{'value':_0x29ee16(0xd9)},'securityPolicy':{'value':_0x29ee16(0xd9),'validate':_0x50f2cf=>{if(!_0x50f2cf)return![];return!![];}},'userIdentityType':{'value':_0x29ee16(0x111)},'pkiName':{'value':'','validate':_0x58cc6c=>!_0x58cc6c||_0x58cc6c['match'](/[0-9a-zA-Z]*/)?!![]:![]},'useTransport':{'value':![],'required':![]},'maxChunkCount':{'value':0x1,'required':![]},'maxMessageSize':{'value':0x2000,'required':![]},'receiveBufferSize':{'value':0x2000,'required':![]},'sendBufferSize':{'value':0x2000,'required':![]},'subscriptions':{'value':[{'id':'s1','name':'Default\x20Subscription','isDefault':!![],'parameters':Object['assign']({},_0x353b3a)},{'id':'s2','name':_0x29ee16(0x188),'isDefault':![],'parameters':{'publishingEnabled':!![],'requestedLifetimeCount':0x64,'requestedMaxKeepAliveCount':0x3,'requestedPublishingInterval':0x1388,'maxNotificationsPerPublish':0x64,'priority':0xa}},{'id':'s3','name':_0x29ee16(0xf5),'isDefault':![],'parameters':{'publishingEnabled':!![],'requestedLifetimeCount':0xfa0,'requestedMaxKeepAliveCount':0x32,'requestedPublishingInterval':0xfa,'maxNotificationsPerPublish':0x64,'priority':0xc8}}],'required':![]},'namespaceAliases':{'value':[{'alias':'ua','namespaceUri':_0x29ee16(0x142),'isWellKnown':!![],'isDefault':!![]},{'alias':'di','namespaceUri':_0x29ee16(0x158),'isWellKnown':!![],'isDefault':!![]}],'required':![]}},'credentials':{'userName':{'type':_0x29ee16(0x146)},'password':{'type':_0x29ee16(0x138)},'userCertificate':{'type':_0x29ee16(0x146)},'userPrivatekey':{'type':_0x29ee16(0x138)}},'label':function(){const _0x375aeb=_0x29ee16;return this[_0x375aeb(0x179)]||this[_0x375aeb(0xf7)]||_0x375aeb(0x185);},'oneditsave'(){const _0x544bb0=_0x29ee16,_0x211a06=$(_0x544bb0(0x10f)),_0xef655=$(_0x544bb0(0xed));_0x211a06[_0x544bb0(0x109)]()===_0x544bb0(0xd9)&&_0xef655[_0x544bb0(0x146)]('None');{const _0x4c9c88=$(_0x544bb0(0x166))[_0x544bb0(0x13e)](_0x544bb0(0xe4)),_0x262606=[],_0x129713=_0x409ac7=>_0x409ac7;_0x4c9c88[_0x544bb0(0x122)](function(_0x2de7be,_0x11a605){const _0x51e5dd=_0x544bb0,_0x24960a=$(this),_0x594478={'id':'s'+_0x2de7be,'name':_0x24960a[_0x51e5dd(0x172)](_0x51e5dd(0x180))[_0x51e5dd(0x109)](),'isDefault':!!_0x24960a[_0x51e5dd(0x172)](_0x51e5dd(0x189))[_0x51e5dd(0x109)](),'parameters':{'publishingEnabled':!!_0x24960a[_0x51e5dd(0x172)](_0x51e5dd(0x13b))['is'](_0x51e5dd(0x12c)),'requestedLifetimeCount':_0x129713(_0x24960a[_0x51e5dd(0x172)]('.input-requestedLifetimeCount')[_0x51e5dd(0x109)]()),'requestedMaxKeepAliveCount':_0x129713(_0x24960a[_0x51e5dd(0x172)]('.input-requestedMaxKeepAliveCount')[_0x51e5dd(0x109)]()),'requestedPublishingInterval':_0x129713(_0x24960a['find'](_0x51e5dd(0x103))[_0x51e5dd(0x109)]()),'maxNotificationsPerPublish':_0x129713(_0x24960a['find']('.input-maxNotificationsPerPublish')[_0x51e5dd(0x109)]()),'priority':_0x129713(_0x24960a['find'](_0x51e5dd(0x151))[_0x51e5dd(0x109)]())}};_0x594478[_0x51e5dd(0x13c)]['publishingEnabled']=!![],_0x594478['isDefault']&&_0x594478['id']==='s0'&&(_0x594478[_0x51e5dd(0x179)]=_0x51e5dd(0x145)),_0x262606[_0x51e5dd(0xc1)](_0x594478);}),this[_0x544bb0(0x148)]=_0x262606;}{const _0x1b3d4b=$('#editable-list-aliases-container')[_0x544bb0(0x13e)](_0x544bb0(0xe4)),_0x3ffa8e=[];_0x1b3d4b[_0x544bb0(0x122)](function(_0x5af0c3,_0xfe852){const _0x4c2aa0=_0x544bb0,_0x40de3f=$(this),_0x5cfebd={'namespaceUri':_0x40de3f[_0x4c2aa0(0x172)]('.node-input-alias-namespace-uri')['val'](),'alias':_0x40de3f[_0x4c2aa0(0x172)](_0x4c2aa0(0xee))[_0x4c2aa0(0x109)]()};_0x3ffa8e['push'](_0x5cfebd);}),this[_0x544bb0(0xe7)]=_0x3ffa8e;}},'oneditprepare'(){const _0x42160f=_0x29ee16,_0x22e61b=this,_0xb23647=RED[_0x42160f(0x14e)]['create']({'id':_0x42160f(0xdf),'onchange':function(_0x3cf91f){const _0x17ecf6=_0x42160f;$(_0x17ecf6(0x101))[_0x17ecf6(0x163)]()[_0x17ecf6(0x161)](),$('#'+_0x3cf91f['id'])[_0x17ecf6(0x12a)]();}});_0xb23647['addTab']({'id':_0x42160f(0x125),'label':_0x42160f(0xca)},0x0),_0xb23647['addTab']({'id':_0x42160f(0xc9),'label':_0x42160f(0x139)},0x1),_0xb23647[_0x42160f(0xcf)]({'id':_0x42160f(0x15e),'label':_0x42160f(0x121)},0x2),setTimeout(function(){const _0x234dff=_0x42160f;_0xb23647[_0x234dff(0xc8)]();},0x0);{const _0x23938a=_0x548ef7=>{const _0x43609d=_0x42160f;switch(_0x548ef7){case null:case undefined:case'':case'None':$(_0x43609d(0x107))['hide']();break;case'Sign':case'SignAndEncrypt':{const _0x29cb3a=$('.section-securityPolicy');(_0x29cb3a['val']()===_0x43609d(0xd9)||_0x29cb3a[_0x43609d(0x109)]()==='')&&_0x29cb3a[_0x43609d(0x109)](_0x43609d(0x159)),$('.section-securityPolicy')[_0x43609d(0x12a)]();}break;default:console['log'](_0x43609d(0x124)+_0x548ef7);}};_0x23938a(_0x22e61b[_0x42160f(0xcd)]);const _0x1769cc=$(_0x42160f(0xed));_0x1769cc['on'](_0x42160f(0x184),()=>{const _0x19b897=_0x42160f,_0x761f13=_0x1769cc[_0x19b897(0x109)]();_0x23938a(_0x761f13);});}const _0x480b4a=$('#licenceWidget');_0x480b4a['licenceWidget']({'baseUrl':''});{const _0x22a0d5=$(_0x42160f(0xf1)),_0x1aaf6e=$(_0x42160f(0x178)),_0x10a1af=_0x5057e4=>{const _0x2646f5=_0x42160f;_0x5057e4=_0x5057e4||'Anonymous';switch(_0x5057e4){case _0x2646f5(0x111):$('#node-config-input-userName')['val'](''),$(_0x2646f5(0x133))[_0x2646f5(0x109)](''),_0x22a0d5[_0x2646f5(0x161)](),_0x1aaf6e[_0x2646f5(0x161)]();break;case _0x2646f5(0x13d):_0x22a0d5['show'](),_0x1aaf6e['hide']();break;case _0x2646f5(0x17d):$(_0x2646f5(0xf3))[_0x2646f5(0x109)](''),$('#node-config-input-password')['val'](''),_0x1aaf6e[_0x2646f5(0x12a)](),_0x22a0d5[_0x2646f5(0x161)]();break;default:console['log'](_0x2646f5(0x150)+_0x5057e4);}};_0x10a1af(_0x22e61b['userIdentityType']);const _0x53e5fd=$(_0x42160f(0x105));_0x53e5fd['on'](_0x42160f(0x184),()=>{const _0x7f1cd8=_0x42160f,_0x43167a=_0x53e5fd[_0x7f1cd8(0x109)]();_0x10a1af(_0x43167a);});}{$(_0x42160f(0x18a))[_0x42160f(0x161)](),$('#toggleAdvancedSection')[_0x42160f(0xbd)]('checked',![]),$(_0x42160f(0x13f))['on']('change',function(){const _0x423e7b=_0x42160f;$(this)[_0x423e7b(0xbd)](_0x423e7b(0x137))?$(_0x423e7b(0x18a))['show']():$(_0x423e7b(0x18a))[_0x423e7b(0x161)]();});}const _0x20b269=$(_0x42160f(0x17a))[_0x42160f(0xbd)]('checked');_0x20b269?$(_0x42160f(0x102))['show']():$(_0x42160f(0x102))[_0x42160f(0x161)]();$(_0x42160f(0x17a))['on'](_0x42160f(0x184),function(){const _0xfaa850=_0x42160f;$(this)[_0xfaa850(0xbd)](_0xfaa850(0x137))?$(_0xfaa850(0x102))['show']():$(_0xfaa850(0x102))[_0xfaa850(0x161)]();});{$(_0x42160f(0x17e))['on'](_0x42160f(0x106),()=>_0x1a34f3(this,void 0x0,void 0x0,function*(){const _0x190f93=_0x42160f,_0x305ede=yield fetch('/opcua-for-node-red/client_certificate.json'),_0x2a24cb=yield _0x305ede[_0x190f93(0x15b)](),_0x53b6e6=JSON[_0x190f93(0x10c)](_0x2a24cb,null,'\x20');alert(_0x53b6e6);}));}$(_0x42160f(0x16c))['on'](_0x42160f(0x106),()=>_0x1a34f3(this,void 0x0,void 0x0,function*(){const _0x55b1a9=_0x42160f;window['open'](_0x55b1a9(0x10d),_0x55b1a9(0xdb));}));function _0x1fe28e(){const _0x2ef9cb=_0x42160f;var _0x1a3cdd;return{'id':_0x22e61b['id'],'endpoint':$(_0x2ef9cb(0x149))[_0x2ef9cb(0x109)](),'name':$(_0x2ef9cb(0x15f))[_0x2ef9cb(0x109)](),'pkiName':(_0x1a3cdd=$(_0x2ef9cb(0xd2)))===null||_0x1a3cdd===void 0x0?void 0x0:_0x1a3cdd[_0x2ef9cb(0x109)](),'securityMode':$(_0x2ef9cb(0xed))[_0x2ef9cb(0x109)](),'securityPolicy':$(_0x2ef9cb(0x10f))[_0x2ef9cb(0x109)](),'userIdentityType':$(_0x2ef9cb(0x105))[_0x2ef9cb(0x109)](),'userName':$(_0x2ef9cb(0xf3))[_0x2ef9cb(0x109)](),'password':$(_0x2ef9cb(0x133))[_0x2ef9cb(0x109)](),'userCertificate':$(_0x2ef9cb(0xcb))['val'](),'userPrivatekey':$(_0x2ef9cb(0x187))['val'](),'certificate':$('#node-input-certificate')[_0x2ef9cb(0x109)](),'useTransport':$('#node-input-useTransport')['prop'](_0x2ef9cb(0x137)),'maxChunkCount':$(_0x2ef9cb(0xe5))[_0x2ef9cb(0x109)](),'maxMessageSize':$(_0x2ef9cb(0xd7))['val'](),'receiveBufferSize':$(_0x2ef9cb(0x13a))[_0x2ef9cb(0x109)](),'sendBufferSize':$(_0x2ef9cb(0x143))[_0x2ef9cb(0x109)]()};}{_0x56e5ff(_0x42160f(0x120),$(_0x42160f(0xd6)),()=>({'url':_0x42160f(0x17f),'body':{'endpointNode':_0x1fe28e()}}),()=>{});}{const _0x5bad28=(_0x5dd283,_0x31d9e1)=>{const _0x4c1770=_0x42160f;var _0x1bbaf5=_0x5dd283[_0x4c1770(0x116)]()||0x64;_0x5dd283[_0x4c1770(0x172)](_0x4c1770(0xe1))[_0x4c1770(0x108)](_0x4c1770(0x116),_0x1bbaf5-0xf);},_0x577fca=$(_0x42160f(0x166))['css']({'min-height':'150px','min-width':'260px'})['editableList']({'addItem':(_0x28980c,_0x1100a1,_0x8eea2)=>{const _0x148d39=_0x42160f,_0x19b7f9=_0x8eea2,_0x4ca9ac=$(_0x148d39(0xf4))[_0x148d39(0xc0)]()[_0x148d39(0x14b)](_0x28980c);_0x4ca9ac['removeAttr']('id')[_0x148d39(0x170)](_0x148d39(0x161))[_0x148d39(0x170)](_0x148d39(0x182))[_0x148d39(0xf6)](_0x148d39(0x16b),_0x1100a1),_0x4ca9ac['find'](_0x148d39(0x180))[_0x148d39(0x109)](_0x19b7f9[_0x148d39(0x179)]),_0x4ca9ac['find'](_0x148d39(0x103))['val'](_0x19b7f9[_0x148d39(0x13c)][_0x148d39(0xe0)]),_0x4ca9ac[_0x148d39(0x172)]('.input-requestedMaxKeepAliveCount')[_0x148d39(0x109)](_0x19b7f9[_0x148d39(0x13c)][_0x148d39(0x11d)]),_0x4ca9ac[_0x148d39(0x172)](_0x148d39(0xef))['val'](_0x19b7f9[_0x148d39(0x13c)][_0x148d39(0x17c)]),_0x4ca9ac[_0x148d39(0x172)](_0x148d39(0xfd))[_0x148d39(0x109)](_0x19b7f9['parameters']['maxNotificationsPerPublish']||0x0),_0x4ca9ac[_0x148d39(0x172)]('.input-priority')[_0x148d39(0x109)](_0x19b7f9['parameters'][_0x148d39(0x155)]||0x0),_0x4ca9ac[_0x148d39(0x172)]('.subscription-id')[_0x148d39(0x146)](''+_0x1100a1),_0x19b7f9[_0x148d39(0x112)]&&_0x4ca9ac[_0x148d39(0x172)](_0x148d39(0x180))[_0x148d39(0xbd)](_0x148d39(0x126),!![]),_0x4ca9ac[_0x148d39(0x172)]('.input-isDefault')[_0x148d39(0xbd)](_0x148d39(0x137),_0x19b7f9[_0x148d39(0x112)]),_0x19b7f9[_0x148d39(0x112)]&&(_0x28980c[_0x148d39(0x172)](_0x148d39(0x169))[_0x148d39(0x134)](_0x148d39(0x161)),setTimeout(()=>_0x4ca9ac[_0x148d39(0x172)](_0x148d39(0x189))['prop'](_0x148d39(0x129),!![]),0xa));},'removable':!![],'resizeItem':_0x5bad28}),_0x3311f3=()=>{const _0x46958f=_0x42160f,_0x4c372f=_0x22e61b[_0x46958f(0x148)]||[];_0x4c372f[_0x46958f(0x100)]===0x0&&_0x4c372f[_0x46958f(0xc1)]({'id':'s1','name':'Default\x20Subscription','isDefault':!![],'parameters':Object[_0x46958f(0x15d)]({},_0x353b3a)});_0x577fca[_0x46958f(0x13e)]('empty');for(const _0x11bc80 of _0x4c372f){_0x577fca[_0x46958f(0x13e)](_0x46958f(0xcc),_0x11bc80);}};_0x3311f3();}{function _0x199eb2(_0x5b425b,_0x4813e3,_0x43abf0){const _0x137704=_0x42160f,_0x3e9789=_0x43abf0,_0x327cd6=$(_0x137704(0x18d))['appendTo'](_0x5b425b);$(_0x137704(0xd0),{'class':_0x137704(0xe6),'type':'text'})[_0x137704(0x109)](_0x43abf0[_0x137704(0xc6)]||'')[_0x137704(0x14c)]({'width':'5%'})[_0x137704(0x14b)](_0x327cd6)[_0x137704(0x109)](_0x4813e3[_0x137704(0xe3)]()),$(_0x137704(0xd0),{'class':_0x137704(0x157),'type':_0x137704(0x146)})[_0x137704(0x109)](_0x43abf0[_0x137704(0xc6)]||'')[_0x137704(0x14c)]({'width':_0x137704(0xfa)})['appendTo'](_0x327cd6)[_0x137704(0x109)](_0x3e9789[_0x137704(0xc6)]),$(_0x137704(0xd0),{'class':_0x137704(0x12f),'type':'text'})['val'](_0x43abf0['namespaceUri']||'')['css']({'width':_0x137704(0xd1)})[_0x137704(0x14b)](_0x327cd6)[_0x137704(0x109)](_0x3e9789[_0x137704(0xdd)]);}const _0x2defec=$(_0x42160f(0x11f))[_0x42160f(0x14c)]({'min-height':'150px','min-width':_0x42160f(0x127)})[_0x42160f(0x13e)]({'addButton':![],'removable':![],'height':_0x42160f(0xbb),'scrollOnAdd':![],'addItem'(_0x51011c,_0x4715cf,_0x287cd0){_0x199eb2(_0x51011c,_0x4715cf,_0x287cd0);}});function _0x8c8f80(){const _0xe7c06f=_0x42160f;_0x2defec[_0xe7c06f(0x13e)]('items'),_0x2defec[_0xe7c06f(0x13e)](_0xe7c06f(0x160));for(const _0xa123de of _0x22e61b[_0xe7c06f(0xe7)]||[]){_0x2defec['editableList']('addItem',_0xa123de);}}{$(_0x42160f(0x16e))['on'](_0x42160f(0x106),()=>_0x1a34f3(this,void 0x0,void 0x0,function*(){const _0x209c30=_0x42160f,_0x292f3b={'endpointNode':_0x1fe28e(),'namespaceAliases':_0x22e61b[_0x209c30(0xe7)]||[]},_0x399eb4=yield fetch('/opcua-for-node-red/extract-namespace-aliases',{'method':_0x209c30(0xf8),'headers':{'Content-Type':_0x209c30(0xe8)},'body':JSON[_0x209c30(0x10c)](_0x292f3b)}),_0xc180f7=yield _0x399eb4[_0x209c30(0x15b)](),_0x563f5d=_0xc180f7[_0x209c30(0xe7)];console['log'](_0x209c30(0xe7),_0x563f5d),Array[_0x209c30(0x14a)](_0x563f5d)&&(_0x22e61b[_0x209c30(0xe7)]=_0x563f5d,_0x8c8f80());})),_0x22e61b[_0x42160f(0xe7)]=_0x22e61b[_0x42160f(0xe7)]||[{'alias':'ua','namespaceUri':_0x42160f(0x142),'isWellKnown':!![],'isDefault':!![]}];}_0x8c8f80();}}});}()));
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgxYTM0ZjMiLCJfMHg0MmM2YzIiLCJfMHg0OWI0M2YiLCJfMHg1M2I2MTciLCJfMHgxYjI1NzkiLCJfMHgxODk5MjUiLCJfMHgzOTA0ZjIiLCJfMHg0YmE5M2QiLCJQcm9taXNlIiwiXzB4MjkzNDYxIiwiXzB4MmRkZThjIiwiXzB4MmRjNmJkIiwiXzB4NWM4YjZmIiwiXzB4NGIwZmY4IiwiXzB4MzQzZGNhIiwiXzB4MTVkMzc3IiwiXzB4NWM3Zjk0IiwiXzB4MTBiOWRhIiwiXzB4MWU5ODg3IiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4NTVjMWY1IiwiXzB4NGU3M2JjIiwiXzB4NTUyMzVjIiwiXzB4MzNlNjlkIiwiRXJyb3IiLCJfMHg1NmU1ZmYiLCJfMHg1YzdhZmUiLCJfMHgyMmZhYzgiLCJfMHg0NTc0ZTUiLCJfMHg0ZjI0YSIsIl8weDFlZDVmOSIsIiQiLCJfMHgzMTZmYTgiLCJfMHg0OTBlNzAiLCJfMHg0MDJkOTQiLCJfMHg0YTQxZDEiLCJib2R5IiwiXzB4NGM0NDlkIiwidXJsIiwiXzB4NDEyZTc1IiwiZmV0Y2giLCJKU09OIiwiXzB4NGEwMjE2IiwiXzB4M2NmNTQyIiwiY29uc29sZSIsIl8weDNkY2I3MyIsIl8weDFkZWQzZiIsIl8weDU3N2Y4ZCIsIl8weDI0ZTY4OCIsIl8weDRkMGQzZSIsIkFycmF5IiwiXzB4NGQzOTU5IiwiXzB4NTI1OGI1IiwiXzB4NmE0MDgzIiwiXzB4NDNlZmFhIiwiYXJndW1lbnRzIiwiXzB4N2JiYWQyIiwiXzB4ZmZiMzQwIiwiXzB4NTUwZTFlIiwiXzB4MmVmMjcwIiwiXzB4NTBmZTMxIiwiRGF0ZSIsIl8weDMyODU4MSIsIl8weDc1ODc1OCIsIl8weGRkZTNmMiIsIl8weDEyMGYxYyIsIl8weDNjN2U3ZSIsIl8weDU5NmY3NCIsIl8weDQzMTBkMiIsIl8weDU4ZDc2OCIsIl8weDQ1YTBmNSIsIl8weDQxZWQwZiIsIl8weDg0YzdmMSIsIl8weDMzZDhiYiIsIl8weGE5MjE4NiIsImRvY3VtZW50IiwiXzB4NTI0NTU2IiwiXzB4MjAzNmYyIiwiXzB4NDE5Zjc3IiwiXzB4MmM2OTZmIiwiXzB4MjM0ZTFmIiwiVVJMIiwiXzB4MWZkMjRhIiwiXzB4MzUzYjNhIiwiUkVEIiwiXzB4NTBmMmNmIiwiXzB4NThjYzZjIiwiT2JqZWN0IiwiXzB4MjExYTA2IiwiXzB4ZWY2NTUiLCJfMHg0YzljODgiLCJfMHgyNjI2MDYiLCJfMHgxMjk3MTMiLCJfMHg0MDlhYzciLCJfMHgyZGU3YmUiLCJfMHgxMWE2MDUiLCJfMHgyNDk2MGEiLCJfMHg1OTQ0NzgiLCJfMHgxYjNkNGIiLCJfMHgzZmZhOGUiLCJfMHg1YWYwYzMiLCJfMHhmZTg1MiIsIl8weDQwZGUzZiIsIl8weDVjZmViZCIsIl8weDIyZTYxYiIsIl8weGIyMzY0NyIsIl8weDNjZjkxZiIsInNldFRpbWVvdXQiLCJfMHgyMzkzOGEiLCJfMHg1NDhlZjciLCJ1bmRlZmluZWQiLCJfMHgyOWNiM2EiLCJfMHgxNzY5Y2MiLCJfMHg3NjFmMTMiLCJfMHg0ODBiNGEiLCJfMHgyMmEwZDUiLCJfMHgxYWFmNmUiLCJfMHgxMGExYWYiLCJfMHg1MDU3ZTQiLCJfMHg1M2U1ZmQiLCJfMHg0MzE2N2EiLCJfMHgyMGIyNjkiLCJfMHgzMDVlZGUiLCJfMHgyYTI0Y2IiLCJfMHg1M2I2ZTYiLCJhbGVydCIsIndpbmRvdyIsIl8weDFmZTI4ZSIsIl8weDFhM2NkZCIsIl8weDViYWQyOCIsIl8weDVkZDI4MyIsIl8weDMxZDllMSIsIl8weDFiYmFmNSIsIl8weDU3N2ZjYSIsIl8weDI4OTgwYyIsIl8weDExMDBhMSIsIl8weDhlZWEyIiwiXzB4MTliN2Y5IiwiXzB4NGNhOWFjIiwiXzB4MzMxMWYzIiwiXzB4NGMzNzJmIiwiXzB4MTFiYzgwIiwiXzB4MTk5ZWIyIiwiXzB4NWI0MjViIiwiXzB4NDgxM2UzIiwiXzB4NDNhYmYwIiwiXzB4M2U5Nzg5IiwiXzB4MzI3Y2Q2IiwiXzB4MmRlZmVjIiwiXzB4NTEwMTFjIiwiXzB4NDcxNWNmIiwiXzB4Mjg3Y2QwIiwiXzB4OGM4ZjgwIiwiXzB4YTEyM2RlIiwiXzB4MjkyZjNiIiwiXzB4Mzk5ZWI0IiwiXzB4YzE4MGY3IiwiXzB4NTYzZjVkIl0sIm1hcHBpbmdzIjoiODVKQUFBLENBQUMsVSxDQUNHLGEsd0JBbUJBLFNBQVNBLFNBQVQsQ0FBbUJDLFNBQW5CLENBQTRCQyxTQUE1QixDQUF3Q0MsU0FBeEMsQ0FBMkNDLFNBQTNDLEMsQ0FDSSxTQUFTQyxTQUFULENBQWVDLFNBQWYsQyxRQUErQkEsU0FBQSxZQUFpQkgsU0FBakIsQ0FBcUJHLFNBQXJCLENBQTZCLElBQUlILFNBQUosQ0FBTSxTQUFVSSxTQUFWLEMsQ0FBcUJBLFNBQUEsQ0FBUUQsU0FBUixDLEVBQTNCLEMsU0FDckQsR0FBSyxDQUFBSCxTQUFBLEVBQU0sQ0FBQUEsU0FBQSxDQUFJSyxPQUFKLENBQU4sQ0FBTCxDQUF5QixTQUFVQyxTQUFWLENBQW1CQyxTQUFuQixDLHlCQUM1QixTQUFTQyxTQUFULENBQW1CQyxTQUFuQixDLHlCQUE0QixHLENBQU1DLFNBQUEsQ0FBS1QsU0FBQSxDLGdCQUFBLEVBQWVRLFNBQWYsQ0FBTCxDLEVBQStCLE1BQU9FLFNBQVAsQyxDQUFZSixTQUFBLENBQU9JLFNBQVAsQyxHQUM3RSxTQUFTQyxTQUFULENBQWtCQyxTQUFsQixDLHlCQUEyQixHLENBQU1ILFNBQUEsQ0FBS1QsU0FBQSxDLGdCQUFBLEVBQW1CWSxTQUFuQixDQUFMLEMsRUFBbUMsTUFBT0MsU0FBUCxDLENBQVlQLFNBQUEsQ0FBT08sU0FBUCxDLEdBQ2hGLFNBQVNKLFNBQVQsQ0FBY0ssU0FBZCxDLHlCQUF3QkEsU0FBQSxDLGdCQUFBLEVBQWNULFNBQUEsQ0FBUVMsU0FBQSxDLGdCQUFBLENBQVIsQ0FBZCxDQUFzQ2IsU0FBQSxDQUFNYSxTQUFBLEMsZ0JBQUEsQ0FBTixFLE1BQUEsRUFBeUJQLFNBQXpCLENBQW9DSSxTQUFwQyxDLEVBQzlERixTQUFBLENBQU0sQ0FBQVQsU0FBQSxDQUFZQSxTQUFBLEMsZ0JBQUEsRUFBZ0JILFNBQWhCLENB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VUFBV0ssU0FBWCxJQUFvQmpELFNBQUEsQyxlQUFBLEdBQXlCLEVBQTdDLEMsQ0FDSTRDLFNBQUEsQyxjQUFBLEUsU0FBQSxDQUFvQ0ssU0FBcEMsQyxJQUtKMUgsQ0FBQSxDLGdCQUFBLEUsSUFBQSxFLGdCQUFBLENBQWtDLElBQU0vQixTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVywyQkFDOUQwSixTQUFBLENBQVUsQyxjQUNaLENBQWMzQixTQUFBLEVBREYsQyxrQkFFWixDQUFrQnZCLFNBQUEsQyxlQUFBLEdBQXlCLEVBRi9CLEMsQ0FJVm1ELFNBQUEsQ0FBTyxNQUFNbkgsS0FBQSxDLCtDQUFBLENBQXVELEMsUUFDdEUsQyxlQURzRSxDLFNBRXRFLENBQVMsQyxjQUFFLEMsZUFBRixDQUY2RCxDLE1BR3RFLENBQU1DLElBQUEsQyxnQkFBQSxFQUFlaUgsU0FBZixDQUhnRSxDQUF2RCxDLENBS2JFLFNBQUEsQ0FBTyxNQUFNRCxTQUFBLEMsZ0JBQUEsRyxDQUNiRSxTQUFBLENBQW1CRCxTQUFBLEMsZUFBQSxDLENBQ3pCaEgsT0FBQSxDLEtBQUEsRSxlQUFBLENBQWdDaUgsU0FBaEMsQyxDQUNJM0csS0FBQSxDLGdCQUFBLEVBQWMyRyxTQUFkLEMsR0FDQXJELFNBQUEsQyxlQUFBLEVBQXdCcUQsUyxDQUN4QkwsU0FBQSxFLEdBZmdDLENBQXhDLEMsQ0FrQkFoRCxTQUFBLEMsZUFBQSxFQUF3QkEsU0FBQSxDLGVBQUEsR0FBeUIsQ0FDN0MsQyxPQUNJLEMsSUFESixDLGNBRUksQyxnQkFGSixDLGFBR0ksQyxJQUhKLEMsV0FJSSxDLElBSkosQ0FENkMsQyxFQVNyRGdELFNBQUEsRSxHQXZkOEIsQ0FBMUMsQyxFQXJPSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sLCBJdGVyYXRvciAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIG1hbmFnZUFQSUNhbGwocHJlZml4LCBidG4sIGZ1bmMsIG9uUmVzdWx0KSB7XG4gICAgICAgIGNvbnN0IHN1Y2Nlc3NJY29uID0gJChgIyR7cHJlZml4fS1zdWNjZXNzYCk7XG4gICAgICAgIGNvbnN0IGZhaWx1cmVJY29uID0gJChgIyR7cHJlZml4fS1mYWlsdXJlYCk7XG4gICAgICAgIGNvbnN0IHBlbmRpbmdJY29uID0gJChgIyR7cHJlZml4fS1wZW5kaW5nYCk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2VzID0gJChgIyR7cHJlZml4fS1tZXNzYWdlc2ApO1xuICAgICAgICBsZXQgYWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICBzdWNjZXNzSWNvbi5oaWRlKCk7XG4gICAgICAgIGZhaWx1cmVJY29uLmhpZGUoKTtcbiAgICAgICAgcGVuZGluZ0ljb24uaGlkZSgpO1xuICAgICAgICBidG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWN0aW9uUGVuZGluZylcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHBlbmRpbmdJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIHBlbmRpbmdJY29uLmh0bWwoXCJUZXN0aW5nIENvbm5lY3Rpb24gLi4uXCIpO1xuICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgZmFpbHVyZUljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChcIlwiKTtcbiAgICAgICAgICAgIGNvbnN0IHsgYm9keSwgdXJsIH0gPSBmdW5jKCk7XG4gICAgICAgICAgICAvLyB4eCBjb25zb2xlLmxvZyhcInh4eHh4XCIsIGJvZHkpO1xuICAgICAgICAgICAgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoYm9keSksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiBkYXRhLmpzb24oKSlcbiAgICAgICAgICAgICAgICAudGhlbigoanNvbikgPT4ge1xuICAgICAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nSWNvbi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoanNvbiwgbnVsbCwgXCIgXCIpKTtcbiAgICAgICAgICAgICAgICBpZiAoanNvbi5yZXN1bHQgPT09IFwib2tcIikge1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChqc29uLm1lc3NhZ2UucmVwbGFjZShcIlxcblwiLCBcIjxicj5cIikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWRhcHQgPSAoc3RyKSA9PiAhc3RyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogc3RyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KFwiXFxuXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCgoYSkgPT4gYDxwPiR7YX08L3A+YClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuam9pbihcIlxcblwiKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWRhcHQyID0gKHN0cikgPT4gKEFycmF5LmlzQXJyYXkoc3RyKSA/IHN0ci5tYXAoYWRhcHQpLmpvaW4oXCJcXG5cIikgOiBhZGFwdChzdHIpKTtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoYWRhcHQyKGpzb24ubWVzc2FnZSkgKyBhZGFwdDIoanNvbi5leHRyYSkpO1xuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdChuZXcgRXJyb3IoanNvbi5yZXN1bHQpLCBqc29uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgYWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHBlbmRpbmdJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgZmFpbHVyZUljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoXCJpbnRlcm5hbCBlcnJvciBcIiArIGVyci5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHByaWNpbmdUYWJsZUlkID0gXCJwcmN0YmxfMU9KdDQ5QkNOY2NienNWemthQU5PZ0ZMXCI7XG4gICAgY29uc3QgcHVibGlzaGFibGVLZXkgPSBcInBrX2xpdmVfNTFIc0Uxc0JDTmNjYnpzVnp0N3phcTJ1djIwcGtyeVdsbEF6dlpnWmQ1QWh3Rkk5QTNxQkllT0p2SndRRjA4bERvTHBGcUxqd215QTc5d25QbllMc3ZLanQwMDlmMDBWcENXXCI7XG4gICAgZnVuY3Rpb24gZmV0Y2hMaWNlbmNlSW5mbygpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCBhcmd1bWVudHMsIHZvaWQgMCwgZnVuY3Rpb24qIChiYXNlVXJsID0gXCJcIikge1xuICAgICAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWZvci1ub2RlLXJlZGA7XG4gICAgICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9saWNlbmNlSW5mb2A7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xuICAgICAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN0YXR1czogXCJGQUlMRURcIiwgdHlwZTogXCJGUkVFV0FSRVwiLCBsaWNlbmNlSW5mbzogeyBleHBpcnlEYXRlOiB0b2RheSB9IH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBqc29uID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgICAgICByZXR1cm4ganNvbjtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGRlY2xhcmVMaWNlbmNlV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLmxpY2VuY2VXaWRnZXRcIiwge1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBjb25zdCBjb250YWN0TGluayA9IGA8YSBocmVmPVwibWFpbHRvOnN1cHBvcnRAc3RlcmZpdmUuY29tXCIgc3ViamVjdD1cIkBvcGN1YS9mb3Itbm9kZS1yZWQgc3VwcG9ydCByZXF1ZXN0XCI+bWFpbHRvOnN1cHBvcnRAc3RlcmZpdmUuY29tPC9hPmA7XG4gICAgICAgICAgICAgICAgY29uc3Qgd2Vic2l0ZUxpbmsgPSBgPGEgaHJlZj1cImh0dHBzOi8vd3d3LnN0ZXJmaXZlLmNvbS9vcGN1YS9mb3Itbm9kZS1yZWRcIiB0YXJnZXQ94oCdX2JsYW5r4oCdPlN0ZXJmaXZlJ3Mgd2Vic2l0ZSA8L2E+YDtcbiAgICAgICAgICAgICAgICBmZXRjaExpY2VuY2VJbmZvKHRoYXQuYmFzZVVybClcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGljb24gPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBsZXQgbXNnID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRldGFpbHMgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXMgPSBqc29uLnN0YXR1cztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF5TGVmdCA9IGpzb24uZGF5c0xlZnQ7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiQVVUSE9SSVpFRFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb24gPSBcImZhIGZhLWNoZWNrLWNpcmNsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoanNvbi50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJUUklBTFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBcIlRyaWFsIGxpY2VuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPSBgVGhlIFRyaWFsIHdpbGwgZXhwaXJlIGluICR7ZGF5TGVmdH0gZGF5cy5cXG5CdXkgb25saW5lIGFuZCB2aXNpdCAke3dlYnNpdGVMaW5rfSB0byBhY3F1aXJlIGEgbGljZW5zZS5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlBST0ZFU1NJT05BTFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gYFlvdXIgbGljZW5jZSBpcyB2YWxpZC5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRheUxlZnQgPCA5MCAmJiBkYXlMZWZ0ID49IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgKz0gYCBJdCB3aWxsIGV4cGlyZSBpbiAke2RheUxlZnR9IGRheXMuYDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRldGFpbHMgPSBgJHt3ZWJzaXRlTGlua308YnI+JHtjb250YWN0TGlua31gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscyA9IGpzb24ubGljZW5jZUluZm8ubGljZW5jZVR5cGUgKyBcIiAtIFwiICsgKGpzb24ubGljZW5jZUluZm8ub25QcmVtaXNlU2VydmVySG9zdCB8fCBcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiRlJFRVdBUkVcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IFwiRnJlZXdhcmUgbGljZW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscyA9IGBUaGlzIGlzIGEgZnJlZXdhcmUgbGljZW5jZSwgYW5kIGhhdmUgc29tZSBsaW1pdGF0aW9ucy5cXG4ke3dlYnNpdGVMaW5rfSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkVYUElSRURcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uID0gXCJmYSBmYS1jYWxlbmRhci10aW1lXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gXCJMaWNlbmNlIGhhcyBleHBpcmVkXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiWW91ciBsaWNlbnNlIGhhcyBleHBpcmVkLiBQbGVhc2UgY29udGFjdCBvdXIgc3VwcG9ydCB0ZWFtIG9yIHZpc2l0IG91ciB3ZWJzaXRlIHRvIHJlbmV3IHlvdXIgbGljZW5zZSBhbmQgcmVnYWluIGFjY2VzcyB0byBvdXIgc2VydmljZXMuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiRkFJTEVEXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb24gPSBcImZhIGZhLWV4Y2xhbWF0aW9uLWNpcmNsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IFwiWW91ciBsaWNlbnNlIGlzIGN1cnJlbnRseSBpbnZhbGlkLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPSBgUGxlYXNlIGNvbnRhY3QgJHtjb250YWN0TGlua30gb3IgdmlzaXQgb3VyIHdlYnNpdGUgdG8gcmVuZXcgeW91ciBsaWNlbnNlIGFuZCByZWdhaW4gYWNjZXNzIHRvIG91ciBzZXJ2aWNlcy7MgGA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLyoqICovXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuZWxlbWVudC50ZXh0KFwiTGljZW5jZSBcIiArIEpTT04uc3RyaW5naWZ5KGpzb24pKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZENsYXNzKFwibGljZW5jZS13aWRnZXRcIik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRDbGFzcyhcImxpY2VuY2Utd2lkZ2V0LVwiICsgc3RhdHVzKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZCgkKFwiPHNwYW4+XCIpLmFkZENsYXNzKFwibGljZW5jZS13aWRnZXQtaWNvblwiKS5hcHBlbmQoJChcIjxpPlwiKS5hZGRDbGFzcyhpY29uKSkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKCQoXCI8c3Bhbj5cIikuYWRkQ2xhc3MoXCJsaWNlbmNlLXdpZGdldC1tc2dcIikudGV4dChtc2cpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZCgkKFwiPGJyPlwiKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmQoJChcIjxzcGFuPlwiKS5hZGRDbGFzcyhcImxpY2VuY2Utd2lkZ2V0LWRldGFpbHNcIikuYXBwZW5kKGRldGFpbHMpKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXR1cyA9PT0gXCJFWFBJUkVEXCIgfHwgc3RhdHVzID09PSBcIkZBSUxFRFwiIHx8IGpzb24udHlwZSA9PT0gXCJGUkVFV0FSRVwiIHx8IGpzb24udHlwZSA9PT0gXCJUUklBTFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpYmVCdXR0b24gPSAkKFwiPGJ1dHRvbi8+XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLmF0dHIoXCJpZFwiLCBcInN1YnNjcmliZS1idXR0b25cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVCdXR0b24uYXR0cihcImNsYXNzXCIsIFwiYnRuIGJ0bi1wcmltYXJ5XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLmF0dHIoXCJzdHlsZVwiLCBcIm1hcmdpbi10b3A6IDIwcHg7XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLnRleHQoXCJTdWJzY3JpYmVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKHN1YnNjcmliZUJ1dHRvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2V0IGF0dHJpYnV0ZXMgZm9yIHRoZSBzY3JpcHQgZWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0LnNyYyA9IFwiaHR0cHM6Ly9qcy5zdHJpcGUuY29tL3YzL3ByaWNpbmctdGFibGUuanNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdC5hc3luYyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBBcHBlbmQgdGhlIHNjcmlwdCBlbGVtZW50IHRvIHRoZSBoZWFkIChvciBib2R5KSBvZiB0aGUgZG9jdW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICQoXCJoZWFkXCIpLmFwcGVuZChzY3JpcHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyaXBlUHJpY2luZ1RhYmxlID0gJChcIjxzdHJpcGUtcHJpY2luZy10YWJsZS8+XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2V0IGF0dHJpYnV0ZXMgZm9yIHRoZSBlbGVtZW50XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJpcGVQcmljaW5nVGFibGUuYXR0cihcInByaWNpbmctdGFibGUtaWRcIiwgcHJpY2luZ1RhYmxlSWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBlUHJpY2luZ1RhYmxlLmF0dHIoXCJwdWJsaXNoYWJsZS1rZXlcIiwgcHVibGlzaGFibGVLZXkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBlUHJpY2luZ1RhYmxlLmF0dHIoXCJzdHlsZVwiLCBcImhlaWdodDogMTAwJTttYXgtaGVpZ2h0OiAxMDAlO1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwZVByaWNpbmdUYWJsZS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKHN0cmlwZVByaWNpbmdUYWJsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVCdXR0b24ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBlUHJpY2luZ1RhYmxlLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVCdXR0b24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hdHRyKFwic3R5bGVcIiwgXCJoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgZGVjbGFyZUxpY2VuY2VXaWRnZXQoKTtcbiAgICBmdW5jdGlvbiBpc1ZhbGlkT1BDX1VBX1VSSShzdHIpIHtcbiAgICAgICAgbGV0IHVybDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHVybCA9IG5ldyBVUkwoc3RyKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoXykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1cmwucHJvdG9jb2wgPT09IFwib3BjLnRjcDpcIjtcbiAgICB9XG4gICAgY29uc3QgZGVmYXVsdFN1YnNjcmlwdGlvblBhcmFtZXRlcnMgPSB7XG4gICAgICAgIHB1Ymxpc2hpbmdFbmFibGVkOiB0cnVlLFxuICAgICAgICByZXF1ZXN0ZWRMaWZldGltZUNvdW50OiAxMDAwLFxuICAgICAgICByZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudDogMTAsIC8vIGV2ZXJ5IDEwIHNlY29uZHNcbiAgICAgICAgcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsOiAxMDAwLFxuICAgICAgICBtYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaDogMCxcbiAgICAgICAgcHJpb3JpdHk6IDEwMCxcbiAgICB9O1xuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1FbmRwb2ludDJcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJjb25maWdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcIm9wY3VhIGVuZHBvaW50XCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzL1VBL1NhbXBsZVNlcnZlclwiLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbGlkYXRlOiBpc1ZhbGlkT1BDX1VBX1VSSSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvLyBTZWN1cml0eSBNb2RlXG4gICAgICAgICAgICBzZWN1cml0eU1vZGU6IHsgdmFsdWU6IFwiTm9uZVwiIH0sXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeToge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIk5vbmVcIixcbiAgICAgICAgICAgICAgICB2YWxpZGF0ZTogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZTogeyB2YWx1ZTogXCJBbm9ueW1vdXNcIiB9LFxuICAgICAgICAgICAgcGtpTmFtZTogeyB2YWx1ZTogXCJcIiwgdmFsaWRhdGU6ICh2YWx1ZSkgPT4gKCF2YWx1ZSB8fCB2YWx1ZS5tYXRjaCgvWzAtOWEtekEtWl0qLykgPyB0cnVlIDogZmFsc2UpIH0sXG4gICAgICAgICAgICAvLyB0byB1c2Ugd2hlbiB1c2VySWRlbnRpdHlUeXBlIGlzIFVzZXJOYW1lXG4gICAgICAgICAgICAvLyBjcmVkZW50aWFsczoge1xuICAgICAgICAgICAgLy8gICAgIHVzZXJOYW1lOiB7IHZhbHVlOiBcIlwiLCB0eXBlOiBcInRleHRcIiB9LFxuICAgICAgICAgICAgLy8gICAgIHBhc3N3b3JkOiB7IHZhbHVlOiBcIlwiLCB0eXBlOiBcInBhc3N3b3JkXCIgfSxcbiAgICAgICAgICAgIC8vICAgICAvLyB0byB1c2Ugd2hlbiB1c2VySWRlbnRpdHlUeXBlIGlzIENlcnRpZmljYXRlXG4gICAgICAgICAgICAvLyAgICAgdXNlckNlcnRpZmljYXRlOiB7IHZhbHVicm93c2VQYXRoZTogXCJcIiwgdHlwZTogXCJ0ZXh0XCIgfSxcbiAgICAgICAgICAgIC8vICAgICB1c2VyUHJpdmF0ZWtleTogeyB2YWx1ZTogXCJcIiAsIHR5cGU6IFwicGFzc3dvcmRcIn0sXG4gICAgICAgICAgICAvLyB9IGFzIGFueSAvKiBjaXJjdW12ZW50IGEgYnVnIGluIG5vZGUtcmVkICovLFxuICAgICAgICAgICAgLy8gdXNlcm5hbWVcbiAgICAgICAgICAgIHVzZVRyYW5zcG9ydDogeyB2YWx1ZTogZmFsc2UsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgbWF4Q2h1bmtDb3VudDogeyB2YWx1ZTogMSwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBtYXhNZXNzYWdlU2l6ZTogeyB2YWx1ZTogODE5MiwgcmVxdWlyZWQ6IGZhbHNlIH0sIC8vIHNob3VsZCBiZSBhdCBsZWFzdCA4MTkyXG4gICAgICAgICAgICByZWNlaXZlQnVmZmVyU2l6ZTogeyB2YWx1ZTogODE5MiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBzZW5kQnVmZmVyU2l6ZTogeyB2YWx1ZTogODE5MiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBzdWJzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiczFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRGVmYXVsdCBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTdWJzY3JpcHRpb25QYXJhbWV0ZXJzKSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiczJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiU2xvdyBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlzaGluZ0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkTGlmZXRpbWVDb3VudDogMTAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZE1heEtlZXBBbGl2ZUNvdW50OiAzLCAvLyBldmVyeSAxNSBzZWNvbmRzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsOiA1MDAwLCAvL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoOiAxMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHk6IDEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiczNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRmFzdCBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlzaGluZ0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkTGlmZXRpbWVDb3VudDogNDAwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudDogNTAsIC8vIGV2ZXJ5IDEyLjUgc2Vjb25kc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbDogMjUwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoOiAxMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHk6IDIwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmFtZXNwYWNlQWxpYXNlczoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzOiBcInVhXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VVcmk6IFwiaHR0cDovL29wY2ZvdW5kYXRpb24ub3JnL1VBL1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNXZWxsS25vd246IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzOiBcImRpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VVcmk6IFwiaHR0cDovL29wY2ZvdW5kYXRpb24ub3JnL0RJL1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNXZWxsS25vd246IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBjcmVkZW50aWFsczoge1xuICAgICAgICAgICAgdXNlck5hbWU6IHsgdHlwZTogXCJ0ZXh0XCIgfSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiB7IHR5cGU6IFwicGFzc3dvcmRcIiB9LFxuICAgICAgICAgICAgdXNlckNlcnRpZmljYXRlOiB7IHR5cGU6IFwidGV4dFwiIH0sXG4gICAgICAgICAgICB1c2VyUHJpdmF0ZWtleTogeyB0eXBlOiBcInBhc3N3b3JkXCIgfSxcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWw6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgdGhpcy5lbmRwb2ludCB8fCBcImludmFsaWQgZW5kcG9pbnRcIjtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0c2F2ZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IF9zZWN1cml0eVBvbGljeSA9ICQoXCIjbm9kZS1jb25maWctaW5wdXQtc2VjdXJpdHlQb2xpY3lcIik7XG4gICAgICAgICAgICBjb25zdCBfc2VjdXJpdHlNb2RlID0gJChcIiNub2RlLWNvbmZpZy1pbnB1dC1zZWN1cml0eU1vZGVcIik7XG4gICAgICAgICAgICBpZiAoX3NlY3VyaXR5UG9saWN5LnZhbCgpID09PSBcIk5vbmVcIikge1xuICAgICAgICAgICAgICAgIF9zZWN1cml0eU1vZGUudGV4dChcIk5vbmVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAoKCgoKCgoKCgoIHJldHJpZXZlIHN1YnNjcmlwdGlvbiBkYXRhICkpKSkpKSkpKSlcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpcHRpb25JdGVtcyA9ICQoXCIjc3Vic2NyaXB0aW9ucy1jb250YWluZXJcIikuZWRpdGFibGVMaXN0KFwiaXRlbXNcIik7XG4gICAgICAgICAgICAgICAgY29uc3QgcyA9IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IG4gPSAoeCkgPT4geDtcbiAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25JdGVtcy5lYWNoKGZ1bmN0aW9uIChpbmRleCwgaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInNcIiArIGluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogZS5maW5kKFwiLmlucHV0LW5hbWVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6ICEhZS5maW5kKFwiLmlucHV0LWlzRGVmYXVsdFwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaXNoaW5nRW5hYmxlZDogISFlLmZpbmQoXCIuaW5wdXQtcHVibGlzaGluZ0VuYWJsZWRcIikuaXMoXCI6Y2hlY2tlZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRMaWZldGltZUNvdW50OiBuKGUuZmluZChcIi5pbnB1dC1yZXF1ZXN0ZWRMaWZldGltZUNvdW50XCIpLnZhbCgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudDogbihlLmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnRcIikudmFsKCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbDogbihlLmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsXCIpLnZhbCgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaDogbihlLmZpbmQoXCIuaW5wdXQtbWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2hcIikudmFsKCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5OiBuKGUuZmluZChcIi5pbnB1dC1wcmlvcml0eVwiKS52YWwoKSksXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAvLyBmb3JjZSB0byBiZSB0cnVlXG4gICAgICAgICAgICAgICAgICAgIGEucGFyYW1ldGVycy5wdWJsaXNoaW5nRW5hYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhLmlzRGVmYXVsdCAmJiBhLmlkID09PSBcInMwXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vcm1hbGl6ZSBkZWZhdWx0IHN1YnNjcmlwdGlvbiBuYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICBhLm5hbWUgPSBcIkRlZmF1bHQgU3Vic2NyaXB0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcy5wdXNoKGEpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IHM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAoKCgoKCgoKCgoIHJldHJpZXZlIG5hbWVzcGFjZSBhbGlhcyBkYXRhICkpKSkpKSkpKVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC8vIGFsaWFzZXNcbiAgICAgICAgICAgICAgICBjb25zdCBhbGlhc0l0ZW1zID0gJChcIiNlZGl0YWJsZS1saXN0LWFsaWFzZXMtY29udGFpbmVyXCIpLmVkaXRhYmxlTGlzdChcIml0ZW1zXCIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRtcCA9IFtdO1xuICAgICAgICAgICAgICAgIGFsaWFzSXRlbXMuZWFjaChmdW5jdGlvbiAoaW5kZXgsIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpZDogXCJzXCIgKyBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZVVyaTogZS5maW5kKFwiLm5vZGUtaW5wdXQtYWxpYXMtbmFtZXNwYWNlLXVyaVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzOiBlLmZpbmQoXCIubm9kZS1pbnB1dC1hbGlhcy1hbGlhc1wiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgdG1wLnB1c2goYSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5uYW1lc3BhY2VBbGlhc2VzID0gdG1wO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXM7XG4gICAgICAgICAgICBjb25zdCB0YWJzID0gUkVELnRhYnMuY3JlYXRlKHtcbiAgICAgICAgICAgICAgICBpZDogXCJub2RlLWNvbmZpZy1lbmRwb2ludC10YWJzXCIsXG4gICAgICAgICAgICAgICAgb25jaGFuZ2U6IGZ1bmN0aW9uICh0YWIpIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWNvbmZpZy1lbmRwb2ludC10YWJzLWNvbnRlbnRcIikuY2hpbGRyZW4oKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjXCIgKyB0YWIuaWQpLnNob3coKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0YWJzLmFkZFRhYih7XG4gICAgICAgICAgICAgICAgaWQ6IFwiZW5kcG9pbnQtdGFiLWNvbm5lY3Rpb25cIixcbiAgICAgICAgICAgICAgICBsYWJlbDogXCJDb25uZWN0aW9uXCIsXG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgIHRhYnMuYWRkVGFiKHtcbiAgICAgICAgICAgICAgICBpZDogXCJlbmRwb2ludC10YWItc3Vic2NyaXB0aW9uc1wiLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBcIlN1YnNjcmlwdGlvbnNcIixcbiAgICAgICAgICAgIH0sIDEpO1xuICAgICAgICAgICAgdGFicy5hZGRUYWIoe1xuICAgICAgICAgICAgICAgIGlkOiBcImVuZHBvaW50LXRhYi1uYW1lc3BhY2UtYWxpYXNlc1wiLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBcIk5hbWVzcGFjZSBBbGlhc2VzXCIsXG4gICAgICAgICAgICB9LCAyKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHRhYnMucmVzaXplKCk7XG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgU2VjdXJpdHkgY29udHJvbHNcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlU2VjdXJpdHlDb250cm9sID0gKHNlY3VyaXR5TW9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHNlY3VyaXR5TW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBudWxsOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB1bmRlZmluZWQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiTm9uZVwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIuc2VjdGlvbi1zZWN1cml0eVBvbGljeVwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiU2lnblwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlNpZ25BbmRFbmNyeXB0XCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcCA9ICQoXCIuc2VjdGlvbi1zZWN1cml0eVBvbGljeVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNwLnZhbCgpID09PSBcIk5vbmVcIiB8fCBzcC52YWwoKSA9PT0gXCJcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3AudmFsKFwiQmFzaWMyNTZTaGEyNTZcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIi5zZWN0aW9uLXNlY3VyaXR5UG9saWN5XCIpLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiaW52YWxpZCBzZWN1cml0eU1vZGUgXCIgKyBzZWN1cml0eU1vZGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB1cGRhdGVTZWN1cml0eUNvbnRyb2wobm9kZS5zZWN1cml0eU1vZGUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IF9zZWN1cml0eU1vZGUgPSAkKFwiI25vZGUtY29uZmlnLWlucHV0LXNlY3VyaXR5TW9kZVwiKTtcbiAgICAgICAgICAgICAgICBfc2VjdXJpdHlNb2RlLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3U2VjdXJpdHlNb2RlID0gX3NlY3VyaXR5TW9kZS52YWwoKTtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU2VjdXJpdHlDb250cm9sKG5ld1NlY3VyaXR5TW9kZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBsaWNlbmNlV2lkZ2V0ID0gJChcIiNsaWNlbmNlV2lkZ2V0XCIpO1xuICAgICAgICAgICAgbGljZW5jZVdpZGdldC5saWNlbmNlV2lkZ2V0KHtcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIHRoZSBVc2VyIElkZW50aXR5IENvbnRyb2xzXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbnN0IGF1dGhSb3cgPSAkKFwiLnNlY3Rpb24tdXNlcklkZW50aXR5VHlwZS1Vc2VyTmFtZVwiKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjZXJ0Um93ID0gJChcIi5zZWN0aW9uLXVzZXJJZGVudGl0eVR5cGUtQ2VydGlmaWNhdGVcIik7XG4gICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlSWRlbnRpdHlDb250cm9scyA9ICh1c2VySWRlbnRpdHlUeXBlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGUgPSB1c2VySWRlbnRpdHlUeXBlIHx8IFwiQW5vbnltb3VzXCI7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodXNlcklkZW50aXR5VHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkFub255bW91c1wiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlck5hbWVcIikudmFsKFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctaW5wdXQtcGFzc3dvcmRcIikudmFsKFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhSb3cuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRSb3cuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlVzZXJOYW1lXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aFJvdy5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydFJvdy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiQ2VydGlmaWNhdGVcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJOYW1lXCIpLnZhbChcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtY29uZmlnLWlucHV0LXBhc3N3b3JkXCIpLnZhbChcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0Um93LnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoUm93LmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJpbnZhbGlkIHVzZXJJZGVudGl0eVR5cGUgXCIgKyB1c2VySWRlbnRpdHlUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdXBkYXRlSWRlbnRpdHlDb250cm9scyhub2RlLnVzZXJJZGVudGl0eVR5cGUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IF91c2VySWRlbnRpdHlUeXBlID0gJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VySWRlbnRpdHlUeXBlXCIpO1xuICAgICAgICAgICAgICAgIF91c2VySWRlbnRpdHlUeXBlLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3SWRlbnRpdHlUeXBlID0gX3VzZXJJZGVudGl0eVR5cGUudmFsKCk7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZUlkZW50aXR5Q29udHJvbHMobmV3SWRlbnRpdHlUeXBlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgYWR2YW5jZWQgY29udHJvbHNcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLUFkdmFuY2VkXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAkKFwiI3RvZ2dsZUFkdmFuY2VkU2VjdGlvblwiKS5wcm9wKFwiY2hlY2tlZFwiLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgJChcIiN0b2dnbGVBZHZhbmNlZFNlY3Rpb25cIikub24oXCJjaGFuZ2VcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5wcm9wKFwiY2hlY2tlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGNoZWNrYm94IGlzIGNoZWNrZWQsIHNob3cgdGhlIGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLUFkdmFuY2VkXCIpLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSwgaGlkZSBpdFxuICAgICAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLUFkdmFuY2VkXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgdXNlVHJhbnNwb3J0U2V0dGluZyA9ICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlVHJhbnNwb3J0XCIpLnByb3AoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgaWYgKHVzZVRyYW5zcG9ydFNldHRpbmcpIHtcbiAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tVHJhbnNwb3J0U2V0dGluZ3NcIikuc2hvdygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLVRyYW5zcG9ydFNldHRpbmdzXCIpLmhpZGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlVHJhbnNwb3J0XCIpLm9uKFwiY2hhbmdlXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5wcm9wKFwiY2hlY2tlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgY2hlY2tib3ggaXMgY2hlY2tlZCwgc2hvdyB0aGUgZGl2XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1UcmFuc3BvcnRTZXR0aW5nc1wiKS5zaG93KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBPdGhlcndpc2UsIGhpZGUgaXRcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLVRyYW5zcG9ydFNldHRpbmdzXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBjaGVja0NlcnRpZmljYXRlXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICQoXCIjY2hlY2tDZXJ0aWZpY2F0ZVwiKS5vbihcImNsaWNrXCIsICgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKFwiL29wY3VhLWZvci1ub2RlLXJlZC9jbGllbnRfY2VydGlmaWNhdGUuanNvblwiKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5mbyA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ID0gSlNPTi5zdHJpbmdpZnkoaW5mbywgbnVsbCwgXCIgXCIpO1xuICAgICAgICAgICAgICAgICAgICBhbGVydCh0KTtcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIGNvbmZpZyBidXR0b25cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAkKFwiI2dvdG8tY29uZmlnXCIpLm9uKFwiY2xpY2tcIiwgKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuKFwiL29wY3VhLWZvci1ub2RlLXJlZC9jb25maWdcIiwgXCJfYmxhbmtcIik7XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICBmdW5jdGlvbiBleHRyYWN0RW5kcG9pbnREYXRhKCkge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBpZDogbm9kZS5pZCxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtZW5kcG9pbnRcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtbmFtZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgcGtpTmFtZTogKF9hID0gJChcIiNub2RlLWNvbmZpZy1pbnB1dC1wa2lOYW1lXCIpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHNlY3VyaXR5TW9kZTogJChcIiNub2RlLWNvbmZpZy1pbnB1dC1zZWN1cml0eU1vZGVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5OiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXNlY3VyaXR5UG9saWN5XCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlOiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJJZGVudGl0eVR5cGVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHVzZXJOYW1lOiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJOYW1lXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICBwYXNzd29yZDogJChcIiNub2RlLWNvbmZpZy1pbnB1dC1wYXNzd29yZFwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgdXNlckNlcnRpZmljYXRlOiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJDZXJ0aWZpY2F0ZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgdXNlclByaXZhdGVrZXk6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlclByaXZhdGVrZXlcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIC8vLyBub3QgdGVzdGVkIHlldCAuLi46XG4gICAgICAgICAgICAgICAgICAgIGNlcnRpZmljYXRlOiAkKFwiI25vZGUtaW5wdXQtY2VydGlmaWNhdGVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHVzZVRyYW5zcG9ydDogJChcIiNub2RlLWlucHV0LXVzZVRyYW5zcG9ydFwiKS5wcm9wKFwiY2hlY2tlZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgbWF4Q2h1bmtDb3VudDogJChcIiNub2RlLWlucHV0LW1heENodW5rQ291bnRcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIG1heE1lc3NhZ2VTaXplOiAkKFwiI25vZGUtaW5wdXQtbWF4TWVzc2FnZVNpemVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHJlY2VpdmVCdWZmZXJTaXplOiAkKFwiI25vZGUtaW5wdXQtcmVjZWl2ZUJ1ZmZlclNpemVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHNlbmRCdWZmZXJTaXplOiAkKFwiI25vZGUtaW5wdXQtc2VuZEJ1ZmZlclNpemVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgdGhlIFRlc3QgYnV0dG9uXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG1hbmFnZUFQSUNhbGwoXCJjb25uZWN0aW9uXCIsICQoXCIjdGVzdC1jb25uZWN0aW9uXCIpLCAoKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICB1cmw6IFwiL29wY3VhLWZvci1ub2RlLXJlZC90ZXN0LWNvbm5lY3Rpb25cIixcbiAgICAgICAgICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBleHRyYWN0RW5kcG9pbnREYXRhKCksXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSksICgpID0+IHsgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gIEluc3RhbGwgc3Vic2NyaXB0aW9ucyBMaXN0IG1hbmFnZW1lbnRcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzaXplVG9waWNzID0gKHRvcGljLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB2YXIgbmV3V2lkdGggPSB0b3BpYy53aWR0aCgpIHx8IDEwMDtcbiAgICAgICAgICAgICAgICAgICAgdG9waWMuZmluZChcImxhYmVsXCIpLnR5cGVkSW5wdXQoXCJ3aWR0aFwiLCBuZXdXaWR0aCAtIDE1KTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbkxpc3QgPSAkKFwiI3N1YnNjcmlwdGlvbnMtY29udGFpbmVyXCIpXG4gICAgICAgICAgICAgICAgICAgIC5jc3MoeyBcIm1pbi1oZWlnaHRcIjogXCIxNTBweFwiLCBcIm1pbi13aWR0aFwiOiBcIjI2MHB4XCIgfSlcbiAgICAgICAgICAgICAgICAgICAgLmVkaXRhYmxlTGlzdCh7XG4gICAgICAgICAgICAgICAgICAgIGFkZEl0ZW06IChjb250YWluZXIsIGluZGV4LCBkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBfZGF0YSA9IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gJChcIiNzdWJzY3JpcHRpb24tdGVtcGxhdGVcIikuY2xvbmUoKS5hcHBlbmRUbyhjb250YWluZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyKFwiaWRcIikucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpLnJlbW92ZUNsYXNzKFwidGVtcGxhdGVcIikuYXR0cihcImRhdGEtaVwiLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtbmFtZVwiKS52YWwoX2RhdGEubmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsXCIpLnZhbChfZGF0YS5wYXJhbWV0ZXJzLnJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnRcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMucmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKFwiLmlucHV0LXJlcXVlc3RlZExpZmV0aW1lQ291bnRcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMucmVxdWVzdGVkTGlmZXRpbWVDb3VudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtbWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2hcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMubWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2ggfHwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtcHJpb3JpdHlcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMucHJpb3JpdHkgfHwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuc3Vic2NyaXB0aW9uLWlkXCIpLnRleHQoXCJcIiArIGluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfZGF0YS5pc0RlZmF1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtbmFtZVwiKS5wcm9wKFwicmVhZG9ubHlcIiwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtaXNEZWZhdWx0XCIpLnByb3AoXCJjaGVja2VkXCIsIF9kYXRhLmlzRGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhhdCBkZWZhdWx0IHN1YnNjcmlwdGlvbiBjYW5ub3QgYmUgYWNjaWRlbnRhbGx5IHJlbW92ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfZGF0YS5pc0RlZmF1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuZmluZChcIi5yZWQtdWktZWRpdGFibGVMaXN0LWl0ZW0tcmVtb3ZlXCIpLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGVsZW1lbnQuZmluZChcIi5pbnB1dC1pc0RlZmF1bHRcIikucHJvcChcImRpc2FibGVkXCIsIHRydWUpLCAxMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIC8vIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICByZW1vdmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHJlc2l6ZUl0ZW06IHJlc2l6ZVRvcGljcyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxsU3Vic2NyaXB0aW9ucyA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9ucyA9IG5vZGUuc3Vic2NyaXB0aW9ucyB8fCBbXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN1YnNjcmlwdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBhZGQgbWlzc2luZyBkZWZhdWx0IHN1YnNjcmlwdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJzMVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRGVmYXVsdCBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyczogT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdFN1YnNjcmlwdGlvblBhcmFtZXRlcnMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uTGlzdC5lZGl0YWJsZUxpc3QoXCJlbXB0eVwiKTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gb2Ygc3Vic2NyaXB0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3Vic2NyaXB0aW9uLmlzRGVmYXVsdCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uTGlzdC5lZGl0YWJsZUxpc3QoXCJhZGRJdGVtXCIsIHN1YnNjcmlwdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGZpbGxTdWJzY3JpcHRpb25zKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gIEluc3RhbGwgbmFtZXNwYWNlIGFsaWFzIExpc3QgbWFuYWdlbWVudFxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBhZGRBbGlhc0N0cmwoY29udGFpbmVyLCBpbmRleCwgYXJnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhcmc7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdyA9ICQoJzxkaXYgY2xhc3M9XCJhbGlhcy1lbnRyeVwiPicpLmFwcGVuZFRvKGNvbnRhaW5lcik7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnRhaW5lci5kYXRhKFwiZGF0YVwiLCBhcmcpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiPGlucHV0Lz5cIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwibm9kZS1pbnB1dC1hbGlhcy1pbmRleFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsKGFyZy5hbGlhcyB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjUlXCIgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhyb3cpXG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsKGluZGV4LnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiPGlucHV0Lz5cIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwibm9kZS1pbnB1dC1hbGlhcy1hbGlhc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsKGFyZy5hbGlhcyB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjI1JVwiIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8ocm93KVxuICAgICAgICAgICAgICAgICAgICAgICAgLnZhbChkYXRhLmFsaWFzKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIjxpbnB1dC8+XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm5vZGUtaW5wdXQtYWxpYXMtbmFtZXNwYWNlLXVyaVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsKGFyZy5uYW1lc3BhY2VVcmkgfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jc3MoeyB3aWR0aDogXCI3MCVcIiB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKHJvdylcbiAgICAgICAgICAgICAgICAgICAgICAgIC52YWwoZGF0YS5uYW1lc3BhY2VVcmkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBhbGlhc2VzTGlzdCA9ICQoXCIjZWRpdGFibGUtbGlzdC1hbGlhc2VzLWNvbnRhaW5lclwiKVxuICAgICAgICAgICAgICAgICAgICAuY3NzKHsgXCJtaW4taGVpZ2h0XCI6IFwiMTUwcHhcIiwgXCJtaW4td2lkdGhcIjogXCIyNjBweFwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5lZGl0YWJsZUxpc3Qoe1xuICAgICAgICAgICAgICAgICAgICBhZGRCdXR0b246IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICByZW1vdmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiLFxuICAgICAgICAgICAgICAgICAgICBzY3JvbGxPbkFkZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGFkZEl0ZW0oY29udGFpbmVyLCBpLCBpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRBbGlhc0N0cmwoY29udGFpbmVyLCBpLCBpdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBmaWxsTmFtZXNwYWNlQWxpYXNlcygpIHtcbiAgICAgICAgICAgICAgICAgICAgYWxpYXNlc0xpc3QuZWRpdGFibGVMaXN0KFwiaXRlbXNcIik7XG4gICAgICAgICAgICAgICAgICAgIGFsaWFzZXNMaXN0LmVkaXRhYmxlTGlzdChcImVtcHR5XCIpO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGFsaWFzIG9mIG5vZGUubmFtZXNwYWNlQWxpYXNlcyB8fCBbXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXNlc0xpc3QuZWRpdGFibGVMaXN0KFwiYWRkSXRlbVwiLCBhbGlhcyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gQnV0dG9uXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAkKFwiI2V4dHJhY3QtYWxpYXNlc1wiKS5vbihcImNsaWNrXCIsICgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBleHRyYWN0RW5kcG9pbnREYXRhKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlQWxpYXNlczogbm9kZS5uYW1lc3BhY2VBbGlhc2VzIHx8IFtdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaChcIi9vcGN1YS1mb3Itbm9kZS1yZWQvZXh0cmFjdC1uYW1lc3BhY2UtYWxpYXNlc1wiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkob3B0aW9ucyksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluZm8gPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5hbWVzcGFjZUFsaWFzZXMgPSBpbmZvLm5hbWVzcGFjZUFsaWFzZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIm5hbWVzcGFjZUFsaWFzZXNcIiwgbmFtZXNwYWNlQWxpYXNlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShuYW1lc3BhY2VBbGlhc2VzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUubmFtZXNwYWNlQWxpYXNlcyA9IG5hbWVzcGFjZUFsaWFzZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbE5hbWVzcGFjZUFsaWFzZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICBub2RlLm5hbWVzcGFjZUFsaWFzZXMgPSBub2RlLm5hbWVzcGFjZUFsaWFzZXMgfHwgW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzOiBcInVhXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlVXJpOiBcImh0dHA6Ly9vcGNmb3VuZGF0aW9uLm9yZy9VQS9cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1dlbGxLbm93bjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmaWxsTmFtZXNwYWNlQWxpYXNlcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
|
7
|
+
function _0x4370(_0x49d73f,_0x218962){const _0x5aac7c=_0x5aac();return _0x4370=function(_0x4370c9,_0x4d96be){_0x4370c9=_0x4370c9-0xc7;let _0x247ac4=_0x5aac7c[_0x4370c9];return _0x247ac4;},_0x4370(_0x49d73f,_0x218962);}function _0x5aac(){const _0x51c638=['http://opcfoundation.org/DI/','#node-input-maxChunkCount','empty','1233zCBWrb','<a\x20href=\x22https://www.sterfive.com/opcua/for-node-red\x22\x20target=”_blank”>Sterfive\x27s\x20website\x20</a>','connection','#node-config-input-endpoint','password','maxNotificationsPerPublish','invalid\x20securityMode\x20','\x20-\x20','150px','invalid\x20userIdentityType\x20','show','#toggleAdvancedSection','length','json','securityMode','/opcua-for-node-red/test-connection','Your\x20license\x20has\x20expired.\x20Please\x20contact\x20our\x20support\x20team\x20or\x20visit\x20our\x20website\x20to\x20renew\x20your\x20license\x20and\x20regain\x20access\x20to\x20our\x20services.','/opcua-for-node-red/config','Licence\x20has\x20expired','Basic256Sha256','#node-input-certificate','#goto-config','#test-connection','subscribe-button','node-input-alias-namespace-uri','SignAndEncrypt','pk_live_51HsE1sBCNccbzsVzt7zaq2uv20pkryWllAzvZgZd5AhwFI9A3qBIeOJvJwQF08lDoLpFqLjwmyA79wnPnYLsvKjt009f00VpCW','<a\x20href=\x22mailto:support@sterfive.com\x22\x20subject=\x22@opcua/for-node-red\x20support\x20request\x22>mailto:support@sterfive.com</a>','6977106ZaKcph','Subscribe','1925nsdlTs','OpcUa-Endpoint2','12QLOXlp','#editable-list-aliases-container','append','daysLeft','FREEWARE','apply','parameters','/opcua-for-node-red','licenceInfo','click','src','.section-userIdentityType-Certificate','<stripe-pricing-table/>','Sign','<p>','Certificate','.section-securityPolicy','each','alias','status','next','error','-messages','AUTHORIZED','FAILED','find','3621830LOeXlJ','#extract-aliases','<input/>','script','29238IhapdY','260px','\x20or\x20visit\x20our\x20website\x20to\x20renew\x20your\x20license\x20and\x20regain\x20access\x20to\x20our\x20services.̀','onPremiseServerHost','POST','.input-publishingEnabled','style','tabs','resize','node-input-alias-alias','typedInput','.input-requestedMaxKeepAliveCount','EXPIRED','Testing\x20Connection\x20...','\x20to\x20acquire\x20a\x20license.','Anonymous','Connection','requestedLifetimeCount','endpoint-tab-subscriptions','25%','val','text','#section-TransportSettings','#checkCertificate','prop','Please\x20contact\x20','readonly','#node-config-input-useTransport','#node-input-useTransport','addClass','name','node-config-endpoint-tabs','appendTo','.red-ui-editableList-item-remove','attr','#section-Advanced','#node-config-input-password','log','SuppressedError','push','replace','toString','catch','#licenceWidget','fa\x20fa-exclamation-circle','#node-config-input-securityPolicy','done','subscriptions','licence-widget-msg','#node-config-input-securityMode','.node-input-alias-alias','-success','application/json','result','checked','#node-config-input-userName','70%','priority','Slow\x20Subscription','internal\x20error\x20','disabled','fa\x20fa-calendar-time','auto','isArray','config','userIdentityType','\x20days.\x0aBuy\x20online\x20and\x20visit\x20','requestedPublishingInterval','licence-widget-details','#node-config-endpoint-tabs-content','http://opcfoundation.org/UA/','change','isDefault','extra','endpoint-tab-connection','opcua\x20endpoint','clone','Your\x20licence\x20is\x20valid.','removeClass','children','html','32667eONcMp','addItem','hide','map','element','btn\x20btn-primary','1071275MmKCAk','<i>','.input-name','#node-config-input-name','#node-config-input-userCertificate','namespaceUri','licenceType','<div\x20class=\x22alias-entry\x22>','Fast\x20Subscription','Your\x20license\x20is\x20currently\x20invalid.','pricing-table-id','/licenceInfo','1454EJfihT','#subscriptions-container','None','opc.tcp://opcuademo.sterfive.com:26543/UA/SampleServer','items','licence-widget','.input-requestedPublishingInterval','stringify','Default\x20Subscription','css','.input-isDefault','create','protocol','async','addTab','licence-widget-icon','type','baseUrl',':checked','requestedMaxKeepAliveCount','registerType','assign','class','.input-requestedLifetimeCount','join','2620664yNBdaP','then','margin-top:\x2020px;','.input-maxNotificationsPerPublish','namespaceAliases','/opcua-for-node-red/client_certificate.json','<span>','sterfive.licenceWidget','<br>','UserName','Subscriptions','/opcua-for-node-red/extract-namespace-aliases','#node-config-input-userIdentityType','width','#subscription-template','-pending','#node-config-input-pkiName','opc.tcp:','height:\x20100%;max-height:\x20100%;','Freeware\x20licence','suppressed','throw','editableList','fa\x20fa-check-circle','message','<button/>','.input-priority'];_0x5aac=function(){return _0x51c638;};return _0x5aac();}(function(_0x5f4f3e,_0x3788b4){const _0x1e49df=_0x4370,_0x5290be=_0x5f4f3e();while(!![]){try{const _0x1cc829=-parseInt(_0x1e49df(0xc7))/0x1+parseInt(_0x1e49df(0xd9))/0x2*(-parseInt(_0x1e49df(0x110))/0x3)+parseInt(_0x1e49df(0x130))/0x4*(parseInt(_0x1e49df(0xcd))/0x5)+parseInt(_0x1e49df(0x14e))/0x6*(parseInt(_0x1e49df(0x12e))/0x7)+parseInt(_0x1e49df(0xf2))/0x8+-parseInt(_0x1e49df(0x12c))/0x9+-parseInt(_0x1e49df(0x14a))/0xa;if(_0x1cc829===_0x3788b4)break;else _0x5290be['push'](_0x5290be['shift']());}catch(_0x4ae939){_0x5290be['push'](_0x5290be['shift']());}}}(_0x5aac,0xcd746),(function(){'use strict';const _0x288624=_0x4370;function _0x359e66(_0x6d262,_0x2b75ae,_0x3d62b4,_0x32228b){function _0x5ac6a2(_0x285ed5){return _0x285ed5 instanceof _0x3d62b4?_0x285ed5:new _0x3d62b4(function(_0x353f46){_0x353f46(_0x285ed5);});}return new(_0x3d62b4||(_0x3d62b4=Promise))(function(_0x16193e,_0x14bdc7){const _0x207ff7=_0x4370;function _0x290e5f(_0x385b42){try{_0x29f4b0(_0x32228b['next'](_0x385b42));}catch(_0x26a380){_0x14bdc7(_0x26a380);}}function _0x1b1146(_0x2258b2){const _0x293b02=_0x4370;try{_0x29f4b0(_0x32228b[_0x293b02(0x107)](_0x2258b2));}catch(_0x53b8b3){_0x14bdc7(_0x53b8b3);}}function _0x29f4b0(_0x47c752){const _0x2e6be9=_0x4370;_0x47c752[_0x2e6be9(0x17c)]?_0x16193e(_0x47c752['value']):_0x5ac6a2(_0x47c752['value'])[_0x2e6be9(0xf3)](_0x290e5f,_0x1b1146);}_0x29f4b0((_0x32228b=_0x32228b[_0x207ff7(0x135)](_0x6d262,_0x2b75ae||[]))[_0x207ff7(0x144)]());});}typeof SuppressedError==='function'?SuppressedError:function(_0x7f0a7c,_0xee1ef,_0xf98a2d){const _0x23d90d=_0x4370;var _0x2bd71b=new Error(_0xf98a2d);return _0x2bd71b[_0x23d90d(0x16c)]=_0x23d90d(0x174),_0x2bd71b[_0x23d90d(0x145)]=_0x7f0a7c,_0x2bd71b[_0x23d90d(0x106)]=_0xee1ef,_0x2bd71b;};function _0x26bf58(_0x316c45,_0x829eca,_0x384722,_0x4c093b){const _0x51e72d=_0x4370,_0x5bddd8=$('#'+_0x316c45+_0x51e72d(0x181)),_0x2424e4=$('#'+_0x316c45+'-failure'),_0x12a305=$('#'+_0x316c45+_0x51e72d(0x101)),_0x364067=$('#'+_0x316c45+_0x51e72d(0x146));let _0x39fc25=![];_0x5bddd8[_0x51e72d(0xc9)](),_0x2424e4[_0x51e72d(0xc9)](),_0x12a305[_0x51e72d(0xc9)](),_0x829eca['on'](_0x51e72d(0x139),()=>{const _0x228a34=_0x51e72d;if(_0x39fc25)return;_0x39fc25=!![],_0x12a305['removeClass'](_0x228a34(0xc9)),_0x12a305[_0x228a34(0x19e)](_0x228a34(0x15b)),_0x5bddd8['addClass'](_0x228a34(0xc9)),_0x2424e4[_0x228a34(0x16b)](_0x228a34(0xc9)),_0x364067[_0x228a34(0x19e)]('');const {body:_0x5ef3db,url:_0x1d901d}=_0x384722();fetch(_0x1d901d,{'method':_0x228a34(0x152),'headers':{'Content-Type':'application/json'},'body':JSON[_0x228a34(0xe0)](_0x5ef3db)})[_0x228a34(0xf3)](_0xd9c5e6=>_0xd9c5e6['json']())[_0x228a34(0xf3)](_0x32baf5=>{const _0x28ac91=_0x228a34;_0x39fc25=![],_0x12a305[_0x28ac91(0xc9)](),console[_0x28ac91(0x173)](JSON[_0x28ac91(0xe0)](_0x32baf5,null,'\x20'));if(_0x32baf5['result']==='ok')_0x5bddd8[_0x28ac91(0x19c)](_0x28ac91(0xc9)),_0x2424e4[_0x28ac91(0x16b)]('hide'),_0x364067['html'](_0x32baf5[_0x28ac91(0x10a)][_0x28ac91(0x176)]('\x0a',_0x28ac91(0xfa)));else{const _0x9d7467=_0x3a0fd4=>!_0x3a0fd4?'':_0x3a0fd4['split']('\x0a')[_0x28ac91(0xca)](_0x74797=>_0x28ac91(0x13e)+_0x74797+'</p>')[_0x28ac91(0xf1)]('\x0a'),_0x4b86c1=_0x2932cc=>Array['isArray'](_0x2932cc)?_0x2932cc[_0x28ac91(0xca)](_0x9d7467)[_0x28ac91(0xf1)]('\x0a'):_0x9d7467(_0x2932cc);_0x5bddd8['addClass'](_0x28ac91(0xc9)),_0x2424e4['removeClass']('hide'),_0x364067[_0x28ac91(0x19e)](_0x4b86c1(_0x32baf5[_0x28ac91(0x10a)])+_0x4b86c1(_0x32baf5[_0x28ac91(0x197)])),_0x4c093b(new Error(_0x32baf5[_0x28ac91(0x183)]),_0x32baf5);}})[_0x228a34(0x178)](_0x4c5d73=>{const _0x5a4e4f=_0x228a34;_0x39fc25=![],_0x12a305[_0x5a4e4f(0x16b)](_0x5a4e4f(0xc9)),_0x5bddd8[_0x5a4e4f(0x16b)]('hide'),_0x2424e4[_0x5a4e4f(0x19c)]('hide'),_0x364067[_0x5a4e4f(0x19e)](_0x5a4e4f(0x189)+_0x4c5d73[_0x5a4e4f(0x10a)]),console[_0x5a4e4f(0x173)]('err',_0x4c5d73);});});}const _0x7942d2='prctbl_1OJt49BCNccbzsVzkaANOgFL',_0x5ed1f8=_0x288624(0x12a);function _0xec2e39(){return _0x359e66(this,arguments,void 0x0,function*(_0x211539=''){const _0x30ab6f=_0x4370,_0x12eab8=_0x211539+_0x30ab6f(0x137),_0x1a1f7f=_0x12eab8+_0x30ab6f(0xd8),_0x4d126e=yield fetch(_0x1a1f7f,{'method':_0x30ab6f(0x152),'headers':{'Content-Type':_0x30ab6f(0x182)}}),_0x47f55f=new Date()['toISOString']();if(_0x4d126e[_0x30ab6f(0x143)]!==0xc8)return console['log']('fetching\x20failed\x20with\x20error',_0x4d126e['status'],_0x4d126e['statusText']),{'status':_0x30ab6f(0x148),'type':_0x30ab6f(0x134),'licenceInfo':{'expiryDate':_0x47f55f}};const _0x2e15c4=yield _0x4d126e[_0x30ab6f(0x11d)]();return _0x2e15c4;});}const _0x319c11=()=>{const _0x529297=_0x288624;$['widget'](_0x529297(0xf9),{'options':{'baseUrl':''},'_create'(){const _0x8cf8cc=_0x529297,_0x3dfc3f=this,_0x3630c8=_0x8cf8cc(0x12b),_0x2c7c68=_0x8cf8cc(0x111);_0xec2e39(_0x3dfc3f[_0x8cf8cc(0xea)])[_0x8cf8cc(0xf3)](_0x25d81c=>{const _0x3ab86f=_0x8cf8cc;let _0x40e3e6='',_0x3f4a41='',_0x3acee7='';const _0x316e35=_0x25d81c[_0x3ab86f(0x143)],_0x4aa06a=_0x25d81c[_0x3ab86f(0x133)];switch(_0x316e35){case _0x3ab86f(0x147):_0x40e3e6=_0x3ab86f(0x109);switch(_0x25d81c[_0x3ab86f(0xe9)]){case'TRIAL':{_0x3f4a41='Trial\x20licence',_0x3acee7='The\x20Trial\x20will\x20expire\x20in\x20'+_0x4aa06a+_0x3ab86f(0x190)+_0x2c7c68+_0x3ab86f(0x15c);break;}case'PROFESSIONAL':_0x3f4a41=_0x3ab86f(0x19b);_0x4aa06a<0x5a&&_0x4aa06a>=0x0&&(_0x3f4a41+='\x20It\x20will\x20expire\x20in\x20'+_0x4aa06a+'\x20days.');_0x3acee7=_0x25d81c[_0x3ab86f(0x138)][_0x3ab86f(0xd3)]+_0x3ab86f(0x117)+(_0x25d81c[_0x3ab86f(0x138)][_0x3ab86f(0x151)]||'');break;case _0x3ab86f(0x134):_0x3f4a41=_0x3ab86f(0x105),_0x3acee7='This\x20is\x20a\x20freeware\x20licence,\x20and\x20have\x20some\x20limitations.\x0a'+_0x2c7c68+'\x20for\x20more\x20information.';break;}break;case'EXPIRED':_0x40e3e6=_0x3ab86f(0x18b),_0x3f4a41=_0x3ab86f(0x122),_0x3acee7=_0x3ab86f(0x120);break;case _0x3ab86f(0x148):default:_0x40e3e6=_0x3ab86f(0x17a),_0x3f4a41=_0x3ab86f(0xd6),_0x3acee7=_0x3ab86f(0x167)+_0x3630c8+_0x3ab86f(0x150);break;}this[_0x3ab86f(0xcb)][_0x3ab86f(0x16b)](_0x3ab86f(0xde)),this[_0x3ab86f(0xcb)][_0x3ab86f(0x16b)]('licence-widget-'+_0x316e35),this[_0x3ab86f(0xcb)][_0x3ab86f(0x132)]($(_0x3ab86f(0xf8))[_0x3ab86f(0x16b)](_0x3ab86f(0xe8))[_0x3ab86f(0x132)]($(_0x3ab86f(0xce))[_0x3ab86f(0x16b)](_0x40e3e6))),this['element'][_0x3ab86f(0x132)]($(_0x3ab86f(0xf8))[_0x3ab86f(0x16b)](_0x3ab86f(0x17e))[_0x3ab86f(0x163)](_0x3f4a41)),this[_0x3ab86f(0xcb)]['append']($(_0x3ab86f(0xfa))),this['element'][_0x3ab86f(0x132)]($('<span>')['addClass'](_0x3ab86f(0x192))[_0x3ab86f(0x132)](_0x3acee7));if(_0x316e35===_0x3ab86f(0x15a)||_0x316e35===_0x3ab86f(0x148)||_0x25d81c[_0x3ab86f(0xe9)]===_0x3ab86f(0x134)||_0x25d81c[_0x3ab86f(0xe9)]==='TRIAL'){const _0x9b421a=$(_0x3ab86f(0x10b));_0x9b421a[_0x3ab86f(0x170)]('id',_0x3ab86f(0x127)),_0x9b421a[_0x3ab86f(0x170)](_0x3ab86f(0xef),_0x3ab86f(0xcc)),_0x9b421a[_0x3ab86f(0x170)]('style',_0x3ab86f(0xf4)),_0x9b421a[_0x3ab86f(0x163)](_0x3ab86f(0x12d)),this[_0x3ab86f(0xcb)][_0x3ab86f(0x132)](_0x9b421a);const _0x1d7427=document['createElement'](_0x3ab86f(0x14d));_0x1d7427[_0x3ab86f(0x13a)]='https://js.stripe.com/v3/pricing-table.js',_0x1d7427[_0x3ab86f(0xe6)]=!![],$('head')[_0x3ab86f(0x132)](_0x1d7427);const _0x225902=$(_0x3ab86f(0x13c));_0x225902[_0x3ab86f(0x170)](_0x3ab86f(0xd7),_0x7942d2),_0x225902[_0x3ab86f(0x170)]('publishable-key',_0x5ed1f8),_0x225902[_0x3ab86f(0x170)]('style',_0x3ab86f(0x104)),_0x225902[_0x3ab86f(0xc9)](),this[_0x3ab86f(0xcb)][_0x3ab86f(0x132)](_0x225902),_0x9b421a['on'](_0x3ab86f(0x139),()=>{const _0x1aaf47=_0x3ab86f;_0x225902[_0x1aaf47(0x11a)](),_0x9b421a[_0x1aaf47(0xc9)](),this[_0x1aaf47(0xcb)][_0x1aaf47(0x170)](_0x1aaf47(0x154),'height:\x20100%\x20!important;');});}})[_0x8cf8cc(0x178)](_0x524e1c=>{const _0x5f3fb1=_0x8cf8cc;console[_0x5f3fb1(0x173)](_0x524e1c);});}});};_0x319c11();function _0x2898cb(_0xc707e5){const _0x2303c4=_0x288624;let _0x3e7806;try{_0x3e7806=new URL(_0xc707e5);}catch(_0x2127bf){return![];}return _0x3e7806[_0x2303c4(0xe5)]===_0x2303c4(0x103);}const _0x217bcd={'publishingEnabled':!![],'requestedLifetimeCount':0x3e8,'requestedMaxKeepAliveCount':0xa,'requestedPublishingInterval':0x3e8,'maxNotificationsPerPublish':0x0,'priority':0x64};RED['nodes'][_0x288624(0xed)](_0x288624(0x12f),{'category':_0x288624(0x18e),'paletteLabel':_0x288624(0x199),'defaults':{'name':{'value':''},'endpoint':{'value':_0x288624(0xdc),'required':!![],'validate':_0x2898cb},'securityMode':{'value':_0x288624(0xdb)},'securityPolicy':{'value':_0x288624(0xdb),'validate':_0x2a6db1=>{if(!_0x2a6db1)return![];return!![];}},'userIdentityType':{'value':_0x288624(0x15d)},'pkiName':{'value':'','validate':_0x3309e0=>!_0x3309e0||_0x3309e0['match'](/[0-9a-zA-Z]*/)?!![]:![]},'useTransport':{'value':![],'required':![]},'maxChunkCount':{'value':0x1,'required':![]},'maxMessageSize':{'value':0x2000,'required':![]},'receiveBufferSize':{'value':0x2000,'required':![]},'sendBufferSize':{'value':0x2000,'required':![]},'subscriptions':{'value':[{'id':'s1','name':_0x288624(0xe1),'isDefault':!![],'parameters':Object[_0x288624(0xee)]({},_0x217bcd)},{'id':'s2','name':_0x288624(0x188),'isDefault':![],'parameters':{'publishingEnabled':!![],'requestedLifetimeCount':0x64,'requestedMaxKeepAliveCount':0x3,'requestedPublishingInterval':0x1388,'maxNotificationsPerPublish':0x64,'priority':0xa}},{'id':'s3','name':_0x288624(0xd5),'isDefault':![],'parameters':{'publishingEnabled':!![],'requestedLifetimeCount':0xfa0,'requestedMaxKeepAliveCount':0x32,'requestedPublishingInterval':0xfa,'maxNotificationsPerPublish':0x64,'priority':0xc8}}],'required':![]},'namespaceAliases':{'value':[{'alias':'ua','namespaceUri':_0x288624(0x194),'isWellKnown':!![],'isDefault':!![]},{'alias':'di','namespaceUri':_0x288624(0x10d),'isWellKnown':!![],'isDefault':!![]}],'required':![]}},'credentials':{'userName':{'type':_0x288624(0x163)},'password':{'type':_0x288624(0x114)},'userCertificate':{'type':_0x288624(0x163)},'userPrivatekey':{'type':_0x288624(0x114)}},'label':function(){const _0x3522a8=_0x288624;return this[_0x3522a8(0x16c)]||this['endpoint']||'invalid\x20endpoint';},'oneditsave'(){const _0x3aec8a=_0x288624,_0x48b6f9=$(_0x3aec8a(0x17b)),_0x3c329b=$('#node-config-input-securityMode');_0x48b6f9[_0x3aec8a(0x162)]()==='None'&&_0x3c329b[_0x3aec8a(0x163)](_0x3aec8a(0xdb));{const _0x27601f=$(_0x3aec8a(0xda))[_0x3aec8a(0x108)](_0x3aec8a(0xdd)),_0x336b6c=[],_0x3539dd=_0x110037=>_0x110037;_0x27601f[_0x3aec8a(0x141)](function(_0x491dfe,_0x1b4afa){const _0x4e3af0=_0x3aec8a,_0x4b6c26=$(this),_0x2e055f={'id':'s'+_0x491dfe,'name':_0x4b6c26[_0x4e3af0(0x149)]('.input-name')[_0x4e3af0(0x162)](),'isDefault':!!_0x4b6c26[_0x4e3af0(0x149)](_0x4e3af0(0xe3))['val'](),'parameters':{'publishingEnabled':!!_0x4b6c26[_0x4e3af0(0x149)](_0x4e3af0(0x153))['is'](_0x4e3af0(0xeb)),'requestedLifetimeCount':_0x3539dd(_0x4b6c26[_0x4e3af0(0x149)]('.input-requestedLifetimeCount')[_0x4e3af0(0x162)]()),'requestedMaxKeepAliveCount':_0x3539dd(_0x4b6c26['find'](_0x4e3af0(0x159))[_0x4e3af0(0x162)]()),'requestedPublishingInterval':_0x3539dd(_0x4b6c26['find']('.input-requestedPublishingInterval')['val']()),'maxNotificationsPerPublish':_0x3539dd(_0x4b6c26[_0x4e3af0(0x149)](_0x4e3af0(0xf5))['val']()),'priority':_0x3539dd(_0x4b6c26['find'](_0x4e3af0(0x10c))['val']())}};_0x2e055f[_0x4e3af0(0x136)]['publishingEnabled']=!![],_0x2e055f[_0x4e3af0(0x196)]&&_0x2e055f['id']==='s0'&&(_0x2e055f[_0x4e3af0(0x16c)]=_0x4e3af0(0xe1)),_0x336b6c[_0x4e3af0(0x175)](_0x2e055f);}),this[_0x3aec8a(0x17d)]=_0x336b6c;}{const _0x4cd1be=$('#editable-list-aliases-container')[_0x3aec8a(0x108)](_0x3aec8a(0xdd)),_0x393962=[];_0x4cd1be[_0x3aec8a(0x141)](function(_0x5a30e2,_0x463dbe){const _0x4cdf30=_0x3aec8a,_0x52aab6=$(this),_0x38526d={'namespaceUri':_0x52aab6[_0x4cdf30(0x149)]('.node-input-alias-namespace-uri')[_0x4cdf30(0x162)](),'alias':_0x52aab6[_0x4cdf30(0x149)](_0x4cdf30(0x180))[_0x4cdf30(0x162)]()};_0x393962[_0x4cdf30(0x175)](_0x38526d);}),this[_0x3aec8a(0xf6)]=_0x393962;}},'oneditprepare'(){const _0x179b0d=_0x288624,_0x1e0e8b=this,_0x5745c0=RED[_0x179b0d(0x155)][_0x179b0d(0xe4)]({'id':_0x179b0d(0x16d),'onchange':function(_0x1023ad){const _0x21dfc4=_0x179b0d;$(_0x21dfc4(0x193))[_0x21dfc4(0x19d)]()[_0x21dfc4(0xc9)](),$('#'+_0x1023ad['id'])[_0x21dfc4(0x11a)]();}});_0x5745c0[_0x179b0d(0xe7)]({'id':_0x179b0d(0x198),'label':_0x179b0d(0x15e)},0x0),_0x5745c0[_0x179b0d(0xe7)]({'id':_0x179b0d(0x160),'label':_0x179b0d(0xfc)},0x1),_0x5745c0[_0x179b0d(0xe7)]({'id':'endpoint-tab-namespace-aliases','label':'Namespace\x20Aliases'},0x2),setTimeout(function(){const _0x24c690=_0x179b0d;_0x5745c0[_0x24c690(0x156)]();},0x0);{const _0x170457=_0x463cae=>{const _0x566f1a=_0x179b0d;switch(_0x463cae){case null:case undefined:case'':case'None':$('.section-securityPolicy')[_0x566f1a(0xc9)]();break;case _0x566f1a(0x13d):case _0x566f1a(0x129):{const _0x132714=$(_0x566f1a(0x140));(_0x132714[_0x566f1a(0x162)]()===_0x566f1a(0xdb)||_0x132714[_0x566f1a(0x162)]()==='')&&_0x132714['val'](_0x566f1a(0x123)),$(_0x566f1a(0x140))['show']();}break;default:console[_0x566f1a(0x173)](_0x566f1a(0x116)+_0x463cae);}};_0x170457(_0x1e0e8b[_0x179b0d(0x11e)]);const _0x3133e2=$(_0x179b0d(0x17f));_0x3133e2['on'](_0x179b0d(0x195),()=>{const _0x500a05=_0x3133e2['val']();_0x170457(_0x500a05);});}const _0x116d05=$(_0x179b0d(0x179));_0x116d05['licenceWidget']({'baseUrl':''});{const _0x2af6f0=$('.section-userIdentityType-UserName'),_0x5120a1=$(_0x179b0d(0x13b)),_0x1e93d0=_0x34b259=>{const _0x18770e=_0x179b0d;_0x34b259=_0x34b259||_0x18770e(0x15d);switch(_0x34b259){case _0x18770e(0x15d):$(_0x18770e(0x185))[_0x18770e(0x162)](''),$(_0x18770e(0x172))[_0x18770e(0x162)](''),_0x2af6f0[_0x18770e(0xc9)](),_0x5120a1[_0x18770e(0xc9)]();break;case _0x18770e(0xfb):_0x2af6f0[_0x18770e(0x11a)](),_0x5120a1[_0x18770e(0xc9)]();break;case _0x18770e(0x13f):$(_0x18770e(0x185))[_0x18770e(0x162)](''),$(_0x18770e(0x172))[_0x18770e(0x162)](''),_0x5120a1[_0x18770e(0x11a)](),_0x2af6f0[_0x18770e(0xc9)]();break;default:console['log'](_0x18770e(0x119)+_0x34b259);}};_0x1e93d0(_0x1e0e8b[_0x179b0d(0x18f)]);const _0x1e311e=$(_0x179b0d(0xfe));_0x1e311e['on'](_0x179b0d(0x195),()=>{const _0x58d7ae=_0x179b0d,_0x3f9353=_0x1e311e[_0x58d7ae(0x162)]();_0x1e93d0(_0x3f9353);});}{$(_0x179b0d(0x171))[_0x179b0d(0xc9)](),$(_0x179b0d(0x11b))[_0x179b0d(0x166)](_0x179b0d(0x184),![]),$('#toggleAdvancedSection')['on'](_0x179b0d(0x195),function(){const _0x55ed20=_0x179b0d;$(this)[_0x55ed20(0x166)]('checked')?$('#section-Advanced')[_0x55ed20(0x11a)]():$(_0x55ed20(0x171))[_0x55ed20(0xc9)]();});}const _0x231844=$(_0x179b0d(0x169))['prop']('checked');_0x231844?$(_0x179b0d(0x164))[_0x179b0d(0x11a)]():$(_0x179b0d(0x164))['hide']();$(_0x179b0d(0x169))['on'](_0x179b0d(0x195),function(){const _0x412d34=_0x179b0d;$(this)[_0x412d34(0x166)](_0x412d34(0x184))?$('#section-TransportSettings')['show']():$(_0x412d34(0x164))[_0x412d34(0xc9)]();});{$(_0x179b0d(0x165))['on']('click',()=>_0x359e66(this,void 0x0,void 0x0,function*(){const _0x38aaa7=_0x179b0d,_0x59f72a=yield fetch(_0x38aaa7(0xf7)),_0x36695d=yield _0x59f72a['json'](),_0x42b792=JSON[_0x38aaa7(0xe0)](_0x36695d,null,'\x20');alert(_0x42b792);}));}$(_0x179b0d(0x125))['on'](_0x179b0d(0x139),()=>_0x359e66(this,void 0x0,void 0x0,function*(){const _0x1f66c3=_0x179b0d;window['open'](_0x1f66c3(0x121),'_blank');}));function _0xf4c676(){const _0x2d3230=_0x179b0d;var _0x29448c;return{'id':_0x1e0e8b['id'],'endpoint':$(_0x2d3230(0x113))[_0x2d3230(0x162)](),'name':$(_0x2d3230(0xd0))[_0x2d3230(0x162)](),'pkiName':(_0x29448c=$(_0x2d3230(0x102)))===null||_0x29448c===void 0x0?void 0x0:_0x29448c[_0x2d3230(0x162)](),'securityMode':$('#node-config-input-securityMode')[_0x2d3230(0x162)](),'securityPolicy':$(_0x2d3230(0x17b))[_0x2d3230(0x162)](),'userIdentityType':$('#node-config-input-userIdentityType')[_0x2d3230(0x162)](),'userName':$(_0x2d3230(0x185))[_0x2d3230(0x162)](),'password':$(_0x2d3230(0x172))[_0x2d3230(0x162)](),'userCertificate':$(_0x2d3230(0xd1))[_0x2d3230(0x162)](),'userPrivatekey':$('#node-config-input-userPrivatekey')[_0x2d3230(0x162)](),'certificate':$(_0x2d3230(0x124))[_0x2d3230(0x162)](),'useTransport':$(_0x2d3230(0x16a))[_0x2d3230(0x166)](_0x2d3230(0x184)),'maxChunkCount':$(_0x2d3230(0x10e))[_0x2d3230(0x162)](),'maxMessageSize':$('#node-input-maxMessageSize')[_0x2d3230(0x162)](),'receiveBufferSize':$('#node-input-receiveBufferSize')[_0x2d3230(0x162)](),'sendBufferSize':$('#node-input-sendBufferSize')[_0x2d3230(0x162)]()};}{_0x26bf58(_0x179b0d(0x112),$(_0x179b0d(0x126)),()=>({'url':_0x179b0d(0x11f),'body':{'endpointNode':_0xf4c676()}}),()=>{});}{const _0x233691=(_0x4857c0,_0x4c2fe0)=>{const _0x12a79b=_0x179b0d;var _0xa85494=_0x4857c0[_0x12a79b(0xff)]()||0x64;_0x4857c0[_0x12a79b(0x149)]('label')[_0x12a79b(0x158)](_0x12a79b(0xff),_0xa85494-0xf);},_0x5d34ba=$(_0x179b0d(0xda))[_0x179b0d(0xe2)]({'min-height':'150px','min-width':_0x179b0d(0x14f)})['editableList']({'addItem':(_0x54ae0a,_0x2993a0,_0x81899b)=>{const _0x25d807=_0x179b0d,_0x501a7a=_0x81899b,_0x418ae1=$(_0x25d807(0x100))[_0x25d807(0x19a)]()['appendTo'](_0x54ae0a);_0x418ae1['removeAttr']('id')[_0x25d807(0x19c)](_0x25d807(0xc9))[_0x25d807(0x19c)]('template')[_0x25d807(0x170)]('data-i',_0x2993a0),_0x418ae1['find']('.input-name')['val'](_0x501a7a[_0x25d807(0x16c)]),_0x418ae1['find'](_0x25d807(0xdf))['val'](_0x501a7a[_0x25d807(0x136)][_0x25d807(0x191)]),_0x418ae1[_0x25d807(0x149)](_0x25d807(0x159))[_0x25d807(0x162)](_0x501a7a[_0x25d807(0x136)][_0x25d807(0xec)]),_0x418ae1[_0x25d807(0x149)](_0x25d807(0xf0))[_0x25d807(0x162)](_0x501a7a[_0x25d807(0x136)][_0x25d807(0x15f)]),_0x418ae1['find'](_0x25d807(0xf5))['val'](_0x501a7a[_0x25d807(0x136)][_0x25d807(0x115)]||0x0),_0x418ae1['find']('.input-priority')[_0x25d807(0x162)](_0x501a7a[_0x25d807(0x136)][_0x25d807(0x187)]||0x0),_0x418ae1[_0x25d807(0x149)]('.subscription-id')[_0x25d807(0x163)](''+_0x2993a0),_0x501a7a[_0x25d807(0x196)]&&_0x418ae1[_0x25d807(0x149)](_0x25d807(0xcf))[_0x25d807(0x166)](_0x25d807(0x168),!![]),_0x418ae1['find'](_0x25d807(0xe3))[_0x25d807(0x166)](_0x25d807(0x184),_0x501a7a[_0x25d807(0x196)]),_0x501a7a[_0x25d807(0x196)]&&(_0x54ae0a[_0x25d807(0x149)](_0x25d807(0x16f))[_0x25d807(0x16b)](_0x25d807(0xc9)),setTimeout(()=>_0x418ae1['find'](_0x25d807(0xe3))[_0x25d807(0x166)](_0x25d807(0x18a),!![]),0xa));},'removable':!![],'resizeItem':_0x233691}),_0x4cb434=()=>{const _0x1752a1=_0x179b0d,_0x3802a1=_0x1e0e8b['subscriptions']||[];_0x3802a1[_0x1752a1(0x11c)]===0x0&&_0x3802a1[_0x1752a1(0x175)]({'id':'s1','name':'Default\x20Subscription','isDefault':!![],'parameters':Object[_0x1752a1(0xee)]({},_0x217bcd)});_0x5d34ba[_0x1752a1(0x108)]('empty');for(const _0x1095f2 of _0x3802a1){_0x5d34ba['editableList'](_0x1752a1(0xc8),_0x1095f2);}};_0x4cb434();}{function _0x1e4e0d(_0x1ecd7b,_0x233936,_0x1ca297){const _0x3a127d=_0x179b0d,_0x17cb58=_0x1ca297,_0x46cc39=$(_0x3a127d(0xd4))[_0x3a127d(0x16e)](_0x1ecd7b);$('<input/>',{'class':'node-input-alias-index','type':_0x3a127d(0x163)})[_0x3a127d(0x162)](_0x1ca297[_0x3a127d(0x142)]||'')[_0x3a127d(0xe2)]({'width':'5%'})[_0x3a127d(0x16e)](_0x46cc39)[_0x3a127d(0x162)](_0x233936[_0x3a127d(0x177)]()),$(_0x3a127d(0x14c),{'class':_0x3a127d(0x157),'type':_0x3a127d(0x163)})[_0x3a127d(0x162)](_0x1ca297['alias']||'')[_0x3a127d(0xe2)]({'width':_0x3a127d(0x161)})[_0x3a127d(0x16e)](_0x46cc39)['val'](_0x17cb58['alias']),$('<input/>',{'class':_0x3a127d(0x128),'type':_0x3a127d(0x163)})[_0x3a127d(0x162)](_0x1ca297[_0x3a127d(0xd2)]||'')['css']({'width':_0x3a127d(0x186)})[_0x3a127d(0x16e)](_0x46cc39)['val'](_0x17cb58['namespaceUri']);}const _0x349a92=$(_0x179b0d(0x131))[_0x179b0d(0xe2)]({'min-height':_0x179b0d(0x118),'min-width':_0x179b0d(0x14f)})[_0x179b0d(0x108)]({'addButton':![],'removable':![],'height':_0x179b0d(0x18c),'scrollOnAdd':![],'addItem'(_0x1668f5,_0x184b0b,_0x374698){_0x1e4e0d(_0x1668f5,_0x184b0b,_0x374698);}});function _0x161782(){const _0x11af9f=_0x179b0d;_0x349a92[_0x11af9f(0x108)](_0x11af9f(0xdd)),_0x349a92['editableList'](_0x11af9f(0x10f));for(const _0x4ec852 of _0x1e0e8b[_0x11af9f(0xf6)]||[]){_0x349a92[_0x11af9f(0x108)](_0x11af9f(0xc8),_0x4ec852);}}{$(_0x179b0d(0x14b))['on']('click',()=>_0x359e66(this,void 0x0,void 0x0,function*(){const _0x3c6389=_0x179b0d,_0x50d805={'endpointNode':_0xf4c676(),'namespaceAliases':_0x1e0e8b[_0x3c6389(0xf6)]||[]},_0x27cb8e=yield fetch(_0x3c6389(0xfd),{'method':'POST','headers':{'Content-Type':_0x3c6389(0x182)},'body':JSON[_0x3c6389(0xe0)](_0x50d805)}),_0x1cd281=yield _0x27cb8e[_0x3c6389(0x11d)](),_0x517277=_0x1cd281['namespaceAliases'];console['log'](_0x3c6389(0xf6),_0x517277),Array[_0x3c6389(0x18d)](_0x517277)&&(_0x1e0e8b[_0x3c6389(0xf6)]=_0x517277,_0x161782());})),_0x1e0e8b[_0x179b0d(0xf6)]=_0x1e0e8b[_0x179b0d(0xf6)]||[{'alias':'ua','namespaceUri':_0x179b0d(0x194),'isWellKnown':!![],'isDefault':!![]}];}_0x161782();}}});}()));
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgzNTllNjYiLCJfMHg2ZDI2MiIsIl8weDJiNzVhZSIsIl8weDNkNjJiNCIsIl8weDMyMjI4YiIsIl8weDVhYzZhMiIsIl8weDI4NWVkNSIsIl8weDM1M2Y0NiIsIlByb21pc2UiLCJfMHgxNjE5M2UiLCJfMHgxNGJkYzciLCJfMHgyOTBlNWYiLCJfMHgzODViNDIiLCJfMHgyOWY0YjAiLCJfMHgyNmEzODAiLCJfMHgxYjExNDYiLCJfMHgyMjU4YjIiLCJfMHg1M2I4YjMiLCJfMHg0N2M3NTIiLCJTdXBwcmVzc2VkRXJyb3IiLCJfMHg3ZjBhN2MiLCJfMHhlZTFlZiIsIl8weGY5OGEyZCIsIl8weDJiZDcxYiIsIkVycm9yIiwiXzB4MjZiZjU4IiwiXzB4MzE2YzQ1IiwiXzB4ODI5ZWNhIiwiXzB4Mzg0NzIyIiwiXzB4NGMwOTNiIiwiXzB4NWJkZGQ4IiwiJCIsIl8weDI0MjRlNCIsIl8weDEyYTMwNSIsIl8weDM2NDA2NyIsIl8weDM5ZmMyNSIsImJvZHkiLCJfMHg1ZWYzZGIiLCJ1cmwiLCJfMHgxZDkwMWQiLCJmZXRjaCIsIkpTT04iLCJfMHhkOWM1ZTYiLCJfMHgzMmJhZjUiLCJjb25zb2xlIiwiXzB4OWQ3NDY3IiwiXzB4M2EwZmQ0IiwiXzB4NzQ3OTciLCJfMHg0Yjg2YzEiLCJfMHgyOTMyY2MiLCJBcnJheSIsIl8weDRjNWQ3MyIsIl8weDc5NDJkMiIsIl8weDVlZDFmOCIsIl8weGVjMmUzOSIsImFyZ3VtZW50cyIsIl8weDIxMTUzOSIsIl8weDEyZWFiOCIsIl8weDFhMWY3ZiIsIl8weDRkMTI2ZSIsIl8weDQ3ZjU1ZiIsIkRhdGUiLCJfMHgyZTE1YzQiLCJfMHgzMTljMTEiLCJfMHgzZGZjM2YiLCJfMHgzNjMwYzgiLCJfMHgyYzdjNjgiLCJfMHgyNWQ4MWMiLCJfMHg0MGUzZTYiLCJfMHgzZjRhNDEiLCJfMHgzYWNlZTciLCJfMHgzMTZlMzUiLCJfMHg0YWEwNmEiLCJfMHg5YjQyMWEiLCJfMHgxZDc0MjciLCJkb2N1bWVudCIsIl8weDIyNTkwMiIsIl8weDUyNGUxYyIsIl8weDI4OThjYiIsIl8weGM3MDdlNSIsIl8weDNlNzgwNiIsIlVSTCIsIl8weDIxMjdiZiIsIl8weDIxN2JjZCIsIlJFRCIsIl8weDJhNmRiMSIsIl8weDMzMDllMCIsIk9iamVjdCIsIl8weDQ4YjZmOSIsIl8weDNjMzI5YiIsIl8weDI3NjAxZiIsIl8weDMzNmI2YyIsIl8weDM1MzlkZCIsIl8weDExMDAzNyIsIl8weDQ5MWRmZSIsIl8weDFiNGFmYSIsIl8weDRiNmMyNiIsIl8weDJlMDU1ZiIsIl8weDRjZDFiZSIsIl8weDM5Mzk2MiIsIl8weDVhMzBlMiIsIl8weDQ2M2RiZSIsIl8weDUyYWFiNiIsIl8weDM4NTI2ZCIsIl8weDFlMGU4YiIsIl8weDU3NDVjMCIsIl8weDEwMjNhZCIsInNldFRpbWVvdXQiLCJfMHgxNzA0NTciLCJfMHg0NjNjYWUiLCJ1bmRlZmluZWQiLCJfMHgxMzI3MTQiLCJfMHgzMTMzZTIiLCJfMHg1MDBhMDUiLCJfMHgxMTZkMDUiLCJfMHgyYWY2ZjAiLCJfMHg1MTIwYTEiLCJfMHgxZTkzZDAiLCJfMHgzNGIyNTkiLCJfMHgxZTMxMWUiLCJfMHgzZjkzNTMiLCJfMHgyMzE4NDQiLCJfMHg1OWY3MmEiLCJfMHgzNjY5NWQiLCJfMHg0MmI3OTIiLCJhbGVydCIsIndpbmRvdyIsIl8weGY0YzY3NiIsIl8weDI5NDQ4YyIsIl8weDIzMzY5MSIsIl8weDQ4NTdjMCIsIl8weDRjMmZlMCIsIl8weGE4NTQ5NCIsIl8weDVkMzRiYSIsIl8weDU0YWUwYSIsIl8weDI5OTNhMCIsIl8weDgxODk5YiIsIl8weDUwMWE3YSIsIl8weDQxOGFlMSIsIl8weDRjYjQzNCIsIl8weDM4MDJhMSIsIl8weDEwOTVmMiIsIl8weDFlNGUwZCIsIl8weDFlY2Q3YiIsIl8weDIzMzkzNiIsIl8weDFjYTI5NyIsIl8weDE3Y2I1OCIsIl8weDQ2Y2MzOSIsIl8weDM0OWE5MiIsIl8weDE2NjhmNSIsIl8weDE4NGIwYiIsIl8weDM3NDY5OCIsIl8weDE2MTc4MiIsIl8weDRlYzg1MiIsIl8weDUwZDgwNSIsIl8weDI3Y2I4ZSIsIl8weDFjZDI4MSIsIl8weDUxNzI3NyJdLCJtYXBwaW5ncyI6Imt1S0FBQSxDQUFDLFUsQ0FDRyxhLHdCQW1CQSxTQUFTQSxTQUFULENBQW1CQyxRQUFuQixDQUE0QkMsU0FBNUIsQ0FBd0NDLFNBQXhDLENBQTJDQyxTQUEzQyxDLENBQ0ksU0FBU0MsU0FBVCxDQUFlQyxTQUFmLEMsUUFBK0JBLFNBQUEsWUFBaUJILFNBQWpCLENBQXFCRyxTQUFyQixDQUE2QixJQUFJSCxTQUFKLENBQU0sU0FBVUksU0FBVixDLENBQXFCQSxTQUFBLENBQVFELFNBQVIsQyxFQUEzQixDLFNBQ3JELEdBQUssQ0FBQUgsU0FBQSxFQUFNLENBQUFBLFNBQUEsQ0FBSUssT0FBSixDQUFOLENBQUwsQ0FBeUIsU0FBVUMsU0FBVixDQUFtQkMsU0FBbkIsQyx5QkFDNUIsU0FBU0MsU0FBVCxDQUFtQkMsU0FBbkIsQyxDQUE0QixHLENBQU1DLFNBQUEsQ0FBS1QsU0FBQSxDLE1BQUEsRUFBZVEsU0FBZixDQUFMLEMsRUFBK0IsTUFBT0UsU0FBUCxDLENBQVlKLFNBQUEsQ0FBT0ksU0FBUCxDLEdBQzdFLFNBQVNDLFNBQVQsQ0FBa0JDLFNBQWxCLEMseUJBQTJCLEcsQ0FBTUgsU0FBQSxDQUFLVCxTQUFBLEMsZ0JBQUEsRUFBbUJZLFNBQW5CLENBQUwsQyxFQUFtQyxNQUFPQyxTQUFQLEMsQ0FBWVAsU0FBQSxDQUFPTyxTQUFQLEMsR0FDaEYsU0FBU0osU0FBVCxDQUFjSyxTQUFkLEMseUJBQXdCQSxTQUFBLEMsZ0JBQUEsRUFBY1QsU0FBQSxDQUFRUyxTQUFBLEMsT0FBQSxDQUFSLENBQWQsQ0FBc0NiLFNBQUEsQ0FBTWEsU0FBQSxDLE9BQUEsQ0FBTixFLGVBQUEsRUFBeUJQLFNBQXpCLENBQW9DSSxTQUFwQyxDLEVBQzlERixTQUFBLENBQU0sQ0FBQVQsU0FBQSxDQUFZQSxTQUFBLEMsZ0JBQUEsRUFBZ0JILFFBQWhCLENBQXlC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RSxnQkFBQSxDQURBLENBRUEsVUFBV0ssU0FBWCxJQUFvQmpELFNBQUEsQyxlQUFBLEdBQXlCLEVBQTdDLEMsQ0FDSTRDLFNBQUEsQyxnQkFBQSxFLGVBQUEsQ0FBb0NLLFNBQXBDLEMsSUFLSjFILENBQUEsQyxnQkFBQSxFLElBQUEsRSxPQUFBLENBQWtDLElBQU0vQixTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVywyQkFDOUQwSixTQUFBLENBQVUsQyxjQUNaLENBQWMzQixTQUFBLEVBREYsQyxrQkFFWixDQUFrQnZCLFNBQUEsQyxlQUFBLEdBQXlCLEVBRi9CLEMsQ0FJVm1ELFNBQUEsQ0FBTyxNQUFNbkgsS0FBQSxDLGVBQUEsQ0FBdUQsQyxRQUN0RSxDLE1BRHNFLEMsU0FFdEUsQ0FBUyxDLGNBQUUsQyxnQkFBRixDQUY2RCxDLE1BR3RFLENBQU1DLElBQUEsQyxlQUFBLEVBQWVpSCxTQUFmLENBSGdFLENBQXZELEMsQ0FLYkUsU0FBQSxDQUFPLE1BQU1ELFNBQUEsQyxnQkFBQSxHLENBQ2JFLFNBQUEsQ0FBbUJELFNBQUEsQyxrQkFBQSxDLENBQ3pCaEgsT0FBQSxDLEtBQUEsRSxlQUFBLENBQWdDaUgsU0FBaEMsQyxDQUNJM0csS0FBQSxDLGdCQUFBLEVBQWMyRyxTQUFkLEMsR0FDQXJELFNBQUEsQyxlQUFBLEVBQXdCcUQsUyxDQUN4QkwsU0FBQSxFLEdBZmdDLENBQXhDLEMsQ0FrQkFoRCxTQUFBLEMsZUFBQSxFQUF3QkEsU0FBQSxDLGVBQUEsR0FBeUIsQ0FDN0MsQyxPQUNJLEMsSUFESixDLGNBRUksQyxnQkFGSixDLGFBR0ksQyxJQUhKLEMsV0FJSSxDLElBSkosQ0FENkMsQyxFQVNyRGdELFNBQUEsRSxHQXZkOEIsQ0FBMUMsQyxFQXJPSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sLCBJdGVyYXRvciAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIG1hbmFnZUFQSUNhbGwocHJlZml4LCBidG4sIGZ1bmMsIG9uUmVzdWx0KSB7XG4gICAgICAgIGNvbnN0IHN1Y2Nlc3NJY29uID0gJChgIyR7cHJlZml4fS1zdWNjZXNzYCk7XG4gICAgICAgIGNvbnN0IGZhaWx1cmVJY29uID0gJChgIyR7cHJlZml4fS1mYWlsdXJlYCk7XG4gICAgICAgIGNvbnN0IHBlbmRpbmdJY29uID0gJChgIyR7cHJlZml4fS1wZW5kaW5nYCk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2VzID0gJChgIyR7cHJlZml4fS1tZXNzYWdlc2ApO1xuICAgICAgICBsZXQgYWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICBzdWNjZXNzSWNvbi5oaWRlKCk7XG4gICAgICAgIGZhaWx1cmVJY29uLmhpZGUoKTtcbiAgICAgICAgcGVuZGluZ0ljb24uaGlkZSgpO1xuICAgICAgICBidG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWN0aW9uUGVuZGluZylcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHBlbmRpbmdJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIHBlbmRpbmdJY29uLmh0bWwoXCJUZXN0aW5nIENvbm5lY3Rpb24gLi4uXCIpO1xuICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgZmFpbHVyZUljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChcIlwiKTtcbiAgICAgICAgICAgIGNvbnN0IHsgYm9keSwgdXJsIH0gPSBmdW5jKCk7XG4gICAgICAgICAgICAvLyB4eCBjb25zb2xlLmxvZyhcInh4eHh4XCIsIGJvZHkpO1xuICAgICAgICAgICAgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoYm9keSksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiBkYXRhLmpzb24oKSlcbiAgICAgICAgICAgICAgICAudGhlbigoanNvbikgPT4ge1xuICAgICAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nSWNvbi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoanNvbiwgbnVsbCwgXCIgXCIpKTtcbiAgICAgICAgICAgICAgICBpZiAoanNvbi5yZXN1bHQgPT09IFwib2tcIikge1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChqc29uLm1lc3NhZ2UucmVwbGFjZShcIlxcblwiLCBcIjxicj5cIikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWRhcHQgPSAoc3RyKSA9PiAhc3RyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogc3RyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KFwiXFxuXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCgoYSkgPT4gYDxwPiR7YX08L3A+YClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuam9pbihcIlxcblwiKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWRhcHQyID0gKHN0cikgPT4gKEFycmF5LmlzQXJyYXkoc3RyKSA/IHN0ci5tYXAoYWRhcHQpLmpvaW4oXCJcXG5cIikgOiBhZGFwdChzdHIpKTtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoYWRhcHQyKGpzb24ubWVzc2FnZSkgKyBhZGFwdDIoanNvbi5leHRyYSkpO1xuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdChuZXcgRXJyb3IoanNvbi5yZXN1bHQpLCBqc29uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgYWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHBlbmRpbmdJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgZmFpbHVyZUljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoXCJpbnRlcm5hbCBlcnJvciBcIiArIGVyci5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHByaWNpbmdUYWJsZUlkID0gXCJwcmN0YmxfMU9KdDQ5QkNOY2NienNWemthQU5PZ0ZMXCI7XG4gICAgY29uc3QgcHVibGlzaGFibGVLZXkgPSBcInBrX2xpdmVfNTFIc0Uxc0JDTmNjYnpzVnp0N3phcTJ1djIwcGtyeVdsbEF6dlpnWmQ1QWh3Rkk5QTNxQkllT0p2SndRRjA4bERvTHBGcUxqd215QTc5d25QbllMc3ZLanQwMDlmMDBWcENXXCI7XG4gICAgZnVuY3Rpb24gZmV0Y2hMaWNlbmNlSW5mbygpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCBhcmd1bWVudHMsIHZvaWQgMCwgZnVuY3Rpb24qIChiYXNlVXJsID0gXCJcIikge1xuICAgICAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWZvci1ub2RlLXJlZGA7XG4gICAgICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9saWNlbmNlSW5mb2A7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xuICAgICAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN0YXR1czogXCJGQUlMRURcIiwgdHlwZTogXCJGUkVFV0FSRVwiLCBsaWNlbmNlSW5mbzogeyBleHBpcnlEYXRlOiB0b2RheSB9IH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBqc29uID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgICAgICByZXR1cm4ganNvbjtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGRlY2xhcmVMaWNlbmNlV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLmxpY2VuY2VXaWRnZXRcIiwge1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBjb25zdCBjb250YWN0TGluayA9IGA8YSBocmVmPVwibWFpbHRvOnN1cHBvcnRAc3RlcmZpdmUuY29tXCIgc3ViamVjdD1cIkBvcGN1YS9mb3Itbm9kZS1yZWQgc3VwcG9ydCByZXF1ZXN0XCI+bWFpbHRvOnN1cHBvcnRAc3RlcmZpdmUuY29tPC9hPmA7XG4gICAgICAgICAgICAgICAgY29uc3Qgd2Vic2l0ZUxpbmsgPSBgPGEgaHJlZj1cImh0dHBzOi8vd3d3LnN0ZXJmaXZlLmNvbS9vcGN1YS9mb3Itbm9kZS1yZWRcIiB0YXJnZXQ94oCdX2JsYW5r4oCdPlN0ZXJmaXZlJ3Mgd2Vic2l0ZSA8L2E+YDtcbiAgICAgICAgICAgICAgICBmZXRjaExpY2VuY2VJbmZvKHRoYXQuYmFzZVVybClcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGljb24gPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBsZXQgbXNnID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRldGFpbHMgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXMgPSBqc29uLnN0YXR1cztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF5TGVmdCA9IGpzb24uZGF5c0xlZnQ7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiQVVUSE9SSVpFRFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb24gPSBcImZhIGZhLWNoZWNrLWNpcmNsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoanNvbi50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJUUklBTFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBcIlRyaWFsIGxpY2VuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPSBgVGhlIFRyaWFsIHdpbGwgZXhwaXJlIGluICR7ZGF5TGVmdH0gZGF5cy5cXG5CdXkgb25saW5lIGFuZCB2aXNpdCAke3dlYnNpdGVMaW5rfSB0byBhY3F1aXJlIGEgbGljZW5zZS5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlBST0ZFU1NJT05BTFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gYFlvdXIgbGljZW5jZSBpcyB2YWxpZC5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRheUxlZnQgPCA5MCAmJiBkYXlMZWZ0ID49IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgKz0gYCBJdCB3aWxsIGV4cGlyZSBpbiAke2RheUxlZnR9IGRheXMuYDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRldGFpbHMgPSBgJHt3ZWJzaXRlTGlua308YnI+JHtjb250YWN0TGlua31gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscyA9IGpzb24ubGljZW5jZUluZm8ubGljZW5jZVR5cGUgKyBcIiAtIFwiICsgKGpzb24ubGljZW5jZUluZm8ub25QcmVtaXNlU2VydmVySG9zdCB8fCBcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiRlJFRVdBUkVcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IFwiRnJlZXdhcmUgbGljZW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscyA9IGBUaGlzIGlzIGEgZnJlZXdhcmUgbGljZW5jZSwgYW5kIGhhdmUgc29tZSBsaW1pdGF0aW9ucy5cXG4ke3dlYnNpdGVMaW5rfSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkVYUElSRURcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uID0gXCJmYSBmYS1jYWxlbmRhci10aW1lXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gXCJMaWNlbmNlIGhhcyBleHBpcmVkXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiWW91ciBsaWNlbnNlIGhhcyBleHBpcmVkLiBQbGVhc2UgY29udGFjdCBvdXIgc3VwcG9ydCB0ZWFtIG9yIHZpc2l0IG91ciB3ZWJzaXRlIHRvIHJlbmV3IHlvdXIgbGljZW5zZSBhbmQgcmVnYWluIGFjY2VzcyB0byBvdXIgc2VydmljZXMuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiRkFJTEVEXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb24gPSBcImZhIGZhLWV4Y2xhbWF0aW9uLWNpcmNsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IFwiWW91ciBsaWNlbnNlIGlzIGN1cnJlbnRseSBpbnZhbGlkLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPSBgUGxlYXNlIGNvbnRhY3QgJHtjb250YWN0TGlua30gb3IgdmlzaXQgb3VyIHdlYnNpdGUgdG8gcmVuZXcgeW91ciBsaWNlbnNlIGFuZCByZWdhaW4gYWNjZXNzIHRvIG91ciBzZXJ2aWNlcy7MgGA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLyoqICovXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuZWxlbWVudC50ZXh0KFwiTGljZW5jZSBcIiArIEpTT04uc3RyaW5naWZ5KGpzb24pKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZENsYXNzKFwibGljZW5jZS13aWRnZXRcIik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRDbGFzcyhcImxpY2VuY2Utd2lkZ2V0LVwiICsgc3RhdHVzKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZCgkKFwiPHNwYW4+XCIpLmFkZENsYXNzKFwibGljZW5jZS13aWRnZXQtaWNvblwiKS5hcHBlbmQoJChcIjxpPlwiKS5hZGRDbGFzcyhpY29uKSkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKCQoXCI8c3Bhbj5cIikuYWRkQ2xhc3MoXCJsaWNlbmNlLXdpZGdldC1tc2dcIikudGV4dChtc2cpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZCgkKFwiPGJyPlwiKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmQoJChcIjxzcGFuPlwiKS5hZGRDbGFzcyhcImxpY2VuY2Utd2lkZ2V0LWRldGFpbHNcIikuYXBwZW5kKGRldGFpbHMpKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXR1cyA9PT0gXCJFWFBJUkVEXCIgfHwgc3RhdHVzID09PSBcIkZBSUxFRFwiIHx8IGpzb24udHlwZSA9PT0gXCJGUkVFV0FSRVwiIHx8IGpzb24udHlwZSA9PT0gXCJUUklBTFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpYmVCdXR0b24gPSAkKFwiPGJ1dHRvbi8+XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLmF0dHIoXCJpZFwiLCBcInN1YnNjcmliZS1idXR0b25cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVCdXR0b24uYXR0cihcImNsYXNzXCIsIFwiYnRuIGJ0bi1wcmltYXJ5XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLmF0dHIoXCJzdHlsZVwiLCBcIm1hcmdpbi10b3A6IDIwcHg7XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLnRleHQoXCJTdWJzY3JpYmVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKHN1YnNjcmliZUJ1dHRvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2V0IGF0dHJpYnV0ZXMgZm9yIHRoZSBzY3JpcHQgZWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0LnNyYyA9IFwiaHR0cHM6Ly9qcy5zdHJpcGUuY29tL3YzL3ByaWNpbmctdGFibGUuanNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdC5hc3luYyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBBcHBlbmQgdGhlIHNjcmlwdCBlbGVtZW50IHRvIHRoZSBoZWFkIChvciBib2R5KSBvZiB0aGUgZG9jdW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICQoXCJoZWFkXCIpLmFwcGVuZChzY3JpcHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyaXBlUHJpY2luZ1RhYmxlID0gJChcIjxzdHJpcGUtcHJpY2luZy10YWJsZS8+XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2V0IGF0dHJpYnV0ZXMgZm9yIHRoZSBlbGVtZW50XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJpcGVQcmljaW5nVGFibGUuYXR0cihcInByaWNpbmctdGFibGUtaWRcIiwgcHJpY2luZ1RhYmxlSWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBlUHJpY2luZ1RhYmxlLmF0dHIoXCJwdWJsaXNoYWJsZS1rZXlcIiwgcHVibGlzaGFibGVLZXkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBlUHJpY2luZ1RhYmxlLmF0dHIoXCJzdHlsZVwiLCBcImhlaWdodDogMTAwJTttYXgtaGVpZ2h0OiAxMDAlO1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwZVByaWNpbmdUYWJsZS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKHN0cmlwZVByaWNpbmdUYWJsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVCdXR0b24ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBlUHJpY2luZ1RhYmxlLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVCdXR0b24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hdHRyKFwic3R5bGVcIiwgXCJoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgZGVjbGFyZUxpY2VuY2VXaWRnZXQoKTtcbiAgICBmdW5jdGlvbiBpc1ZhbGlkT1BDX1VBX1VSSShzdHIpIHtcbiAgICAgICAgbGV0IHVybDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHVybCA9IG5ldyBVUkwoc3RyKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoXykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1cmwucHJvdG9jb2wgPT09IFwib3BjLnRjcDpcIjtcbiAgICB9XG4gICAgY29uc3QgZGVmYXVsdFN1YnNjcmlwdGlvblBhcmFtZXRlcnMgPSB7XG4gICAgICAgIHB1Ymxpc2hpbmdFbmFibGVkOiB0cnVlLFxuICAgICAgICByZXF1ZXN0ZWRMaWZldGltZUNvdW50OiAxMDAwLFxuICAgICAgICByZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudDogMTAsIC8vIGV2ZXJ5IDEwIHNlY29uZHNcbiAgICAgICAgcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsOiAxMDAwLFxuICAgICAgICBtYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaDogMCxcbiAgICAgICAgcHJpb3JpdHk6IDEwMCxcbiAgICB9O1xuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1FbmRwb2ludDJcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJjb25maWdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcIm9wY3VhIGVuZHBvaW50XCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzL1VBL1NhbXBsZVNlcnZlclwiLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbGlkYXRlOiBpc1ZhbGlkT1BDX1VBX1VSSSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvLyBTZWN1cml0eSBNb2RlXG4gICAgICAgICAgICBzZWN1cml0eU1vZGU6IHsgdmFsdWU6IFwiTm9uZVwiIH0sXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeToge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIk5vbmVcIixcbiAgICAgICAgICAgICAgICB2YWxpZGF0ZTogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZTogeyB2YWx1ZTogXCJBbm9ueW1vdXNcIiB9LFxuICAgICAgICAgICAgcGtpTmFtZTogeyB2YWx1ZTogXCJcIiwgdmFsaWRhdGU6ICh2YWx1ZSkgPT4gKCF2YWx1ZSB8fCB2YWx1ZS5tYXRjaCgvWzAtOWEtekEtWl0qLykgPyB0cnVlIDogZmFsc2UpIH0sXG4gICAgICAgICAgICAvLyB0byB1c2Ugd2hlbiB1c2VySWRlbnRpdHlUeXBlIGlzIFVzZXJOYW1lXG4gICAgICAgICAgICAvLyBjcmVkZW50aWFsczoge1xuICAgICAgICAgICAgLy8gICAgIHVzZXJOYW1lOiB7IHZhbHVlOiBcIlwiLCB0eXBlOiBcInRleHRcIiB9LFxuICAgICAgICAgICAgLy8gICAgIHBhc3N3b3JkOiB7IHZhbHVlOiBcIlwiLCB0eXBlOiBcInBhc3N3b3JkXCIgfSxcbiAgICAgICAgICAgIC8vICAgICAvLyB0byB1c2Ugd2hlbiB1c2VySWRlbnRpdHlUeXBlIGlzIENlcnRpZmljYXRlXG4gICAgICAgICAgICAvLyAgICAgdXNlckNlcnRpZmljYXRlOiB7IHZhbHVicm93c2VQYXRoZTogXCJcIiwgdHlwZTogXCJ0ZXh0XCIgfSxcbiAgICAgICAgICAgIC8vICAgICB1c2VyUHJpdmF0ZWtleTogeyB2YWx1ZTogXCJcIiAsIHR5cGU6IFwicGFzc3dvcmRcIn0sXG4gICAgICAgICAgICAvLyB9IGFzIGFueSAvKiBjaXJjdW12ZW50IGEgYnVnIGluIG5vZGUtcmVkICovLFxuICAgICAgICAgICAgLy8gdXNlcm5hbWVcbiAgICAgICAgICAgIHVzZVRyYW5zcG9ydDogeyB2YWx1ZTogZmFsc2UsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgbWF4Q2h1bmtDb3VudDogeyB2YWx1ZTogMSwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBtYXhNZXNzYWdlU2l6ZTogeyB2YWx1ZTogODE5MiwgcmVxdWlyZWQ6IGZhbHNlIH0sIC8vIHNob3VsZCBiZSBhdCBsZWFzdCA4MTkyXG4gICAgICAgICAgICByZWNlaXZlQnVmZmVyU2l6ZTogeyB2YWx1ZTogODE5MiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBzZW5kQnVmZmVyU2l6ZTogeyB2YWx1ZTogODE5MiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBzdWJzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiczFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRGVmYXVsdCBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTdWJzY3JpcHRpb25QYXJhbWV0ZXJzKSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiczJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiU2xvdyBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlzaGluZ0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkTGlmZXRpbWVDb3VudDogMTAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZE1heEtlZXBBbGl2ZUNvdW50OiAzLCAvLyBldmVyeSAxNSBzZWNvbmRzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsOiA1MDAwLCAvL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoOiAxMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHk6IDEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiczNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRmFzdCBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlzaGluZ0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkTGlmZXRpbWVDb3VudDogNDAwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudDogNTAsIC8vIGV2ZXJ5IDEyLjUgc2Vjb25kc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbDogMjUwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoOiAxMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHk6IDIwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmFtZXNwYWNlQWxpYXNlczoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzOiBcInVhXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VVcmk6IFwiaHR0cDovL29wY2ZvdW5kYXRpb24ub3JnL1VBL1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNXZWxsS25vd246IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzOiBcImRpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VVcmk6IFwiaHR0cDovL29wY2ZvdW5kYXRpb24ub3JnL0RJL1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNXZWxsS25vd246IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBjcmVkZW50aWFsczoge1xuICAgICAgICAgICAgdXNlck5hbWU6IHsgdHlwZTogXCJ0ZXh0XCIgfSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiB7IHR5cGU6IFwicGFzc3dvcmRcIiB9LFxuICAgICAgICAgICAgdXNlckNlcnRpZmljYXRlOiB7IHR5cGU6IFwidGV4dFwiIH0sXG4gICAgICAgICAgICB1c2VyUHJpdmF0ZWtleTogeyB0eXBlOiBcInBhc3N3b3JkXCIgfSxcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWw6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgdGhpcy5lbmRwb2ludCB8fCBcImludmFsaWQgZW5kcG9pbnRcIjtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0c2F2ZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IF9zZWN1cml0eVBvbGljeSA9ICQoXCIjbm9kZS1jb25maWctaW5wdXQtc2VjdXJpdHlQb2xpY3lcIik7XG4gICAgICAgICAgICBjb25zdCBfc2VjdXJpdHlNb2RlID0gJChcIiNub2RlLWNvbmZpZy1pbnB1dC1zZWN1cml0eU1vZGVcIik7XG4gICAgICAgICAgICBpZiAoX3NlY3VyaXR5UG9saWN5LnZhbCgpID09PSBcIk5vbmVcIikge1xuICAgICAgICAgICAgICAgIF9zZWN1cml0eU1vZGUudGV4dChcIk5vbmVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAoKCgoKCgoKCgoIHJldHJpZXZlIHN1YnNjcmlwdGlvbiBkYXRhICkpKSkpKSkpKSlcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpcHRpb25JdGVtcyA9ICQoXCIjc3Vic2NyaXB0aW9ucy1jb250YWluZXJcIikuZWRpdGFibGVMaXN0KFwiaXRlbXNcIik7XG4gICAgICAgICAgICAgICAgY29uc3QgcyA9IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IG4gPSAoeCkgPT4geDtcbiAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25JdGVtcy5lYWNoKGZ1bmN0aW9uIChpbmRleCwgaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInNcIiArIGluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogZS5maW5kKFwiLmlucHV0LW5hbWVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6ICEhZS5maW5kKFwiLmlucHV0LWlzRGVmYXVsdFwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaXNoaW5nRW5hYmxlZDogISFlLmZpbmQoXCIuaW5wdXQtcHVibGlzaGluZ0VuYWJsZWRcIikuaXMoXCI6Y2hlY2tlZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRMaWZldGltZUNvdW50OiBuKGUuZmluZChcIi5pbnB1dC1yZXF1ZXN0ZWRMaWZldGltZUNvdW50XCIpLnZhbCgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudDogbihlLmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnRcIikudmFsKCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbDogbihlLmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsXCIpLnZhbCgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaDogbihlLmZpbmQoXCIuaW5wdXQtbWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2hcIikudmFsKCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5OiBuKGUuZmluZChcIi5pbnB1dC1wcmlvcml0eVwiKS52YWwoKSksXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAvLyBmb3JjZSB0byBiZSB0cnVlXG4gICAgICAgICAgICAgICAgICAgIGEucGFyYW1ldGVycy5wdWJsaXNoaW5nRW5hYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhLmlzRGVmYXVsdCAmJiBhLmlkID09PSBcInMwXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vcm1hbGl6ZSBkZWZhdWx0IHN1YnNjcmlwdGlvbiBuYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICBhLm5hbWUgPSBcIkRlZmF1bHQgU3Vic2NyaXB0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcy5wdXNoKGEpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IHM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAoKCgoKCgoKCgoIHJldHJpZXZlIG5hbWVzcGFjZSBhbGlhcyBkYXRhICkpKSkpKSkpKVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC8vIGFsaWFzZXNcbiAgICAgICAgICAgICAgICBjb25zdCBhbGlhc0l0ZW1zID0gJChcIiNlZGl0YWJsZS1saXN0LWFsaWFzZXMtY29udGFpbmVyXCIpLmVkaXRhYmxlTGlzdChcIml0ZW1zXCIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRtcCA9IFtdO1xuICAgICAgICAgICAgICAgIGFsaWFzSXRlbXMuZWFjaChmdW5jdGlvbiAoaW5kZXgsIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpZDogXCJzXCIgKyBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZVVyaTogZS5maW5kKFwiLm5vZGUtaW5wdXQtYWxpYXMtbmFtZXNwYWNlLXVyaVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzOiBlLmZpbmQoXCIubm9kZS1pbnB1dC1hbGlhcy1hbGlhc1wiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgdG1wLnB1c2goYSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5uYW1lc3BhY2VBbGlhc2VzID0gdG1wO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXM7XG4gICAgICAgICAgICBjb25zdCB0YWJzID0gUkVELnRhYnMuY3JlYXRlKHtcbiAgICAgICAgICAgICAgICBpZDogXCJub2RlLWNvbmZpZy1lbmRwb2ludC10YWJzXCIsXG4gICAgICAgICAgICAgICAgb25jaGFuZ2U6IGZ1bmN0aW9uICh0YWIpIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWNvbmZpZy1lbmRwb2ludC10YWJzLWNvbnRlbnRcIikuY2hpbGRyZW4oKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjXCIgKyB0YWIuaWQpLnNob3coKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0YWJzLmFkZFRhYih7XG4gICAgICAgICAgICAgICAgaWQ6IFwiZW5kcG9pbnQtdGFiLWNvbm5lY3Rpb25cIixcbiAgICAgICAgICAgICAgICBsYWJlbDogXCJDb25uZWN0aW9uXCIsXG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgIHRhYnMuYWRkVGFiKHtcbiAgICAgICAgICAgICAgICBpZDogXCJlbmRwb2ludC10YWItc3Vic2NyaXB0aW9uc1wiLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBcIlN1YnNjcmlwdGlvbnNcIixcbiAgICAgICAgICAgIH0sIDEpO1xuICAgICAgICAgICAgdGFicy5hZGRUYWIoe1xuICAgICAgICAgICAgICAgIGlkOiBcImVuZHBvaW50LXRhYi1uYW1lc3BhY2UtYWxpYXNlc1wiLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBcIk5hbWVzcGFjZSBBbGlhc2VzXCIsXG4gICAgICAgICAgICB9LCAyKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHRhYnMucmVzaXplKCk7XG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgU2VjdXJpdHkgY29udHJvbHNcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlU2VjdXJpdHlDb250cm9sID0gKHNlY3VyaXR5TW9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHNlY3VyaXR5TW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBudWxsOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB1bmRlZmluZWQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiTm9uZVwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIuc2VjdGlvbi1zZWN1cml0eVBvbGljeVwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiU2lnblwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlNpZ25BbmRFbmNyeXB0XCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcCA9ICQoXCIuc2VjdGlvbi1zZWN1cml0eVBvbGljeVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNwLnZhbCgpID09PSBcIk5vbmVcIiB8fCBzcC52YWwoKSA9PT0gXCJcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3AudmFsKFwiQmFzaWMyNTZTaGEyNTZcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIi5zZWN0aW9uLXNlY3VyaXR5UG9saWN5XCIpLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiaW52YWxpZCBzZWN1cml0eU1vZGUgXCIgKyBzZWN1cml0eU1vZGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB1cGRhdGVTZWN1cml0eUNvbnRyb2wobm9kZS5zZWN1cml0eU1vZGUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IF9zZWN1cml0eU1vZGUgPSAkKFwiI25vZGUtY29uZmlnLWlucHV0LXNlY3VyaXR5TW9kZVwiKTtcbiAgICAgICAgICAgICAgICBfc2VjdXJpdHlNb2RlLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3U2VjdXJpdHlNb2RlID0gX3NlY3VyaXR5TW9kZS52YWwoKTtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU2VjdXJpdHlDb250cm9sKG5ld1NlY3VyaXR5TW9kZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBsaWNlbmNlV2lkZ2V0ID0gJChcIiNsaWNlbmNlV2lkZ2V0XCIpO1xuICAgICAgICAgICAgbGljZW5jZVdpZGdldC5saWNlbmNlV2lkZ2V0KHtcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIHRoZSBVc2VyIElkZW50aXR5IENvbnRyb2xzXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbnN0IGF1dGhSb3cgPSAkKFwiLnNlY3Rpb24tdXNlcklkZW50aXR5VHlwZS1Vc2VyTmFtZVwiKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjZXJ0Um93ID0gJChcIi5zZWN0aW9uLXVzZXJJZGVudGl0eVR5cGUtQ2VydGlmaWNhdGVcIik7XG4gICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlSWRlbnRpdHlDb250cm9scyA9ICh1c2VySWRlbnRpdHlUeXBlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGUgPSB1c2VySWRlbnRpdHlUeXBlIHx8IFwiQW5vbnltb3VzXCI7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodXNlcklkZW50aXR5VHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkFub255bW91c1wiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlck5hbWVcIikudmFsKFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctaW5wdXQtcGFzc3dvcmRcIikudmFsKFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhSb3cuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRSb3cuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlVzZXJOYW1lXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aFJvdy5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydFJvdy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiQ2VydGlmaWNhdGVcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJOYW1lXCIpLnZhbChcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtY29uZmlnLWlucHV0LXBhc3N3b3JkXCIpLnZhbChcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0Um93LnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoUm93LmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJpbnZhbGlkIHVzZXJJZGVudGl0eVR5cGUgXCIgKyB1c2VySWRlbnRpdHlUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdXBkYXRlSWRlbnRpdHlDb250cm9scyhub2RlLnVzZXJJZGVudGl0eVR5cGUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IF91c2VySWRlbnRpdHlUeXBlID0gJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VySWRlbnRpdHlUeXBlXCIpO1xuICAgICAgICAgICAgICAgIF91c2VySWRlbnRpdHlUeXBlLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3SWRlbnRpdHlUeXBlID0gX3VzZXJJZGVudGl0eVR5cGUudmFsKCk7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZUlkZW50aXR5Q29udHJvbHMobmV3SWRlbnRpdHlUeXBlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgYWR2YW5jZWQgY29udHJvbHNcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLUFkdmFuY2VkXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAkKFwiI3RvZ2dsZUFkdmFuY2VkU2VjdGlvblwiKS5wcm9wKFwiY2hlY2tlZFwiLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgJChcIiN0b2dnbGVBZHZhbmNlZFNlY3Rpb25cIikub24oXCJjaGFuZ2VcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5wcm9wKFwiY2hlY2tlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGNoZWNrYm94IGlzIGNoZWNrZWQsIHNob3cgdGhlIGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLUFkdmFuY2VkXCIpLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSwgaGlkZSBpdFxuICAgICAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLUFkdmFuY2VkXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgdXNlVHJhbnNwb3J0U2V0dGluZyA9ICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlVHJhbnNwb3J0XCIpLnByb3AoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgaWYgKHVzZVRyYW5zcG9ydFNldHRpbmcpIHtcbiAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tVHJhbnNwb3J0U2V0dGluZ3NcIikuc2hvdygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLVRyYW5zcG9ydFNldHRpbmdzXCIpLmhpZGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlVHJhbnNwb3J0XCIpLm9uKFwiY2hhbmdlXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5wcm9wKFwiY2hlY2tlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgY2hlY2tib3ggaXMgY2hlY2tlZCwgc2hvdyB0aGUgZGl2XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1UcmFuc3BvcnRTZXR0aW5nc1wiKS5zaG93KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBPdGhlcndpc2UsIGhpZGUgaXRcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLVRyYW5zcG9ydFNldHRpbmdzXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBjaGVja0NlcnRpZmljYXRlXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICQoXCIjY2hlY2tDZXJ0aWZpY2F0ZVwiKS5vbihcImNsaWNrXCIsICgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKFwiL29wY3VhLWZvci1ub2RlLXJlZC9jbGllbnRfY2VydGlmaWNhdGUuanNvblwiKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5mbyA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ID0gSlNPTi5zdHJpbmdpZnkoaW5mbywgbnVsbCwgXCIgXCIpO1xuICAgICAgICAgICAgICAgICAgICBhbGVydCh0KTtcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIGNvbmZpZyBidXR0b25cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAkKFwiI2dvdG8tY29uZmlnXCIpLm9uKFwiY2xpY2tcIiwgKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuKFwiL29wY3VhLWZvci1ub2RlLXJlZC9jb25maWdcIiwgXCJfYmxhbmtcIik7XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICBmdW5jdGlvbiBleHRyYWN0RW5kcG9pbnREYXRhKCkge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBpZDogbm9kZS5pZCxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtZW5kcG9pbnRcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtbmFtZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgcGtpTmFtZTogKF9hID0gJChcIiNub2RlLWNvbmZpZy1pbnB1dC1wa2lOYW1lXCIpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHNlY3VyaXR5TW9kZTogJChcIiNub2RlLWNvbmZpZy1pbnB1dC1zZWN1cml0eU1vZGVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5OiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXNlY3VyaXR5UG9saWN5XCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlOiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJJZGVudGl0eVR5cGVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHVzZXJOYW1lOiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJOYW1lXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICBwYXNzd29yZDogJChcIiNub2RlLWNvbmZpZy1pbnB1dC1wYXNzd29yZFwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgdXNlckNlcnRpZmljYXRlOiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJDZXJ0aWZpY2F0ZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgdXNlclByaXZhdGVrZXk6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlclByaXZhdGVrZXlcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIC8vLyBub3QgdGVzdGVkIHlldCAuLi46XG4gICAgICAgICAgICAgICAgICAgIGNlcnRpZmljYXRlOiAkKFwiI25vZGUtaW5wdXQtY2VydGlmaWNhdGVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHVzZVRyYW5zcG9ydDogJChcIiNub2RlLWlucHV0LXVzZVRyYW5zcG9ydFwiKS5wcm9wKFwiY2hlY2tlZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgbWF4Q2h1bmtDb3VudDogJChcIiNub2RlLWlucHV0LW1heENodW5rQ291bnRcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIG1heE1lc3NhZ2VTaXplOiAkKFwiI25vZGUtaW5wdXQtbWF4TWVzc2FnZVNpemVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHJlY2VpdmVCdWZmZXJTaXplOiAkKFwiI25vZGUtaW5wdXQtcmVjZWl2ZUJ1ZmZlclNpemVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHNlbmRCdWZmZXJTaXplOiAkKFwiI25vZGUtaW5wdXQtc2VuZEJ1ZmZlclNpemVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgdGhlIFRlc3QgYnV0dG9uXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG1hbmFnZUFQSUNhbGwoXCJjb25uZWN0aW9uXCIsICQoXCIjdGVzdC1jb25uZWN0aW9uXCIpLCAoKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICB1cmw6IFwiL29wY3VhLWZvci1ub2RlLXJlZC90ZXN0LWNvbm5lY3Rpb25cIixcbiAgICAgICAgICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBleHRyYWN0RW5kcG9pbnREYXRhKCksXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSksICgpID0+IHsgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gIEluc3RhbGwgc3Vic2NyaXB0aW9ucyBMaXN0IG1hbmFnZW1lbnRcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzaXplVG9waWNzID0gKHRvcGljLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB2YXIgbmV3V2lkdGggPSB0b3BpYy53aWR0aCgpIHx8IDEwMDtcbiAgICAgICAgICAgICAgICAgICAgdG9waWMuZmluZChcImxhYmVsXCIpLnR5cGVkSW5wdXQoXCJ3aWR0aFwiLCBuZXdXaWR0aCAtIDE1KTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbkxpc3QgPSAkKFwiI3N1YnNjcmlwdGlvbnMtY29udGFpbmVyXCIpXG4gICAgICAgICAgICAgICAgICAgIC5jc3MoeyBcIm1pbi1oZWlnaHRcIjogXCIxNTBweFwiLCBcIm1pbi13aWR0aFwiOiBcIjI2MHB4XCIgfSlcbiAgICAgICAgICAgICAgICAgICAgLmVkaXRhYmxlTGlzdCh7XG4gICAgICAgICAgICAgICAgICAgIGFkZEl0ZW06IChjb250YWluZXIsIGluZGV4LCBkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBfZGF0YSA9IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gJChcIiNzdWJzY3JpcHRpb24tdGVtcGxhdGVcIikuY2xvbmUoKS5hcHBlbmRUbyhjb250YWluZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyKFwiaWRcIikucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpLnJlbW92ZUNsYXNzKFwidGVtcGxhdGVcIikuYXR0cihcImRhdGEtaVwiLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtbmFtZVwiKS52YWwoX2RhdGEubmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsXCIpLnZhbChfZGF0YS5wYXJhbWV0ZXJzLnJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnRcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMucmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKFwiLmlucHV0LXJlcXVlc3RlZExpZmV0aW1lQ291bnRcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMucmVxdWVzdGVkTGlmZXRpbWVDb3VudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtbWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2hcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMubWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2ggfHwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtcHJpb3JpdHlcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMucHJpb3JpdHkgfHwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuc3Vic2NyaXB0aW9uLWlkXCIpLnRleHQoXCJcIiArIGluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfZGF0YS5pc0RlZmF1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtbmFtZVwiKS5wcm9wKFwicmVhZG9ubHlcIiwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtaXNEZWZhdWx0XCIpLnByb3AoXCJjaGVja2VkXCIsIF9kYXRhLmlzRGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhhdCBkZWZhdWx0IHN1YnNjcmlwdGlvbiBjYW5ub3QgYmUgYWNjaWRlbnRhbGx5IHJlbW92ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfZGF0YS5pc0RlZmF1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuZmluZChcIi5yZWQtdWktZWRpdGFibGVMaXN0LWl0ZW0tcmVtb3ZlXCIpLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGVsZW1lbnQuZmluZChcIi5pbnB1dC1pc0RlZmF1bHRcIikucHJvcChcImRpc2FibGVkXCIsIHRydWUpLCAxMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIC8vIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICByZW1vdmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHJlc2l6ZUl0ZW06IHJlc2l6ZVRvcGljcyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxsU3Vic2NyaXB0aW9ucyA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9ucyA9IG5vZGUuc3Vic2NyaXB0aW9ucyB8fCBbXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN1YnNjcmlwdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBhZGQgbWlzc2luZyBkZWZhdWx0IHN1YnNjcmlwdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJzMVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRGVmYXVsdCBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyczogT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdFN1YnNjcmlwdGlvblBhcmFtZXRlcnMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uTGlzdC5lZGl0YWJsZUxpc3QoXCJlbXB0eVwiKTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gb2Ygc3Vic2NyaXB0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3Vic2NyaXB0aW9uLmlzRGVmYXVsdCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uTGlzdC5lZGl0YWJsZUxpc3QoXCJhZGRJdGVtXCIsIHN1YnNjcmlwdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGZpbGxTdWJzY3JpcHRpb25zKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gIEluc3RhbGwgbmFtZXNwYWNlIGFsaWFzIExpc3QgbWFuYWdlbWVudFxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBhZGRBbGlhc0N0cmwoY29udGFpbmVyLCBpbmRleCwgYXJnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhcmc7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdyA9ICQoJzxkaXYgY2xhc3M9XCJhbGlhcy1lbnRyeVwiPicpLmFwcGVuZFRvKGNvbnRhaW5lcik7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnRhaW5lci5kYXRhKFwiZGF0YVwiLCBhcmcpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiPGlucHV0Lz5cIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwibm9kZS1pbnB1dC1hbGlhcy1pbmRleFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsKGFyZy5hbGlhcyB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjUlXCIgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhyb3cpXG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsKGluZGV4LnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiPGlucHV0Lz5cIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwibm9kZS1pbnB1dC1hbGlhcy1hbGlhc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsKGFyZy5hbGlhcyB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjI1JVwiIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8ocm93KVxuICAgICAgICAgICAgICAgICAgICAgICAgLnZhbChkYXRhLmFsaWFzKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIjxpbnB1dC8+XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm5vZGUtaW5wdXQtYWxpYXMtbmFtZXNwYWNlLXVyaVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsKGFyZy5uYW1lc3BhY2VVcmkgfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jc3MoeyB3aWR0aDogXCI3MCVcIiB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKHJvdylcbiAgICAgICAgICAgICAgICAgICAgICAgIC52YWwoZGF0YS5uYW1lc3BhY2VVcmkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBhbGlhc2VzTGlzdCA9ICQoXCIjZWRpdGFibGUtbGlzdC1hbGlhc2VzLWNvbnRhaW5lclwiKVxuICAgICAgICAgICAgICAgICAgICAuY3NzKHsgXCJtaW4taGVpZ2h0XCI6IFwiMTUwcHhcIiwgXCJtaW4td2lkdGhcIjogXCIyNjBweFwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5lZGl0YWJsZUxpc3Qoe1xuICAgICAgICAgICAgICAgICAgICBhZGRCdXR0b246IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICByZW1vdmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiLFxuICAgICAgICAgICAgICAgICAgICBzY3JvbGxPbkFkZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGFkZEl0ZW0oY29udGFpbmVyLCBpLCBpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRBbGlhc0N0cmwoY29udGFpbmVyLCBpLCBpdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBmaWxsTmFtZXNwYWNlQWxpYXNlcygpIHtcbiAgICAgICAgICAgICAgICAgICAgYWxpYXNlc0xpc3QuZWRpdGFibGVMaXN0KFwiaXRlbXNcIik7XG4gICAgICAgICAgICAgICAgICAgIGFsaWFzZXNMaXN0LmVkaXRhYmxlTGlzdChcImVtcHR5XCIpO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGFsaWFzIG9mIG5vZGUubmFtZXNwYWNlQWxpYXNlcyB8fCBbXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXNlc0xpc3QuZWRpdGFibGVMaXN0KFwiYWRkSXRlbVwiLCBhbGlhcyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gQnV0dG9uXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAkKFwiI2V4dHJhY3QtYWxpYXNlc1wiKS5vbihcImNsaWNrXCIsICgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBleHRyYWN0RW5kcG9pbnREYXRhKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlQWxpYXNlczogbm9kZS5uYW1lc3BhY2VBbGlhc2VzIHx8IFtdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaChcIi9vcGN1YS1mb3Itbm9kZS1yZWQvZXh0cmFjdC1uYW1lc3BhY2UtYWxpYXNlc1wiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkob3B0aW9ucyksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluZm8gPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5hbWVzcGFjZUFsaWFzZXMgPSBpbmZvLm5hbWVzcGFjZUFsaWFzZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIm5hbWVzcGFjZUFsaWFzZXNcIiwgbmFtZXNwYWNlQWxpYXNlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShuYW1lc3BhY2VBbGlhc2VzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUubmFtZXNwYWNlQWxpYXNlcyA9IG5hbWVzcGFjZUFsaWFzZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbE5hbWVzcGFjZUFsaWFzZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICBub2RlLm5hbWVzcGFjZUFsaWFzZXMgPSBub2RlLm5hbWVzcGFjZUFsaWFzZXMgfHwgW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzOiBcInVhXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlVXJpOiBcImh0dHA6Ly9vcGNmb3VuZGF0aW9uLm9yZy9VQS9cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1dlbGxLbm93bjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmaWxsTmFtZXNwYWNlQWxpYXNlcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
|
9
9
|
</script>
|
10
10
|
<script type="text/x-red" data-template-name="OpcUa-Endpoint2">
|
11
11
|
<div id="licenceWidget"></div>
|