@open-amt-cloud-toolkit/ui-toolkit-react 2.0.1 → 2.0.4
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/README.md +71 -0
- package/dist +84 -0
- package/package.json +84 -78
- package/i18n.d.ts +0 -6
- package/jest.setup.d.ts +0 -5
- package/kvm.min.js +0 -3
- package/kvm.min.js.LICENSE.txt +0 -32
- package/reactjs/KVM/ConnectButton.d.ts +0 -13
- package/reactjs/KVM/DesktopSettings.d.ts +0 -17
- package/reactjs/KVM/EncodingOptions.d.ts +0 -17
- package/reactjs/KVM/Header.d.ts +0 -17
- package/reactjs/KVM/PureCanvas.d.ts +0 -19
- package/reactjs/KVM/UI.d.ts +0 -47
- package/reactjs/KVM/index.d.ts +0 -1
- package/reactjs/SerialOverLAN/Sol.d.ts +0 -53
- package/reactjs/SerialOverLAN/Terminal.d.ts +0 -15
- package/reactjs/SerialOverLAN/index.d.ts +0 -5
- package/reactjs/services/HttpClient.d.ts +0 -10
- package/reactjs/shared/Methods.d.ts +0 -13
- package/reactjs/shared/SnackBar.d.ts +0 -5
- package/reactjs/shared/Utilities.d.ts +0 -8
- package/reactjs/src/kvm.bundle.js +0 -1
- package/reactjs/src/sol.bundle.js +0 -15
- package/reactjs/src/sol.bundle.js.LICENSE.txt +0 -8
- package/sol.min.js +0 -16
- package/sol.min.js.LICENSE.txt +0 -41
- package/src/i18n.d.ts +0 -6
- package/src/reactjs/KVM/ConnectButton.d.ts +0 -13
- package/src/reactjs/KVM/DesktopSettings.d.ts +0 -17
- package/src/reactjs/KVM/EncodingOptions.d.ts +0 -17
- package/src/reactjs/KVM/Header.d.ts +0 -17
- package/src/reactjs/KVM/PureCanvas.d.ts +0 -19
- package/src/reactjs/KVM/UI.d.ts +0 -47
- package/src/reactjs/KVM/index.d.ts +0 -1
- package/src/reactjs/SerialOverLAN/Sol.d.ts +0 -53
- package/src/reactjs/SerialOverLAN/Terminal.d.ts +0 -15
- package/src/reactjs/SerialOverLAN/index.d.ts +0 -5
- package/src/reactjs/services/HttpClient.d.ts +0 -10
- package/src/reactjs/shared/Methods.d.ts +0 -13
- package/src/reactjs/shared/SnackBar.d.ts +0 -5
- package/src/reactjs/shared/Utilities.d.ts +0 -8
- package/src/test/connectbutton.spec.d.ts +0 -5
- package/src/test/desktopsettings.spec.d.ts +0 -5
- package/src/test/encodingoptions.spec.d.ts +0 -5
- package/src/test/helper/amtredirector1.d.ts +0 -71
- package/src/test/helper/mockeventpersist.d.ts +0 -7
- package/src/test/helper/terminal.d.ts +0 -11
- package/src/test/httpclient.test.d.ts +0 -1
- package/src/test/purecanvas.spec.d.ts +0 -5
- package/src/test/sol.test.d.ts +0 -1
- package/src/test/terminal.test.d.ts +0 -1
- package/src/test/ui.spec.d.ts +0 -4
package/kvm.min.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! For license information please see kvm.min.js.LICENSE.txt */
|
|
2
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["ui-toolkit"]=t():e["ui-toolkit"]=t()}(self,(function(){return(()=>{var __webpack_modules__={869:module=>{var e;self,e=function(){return(()=>{var __webpack_modules__={487:e=>{var t={utf8:{stringToBytes:function(e){return t.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(t.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],n=0;n<e.length;n++)t.push(255&e.charCodeAt(n));return t},bytesToString:function(e){for(var t=[],n=0;n<e.length;n++)t.push(String.fromCharCode(e[n]));return t.join("")}}};e.exports=t},12:e=>{var t,n;t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n={rotl:function(e,t){return e<<t|e>>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&n.rotl(e,8)|4278255360&n.rotl(e,24);for(var t=0;t<e.length;t++)e[t]=n.endian(e[t]);return e},randomBytes:function(e){for(var t=[];e>0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],n=0,r=0;n<e.length;n++,r+=8)t[r>>>5]|=e[n]<<24-r%32;return t},wordsToBytes:function(e){for(var t=[],n=0;n<32*e.length;n+=8)t.push(e[n>>>5]>>>24-n%32&255);return t},bytesToHex:function(e){for(var t=[],n=0;n<e.length;n++)t.push((e[n]>>>4).toString(16)),t.push((15&e[n]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],n=0;n<e.length;n+=2)t.push(parseInt(e.substr(n,2),16));return t},bytesToBase64:function(e){for(var n=[],r=0;r<e.length;r+=3)for(var a=e[r]<<16|e[r+1]<<8|e[r+2],o=0;o<4;o++)8*r+6*o<=8*e.length?n.push(t.charAt(a>>>6*(3-o)&63)):n.push("=");return n.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var n=[],r=0,a=0;r<e.length;a=++r%4)0!=a&&n.push((t.indexOf(e.charAt(r-1))&Math.pow(2,-2*a+8)-1)<<2*a|t.indexOf(e.charAt(r))>>>6-2*a);return n}},e.exports=n},738:e=>{function t(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}e.exports=function(e){return null!=e&&(t(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&t(e.slice(0,0))}(e)||!!e._isBuffer)}},568:(e,t,n)=>{var r,a,o,i,s;r=n(12),a=n(487).utf8,o=n(738),i=n(487).bin,(s=function(e,t){e.constructor==String?e=t&&"binary"===t.encoding?i.stringToBytes(e):a.stringToBytes(e):o(e)?e=Array.prototype.slice.call(e,0):Array.isArray(e)||e.constructor===Uint8Array||(e=e.toString());for(var n=r.bytesToWords(e),l=8*e.length,u=1732584193,c=-271733879,d=-1732584194,p=271733878,f=0;f<n.length;f++)n[f]=16711935&(n[f]<<8|n[f]>>>24)|4278255360&(n[f]<<24|n[f]>>>8);n[l>>>5]|=128<<l%32,n[14+(l+64>>>9<<4)]=l;var h=s._ff,g=s._gg,v=s._hh,m=s._ii;for(f=0;f<n.length;f+=16){var b=u,y=c,S=d,w=p;u=h(u,c,d,p,n[f+0],7,-680876936),p=h(p,u,c,d,n[f+1],12,-389564586),d=h(d,p,u,c,n[f+2],17,606105819),c=h(c,d,p,u,n[f+3],22,-1044525330),u=h(u,c,d,p,n[f+4],7,-176418897),p=h(p,u,c,d,n[f+5],12,1200080426),d=h(d,p,u,c,n[f+6],17,-1473231341),c=h(c,d,p,u,n[f+7],22,-45705983),u=h(u,c,d,p,n[f+8],7,1770035416),p=h(p,u,c,d,n[f+9],12,-1958414417),d=h(d,p,u,c,n[f+10],17,-42063),c=h(c,d,p,u,n[f+11],22,-1990404162),u=h(u,c,d,p,n[f+12],7,1804603682),p=h(p,u,c,d,n[f+13],12,-40341101),d=h(d,p,u,c,n[f+14],17,-1502002290),u=g(u,c=h(c,d,p,u,n[f+15],22,1236535329),d,p,n[f+1],5,-165796510),p=g(p,u,c,d,n[f+6],9,-1069501632),d=g(d,p,u,c,n[f+11],14,643717713),c=g(c,d,p,u,n[f+0],20,-373897302),u=g(u,c,d,p,n[f+5],5,-701558691),p=g(p,u,c,d,n[f+10],9,38016083),d=g(d,p,u,c,n[f+15],14,-660478335),c=g(c,d,p,u,n[f+4],20,-405537848),u=g(u,c,d,p,n[f+9],5,568446438),p=g(p,u,c,d,n[f+14],9,-1019803690),d=g(d,p,u,c,n[f+3],14,-187363961),c=g(c,d,p,u,n[f+8],20,1163531501),u=g(u,c,d,p,n[f+13],5,-1444681467),p=g(p,u,c,d,n[f+2],9,-51403784),d=g(d,p,u,c,n[f+7],14,1735328473),u=v(u,c=g(c,d,p,u,n[f+12],20,-1926607734),d,p,n[f+5],4,-378558),p=v(p,u,c,d,n[f+8],11,-2022574463),d=v(d,p,u,c,n[f+11],16,1839030562),c=v(c,d,p,u,n[f+14],23,-35309556),u=v(u,c,d,p,n[f+1],4,-1530992060),p=v(p,u,c,d,n[f+4],11,1272893353),d=v(d,p,u,c,n[f+7],16,-155497632),c=v(c,d,p,u,n[f+10],23,-1094730640),u=v(u,c,d,p,n[f+13],4,681279174),p=v(p,u,c,d,n[f+0],11,-358537222),d=v(d,p,u,c,n[f+3],16,-722521979),c=v(c,d,p,u,n[f+6],23,76029189),u=v(u,c,d,p,n[f+9],4,-640364487),p=v(p,u,c,d,n[f+12],11,-421815835),d=v(d,p,u,c,n[f+15],16,530742520),u=m(u,c=v(c,d,p,u,n[f+2],23,-995338651),d,p,n[f+0],6,-198630844),p=m(p,u,c,d,n[f+7],10,1126891415),d=m(d,p,u,c,n[f+14],15,-1416354905),c=m(c,d,p,u,n[f+5],21,-57434055),u=m(u,c,d,p,n[f+12],6,1700485571),p=m(p,u,c,d,n[f+3],10,-1894986606),d=m(d,p,u,c,n[f+10],15,-1051523),c=m(c,d,p,u,n[f+1],21,-2054922799),u=m(u,c,d,p,n[f+8],6,1873313359),p=m(p,u,c,d,n[f+15],10,-30611744),d=m(d,p,u,c,n[f+6],15,-1560198380),c=m(c,d,p,u,n[f+13],21,1309151649),u=m(u,c,d,p,n[f+4],6,-145523070),p=m(p,u,c,d,n[f+11],10,-1120210379),d=m(d,p,u,c,n[f+2],15,718787259),c=m(c,d,p,u,n[f+9],21,-343485551),u=u+b>>>0,c=c+y>>>0,d=d+S>>>0,p=p+w>>>0}return r.endian([u,c,d,p])})._ff=function(e,t,n,r,a,o,i){var s=e+(t&n|~t&r)+(a>>>0)+i;return(s<<o|s>>>32-o)+t},s._gg=function(e,t,n,r,a,o,i){var s=e+(t&r|n&~r)+(a>>>0)+i;return(s<<o|s>>>32-o)+t},s._hh=function(e,t,n,r,a,o,i){var s=e+(t^n^r)+(a>>>0)+i;return(s<<o|s>>>32-o)+t},s._ii=function(e,t,n,r,a,o,i){var s=e+(n^(t|~r))+(a>>>0)+i;return(s<<o|s>>>32-o)+t},s._blocksize=16,s._digestsize=16,e.exports=function(e,t){if(null==e)throw new Error("Illegal argument "+e);var n=r.wordsToBytes(s(e,t));return t&&t.asBytes?n:t&&t.asString?i.bytesToString(n):r.bytesToHex(n)}},166:(e,t,n)=>{"use strict";n.d(t,{r:()=>l});var r=n(46),a=n(565),o=n(611),i=n(305),s=n.n(i);class l extends r.H{constructor(e,t){super(),this.protocol=2,this.inflate=s().inflateInit(15),this.bpp=1,this.state=0,this.focusMode=0,this.useZRLE=!0,this.frameRateDelay=2,this.canvasCtx=t,this.sparecache={},this.buttonmask=0,this.canvasControl=this.canvasCtx.canvas,this.lastMouseMoveTime=(new Date).getTime(),this.logger=e,this.setDeskFocus=(e,t)=>{},this.getDeskFocus=e=>{}}processData(e){this.onProcessData(e)}onStateChange(e){this.logger.verbose(`state change in AMTDesktop: ${e}`),0===e&&(this.canvasCtx.fillStyle="#FFFFFF",this.canvasCtx.fillRect(0,0,this.canvasCtx.canvas.width,this.canvasCtx.canvas.width))}start(){this.logger.verbose("Starting desktop here"),this.state=0,this.inflate.inflateReset(),this.onKvmDataPending=[],this.onKvmDataAck=-1,this.kvmDataSupported=!1;for(const e in this.sparecache)delete this.sparecache[e]}onSendKvmData(e){!0!==this.onKvmDataAck?this.onKvmDataPending.push(e):((0,o.f)(this.urlvars)&&(0,o.f)(this.urlvars.kvmdatatrace)&&console.log(`KVM-Send (${e.length}) data`),e="\0KvmDataChannel\0"+e,this.onSend(String.fromCharCode(6,0,0,0)+a.r.IntToStr(e.length)+e),this.onKvmDataAck=!1)}}},59:(e,t,n)=>{"use strict";n.d(t,{N:()=>a});var r=n(503);class a extends r.K{constructor(e,t,n,r,a,o,i,s,l,u,c){super(e,t,n,r,a,o,i,s,l,u,c)}}},503:(e,t,n)=>{"use strict";n.d(t,{b:()=>r,K:()=>l});var r,a=n(565),o=n(568),i=n.n(o),s=n(611);!function(e){e[e.SOL=1]="SOL",e[e.KVM=2]="KVM",e[e.IDER=3]="IDER"}(r||(r={}));class l{constructor(e,t,n,r,a,o,i,s,l,u,c){this.fileReader=n,this.randomNonceChars="abcdef0123456789",this.host=r,this.port=a,this.user=o,this.pass=i,this.tls=s,this.tlsv1only=l,this.protocol=t,this.RedirectStartSol=String.fromCharCode(16,0,0,0,83,79,76,32),this.RedirectStartKvm=String.fromCharCode(16,1,0,0,75,86,77,82),this.RedirectStartIder=String.fromCharCode(16,0,0,0,73,68,69,82),this.urlvars={},this.server=c,this.amtAccumulator="",this.authUri="",this.logger=e,this.authToken=u}getWsLocation(){return this.isBrowser()&&!(0,s.f)(this.server)?`${window.location.protocol.replace("http","ws")}//\n ${window.location.host}\n ${window.location.pathname.substring(0,window.location.pathname.lastIndexOf("/"))}\n /webrelay.ashx?p=2&host=${this.host}&port=${this.port}&tls=${this.tls}${"*"===this.user?"&serverauth=1":""}${void 0===this.pass?"&serverauth=1&user="+this.user:""}&tls1only=${this.tlsv1only}`:`${String(this.server)}/webrelay.ashx?p=2&host=${this.host}&port=${this.port}&tls=${this.tls}${"*"===this.user?"&serverauth=1":""}${void 0===this.pass?"&serverauth=1&user="+this.user:""}&tls1only=${this.tlsv1only}`}isBrowser(){try{const e="undefined"!=typeof window;return e&&this.logger.debug("!!!!!BROWSER!!!!!"),e}catch(e){return!1}}start(e){this.connectState=0,this.socket=new e(this.getWsLocation(),this.authToken),this.socket.onopen=this.onSocketConnected.bind(this),this.socket.onmessage=this.onMessage.bind(this),this.socket.onclose=this.onSocketClosed.bind(this),(0,s.f)(this.fileReader)&&(0,s.f)(this.fileReader.readAsBinaryString)?this.fileReader.onload=(e=>{this.onSocketData(e.target.result),0===this.fileReaderAcc.length?this.fileReaderInUse=!1:this.fileReader.readAsBinaryString(new Blob([this.fileReaderAcc.shift()]))}).bind(this):(0,s.f)(this.fileReader)&&(0,s.f)(this.fileReader.readAsArrayBuffer)&&(this.fileReader.onloadend=(e=>{this.onSocketData(e.target.result),0===this.fileReaderAcc.length?this.fileReaderInUse=!1:this.fileReader.readAsArrayBuffer(this.fileReaderAcc.shift())}).bind(this)),this.logger.verbose("Connecting to websocket"),this.onStateChange(1)}onSocketConnected(){(0,s.f)(this.urlvars)&&(0,s.f)(this.urlvars.redirtrace)&&console.log("REDIR-CONNECT"),this.onStateChange(2),this.logger.verbose(`Connected to websocket server. With protocol ${this.protocol} (2 = KVM)`),this.logger.info(`Start Redirect Session for protocol. ${this.protocol}`),this.protocol===r.SOL&&this.socketSend(this.RedirectStartSol),this.protocol===r.KVM&&this.socketSend(this.RedirectStartKvm),this.protocol===r.IDER&&this.socketSend(this.RedirectStartIder)}onMessage(e){try{if(this.inDataCount++,"object"==typeof e.data){if(this.fileReaderInUse)return void this.fileReaderAcc.push(e.data);if(null!=this.fileReader.readAsBinaryString)this.fileReaderInUse=!0,this.fileReader.readAsBinaryString(new Blob([e.data]));else if(null!=this.fileReader.readAsArrayBuffer)this.fileReaderInUse=!0,this.fileReader.readAsArrayBuffer(e.data);else{let t="";const n=new Uint8Array(e.data),r=n.byteLength;for(let e=0;e<r;e++)t+=String.fromCharCode(n[e]);this.onSocketData(t)}}else this.onSocketData(e.data)}catch(e){this.logger.error(e),this.stop(),this.onError()}}onSocketData(e){if((0,s.f)(e)&&-1!==this.connectState){if("object"==typeof e){let t="";const n=new Uint8Array(e),r=n.byteLength;for(let e=0;e<r;e++)t+=String.fromCharCode(n[e]);e=t}else if("string"!=typeof e)return;if((this.protocol===r.KVM||this.protocol===r.IDER)&&1===this.connectState)return this.onProcessData(e);for(this.amtAccumulator+=e;this.amtAccumulator.length>=1;){let e=0;switch(this.amtAccumulator.charCodeAt(0)){case 17:if(this.logger.verbose(`Start Redirection Session reply received for ${this.protocol}`),this.amtAccumulator.length<4)return;switch(this.amtAccumulator.charCodeAt(1)){case 0:{if(this.logger.verbose("Session status success. Start handshake"),this.amtAccumulator.length<13)return;const t=this.amtAccumulator.charCodeAt(12);if(this.amtAccumulator.length<13+t)return;this.logger.verbose("Query for available authentication"),this.socketSend(String.fromCharCode(19,0,0,0,0,0,0,0,0)),e=13+t;break}default:this.stop()}break;case 20:{if(this.logger.verbose("Available Authentications reply received."),this.amtAccumulator.length<9)return;const t=a.r.ReadIntX(this.amtAccumulator,5);if(this.amtAccumulator.length<9+t)return;const n=this.amtAccumulator.charCodeAt(1),r=this.amtAccumulator.charCodeAt(4),o=[];for(let e=0;e<t;e++)o.push(this.amtAccumulator.charCodeAt(9+e));const i=this.amtAccumulator.substring(9,9+t);if(e=9+t,0===r)(0,s.f)(o.includes(4))?(this.logger.verbose("Good Digest Auth (With cnonce and all)"),this.socketSend(String.fromCharCode(19,0,0,0,4)+a.r.IntToStrX(this.user.length+this.authUri.length+8)+String.fromCharCode(this.user.length)+this.user+String.fromCharCode(0,0)+String.fromCharCode(this.authUri.length)+this.authUri+String.fromCharCode(0,0,0,0))):(0,s.f)(o.includes(3))?(this.logger.warn("Bad Digest Auth"),this.socketSend(String.fromCharCode(19,0,0,0,3)+a.r.IntToStrX(this.user.length+this.authUri.length+7)+String.fromCharCode(this.user.length)+this.user+String.fromCharCode(0,0)+String.fromCharCode(this.authUri.length)+this.authUri+String.fromCharCode(0,0,0))):(0,s.f)(o.includes(1))?(this.logger.verbose("Basic Auth"),this.socketSend(String.fromCharCode(19,0,0,0,1)+a.r.IntToStrX(this.user.length+this.pass.length+2)+String.fromCharCode(this.user.length)+this.user+String.fromCharCode(this.pass.length)+this.pass)):(this.logger.error("Auth Type not recognized. Stopping."),this.stop());else if(3!==r&&4!==r||1!==n)if(0===n){if(1===this.protocol){const e=1e4,t=100,n=0,r=1e4,o=100,i=0;this.socketSend(String.fromCharCode(32,0,0,0)+a.r.IntToStrX(this.amtSequence++)+a.r.ShortToStrX(e)+a.r.ShortToStrX(t)+a.r.ShortToStrX(n)+a.r.ShortToStrX(r)+a.r.ShortToStrX(o)+a.r.ShortToStrX(i)+a.r.IntToStrX(0))}2===this.protocol&&this.socketSend(String.fromCharCode(64,0,0,0,0,0,0,0)),3===this.protocol&&(this.connectState=1,this.onStateChange(3))}else this.stop();else{let e=0;const t=i.charCodeAt(e),n=i.substring(e+1,e+1+t);e+=t+1;const o=i.charCodeAt(e),s=i.substring(e+1,e+1+o);e+=o+1;let l=0,u=null;const c=this.generateRandomNonce(32),d="00000002";let p="";4===r&&(l=i.charCodeAt(e),u=i.substring(e+1,e+1+l),e+=l+1,p=`${d}:${c}:${String(u)} :`);const f=this.hex_md5(this.hex_md5(this.user+":"+n+":"+this.pass)+":"+s+":"+p+this.hex_md5("POST:"+this.authUri));let h=this.user.length+n.length+s.length+this.authUri.length+c.length+d.length+f.length+7;4===r&&(h+=parseInt(u.length)+1);let g=String.fromCharCode(19,0,0,0,r)+a.r.IntToStrX(h)+String.fromCharCode(this.user.length)+this.user+String.fromCharCode(n.length)+n+String.fromCharCode(s.length)+s+String.fromCharCode(this.authUri.length)+this.authUri+String.fromCharCode(c.length)+c+String.fromCharCode(d.length)+d+String.fromCharCode(f.length)+f;4===r&&(g=String(g)+(String.fromCharCode(u.length)+String(u))),this.socketSend(g)}break}case 33:if(this.amtAccumulator.length<23)break;this.logger.verbose("Response to settings"),e=23,this.socketSend(String.fromCharCode(39,0,0,0)+a.r.IntToStrX(this.amtSequence++)+String.fromCharCode(0,0,27,0,0,0)),1===this.protocol&&(this.amtKeepAliveTimer=setInterval(this.sendAmtKeepAlive.bind(this),2e3)),this.connectState=1,this.onStateChange(3);break;case 41:if(this.amtAccumulator.length<10)break;this.logger.verbose("Serial Settings"),e=10;break;case 42:{if(this.amtAccumulator.length<10)break;this.logger.verbose("Incoming display data");const t=10+((255&this.amtAccumulator.charCodeAt(9))<<8)+(255&this.amtAccumulator.charCodeAt(8));if(this.amtAccumulator.length<t)break;this.onProcessData(this.amtAccumulator.substring(10,t)),e=t;break}case 43:if(this.amtAccumulator.length<8)break;this.logger.verbose("Keep Alve message"),e=8;break;case 65:if(this.amtAccumulator.length<8)break;this.logger.verbose("KVM traffic. Call onStart handler. And forward rest of acc directly."),this.connectState=1,this.onStart(),this.amtAccumulator.length>8&&this.onProcessData(this.amtAccumulator.substring(8)),e=this.amtAccumulator.length;break;default:return this.logger.error(`Unknown Intel AMT command: ${this.amtAccumulator.charCodeAt(0)} acclen=${this.amtAccumulator.length}`),void this.stop()}if(0===e)return;this.amtAccumulator=this.amtAccumulator.substring(e)}}}hex_md5(e){return this.logger.verbose("MD5 the string"),i()(e)}socketSend(e){(0,s.f)(this.urlvars)&&(0,s.f)(this.urlvars.redirtrace)&&this.logger.verbose(`REDIR-SEND(${e.length}): ${a.r.rstr2hex(e)}`);try{if(null!=this.socket&&1===this.socket.readyState){const t=new Uint8Array(e.length);this.logger.verbose(`Redir Send( ${e.length}): ${a.r.rstr2hex(e)}`);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);this.socket.send(t.buffer)}}catch(e){this.logger.error(`Socket send error: ${String(e)}`)}}send(e){this.logger.verbose("Send called "+e),null!=this.socket&&1===this.connectState&&(this.protocol===r.SOL?this.socketSend(String.fromCharCode(40,0,0,0)+a.r.IntToStrX(this.amtSequence++)+a.r.ShortToStrX(e.length)+e):this.socketSend(e))}sendAmtKeepAlive(){null!=this.socket&&this.socketSend(String.fromCharCode(43,0,0,0)+a.r.IntToStrX(this.amtSequence++))}generateRandomNonce(e){let t="";for(let n=0;n<e;n++)t+=this.randomNonceChars.charAt(Math.floor(Math.random()*this.randomNonceChars.length));return t}onSocketClosed(e){(0,s.f)(this.urlvars)&&(0,s.f)(this.urlvars.redirtrace)&&console.log("REDIR-CLOSED"),this.logger.warn("Redir Socket Closed"),this.stop()}onStateChange(e){console.info("onstatechange",e),this.state!==e&&(this.state=e,this.onNewState(this.state),null!=this.onStateChanged&&this.onStateChanged(this,this.state))}stop(){this.logger.warn("Stop called on Redirector. Change state to 0 and close Socket."),this.onStateChange(0),this.connectState=-1,this.amtAccumulator="",null!=this.socket&&(this.socket.close(),this.socket=null),null!=this.amtKeepAliveTimer&&(clearInterval(this.amtKeepAliveTimer),this.amtKeepAliveTimer=null)}}},277:(e,t,n)=>{"use strict";n.d(t,{r:()=>r});class r{constructor(){this.terminalEmulation=1,this.fxEmulation=0,this.fxLineBreak=0,this.AsciiToUnicode=[199,252,233,226,228,224,229,231,234,235,232,239,238,236,196,197,201,230,198,244,246,242,251,249,255,214,220,162,163,165,8359,402,225,237,243,250,241,209,170,218,191,8976,172,189,188,161,171,187,9619,9618,9617,9474,9508,9569,9570,9558,9557,9571,9553,9559,9565,9564,9563,9488,9492,9524,9516,9500,9472,9532,9566,9567,9562,9556,9577,9574,9568,9552,9580,9575,9576,9572,9573,9576,9560,9554,9555,9579,9578,9496,9484,9608,9604,9611,9616,9600,945,223,915,960,931,963,181,964,966,952,8486,948,8734,248,949,8719,8801,177,8805,8806,8992,8993,247,8776,176,8226,183,8730,8319,178,8718,160],this.AsciiToUnicodeIntel=[199,252,233,226,228,224,229,231,234,235,232,239,238,236,196,197,201,230,198,244,246,242,251,249,255,214,220,162,163,165,8359,402,225,237,243,250,241,209,170,218,191,8976,172,189,188,161,174,187,9619,9618,9617,9474,9508,9569,9570,9558,9557,9571,9553,9559,9565,9564,9563,9488,9492,9524,9516,9500,9472,9532,9566,9567,9562,9556,9577,9574,9568,9552,9580,9575,9576,9572,9573,9576,9560,9554,9555,9579,9578,9496,9484,9608,9604,9611,9616,9600,945,223,915,960,931,963,181,964,966,952,8486,948,8734,248,949,8719,8801,177,8805,8806,8992,8993,247,8776,176,8226,183,8730,8319,178,8718,160],this.StateChange=e=>{},this.TermSendKeys=e=>this.onSend(e)}}},237:(e,t,n)=>{"use strict";n.d(t,{k:()=>a});var r=n(201);class a{constructor(e){this.minLevel=e}log(e,t){switch(e){case r.i.VERBOSE:this.verbose(t);break;case r.i.INFO:this.info(t);break;case r.i.DEBUG:this.debug(t);break;case r.i.WARNING:this.warn(t);break;case r.i.ERROR:this.error(t)}}debug(e){this.minLevel>=r.i.DEBUG&&console.debug(e)}info(e){this.minLevel>=r.i.INFO&&console.info(e)}error(e){this.minLevel>=r.i.ERROR&&console.error(e)}warn(e){this.minLevel>=r.i.WARNING&&console.warn(e)}verbose(e){this.minLevel>=r.i.VERBOSE&&console.log(e)}}},565:(e,t,n)=>{"use strict";n.d(t,{r:()=>a});var r=n(611);const a={ReadShort:(e,t)=>(e.charCodeAt(t)<<8)+e.charCodeAt(t+1),ReadShortX:(e,t)=>(e.charCodeAt(t+1)<<8)+e.charCodeAt(t),ReadInt:(e,t)=>16777216*e.charCodeAt(t)+(e.charCodeAt(t+1)<<16)+(e.charCodeAt(t+2)<<8)+e.charCodeAt(t+3),ReadSInt:(e,t)=>(e.charCodeAt(t)<<24)+(e.charCodeAt(t+1)<<16)+(e.charCodeAt(t+2)<<8)+e.charCodeAt(t+3),ReadIntX:(e,t)=>16777216*e.charCodeAt(t+3)+(e.charCodeAt(t+2)<<16)+(e.charCodeAt(t+1)<<8)+e.charCodeAt(t),ShortToStr:e=>String.fromCharCode(e>>8&255,255&e),ShortToStrX:e=>String.fromCharCode(255&e,e>>8&255),IntToStr:e=>String.fromCharCode(e>>24&255,e>>16&255,e>>8&255,255&e),IntToStrX:e=>String.fromCharCode(255&e,e>>8&255,e>>16&255,e>>24&255),SplitArray:e=>e.split(","),Clone:e=>JSON.parse(JSON.stringify(e)),EscapeHtml:e=>"string"==typeof e?e.replace(/&/g,"&").replace(/>/g,">").replace(/</g,"<").replace(/"/g,""").replace(/'/g,"'"):"boolean"==typeof e||"number"==typeof e?e:void 0,ArrayElementMove(e,t,n){e.splice(n,0,e.splice(t,1)[0])},ObjectToStringEx(e,t){let n="";if(0!==e&&(!(0,r.f)(e)||null==e))return"(Null)";if(e instanceof Array)for(const r in e)n=n+"<br />"+String(this.gap(t))+"Item #"+String(r)+": "+String(this.ObjectToStringEx(e[r],t+1));else if(e instanceof Object)for(const r in e)n=n+"<br />"+String(this.gap(t))+String(r)+" = "+String(this.ObjectToStringEx(e[r],t+1));else n+=String(this.EscapeHtml(e));return n},ObjectToStringEx2(e,t){let n="";if(0!==e&&(!(0,r.f)(e)||null==e))return"(Null)";if(e instanceof Array)for(const r in e)n=n+"\r\n"+String(this.gap2(t))+"Item #"+String(r)+": "+String(this.ObjectToStringEx2(e[r],t+1));else if(e instanceof Object)for(const r in e)n=n+"\r\n"+String(this.gap2(t))+String(r)+" = "+String(this.ObjectToStringEx2(e[r],t+1));else n+=String(this.EscapeHtml(e));return n},gap(e){let t="";for(let n=0;n<4*e;n++)t+=" ";return t},gap2(e){let t="";for(let n=0;n<4*e;n++)t+=" ";return t},ObjectToString(e){return this.ObjectToStringEx(e,0)},ObjectToString2(e){return this.ObjectToStringEx2(e,0)},char2hex:e=>(e+256).toString(16).substr(-2).toUpperCase(),rstr2hex(e){let t,n="";for(t=0;t<e.length;t++)n+=String(this.char2hex(e.charCodeAt(t)));return n},encode_utf8:e=>unescape(encodeURIComponent(e)),decode_utf8:e=>decodeURIComponent(escape(e)),data2blob(e){const t=new Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return new Blob([new Uint8Array(t)])},random:e=>Math.floor(Math.random()*e),trademarks:e=>e.replace(/\(R\)/g,"®").replace(/\(TM\)/g,"™")}},46:(e,t,n)=>{"use strict";n.d(t,{H:()=>r});class r{processData(e){}onStateChange(e){}start(){}onSendKvmData(e){}}},784:(e,t,n)=>{"use strict";n.d(t,{$:()=>o});var r=n(989),a=n(611);class o{constructor(e,t,n){this.acc="",this.stateProcessorFac=new r.v(t,n,this.updateRFBState.bind(this)),this.parent=n,this.logger=e}processData(e){if(!(0,a.f)(e))return;this.acc+=e;let t=0;for(this.logger.verbose(`Process Data ACC length: ${this.acc.length}`);this.acc.length>0;){const e=this.stateProcessorFac.getProcessor(this.parent.state),n=this.parent.state;if(t=e.processState(this.acc),this.logger.verbose(`State ${n} Processed. cmdSize returned ${t}`),0===t)return;this.acc=this.acc.substring(t),this.logger.verbose(`remaining acc ${this.acc.length} command size: ${t} new parent state: ${this.parent.state}`)}}updateRFBState(e){this.parent.state=e}}},679:(e,t,n)=>{"use strict";n.d(t,{X:()=>a});var r=n(644);class a{constructor(e){this.parent=e}Decode(e,t,n,a,o,i,s,l){const u=e.charCodeAt(t++);let c,d,p;const f={};let h,g=0,v=0;if(0===u){for(this.parent.logger.verbose("Raw encoding"),h=0;h<s;h++)r.j.setPixel(this.parent,e.charCodeAt(t++)+(2===this.parent.bpp?e.charCodeAt(t++)<<8:0),h);r.j.putImage(this.parent,n,a)}else if(1===u){d=e.charCodeAt(t++)+(2===this.parent.bpp?e.charCodeAt(t++)<<8:0),this.parent.canvasCtx.fillStyle="rgb("+(1===this.parent.bpp?`${224&d}, ${(28&d)<<3}, ${r.j.fixColor((3&d)<<6)}`:`${d>>8&248}, ${d>>3&252},${(31&d)<<3}`)+")",this.parent.logger.verbose("fillstyle: "+this.parent.canvasCtx.fillStyle);const s=r.j.rotX(this.parent,n,a);a=r.j.rotY(this.parent,n,a),n=s,this.parent.canvasCtx.fillRect(n,a,o,i)}else if(u>1&&u<17){this.parent.logger.verbose("Read the packed palette");let o=4,i=15;for(h=0;h<u;h++)f[h]=e.charCodeAt(t++)+(2===this.parent.bpp?e.charCodeAt(t++)<<8:0);for(2===u?(o=1,i=1):u<=4&&(o=2,i=3);g<s&&t<e.length;)for(d=e.charCodeAt(t++),h=8-o;h>=0;h-=o)r.j.setPixel(this.parent,f[d>>h&i],g++);r.j.putImage(this.parent,n,a)}else if(128===u){for(this.parent.logger.verbose("RLE encoded tile");g<s&&t<e.length;){d=e.charCodeAt(t++)+(2===this.parent.bpp?e.charCodeAt(t++)<<8:0),v=1;do{v+=p=e.charCodeAt(t++)}while(255===p);for(;--v>=0;)r.j.setPixel(this.parent,d,g++)}r.j.putImage(this.parent,n,a)}else if(u>129){for(this.parent.logger.verbose("Read the RLE palette"),h=0;h<u-128;h++)f[h]=e.charCodeAt(t++)+(2===this.parent.bpp?e.charCodeAt(t++)<<8:0);for(this.parent.logger.verbose("Decode RLE on palette");g<s&&t<e.length;){if(v=1,c=e.charCodeAt(t++),d=f[c%128],c>127)do{v+=p=e.charCodeAt(t++)}while(255===p);for(;--v>=0;)r.j.setPixel(this.parent,d,g++)}r.j.putImage(this.parent,n,a)}}}},646:(e,t,n)=>{"use strict";n.d(t,{$:()=>r.$,X:()=>a.X});var r=n(784),a=n(679)},663:(e,t,n)=>{"use strict";var r;n.d(t,{i:()=>r}),function(e){e[e.VERBOSE=5]="VERBOSE",e[e.INFO=4]="INFO",e[e.DEBUG=3]="DEBUG",e[e.WARNING=2]="WARNING",e[e.ERROR=1]="ERROR"}(r||(r={}))},201:(e,t,n)=>{"use strict";n.d(t,{i:()=>r.i});var r=n(663)},725:(e,t,n)=>{"use strict";n.d(t,{e:()=>o});var r=n(565),a=n(8);class o{constructor(e,t,n,r){this.wsSocket=e,this.parent=t,this.rleDecoder=n,this.updateRFBState=r}processState(e){let t=0;if(e.length>=12){const n=r.r.ReadShort(e,0),o=r.r.ReadShort(e,2),i=r.r.ReadShort(e,4),s=r.r.ReadShort(e,6),l=i*s,u=r.r.ReadInt(e,8);if(u<17){if(i<1||i>64||s<1||s>64)throw this.parent.logger.error(`Invalid tile size (${i},${s}), disconnecting.`),new Error("Invalid tile size");if(this.parent.sparew!==i||this.parent.spareh!==s){this.parent.sparew=this.parent.sparew2=i,this.parent.spareh=this.parent.spareh2=s,1!==this.parent.rotation&&3!==this.parent.rotation||(this.parent.sparew2=s,this.parent.spareh2=i);const e=`${this.parent.sparew2}x${this.parent.spareh2}`;this.parent.spare=this.parent.sparecache[e],(0,a.fQ)(this.parent.spare)||(this.parent.sparecache[e]=this.parent.spare=this.parent.canvasCtx.createImageData(this.parent.sparew2,this.parent.spareh2))}}if(4294967073===u)this.parent.logger.verbose("Desktop size"),this.parent.canvasCtx.canvas.width=this.parent.ScreenWidth=this.parent.rwidth=this.parent.width=i,this.parent.canvasCtx.canvas.height=this.parent.ScreenHeight=this.parent.rheight=this.parent.height=s,this.wsSocket.send(String.fromCharCode(3,0,0,0,0,0)+r.r.ShortToStr(this.parent.width)+r.r.ShortToStr(this.parent.height)),t=12,null!=this.parent.onScreenSizeChange&&this.parent.onScreenSizeChange(this.parent.ScreenWidth,this.parent.ScreenHeight);else if(0===u){let r=12;const i=12+l*this.parent.bpp;if(e.length<i)return 0;t=i;for(let t=0;t<l;t++)a.jw.setPixel(this.parent,e.charCodeAt(r++)+(2===this.parent.bpp?e.charCodeAt(r++)<<8:0),t);a.jw.putImage(this.parent,n,o)}else{if(16!==u)throw this.parent.logger.error(`Unknown Encoding: ${u} , HEX: ${r.r.rstr2hex(e)}`),new Error(`Unknown Encoding: ${u}`);{if(e.length<16)return 0;const a=r.r.ReadInt(e,12);if(e.length<16+a)return 0;const u=16,c=5,d=0;if(a>5&&0===e.charCodeAt(u)&&r.r.ReadShortX(e,u+1)===a-c)this.rleDecoder.Decode(e,u+5,n,o,i,s,l,a);else{const t=e.substring(u,u+a-d),r=this.parent.inflate.inflate(t);if(!(r.length>0))throw this.parent.logger.error("Invalid deflate data."),new Error("invalid deflate data");this.rleDecoder.Decode(r,0,n,o,i,s,l,r.length)}t=16+a}}if(100==--this.parent.state){this.parent.logger.debug("Frame completed. Update state and request new frame"),this.updateRFBState(4);const e=()=>a.Xn.sendRefresh(this.parent,this.wsSocket);0===this.parent.frameRateDelay?a.Xn.sendRefresh(this.parent,this.wsSocket):setTimeout(e,this.parent.frameRateDelay)}}return t}}},70:(e,t,n)=>{"use strict";n.d(t,{U:()=>a});var r=n(565);class a{constructor(e,t,n){this.wsSocket=e,this.serverCutTextHandler=t,this.updateRFBState=n}processState(e){let t=0,n=0;switch(e.charCodeAt(0)){case 0:if(e.length<4)return 0;this.updateRFBState(100+r.r.ReadShort(e,2)),t=4;break;case 2:t=1;break;case 3:if(e.length<8)return 0;if(n=r.r.ReadInt(e,4)+8,e.length<n)return 0;t=this.serverCutTextHandler.handleServerCutText(e)}return t}}},212:(e,t,n)=>{"use strict";n.d(t,{w:()=>r});class r{constructor(e,t){this.wsSocket=e,this.updateRFBState=t}processState(e){let t=0;return e.length>=12?(t=12,this.updateRFBState(1),this.wsSocket.send("RFB 003.008\n"),t):0}}},26:(e,t,n)=>{"use strict";n.d(t,{l:()=>r});class r{constructor(e,t){this.wsSocket=e,this.updateRFBState=t}processState(e){let t=0;return e.length>=1?(t=e.charCodeAt(0)+1,this.wsSocket.send(String.fromCharCode(1)),this.updateRFBState(2),t):0}}},724:(e,t,n)=>{"use strict";n.d(t,{m:()=>a});var r=n(565);class a{constructor(e,t){this.wsSocket=e,this.updateRFBState=t}processState(e){let t=0;if(e.length>=4){if(t=4,0!==r.r.ReadInt(e,0))throw new Error("Error. Stopping. Security response not None.");return this.wsSocket.send(String.fromCharCode(1)),this.updateRFBState(3),t}return 0}}},256:(e,t,n)=>{"use strict";n.d(t,{I:()=>o});var r=n(565),a=n(611);class o{constructor(e,t){this.wsSocket=e,this.parent=t}handleServerCutText(e){if(e.length<8)return 0;const t=r.r.ReadInt(e,4)+8;if(e.length<t)return 0;if(null!=this.parent.onKvmData){const n=e.substring(8,t);n.length>=16&&"\0KvmDataChannel"===n.substring(0,15)&&(this.parent.kvmDataSupported||(this.parent.kvmDataSupported=!0,console.log("KVM Data Channel Supported.")),(-1===this.parent.onKvmDataAck&&16===n.length||0!==n.charCodeAt(15))&&(this.parent.onKvmDataAck=!0),(0,a.f)(this.parent.urlvars)&&(0,a.f)(this.parent.urlvars.kvmdatatrace)&&console.log(`KVM-Recv((${n.length-16})): ${n.substring(16)}`),n.length>16&&this.parent.onKvmData(n.substring(16)),!0===this.parent.onKvmDataAck&&this.parent.onKvmDataPending.length>0&&this.wsSocket.onSendKvmData(this.parent.onKvmDataPending.shift()))}return t}}},946:(e,t,n)=>{"use strict";n.d(t,{C:()=>o});var r=n(565),a=n(173);class o{constructor(e,t,n){this.wsSocket=e,this.parent=t,this.updateRFBState=n}processState(e){let t=0;if(e.length>=24){this.parent.rotation=0;const n=r.r.ReadInt(e,20);if(e.length<24+n)return 0;t=24+n,null!=this.parent.updateScreenDimensions&&this.parent.updateScreenDimensions(r.r.ReadShort(e,0),r.r.ReadShort(e,2)),this.parent.canvasCtx.canvas.width=this.parent.ScreenWidth=this.parent.rwidth=this.parent.width=r.r.ReadShort(e,0),this.parent.canvasCtx.canvas.height=this.parent.ScreenHeight=this.parent.rheight=this.parent.height=r.r.ReadShort(e,2);let o="";return this.parent.useZRLE&&(o+=r.r.IntToStr(16)),o+=r.r.IntToStr(0),o+=r.r.IntToStr(1092),this.parent.logger.verbose("Send supported encodings"),this.wsSocket.send(String.fromCharCode(2,0)+r.r.ShortToStr(o.length/4+1)+o+r.r.IntToStr(-223)),1===this.parent.bpp&&this.wsSocket.send(String.fromCharCode(0,0,0,0,8,8,0,1)+r.r.ShortToStr(7)+r.r.ShortToStr(7)+r.r.ShortToStr(3)+String.fromCharCode(5,2,0,0,0,0)),this.updateRFBState(4),this.parent.onStateChange(3),this.parent.logger.info("Start new frame."),a.X.sendRefresh(this.parent,this.wsSocket),this.parent.oldMouseX=-1,t}return 0}}},389:(e,t,n)=>{"use strict";n.d(t,{ez:()=>r.e,wW:()=>a.w,Ut:()=>o.U,ll:()=>i.l,mC:()=>s.m,Cu:()=>l.C});var r=n(725),a=n(212),o=n(70),i=n(26),s=n(724),l=n(946)},989:(e,t,n)=>{"use strict";n.d(t,{v:()=>i});var r=n(389),a=n(256),o=n(679);class i{constructor(e,t,n){this.stateProcessors={},this.stateProcessors[0]=new r.wW(e,n),this.stateProcessors[1]=new r.ll(e,n),this.stateProcessors[2]=new r.mC(e,n),this.stateProcessors[3]=new r.Cu(e,t,n);const i=new a.I(e,t);this.stateProcessors[4]=new r.Ut(e,i,n),this.stateProcessors["100plus"]=new r.ez(e,t,new o.X(t),n)}getProcessor(e){return e<=100?this.stateProcessors[e]:this.stateProcessors["100plus"]}}},155:(e,t,n)=>{"use strict";n.d(t,{Q:()=>r});class r{constructor(e){this.processData=e=>{null!=this.terminal.capture&&(this.terminal.capture=String(this.terminal.capture)+e);let t="";for(let n=0;n<e.length;n++){const r=e.charCodeAt(n);"J"===e[n]?this.clearTerminal():t+=0!=(128&r)?String.fromCharCode(this.terminal.AsciiToUnicode[127&r]):`${e[n]}`}this.processDataToXterm(t)},this.terminal=e}}},38:(e,t,n)=>{"use strict";n.d(t,{q:()=>o});var r=n(923),a=n(611);const o={convertAMTKeyCode:e=>(0,a.f)(e.code.startsWith("Key"))&&4===e.code.length?e.code.charCodeAt(3)+(!1===e.shiftKey?32:0):(0,a.f)(e.code.startsWith("Digit"))&&6===e.code.length?e.code.charCodeAt(5):(0,a.f)(e.code.startsWith("Numpad"))&&7===e.code.length?e.code.charCodeAt(6):r.Z[e.code]}},923:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r={Pause:19,CapsLock:20,Space:32,Quote:39,Minus:45,NumpadMultiply:42,NumpadAdd:43,PrintScreen:44,Comma:44,NumpadSubtract:45,NumpadDecimal:46,Period:46,Slash:47,NumpadDivide:47,Semicolon:59,Equal:61,OSLeft:91,BracketLeft:91,OSRight:91,Backslash:92,BracketRight:93,ContextMenu:93,Backquote:96,NumLock:144,ScrollLock:145,Backspace:65288,Tab:65289,Enter:65293,NumpadEnter:65293,Escape:65307,Delete:65535,Home:65360,PageUp:65365,PageDown:65366,ArrowLeft:65361,ArrowUp:65362,ArrowRight:65363,ArrowDown:65364,End:65367,Insert:65379,F1:65470,F2:65471,F3:65472,F4:65473,F5:65474,F6:65475,F7:65476,F8:65477,F9:65478,F10:65479,F11:65480,F12:65481,ShiftLeft:65505,ShiftRight:65506,ControlLeft:65507,ControlRight:65508,AltLeft:65513,AltRight:65514,MetaLeft:65511,MetaRight:65512}},173:(e,t,n)=>{"use strict";n.d(t,{X:()=>o});var r=n(565),a=n(611);const o={sendRefresh(e,t){if(!e.holding)if(e.focusMode>0){const n=2*e.focusMode;t.send(String.fromCharCode(3,1)+r.r.ShortToStr(Math.max(Math.min(e.oldMouseX,e.lastMouseX)-e.focusMode,0))+r.r.ShortToStr(Math.max(Math.min(e.oldMouseY,e.lastMouseY)-e.focusMode,0))+r.r.ShortToStr(n+Math.abs(e.oldMouseX-e.lastMouseX))+r.r.ShortToStr(n+Math.abs(e.oldMouseY-e.lastMouseY))),e.oldMouseX=e.lastMouseX,e.oldMouseY=e.lastMouseY}else t.send(String.fromCharCode(3,1,0,0,0,0)+r.r.ShortToStr(e.rwidth)+r.r.ShortToStr(e.rheight))},sendKey(e,t,n){if("object"==typeof t)for(const n in t)this.sendKey(e,t[n][0],t[n][1]);else e.send(String.fromCharCode(4,n,0,0)+r.r.IntToStr(t))},sendKvmData(e,t,n){!0!==e.onKvmDataAck?e.onKvmDataPending.push(n):((0,a.f)(e.urlvars)&&(0,a.f)(e.urlvars.kvmdatatrace)&&console.log(`KVM-Send(${String(n.length)}): ${String(n)}`),n="\0KvmDataChannel\0"+String(n),t.send(`${String.fromCharCode(6,0,0,0)}${r.r.IntToStr(n.length)}${String(n)}`),e.onKvmDataAck=!1)},sendKeepAlive(e,t){e.lastKeepAlive<Date.now()-5e3&&(e.lastKeepAlive=Date.now(),t.send(String.fromCharCode(6,0,0,0)+r.r.IntToStr(16)+"\0KvmDataChannel\0"))},sendCtrlAltDelMsg(e){this.sendCad(e)},sendCad(e){this.sendKey(e,65507,1),this.sendKey(e,65513,1),this.sendKey(e,65535,1),this.sendKey(e,65535,0),this.sendKey(e,65513,0),this.sendKey(e,65507,0)}}},644:(e,t,n)=>{"use strict";n.d(t,{j:()=>r});const r={putImage(e,t,n){if(e.holding)return;const a=r.arotX(e,t,n);n=r.arotY(e,t,n),t=a,e.canvasCtx.putImageData(e.spare,t,n)},setPixel(e,t,n){let a,o,i=4*n;e.rotation>0&&(1===e.rotation?(a=n%e.sparew,o=Math.floor(n/e.sparew),i=4*(n=a*e.sparew2+(e.sparew2-1-o))):2===e.rotation?i=e.sparew*e.spareh*4-4-i:3===e.rotation&&(a=n%e.sparew,o=Math.floor(n/e.sparew),i=4*(n=(e.sparew2-1-a)*e.sparew2+o))),1===e.bpp?(e.spare.data[i++]=224&t,e.spare.data[i++]=(28&t)<<3,e.spare.data[i++]=r.fixColor((3&t)<<6)):(e.spare.data[i++]=t>>8&248,e.spare.data[i++]=t>>3&252,e.spare.data[i++]=(31&t)<<3),e.spare.data[i]=255},arotX:(e,t,n)=>0===e.rotation?t:1===e.rotation?e.canvasCtx.canvas.width-e.sparew2-n:2===e.rotation?e.canvasCtx.canvas.width-e.sparew2-t:3===e.rotation?n:0,arotY:(e,t,n)=>0===e.rotation?n:1===e.rotation?t:2===e.rotation?e.canvasCtx.canvas.height-e.spareh2-n:3===e.rotation?e.canvasCtx.canvas.height-e.spareh-t:0,crotX:(e,t,n)=>0===e.rotation?t:1===e.rotation?n:2===e.rotation?e.canvasCtx.canvas.width-t:3===e.rotation?e.canvasCtx.canvas.height-n:0,crotY:(e,t,n)=>0===e.rotation?n:1===e.rotation?e.canvasCtx.canvas.width-t:2===e.rotation?e.canvasCtx.canvas.height-n:3===e.rotation?t:0,rotX:(e,t,n)=>0===e.rotation||1===e.rotation?t:2===e.rotation?t-e.canvasCtx.canvas.width:3===e.rotation?t-e.canvasCtx.canvas.height:0,rotY:(e,t,n)=>0===e.rotation?n:1===e.rotation?n-e.canvasCtx.canvas.width:2===e.rotation?n-e.canvasCtx.canvas.height:3===e.rotation?n:0,setRotation(e,t){for(;t<0;)t+=4;const n=t%4;if(e.holding)return e.rotation=n,!1;if(n===e.rotation)return!0;let a=e.canvasCtx.canvas.width,o=e.canvasCtx.canvas.height;1!==e.rotation&&3!==e.rotation||(a=e.canvasCtx.canvas.height,o=e.canvasCtx.canvas.width),null==e.tcanvas&&(e.tcanvas=document.createElement("canvas"));const i=e.tcanvas.getContext("2d");return i.setTransform(1,0,0,1,0,0),i.canvas.width=a,i.canvas.height=o,i.rotate(-90*e.rotation*Math.PI/180),0===e.rotation&&i.drawImage(e.canvasCtx.canvas,0,0),1===e.rotation&&i.drawImage(e.canvasCtx.canvas,-e.canvasCtx.canvas.width,0),2===e.rotation&&i.drawImage(e.canvasCtx.canvas,-e.canvasCtx.canvas.width,-e.canvasCtx.canvas.height),3===e.rotation&&i.drawImage(e.canvasCtx.canvas,0,-e.canvasCtx.canvas.height),0!==e.rotation&&2!==e.rotation||(e.canvasCtx.canvas.height=a,e.canvasCtx.canvas.width=o),1!==e.rotation&&3!==e.rotation||(e.canvasCtx.canvas.height=o,e.canvasCtx.canvas.width=a),e.canvasCtx.setTransform(1,0,0,1,0,0),e.canvasCtx.rotate(90*n*Math.PI/180),e.rotation=n,e.canvasCtx.drawImage(e.tcanvas,r.rotX(e,0,0),r.rotY(e,0,0)),e.width=e.canvasCtx.canvas.width,e.height=e.canvasCtx.canvas.height,null!=e.onScreenResize&&e.onScreenResize(e.width,e.height,e.canvasId),!0},fixColor:e=>e>127?e+32:e}},717:(e,t,n)=>{"use strict";n.d(t,{E:()=>s});var r,a=n(38),o=n(173),i=n(611);!function(e){e[e.Up=0]="Up",e[e.Down=1]="Down"}(r||(r={}));class s{constructor(e,t){this.Comms=t,this.parent=e}GrabKeyInput(){this.KeyInputGrab||(document.onkeyup=this.handleKeyUp.bind(this),document.onkeydown=this.handleKeyDown.bind(this),document.onkeypress=this.handleKeys.bind(this),this.KeyInputGrab=!0)}UnGrabKeyInput(){this.KeyInputGrab&&(document.onkeyup=null,document.onkeydown=null,document.onkeypress=null,this.KeyInputGrab=!1)}handleKeys(e){return this.haltEvent(e)}haltEvent(e){return(0,i.f)(e.preventDefault)&&e.preventDefault(),(0,i.f)(e.stopPropagation)&&e.stopPropagation(),!1}handleKeyUp(e){return this.handleKeyEvent(r.Up,e)}handleKeyDown(e){return this.handleKeyEvent(r.Down,e)}handleKeyEvent(e,t){let n=t;if((0,i.f)(n)||(n=window.event),(0,i.f)(n.code)){const t=a.q.convertAMTKeyCode(n);this.parent.logger.verbose(`Key ${e} : ${String(t)}`),null!=t&&o.X.sendKey(this.Comms,t,e)}else{let t=n.keyCode;173===t&&(t=189),61===t&&(t=187);let r=t;!1===n.shiftKey&&t>=65&&t<=90&&(r=t+32),t>=112&&t<=124&&(r=t+65358),8===t&&(r=65288),9===t&&(r=65289),13===t&&(r=65293),16===t&&(r=65505),17===t&&(r=65507),18===t&&(r=65513),27===t&&(r=65307),33===t&&(r=65365),34===t&&(r=65366),35===t&&(r=65367),36===t&&(r=65360),37===t&&(r=65361),38===t&&(r=65362),39===t&&(r=65363),40===t&&(r=65364),45===t&&(r=65379),46===t&&(r=65535),t>=96&&t<=105&&(r=t-48),106===t&&(r=42),107===t&&(r=43),109===t&&(r=45),110===t&&(r=46),111===t&&(r=47),186===t&&(r=59),187===t&&(r=61),188===t&&(r=44),189===t&&(r=45),190===t&&(r=46),191===t&&(r=47),192===t&&(r=96),219===t&&(r=91),220===t&&(r=92),221===t&&(r=93),222===t&&(r=39),this.parent.logger.verbose(`Key ${e}: ${t} = ${r}`),o.X.sendKey(this.Comms,r,e)}return this.haltEvent(n)}}},33:(e,t,n)=>{"use strict";n.d(t,{x:()=>i});var r=n(565),a=n(644),o=n(611);class i{constructor(e,t,n){this.parent=e,this.comm=t,this.debounceTime=n,this.mouseClickCompleted=!0,this.lastEvent=null}GrabMouseInput(){this.MouseInputGrab||(this.MouseInputGrab=!0)}UnGrabMouseInput(){if(!this.MouseInputGrab)return;const e=this.parent.canvasCtx.canvas;e.onmousemove=null,e.onmouseup=null,e.onmousedown=null,this.MouseInputGrab=!1}mousedown(e){return this.parent.buttonmask|=1<<e.button,this.mousemove(e)}mouseup(e){return this.parent.buttonmask&=65535-(1<<e.button),this.mousemove(e)}mousemove(e){if(4!==this.parent.state)return!0;const t=this.getPositionOfControl(this.parent.canvasControl);if(this.parent.lastMouseX=(e.pageX-t[0])*(this.parent.canvasControl.height/this.parent.canvasControl.offsetHeight),this.parent.lastMouseY=(Number(e.pageY-t[1])+((0,o.f)(this.parent.scrolldiv)?Number(this.parent.scrolldiv.scrollTop):0))*(this.parent.canvasControl.width/this.parent.canvasControl.offsetWidth),(0,o.f)(this.parent.noMouseRotate)||(this.parent.lastMouseX2=a.j.crotX(this.parent,this.parent.lastMouseX,this.parent.lastMouseY),this.parent.lastMouseY=a.j.crotY(this.parent,this.parent.lastMouseX,this.parent.lastMouseY),this.parent.lastMouseX=this.parent.lastMouseX2),this.comm.send(String.fromCharCode(5,this.parent.buttonmask)+r.r.ShortToStr(this.parent.lastMouseX)+r.r.ShortToStr(this.parent.lastMouseY)),this.parent.setDeskFocus("DeskFocus",this.parent.focusMode),0!==this.parent.focusMode){const e=Math.min(this.parent.lastMouseX,this.parent.canvasControl.width-this.parent.focusMode),n=Math.min(this.parent.lastMouseY,this.parent.canvasControl.height-this.parent.focusMode),r=2*this.parent.focusMode,a=this.parent.canvasControl,o=a.offsetHeight/this.parent.canvasControl.height,i=a.offsetWidth/this.parent.canvasControl.width,s=this.parent.getDeskFocus("DeskFocus"),l=this.getPositionOfControl(this.parent.canvasControl.parentElement);s.left=`${Math.max((e-this.parent.focusMode)*o,0)+(t[0]-l[0])}px`,s.top=`${Math.max((n-this.parent.focusMode)*i,0)+(t[1]-l[1])}px`,s.width=r*o-6+"px",s.height=r*o-6+"px"}return this.haltEvent(e)}haltEvent(e){return(0,o.f)(e.preventDefault)&&e.preventDefault(),(0,o.f)(e.stopPropagation)&&e.stopPropagation(),!1}getPositionOfControl(e){const t=Array(2);t[0]=t[1]=0;let n=e;for(;null!=n;)t[0]=Number(t[0])+Number(n.offsetLeft),t[1]=Number(t[1])+Number(n.offsetTop),n=n.offsetParent;return t}}},611:(e,t,n)=>{"use strict";n.d(t,{f:()=>r});const r=e=>null!=e&&""!==e&&!1!==e&&0!==e},8:(e,t,n)=>{"use strict";n.d(t,{qD:()=>r.q,Xn:()=>a.X,jw:()=>o.j,EB:()=>i.E,xx:()=>s.x,fQ:()=>l.f});var r=n(38),a=n(173),o=n(644),i=n(717),s=n(33),l=n(611)},305:module=>{var ZLIB=ZLIB||{},BASE,NMAX;void 0===ZLIB.common_initialized&&(ZLIB.Z_NO_FLUSH=0,ZLIB.Z_PARTIAL_FLUSH=1,ZLIB.Z_SYNC_FLUSH=2,ZLIB.Z_FULL_FLUSH=3,ZLIB.Z_FINISH=4,ZLIB.Z_BLOCK=5,ZLIB.Z_TREES=6,ZLIB.Z_OK=0,ZLIB.Z_STREAM_END=1,ZLIB.Z_NEED_DICT=2,ZLIB.Z_ERRNO=-1,ZLIB.Z_STREAM_ERROR=-2,ZLIB.Z_DATA_ERROR=-3,ZLIB.Z_MEM_ERROR=-4,ZLIB.Z_BUF_ERROR=-5,ZLIB.Z_VERSION_ERROR=-6,ZLIB.Z_DEFLATED=8,ZLIB.z_stream=function(){this.next_in=0,this.avail_in=0,this.total_in=0,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=null,this.state=null,this.data_type=0,this.adler=0,this.input_data="",this.output_data="",this.error=0,this.checksum_function=null},ZLIB.gz_header=function(){this.text=0,this.time=0,this.xflags=0,this.os=255,this.extra=null,this.extra_len=0,this.extra_max=0,this.name=null,this.name_max=0,this.comment=null,this.comm_max=0,this.hcrc=0,this.done=0},ZLIB.common_initialized=!0),void 0===ZLIB&&alert("ZLIB is not defined. SRC zlib.js before zlib-inflate.js"),function(){var DEF_WBITS=15,HEAD=0,FLAGS=1,TIME=2,OS=3,EXLEN=4,EXTRA=5,NAME=6,COMMENT=7,HCRC=8,DICTID=9,DICT=10,TYPE=11,TYPEDO=12,STORED=13,COPY_=14,COPY=15,TABLE=16,LENLENS=17,CODELENS=18,LEN_=19,LEN=20,LENEXT=21,DIST=22,DISTEXT=23,MATCH=24,LIT=25,CHECK=26,LENGTH=27,DONE=28,BAD=29,MEM=30,SYNC=31,ENOUGH_LENS=852,ENOUGH_DISTS=592,ENOUGH=ENOUGH_LENS+ENOUGH_DISTS,CODES=0,LENS=1,DISTS=2,inflate_table_lbase=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],inflate_table_lext=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,203,69],inflate_table_dbase=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],inflate_table_dext=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];function inflate_table(e,t){var n,r,a,o,i,s,l,u,c,d,p,f,h,g,v,m,b,y,S,w,k,C,E=e.next,x=t==DISTS?e.distbits:e.lenbits,_=e.work,T=e.lens,A=t==DISTS?e.nlen:0,I=e.codes;n=t==LENS?e.nlen:t==DISTS?e.ndist:19;var N=new Array(16),R=new Array(16);for(r=0;r<=15;r++)N[r]=0;for(a=0;a<n;a++)N[T[A+a]]++;for(s=x,i=15;i>=1&&0==N[i];i--);if(s>i&&(s=i),0==i)return m={op:64,bits:1,val:0},I[E++]=m,I[E++]=m,t==DISTS?e.distbits=1:e.lenbits=1,e.next=E,0;for(o=1;o<i&&0==N[o];o++);for(s<o&&(s=o),c=1,r=1;r<=15;r++)if(c<<=1,(c-=N[r])<0)return-1;if(c>0&&(t==CODES||1!=i))return e.next=E,-1;for(R[1]=0,r=1;r<15;r++)R[r+1]=R[r]+N[r];for(a=0;a<n;a++)0!=T[A+a]&&(_[R[T[A+a]]++]=a);switch(t){case CODES:y=w=_,S=0,k=0,C=19;break;case LENS:y=inflate_table_lbase,S=-257,w=inflate_table_lext,k=-257,C=256;break;default:y=inflate_table_dbase,w=inflate_table_dext,S=0,k=0,C=-1}if(p=0,a=0,r=o,b=E,l=s,u=0,g=-1,v=(d=1<<s)-1,t==LENS&&d>=ENOUGH_LENS||t==DISTS&&d>=ENOUGH_DISTS)return e.next=E,1;for(;;){m={op:0,bits:r-u,val:0},_[a]<C?m.val=_[a]:_[a]>C?(m.op=w[k+_[a]],m.val=y[S+_[a]]):m.op=96,f=1<<r-u,o=h=1<<l;do{I[b+(p>>>u)+(h-=f)]=m}while(0!=h);for(f=1<<r-1;p&f;)f>>>=1;if(0!=f?(p&=f-1,p+=f):p=0,a++,0==--N[r]){if(r==i)break;r=T[A+_[a]]}if(r>s&&(p&v)!=g){for(0==u&&(u=s),b+=o,c=1<<(l=r-u);l+u<i&&!((c-=N[l+u])<=0);)l++,c<<=1;if(d+=1<<l,t==LENS&&d>=ENOUGH_LENS||t==DISTS&&d>=ENOUGH_DISTS)return e.next=E,1;I[E+(g=p&v)]={op:l,bits:s,val:b-E}}}return 0!=p&&(I[b+p]={op:64,bits:r-u,val:0}),e.next=E+d,t==DISTS?e.distbits=s:e.lenbits=s,0}function inflate_fast(e,t){var n,r,a,o,i,s,l,u,c,d,p,f,h,g,v,m,b,y,S,w,k,C,E=-1,x=-1;n=e.state,r=e.input_data,o=(a=e.next_in)+e.avail_in-5,s=(i=e.next_out)-(t-e.avail_out),l=i+(e.avail_out-257),u=n.wsize,c=n.whave,d=n.wnext,p=n.window,f=n.hold,h=n.bits,g=n.codes,v=n.lencode,m=n.distcode,b=(1<<n.lenbits)-1,y=(1<<n.distbits)-1;e:do{h<15&&(f+=(255&r.charCodeAt(a++))<<h,h+=8,f+=(255&r.charCodeAt(a++))<<h,h+=8),S=g[v+(f&b)];t:for(;;){if(f>>>=w=S.bits,h-=w,0==(w=S.op))e.output_data+=String.fromCharCode(S.val),i++;else{if(!(16&w)){if(0==(64&w)){S=g[v+(S.val+(f&(1<<w)-1))];continue t}if(32&w){n.mode=TYPE;break e}e.msg="invalid literal/length code",n.mode=BAD;break e}k=S.val,(w&=15)&&(h<w&&(f+=(255&r.charCodeAt(a++))<<h,h+=8),k+=f&(1<<w)-1,f>>>=w,h-=w),h<15&&(f+=(255&r.charCodeAt(a++))<<h,h+=8,f+=(255&r.charCodeAt(a++))<<h,h+=8),S=g[m+(f&y)];n:for(;;){if(f>>>=w=S.bits,h-=w,!(16&(w=S.op))){if(0==(64&w)){S=g[m+(S.val+(f&(1<<w)-1))];continue n}e.msg="invalid distance code",n.mode=BAD;break e}if(C=S.val,h<(w&=15)&&(f+=(255&r.charCodeAt(a++))<<h,(h+=8)<w&&(f+=(255&r.charCodeAt(a++))<<h,h+=8)),C+=f&(1<<w)-1,f>>>=w,h-=w,C>(w=i-s)){if((w=C-w)>c&&n.sane){e.msg="invalid distance too far back",n.mode=BAD;break e}E=0,x=-1,0==d?(E+=u-w,w<k&&(k-=w,e.output_data+=p.substring(E,E+w),i+=w,w=0,E=-1,x=i-C)):(E+=d-w,w<k&&(k-=w,e.output_data+=p.substring(E,E+w),E=-1,x=(i+=w)-C))}else E=-1,x=i-C;if(E>=0)e.output_data+=p.substring(E,E+k),i+=k,E+=k;else{var _=k;for(_>i-x&&(_=i-x),e.output_data+=e.output_data.substring(x,x+_),i+=_,x+=_,i+=k-=_;k>2;)e.output_data+=e.output_data.charAt(x++),e.output_data+=e.output_data.charAt(x++),e.output_data+=e.output_data.charAt(x++),k-=3;k&&(e.output_data+=e.output_data.charAt(x++),k>1&&(e.output_data+=e.output_data.charAt(x++)))}break n}}break t}}while(a<o&&i<l);a-=k=h>>>3,f&=(1<<(h-=k<<3))-1,e.next_in=a,e.next_out=i,e.avail_in=a<o?o-a+5:5-(a-o),e.avail_out=i<l?l-i+257:257-(i-l),n.hold=f,n.bits=h}function new_array(e){var t,n=new Array(e);for(t=0;t<e;t++)n[t]=0;return n}function getarg(e,t,n){return e&&t in e?e[t]:n}function checksum_none(){return 0}function inflate_state(){var e;this.mode=0,this.last=0,this.wrap=0,this.havedict=0,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=0,this.distcode=0,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=0,this.lens=new_array(320),this.work=new_array(288),this.codes=new Array(ENOUGH);var t={op:0,bits:0,val:0};for(e=0;e<ENOUGH;e++)this.codes[e]=t;this.sane=0,this.back=0,this.was=0}ZLIB.inflate_copyright=" inflate 1.2.6 Copyright 1995-2012 Mark Adler ",ZLIB.inflateResetKeep=function(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg=null,t.wrap&&(e.adler=1&t.wrap),t.mode=HEAD,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=0,t.distcode=0,t.next=0,t.sane=1,t.back=-1,ZLIB.Z_OK):ZLIB.Z_STREAM_ERROR},ZLIB.inflateReset=function(e,t){var n,r;return e&&e.state?(r=e.state,void 0===t&&(t=DEF_WBITS),t<0?(n=0,t=-t):(n=1+(t>>>4),t<48&&(t&=15)),1==n&&"function"==typeof ZLIB.adler32?e.checksum_function=ZLIB.adler32:2==n&&"function"==typeof ZLIB.crc32?e.checksum_function=ZLIB.crc32:e.checksum_function=checksum_none,t&&(t<8||t>15)?ZLIB.Z_STREAM_ERROR:(r.window&&r.wbits!=t&&(r.window=null),r.wrap=n,r.wbits=t,r.wsize=0,r.whave=0,r.wnext=0,ZLIB.inflateResetKeep(e))):ZLIB.Z_STREAM_ERROR},ZLIB.inflateInit=function(e){var t=new ZLIB.z_stream;return t.state=new inflate_state,ZLIB.inflateReset(t,e),t},ZLIB.inflatePrime=function(e,t,n){var r;return e&&e.state?(r=e.state,t<0?(r.hold=0,r.bits=0,ZLIB.Z_OK):t>16||r.bits+t>32?ZLIB.Z_STREAM_ERROR:(n&=(1<<t)-1,r.hold+=n<<r.bits,r.bits+=t,ZLIB.Z_OK)):ZLIB.Z_STREAM_ERROR};var lenfix_ary=null,lenfix_def="([ {op:96,bits:7,val:0},{op:0,bits:8,val:80},{op:0,bits:8,val:16},{op:20,bits:8,val:115},{op:18,bits:7,val:31},{op:0,bits:8,val:112},{op:0,bits:8,val:48}, {op:0,bits:9,val:192},{op:16,bits:7,val:10},{op:0,bits:8,val:96},{op:0,bits:8,val:32},{op:0,bits:9,val:160},{op:0,bits:8,val:0},{op:0,bits:8,val:128}, {op:0,bits:8,val:64},{op:0,bits:9,val:224},{op:16,bits:7,val:6},{op:0,bits:8,val:88},{op:0,bits:8,val:24},{op:0,bits:9,val:144},{op:19,bits:7,val:59}, {op:0,bits:8,val:120},{op:0,bits:8,val:56},{op:0,bits:9,val:208},{op:17,bits:7,val:17},{op:0,bits:8,val:104},{op:0,bits:8,val:40},{op:0,bits:9,val:176}, {op:0,bits:8,val:8},{op:0,bits:8,val:136},{op:0,bits:8,val:72},{op:0,bits:9,val:240},{op:16,bits:7,val:4},{op:0,bits:8,val:84},{op:0,bits:8,val:20}, {op:21,bits:8,val:227},{op:19,bits:7,val:43},{op:0,bits:8,val:116},{op:0,bits:8,val:52},{op:0,bits:9,val:200},{op:17,bits:7,val:13},{op:0,bits:8,val:100}, {op:0,bits:8,val:36},{op:0,bits:9,val:168},{op:0,bits:8,val:4},{op:0,bits:8,val:132},{op:0,bits:8,val:68},{op:0,bits:9,val:232},{op:16,bits:7,val:8}, {op:0,bits:8,val:92},{op:0,bits:8,val:28},{op:0,bits:9,val:152},{op:20,bits:7,val:83},{op:0,bits:8,val:124},{op:0,bits:8,val:60},{op:0,bits:9,val:216}, {op:18,bits:7,val:23},{op:0,bits:8,val:108},{op:0,bits:8,val:44},{op:0,bits:9,val:184},{op:0,bits:8,val:12},{op:0,bits:8,val:140},{op:0,bits:8,val:76}, {op:0,bits:9,val:248},{op:16,bits:7,val:3},{op:0,bits:8,val:82},{op:0,bits:8,val:18},{op:21,bits:8,val:163},{op:19,bits:7,val:35},{op:0,bits:8,val:114}, {op:0,bits:8,val:50},{op:0,bits:9,val:196},{op:17,bits:7,val:11},{op:0,bits:8,val:98},{op:0,bits:8,val:34},{op:0,bits:9,val:164},{op:0,bits:8,val:2}, {op:0,bits:8,val:130},{op:0,bits:8,val:66},{op:0,bits:9,val:228},{op:16,bits:7,val:7},{op:0,bits:8,val:90},{op:0,bits:8,val:26},{op:0,bits:9,val:148}, {op:20,bits:7,val:67},{op:0,bits:8,val:122},{op:0,bits:8,val:58},{op:0,bits:9,val:212},{op:18,bits:7,val:19},{op:0,bits:8,val:106},{op:0,bits:8,val:42}, {op:0,bits:9,val:180},{op:0,bits:8,val:10},{op:0,bits:8,val:138},{op:0,bits:8,val:74},{op:0,bits:9,val:244},{op:16,bits:7,val:5},{op:0,bits:8,val:86}, {op:0,bits:8,val:22},{op:64,bits:8,val:0},{op:19,bits:7,val:51},{op:0,bits:8,val:118},{op:0,bits:8,val:54},{op:0,bits:9,val:204},{op:17,bits:7,val:15}, {op:0,bits:8,val:102},{op:0,bits:8,val:38},{op:0,bits:9,val:172},{op:0,bits:8,val:6},{op:0,bits:8,val:134},{op:0,bits:8,val:70},{op:0,bits:9,val:236}, {op:16,bits:7,val:9},{op:0,bits:8,val:94},{op:0,bits:8,val:30},{op:0,bits:9,val:156},{op:20,bits:7,val:99},{op:0,bits:8,val:126},{op:0,bits:8,val:62}, {op:0,bits:9,val:220},{op:18,bits:7,val:27},{op:0,bits:8,val:110},{op:0,bits:8,val:46},{op:0,bits:9,val:188},{op:0,bits:8,val:14},{op:0,bits:8,val:142}, {op:0,bits:8,val:78},{op:0,bits:9,val:252},{op:96,bits:7,val:0},{op:0,bits:8,val:81},{op:0,bits:8,val:17},{op:21,bits:8,val:131},{op:18,bits:7,val:31}, {op:0,bits:8,val:113},{op:0,bits:8,val:49},{op:0,bits:9,val:194},{op:16,bits:7,val:10},{op:0,bits:8,val:97},{op:0,bits:8,val:33},{op:0,bits:9,val:162}, {op:0,bits:8,val:1},{op:0,bits:8,val:129},{op:0,bits:8,val:65},{op:0,bits:9,val:226},{op:16,bits:7,val:6},{op:0,bits:8,val:89},{op:0,bits:8,val:25}, {op:0,bits:9,val:146},{op:19,bits:7,val:59},{op:0,bits:8,val:121},{op:0,bits:8,val:57},{op:0,bits:9,val:210},{op:17,bits:7,val:17},{op:0,bits:8,val:105}, {op:0,bits:8,val:41},{op:0,bits:9,val:178},{op:0,bits:8,val:9},{op:0,bits:8,val:137},{op:0,bits:8,val:73},{op:0,bits:9,val:242},{op:16,bits:7,val:4}, {op:0,bits:8,val:85},{op:0,bits:8,val:21},{op:16,bits:8,val:258},{op:19,bits:7,val:43},{op:0,bits:8,val:117},{op:0,bits:8,val:53},{op:0,bits:9,val:202}, {op:17,bits:7,val:13},{op:0,bits:8,val:101},{op:0,bits:8,val:37},{op:0,bits:9,val:170},{op:0,bits:8,val:5},{op:0,bits:8,val:133},{op:0,bits:8,val:69}, {op:0,bits:9,val:234},{op:16,bits:7,val:8},{op:0,bits:8,val:93},{op:0,bits:8,val:29},{op:0,bits:9,val:154},{op:20,bits:7,val:83},{op:0,bits:8,val:125}, {op:0,bits:8,val:61},{op:0,bits:9,val:218},{op:18,bits:7,val:23},{op:0,bits:8,val:109},{op:0,bits:8,val:45},{op:0,bits:9,val:186},{op:0,bits:8,val:13}, {op:0,bits:8,val:141},{op:0,bits:8,val:77},{op:0,bits:9,val:250},{op:16,bits:7,val:3},{op:0,bits:8,val:83},{op:0,bits:8,val:19},{op:21,bits:8,val:195}, {op:19,bits:7,val:35},{op:0,bits:8,val:115},{op:0,bits:8,val:51},{op:0,bits:9,val:198},{op:17,bits:7,val:11},{op:0,bits:8,val:99},{op:0,bits:8,val:35}, {op:0,bits:9,val:166},{op:0,bits:8,val:3},{op:0,bits:8,val:131},{op:0,bits:8,val:67},{op:0,bits:9,val:230},{op:16,bits:7,val:7},{op:0,bits:8,val:91}, {op:0,bits:8,val:27},{op:0,bits:9,val:150},{op:20,bits:7,val:67},{op:0,bits:8,val:123},{op:0,bits:8,val:59},{op:0,bits:9,val:214},{op:18,bits:7,val:19}, {op:0,bits:8,val:107},{op:0,bits:8,val:43},{op:0,bits:9,val:182},{op:0,bits:8,val:11},{op:0,bits:8,val:139},{op:0,bits:8,val:75},{op:0,bits:9,val:246}, {op:16,bits:7,val:5},{op:0,bits:8,val:87},{op:0,bits:8,val:23},{op:64,bits:8,val:0},{op:19,bits:7,val:51},{op:0,bits:8,val:119},{op:0,bits:8,val:55}, {op:0,bits:9,val:206},{op:17,bits:7,val:15},{op:0,bits:8,val:103},{op:0,bits:8,val:39},{op:0,bits:9,val:174},{op:0,bits:8,val:7},{op:0,bits:8,val:135}, {op:0,bits:8,val:71},{op:0,bits:9,val:238},{op:16,bits:7,val:9},{op:0,bits:8,val:95},{op:0,bits:8,val:31},{op:0,bits:9,val:158},{op:20,bits:7,val:99}, {op:0,bits:8,val:127},{op:0,bits:8,val:63},{op:0,bits:9,val:222},{op:18,bits:7,val:27},{op:0,bits:8,val:111},{op:0,bits:8,val:47},{op:0,bits:9,val:190}, {op:0,bits:8,val:15},{op:0,bits:8,val:143},{op:0,bits:8,val:79},{op:0,bits:9,val:254},{op:96,bits:7,val:0},{op:0,bits:8,val:80},{op:0,bits:8,val:16}, {op:20,bits:8,val:115},{op:18,bits:7,val:31},{op:0,bits:8,val:112},{op:0,bits:8,val:48},{op:0,bits:9,val:193},{op:16,bits:7,val:10},{op:0,bits:8,val:96}, {op:0,bits:8,val:32},{op:0,bits:9,val:161},{op:0,bits:8,val:0},{op:0,bits:8,val:128},{op:0,bits:8,val:64},{op:0,bits:9,val:225},{op:16,bits:7,val:6}, {op:0,bits:8,val:88},{op:0,bits:8,val:24},{op:0,bits:9,val:145},{op:19,bits:7,val:59},{op:0,bits:8,val:120},{op:0,bits:8,val:56},{op:0,bits:9,val:209}, {op:17,bits:7,val:17},{op:0,bits:8,val:104},{op:0,bits:8,val:40},{op:0,bits:9,val:177},{op:0,bits:8,val:8},{op:0,bits:8,val:136},{op:0,bits:8,val:72}, {op:0,bits:9,val:241},{op:16,bits:7,val:4},{op:0,bits:8,val:84},{op:0,bits:8,val:20},{op:21,bits:8,val:227},{op:19,bits:7,val:43},{op:0,bits:8,val:116}, {op:0,bits:8,val:52},{op:0,bits:9,val:201},{op:17,bits:7,val:13},{op:0,bits:8,val:100},{op:0,bits:8,val:36},{op:0,bits:9,val:169},{op:0,bits:8,val:4}, {op:0,bits:8,val:132},{op:0,bits:8,val:68},{op:0,bits:9,val:233},{op:16,bits:7,val:8},{op:0,bits:8,val:92},{op:0,bits:8,val:28},{op:0,bits:9,val:153}, {op:20,bits:7,val:83},{op:0,bits:8,val:124},{op:0,bits:8,val:60},{op:0,bits:9,val:217},{op:18,bits:7,val:23},{op:0,bits:8,val:108},{op:0,bits:8,val:44}, {op:0,bits:9,val:185},{op:0,bits:8,val:12},{op:0,bits:8,val:140},{op:0,bits:8,val:76},{op:0,bits:9,val:249},{op:16,bits:7,val:3},{op:0,bits:8,val:82}, {op:0,bits:8,val:18},{op:21,bits:8,val:163},{op:19,bits:7,val:35},{op:0,bits:8,val:114},{op:0,bits:8,val:50},{op:0,bits:9,val:197},{op:17,bits:7,val:11}, {op:0,bits:8,val:98},{op:0,bits:8,val:34},{op:0,bits:9,val:165},{op:0,bits:8,val:2},{op:0,bits:8,val:130},{op:0,bits:8,val:66},{op:0,bits:9,val:229}, {op:16,bits:7,val:7},{op:0,bits:8,val:90},{op:0,bits:8,val:26},{op:0,bits:9,val:149},{op:20,bits:7,val:67},{op:0,bits:8,val:122},{op:0,bits:8,val:58}, {op:0,bits:9,val:213},{op:18,bits:7,val:19},{op:0,bits:8,val:106},{op:0,bits:8,val:42},{op:0,bits:9,val:181},{op:0,bits:8,val:10},{op:0,bits:8,val:138}, {op:0,bits:8,val:74},{op:0,bits:9,val:245},{op:16,bits:7,val:5},{op:0,bits:8,val:86},{op:0,bits:8,val:22},{op:64,bits:8,val:0},{op:19,bits:7,val:51}, {op:0,bits:8,val:118},{op:0,bits:8,val:54},{op:0,bits:9,val:205},{op:17,bits:7,val:15},{op:0,bits:8,val:102},{op:0,bits:8,val:38},{op:0,bits:9,val:173}, {op:0,bits:8,val:6},{op:0,bits:8,val:134},{op:0,bits:8,val:70},{op:0,bits:9,val:237},{op:16,bits:7,val:9},{op:0,bits:8,val:94},{op:0,bits:8,val:30}, {op:0,bits:9,val:157},{op:20,bits:7,val:99},{op:0,bits:8,val:126},{op:0,bits:8,val:62},{op:0,bits:9,val:221},{op:18,bits:7,val:27},{op:0,bits:8,val:110}, {op:0,bits:8,val:46},{op:0,bits:9,val:189},{op:0,bits:8,val:14},{op:0,bits:8,val:142},{op:0,bits:8,val:78},{op:0,bits:9,val:253},{op:96,bits:7,val:0}, {op:0,bits:8,val:81},{op:0,bits:8,val:17},{op:21,bits:8,val:131},{op:18,bits:7,val:31},{op:0,bits:8,val:113},{op:0,bits:8,val:49},{op:0,bits:9,val:195}, {op:16,bits:7,val:10},{op:0,bits:8,val:97},{op:0,bits:8,val:33},{op:0,bits:9,val:163},{op:0,bits:8,val:1},{op:0,bits:8,val:129},{op:0,bits:8,val:65}, {op:0,bits:9,val:227},{op:16,bits:7,val:6},{op:0,bits:8,val:89},{op:0,bits:8,val:25},{op:0,bits:9,val:147},{op:19,bits:7,val:59},{op:0,bits:8,val:121}, {op:0,bits:8,val:57},{op:0,bits:9,val:211},{op:17,bits:7,val:17},{op:0,bits:8,val:105},{op:0,bits:8,val:41},{op:0,bits:9,val:179},{op:0,bits:8,val:9}, {op:0,bits:8,val:137},{op:0,bits:8,val:73},{op:0,bits:9,val:243},{op:16,bits:7,val:4},{op:0,bits:8,val:85},{op:0,bits:8,val:21},{op:16,bits:8,val:258}, {op:19,bits:7,val:43},{op:0,bits:8,val:117},{op:0,bits:8,val:53},{op:0,bits:9,val:203},{op:17,bits:7,val:13},{op:0,bits:8,val:101},{op:0,bits:8,val:37}, {op:0,bits:9,val:171},{op:0,bits:8,val:5},{op:0,bits:8,val:133},{op:0,bits:8,val:69},{op:0,bits:9,val:235},{op:16,bits:7,val:8},{op:0,bits:8,val:93}, {op:0,bits:8,val:29},{op:0,bits:9,val:155},{op:20,bits:7,val:83},{op:0,bits:8,val:125},{op:0,bits:8,val:61},{op:0,bits:9,val:219},{op:18,bits:7,val:23}, {op:0,bits:8,val:109},{op:0,bits:8,val:45},{op:0,bits:9,val:187},{op:0,bits:8,val:13},{op:0,bits:8,val:141},{op:0,bits:8,val:77},{op:0,bits:9,val:251}, {op:16,bits:7,val:3},{op:0,bits:8,val:83},{op:0,bits:8,val:19},{op:21,bits:8,val:195},{op:19,bits:7,val:35},{op:0,bits:8,val:115},{op:0,bits:8,val:51}, {op:0,bits:9,val:199},{op:17,bits:7,val:11},{op:0,bits:8,val:99},{op:0,bits:8,val:35},{op:0,bits:9,val:167},{op:0,bits:8,val:3},{op:0,bits:8,val:131}, {op:0,bits:8,val:67},{op:0,bits:9,val:231},{op:16,bits:7,val:7},{op:0,bits:8,val:91},{op:0,bits:8,val:27},{op:0,bits:9,val:151},{op:20,bits:7,val:67}, {op:0,bits:8,val:123},{op:0,bits:8,val:59},{op:0,bits:9,val:215},{op:18,bits:7,val:19},{op:0,bits:8,val:107},{op:0,bits:8,val:43},{op:0,bits:9,val:183}, {op:0,bits:8,val:11},{op:0,bits:8,val:139},{op:0,bits:8,val:75},{op:0,bits:9,val:247},{op:16,bits:7,val:5},{op:0,bits:8,val:87},{op:0,bits:8,val:23}, {op:64,bits:8,val:0},{op:19,bits:7,val:51},{op:0,bits:8,val:119},{op:0,bits:8,val:55},{op:0,bits:9,val:207},{op:17,bits:7,val:15},{op:0,bits:8,val:103}, {op:0,bits:8,val:39},{op:0,bits:9,val:175},{op:0,bits:8,val:7},{op:0,bits:8,val:135},{op:0,bits:8,val:71},{op:0,bits:9,val:239},{op:16,bits:7,val:9}, {op:0,bits:8,val:95},{op:0,bits:8,val:31},{op:0,bits:9,val:159},{op:20,bits:7,val:99},{op:0,bits:8,val:127},{op:0,bits:8,val:63},{op:0,bits:9,val:223}, {op:18,bits:7,val:27},{op:0,bits:8,val:111},{op:0,bits:8,val:47},{op:0,bits:9,val:191},{op:0,bits:8,val:15},{op:0,bits:8,val:143},{op:0,bits:8,val:79}, {op:0,bits:9,val:255}])",distfix_ary=null,distfix_def="([ {op:16,bits:5,val:1},{op:23,bits:5,val:257},{op:19,bits:5,val:17},{op:27,bits:5,val:4097},{op:17,bits:5,val:5},{op:25,bits:5,val:1025}, {op:21,bits:5,val:65},{op:29,bits:5,val:16385},{op:16,bits:5,val:3},{op:24,bits:5,val:513},{op:20,bits:5,val:33},{op:28,bits:5,val:8193}, {op:18,bits:5,val:9},{op:26,bits:5,val:2049},{op:22,bits:5,val:129},{op:64,bits:5,val:0},{op:16,bits:5,val:2},{op:23,bits:5,val:385}, {op:19,bits:5,val:25},{op:27,bits:5,val:6145},{op:17,bits:5,val:7},{op:25,bits:5,val:1537},{op:21,bits:5,val:97},{op:29,bits:5,val:24577}, {op:16,bits:5,val:4},{op:24,bits:5,val:769},{op:20,bits:5,val:49},{op:28,bits:5,val:12289},{op:18,bits:5,val:13},{op:26,bits:5,val:3073}, {op:22,bits:5,val:193},{op:64,bits:5,val:0}])";function fixedtables(state){var i;for(lenfix_ary||(lenfix_ary=eval(lenfix_def)),distfix_ary||(distfix_ary=eval(distfix_def)),state.lencode=0,state.distcode=512,i=0;i<512;i++)state.codes[i]=lenfix_ary[i];for(i=0;i<32;i++)state.codes[i+512]=distfix_ary[i];state.lenbits=9,state.distbits=5}function updatewindow(e){var t=e.state,n=e.output_data.length;return null===t.window&&(t.window=""),0==t.wsize&&(t.wsize=1<<t.wbits),n>=t.wsize?t.window=e.output_data.substring(n-t.wsize):t.whave+n<t.wsize?t.window+=e.output_data:t.window=t.window.substring(t.whave-(t.wsize-n))+e.output_data,t.whave=t.window.length,t.whave<t.wsize?t.wnext=t.whave:t.wnext=0,0}function CRC2(e,t){var n=[255&t,t>>>8&255];e.state.check=e.checksum_function(e.state.check,n,0,2)}function CRC4(e,t){var n=[255&t,t>>>8&255,t>>>16&255,t>>>24&255];e.state.check=e.checksum_function(e.state.check,n,0,4)}function LOAD(e,t){return t.strm=e,t.left=e.avail_out,t.next=e.next_in,t.have=e.avail_in,t.hold=e.state.hold,t.bits=e.state.bits,t}function RESTORE(e){var t=e.strm;t.next_in=e.next,t.avail_out=e.left,t.avail_in=e.have,t.state.hold=e.hold,t.state.bits=e.bits}function INITBITS(e){e.hold=0,e.bits=0}function PULLBYTE(e){return 0!=e.have&&(e.have--,e.hold+=(255&e.strm.input_data.charCodeAt(e.next++))<<e.bits,e.bits+=8,!0)}function NEEDBITS(e,t){for(;e.bits<t;)if(!PULLBYTE(e))return!1;return!0}function BITS(e,t){return e.hold&(1<<t)-1}function DROPBITS(e,t){e.hold>>>=t,e.bits-=t}function BYTEBITS(e){e.hold>>>=7&e.bits,e.bits-=7&e.bits}function REVERSE(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}var inflate_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];ZLIB.inflate=function(e,t){var n,r,a,o,i,s,l,u,c,d=-1,p=-1;if(!e||!e.state||!e.input_data&&0!=e.avail_in)return ZLIB.Z_STREAM_ERROR;(n=e.state).mode==TYPE&&(n.mode=TYPEDO),LOAD(e,r={}),a=r.have,o=r.left,c=ZLIB.Z_OK;e:for(;;)switch(n.mode){case HEAD:if(0==n.wrap){n.mode=TYPEDO;break}if(!NEEDBITS(r,16))break e;if(2&n.wrap&&35615==r.hold){n.check=e.checksum_function(0,null,0,0),CRC2(e,r.hold),INITBITS(r),n.mode=FLAGS;break}if(n.flags=0,null!==n.head&&(n.head.done=-1),!(1&n.wrap)||((BITS(r,8)<<8)+(r.hold>>>8))%31){e.msg="incorrect header check",n.mode=BAD;break}if(BITS(r,4)!=ZLIB.Z_DEFLATED){e.msg="unknown compression method",n.mode=BAD;break}if(DROPBITS(r,4),u=BITS(r,4)+8,0==n.wbits)n.wbits=u;else if(u>n.wbits){e.msg="invalid window size",n.mode=BAD;break}n.dmax=1<<u,e.adler=n.check=e.checksum_function(0,null,0,0),n.mode=512&r.hold?DICTID:TYPE,INITBITS(r);break;case FLAGS:if(!NEEDBITS(r,16))break e;if(n.flags=r.hold,(255&n.flags)!=ZLIB.Z_DEFLATED){e.msg="unknown compression method",n.mode=BAD;break}if(57344&n.flags){e.msg="unknown header flags set",n.mode=BAD;break}null!==n.head&&(n.head.text=r.hold>>>8&1),512&n.flags&&CRC2(e,r.hold),INITBITS(r),n.mode=TIME;case TIME:if(!NEEDBITS(r,32))break e;null!==n.head&&(n.head.time=r.hold),512&n.flags&&CRC4(e,r.hold),INITBITS(r),n.mode=OS;case OS:if(!NEEDBITS(r,16))break e;null!==n.head&&(n.head.xflags=255&r.hold,n.head.os=r.hold>>>8),512&n.flags&&CRC2(e,r.hold),INITBITS(r),n.mode=EXLEN;case EXLEN:if(1024&n.flags){if(!NEEDBITS(r,16))break e;n.length=r.hold,null!==n.head&&(n.head.extra_len=r.hold),512&n.flags&&CRC2(e,r.hold),INITBITS(r),n.head.extra=""}else null!==n.head&&(n.head.extra=null);n.mode=EXTRA;case EXTRA:if(1024&n.flags&&((i=n.length)>r.have&&(i=r.have),i&&(null!==n.head&&null!==n.head.extra&&(u=n.head.extra_len-n.length,n.head.extra+=e.input_data.substring(r.next,r.next+(u+i>n.head.extra_max?n.head.extra_max-u:i))),512&n.flags&&(n.check=e.checksum_function(n.check,e.input_data,r.next,i)),r.have-=i,r.next+=i,n.length-=i),n.length))break e;n.length=0,n.mode=NAME;case NAME:if(2048&n.flags){if(0==r.have)break e;null!==n.head&&null===n.head.name&&(n.head.name=""),i=0;do{if(u=e.input_data.charAt(r.next+i),i++,"\0"===u)break;null!==n.head&&n.length<n.head.name_max&&(n.head.name+=u,n.length++)}while(i<r.have);if(512&n.flags&&(n.check=e.checksum_function(n.check,e.input_data,r.next,i)),r.have-=i,r.next+=i,"\0"!==u)break e}else null!==n.head&&(n.head.name=null);n.length=0,n.mode=COMMENT;case COMMENT:if(4096&n.flags){if(0==r.have)break e;i=0,null!==n.head&&null===n.head.comment&&(n.head.comment="");do{if(u=e.input_data.charAt(r.next+i),i++,"\0"===u)break;null!==n.head&&n.length<n.head.comm_max&&(n.head.comment+=u,n.length++)}while(i<r.have);if(512&n.flags&&(n.check=e.checksum_function(n.check,e.input_data,r.next,i)),r.have-=i,r.next+=i,"\0"!==u)break e}else null!==n.head&&(n.head.comment=null);n.mode=HCRC;case HCRC:if(512&n.flags){if(!NEEDBITS(r,16))break e;if(r.hold!=(65535&n.check)){e.msg="header crc mismatch",n.mode=BAD;break}INITBITS(r)}null!==n.head&&(n.head.hcrc=n.flags>>>9&1,n.head.done=1),e.adler=n.check=e.checksum_function(0,null,0,0),n.mode=TYPE;break;case DICTID:if(!NEEDBITS(r,32))break e;e.adler=n.check=REVERSE(r.hold),INITBITS(r),n.mode=DICT;case DICT:if(0==n.havedict)return RESTORE(r),ZLIB.Z_NEED_DICT;e.adler=n.check=e.checksum_function(0,null,0,0),n.mode=TYPE;case TYPE:if(t==ZLIB.Z_BLOCK||t==ZLIB.Z_TREES)break e;case TYPEDO:if(n.last){BYTEBITS(r),n.mode=CHECK;break}if(!NEEDBITS(r,3))break e;switch(n.last=BITS(r,1),DROPBITS(r,1),BITS(r,2)){case 0:n.mode=STORED;break;case 1:if(fixedtables(n),n.mode=LEN_,t==ZLIB.Z_TREES){DROPBITS(r,2);break e}break;case 2:n.mode=TABLE;break;case 3:e.msg="invalid block type",n.mode=BAD}DROPBITS(r,2);break;case STORED:if(BYTEBITS(r),!NEEDBITS(r,32))break e;if((65535&r.hold)!=(r.hold>>>16&65535^65535)){e.msg="invalid stored block lengths",n.mode=BAD;break}if(n.length=65535&r.hold,INITBITS(r),n.mode=COPY_,t==ZLIB.Z_TREES)break e;case COPY_:n.mode=COPY;case COPY:if(i=n.length){if(i>r.have&&(i=r.have),i>r.left&&(i=r.left),0==i)break e;e.output_data+=e.input_data.substring(r.next,r.next+i),e.next_out+=i,r.have-=i,r.next+=i,r.left-=i,n.length-=i;break}n.mode=TYPE;break;case TABLE:if(!NEEDBITS(r,14))break e;if(n.nlen=BITS(r,5)+257,DROPBITS(r,5),n.ndist=BITS(r,5)+1,DROPBITS(r,5),n.ncode=BITS(r,4)+4,DROPBITS(r,4),n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=BAD;break}n.have=0,n.mode=LENLENS;case LENLENS:for(;n.have<n.ncode;){if(!NEEDBITS(r,3))break e;var f=BITS(r,3);n.lens[inflate_order[n.have++]]=f,DROPBITS(r,3)}for(;n.have<19;)n.lens[inflate_order[n.have++]]=0;if(n.next=0,n.lencode=0,n.lenbits=7,c=inflate_table(n,CODES)){e.msg="invalid code lengths set",n.mode=BAD;break}n.have=0,n.mode=CODELENS;case CODELENS:for(;n.have<n.nlen+n.ndist;){for(;!((s=n.codes[n.lencode+BITS(r,n.lenbits)]).bits<=r.bits);)if(!PULLBYTE(r))break e;if(s.val<16)DROPBITS(r,s.bits),n.lens[n.have++]=s.val;else{if(16==s.val){if(!NEEDBITS(r,s.bits+2))break e;if(DROPBITS(r,s.bits),0==n.have){e.msg="invalid bit length repeat",n.mode=BAD;break}u=n.lens[n.have-1],i=3+BITS(r,2),DROPBITS(r,2)}else if(17==s.val){if(!NEEDBITS(r,s.bits+3))break e;DROPBITS(r,s.bits),u=0,i=3+BITS(r,3),DROPBITS(r,3)}else{if(!NEEDBITS(r,s.bits+7))break e;DROPBITS(r,s.bits),u=0,i=11+BITS(r,7),DROPBITS(r,7)}if(n.have+i>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=BAD;break}for(;i--;)n.lens[n.have++]=u}}if(n.mode==BAD)break;if(0==n.lens[256]){e.msg="invalid code -- missing end-of-block",n.mode=BAD;break}if(n.next=0,n.lencode=n.next,n.lenbits=9,c=inflate_table(n,LENS)){e.msg="invalid literal/lengths set",n.mode=BAD;break}if(n.distcode=n.next,n.distbits=6,c=inflate_table(n,DISTS)){e.msg="invalid distances set",n.mode=BAD;break}if(n.mode=LEN_,t==ZLIB.Z_TREES)break e;case LEN_:n.mode=LEN;case LEN:if(r.have>=6&&r.left>=258){RESTORE(r),inflate_fast(e,o),LOAD(e,r),n.mode==TYPE&&(n.back=-1);break}for(n.back=0;!((s=n.codes[n.lencode+BITS(r,n.lenbits)]).bits<=r.bits);)if(!PULLBYTE(r))break e;if(s.op&&0==(240&s.op)){for(l=s;s=n.codes[n.lencode+l.val+(BITS(r,l.bits+l.op)>>>l.bits)],!(l.bits+s.bits<=r.bits);)if(!PULLBYTE(r))break e;DROPBITS(r,l.bits),n.back+=l.bits}if(DROPBITS(r,s.bits),n.back+=s.bits,n.length=s.val,0==s.op){n.mode=LIT;break}if(32&s.op){n.back=-1,n.mode=TYPE;break}if(64&s.op){e.msg="invalid literal/length code",n.mode=BAD;break}n.extra=15&s.op,n.mode=LENEXT;case LENEXT:if(n.extra){if(!NEEDBITS(r,n.extra))break e;n.length+=BITS(r,n.extra),DROPBITS(r,n.extra),n.back+=n.extra}n.was=n.length,n.mode=DIST;case DIST:for(;!((s=n.codes[n.distcode+BITS(r,n.distbits)]).bits<=r.bits);)if(!PULLBYTE(r))break e;if(0==(240&s.op)){for(l=s;s=n.codes[n.distcode+l.val+(BITS(r,l.bits+l.op)>>>l.bits)],!(l.bits+s.bits<=r.bits);)if(!PULLBYTE(r))break e;DROPBITS(r,l.bits),n.back+=l.bits}if(DROPBITS(r,s.bits),n.back+=s.bits,64&s.op){e.msg="invalid distance code",n.mode=BAD;break}n.offset=s.val,n.extra=15&s.op,n.mode=DISTEXT;case DISTEXT:if(n.extra){if(!NEEDBITS(r,n.extra))break e;n.offset+=BITS(r,n.extra),DROPBITS(r,n.extra),n.back+=n.extra}n.mode=MATCH;case MATCH:if(0==r.left)break e;if(i=o-r.left,n.offset>i){if((i=n.offset-i)>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=BAD;break}i>n.wnext?(i-=n.wnext,d=n.wsize-i,p=-1):(d=n.wnext-i,p=-1),i>n.length&&(i=n.length)}else d=-1,p=e.next_out-n.offset,i=n.length;if(i>r.left&&(i=r.left),r.left-=i,n.length-=i,d>=0)e.output_data+=n.window.substring(d,d+i),e.next_out+=i,i=0;else{e.next_out+=i;do{e.output_data+=e.output_data.charAt(p++)}while(--i)}0==n.length&&(n.mode=LEN);break;case LIT:if(0==r.left)break e;e.output_data+=String.fromCharCode(n.length),e.next_out++,r.left--,n.mode=LEN;break;case CHECK:if(n.wrap){if(!NEEDBITS(r,32))break e;if(o-=r.left,e.total_out+=o,n.total+=o,o&&(e.adler=n.check=e.checksum_function(n.check,e.output_data,e.output_data.length-o,o)),o=r.left,(n.flags?r.hold:REVERSE(r.hold))!=n.check){e.msg="incorrect data check",n.mode=BAD;break}INITBITS(r)}n.mode=LENGTH;case LENGTH:if(n.wrap&&n.flags){if(!NEEDBITS(r,32))break e;if(r.hold!=(4294967295&n.total)){e.msg="incorrect length check",n.mode=BAD;break}INITBITS(r)}n.mode=DONE;case DONE:c=ZLIB.Z_STREAM_END;break e;case BAD:c=ZLIB.Z_DATA_ERROR;break e;case MEM:return ZLIB.Z_MEM_ERROR;case SYNC:default:return ZLIB.Z_STREAM_ERROR}return RESTORE(r),(n.wsize||o!=e.avail_out&&n.mode<BAD&&(n.mode<CHECK||t!=ZLIB.Z_FINISH))&&updatewindow(e)?(n.mode=MEM,ZLIB.Z_MEM_ERROR):(a-=e.avail_in,o-=e.avail_out,e.total_in+=a,e.total_out+=o,n.total+=o,n.wrap&&o&&(e.adler=n.check=e.checksum_function(n.check,e.output_data,0,e.output_data.length)),e.data_type=n.bits+(n.last?64:0)+(n.mode==TYPE?128:0)+(n.mode==LEN_||n.mode==COPY_?256:0),(0==a&&0==o||t==ZLIB.Z_FINISH)&&c==ZLIB.Z_OK&&(c=ZLIB.Z_BUF_ERROR),c)},ZLIB.inflateEnd=function(e){return e&&e.state?(e.state.window=null,e.state=null,ZLIB.Z_OK):ZLIB.Z_STREAM_ERROR},ZLIB.z_stream.prototype.inflate=function(e,t){var n,r;this.input_data=e,this.next_in=getarg(t,"next_in",0),this.avail_in=getarg(t,"avail_in",e.length-this.next_in),n=getarg(t,"flush",ZLIB.Z_SYNC_FLUSH),r=getarg(t,"avail_out",-1);var a="";do{if(this.avail_out=r>=0?r:16384,this.output_data="",this.next_out=0,this.error=ZLIB.inflate(this,n),0!=this.error&&console.log("zlib error",this.error),r>=0)return this.output_data;if(a+=this.output_data,this.avail_out>0)break}while(this.error==ZLIB.Z_OK);return a},ZLIB.z_stream.prototype.inflateReset=function(e){return ZLIB.inflateReset(this,e)}}(),void 0===ZLIB&&alert("ZLIB is not defined. SRC zlib.js before zlib-adler32.js"),BASE=65521,NMAX=5552,ZLIB.adler32=function(e,t,n,r){return"string"==typeof t?function(e,t,n,r){var a,o;if(a=e>>>16&65535,e&=65535,1==r)return(e+=255&t.charCodeAt(n))>=BASE&&(e-=BASE),(a+=e)>=BASE&&(a-=BASE),e|a<<16;if(null===t)return 1;if(r<16){for(;r--;)a+=e+=255&t.charCodeAt(n++);return e>=BASE&&(e-=BASE),e|(a%=BASE)<<16}for(;r>=NMAX;){r-=NMAX,o=347;do{a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++)}while(--o);e%=BASE,a%=BASE}if(r){for(;r>=16;)r-=16,a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++),a+=e+=255&t.charCodeAt(n++);for(;r--;)a+=e+=255&t.charCodeAt(n++);e%=BASE,a%=BASE}return e|a<<16}(e,t,n,r):function(e,t,n,r){var a,o;if(a=e>>>16&65535,e&=65535,1==r)return(e+=t[n])>=BASE&&(e-=BASE),(a+=e)>=BASE&&(a-=BASE),e|a<<16;if(null===t)return 1;if(r<16){for(;r--;)a+=e+=t[n++];return e>=BASE&&(e-=BASE),e|(a%=BASE)<<16}for(;r>=NMAX;){r-=NMAX,o=347;do{a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++]}while(--o);e%=BASE,a%=BASE}if(r){for(;r>=16;)r-=16,a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++],a+=e+=t[n++];for(;r--;)a+=e+=t[n++];e%=BASE,a%=BASE}return e|a<<16}(e,t,n,r)},ZLIB.adler32_combine=function(e,t,n){var r,a,o;return n<0?4294967295:(a=(o=n%=BASE)*(r=65535&e),a%=BASE,(r+=(65535&t)+BASE-1)>=BASE&&(r-=BASE),r>=BASE&&(r-=BASE),(a+=(e>>16&65535)+(t>>16&65535)+BASE-o)>=131042&&(a-=131042),a>=BASE&&(a-=BASE),r|a<<16)},void 0===ZLIB&&alert("ZLIB is not defined. SRC zlib.js before zlib-crc32.js"),function(){var e=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];function t(e,t){var n,r=0;for(n=0;t;)1&t&&(n^=e[r]),t>>=1,r++;return n}function n(e,n){var r;for(r=0;r<32;r++)e[r]=t(n,n[r])}ZLIB.crc32=function(t,n,r,a){return"string"==typeof n?function(t,n,r,a){if(null==n)return 0;for(t^=4294967295;a>=8;)t=e[255&(t^n.charCodeAt(r++))]^t>>>8,t=e[255&(t^n.charCodeAt(r++))]^t>>>8,t=e[255&(t^n.charCodeAt(r++))]^t>>>8,t=e[255&(t^n.charCodeAt(r++))]^t>>>8,t=e[255&(t^n.charCodeAt(r++))]^t>>>8,t=e[255&(t^n.charCodeAt(r++))]^t>>>8,t=e[255&(t^n.charCodeAt(r++))]^t>>>8,t=e[255&(t^n.charCodeAt(r++))]^t>>>8,a-=8;if(a)do{t=e[255&(t^n.charCodeAt(r++))]^t>>>8}while(--a);return 4294967295^t}(t,n,r,a):function(t,n,r,a){if(null==n)return 0;for(t^=4294967295;a>=8;)t=e[255&(t^n[r++])]^t>>>8,t=e[255&(t^n[r++])]^t>>>8,t=e[255&(t^n[r++])]^t>>>8,t=e[255&(t^n[r++])]^t>>>8,t=e[255&(t^n[r++])]^t>>>8,t=e[255&(t^n[r++])]^t>>>8,t=e[255&(t^n[r++])]^t>>>8,t=e[255&(t^n[r++])]^t>>>8,a-=8;if(a)do{t=e[255&(t^n[r++])]^t>>>8}while(--a);return 4294967295^t}(t,n,r,a)},ZLIB.crc32_combine=function(e,r,a){var o,i,s,l;if(a<=0)return e;for(s=new Array(32),(l=new Array(32))[0]=3988292384,i=1,o=1;o<32;o++)l[o]=i,i<<=1;n(s,l),n(l,s);do{if(n(s,l),1&a&&(e=t(s,e)),0==(a>>=1))break;n(l,s),1&a&&(e=t(l,e)),a>>=1}while(0!=a);return e^r}}(),module.exports=ZLIB}},__webpack_module_cache__={};function __nested_webpack_require_78414__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](n,n.exports,__nested_webpack_require_78414__),n.exports}__nested_webpack_require_78414__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __nested_webpack_require_78414__.d(t,{a:t}),t},__nested_webpack_require_78414__.d=(e,t)=>{for(var n in t)__nested_webpack_require_78414__.o(t,n)&&!__nested_webpack_require_78414__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__nested_webpack_require_78414__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__nested_webpack_require_78414__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};return(()=>{"use strict";__nested_webpack_require_78414__.r(__webpack_exports__),__nested_webpack_require_78414__.d(__webpack_exports__,{AMTDesktop:()=>e.r,AMTKvmDataRedirector:()=>t.N,AMTRedirector:()=>n.K,Protocol:()=>n.b,AmtTerminal:()=>r.r,ConsoleLogger:()=>a.k,TypeConverter:()=>o.r,Desktop:()=>i.H,StateProcessorFactory:()=>s.v,TerminalDataProcessor:()=>l.Q,LogLevel:()=>u.i,DataProcessor:()=>c.$,RLEDecoder:()=>c.X,Encoding:()=>d.ez,FrameBufferBellServerCutText:()=>d.Ut,HandshakeState:()=>d.wW,SecurityOptions:()=>d.ll,SecurityResponse:()=>d.mC,ServerInit:()=>d.Cu,AMTKeyCodeConverter:()=>p.qD,CommsHelper:()=>p.Xn,ImageHelper:()=>p.jw,KeyBoardHelper:()=>p.EB,MouseHelper:()=>p.xx,isTruthy:()=>p.fQ});var e=__nested_webpack_require_78414__(166),t=__nested_webpack_require_78414__(59),n=__nested_webpack_require_78414__(503),r=__nested_webpack_require_78414__(277),a=__nested_webpack_require_78414__(237),o=__nested_webpack_require_78414__(565),i=__nested_webpack_require_78414__(46),s=__nested_webpack_require_78414__(989),l=__nested_webpack_require_78414__(155),u=__nested_webpack_require_78414__(201),c=__nested_webpack_require_78414__(646),d=__nested_webpack_require_78414__(389),p=__nested_webpack_require_78414__(8)})(),__webpack_exports__})()},module.exports=e()},648:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(15),a=n.n(r),o=n(645),i=n.n(o)()(a());i.push([e.id,".button{margin-right:3px;padding:2px;min-width:90px}","",{version:3,sources:["webpack://./src/reactjs/KVM/ConnectButton.scss"],names:[],mappings:"AAKA,QACI,gBAAA,CACA,WAAA,CACA,cAAA",sourcesContent:["/*********************************************************************\n * Copyright (c) Intel Corporation 2019\n * SPDX-License-Identifier: Apache-2.0\n **********************************************************************/\n\n.button{\n margin-right: 3px;\n padding: 2px;\n min-width: 90px\n}"],sourceRoot:""}]);const s=i},625:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(15),a=n.n(r),o=n(645),i=n.n(o)()(a());i.push([e.id,".encoding{margin-left:10px}.encoding label{padding:2px;font-size:15px}.encoding select{padding:2px 0}.reldisabled{opacity:.5}","",{version:3,sources:["webpack://./src/reactjs/KVM/EncodingOptions.scss"],names:[],mappings:"AAKA,UACI,gBAAA,CAEF,gBACE,WAAA,CACA,cAAA,CAEF,iBACE,aAAA,CAGF,aACE,UAAA",sourcesContent:["/*********************************************************************\n * Copyright (c) Intel Corporation 2019\n * SPDX-License-Identifier: Apache-2.0\n **********************************************************************/\n \n.encoding {\n margin-left: 10px;\n }\n .encoding label { \n padding: 2px;\n font-size: 15px;\n }\n .encoding select {\n padding: 2px 0;\n }\n \n .reldisabled{\n opacity: 0.5;\n }"],sourceRoot:""}]);const s=i},734:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(15),a=n.n(r),o=n(645),i=n.n(o)()(a());i.push([e.id,".header{background-color:#a9a9a9;padding:5px;font-size:13px}","",{version:3,sources:["webpack://./src/reactjs/KVM/Header.scss"],names:[],mappings:"AAKA,QACE,wBAAA,CACA,WAAA,CACA,cAAA",sourcesContent:["/*********************************************************************\n * Copyright (c) Intel Corporation 2019\n * SPDX-License-Identifier: Apache-2.0\n **********************************************************************/\n \n.header {\n background-color: darkgray;\n padding: 5px;\n font-size: 13px;\n}\n"],sourceRoot:""}]);const s=i},250:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(15),a=n.n(r),o=n(645),i=n.n(o)()(a());i.push([e.id,".canvas{max-height:90%;max-width:100%}","",{version:3,sources:["webpack://./src/reactjs/KVM/PureCanvas.scss"],names:[],mappings:"AAKA,QACI,cAAA,CACA,cAAA",sourcesContent:["/*********************************************************************\n * Copyright (c) Intel Corporation 2019\n * SPDX-License-Identifier: Apache-2.0\n **********************************************************************/\n \n.canvas{\n max-height: 90%;\n max-width: 100%;\n}\n"],sourceRoot:""}]);const s=i},917:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(15),a=n.n(r),o=n(645),i=n.n(o)()(a());i.push([e.id,"*{margin:0;padding:0;box-sizing:border-box}.canvas-container{height:100vh;text-align:center;background-color:#fff}","",{version:3,sources:["webpack://./src/reactjs/KVM/UI.scss"],names:[],mappings:"AAKA,EACI,QAAA,CACA,SAAA,CACA,qBAAA,CAGJ,kBACG,YAAA,CACA,iBAAA,CACA,qBAAA",sourcesContent:["/*********************************************************************\n * Copyright (c) Intel Corporation 2019\n * SPDX-License-Identifier: Apache-2.0\n **********************************************************************/\n \n*{ // * refers every element and removes default margin padding that comes with html elements body, h1 etc\n margin:0;\n padding:0;\n box-sizing: border-box; //element padding and border are included in the width and height\n}\n\n.canvas-container{\n height: 100vh; \n text-align: center;\n background-color: #ffffff;\n}\n"],sourceRoot:""}]);const s=i},645:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=e(t);return t[2]?"@media ".concat(t[2]," {").concat(n,"}"):n})).join("")},t.i=function(e,n,r){"string"==typeof e&&(e=[[null,e,""]]);var a={};if(r)for(var o=0;o<this.length;o++){var i=this[o][0];null!=i&&(a[i]=!0)}for(var s=0;s<e.length;s++){var l=[].concat(e[s]);r&&a[l[0]]||(n&&(l[2]?l[2]="".concat(n," and ").concat(l[2]):l[2]=n),t.push(l))}},t}},15:e=>{"use strict";function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}e.exports=function(e){var n,r,a=(r=4,function(e){if(Array.isArray(e))return e}(n=e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o=[],i=!0,s=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(e){s=!0,a=e}finally{try{i||null==n.return||n.return()}finally{if(s)throw a}}return o}}(n,r)||function(e,n){if(e){if("string"==typeof e)return t(e,n);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?t(e,n):void 0}}(n,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),o=a[1],i=a[3];if(!i)return o;if("function"==typeof btoa){var s=btoa(unescape(encodeURIComponent(JSON.stringify(i)))),l="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(s),u="/*# ".concat(l," */"),c=i.sources.map((function(e){return"/*# sourceURL=".concat(i.sourceRoot||"").concat(e," */")}));return[o].concat(c).concat([u]).join("\n")}return[o].join("\n")}},418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,o){for(var i,s,l=a(e),u=1;u<arguments.length;u++){for(var c in i=Object(arguments[u]))n.call(i,c)&&(l[c]=i[c]);if(t){s=t(i);for(var d=0;d<s.length;d++)r.call(i,s[d])&&(l[s[d]]=i[s[d]])}}return l}},448:(e,t,n)=>{"use strict";var r=n(294),a=n(418),o=n(142);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));var s=new Set,l={};function u(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(l[e]=t,e=0;e<t.length;e++)s.add(t[e])}var d=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f=Object.prototype.hasOwnProperty,h={},g={};function v(e,t,n,r,a,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var m={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){m[e]=new v(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];m[t]=new v(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){m[e]=new v(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){m[e]=new v(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){m[e]=new v(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){m[e]=new v(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){m[e]=new v(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){m[e]=new v(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){m[e]=new v(e,5,!1,e.toLowerCase(),null,!1,!1)}));var b=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function S(e,t,n,r){var a=m.hasOwnProperty(t)?m[t]:null;(null!==a?0===a.type:!r&&2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1]))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!f.call(g,e)||!f.call(h,e)&&(p.test(e)?g[e]=!0:(h[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(b,y);m[t]=new v(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(b,y);m[t]=new v(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(b,y);m[t]=new v(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){m[e]=new v(e,1,!1,e.toLowerCase(),null,!1,!1)})),m.xlinkHref=new v("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){m[e]=new v(e,1,!1,e.toLowerCase(),null,!0,!0)}));var w=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,k=60103,C=60106,E=60107,x=60108,_=60114,T=60109,A=60110,I=60112,N=60113,R=60120,L=60115,D=60116,P=60121,O=60128,M=60129,B=60130,F=60131;if("function"==typeof Symbol&&Symbol.for){var U=Symbol.for;k=U("react.element"),C=U("react.portal"),E=U("react.fragment"),x=U("react.strict_mode"),_=U("react.profiler"),T=U("react.provider"),A=U("react.context"),I=U("react.forward_ref"),N=U("react.suspense"),R=U("react.suspense_list"),L=U("react.memo"),D=U("react.lazy"),P=U("react.block"),U("react.scope"),O=U("react.opaque.id"),M=U("react.debug_trace_mode"),B=U("react.offscreen"),F=U("react.legacy_hidden")}var j,z="function"==typeof Symbol&&Symbol.iterator;function H(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=z&&e[z]||e["@@iterator"])?e:null}function V(e){if(void 0===j)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);j=t&&t[1]||""}return"\n"+j+e}var K=!1;function Z(e,t){if(!e||K)return"";K=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(e){var r=e}Reflect.construct(e,[],t)}else{try{t.call()}catch(e){r=e}e.call(t.prototype)}else{try{throw Error()}catch(e){r=e}e()}}catch(e){if(e&&r&&"string"==typeof e.stack){for(var a=e.stack.split("\n"),o=r.stack.split("\n"),i=a.length-1,s=o.length-1;1<=i&&0<=s&&a[i]!==o[s];)s--;for(;1<=i&&0<=s;i--,s--)if(a[i]!==o[s]){if(1!==i||1!==s)do{if(i--,0>--s||a[i]!==o[s])return"\n"+a[i].replace(" at new "," at ")}while(1<=i&&0<=s);break}}}finally{K=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?V(e):""}function $(e){switch(e.tag){case 5:return V(e.type);case 16:return V("Lazy");case 13:return V("Suspense");case 19:return V("SuspenseList");case 0:case 2:case 15:return Z(e.type,!1);case 11:return Z(e.type.render,!1);case 22:return Z(e.type._render,!1);case 1:return Z(e.type,!0);default:return""}}function q(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case E:return"Fragment";case C:return"Portal";case _:return"Profiler";case x:return"StrictMode";case N:return"Suspense";case R:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case A:return(e.displayName||"Context")+".Consumer";case T:return(e._context.displayName||"Context")+".Provider";case I:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case L:return q(e.type);case P:return q(e._render);case D:t=e._payload,e=e._init;try{return q(e(t))}catch(e){}}return null}function W(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function X(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function Y(e){e._valueTracker||(e._valueTracker=function(e){var t=X(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Q(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=X(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function G(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return a({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=W(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&S(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=W(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ae(e,t.type,n):t.hasOwnProperty("defaultValue")&&ae(e,t.type,W(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ae(e,t,n){"number"===t&&G(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function oe(e,t){return e=a({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ie(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+W(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function se(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function le(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:W(n)}}function ue(e,t){var n=W(t.value),r=W(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ce(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var de="http://www.w3.org/1999/xhtml";function pe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function fe(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?pe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var he,ge,ve=(ge=function(e,t){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=t;else{for((he=he||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=he.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ge(e,t)}))}:ge);function me(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var be={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ye=["Webkit","ms","Moz","O"];function Se(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||be.hasOwnProperty(e)&&be[e]?(""+t).trim():t+"px"}function we(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=Se(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(be).forEach((function(e){ye.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),be[t]=be[e]}))}));var ke=a({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ce(e,t){if(t){if(ke[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62))}}function Ee(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function xe(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var _e=null,Te=null,Ae=null;function Ie(e){if(e=Gr(e)){if("function"!=typeof _e)throw Error(i(280));var t=e.stateNode;t&&(t=ea(t),_e(e.stateNode,e.type,t))}}function Ne(e){Te?Ae?Ae.push(e):Ae=[e]:Te=e}function Re(){if(Te){var e=Te,t=Ae;if(Ae=Te=null,Ie(e),t)for(e=0;e<t.length;e++)Ie(t[e])}}function Le(e,t){return e(t)}function De(e,t,n,r,a){return e(t,n,r,a)}function Pe(){}var Oe=Le,Me=!1,Be=!1;function Fe(){null===Te&&null===Ae||(Pe(),Re())}function Ue(e,t){var n=e.stateNode;if(null===n)return null;var r=ea(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(i(231,t,typeof n));return n}var je=!1;if(d)try{var ze={};Object.defineProperty(ze,"passive",{get:function(){je=!0}}),window.addEventListener("test",ze,ze),window.removeEventListener("test",ze,ze)}catch(ge){je=!1}function He(e,t,n,r,a,o,i,s,l){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(e){this.onError(e)}}var Ve=!1,Ke=null,Ze=!1,$e=null,qe={onError:function(e){Ve=!0,Ke=e}};function We(e,t,n,r,a,o,i,s,l){Ve=!1,Ke=null,He.apply(qe,arguments)}function Xe(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Ye(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&null!==(e=e.alternate)&&(t=e.memoizedState),null!==t)return t.dehydrated}return null}function Qe(e){if(Xe(e)!==e)throw Error(i(188))}function Ge(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var Je,et,tt,nt,rt=!1,at=[],ot=null,it=null,st=null,lt=new Map,ut=new Map,ct=[],dt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function pt(e,t,n,r,a){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:a,targetContainers:[r]}}function ft(e,t){switch(e){case"focusin":case"focusout":ot=null;break;case"dragenter":case"dragleave":it=null;break;case"mouseover":case"mouseout":st=null;break;case"pointerover":case"pointerout":lt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ut.delete(t.pointerId)}}function ht(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e=pt(t,n,r,a,o),null!==t&&null!==(t=Gr(t))&&et(t),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function gt(e){var t=Qr(e.target);if(null!==t){var n=Xe(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Ye(n)))return e.blockedOn=t,void nt(e.lanePriority,(function(){o.unstable_runWithPriority(e.priority,(function(){tt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function vt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Qt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=Gr(n))&&et(t),e.blockedOn=n,!1;t.shift()}return!0}function mt(e,t,n){vt(e)&&n.delete(t)}function bt(){for(rt=!1;0<at.length;){var e=at[0];if(null!==e.blockedOn){null!==(e=Gr(e.blockedOn))&&Je(e);break}for(var t=e.targetContainers;0<t.length;){var n=Qt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&at.shift()}null!==ot&&vt(ot)&&(ot=null),null!==it&&vt(it)&&(it=null),null!==st&&vt(st)&&(st=null),lt.forEach(mt),ut.forEach(mt)}function yt(e,t){e.blockedOn===t&&(e.blockedOn=null,rt||(rt=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,bt)))}function St(e){function t(t){return yt(t,e)}if(0<at.length){yt(at[0],e);for(var n=1;n<at.length;n++){var r=at[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==ot&&yt(ot,e),null!==it&&yt(it,e),null!==st&&yt(st,e),lt.forEach(t),ut.forEach(t),n=0;n<ct.length;n++)(r=ct[n]).blockedOn===e&&(r.blockedOn=null);for(;0<ct.length&&null===(n=ct[0]).blockedOn;)gt(n),null===n.blockedOn&&ct.shift()}function wt(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var kt={animationend:wt("Animation","AnimationEnd"),animationiteration:wt("Animation","AnimationIteration"),animationstart:wt("Animation","AnimationStart"),transitionend:wt("Transition","TransitionEnd")},Ct={},Et={};function xt(e){if(Ct[e])return Ct[e];if(!kt[e])return e;var t,n=kt[e];for(t in n)if(n.hasOwnProperty(t)&&t in Et)return Ct[e]=n[t];return e}d&&(Et=document.createElement("div").style,"AnimationEvent"in window||(delete kt.animationend.animation,delete kt.animationiteration.animation,delete kt.animationstart.animation),"TransitionEvent"in window||delete kt.transitionend.transition);var _t=xt("animationend"),Tt=xt("animationiteration"),At=xt("animationstart"),It=xt("transitionend"),Nt=new Map,Rt=new Map,Lt=["abort","abort",_t,"animationEnd",Tt,"animationIteration",At,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",It,"transitionEnd","waiting","waiting"];function Dt(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],a=e[n+1];a="on"+(a[0].toUpperCase()+a.slice(1)),Rt.set(r,t),Nt.set(r,a),u(a,[r])}}(0,o.unstable_now)();var Pt=8;function Ot(e){if(0!=(1&e))return Pt=15,1;if(0!=(2&e))return Pt=14,2;if(0!=(4&e))return Pt=13,4;var t=24&e;return 0!==t?(Pt=12,t):0!=(32&e)?(Pt=11,32):0!=(t=192&e)?(Pt=10,t):0!=(256&e)?(Pt=9,256):0!=(t=3584&e)?(Pt=8,t):0!=(4096&e)?(Pt=7,4096):0!=(t=4186112&e)?(Pt=6,t):0!=(t=62914560&e)?(Pt=5,t):67108864&e?(Pt=4,67108864):0!=(134217728&e)?(Pt=3,134217728):0!=(t=805306368&e)?(Pt=2,t):0!=(1073741824&e)?(Pt=1,1073741824):(Pt=8,e)}function Mt(e,t){var n=e.pendingLanes;if(0===n)return Pt=0;var r=0,a=0,o=e.expiredLanes,i=e.suspendedLanes,s=e.pingedLanes;if(0!==o)r=o,a=Pt=15;else if(0!=(o=134217727&n)){var l=o&~i;0!==l?(r=Ot(l),a=Pt):0!=(s&=o)&&(r=Ot(s),a=Pt)}else 0!=(o=n&~i)?(r=Ot(o),a=Pt):0!==s&&(r=Ot(s),a=Pt);if(0===r)return 0;if(r=n&((0>(r=31-Ht(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0==(t&i)){if(Ot(t),a<=Pt)return t;Pt=a}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-Ht(t)),r|=e[n],t&=~a;return r}function Bt(e){return 0!=(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function Ft(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=Ut(24&~t))?Ft(10,t):e;case 10:return 0===(e=Ut(192&~t))?Ft(8,t):e;case 8:return 0===(e=Ut(3584&~t))&&0===(e=Ut(4186112&~t))&&(e=512),e;case 2:return 0===(t=Ut(805306368&~t))&&(t=268435456),t}throw Error(i(358,e))}function Ut(e){return e&-e}function jt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function zt(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-Ht(t)]=n}var Ht=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Vt(e)/Kt|0)|0},Vt=Math.log,Kt=Math.LN2,Zt=o.unstable_UserBlockingPriority,$t=o.unstable_runWithPriority,qt=!0;function Wt(e,t,n,r){Me||Pe();var a=Yt,o=Me;Me=!0;try{De(a,e,t,n,r)}finally{(Me=o)||Fe()}}function Xt(e,t,n,r){$t(Zt,Yt.bind(null,e,t,n,r))}function Yt(e,t,n,r){var a;if(qt)if((a=0==(4&t))&&0<at.length&&-1<dt.indexOf(e))e=pt(null,e,t,n,r),at.push(e);else{var o=Qt(e,t,n,r);if(null===o)a&&ft(e,r);else{if(a){if(-1<dt.indexOf(e))return e=pt(o,e,t,n,r),void at.push(e);if(function(e,t,n,r,a){switch(t){case"focusin":return ot=ht(ot,e,t,n,r,a),!0;case"dragenter":return it=ht(it,e,t,n,r,a),!0;case"mouseover":return st=ht(st,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return lt.set(o,ht(lt.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,ut.set(o,ht(ut.get(o)||null,e,t,n,r,a)),!0}return!1}(o,e,t,n,r))return;ft(e,r)}Nr(e,t,r,null,n)}}}function Qt(e,t,n,r){var a=xe(r);if(null!==(a=Qr(a))){var o=Xe(a);if(null===o)a=null;else{var i=o.tag;if(13===i){if(null!==(a=Ye(o)))return a;a=null}else if(3===i){if(o.stateNode.hydrate)return 3===o.tag?o.stateNode.containerInfo:null;a=null}else o!==a&&(a=null)}}return Nr(e,t,r,a,n),null}var Gt=null,Jt=null,en=null;function tn(){if(en)return en;var e,t,n=Jt,r=n.length,a="value"in Gt?Gt.value:Gt.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return en=a.slice(e,1<t?1-t:void 0)}function nn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function rn(){return!0}function an(){return!1}function on(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(a):a[i]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?rn:an,this.isPropagationStopped=an,this}return a(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=rn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=rn)},persist:function(){},isPersistent:rn}),t}var sn,ln,un,cn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},dn=on(cn),pn=a({},cn,{view:0,detail:0}),fn=on(pn),hn=a({},pn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:xn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==un&&(un&&"mousemove"===e.type?(sn=e.screenX-un.screenX,ln=e.screenY-un.screenY):ln=sn=0,un=e),sn)},movementY:function(e){return"movementY"in e?e.movementY:ln}}),gn=on(hn),vn=on(a({},hn,{dataTransfer:0})),mn=on(a({},pn,{relatedTarget:0})),bn=on(a({},cn,{animationName:0,elapsedTime:0,pseudoElement:0})),yn=on(a({},cn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}})),Sn=on(a({},cn,{data:0})),wn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},kn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Cn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function En(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Cn[e])&&!!t[e]}function xn(){return En}var _n=on(a({},pn,{key:function(e){if(e.key){var t=wn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=nn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?kn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:xn,charCode:function(e){return"keypress"===e.type?nn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?nn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}})),Tn=on(a({},hn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),An=on(a({},pn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:xn})),In=on(a({},cn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Nn=on(a({},hn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),Rn=[9,13,27,32],Ln=d&&"CompositionEvent"in window,Dn=null;d&&"documentMode"in document&&(Dn=document.documentMode);var Pn=d&&"TextEvent"in window&&!Dn,On=d&&(!Ln||Dn&&8<Dn&&11>=Dn),Mn=String.fromCharCode(32),Bn=!1;function Fn(e,t){switch(e){case"keyup":return-1!==Rn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Un(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var jn=!1,zn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Hn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!zn[e.type]:"textarea"===t}function Vn(e,t,n,r){Ne(r),0<(t=Lr(t,"onChange")).length&&(n=new dn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Kn=null,Zn=null;function $n(e){Er(e,0)}function qn(e){if(Q(Jr(e)))return e}function Wn(e,t){if("change"===e)return t}var Xn=!1;if(d){var Yn;if(d){var Qn="oninput"in document;if(!Qn){var Gn=document.createElement("div");Gn.setAttribute("oninput","return;"),Qn="function"==typeof Gn.oninput}Yn=Qn}else Yn=!1;Xn=Yn&&(!document.documentMode||9<document.documentMode)}function Jn(){Kn&&(Kn.detachEvent("onpropertychange",er),Zn=Kn=null)}function er(e){if("value"===e.propertyName&&qn(Zn)){var t=[];if(Vn(t,Zn,e,xe(e)),e=$n,Me)e(t);else{Me=!0;try{Le(e,t)}finally{Me=!1,Fe()}}}}function tr(e,t,n){"focusin"===e?(Jn(),Zn=n,(Kn=t).attachEvent("onpropertychange",er)):"focusout"===e&&Jn()}function nr(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return qn(Zn)}function rr(e,t){if("click"===e)return qn(t)}function ar(e,t){if("input"===e||"change"===e)return qn(t)}var or="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},ir=Object.prototype.hasOwnProperty;function sr(e,t){if(or(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!ir.call(t,n[r])||!or(e[n[r]],t[n[r]]))return!1;return!0}function lr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function ur(e,t){var n,r=lr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=lr(r)}}function cr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?cr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function dr(){for(var e=window,t=G();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(e){n=!1}if(!n)break;t=G((e=t.contentWindow).document)}return t}function pr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var fr=d&&"documentMode"in document&&11>=document.documentMode,hr=null,gr=null,vr=null,mr=!1;function br(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;mr||null==hr||hr!==G(r)||(r="selectionStart"in(r=hr)&&pr(r)?{start:r.selectionStart,end:r.selectionEnd}:{anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},vr&&sr(vr,r)||(vr=r,0<(r=Lr(gr,"onSelect")).length&&(t=new dn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=hr)))}Dt("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),Dt("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),Dt(Lt,2);for(var yr="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),Sr=0;Sr<yr.length;Sr++)Rt.set(yr[Sr],0);c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),u("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),u("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),u("onBeforeInput",["compositionend","keypress","textInput","paste"]),u("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var wr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),kr=new Set("cancel close invalid load scroll toggle".split(" ").concat(wr));function Cr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,o,s,l,u){if(We.apply(this,arguments),Ve){if(!Ve)throw Error(i(198));var c=Ke;Ve=!1,Ke=null,Ze||(Ze=!0,$e=c)}}(r,t,void 0,e),e.currentTarget=null}function Er(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var s=r[i],l=s.instance,u=s.currentTarget;if(s=s.listener,l!==o&&a.isPropagationStopped())break e;Cr(a,s,u),o=l}else for(i=0;i<r.length;i++){if(l=(s=r[i]).instance,u=s.currentTarget,s=s.listener,l!==o&&a.isPropagationStopped())break e;Cr(a,s,u),o=l}}}if(Ze)throw e=$e,Ze=!1,$e=null,e}function xr(e,t){var n=ta(t),r=e+"__bubble";n.has(r)||(Ir(t,e,2,!1),n.add(r))}var _r="_reactListening"+Math.random().toString(36).slice(2);function Tr(e){e[_r]||(e[_r]=!0,s.forEach((function(t){kr.has(t)||Ar(t,!1,e,null),Ar(t,!0,e,null)})))}function Ar(e,t,n,r){var a=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,o=n;if("selectionchange"===e&&9!==n.nodeType&&(o=n.ownerDocument),null!==r&&!t&&kr.has(e)){if("scroll"!==e)return;a|=2,o=r}var i=ta(o),s=e+"__"+(t?"capture":"bubble");i.has(s)||(t&&(a|=4),Ir(o,e,a,t),i.add(s))}function Ir(e,t,n,r){var a=Rt.get(t);switch(void 0===a?2:a){case 0:a=Wt;break;case 1:a=Xt;break;default:a=Yt}n=a.bind(null,t,n,e),a=void 0,!je||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Nr(e,t,n,r,a){var o=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var s=r.stateNode.containerInfo;if(s===a||8===s.nodeType&&s.parentNode===a)break;if(4===i)for(i=r.return;null!==i;){var l=i.tag;if((3===l||4===l)&&((l=i.stateNode.containerInfo)===a||8===l.nodeType&&l.parentNode===a))return;i=i.return}for(;null!==s;){if(null===(i=Qr(s)))return;if(5===(l=i.tag)||6===l){r=o=i;continue e}s=s.parentNode}}r=r.return}!function(e,t,n){if(Be)return e();Be=!0;try{Oe(e,t,n)}finally{Be=!1,Fe()}}((function(){var r=o,a=xe(n),i=[];e:{var s=Nt.get(e);if(void 0!==s){var l=dn,u=e;switch(e){case"keypress":if(0===nn(n))break e;case"keydown":case"keyup":l=_n;break;case"focusin":u="focus",l=mn;break;case"focusout":u="blur",l=mn;break;case"beforeblur":case"afterblur":l=mn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":l=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":l=vn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":l=An;break;case _t:case Tt:case At:l=bn;break;case It:l=In;break;case"scroll":l=fn;break;case"wheel":l=Nn;break;case"copy":case"cut":case"paste":l=yn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":l=Tn}var c=0!=(4&t),d=!c&&"scroll"===e,p=c?null!==s?s+"Capture":null:s;c=[];for(var f,h=r;null!==h;){var g=(f=h).stateNode;if(5===f.tag&&null!==g&&(f=g,null!==p&&null!=(g=Ue(h,p))&&c.push(Rr(h,g,f))),d)break;h=h.return}0<c.length&&(s=new l(s,u,null,n,a),i.push({event:s,listeners:c}))}}if(0==(7&t)){if(l="mouseout"===e||"pointerout"===e,(!(s="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(u=n.relatedTarget||n.fromElement)||!Qr(u)&&!u[Xr])&&(l||s)&&(s=a.window===a?a:(s=a.ownerDocument)?s.defaultView||s.parentWindow:window,l?(l=r,null!==(u=(u=n.relatedTarget||n.toElement)?Qr(u):null)&&(u!==(d=Xe(u))||5!==u.tag&&6!==u.tag)&&(u=null)):(l=null,u=r),l!==u)){if(c=gn,g="onMouseLeave",p="onMouseEnter",h="mouse","pointerout"!==e&&"pointerover"!==e||(c=Tn,g="onPointerLeave",p="onPointerEnter",h="pointer"),d=null==l?s:Jr(l),f=null==u?s:Jr(u),(s=new c(g,h+"leave",l,n,a)).target=d,s.relatedTarget=f,g=null,Qr(a)===r&&((c=new c(p,h+"enter",u,n,a)).target=f,c.relatedTarget=d,g=c),d=g,l&&u)e:{for(p=u,h=0,f=c=l;f;f=Dr(f))h++;for(f=0,g=p;g;g=Dr(g))f++;for(;0<h-f;)c=Dr(c),h--;for(;0<f-h;)p=Dr(p),f--;for(;h--;){if(c===p||null!==p&&c===p.alternate)break e;c=Dr(c),p=Dr(p)}c=null}else c=null;null!==l&&Pr(i,s,l,c,!1),null!==u&&null!==d&&Pr(i,d,u,c,!0)}if("select"===(l=(s=r?Jr(r):window).nodeName&&s.nodeName.toLowerCase())||"input"===l&&"file"===s.type)var v=Wn;else if(Hn(s))if(Xn)v=ar;else{v=nr;var m=tr}else(l=s.nodeName)&&"input"===l.toLowerCase()&&("checkbox"===s.type||"radio"===s.type)&&(v=rr);switch(v&&(v=v(e,r))?Vn(i,v,n,a):(m&&m(e,s,r),"focusout"===e&&(m=s._wrapperState)&&m.controlled&&"number"===s.type&&ae(s,"number",s.value)),m=r?Jr(r):window,e){case"focusin":(Hn(m)||"true"===m.contentEditable)&&(hr=m,gr=r,vr=null);break;case"focusout":vr=gr=hr=null;break;case"mousedown":mr=!0;break;case"contextmenu":case"mouseup":case"dragend":mr=!1,br(i,n,a);break;case"selectionchange":if(fr)break;case"keydown":case"keyup":br(i,n,a)}var b;if(Ln)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else jn?Fn(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(On&&"ko"!==n.locale&&(jn||"onCompositionStart"!==y?"onCompositionEnd"===y&&jn&&(b=tn()):(Jt="value"in(Gt=a)?Gt.value:Gt.textContent,jn=!0)),0<(m=Lr(r,y)).length&&(y=new Sn(y,e,null,n,a),i.push({event:y,listeners:m}),(b||null!==(b=Un(n)))&&(y.data=b))),(b=Pn?function(e,t){switch(e){case"compositionend":return Un(t);case"keypress":return 32!==t.which?null:(Bn=!0,Mn);case"textInput":return(e=t.data)===Mn&&Bn?null:e;default:return null}}(e,n):function(e,t){if(jn)return"compositionend"===e||!Ln&&Fn(e,t)?(e=tn(),en=Jt=Gt=null,jn=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return On&&"ko"!==t.locale?null:t.data;default:return null}}(e,n))&&0<(r=Lr(r,"onBeforeInput")).length&&(a=new Sn("onBeforeInput","beforeinput",null,n,a),i.push({event:a,listeners:r}),a.data=b)}Er(i,t)}))}function Rr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Lr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;5===a.tag&&null!==o&&(a=o,null!=(o=Ue(e,n))&&r.unshift(Rr(e,o,a)),null!=(o=Ue(e,t))&&r.push(Rr(e,o,a))),e=e.return}return r}function Dr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Pr(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var s=n,l=s.alternate,u=s.stateNode;if(null!==l&&l===r)break;5===s.tag&&null!==u&&(s=u,a?null!=(l=Ue(n,o))&&i.unshift(Rr(n,l,s)):a||null!=(l=Ue(n,o))&&i.push(Rr(n,l,s))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}function Or(){}var Mr=null,Br=null;function Fr(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function Ur(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var jr="function"==typeof setTimeout?setTimeout:void 0,zr="function"==typeof clearTimeout?clearTimeout:void 0;function Hr(e){(1===e.nodeType||9===e.nodeType&&null!=(e=e.body))&&(e.textContent="")}function Vr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Kr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Zr=0,$r=Math.random().toString(36).slice(2),qr="__reactFiber$"+$r,Wr="__reactProps$"+$r,Xr="__reactContainer$"+$r,Yr="__reactEvents$"+$r;function Qr(e){var t=e[qr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Xr]||n[qr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Kr(e);null!==e;){if(n=e[qr])return n;e=Kr(e)}return t}n=(e=n).parentNode}return null}function Gr(e){return!(e=e[qr]||e[Xr])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function Jr(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function ea(e){return e[Wr]||null}function ta(e){var t=e[Yr];return void 0===t&&(t=e[Yr]=new Set),t}var na=[],ra=-1;function aa(e){return{current:e}}function oa(e){0>ra||(e.current=na[ra],na[ra]=null,ra--)}function ia(e,t){ra++,na[ra]=e.current,e.current=t}var sa={},la=aa(sa),ua=aa(!1),ca=sa;function da(e,t){var n=e.type.contextTypes;if(!n)return sa;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function pa(e){return null!=e.childContextTypes}function fa(){oa(ua),oa(la)}function ha(e,t,n){if(la.current!==sa)throw Error(i(168));ia(la,t),ia(ua,n)}function ga(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in e))throw Error(i(108,q(t)||"Unknown",o));return a({},n,r)}function va(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||sa,ca=la.current,ia(la,e),ia(ua,ua.current),!0}function ma(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=ga(e,t,ca),r.__reactInternalMemoizedMergedChildContext=e,oa(ua),oa(la),ia(la,e)):oa(ua),ia(ua,n)}var ba=null,ya=null,Sa=o.unstable_runWithPriority,wa=o.unstable_scheduleCallback,ka=o.unstable_cancelCallback,Ca=o.unstable_shouldYield,Ea=o.unstable_requestPaint,xa=o.unstable_now,_a=o.unstable_getCurrentPriorityLevel,Ta=o.unstable_ImmediatePriority,Aa=o.unstable_UserBlockingPriority,Ia=o.unstable_NormalPriority,Na=o.unstable_LowPriority,Ra=o.unstable_IdlePriority,La={},Da=void 0!==Ea?Ea:function(){},Pa=null,Oa=null,Ma=!1,Ba=xa(),Fa=1e4>Ba?xa:function(){return xa()-Ba};function Ua(){switch(_a()){case Ta:return 99;case Aa:return 98;case Ia:return 97;case Na:return 96;case Ra:return 95;default:throw Error(i(332))}}function ja(e){switch(e){case 99:return Ta;case 98:return Aa;case 97:return Ia;case 96:return Na;case 95:return Ra;default:throw Error(i(332))}}function za(e,t){return e=ja(e),Sa(e,t)}function Ha(e,t,n){return e=ja(e),wa(e,t,n)}function Va(){if(null!==Oa){var e=Oa;Oa=null,ka(e)}Ka()}function Ka(){if(!Ma&&null!==Pa){Ma=!0;var e=0;try{var t=Pa;za(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Pa=null}catch(t){throw null!==Pa&&(Pa=Pa.slice(e+1)),wa(Ta,Va),t}finally{Ma=!1}}}var Za=w.ReactCurrentBatchConfig;function $a(e,t){if(e&&e.defaultProps){for(var n in t=a({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var qa=aa(null),Wa=null,Xa=null,Ya=null;function Qa(){Ya=Xa=Wa=null}function Ga(e){var t=qa.current;oa(qa),e.type._context._currentValue=t}function Ja(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function eo(e,t){Wa=e,Ya=Xa=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(Li=!0),e.firstContext=null)}function to(e,t){if(Ya!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(Ya=e,t=1073741823),t={context:e,observedBits:t,next:null},null===Xa){if(null===Wa)throw Error(i(308));Xa=t,Wa.dependencies={lanes:0,firstContext:t,responders:null}}else Xa=Xa.next=t;return e._currentValue}var no=!1;function ro(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function ao(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function oo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function io(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function so(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===o?a=o=i:o=o.next=i,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function lo(e,t,n,r){var o=e.updateQueue;no=!1;var i=o.firstBaseUpdate,s=o.lastBaseUpdate,l=o.shared.pending;if(null!==l){o.shared.pending=null;var u=l,c=u.next;u.next=null,null===s?i=c:s.next=c,s=u;var d=e.alternate;if(null!==d){var p=(d=d.updateQueue).lastBaseUpdate;p!==s&&(null===p?d.firstBaseUpdate=c:p.next=c,d.lastBaseUpdate=u)}}if(null!==i){for(p=o.baseState,s=0,d=c=u=null;;){l=i.lane;var f=i.eventTime;if((r&l)===l){null!==d&&(d=d.next={eventTime:f,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var h=e,g=i;switch(l=t,f=n,g.tag){case 1:if("function"==typeof(h=g.payload)){p=h.call(f,p,l);break e}p=h;break e;case 3:h.flags=-4097&h.flags|64;case 0:if(null==(l="function"==typeof(h=g.payload)?h.call(f,p,l):h))break e;p=a({},p,l);break e;case 2:no=!0}}null!==i.callback&&(e.flags|=32,null===(l=o.effects)?o.effects=[i]:l.push(i))}else f={eventTime:f,lane:l,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===d?(c=d=f,u=p):d=d.next=f,s|=l;if(null===(i=i.next)){if(null===(l=o.shared.pending))break;i=l.next,l.next=null,o.lastBaseUpdate=l,o.shared.pending=null}}null===d&&(u=p),o.baseState=u,o.firstBaseUpdate=c,o.lastBaseUpdate=d,Ps|=s,e.lanes=s,e.memoizedState=p}}function uo(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(i(191,a));a.call(r)}}}var co=(new r.Component).refs;function po(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:a({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var fo={isMounted:function(e){return!!(e=e._reactInternals)&&Xe(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=ol(),a=il(e),o=oo(r,a);o.payload=t,null!=n&&(o.callback=n),io(e,o),sl(e,a,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=ol(),a=il(e),o=oo(r,a);o.tag=1,o.payload=t,null!=n&&(o.callback=n),io(e,o),sl(e,a,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=ol(),r=il(e),a=oo(n,r);a.tag=2,null!=t&&(a.callback=t),io(e,a),sl(e,r,n)}};function ho(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!(t.prototype&&t.prototype.isPureReactComponent&&sr(n,r)&&sr(a,o))}function go(e,t,n){var r=!1,a=sa,o=t.contextType;return"object"==typeof o&&null!==o?o=to(o):(a=pa(t)?ca:la.current,o=(r=null!=(r=t.contextTypes))?da(e,a):sa),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=fo,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function vo(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&fo.enqueueReplaceState(t,t.state,null)}function mo(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=co,ro(e);var o=t.contextType;"object"==typeof o&&null!==o?a.context=to(o):(o=pa(t)?ca:la.current,a.context=da(e,o)),lo(e,n,a,r),a.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&(po(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&fo.enqueueReplaceState(a,a.state,null),lo(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4)}var bo=Array.isArray;function yo(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var a=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===a?t.ref:((t=function(e){var t=r.refs;t===co&&(t=r.refs={}),null===e?delete t[a]:t[a]=e})._stringRef=a,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function So(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function wo(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=Bl(e,t)).index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags=2,n):r:(t.flags=2,n):n}function s(t){return e&&null===t.alternate&&(t.flags=2),t}function l(e,t,n,r){return null===t||6!==t.tag?((t=zl(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function u(e,t,n,r){return null!==t&&t.elementType===n.type?((r=a(t,n.props)).ref=yo(e,t,n),r.return=e,r):((r=Fl(n.type,n.key,n.props,null,e.mode,r)).ref=yo(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Hl(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,o){return null===t||7!==t.tag?((t=Ul(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=zl(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case k:return(n=Fl(t.type,t.key,t.props,null,e.mode,n)).ref=yo(e,null,t),n.return=e,n;case C:return(t=Hl(t,e.mode,n)).return=e,t}if(bo(t)||H(t))return(t=Ul(t,e.mode,n,null)).return=e,t;So(e,t)}return null}function f(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==a?null:l(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case k:return n.key===a?n.type===E?d(e,t,n.props.children,r,a):u(e,t,n,r):null;case C:return n.key===a?c(e,t,n,r):null}if(bo(n)||H(n))return null!==a?null:d(e,t,n,r,null);So(e,n)}return null}function h(e,t,n,r,a){if("string"==typeof r||"number"==typeof r)return l(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case k:return e=e.get(null===r.key?n:r.key)||null,r.type===E?d(t,e,r.props.children,a,r.key):u(t,e,r,a);case C:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a)}if(bo(r)||H(r))return d(t,e=e.get(n)||null,r,a,null);So(t,r)}return null}function g(a,i,s,l){for(var u=null,c=null,d=i,g=i=0,v=null;null!==d&&g<s.length;g++){d.index>g?(v=d,d=null):v=d.sibling;var m=f(a,d,s[g],l);if(null===m){null===d&&(d=v);break}e&&d&&null===m.alternate&&t(a,d),i=o(m,i,g),null===c?u=m:c.sibling=m,c=m,d=v}if(g===s.length)return n(a,d),u;if(null===d){for(;g<s.length;g++)null!==(d=p(a,s[g],l))&&(i=o(d,i,g),null===c?u=d:c.sibling=d,c=d);return u}for(d=r(a,d);g<s.length;g++)null!==(v=h(d,a,g,s[g],l))&&(e&&null!==v.alternate&&d.delete(null===v.key?g:v.key),i=o(v,i,g),null===c?u=v:c.sibling=v,c=v);return e&&d.forEach((function(e){return t(a,e)})),u}function v(a,s,l,u){var c=H(l);if("function"!=typeof c)throw Error(i(150));if(null==(l=c.call(l)))throw Error(i(151));for(var d=c=null,g=s,v=s=0,m=null,b=l.next();null!==g&&!b.done;v++,b=l.next()){g.index>v?(m=g,g=null):m=g.sibling;var y=f(a,g,b.value,u);if(null===y){null===g&&(g=m);break}e&&g&&null===y.alternate&&t(a,g),s=o(y,s,v),null===d?c=y:d.sibling=y,d=y,g=m}if(b.done)return n(a,g),c;if(null===g){for(;!b.done;v++,b=l.next())null!==(b=p(a,b.value,u))&&(s=o(b,s,v),null===d?c=b:d.sibling=b,d=b);return c}for(g=r(a,g);!b.done;v++,b=l.next())null!==(b=h(g,a,v,b.value,u))&&(e&&null!==b.alternate&&g.delete(null===b.key?v:b.key),s=o(b,s,v),null===d?c=b:d.sibling=b,d=b);return e&&g.forEach((function(e){return t(a,e)})),c}return function(e,r,o,l){var u="object"==typeof o&&null!==o&&o.type===E&&null===o.key;u&&(o=o.props.children);var c="object"==typeof o&&null!==o;if(c)switch(o.$$typeof){case k:e:{for(c=o.key,u=r;null!==u;){if(u.key===c){switch(u.tag){case 7:if(o.type===E){n(e,u.sibling),(r=a(u,o.props.children)).return=e,e=r;break e}break;default:if(u.elementType===o.type){n(e,u.sibling),(r=a(u,o.props)).ref=yo(e,u,o),r.return=e,e=r;break e}}n(e,u);break}t(e,u),u=u.sibling}o.type===E?((r=Ul(o.props.children,e.mode,l,o.key)).return=e,e=r):((l=Fl(o.type,o.key,o.props,null,e.mode,l)).ref=yo(e,r,o),l.return=e,e=l)}return s(e);case C:e:{for(u=o.key;null!==r;){if(r.key===u){if(4===r.tag&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),(r=a(r,o.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Hl(o,e.mode,l)).return=e,e=r}return s(e)}if("string"==typeof o||"number"==typeof o)return o=""+o,null!==r&&6===r.tag?(n(e,r.sibling),(r=a(r,o)).return=e,e=r):(n(e,r),(r=zl(o,e.mode,l)).return=e,e=r),s(e);if(bo(o))return g(e,r,o,l);if(H(o))return v(e,r,o,l);if(c&&So(e,o),void 0===o&&!u)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(i(152,q(e.type)||"Component"))}return n(e,r)}}var ko=wo(!0),Co=wo(!1),Eo={},xo=aa(Eo),_o=aa(Eo),To=aa(Eo);function Ao(e){if(e===Eo)throw Error(i(174));return e}function Io(e,t){switch(ia(To,t),ia(_o,e),ia(xo,Eo),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:fe(null,"");break;default:t=fe(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}oa(xo),ia(xo,t)}function No(){oa(xo),oa(_o),oa(To)}function Ro(e){Ao(To.current);var t=Ao(xo.current),n=fe(t,e.type);t!==n&&(ia(_o,e),ia(xo,n))}function Lo(e){_o.current===e&&(oa(xo),oa(_o))}var Do=aa(0);function Po(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Oo=null,Mo=null,Bo=!1;function Fo(e,t){var n=Ol(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function Uo(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);case 13:default:return!1}}function jo(e){if(Bo){var t=Mo;if(t){var n=t;if(!Uo(e,t)){if(!(t=Vr(n.nextSibling))||!Uo(e,t))return e.flags=-1025&e.flags|2,Bo=!1,void(Oo=e);Fo(Oo,n)}Oo=e,Mo=Vr(t.firstChild)}else e.flags=-1025&e.flags|2,Bo=!1,Oo=e}}function zo(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;Oo=e}function Ho(e){if(e!==Oo)return!1;if(!Bo)return zo(e),Bo=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!Ur(t,e.memoizedProps))for(t=Mo;t;)Fo(e,t),t=Vr(t.nextSibling);if(zo(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){Mo=Vr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}Mo=null}}else Mo=Oo?Vr(e.stateNode.nextSibling):null;return!0}function Vo(){Mo=Oo=null,Bo=!1}var Ko=[];function Zo(){for(var e=0;e<Ko.length;e++)Ko[e]._workInProgressVersionPrimary=null;Ko.length=0}var $o=w.ReactCurrentDispatcher,qo=w.ReactCurrentBatchConfig,Wo=0,Xo=null,Yo=null,Qo=null,Go=!1,Jo=!1;function ei(){throw Error(i(321))}function ti(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!or(e[n],t[n]))return!1;return!0}function ni(e,t,n,r,a,o){if(Wo=o,Xo=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,$o.current=null===e||null===e.memoizedState?Ai:Ii,e=n(r,a),Jo){o=0;do{if(Jo=!1,!(25>o))throw Error(i(301));o+=1,Qo=Yo=null,t.updateQueue=null,$o.current=Ni,e=n(r,a)}while(Jo)}if($o.current=Ti,t=null!==Yo&&null!==Yo.next,Wo=0,Qo=Yo=Xo=null,Go=!1,t)throw Error(i(300));return e}function ri(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===Qo?Xo.memoizedState=Qo=e:Qo=Qo.next=e,Qo}function ai(){if(null===Yo){var e=Xo.alternate;e=null!==e?e.memoizedState:null}else e=Yo.next;var t=null===Qo?Xo.memoizedState:Qo.next;if(null!==t)Qo=t,Yo=e;else{if(null===e)throw Error(i(310));e={memoizedState:(Yo=e).memoizedState,baseState:Yo.baseState,baseQueue:Yo.baseQueue,queue:Yo.queue,next:null},null===Qo?Xo.memoizedState=Qo=e:Qo=Qo.next=e}return Qo}function oi(e,t){return"function"==typeof t?t(e):t}function ii(e){var t=ai(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=Yo,a=r.baseQueue,o=n.pending;if(null!==o){if(null!==a){var s=a.next;a.next=o.next,o.next=s}r.baseQueue=a=o,n.pending=null}if(null!==a){a=a.next,r=r.baseState;var l=s=o=null,u=a;do{var c=u.lane;if((Wo&c)===c)null!==l&&(l=l.next={lane:0,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null}),r=u.eagerReducer===e?u.eagerState:e(r,u.action);else{var d={lane:c,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null};null===l?(s=l=d,o=r):l=l.next=d,Xo.lanes|=c,Ps|=c}u=u.next}while(null!==u&&u!==a);null===l?o=r:l.next=s,or(r,t.memoizedState)||(Li=!0),t.memoizedState=r,t.baseState=o,t.baseQueue=l,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function si(e){var t=ai(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(null!==a){n.pending=null;var s=a=a.next;do{o=e(o,s.action),s=s.next}while(s!==a);or(o,t.memoizedState)||(Li=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function li(e,t,n){var r=t._getVersion;r=r(t._source);var a=t._workInProgressVersionPrimary;if(null!==a?e=a===r:(e=e.mutableReadLanes,(e=(Wo&e)===e)&&(t._workInProgressVersionPrimary=r,Ko.push(t))),e)return n(t._source);throw Ko.push(t),Error(i(350))}function ui(e,t,n,r){var a=_s;if(null===a)throw Error(i(349));var o=t._getVersion,s=o(t._source),l=$o.current,u=l.useState((function(){return li(a,t,n)})),c=u[1],d=u[0];u=Qo;var p=e.memoizedState,f=p.refs,h=f.getSnapshot,g=p.source;p=p.subscribe;var v=Xo;return e.memoizedState={refs:f,source:t,subscribe:r},l.useEffect((function(){f.getSnapshot=n,f.setSnapshot=c;var e=o(t._source);if(!or(s,e)){e=n(t._source),or(d,e)||(c(e),e=il(v),a.mutableReadLanes|=e&a.pendingLanes),e=a.mutableReadLanes,a.entangledLanes|=e;for(var r=a.entanglements,i=e;0<i;){var l=31-Ht(i),u=1<<l;r[l]|=e,i&=~u}}}),[n,t,r]),l.useEffect((function(){return r(t._source,(function(){var e=f.getSnapshot,n=f.setSnapshot;try{n(e(t._source));var r=il(v);a.mutableReadLanes|=r&a.pendingLanes}catch(e){n((function(){throw e}))}}))}),[t,r]),or(h,n)&&or(g,t)&&or(p,r)||((e={pending:null,dispatch:null,lastRenderedReducer:oi,lastRenderedState:d}).dispatch=c=_i.bind(null,Xo,e),u.queue=e,u.baseQueue=null,d=li(a,t,n),u.memoizedState=u.baseState=d),d}function ci(e,t,n){return ui(ai(),e,t,n)}function di(e){var t=ri();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:oi,lastRenderedState:e}).dispatch=_i.bind(null,Xo,e),[t.memoizedState,e]}function pi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=Xo.updateQueue)?(t={lastEffect:null},Xo.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function fi(e){return e={current:e},ri().memoizedState=e}function hi(){return ai().memoizedState}function gi(e,t,n,r){var a=ri();Xo.flags|=e,a.memoizedState=pi(1|t,n,void 0,void 0===r?null:r)}function vi(e,t,n,r){var a=ai();r=void 0===r?null:r;var o=void 0;if(null!==Yo){var i=Yo.memoizedState;if(o=i.destroy,null!==r&&ti(r,i.deps))return void pi(t,n,o,r)}Xo.flags|=e,a.memoizedState=pi(1|t,n,o,r)}function mi(e,t){return gi(516,4,e,t)}function bi(e,t){return vi(516,4,e,t)}function yi(e,t){return vi(4,2,e,t)}function Si(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function wi(e,t,n){return n=null!=n?n.concat([e]):null,vi(4,2,Si.bind(null,t,e),n)}function ki(){}function Ci(e,t){var n=ai();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ti(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ei(e,t){var n=ai();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ti(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function xi(e,t){var n=Ua();za(98>n?98:n,(function(){e(!0)})),za(97<n?97:n,(function(){var n=qo.transition;qo.transition=1;try{e(!1),t()}finally{qo.transition=n}}))}function _i(e,t,n){var r=ol(),a=il(e),o={lane:a,action:n,eagerReducer:null,eagerState:null,next:null},i=t.pending;if(null===i?o.next=o:(o.next=i.next,i.next=o),t.pending=o,i=e.alternate,e===Xo||null!==i&&i===Xo)Jo=Go=!0;else{if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var s=t.lastRenderedState,l=i(s,n);if(o.eagerReducer=i,o.eagerState=l,or(l,s))return}catch(e){}sl(e,a,r)}}var Ti={readContext:to,useCallback:ei,useContext:ei,useEffect:ei,useImperativeHandle:ei,useLayoutEffect:ei,useMemo:ei,useReducer:ei,useRef:ei,useState:ei,useDebugValue:ei,useDeferredValue:ei,useTransition:ei,useMutableSource:ei,useOpaqueIdentifier:ei,unstable_isNewReconciler:!1},Ai={readContext:to,useCallback:function(e,t){return ri().memoizedState=[e,void 0===t?null:t],e},useContext:to,useEffect:mi,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,gi(4,2,Si.bind(null,t,e),n)},useLayoutEffect:function(e,t){return gi(4,2,e,t)},useMemo:function(e,t){var n=ri();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=ri();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=_i.bind(null,Xo,e),[r.memoizedState,e]},useRef:fi,useState:di,useDebugValue:ki,useDeferredValue:function(e){var t=di(e),n=t[0],r=t[1];return mi((function(){var t=qo.transition;qo.transition=1;try{r(e)}finally{qo.transition=t}}),[e]),n},useTransition:function(){var e=di(!1),t=e[0];return fi(e=xi.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=ri();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},ui(r,e,t,n)},useOpaqueIdentifier:function(){if(Bo){var e=!1,t=function(e){return{$$typeof:O,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Zr++).toString(36))),Error(i(355))})),n=di(t)[1];return 0==(2&Xo.mode)&&(Xo.flags|=516,pi(5,(function(){n("r:"+(Zr++).toString(36))}),void 0,null)),t}return di(t="r:"+(Zr++).toString(36)),t},unstable_isNewReconciler:!1},Ii={readContext:to,useCallback:Ci,useContext:to,useEffect:bi,useImperativeHandle:wi,useLayoutEffect:yi,useMemo:Ei,useReducer:ii,useRef:hi,useState:function(){return ii(oi)},useDebugValue:ki,useDeferredValue:function(e){var t=ii(oi),n=t[0],r=t[1];return bi((function(){var t=qo.transition;qo.transition=1;try{r(e)}finally{qo.transition=t}}),[e]),n},useTransition:function(){var e=ii(oi)[0];return[hi().current,e]},useMutableSource:ci,useOpaqueIdentifier:function(){return ii(oi)[0]},unstable_isNewReconciler:!1},Ni={readContext:to,useCallback:Ci,useContext:to,useEffect:bi,useImperativeHandle:wi,useLayoutEffect:yi,useMemo:Ei,useReducer:si,useRef:hi,useState:function(){return si(oi)},useDebugValue:ki,useDeferredValue:function(e){var t=si(oi),n=t[0],r=t[1];return bi((function(){var t=qo.transition;qo.transition=1;try{r(e)}finally{qo.transition=t}}),[e]),n},useTransition:function(){var e=si(oi)[0];return[hi().current,e]},useMutableSource:ci,useOpaqueIdentifier:function(){return si(oi)[0]},unstable_isNewReconciler:!1},Ri=w.ReactCurrentOwner,Li=!1;function Di(e,t,n,r){t.child=null===e?Co(t,null,n,r):ko(t,e.child,n,r)}function Pi(e,t,n,r,a){n=n.render;var o=t.ref;return eo(t,a),r=ni(e,t,n,r,o,a),null===e||Li?(t.flags|=1,Di(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,Gi(e,t,a))}function Oi(e,t,n,r,a,o){if(null===e){var i=n.type;return"function"!=typeof i||Ml(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Fl(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,Mi(e,t,i,r,a,o))}return i=e.child,0==(a&o)&&(a=i.memoizedProps,(n=null!==(n=n.compare)?n:sr)(a,r)&&e.ref===t.ref)?Gi(e,t,o):(t.flags|=1,(e=Bl(i,r)).ref=t.ref,e.return=t,t.child=e)}function Mi(e,t,n,r,a,o){if(null!==e&&sr(e.memoizedProps,r)&&e.ref===t.ref){if(Li=!1,0==(o&a))return t.lanes=e.lanes,Gi(e,t,o);0!=(16384&e.flags)&&(Li=!0)}return Ui(e,t,n,r,o)}function Bi(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},fl(0,n);else{if(0==(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},fl(0,e),null;t.memoizedState={baseLanes:0},fl(0,null!==o?o.baseLanes:n)}else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,fl(0,r);return Di(e,t,a,n),t.child}function Fi(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function Ui(e,t,n,r,a){var o=pa(n)?ca:la.current;return o=da(t,o),eo(t,a),n=ni(e,t,n,r,o,a),null===e||Li?(t.flags|=1,Di(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,Gi(e,t,a))}function ji(e,t,n,r,a){if(pa(n)){var o=!0;va(t)}else o=!1;if(eo(t,a),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),go(t,n,r),mo(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,s=t.memoizedProps;i.props=s;var l=i.context,u=n.contextType;u="object"==typeof u&&null!==u?to(u):da(t,u=pa(n)?ca:la.current);var c=n.getDerivedStateFromProps,d="function"==typeof c||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==r||l!==u)&&vo(t,i,r,u),no=!1;var p=t.memoizedState;i.state=p,lo(t,r,i,a),l=t.memoizedState,s!==r||p!==l||ua.current||no?("function"==typeof c&&(po(t,n,c,r),l=t.memoizedState),(s=no||ho(t,n,s,r,p,l,u))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4)):("function"==typeof i.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=l),i.props=r,i.state=l,i.context=u,r=s):("function"==typeof i.componentDidMount&&(t.flags|=4),r=!1)}else{i=t.stateNode,ao(e,t),s=t.memoizedProps,u=t.type===t.elementType?s:$a(t.type,s),i.props=u,d=t.pendingProps,p=i.context,l="object"==typeof(l=n.contextType)&&null!==l?to(l):da(t,l=pa(n)?ca:la.current);var f=n.getDerivedStateFromProps;(c="function"==typeof f||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==d||p!==l)&&vo(t,i,r,l),no=!1,p=t.memoizedState,i.state=p,lo(t,r,i,a);var h=t.memoizedState;s!==d||p!==h||ua.current||no?("function"==typeof f&&(po(t,n,f,r),h=t.memoizedState),(u=no||ho(t,n,u,r,p,h,l))?(c||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,h,l),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,h,l)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=h),i.props=r,i.state=h,i.context=l,r=u):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),r=!1)}return zi(e,t,n,r,o,a)}function zi(e,t,n,r,a,o){Fi(e,t);var i=0!=(64&t.flags);if(!r&&!i)return a&&ma(t,n,!1),Gi(e,t,o);r=t.stateNode,Ri.current=t;var s=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=ko(t,e.child,null,o),t.child=ko(t,null,s,o)):Di(e,t,s,o),t.memoizedState=r.state,a&&ma(t,n,!0),t.child}function Hi(e){var t=e.stateNode;t.pendingContext?ha(0,t.pendingContext,t.pendingContext!==t.context):t.context&&ha(0,t.context,!1),Io(e,t.containerInfo)}var Vi,Ki,Zi,$i={dehydrated:null,retryLane:0};function qi(e,t,n){var r,a=t.pendingProps,o=Do.current,i=!1;return(r=0!=(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!=(2&o)),r?(i=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===a.fallback||!0===a.unstable_avoidThisFallback||(o|=1),ia(Do,1&o),null===e?(void 0!==a.fallback&&jo(t),e=a.children,o=a.fallback,i?(e=Wi(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=$i,e):"number"==typeof a.unstable_expectedLoadTime?(e=Wi(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=$i,t.lanes=33554432,e):((n=jl({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,i?(a=function(e,t,n,r,a){var o=t.mode,i=e.child;e=i.sibling;var s={mode:"hidden",children:n};return 0==(2&o)&&t.child!==i?((n=t.child).childLanes=0,n.pendingProps=s,null!==(i=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=i,i.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Bl(i,s),null!==e?r=Bl(e,r):(r=Ul(r,o,a,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}(e,t,a.children,a.fallback,n),i=t.child,o=e.child.memoizedState,i.memoizedState=null===o?{baseLanes:n}:{baseLanes:o.baseLanes|n},i.childLanes=e.childLanes&~n,t.memoizedState=$i,a):(n=function(e,t,n,r){var a=e.child;return e=a.sibling,n=Bl(a,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}(e,t,a.children,n),t.memoizedState=null,n))}function Wi(e,t,n,r){var a=e.mode,o=e.child;return t={mode:"hidden",children:t},0==(2&a)&&null!==o?(o.childLanes=0,o.pendingProps=t):o=jl(t,a,0,null),n=Ul(n,a,r,null),o.return=e,n.return=e,o.sibling=n,e.child=o,n}function Xi(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),Ja(e.return,t)}function Yi(e,t,n,r,a,o){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a,lastEffect:o}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=a,i.lastEffect=o)}function Qi(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(Di(e,t,r.children,n),0!=(2&(r=Do.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Xi(e,n);else if(19===e.tag)Xi(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(ia(Do,r),0==(2&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===Po(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),Yi(t,!1,a,n,o,t.lastEffect);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===Po(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}Yi(t,!0,n,null,o,t.lastEffect);break;case"together":Yi(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function Gi(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ps|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Bl(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Bl(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function Ji(e,t){if(!Bo)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function es(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:return pa(t.type)&&fa(),null;case 3:return No(),oa(ua),oa(la),Zo(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(Ho(t)?t.flags|=4:r.hydrate||(t.flags|=256)),null;case 5:Lo(t);var o=Ao(To.current);if(n=t.type,null!==e&&null!=t.stateNode)Ki(e,t,n,r),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(i(166));return null}if(e=Ao(xo.current),Ho(t)){r=t.stateNode,n=t.type;var s=t.memoizedProps;switch(r[qr]=t,r[Wr]=s,n){case"dialog":xr("cancel",r),xr("close",r);break;case"iframe":case"object":case"embed":xr("load",r);break;case"video":case"audio":for(e=0;e<wr.length;e++)xr(wr[e],r);break;case"source":xr("error",r);break;case"img":case"image":case"link":xr("error",r),xr("load",r);break;case"details":xr("toggle",r);break;case"input":ee(r,s),xr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!s.multiple},xr("invalid",r);break;case"textarea":le(r,s),xr("invalid",r)}for(var u in Ce(n,s),e=null,s)s.hasOwnProperty(u)&&(o=s[u],"children"===u?"string"==typeof o?r.textContent!==o&&(e=["children",o]):"number"==typeof o&&r.textContent!==""+o&&(e=["children",""+o]):l.hasOwnProperty(u)&&null!=o&&"onScroll"===u&&xr("scroll",r));switch(n){case"input":Y(r),re(r,s,!0);break;case"textarea":Y(r),ce(r);break;case"select":case"option":break;default:"function"==typeof s.onClick&&(r.onclick=Or)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(u=9===o.nodeType?o:o.ownerDocument,e===de&&(e=pe(n)),e===de?"script"===n?((e=u.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=u.createElement(n,{is:r.is}):(e=u.createElement(n),"select"===n&&(u=e,r.multiple?u.multiple=!0:r.size&&(u.size=r.size))):e=u.createElementNS(e,n),e[qr]=t,e[Wr]=r,Vi(e,t),t.stateNode=e,u=Ee(n,r),n){case"dialog":xr("cancel",e),xr("close",e),o=r;break;case"iframe":case"object":case"embed":xr("load",e),o=r;break;case"video":case"audio":for(o=0;o<wr.length;o++)xr(wr[o],e);o=r;break;case"source":xr("error",e),o=r;break;case"img":case"image":case"link":xr("error",e),xr("load",e),o=r;break;case"details":xr("toggle",e),o=r;break;case"input":ee(e,r),o=J(e,r),xr("invalid",e);break;case"option":o=oe(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=a({},r,{value:void 0}),xr("invalid",e);break;case"textarea":le(e,r),o=se(e,r),xr("invalid",e);break;default:o=r}Ce(n,o);var c=o;for(s in c)if(c.hasOwnProperty(s)){var d=c[s];"style"===s?we(e,d):"dangerouslySetInnerHTML"===s?null!=(d=d?d.__html:void 0)&&ve(e,d):"children"===s?"string"==typeof d?("textarea"!==n||""!==d)&&me(e,d):"number"==typeof d&&me(e,""+d):"suppressContentEditableWarning"!==s&&"suppressHydrationWarning"!==s&&"autoFocus"!==s&&(l.hasOwnProperty(s)?null!=d&&"onScroll"===s&&xr("scroll",e):null!=d&&S(e,s,d,u))}switch(n){case"input":Y(e),re(e,r,!1);break;case"textarea":Y(e),ce(e);break;case"option":null!=r.value&&e.setAttribute("value",""+W(r.value));break;case"select":e.multiple=!!r.multiple,null!=(s=r.value)?ie(e,!!r.multiple,s,!1):null!=r.defaultValue&&ie(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof o.onClick&&(e.onclick=Or)}Fr(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Zi(0,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));n=Ao(To.current),Ao(xo.current),Ho(t)?(r=t.stateNode,n=t.memoizedProps,r[qr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[qr]=t,t.stateNode=r)}return null;case 13:return oa(Do),r=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Ho(t):n=null!==e.memoizedState,r&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&Do.current)?0===Rs&&(Rs=3):(0!==Rs&&3!==Rs||(Rs=4),null===_s||0==(134217727&Ps)&&0==(134217727&Os)||dl(_s,As))),(r||n)&&(t.flags|=4),null);case 4:return No(),null===e&&Tr(t.stateNode.containerInfo),null;case 10:return Ga(t),null;case 17:return pa(t.type)&&fa(),null;case 19:if(oa(Do),null===(r=t.memoizedState))return null;if(s=0!=(64&t.flags),null===(u=r.rendering))if(s)Ji(r,!1);else{if(0!==Rs||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(u=Po(e))){for(t.flags|=64,Ji(r,!1),null!==(s=u.updateQueue)&&(t.updateQueue=s,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(s=n).flags&=2,s.nextEffect=null,s.firstEffect=null,s.lastEffect=null,null===(u=s.alternate)?(s.childLanes=0,s.lanes=e,s.child=null,s.memoizedProps=null,s.memoizedState=null,s.updateQueue=null,s.dependencies=null,s.stateNode=null):(s.childLanes=u.childLanes,s.lanes=u.lanes,s.child=u.child,s.memoizedProps=u.memoizedProps,s.memoizedState=u.memoizedState,s.updateQueue=u.updateQueue,s.type=u.type,e=u.dependencies,s.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return ia(Do,1&Do.current|2),t.child}e=e.sibling}null!==r.tail&&Fa()>Us&&(t.flags|=64,s=!0,Ji(r,!1),t.lanes=33554432)}else{if(!s)if(null!==(e=Po(u))){if(t.flags|=64,s=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),Ji(r,!0),null===r.tail&&"hidden"===r.tailMode&&!u.alternate&&!Bo)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*Fa()-r.renderingStartTime>Us&&1073741824!==n&&(t.flags|=64,s=!0,Ji(r,!1),t.lanes=33554432);r.isBackwards?(u.sibling=t.child,t.child=u):(null!==(n=r.last)?n.sibling=u:t.child=u,r.last=u)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=Fa(),n.sibling=null,t=Do.current,ia(Do,s?1&t|2:1&t),n):null;case 23:case 24:return hl(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(i(156,t.tag))}function ts(e){switch(e.tag){case 1:pa(e.type)&&fa();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(No(),oa(ua),oa(la),Zo(),0!=(64&(t=e.flags)))throw Error(i(285));return e.flags=-4097&t|64,e;case 5:return Lo(e),null;case 13:return oa(Do),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return oa(Do),null;case 4:return No(),null;case 10:return Ga(e),null;case 23:case 24:return hl(),null;default:return null}}function ns(e,t){try{var n="",r=t;do{n+=$(r),r=r.return}while(r);var a=n}catch(e){a="\nError generating stack: "+e.message+"\n"+e.stack}return{value:e,source:t,stack:a}}function rs(e,t){try{console.error(t.value)}catch(e){setTimeout((function(){throw e}))}}Vi=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Ki=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,Ao(xo.current);var i,s=null;switch(n){case"input":o=J(e,o),r=J(e,r),s=[];break;case"option":o=oe(e,o),r=oe(e,r),s=[];break;case"select":o=a({},o,{value:void 0}),r=a({},r,{value:void 0}),s=[];break;case"textarea":o=se(e,o),r=se(e,r),s=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=Or)}for(d in Ce(n,r),n=null,o)if(!r.hasOwnProperty(d)&&o.hasOwnProperty(d)&&null!=o[d])if("style"===d){var u=o[d];for(i in u)u.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(l.hasOwnProperty(d)?s||(s=[]):(s=s||[]).push(d,null));for(d in r){var c=r[d];if(u=null!=o?o[d]:void 0,r.hasOwnProperty(d)&&c!==u&&(null!=c||null!=u))if("style"===d)if(u){for(i in u)!u.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in c)c.hasOwnProperty(i)&&u[i]!==c[i]&&(n||(n={}),n[i]=c[i])}else n||(s||(s=[]),s.push(d,n)),n=c;else"dangerouslySetInnerHTML"===d?(c=c?c.__html:void 0,u=u?u.__html:void 0,null!=c&&u!==c&&(s=s||[]).push(d,c)):"children"===d?"string"!=typeof c&&"number"!=typeof c||(s=s||[]).push(d,""+c):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(l.hasOwnProperty(d)?(null!=c&&"onScroll"===d&&xr("scroll",e),s||u===c||(s=[])):"object"==typeof c&&null!==c&&c.$$typeof===O?c.toString():(s=s||[]).push(d,c))}n&&(s=s||[]).push("style",n);var d=s;(t.updateQueue=d)&&(t.flags|=4)}},Zi=function(e,t,n,r){n!==r&&(t.flags|=4)};var as="function"==typeof WeakMap?WeakMap:Map;function os(e,t,n){(n=oo(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Vs||(Vs=!0,Ks=r),rs(0,t)},n}function is(e,t,n){(n=oo(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return rs(0,t),r(a)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Zs?Zs=new Set([this]):Zs.add(this),rs(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var ss="function"==typeof WeakSet?WeakSet:Set;function ls(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(t){Rl(e,t)}else t.current=null}function us(e,t){switch(t.tag){case 0:case 11:case 15:case 22:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:$a(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Hr(t.stateNode.containerInfo));case 5:case 6:case 4:case 17:return}throw Error(i(163))}function cs(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var a=e;r=a.next,0!=(4&(a=a.tag))&&0!=(1&a)&&(Al(n,e),Tl(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:$a(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&uo(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:e=n.child.stateNode;break;case 1:e=n.child.stateNode}uo(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&Fr(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&St(n)))));case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(i(163))}function ds(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var a=n.memoizedProps.style;a=null!=a&&a.hasOwnProperty("display")?a.display:null,r.style.display=Se("display",a)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function ps(e,t){if(ya&&"function"==typeof ya.onCommitFiberUnmount)try{ya.onCommitFiberUnmount(ba,t)}catch(e){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,a=r.destroy;if(r=r.tag,void 0!==a)if(0!=(4&r))Al(t,n);else{r=t;try{a()}catch(e){Rl(r,e)}}n=n.next}while(n!==e)}break;case 1:if(ls(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(e){Rl(t,e)}break;case 5:ls(t);break;case 4:bs(e,t)}}function fs(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function hs(e){return 5===e.tag||3===e.tag||4===e.tag}function gs(e){e:{for(var t=e.return;null!==t;){if(hs(t))break e;t=t.return}throw Error(i(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.flags&&(me(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||hs(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?vs(e,n,t):ms(e,n,t)}function vs(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Or));else if(4!==r&&null!==(e=e.child))for(vs(e,t,n),e=e.sibling;null!==e;)vs(e,t,n),e=e.sibling}function ms(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(ms(e,t,n),e=e.sibling;null!==e;)ms(e,t,n),e=e.sibling}function bs(e,t){for(var n,r,a=t,o=!1;;){if(!o){o=a.return;e:for(;;){if(null===o)throw Error(i(160));switch(n=o.stateNode,o.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}o=o.return}o=!0}if(5===a.tag||6===a.tag){e:for(var s=e,l=a,u=l;;)if(ps(s,u),null!==u.child&&4!==u.tag)u.child.return=u,u=u.child;else{if(u===l)break e;for(;null===u.sibling;){if(null===u.return||u.return===l)break e;u=u.return}u.sibling.return=u.return,u=u.sibling}r?(s=n,l=a.stateNode,8===s.nodeType?s.parentNode.removeChild(l):s.removeChild(l)):n.removeChild(a.stateNode)}else if(4===a.tag){if(null!==a.child){n=a.stateNode.containerInfo,r=!0,a.child.return=a,a=a.child;continue}}else if(ps(e,a),null!==a.child){a.child.return=a,a=a.child;continue}if(a===t)break;for(;null===a.sibling;){if(null===a.return||a.return===t)return;4===(a=a.return).tag&&(o=!1)}a.sibling.return=a.return,a=a.sibling}}function ys(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3==(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var a=null!==e?e.memoizedProps:r;e=t.type;var o=t.updateQueue;if(t.updateQueue=null,null!==o){for(n[Wr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),Ee(e,a),t=Ee(e,r),a=0;a<o.length;a+=2){var s=o[a],l=o[a+1];"style"===s?we(n,l):"dangerouslySetInnerHTML"===s?ve(n,l):"children"===s?me(n,l):S(n,s,l,t)}switch(e){case"input":ne(n,r);break;case"textarea":ue(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(o=r.value)?ie(n,!!r.multiple,o,!1):e!==!!r.multiple&&(null!=r.defaultValue?ie(n,!!r.multiple,r.defaultValue,!0):ie(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(i(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,St(n.containerInfo)));case 12:return;case 13:return null!==t.memoizedState&&(Fs=Fa(),ds(t.child,!0)),void Ss(t);case 19:return void Ss(t);case 17:return;case 23:case 24:return void ds(t,null!==t.memoizedState)}throw Error(i(163))}function Ss(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new ss),t.forEach((function(t){var r=Dl.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function ws(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&null!==(t=t.memoizedState)&&null===t.dehydrated}var ks=Math.ceil,Cs=w.ReactCurrentDispatcher,Es=w.ReactCurrentOwner,xs=0,_s=null,Ts=null,As=0,Is=0,Ns=aa(0),Rs=0,Ls=null,Ds=0,Ps=0,Os=0,Ms=0,Bs=null,Fs=0,Us=1/0;function js(){Us=Fa()+500}var zs,Hs=null,Vs=!1,Ks=null,Zs=null,$s=!1,qs=null,Ws=90,Xs=[],Ys=[],Qs=null,Gs=0,Js=null,el=-1,tl=0,nl=0,rl=null,al=!1;function ol(){return 0!=(48&xs)?Fa():-1!==el?el:el=Fa()}function il(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===Ua()?1:2;if(0===tl&&(tl=Ds),0!==Za.transition){0!==nl&&(nl=null!==Bs?Bs.pendingLanes:0),e=tl;var t=4186112&~nl;return 0==(t&=-t)&&0==(t=(e=4186112&~e)&-e)&&(t=8192),t}return e=Ua(),e=Ft(0!=(4&xs)&&98===e?12:e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),tl)}function sl(e,t,n){if(50<Gs)throw Gs=0,Js=null,Error(i(185));if(null===(e=ll(e,t)))return null;zt(e,t,n),e===_s&&(Os|=t,4===Rs&&dl(e,As));var r=Ua();1===t?0!=(8&xs)&&0==(48&xs)?pl(e):(ul(e,n),0===xs&&(js(),Va())):(0==(4&xs)||98!==r&&99!==r||(null===Qs?Qs=new Set([e]):Qs.add(e)),ul(e,n)),Bs=e}function ll(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function ul(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,a=e.pingedLanes,o=e.expirationTimes,s=e.pendingLanes;0<s;){var l=31-Ht(s),u=1<<l,c=o[l];if(-1===c){if(0==(u&r)||0!=(u&a)){c=t,Ot(u);var d=Pt;o[l]=10<=d?c+250:6<=d?c+5e3:-1}}else c<=t&&(e.expiredLanes|=u);s&=~u}if(r=Mt(e,e===_s?As:0),t=Pt,0===r)null!==n&&(n!==La&&ka(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==La&&ka(n)}15===t?(n=pl.bind(null,e),null===Pa?(Pa=[n],Oa=wa(Ta,Ka)):Pa.push(n),n=La):n=14===t?Ha(99,pl.bind(null,e)):Ha(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(i(358,e))}}(t),cl.bind(null,e)),e.callbackPriority=t,e.callbackNode=n}}function cl(e){if(el=-1,nl=tl=0,0!=(48&xs))throw Error(i(327));var t=e.callbackNode;if(_l()&&e.callbackNode!==t)return null;var n=Mt(e,e===_s?As:0);if(0===n)return null;var r=n,a=xs;xs|=16;var o=ml();for(_s===e&&As===r||(js(),gl(e,r));;)try{Sl();break}catch(t){vl(e,t)}if(Qa(),Cs.current=o,xs=a,null!==Ts?r=0:(_s=null,As=0,r=Rs),0!=(Ds&Os))gl(e,0);else if(0!==r){if(2===r&&(xs|=64,e.hydrate&&(e.hydrate=!1,Hr(e.containerInfo)),0!==(n=Bt(e))&&(r=bl(e,n))),1===r)throw t=Ls,gl(e,0),dl(e,n),ul(e,Fa()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(i(345));case 2:Cl(e);break;case 3:if(dl(e,n),(62914560&n)===n&&10<(r=Fs+500-Fa())){if(0!==Mt(e,0))break;if(((a=e.suspendedLanes)&n)!==n){ol(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=jr(Cl.bind(null,e),r);break}Cl(e);break;case 4:if(dl(e,n),(4186112&n)===n)break;for(r=e.eventTimes,a=-1;0<n;){var s=31-Ht(n);o=1<<s,(s=r[s])>a&&(a=s),n&=~o}if(n=a,10<(n=(120>(n=Fa()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*ks(n/1960))-n)){e.timeoutHandle=jr(Cl.bind(null,e),n);break}Cl(e);break;case 5:Cl(e);break;default:throw Error(i(329))}}return ul(e,Fa()),e.callbackNode===t?cl.bind(null,e):null}function dl(e,t){for(t&=~Ms,t&=~Os,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-Ht(t),r=1<<n;e[n]=-1,t&=~r}}function pl(e){if(0!=(48&xs))throw Error(i(327));if(_l(),e===_s&&0!=(e.expiredLanes&As)){var t=As,n=bl(e,t);0!=(Ds&Os)&&(n=bl(e,t=Mt(e,t)))}else n=bl(e,t=Mt(e,0));if(0!==e.tag&&2===n&&(xs|=64,e.hydrate&&(e.hydrate=!1,Hr(e.containerInfo)),0!==(t=Bt(e))&&(n=bl(e,t))),1===n)throw n=Ls,gl(e,0),dl(e,t),ul(e,Fa()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Cl(e),ul(e,Fa()),null}function fl(e,t){ia(Ns,Is),Is|=t,Ds|=t}function hl(){Is=Ns.current,oa(Ns)}function gl(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,zr(n)),null!==Ts)for(n=Ts.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&fa();break;case 3:No(),oa(ua),oa(la),Zo();break;case 5:Lo(r);break;case 4:No();break;case 13:case 19:oa(Do);break;case 10:Ga(r);break;case 23:case 24:hl()}n=n.return}_s=e,Ts=Bl(e.current,null),As=Is=Ds=t,Rs=0,Ls=null,Ms=Os=Ps=0}function vl(e,t){for(;;){var n=Ts;try{if(Qa(),$o.current=Ti,Go){for(var r=Xo.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}Go=!1}if(Wo=0,Qo=Yo=Xo=null,Jo=!1,Es.current=null,null===n||null===n.return){Rs=1,Ls=t,Ts=null;break}e:{var o=e,i=n.return,s=n,l=t;if(t=As,s.flags|=2048,s.firstEffect=s.lastEffect=null,null!==l&&"object"==typeof l&&"function"==typeof l.then){var u=l;if(0==(2&s.mode)){var c=s.alternate;c?(s.updateQueue=c.updateQueue,s.memoizedState=c.memoizedState,s.lanes=c.lanes):(s.updateQueue=null,s.memoizedState=null)}var d=0!=(1&Do.current),p=i;do{var f;if(f=13===p.tag){var h=p.memoizedState;if(null!==h)f=null!==h.dehydrated;else{var g=p.memoizedProps;f=void 0!==g.fallback&&(!0!==g.unstable_avoidThisFallback||!d)}}if(f){var v=p.updateQueue;if(null===v){var m=new Set;m.add(u),p.updateQueue=m}else v.add(u);if(0==(2&p.mode)){if(p.flags|=64,s.flags|=16384,s.flags&=-2981,1===s.tag)if(null===s.alternate)s.tag=17;else{var b=oo(-1,1);b.tag=2,io(s,b)}s.lanes|=1;break e}l=void 0,s=t;var y=o.pingCache;if(null===y?(y=o.pingCache=new as,l=new Set,y.set(u,l)):void 0===(l=y.get(u))&&(l=new Set,y.set(u,l)),!l.has(s)){l.add(s);var S=Ll.bind(null,o,u,s);u.then(S,S)}p.flags|=4096,p.lanes=t;break e}p=p.return}while(null!==p);l=Error((q(s.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==Rs&&(Rs=2),l=ns(l,s),p=i;do{switch(p.tag){case 3:o=l,p.flags|=4096,t&=-t,p.lanes|=t,so(p,os(0,o,t));break e;case 1:o=l;var w=p.type,k=p.stateNode;if(0==(64&p.flags)&&("function"==typeof w.getDerivedStateFromError||null!==k&&"function"==typeof k.componentDidCatch&&(null===Zs||!Zs.has(k)))){p.flags|=4096,t&=-t,p.lanes|=t,so(p,is(p,o,t));break e}}p=p.return}while(null!==p)}kl(n)}catch(e){t=e,Ts===n&&null!==n&&(Ts=n=n.return);continue}break}}function ml(){var e=Cs.current;return Cs.current=Ti,null===e?Ti:e}function bl(e,t){var n=xs;xs|=16;var r=ml();for(_s===e&&As===t||gl(e,t);;)try{yl();break}catch(t){vl(e,t)}if(Qa(),xs=n,Cs.current=r,null!==Ts)throw Error(i(261));return _s=null,As=0,Rs}function yl(){for(;null!==Ts;)wl(Ts)}function Sl(){for(;null!==Ts&&!Ca();)wl(Ts)}function wl(e){var t=zs(e.alternate,e,Is);e.memoizedProps=e.pendingProps,null===t?kl(e):Ts=t,Es.current=null}function kl(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=es(n,t,Is)))return void(Ts=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&Is)||0==(4&n.mode)){for(var r=0,a=n.child;null!==a;)r|=a.lanes|a.childLanes,a=a.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=ts(t)))return n.flags&=2047,void(Ts=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Ts=t);Ts=t=e}while(null!==t);0===Rs&&(Rs=5)}function Cl(e){var t=Ua();return za(99,El.bind(null,e,t)),null}function El(e,t){do{_l()}while(null!==qs);if(0!=(48&xs))throw Error(i(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null;var r=n.lanes|n.childLanes,a=r,o=e.pendingLanes&~a;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=a,e.mutableReadLanes&=a,e.entangledLanes&=a,a=e.entanglements;for(var s=e.eventTimes,l=e.expirationTimes;0<o;){var u=31-Ht(o),c=1<<u;a[u]=0,s[u]=-1,l[u]=-1,o&=~c}if(null!==Qs&&0==(24&r)&&Qs.has(e)&&Qs.delete(e),e===_s&&(Ts=_s=null,As=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(a=xs,xs|=32,Es.current=null,Mr=qt,pr(s=dr())){if("selectionStart"in s)l={start:s.selectionStart,end:s.selectionEnd};else e:if(l=(l=s.ownerDocument)&&l.defaultView||window,(c=l.getSelection&&l.getSelection())&&0!==c.rangeCount){l=c.anchorNode,o=c.anchorOffset,u=c.focusNode,c=c.focusOffset;try{l.nodeType,u.nodeType}catch(e){l=null;break e}var d=0,p=-1,f=-1,h=0,g=0,v=s,m=null;t:for(;;){for(var b;v!==l||0!==o&&3!==v.nodeType||(p=d+o),v!==u||0!==c&&3!==v.nodeType||(f=d+c),3===v.nodeType&&(d+=v.nodeValue.length),null!==(b=v.firstChild);)m=v,v=b;for(;;){if(v===s)break t;if(m===l&&++h===o&&(p=d),m===u&&++g===c&&(f=d),null!==(b=v.nextSibling))break;m=(v=m).parentNode}v=b}l=-1===p||-1===f?null:{start:p,end:f}}else l=null;l=l||{start:0,end:0}}else l=null;Br={focusedElem:s,selectionRange:l},qt=!1,rl=null,al=!1,Hs=r;do{try{xl()}catch(e){if(null===Hs)throw Error(i(330));Rl(Hs,e),Hs=Hs.nextEffect}}while(null!==Hs);rl=null,Hs=r;do{try{for(s=e;null!==Hs;){var y=Hs.flags;if(16&y&&me(Hs.stateNode,""),128&y){var S=Hs.alternate;if(null!==S){var w=S.ref;null!==w&&("function"==typeof w?w(null):w.current=null)}}switch(1038&y){case 2:gs(Hs),Hs.flags&=-3;break;case 6:gs(Hs),Hs.flags&=-3,ys(Hs.alternate,Hs);break;case 1024:Hs.flags&=-1025;break;case 1028:Hs.flags&=-1025,ys(Hs.alternate,Hs);break;case 4:ys(Hs.alternate,Hs);break;case 8:bs(s,l=Hs);var k=l.alternate;fs(l),null!==k&&fs(k)}Hs=Hs.nextEffect}}catch(e){if(null===Hs)throw Error(i(330));Rl(Hs,e),Hs=Hs.nextEffect}}while(null!==Hs);if(w=Br,S=dr(),y=w.focusedElem,s=w.selectionRange,S!==y&&y&&y.ownerDocument&&cr(y.ownerDocument.documentElement,y)){null!==s&&pr(y)&&(S=s.start,void 0===(w=s.end)&&(w=S),"selectionStart"in y?(y.selectionStart=S,y.selectionEnd=Math.min(w,y.value.length)):(w=(S=y.ownerDocument||document)&&S.defaultView||window).getSelection&&(w=w.getSelection(),l=y.textContent.length,k=Math.min(s.start,l),s=void 0===s.end?k:Math.min(s.end,l),!w.extend&&k>s&&(l=s,s=k,k=l),l=ur(y,k),o=ur(y,s),l&&o&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==o.node||w.focusOffset!==o.offset)&&((S=S.createRange()).setStart(l.node,l.offset),w.removeAllRanges(),k>s?(w.addRange(S),w.extend(o.node,o.offset)):(S.setEnd(o.node,o.offset),w.addRange(S))))),S=[];for(w=y;w=w.parentNode;)1===w.nodeType&&S.push({element:w,left:w.scrollLeft,top:w.scrollTop});for("function"==typeof y.focus&&y.focus(),y=0;y<S.length;y++)(w=S[y]).element.scrollLeft=w.left,w.element.scrollTop=w.top}qt=!!Mr,Br=Mr=null,e.current=n,Hs=r;do{try{for(y=e;null!==Hs;){var C=Hs.flags;if(36&C&&cs(y,Hs.alternate,Hs),128&C){S=void 0;var E=Hs.ref;if(null!==E){var x=Hs.stateNode;switch(Hs.tag){case 5:S=x;break;default:S=x}"function"==typeof E?E(S):E.current=S}}Hs=Hs.nextEffect}}catch(e){if(null===Hs)throw Error(i(330));Rl(Hs,e),Hs=Hs.nextEffect}}while(null!==Hs);Hs=null,Da(),xs=a}else e.current=n;if($s)$s=!1,qs=e,Ws=t;else for(Hs=r;null!==Hs;)t=Hs.nextEffect,Hs.nextEffect=null,8&Hs.flags&&((C=Hs).sibling=null,C.stateNode=null),Hs=t;if(0===(r=e.pendingLanes)&&(Zs=null),1===r?e===Js?Gs++:(Gs=0,Js=e):Gs=0,n=n.stateNode,ya&&"function"==typeof ya.onCommitFiberRoot)try{ya.onCommitFiberRoot(ba,n,void 0,64==(64&n.current.flags))}catch(e){}if(ul(e,Fa()),Vs)throw Vs=!1,e=Ks,Ks=null,e;return 0!=(8&xs)||Va(),null}function xl(){for(;null!==Hs;){var e=Hs.alternate;al||null===rl||(0!=(8&Hs.flags)?Ge(Hs,rl)&&(al=!0):13===Hs.tag&&ws(e,Hs)&&Ge(Hs,rl)&&(al=!0));var t=Hs.flags;0!=(256&t)&&us(e,Hs),0==(512&t)||$s||($s=!0,Ha(97,(function(){return _l(),null}))),Hs=Hs.nextEffect}}function _l(){if(90!==Ws){var e=97<Ws?97:Ws;return Ws=90,za(e,Il)}return!1}function Tl(e,t){Xs.push(t,e),$s||($s=!0,Ha(97,(function(){return _l(),null})))}function Al(e,t){Ys.push(t,e),$s||($s=!0,Ha(97,(function(){return _l(),null})))}function Il(){if(null===qs)return!1;var e=qs;if(qs=null,0!=(48&xs))throw Error(i(331));var t=xs;xs|=32;var n=Ys;Ys=[];for(var r=0;r<n.length;r+=2){var a=n[r],o=n[r+1],s=a.destroy;if(a.destroy=void 0,"function"==typeof s)try{s()}catch(e){if(null===o)throw Error(i(330));Rl(o,e)}}for(n=Xs,Xs=[],r=0;r<n.length;r+=2){a=n[r],o=n[r+1];try{var l=a.create;a.destroy=l()}catch(e){if(null===o)throw Error(i(330));Rl(o,e)}}for(l=e.current.firstEffect;null!==l;)e=l.nextEffect,l.nextEffect=null,8&l.flags&&(l.sibling=null,l.stateNode=null),l=e;return xs=t,Va(),!0}function Nl(e,t,n){io(e,t=os(0,t=ns(n,t),1)),t=ol(),null!==(e=ll(e,1))&&(zt(e,1,t),ul(e,t))}function Rl(e,t){if(3===e.tag)Nl(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){Nl(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Zs||!Zs.has(r))){var a=is(n,e=ns(t,e),1);if(io(n,a),a=ol(),null!==(n=ll(n,1)))zt(n,1,a),ul(n,a);else if("function"==typeof r.componentDidCatch&&(null===Zs||!Zs.has(r)))try{r.componentDidCatch(t,e)}catch(e){}break}}n=n.return}}function Ll(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=ol(),e.pingedLanes|=e.suspendedLanes&n,_s===e&&(As&n)===n&&(4===Rs||3===Rs&&(62914560&As)===As&&500>Fa()-Fs?gl(e,0):Ms|=n),ul(e,t)}function Dl(e,t){var n=e.stateNode;null!==n&&n.delete(t),0==(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===Ua()?1:2:(0===tl&&(tl=Ds),0===(t=Ut(62914560&~tl))&&(t=4194304))),n=ol(),null!==(e=ll(e,t))&&(zt(e,t,n),ul(e,n))}function Pl(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function Ol(e,t,n,r){return new Pl(e,t,n,r)}function Ml(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Bl(e,t){var n=e.alternate;return null===n?((n=Ol(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Fl(e,t,n,r,a,o){var s=2;if(r=e,"function"==typeof e)Ml(e)&&(s=1);else if("string"==typeof e)s=5;else e:switch(e){case E:return Ul(n.children,a,o,t);case M:s=8,a|=16;break;case x:s=8,a|=1;break;case _:return(e=Ol(12,n,t,8|a)).elementType=_,e.type=_,e.lanes=o,e;case N:return(e=Ol(13,n,t,a)).type=N,e.elementType=N,e.lanes=o,e;case R:return(e=Ol(19,n,t,a)).elementType=R,e.lanes=o,e;case B:return jl(n,a,o,t);case F:return(e=Ol(24,n,t,a)).elementType=F,e.lanes=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case T:s=10;break e;case A:s=9;break e;case I:s=11;break e;case L:s=14;break e;case D:s=16,r=null;break e;case P:s=22;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=Ol(s,n,t,a)).elementType=e,t.type=r,t.lanes=o,t}function Ul(e,t,n,r){return(e=Ol(7,e,r,t)).lanes=n,e}function jl(e,t,n,r){return(e=Ol(23,e,r,t)).elementType=B,e.lanes=n,e}function zl(e,t,n){return(e=Ol(6,e,null,t)).lanes=n,e}function Hl(e,t,n){return(t=Ol(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Vl(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=jt(0),this.expirationTimes=jt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=jt(0),this.mutableSourceEagerHydrationData=null}function Kl(e,t,n,r){var a=t.current,o=ol(),s=il(a);e:if(n){t:{if(Xe(n=n._reactInternals)!==n||1!==n.tag)throw Error(i(170));var l=n;do{switch(l.tag){case 3:l=l.stateNode.context;break t;case 1:if(pa(l.type)){l=l.stateNode.__reactInternalMemoizedMergedChildContext;break t}}l=l.return}while(null!==l);throw Error(i(171))}if(1===n.tag){var u=n.type;if(pa(u)){n=ga(n,u,l);break e}}n=l}else n=sa;return null===t.context?t.context=n:t.pendingContext=n,(t=oo(o,s)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),io(a,t),sl(a,s,o),s}function Zl(e){if(!(e=e.current).child)return null;switch(e.child.tag){case 5:default:return e.child.stateNode}}function $l(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function ql(e,t){$l(e,t),(e=e.alternate)&&$l(e,t)}function Wl(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Vl(e,t,null!=n&&!0===n.hydrate),t=Ol(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,ro(t),e[Xr]=n.current,Tr(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var a=(t=r[e])._getVersion;a=a(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,a]:n.mutableSourceEagerHydrationData.push(t,a)}this._internalRoot=n}function Xl(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Yl(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o._internalRoot;if("function"==typeof a){var s=a;a=function(){var e=Zl(i);s.call(e)}}Kl(t,i,e,a)}else{if(o=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new Wl(e,0,t?{hydrate:!0}:void 0)}(n,r),i=o._internalRoot,"function"==typeof a){var l=a;a=function(){var e=Zl(i);l.call(e)}}!function(e,t){var n=xs;xs&=-2,xs|=8;try{e(t)}finally{0===(xs=n)&&(js(),Va())}}((function(){Kl(t,i,e,a)}))}return Zl(i)}zs=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||ua.current)Li=!0;else{if(0==(n&r)){switch(Li=!1,t.tag){case 3:Hi(t),Vo();break;case 5:Ro(t);break;case 1:pa(t.type)&&va(t);break;case 4:Io(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var a=t.type._context;ia(qa,a._currentValue),a._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?qi(e,t,n):(ia(Do,1&Do.current),null!==(t=Gi(e,t,n))?t.sibling:null);ia(Do,1&Do.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return Qi(e,t,n);t.flags|=64}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),ia(Do,Do.current),r)break;return null;case 23:case 24:return t.lanes=0,Bi(e,t,n)}return Gi(e,t,n)}Li=0!=(16384&e.flags)}else Li=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=da(t,la.current),eo(t,n),a=ni(null,t,r,e,a,n),t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,pa(r)){var o=!0;va(t)}else o=!1;t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,ro(t);var s=r.getDerivedStateFromProps;"function"==typeof s&&po(t,r,s,e),a.updater=fo,t.stateNode=a,a._reactInternals=t,mo(t,r,e,n),t=zi(null,t,r,!0,o,n)}else t.tag=0,Di(null,t,a,n),t=t.child;return t;case 16:a=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=(o=a._init)(a._payload),t.type=a,o=t.tag=function(e){if("function"==typeof e)return Ml(e)?1:0;if(null!=e){if((e=e.$$typeof)===I)return 11;if(e===L)return 14}return 2}(a),e=$a(a,e),o){case 0:t=Ui(null,t,a,e,n);break e;case 1:t=ji(null,t,a,e,n);break e;case 11:t=Pi(null,t,a,e,n);break e;case 14:t=Oi(null,t,a,$a(a.type,e),r,n);break e}throw Error(i(306,a,""))}return t;case 0:return r=t.type,a=t.pendingProps,Ui(e,t,r,a=t.elementType===r?a:$a(r,a),n);case 1:return r=t.type,a=t.pendingProps,ji(e,t,r,a=t.elementType===r?a:$a(r,a),n);case 3:if(Hi(t),r=t.updateQueue,null===e||null===r)throw Error(i(282));if(r=t.pendingProps,a=null!==(a=t.memoizedState)?a.element:null,ao(e,t),lo(t,r,null,n),(r=t.memoizedState.element)===a)Vo(),t=Gi(e,t,n);else{if((o=(a=t.stateNode).hydrate)&&(Mo=Vr(t.stateNode.containerInfo.firstChild),Oo=t,o=Bo=!0),o){if(null!=(e=a.mutableSourceEagerHydrationData))for(a=0;a<e.length;a+=2)(o=e[a])._workInProgressVersionPrimary=e[a+1],Ko.push(o);for(n=Co(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else Di(e,t,r,n),Vo();t=t.child}return t;case 5:return Ro(t),null===e&&jo(t),r=t.type,a=t.pendingProps,o=null!==e?e.memoizedProps:null,s=a.children,Ur(r,a)?s=null:null!==o&&Ur(r,o)&&(t.flags|=16),Fi(e,t),Di(e,t,s,n),t.child;case 6:return null===e&&jo(t),null;case 13:return qi(e,t,n);case 4:return Io(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=ko(t,null,r,n):Di(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,Pi(e,t,r,a=t.elementType===r?a:$a(r,a),n);case 7:return Di(e,t,t.pendingProps,n),t.child;case 8:case 12:return Di(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,a=t.pendingProps,s=t.memoizedProps,o=a.value;var l=t.type._context;if(ia(qa,l._currentValue),l._currentValue=o,null!==s)if(l=s.value,0==(o=or(l,o)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(l,o):1073741823))){if(s.children===a.children&&!ua.current){t=Gi(e,t,n);break e}}else for(null!==(l=t.child)&&(l.return=t);null!==l;){var u=l.dependencies;if(null!==u){s=l.child;for(var c=u.firstContext;null!==c;){if(c.context===r&&0!=(c.observedBits&o)){1===l.tag&&((c=oo(-1,n&-n)).tag=2,io(l,c)),l.lanes|=n,null!==(c=l.alternate)&&(c.lanes|=n),Ja(l.return,n),u.lanes|=n;break}c=c.next}}else s=10===l.tag&&l.type===t.type?null:l.child;if(null!==s)s.return=l;else for(s=l;null!==s;){if(s===t){s=null;break}if(null!==(l=s.sibling)){l.return=s.return,s=l;break}s=s.return}l=s}Di(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=(o=t.pendingProps).children,eo(t,n),r=r(a=to(a,o.unstable_observedBits)),t.flags|=1,Di(e,t,r,n),t.child;case 14:return o=$a(a=t.type,t.pendingProps),Oi(e,t,a,o=$a(a.type,o),r,n);case 15:return Mi(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:$a(r,a),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,pa(r)?(e=!0,va(t)):e=!1,eo(t,n),go(t,r,a),mo(t,r,a,n),zi(null,t,r,!0,e,n);case 19:return Qi(e,t,n);case 23:case 24:return Bi(e,t,n)}throw Error(i(156,t.tag))},Wl.prototype.render=function(e){Kl(e,this._internalRoot,null,null)},Wl.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;Kl(null,e,null,(function(){t[Xr]=null}))},Je=function(e){13===e.tag&&(sl(e,4,ol()),ql(e,4))},et=function(e){13===e.tag&&(sl(e,67108864,ol()),ql(e,67108864))},tt=function(e){if(13===e.tag){var t=ol(),n=il(e);sl(e,n,t),ql(e,n)}},nt=function(e,t){return t()},_e=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=ea(r);if(!a)throw Error(i(90));Q(r),ne(r,a)}}}break;case"textarea":ue(e,n);break;case"select":null!=(t=n.value)&&ie(e,!!n.multiple,t,!1)}},Le=function(e,t){var n=xs;xs|=1;try{return e(t)}finally{0===(xs=n)&&(js(),Va())}},De=function(e,t,n,r,a){var o=xs;xs|=4;try{return za(98,e.bind(null,t,n,r,a))}finally{0===(xs=o)&&(js(),Va())}},Pe=function(){0==(49&xs)&&(function(){if(null!==Qs){var e=Qs;Qs=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,ul(e,Fa())}))}Va()}(),_l())},Oe=function(e,t){var n=xs;xs|=2;try{return e(t)}finally{0===(xs=n)&&(js(),Va())}};var Ql={findFiberByHostInstance:Qr,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},Gl={bundleType:Ql.bundleType,version:Ql.version,rendererPackageName:Ql.rendererPackageName,rendererConfig:Ql.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:w.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=function(e){if(!(e=function(e){var t=e.alternate;if(!t){if(null===(t=Xe(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var o=a.alternate;if(null===o){if(null!==(r=a.return)){n=r;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return Qe(a),e;if(o===r)return Qe(a),t;o=o.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=o;else{for(var s=!1,l=a.child;l;){if(l===n){s=!0,n=a,r=o;break}if(l===r){s=!0,r=a,n=o;break}l=l.sibling}if(!s){for(l=o.child;l;){if(l===n){s=!0,n=o,r=a;break}if(l===r){s=!0,r=o,n=a;break}l=l.sibling}if(!s)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e)))return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}(e))?null:e.stateNode},findFiberByHostInstance:Ql.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var Jl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Jl.isDisabled&&Jl.supportsFiber)try{ba=Jl.inject(Gl),ya=Jl}catch(ge){}}t.render=function(e,t,n){if(!Xl(t))throw Error(i(200));return Yl(null,e,t,!1,n)}},935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=n(448)},203:(e,t)=>{"use strict";var n,r,a,o;if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var s=Date,l=s.now();t.unstable_now=function(){return s.now()-l}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var u=null,c=null,d=function(){if(null!==u)try{var e=t.unstable_now();u(!0,e),u=null}catch(e){throw setTimeout(d,0),e}};n=function(e){null!==u?setTimeout(n,0,e):(u=e,setTimeout(d,0))},r=function(e,t){c=setTimeout(e,t)},a=function(){clearTimeout(c)},t.unstable_shouldYield=function(){return!1},o=t.unstable_forceFrameRate=function(){}}else{var p=window.setTimeout,f=window.clearTimeout;if("undefined"!=typeof console){var h=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof h&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var g=!1,v=null,m=-1,b=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},o=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):b=0<e?Math.floor(1e3/e):5};var S=new MessageChannel,w=S.port2;S.port1.onmessage=function(){if(null!==v){var e=t.unstable_now();y=e+b;try{v(!0,e)?w.postMessage(null):(g=!1,v=null)}catch(e){throw w.postMessage(null),e}}else g=!1},n=function(e){v=e,g||(g=!0,w.postMessage(null))},r=function(e,n){m=p((function(){e(t.unstable_now())}),n)},a=function(){f(m),m=-1}}function k(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,a=e[r];if(!(void 0!==a&&0<x(a,t)))break e;e[r]=t,e[n]=a,n=r}}function C(e){return void 0===(e=e[0])?null:e}function E(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length;r<a;){var o=2*(r+1)-1,i=e[o],s=o+1,l=e[s];if(void 0!==i&&0>x(i,n))void 0!==l&&0>x(l,i)?(e[r]=l,e[s]=n,r=s):(e[r]=i,e[o]=n,r=o);else{if(!(void 0!==l&&0>x(l,n)))break e;e[r]=l,e[s]=n,r=s}}}return t}return null}function x(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var _=[],T=[],A=1,I=null,N=3,R=!1,L=!1,D=!1;function P(e){for(var t=C(T);null!==t;){if(null===t.callback)E(T);else{if(!(t.startTime<=e))break;E(T),t.sortIndex=t.expirationTime,k(_,t)}t=C(T)}}function O(e){if(D=!1,P(e),!L)if(null!==C(_))L=!0,n(M);else{var t=C(T);null!==t&&r(O,t.startTime-e)}}function M(e,n){L=!1,D&&(D=!1,a()),R=!0;var o=N;try{for(P(n),I=C(_);null!==I&&(!(I.expirationTime>n)||e&&!t.unstable_shouldYield());){var i=I.callback;if("function"==typeof i){I.callback=null,N=I.priorityLevel;var s=i(I.expirationTime<=n);n=t.unstable_now(),"function"==typeof s?I.callback=s:I===C(_)&&E(_),P(n)}else E(_);I=C(_)}if(null!==I)var l=!0;else{var u=C(T);null!==u&&r(O,u.startTime-n),l=!1}return l}finally{I=null,N=o,R=!1}}var B=o;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){L||R||(L=!0,n(M))},t.unstable_getCurrentPriorityLevel=function(){return N},t.unstable_getFirstCallbackNode=function(){return C(_)},t.unstable_next=function(e){switch(N){case 1:case 2:case 3:var t=3;break;default:t=N}var n=N;N=t;try{return e()}finally{N=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=B,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=N;N=e;try{return t()}finally{N=n}},t.unstable_scheduleCallback=function(e,o,i){var s=t.unstable_now();switch(i="object"==typeof i&&null!==i&&"number"==typeof(i=i.delay)&&0<i?s+i:s,e){case 1:var l=-1;break;case 2:l=250;break;case 5:l=1073741823;break;case 4:l=1e4;break;default:l=5e3}return e={id:A++,callback:o,priorityLevel:e,startTime:i,expirationTime:l=i+l,sortIndex:-1},i>s?(e.sortIndex=i,k(T,e),null===C(_)&&e===C(T)&&(D?a():D=!0,r(O,i-s))):(e.sortIndex=l,k(_,e),L||R||(L=!0,n(M))),e},t.unstable_wrapCallback=function(e){var t=N;return function(){var n=N;N=t;try{return e.apply(this,arguments)}finally{N=n}}}},142:(e,t,n)=>{"use strict";e.exports=n(203)},408:(e,t,n)=>{"use strict";var r=n(418),a=60103,o=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,s=60110,l=60112;t.Suspense=60113;var u=60115,c=60116;if("function"==typeof Symbol&&Symbol.for){var d=Symbol.for;a=d("react.element"),o=d("react.portal"),t.Fragment=d("react.fragment"),t.StrictMode=d("react.strict_mode"),t.Profiler=d("react.profiler"),i=d("react.provider"),s=d("react.context"),l=d("react.forward_ref"),t.Suspense=d("react.suspense"),u=d("react.memo"),c=d("react.lazy")}var p="function"==typeof Symbol&&Symbol.iterator;function f(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g={};function v(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||h}function m(){}function b(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(f(85));this.updater.enqueueSetState(this,e,t,"setState")},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},m.prototype=v.prototype;var y=b.prototype=new m;y.constructor=b,r(y,v.prototype),y.isPureReactComponent=!0;var S={current:null},w=Object.prototype.hasOwnProperty,k={key:!0,ref:!0,__self:!0,__source:!0};function C(e,t,n){var r,o={},i=null,s=null;if(null!=t)for(r in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(i=""+t.key),t)w.call(t,r)&&!k.hasOwnProperty(r)&&(o[r]=t[r]);var l=arguments.length-2;if(1===l)o.children=n;else if(1<l){for(var u=Array(l),c=0;c<l;c++)u[c]=arguments[c+2];o.children=u}if(e&&e.defaultProps)for(r in l=e.defaultProps)void 0===o[r]&&(o[r]=l[r]);return{$$typeof:a,type:e,key:i,ref:s,props:o,_owner:S.current}}function E(e){return"object"==typeof e&&null!==e&&e.$$typeof===a}var x=/\/+/g;function _(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function T(e,t,n,r,i){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var l=!1;if(null===e)l=!0;else switch(s){case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case a:case o:l=!0}}if(l)return i=i(l=e),e=""===r?"."+_(l,0):r,Array.isArray(i)?(n="",null!=e&&(n=e.replace(x,"$&/")+"/"),T(i,t,n,"",(function(e){return e}))):null!=i&&(E(i)&&(i=function(e,t){return{$$typeof:a,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,n+(!i.key||l&&l.key===i.key?"":(""+i.key).replace(x,"$&/")+"/")+e)),t.push(i)),1;if(l=0,r=""===r?".":r+":",Array.isArray(e))for(var u=0;u<e.length;u++){var c=r+_(s=e[u],u);l+=T(s,t,n,c,i)}else if("function"==typeof(c=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=p&&e[p]||e["@@iterator"])?e:null}(e)))for(e=c.call(e),u=0;!(s=e.next()).done;)l+=T(s=s.value,t,n,c=r+_(s,u++),i);else if("object"===s)throw t=""+e,Error(f(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return l}function A(e,t,n){if(null==e)return e;var r=[],a=0;return T(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function I(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var N={current:null};function R(){var e=N.current;if(null===e)throw Error(f(321));return e}var L={ReactCurrentDispatcher:N,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:S,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:A,forEach:function(e,t,n){A(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return A(e,(function(){t++})),t},toArray:function(e){return A(e,(function(e){return e}))||[]},only:function(e){if(!E(e))throw Error(f(143));return e}},t.Component=v,t.PureComponent=b,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=L,t.cloneElement=function(e,t,n){if(null==e)throw Error(f(267,e));var o=r({},e.props),i=e.key,s=e.ref,l=e._owner;if(null!=t){if(void 0!==t.ref&&(s=t.ref,l=S.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var u=e.type.defaultProps;for(c in t)w.call(t,c)&&!k.hasOwnProperty(c)&&(o[c]=void 0===t[c]&&void 0!==u?u[c]:t[c])}var c=arguments.length-2;if(1===c)o.children=n;else if(1<c){u=Array(c);for(var d=0;d<c;d++)u[d]=arguments[d+2];o.children=u}return{$$typeof:a,type:e.type,key:i,ref:s,props:o,_owner:l}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:s,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},t.createElement=C,t.createFactory=function(e){var t=C.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:l,render:e}},t.isValidElement=E,t.lazy=function(e){return{$$typeof:c,_payload:{_status:-1,_result:e},_init:I}},t.memo=function(e,t){return{$$typeof:u,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return R().useCallback(e,t)},t.useContext=function(e,t){return R().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return R().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return R().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return R().useLayoutEffect(e,t)},t.useMemo=function(e,t){return R().useMemo(e,t)},t.useReducer=function(e,t,n){return R().useReducer(e,t,n)},t.useRef=function(e){return R().useRef(e)},t.useState=function(e){return R().useState(e)},t.version="17.0.2"},294:(e,t,n)=>{"use strict";e.exports=n(408)},379:e=>{"use strict";var t=[];function n(e){for(var n=-1,r=0;r<t.length;r++)if(t[r].identifier===e){n=r;break}return n}function r(e,r){for(var o={},i=[],s=0;s<e.length;s++){var l=e[s],u=r.base?l[0]+r.base:l[0],c=o[u]||0,d="".concat(u," ").concat(c);o[u]=c+1;var p=n(d),f={css:l[1],media:l[2],sourceMap:l[3]};-1!==p?(t[p].references++,t[p].updater(f)):t.push({identifier:d,updater:a(f,r),references:1}),i.push(d)}return i}function a(e,t){var n=t.domAPI(t);return n.update(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;n.update(e=t)}else n.remove()}}e.exports=function(e,a){var o=r(e=e||[],a=a||{});return function(e){e=e||[];for(var i=0;i<o.length;i++){var s=n(o[i]);t[s].references--}for(var l=r(e,a),u=0;u<o.length;u++){var c=n(o[u]);0===t[c].references&&(t[c].updater(),t.splice(c,1))}o=l}}},569:e=>{"use strict";var t={};e.exports=function(e,n){var r=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(n)}},216:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t),t}},565:(e,t,n)=>{"use strict";e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},795:e=>{"use strict";e.exports=function(e){var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var r=n.css,a=n.media,o=n.sourceMap;a?e.setAttribute("media",a):e.removeAttribute("media"),o&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),t.styleTagTransform(r,e)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},589:e=>{"use strict";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},307:(e,t,n)=>{"use strict";n.r(t);var r=n(294),a=n(935),o=n(869),i=n(379),s=n.n(i),l=n(795),u=n.n(l),c=n(569),d=n.n(c),p=n(565),f=n.n(p),h=n(216),g=n.n(h),v=n(589),m=n.n(v),b=n(648),y={};y.styleTagTransform=m(),y.setAttributes=f(),y.insert=d().bind(null,"head"),y.domAPI=u(),y.insertStyleElement=g(),s()(b.Z,y),b.Z&&b.Z.locals&&b.Z.locals;class S extends r.Component{render(){return r.createElement("button",{className:"button",onClick:this.props.handleConnectClick},1===this.props.kvmstate?"Connecting KVM":2===this.props.kvmstate?"Disconnect KVM":"Connect KVM")}}var w=n(625),k={};k.styleTagTransform=m(),k.setAttributes=f(),k.insert=d().bind(null,"head"),k.domAPI=u(),k.insertStyleElement=g(),s()(w.Z,k),w.Z&&w.Z.locals&&w.Z.locals;class C extends r.Component{constructor(e){super(e),this.state={value:1},this.onEncodingChange=this.onEncodingChange.bind(this)}onEncodingChange(e){this.setState({value:e.target.value}),this.props.changeEncoding(e.target.value)}render(){return r.createElement("span",{className:"encoding"},r.createElement("label",null,"Encoding:"),r.createElement("select",{value:this.state.value,className:2===this.props.getConnectState()?"reldisabled":"",onChange:this.onEncodingChange,disabled:2===this.props.getConnectState()},r.createElement("option",{value:"1"},"RLE 8"),r.createElement("option",{value:"2"},"RLE 16")))}}class E extends r.Component{constructor(e){super(e),this.desktopsettings={encoding:1},this.changeEncoding=this.changeEncoding.bind(this)}changeEncoding(e){this.desktopsettings.encoding=e,this.props.changeDesktopSettings(this.desktopsettings)}render(){return r.createElement(C,{changeEncoding:this.changeEncoding,getConnectState:this.props.getConnectState})}}var x=n(734),_={};_.styleTagTransform=m(),_.setAttributes=f(),_.insert=d().bind(null,"head"),_.domAPI=u(),_.insertStyleElement=g(),s()(x.Z,_),x.Z&&x.Z.locals&&x.Z.locals;class T extends r.Component{render(){return r.createElement(r.Fragment,null,r.createElement("div",{className:"header"},r.createElement(S,{handleConnectClick:this.props.handleConnectClick,kvmstate:this.props.kvmstate}),r.createElement(E,{changeDesktopSettings:this.props.changeDesktopSettings,getConnectState:this.props.getConnectState})))}}const A=e=>null!=e&&""!==e&&!1!==e&&0!==e;var I=n(250),N={};N.styleTagTransform=m(),N.setAttributes=f(),N.insert=d().bind(null,"head"),N.domAPI=u(),N.insertStyleElement=g(),s()(I.Z,N),I.Z&&I.Z.locals&&I.Z.locals;class R extends r.Component{shouldComponentUpdate(){return!1}render(){const e={width:"1366",height:"768",onContextMenu:e=>(e.preventDefault(),!1),onMouseDown:this.props.mouseDown,onMouseUp:this.props.mouseUp,onMouseMove:this.props.mouseMove};return r.createElement("canvas",Object.assign({},e,{className:"canvas",ref:e=>A(e)?this.props.contextRef(e.getContext("2d")):null}))}}var L=n(917),D={};D.styleTagTransform=m(),D.setAttributes=f(),D.insert=d().bind(null,"head"),D.domAPI=u(),D.insertStyleElement=g(),s()(L.Z,D),L.Z&&L.Z.locals&&L.Z.locals;class P extends r.Component{constructor(e){super(e),this.desktopSettingsChange=!1,this.state={kvmstate:0,encodingOption:1},this.logger=new o.ConsoleLogger(o.LogLevel.ERROR),this.saveContext=this.saveContext.bind(this),this.startKVM=this.startKVM.bind(this),this.stopKVM=this.stopKVM.bind(this),this.handleConnectClick=this.handleConnectClick.bind(this),this.getRenderStatus=this.getRenderStatus.bind(this),this.OnConnectionStateChange=this.OnConnectionStateChange.bind(this),this.changeDesktopSettings=this.changeDesktopSettings.bind(this)}saveContext(e){this.logger.debug("save context called"),this.ctx=e,this.init()}init(){const e=null!=this.props.deviceId?this.props.deviceId:"",t=null!=this.props.mpsServer?this.props.mpsServer.replace("http","ws"):"";this.module=new o.AMTDesktop(this.logger,this.ctx),this.redirector=new o.AMTKvmDataRedirector(this.logger,o.Protocol.KVM,new FileReader,e,16994,"","",0,0,this.props.authToken,t),this.dataProcessor=new o.DataProcessor(this.logger,this.redirector,this.module),this.mouseHelper=new o.MouseHelper(this.module,this.redirector,this.props.mouseDebounceTime<200?200:this.props.mouseDebounceTime),this.keyboard=new o.KeyBoardHelper(this.module,this.redirector),this.redirector.onProcessData=this.module.processData.bind(this.module),this.redirector.onStart=this.module.start.bind(this.module),this.redirector.onNewState=this.module.onStateChange.bind(this.module),this.redirector.onSendKvmData=this.module.onSendKvmData.bind(this.module),this.redirector.onStateChanged=this.OnConnectionStateChange.bind(this),this.redirector.onError=this.onRedirectorError.bind(this),this.module.onSend=this.redirector.send.bind(this.redirector),this.module.onProcessData=this.dataProcessor.processData.bind(this.dataProcessor),this.module.bpp=this.state.encodingOption}cleanUp(){this.module=null,this.redirector=null,this.dataProcessor=null,this.mouseHelper=null,this.keyboard=null,this.ctx.clearRect(0,0,this.ctx.canvas.height,this.ctx.canvas.width)}componentWillUnmount(){this.stopKVM()}onRedirectorError(){this.reset()}reset(){this.cleanUp(),this.init()}OnConnectionStateChange(e,t){this.setState({kvmstate:t}),this.desktopSettingsChange&&0===t&&(this.desktopSettingsChange=!1,setTimeout((()=>this.startKVM()),2e3))}changeDesktopSettings(e){2===this.state.kvmstate?(this.desktopSettingsChange=!0,this.module.bpp=e.encoding,this.stopKVM()):(this.setState({encodingOption:parseInt(e.encoding)}),this.module.bpp=parseInt(e.encoding))}startKVM(){void 0!==this.redirector&&this.redirector.start(WebSocket),void 0!==this.keyboard&&this.keyboard.GrabKeyInput()}stopKVM(){void 0!==this.redirector&&this.redirector.stop(),void 0!==this.keyboard&&this.keyboard.UnGrabKeyInput(),this.reset()}getRenderStatus(){return this.module.state}handleConnectClick(e){e.persist(),0===this.state.kvmstate?this.startKVM():1===this.state.kvmstate||2===this.state.kvmstate&&this.stopKVM()}componentDidUpdate(e){e.deviceId!==this.props.deviceId&&this.stopKVM()}render(){return r.createElement("div",{className:"canvas-container"},A(this.props.autoConnect)?"":r.createElement(T,{key:"kvm_header",handleConnectClick:this.handleConnectClick,getConnectState:()=>this.state.kvmstate,kvmstate:this.state.kvmstate,changeDesktopSettings:this.changeDesktopSettings,deviceId:this.props.deviceId,server:this.props.mpsServer}),r.createElement(R,{key:"kvm_comp",contextRef:e=>this.saveContext(e),canvasHeight:this.props.canvasHeight,canvasWidth:this.props.canvasWidth,mouseMove:e=>{void 0!==this.mouseHelper&&this.mouseHelper.mousemove(e)},mouseDown:e=>{void 0!==this.mouseHelper&&this.mouseHelper.mousedown(e)},mouseUp:e=>{void 0!==this.mouseHelper&&this.mouseHelper.mouseup(e)}}))}}function O(e){return(O="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function M(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function B(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){M(e,t,n[t])}))}return e}function F(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function U(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function j(e,t,n){return t&&U(e.prototype,t),n&&U(e,n),e}function z(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function H(e,t){if(t&&("object"===O(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return z(e)}function V(e){return(V=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function K(e,t){return(K=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Z(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&K(e,t)}var $={type:"logger",log:function(e){this.output("log",e)},warn:function(e){this.output("warn",e)},error:function(e){this.output("error",e)},output:function(e,t){console&&console[e]&&console[e].apply(console,t)}},q=new(function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};F(this,e),this.init(t,n)}return j(e,[{key:"init",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=t.prefix||"i18next:",this.logger=e||$,this.options=t,this.debug=t.debug}},{key:"setDebug",value:function(e){this.debug=e}},{key:"log",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"log","",!0)}},{key:"warn",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"warn","",!0)}},{key:"error",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"error","")}},{key:"deprecate",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"warn","WARNING DEPRECATED: ",!0)}},{key:"forward",value:function(e,t,n,r){return r&&!this.debug?null:("string"==typeof e[0]&&(e[0]="".concat(n).concat(this.prefix," ").concat(e[0])),this.logger[t](e))}},{key:"create",value:function(t){return new e(this.logger,B({},{prefix:"".concat(this.prefix,":").concat(t,":")},this.options))}}]),e}()),W=function(){function e(){F(this,e),this.observers={}}return j(e,[{key:"on",value:function(e,t){var n=this;return e.split(" ").forEach((function(e){n.observers[e]=n.observers[e]||[],n.observers[e].push(t)})),this}},{key:"off",value:function(e,t){this.observers[e]&&(t?this.observers[e]=this.observers[e].filter((function(e){return e!==t})):delete this.observers[e])}},{key:"emit",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];if(this.observers[e]){var a=[].concat(this.observers[e]);a.forEach((function(e){e.apply(void 0,n)}))}if(this.observers["*"]){var o=[].concat(this.observers["*"]);o.forEach((function(t){t.apply(t,[e].concat(n))}))}}}]),e}();function X(){var e,t,n=new Promise((function(n,r){e=n,t=r}));return n.resolve=e,n.reject=t,n}function Y(e){return null==e?"":""+e}function Q(e,t,n){e.forEach((function(e){t[e]&&(n[e]=t[e])}))}function G(e,t,n){function r(e){return e&&e.indexOf("###")>-1?e.replace(/###/g,"."):e}function a(){return!e||"string"==typeof e}for(var o="string"!=typeof t?[].concat(t):t.split(".");o.length>1;){if(a())return{};var i=r(o.shift());!e[i]&&n&&(e[i]=new n),e=Object.prototype.hasOwnProperty.call(e,i)?e[i]:{}}return a()?{}:{obj:e,k:r(o.shift())}}function J(e,t,n){var r=G(e,t,Object);r.obj[r.k]=n}function ee(e,t){var n=G(e,t),r=n.obj,a=n.k;if(r)return r[a]}function te(e,t,n){var r=ee(e,n);return void 0!==r?r:ee(t,n)}function ne(e,t,n){for(var r in t)"__proto__"!==r&&"constructor"!==r&&(r in e?"string"==typeof e[r]||e[r]instanceof String||"string"==typeof t[r]||t[r]instanceof String?n&&(e[r]=t[r]):ne(e[r],t[r],n):e[r]=t[r]);return e}function re(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var ae={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};function oe(e){return"string"==typeof e?e.replace(/[&<>"'\/]/g,(function(e){return ae[e]})):e}var ie="undefined"!=typeof window&&window.navigator&&window.navigator.userAgent&&window.navigator.userAgent.indexOf("MSIE")>-1;function se(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:".";if(e){if(e[t])return e[t];for(var r=t.split(n),a=e,o=0;o<r.length;++o){if(!a)return;if("string"==typeof a[r[o]]&&o+1<r.length)return;if(void 0===a[r[o]]){for(var i=2,s=r.slice(o,o+i).join(n),l=a[s];void 0===l&&r.length>o+i;)i++,l=a[s=r.slice(o,o+i).join(n)];if(void 0===l)return;if("string"==typeof l)return l;if(s&&"string"==typeof l[s])return l[s];var u=r.slice(o+i).join(n);return u?se(l,u,n):void 0}a=a[r[o]]}return a}}var le=function(e){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};return F(this,t),n=H(this,V(t).call(this)),ie&&W.call(z(n)),n.data=e||{},n.options=r,void 0===n.options.keySeparator&&(n.options.keySeparator="."),void 0===n.options.ignoreJSONStructure&&(n.options.ignoreJSONStructure=!0),n}return Z(t,e),j(t,[{key:"addNamespaces",value:function(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}},{key:"removeNamespaces",value:function(e){var t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}},{key:"getResource",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=void 0!==r.keySeparator?r.keySeparator:this.options.keySeparator,o=void 0!==r.ignoreJSONStructure?r.ignoreJSONStructure:this.options.ignoreJSONStructure,i=[e,t];n&&"string"!=typeof n&&(i=i.concat(n)),n&&"string"==typeof n&&(i=i.concat(a?n.split(a):n)),e.indexOf(".")>-1&&(i=e.split("."));var s=ee(this.data,i);return s||!o||"string"!=typeof n?s:se(this.data&&this.data[e]&&this.data[e][t],n,a)}},{key:"addResource",value:function(e,t,n,r){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},o=this.options.keySeparator;void 0===o&&(o=".");var i=[e,t];n&&(i=i.concat(o?n.split(o):n)),e.indexOf(".")>-1&&(r=t,t=(i=e.split("."))[1]),this.addNamespaces(t),J(this.data,i,r),a.silent||this.emit("added",e,t,n,r)}},{key:"addResources",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(var a in n)"string"!=typeof n[a]&&"[object Array]"!==Object.prototype.toString.apply(n[a])||this.addResource(e,t,a,n[a],{silent:!0});r.silent||this.emit("added",e,t,n)}},{key:"addResourceBundle",value:function(e,t,n,r,a){var o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1},i=[e,t];e.indexOf(".")>-1&&(r=n,n=t,t=(i=e.split("."))[1]),this.addNamespaces(t);var s=ee(this.data,i)||{};r?ne(s,n,a):s=B({},s,n),J(this.data,i,s),o.silent||this.emit("added",e,t,n)}},{key:"removeResourceBundle",value:function(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}},{key:"hasResourceBundle",value:function(e,t){return void 0!==this.getResource(e,t)}},{key:"getResourceBundle",value:function(e,t){return t||(t=this.options.defaultNS),"v1"===this.options.compatibilityAPI?B({},{},this.getResource(e,t)):this.getResource(e,t)}},{key:"getDataByLanguage",value:function(e){return this.data[e]}},{key:"toJSON",value:function(){return this.data}}]),t}(W),ue={processors:{},addPostProcessor:function(e){this.processors[e.name]=e},handle:function(e,t,n,r,a){var o=this;return e.forEach((function(e){o.processors[e]&&(t=o.processors[e].process(t,n,r,a))})),t}},ce={},de=function(e){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return F(this,t),n=H(this,V(t).call(this)),ie&&W.call(z(n)),Q(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,z(n)),n.options=r,void 0===n.options.keySeparator&&(n.options.keySeparator="."),n.logger=q.create("translator"),n}return Z(t,e),j(t,[{key:"changeLanguage",value:function(e){e&&(this.language=e)}},{key:"exists",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}};if(null==e)return!1;var n=this.resolve(e,t);return n&&void 0!==n.res}},{key:"extractFromKey",value:function(e,t){var n=void 0!==t.nsSeparator?t.nsSeparator:this.options.nsSeparator;void 0===n&&(n=":");var r=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,a=t.ns||this.options.defaultNS;if(n&&e.indexOf(n)>-1){var o=e.match(this.interpolator.nestingRegexp);if(o&&o.length>0)return{key:e,namespaces:a};var i=e.split(n);(n!==r||n===r&&this.options.ns.indexOf(i[0])>-1)&&(a=i.shift()),e=i.join(r)}return"string"==typeof a&&(a=[a]),{key:e,namespaces:a}}},{key:"translate",value:function(e,n,r){var a=this;if("object"!==O(n)&&this.options.overloadTranslationOptionHandler&&(n=this.options.overloadTranslationOptionHandler(arguments)),n||(n={}),null==e)return"";Array.isArray(e)||(e=[String(e)]);var o=void 0!==n.keySeparator?n.keySeparator:this.options.keySeparator,i=this.extractFromKey(e[e.length-1],n),s=i.key,l=i.namespaces,u=l[l.length-1],c=n.lng||this.language,d=n.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(c&&"cimode"===c.toLowerCase()){if(d){var p=n.nsSeparator||this.options.nsSeparator;return u+p+s}return s}var f=this.resolve(e,n),h=f&&f.res,g=f&&f.usedKey||s,v=f&&f.exactUsedKey||s,m=Object.prototype.toString.apply(h),b=["[object Number]","[object Function]","[object RegExp]"],y=void 0!==n.joinArrays?n.joinArrays:this.options.joinArrays,S=!this.i18nFormat||this.i18nFormat.handleAsObject,w="string"!=typeof h&&"boolean"!=typeof h&&"number"!=typeof h;if(S&&h&&w&&b.indexOf(m)<0&&("string"!=typeof y||"[object Array]"!==m)){if(!n.returnObjects&&!this.options.returnObjects)return this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!"),this.options.returnedObjectHandler?this.options.returnedObjectHandler(g,h,B({},n,{ns:l})):"key '".concat(s," (").concat(this.language,")' returned an object instead of string.");if(o){var k="[object Array]"===m,C=k?[]:{},E=k?v:g;for(var x in h)if(Object.prototype.hasOwnProperty.call(h,x)){var _="".concat(E).concat(o).concat(x);C[x]=this.translate(_,B({},n,{joinArrays:!1,ns:l})),C[x]===_&&(C[x]=h[x])}h=C}}else if(S&&"string"==typeof y&&"[object Array]"===m)(h=h.join(y))&&(h=this.extendTranslation(h,e,n,r));else{var T=!1,A=!1,I=void 0!==n.count&&"string"!=typeof n.count,N=t.hasDefaultValue(n),R=I?this.pluralResolver.getSuffix(c,n.count):"",L=n["defaultValue".concat(R)]||n.defaultValue;!this.isValidLookup(h)&&N&&(T=!0,h=L),this.isValidLookup(h)||(A=!0,h=s);var D=n.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey,P=D&&A?void 0:h,M=N&&L!==h&&this.options.updateMissing;if(A||T||M){if(this.logger.log(M?"updateKey":"missingKey",c,u,s,M?L:h),o){var F=this.resolve(s,B({},n,{keySeparator:!1}));F&&F.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}var U=[],j=this.languageUtils.getFallbackCodes(this.options.fallbackLng,n.lng||this.language);if("fallback"===this.options.saveMissingTo&&j&&j[0])for(var z=0;z<j.length;z++)U.push(j[z]);else"all"===this.options.saveMissingTo?U=this.languageUtils.toResolveHierarchy(n.lng||this.language):U.push(n.lng||this.language);var H=function(e,t,r){a.options.missingKeyHandler?a.options.missingKeyHandler(e,u,t,M?r:P,M,n):a.backendConnector&&a.backendConnector.saveMissing&&a.backendConnector.saveMissing(e,u,t,M?r:P,M,n),a.emit("missingKey",e,u,t,h)};this.options.saveMissing&&(this.options.saveMissingPlurals&&I?U.forEach((function(e){a.pluralResolver.getSuffixes(e).forEach((function(t){H([e],s+t,n["defaultValue".concat(t)]||L)}))})):H(U,s,L))}h=this.extendTranslation(h,e,n,f,r),A&&h===s&&this.options.appendNamespaceToMissingKey&&(h="".concat(u,":").concat(s)),(A||T)&&this.options.parseMissingKeyHandler&&(h=this.options.parseMissingKeyHandler(h))}return h}},{key:"extendTranslation",value:function(e,t,n,r,a){var o=this;if(this.i18nFormat&&this.i18nFormat.parse)e=this.i18nFormat.parse(e,n,r.usedLng,r.usedNS,r.usedKey,{resolved:r});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init(B({},n,{interpolation:B({},this.options.interpolation,n.interpolation)}));var i,s=n.interpolation&&n.interpolation.skipOnVariables||this.options.interpolation.skipOnVariables;if(s){var l=e.match(this.interpolator.nestingRegexp);i=l&&l.length}var u=n.replace&&"string"!=typeof n.replace?n.replace:n;if(this.options.interpolation.defaultVariables&&(u=B({},this.options.interpolation.defaultVariables,u)),e=this.interpolator.interpolate(e,u,n.lng||this.language,n),s){var c=e.match(this.interpolator.nestingRegexp);i<(c&&c.length)&&(n.nest=!1)}!1!==n.nest&&(e=this.interpolator.nest(e,(function(){for(var e=arguments.length,r=new Array(e),i=0;i<e;i++)r[i]=arguments[i];return a&&a[0]===r[0]&&!n.context?(o.logger.warn("It seems you are nesting recursively key: ".concat(r[0]," in key: ").concat(t[0])),null):o.translate.apply(o,r.concat([t]))}),n)),n.interpolation&&this.interpolator.reset()}var d=n.postProcess||this.options.postProcess,p="string"==typeof d?[d]:d;return null!=e&&p&&p.length&&!1!==n.applyPostProcessor&&(e=ue.handle(p,e,t,this.options&&this.options.postProcessPassResolved?B({i18nResolved:r},n):n,this)),e}},{key:"resolve",value:function(e){var t,n,r,a,o,i=this,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return"string"==typeof e&&(e=[e]),e.forEach((function(e){if(!i.isValidLookup(t)){var l=i.extractFromKey(e,s),u=l.key;n=u;var c=l.namespaces;i.options.fallbackNS&&(c=c.concat(i.options.fallbackNS));var d=void 0!==s.count&&"string"!=typeof s.count,p=void 0!==s.context&&("string"==typeof s.context||"number"==typeof s.context)&&""!==s.context,f=s.lngs?s.lngs:i.languageUtils.toResolveHierarchy(s.lng||i.language,s.fallbackLng);c.forEach((function(e){i.isValidLookup(t)||(o=e,!ce["".concat(f[0],"-").concat(e)]&&i.utils&&i.utils.hasLoadedNamespace&&!i.utils.hasLoadedNamespace(o)&&(ce["".concat(f[0],"-").concat(e)]=!0,i.logger.warn('key "'.concat(n,'" for languages "').concat(f.join(", "),'" won\'t get resolved as namespace "').concat(o,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),f.forEach((function(n){if(!i.isValidLookup(t)){a=n;var o,l,c=u,f=[c];for(i.i18nFormat&&i.i18nFormat.addLookupKeys?i.i18nFormat.addLookupKeys(f,u,n,e,s):(d&&(o=i.pluralResolver.getSuffix(n,s.count)),d&&p&&f.push(c+o),p&&f.push(c+="".concat(i.options.contextSeparator).concat(s.context)),d&&f.push(c+=o));l=f.pop();)i.isValidLookup(t)||(r=l,t=i.getResource(n,e,l,s))}})))}))}})),{res:t,usedKey:n,exactUsedKey:r,usedLng:a,usedNS:o}}},{key:"isValidLookup",value:function(e){return!(void 0===e||!this.options.returnNull&&null===e||!this.options.returnEmptyString&&""===e)}},{key:"getResource",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,t,n,r):this.resourceStore.getResource(e,t,n,r)}}],[{key:"hasDefaultValue",value:function(e){var t="defaultValue";for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t===n.substring(0,t.length)&&void 0!==e[n])return!0;return!1}}]),t}(W);function pe(e){return e.charAt(0).toUpperCase()+e.slice(1)}var fe=function(){function e(t){F(this,e),this.options=t,this.whitelist=this.options.supportedLngs||!1,this.supportedLngs=this.options.supportedLngs||!1,this.logger=q.create("languageUtils")}return j(e,[{key:"getScriptPartFromCode",value:function(e){if(!e||e.indexOf("-")<0)return null;var t=e.split("-");return 2===t.length?null:(t.pop(),"x"===t[t.length-1].toLowerCase()?null:this.formatLanguageCode(t.join("-")))}},{key:"getLanguagePartFromCode",value:function(e){if(!e||e.indexOf("-")<0)return e;var t=e.split("-");return this.formatLanguageCode(t[0])}},{key:"formatLanguageCode",value:function(e){if("string"==typeof e&&e.indexOf("-")>-1){var t=["hans","hant","latn","cyrl","cans","mong","arab"],n=e.split("-");return this.options.lowerCaseLng?n=n.map((function(e){return e.toLowerCase()})):2===n.length?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=pe(n[1].toLowerCase()))):3===n.length&&(n[0]=n[0].toLowerCase(),2===n[1].length&&(n[1]=n[1].toUpperCase()),"sgn"!==n[0]&&2===n[2].length&&(n[2]=n[2].toUpperCase()),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=pe(n[1].toLowerCase())),t.indexOf(n[2].toLowerCase())>-1&&(n[2]=pe(n[2].toLowerCase()))),n.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}},{key:"isWhitelisted",value:function(e){return this.logger.deprecate("languageUtils.isWhitelisted",'function "isWhitelisted" will be renamed to "isSupportedCode" in the next major - please make sure to rename it\'s usage asap.'),this.isSupportedCode(e)}},{key:"isSupportedCode",value:function(e){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}},{key:"getBestMatchFromCodes",value:function(e){var t,n=this;return e?(e.forEach((function(e){if(!t){var r=n.formatLanguageCode(e);n.options.supportedLngs&&!n.isSupportedCode(r)||(t=r)}})),!t&&this.options.supportedLngs&&e.forEach((function(e){if(!t){var r=n.getLanguagePartFromCode(e);if(n.isSupportedCode(r))return t=r;t=n.options.supportedLngs.find((function(e){if(0===e.indexOf(r))return e}))}})),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t):null}},{key:"getFallbackCodes",value:function(e,t){if(!e)return[];if("function"==typeof e&&(e=e(t)),"string"==typeof e&&(e=[e]),"[object Array]"===Object.prototype.toString.apply(e))return e;if(!t)return e.default||[];var n=e[t];return n||(n=e[this.getScriptPartFromCode(t)]),n||(n=e[this.formatLanguageCode(t)]),n||(n=e[this.getLanguagePartFromCode(t)]),n||(n=e.default),n||[]}},{key:"toResolveHierarchy",value:function(e,t){var n=this,r=this.getFallbackCodes(t||this.options.fallbackLng||[],e),a=[],o=function(e){e&&(n.isSupportedCode(e)?a.push(e):n.logger.warn("rejecting language code not found in supportedLngs: ".concat(e)))};return"string"==typeof e&&e.indexOf("-")>-1?("languageOnly"!==this.options.load&&o(this.formatLanguageCode(e)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&o(this.getScriptPartFromCode(e)),"currentOnly"!==this.options.load&&o(this.getLanguagePartFromCode(e))):"string"==typeof e&&o(this.formatLanguageCode(e)),r.forEach((function(e){a.indexOf(e)<0&&o(n.formatLanguageCode(e))})),a}}]),e}(),he=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],ge={1:function(e){return Number(e>1)},2:function(e){return Number(1!=e)},3:function(e){return 0},4:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},5:function(e){return Number(0==e?0:1==e?1:2==e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5)},6:function(e){return Number(1==e?0:e>=2&&e<=4?1:2)},7:function(e){return Number(1==e?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},8:function(e){return Number(1==e?0:2==e?1:8!=e&&11!=e?2:3)},9:function(e){return Number(e>=2)},10:function(e){return Number(1==e?0:2==e?1:e<7?2:e<11?3:4)},11:function(e){return Number(1==e||11==e?0:2==e||12==e?1:e>2&&e<20?2:3)},12:function(e){return Number(e%10!=1||e%100==11)},13:function(e){return Number(0!==e)},14:function(e){return Number(1==e?0:2==e?1:3==e?2:3)},15:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2)},16:function(e){return Number(e%10==1&&e%100!=11?0:0!==e?1:2)},17:function(e){return Number(1==e||e%10==1&&e%100!=11?0:1)},18:function(e){return Number(0==e?0:1==e?1:2)},19:function(e){return Number(1==e?0:0==e||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3)},20:function(e){return Number(1==e?0:0==e||e%100>0&&e%100<20?1:2)},21:function(e){return Number(e%100==1?1:e%100==2?2:e%100==3||e%100==4?3:0)},22:function(e){return Number(1==e?0:2==e?1:(e<0||e>10)&&e%10==0?2:3)}};function ve(){var e={};return he.forEach((function(t){t.lngs.forEach((function(n){e[n]={numbers:t.nr,plurals:ge[t.fc]}}))})),e}var me=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};F(this,e),this.languageUtils=t,this.options=n,this.logger=q.create("pluralResolver"),this.rules=ve()}return j(e,[{key:"addRule",value:function(e,t){this.rules[e]=t}},{key:"getRule",value:function(e){return this.rules[e]||this.rules[this.languageUtils.getLanguagePartFromCode(e)]}},{key:"needsPlural",value:function(e){var t=this.getRule(e);return t&&t.numbers.length>1}},{key:"getPluralFormsOfKey",value:function(e,t){return this.getSuffixes(e).map((function(e){return t+e}))}},{key:"getSuffixes",value:function(e){var t=this,n=this.getRule(e);return n?n.numbers.map((function(n){return t.getSuffix(e,n)})):[]}},{key:"getSuffix",value:function(e,t){var n=this,r=this.getRule(e);if(r){var a=r.noAbs?r.plurals(t):r.plurals(Math.abs(t)),o=r.numbers[a];this.options.simplifyPluralSuffix&&2===r.numbers.length&&1===r.numbers[0]&&(2===o?o="plural":1===o&&(o=""));var i=function(){return n.options.prepend&&o.toString()?n.options.prepend+o.toString():o.toString()};return"v1"===this.options.compatibilityJSON?1===o?"":"number"==typeof o?"_plural_".concat(o.toString()):i():"v2"===this.options.compatibilityJSON||this.options.simplifyPluralSuffix&&2===r.numbers.length&&1===r.numbers[0]?i():this.options.prepend&&a.toString()?this.options.prepend+a.toString():a.toString()}return this.logger.warn("no plural rule found for: ".concat(e)),""}}]),e}(),be=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};F(this,e),this.logger=q.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||function(e){return e},this.init(t)}return j(e,[{key:"init",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.interpolation||(e.interpolation={escapeValue:!0});var t=e.interpolation;this.escape=void 0!==t.escape?t.escape:oe,this.escapeValue=void 0===t.escapeValue||t.escapeValue,this.useRawValueToEscape=void 0!==t.useRawValueToEscape&&t.useRawValueToEscape,this.prefix=t.prefix?re(t.prefix):t.prefixEscaped||"{{",this.suffix=t.suffix?re(t.suffix):t.suffixEscaped||"}}",this.formatSeparator=t.formatSeparator?t.formatSeparator:t.formatSeparator||",",this.unescapePrefix=t.unescapeSuffix?"":t.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":t.unescapeSuffix||"",this.nestingPrefix=t.nestingPrefix?re(t.nestingPrefix):t.nestingPrefixEscaped||re("$t("),this.nestingSuffix=t.nestingSuffix?re(t.nestingSuffix):t.nestingSuffixEscaped||re(")"),this.nestingOptionsSeparator=t.nestingOptionsSeparator?t.nestingOptionsSeparator:t.nestingOptionsSeparator||",",this.maxReplaces=t.maxReplaces?t.maxReplaces:1e3,this.alwaysFormat=void 0!==t.alwaysFormat&&t.alwaysFormat,this.resetRegExp()}},{key:"reset",value:function(){this.options&&this.init(this.options)}},{key:"resetRegExp",value:function(){var e="".concat(this.prefix,"(.+?)").concat(this.suffix);this.regexp=new RegExp(e,"g");var t="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=new RegExp(t,"g");var n="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=new RegExp(n,"g")}},{key:"interpolate",value:function(e,t,n,r){var a,o,i,s=this,l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function u(e){return e.replace(/\$/g,"$$$$")}var c=function(e){if(e.indexOf(s.formatSeparator)<0){var a=te(t,l,e);return s.alwaysFormat?s.format(a,void 0,n,B({},r,t,{interpolationkey:e})):a}var o=e.split(s.formatSeparator),i=o.shift().trim(),u=o.join(s.formatSeparator).trim();return s.format(te(t,l,i),u,n,B({},r,t,{interpolationkey:i}))};this.resetRegExp();var d=r&&r.missingInterpolationHandler||this.options.missingInterpolationHandler,p=r&&r.interpolation&&r.interpolation.skipOnVariables||this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:function(e){return u(e)}},{regex:this.regexp,safeValue:function(e){return s.escapeValue?u(s.escape(e)):u(e)}}].forEach((function(t){for(i=0;a=t.regex.exec(e);){if(void 0===(o=c(a[1].trim())))if("function"==typeof d){var n=d(e,a,r);o="string"==typeof n?n:""}else{if(p){o=a[0];continue}s.logger.warn("missed to pass in variable ".concat(a[1]," for interpolating ").concat(e)),o=""}else"string"==typeof o||s.useRawValueToEscape||(o=Y(o));var l=t.safeValue(o);if(e=e.replace(a[0],l),p?(t.regex.lastIndex+=l.length,t.regex.lastIndex-=a[0].length):t.regex.lastIndex=0,++i>=s.maxReplaces)break}})),e}},{key:"nest",value:function(e,t){var n,r,a=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=B({},o);function s(e,t){var n=this.nestingOptionsSeparator;if(e.indexOf(n)<0)return e;var r=e.split(new RegExp("".concat(n,"[ ]*{"))),a="{".concat(r[1]);e=r[0],a=(a=this.interpolate(a,i)).replace(/'/g,'"');try{i=JSON.parse(a),t&&(i=B({},t,i))}catch(t){return this.logger.warn("failed parsing options string in nesting for key ".concat(e),t),"".concat(e).concat(n).concat(a)}return delete i.defaultValue,e}for(i.applyPostProcessor=!1,delete i.defaultValue;n=this.nestingRegexp.exec(e);){var l=[],u=!1;if(-1!==n[0].indexOf(this.formatSeparator)&&!/{.*}/.test(n[1])){var c=n[1].split(this.formatSeparator).map((function(e){return e.trim()}));n[1]=c.shift(),l=c,u=!0}if((r=t(s.call(this,n[1].trim(),i),i))&&n[0]===e&&"string"!=typeof r)return r;"string"!=typeof r&&(r=Y(r)),r||(this.logger.warn("missed to resolve ".concat(n[1]," for nesting ").concat(e)),r=""),u&&(r=l.reduce((function(e,t){return a.format(e,t,o.lng,B({},o,{interpolationkey:n[1].trim()}))}),r.trim())),e=e.replace(n[0],r),this.regexp.lastIndex=0}return e}}]),e}(),ye=function(e){function t(e,n,r){var a,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return F(this,t),a=H(this,V(t).call(this)),ie&&W.call(z(a)),a.backend=e,a.store=n,a.services=r,a.languageUtils=r.languageUtils,a.options=o,a.logger=q.create("backendConnector"),a.state={},a.queue=[],a.backend&&a.backend.init&&a.backend.init(r,o.backend,o),a}return Z(t,e),j(t,[{key:"queueLoad",value:function(e,t,n,r){var a=this,o=[],i=[],s=[],l=[];return e.forEach((function(e){var r=!0;t.forEach((function(t){var s="".concat(e,"|").concat(t);!n.reload&&a.store.hasResourceBundle(e,t)?a.state[s]=2:a.state[s]<0||(1===a.state[s]?i.indexOf(s)<0&&i.push(s):(a.state[s]=1,r=!1,i.indexOf(s)<0&&i.push(s),o.indexOf(s)<0&&o.push(s),l.indexOf(t)<0&&l.push(t)))})),r||s.push(e)})),(o.length||i.length)&&this.queue.push({pending:i,loaded:{},errors:[],callback:r}),{toLoad:o,pending:i,toLoadLanguages:s,toLoadNamespaces:l}}},{key:"loaded",value:function(e,t,n){var r=e.split("|"),a=r[0],o=r[1];t&&this.emit("failedLoading",a,o,t),n&&this.store.addResourceBundle(a,o,n),this.state[e]=t?-1:2;var i={};this.queue.forEach((function(n){!function(e,t,n,r){var a=G(e,t,Object),o=a.obj,i=a.k;o[i]=o[i]||[],o[i].push(n)}(n.loaded,[a],o),function(e,t){for(var n=e.indexOf(t);-1!==n;)e.splice(n,1),n=e.indexOf(t)}(n.pending,e),t&&n.errors.push(t),0!==n.pending.length||n.done||(Object.keys(n.loaded).forEach((function(e){i[e]||(i[e]=[]),n.loaded[e].length&&n.loaded[e].forEach((function(t){i[e].indexOf(t)<0&&i[e].push(t)}))})),n.done=!0,n.errors.length?n.callback(n.errors):n.callback())})),this.emit("loaded",i),this.queue=this.queue.filter((function(e){return!e.done}))}},{key:"read",value:function(e,t,n){var r=this,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:350,i=arguments.length>5?arguments[5]:void 0;return e.length?this.backend[n](e,t,(function(s,l){s&&l&&a<5?setTimeout((function(){r.read.call(r,e,t,n,a+1,2*o,i)}),o):i(s,l)})):i(null,{})}},{key:"prepareLoading",value:function(e,t){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),a&&a();"string"==typeof e&&(e=this.languageUtils.toResolveHierarchy(e)),"string"==typeof t&&(t=[t]);var o=this.queueLoad(e,t,r,a);if(!o.toLoad.length)return o.pending.length||a(),null;o.toLoad.forEach((function(e){n.loadOne(e)}))}},{key:"load",value:function(e,t,n){this.prepareLoading(e,t,{},n)}},{key:"reload",value:function(e,t,n){this.prepareLoading(e,t,{reload:!0},n)}},{key:"loadOne",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=e.split("|"),a=r[0],o=r[1];this.read(a,o,"read",void 0,void 0,(function(r,i){r&&t.logger.warn("".concat(n,"loading namespace ").concat(o," for language ").concat(a," failed"),r),!r&&i&&t.logger.log("".concat(n,"loaded namespace ").concat(o," for language ").concat(a),i),t.loaded(e,r,i)}))}},{key:"saveMissing",value:function(e,t,n,r,a){var o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(t)?this.logger.warn('did not save key "'.concat(n,'" as the namespace "').concat(t,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!"):null!=n&&""!==n&&(this.backend&&this.backend.create&&this.backend.create(e,t,n,r,null,B({},o,{isUpdate:a})),e&&e[0]&&this.store.addResource(e[0],t,n,r))}}]),t}(W);function Se(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,whitelist:!1,nonExplicitWhitelist:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(e){var t={};if("object"===O(e[1])&&(t=e[1]),"string"==typeof e[1]&&(t.defaultValue=e[1]),"string"==typeof e[2]&&(t.tDescription=e[2]),"object"===O(e[2])||"object"===O(e[3])){var n=e[3]||e[2];Object.keys(n).forEach((function(e){t[e]=n[e]}))}return t},interpolation:{escapeValue:!0,format:function(e,t,n,r){return e},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!1}}}function we(e){return"string"==typeof e.ns&&(e.ns=[e.ns]),"string"==typeof e.fallbackLng&&(e.fallbackLng=[e.fallbackLng]),"string"==typeof e.fallbackNS&&(e.fallbackNS=[e.fallbackNS]),e.whitelist&&(e.whitelist&&e.whitelist.indexOf("cimode")<0&&(e.whitelist=e.whitelist.concat(["cimode"])),e.supportedLngs=e.whitelist),e.nonExplicitWhitelist&&(e.nonExplicitSupportedLngs=e.nonExplicitWhitelist),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e}function ke(){}const Ce=new(function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;if(F(this,t),e=H(this,V(t).call(this)),ie&&W.call(z(e)),e.options=we(n),e.services={},e.logger=q,e.modules={external:[]},r&&!e.isInitialized&&!n.isClone){if(!e.options.initImmediate)return e.init(n,r),H(e,z(e));setTimeout((function(){e.init(n,r)}),0)}return e}return Z(t,e),j(t,[{key:"init",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;function r(e){return e?"function"==typeof e?new e:e:null}if("function"==typeof t&&(n=t,t={}),t.whitelist&&!t.supportedLngs&&this.logger.deprecate("whitelist",'option "whitelist" will be renamed to "supportedLngs" in the next major - please make sure to rename this option asap.'),t.nonExplicitWhitelist&&!t.nonExplicitSupportedLngs&&this.logger.deprecate("whitelist",'options "nonExplicitWhitelist" will be renamed to "nonExplicitSupportedLngs" in the next major - please make sure to rename this option asap.'),this.options=B({},Se(),this.options,we(t)),this.format=this.options.interpolation.format,n||(n=ke),!this.options.isClone){this.modules.logger?q.init(r(this.modules.logger),this.options):q.init(null,this.options);var a=new fe(this.options);this.store=new le(this.options.resources,this.options);var o=this.services;o.logger=q,o.resourceStore=this.store,o.languageUtils=a,o.pluralResolver=new me(a,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),o.interpolator=new be(this.options),o.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},o.backendConnector=new ye(r(this.modules.backend),o.resourceStore,o,this.options),o.backendConnector.on("*",(function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),a=1;a<n;a++)r[a-1]=arguments[a];e.emit.apply(e,[t].concat(r))})),this.modules.languageDetector&&(o.languageDetector=r(this.modules.languageDetector),o.languageDetector.init(o,this.options.detection,this.options)),this.modules.i18nFormat&&(o.i18nFormat=r(this.modules.i18nFormat),o.i18nFormat.init&&o.i18nFormat.init(this)),this.translator=new de(this.services,this.options),this.translator.on("*",(function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),a=1;a<n;a++)r[a-1]=arguments[a];e.emit.apply(e,[t].concat(r))})),this.modules.external.forEach((function(t){t.init&&t.init(e)}))}if(this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){var i=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);i.length>0&&"dev"!==i[0]&&(this.options.lng=i[0])}this.services.languageDetector||this.options.lng||this.logger.warn("init: no languageDetector is used and no lng is defined");var s=["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"];s.forEach((function(t){e[t]=function(){var n;return(n=e.store)[t].apply(n,arguments)}}));var l=["addResource","addResources","addResourceBundle","removeResourceBundle"];l.forEach((function(t){e[t]=function(){var n;return(n=e.store)[t].apply(n,arguments),e}}));var u=X(),c=function(){var t=function(t,r){e.isInitialized&&!e.initializedStoreOnce&&e.logger.warn("init: i18next is already initialized. You should call init just once!"),e.isInitialized=!0,e.options.isClone||e.logger.log("initialized",e.options),e.emit("initialized",e.options),u.resolve(r),n(t,r)};if(e.languages&&"v1"!==e.options.compatibilityAPI&&!e.isInitialized)return t(null,e.t.bind(e));e.changeLanguage(e.options.lng,t)};return this.options.resources||!this.options.initImmediate?c():setTimeout(c,0),u}},{key:"loadResources",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ke,r=n,a="string"==typeof e?e:this.language;if("function"==typeof e&&(r=e),!this.options.resources||this.options.partialBundledLanguages){if(a&&"cimode"===a.toLowerCase())return r();var o=[],i=function(e){e&&t.services.languageUtils.toResolveHierarchy(e).forEach((function(e){o.indexOf(e)<0&&o.push(e)}))};if(a)i(a);else{var s=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);s.forEach((function(e){return i(e)}))}this.options.preload&&this.options.preload.forEach((function(e){return i(e)})),this.services.backendConnector.load(o,this.options.ns,r)}else r(null)}},{key:"reloadResources",value:function(e,t,n){var r=X();return e||(e=this.languages),t||(t=this.options.ns),n||(n=ke),this.services.backendConnector.reload(e,t,(function(e){r.resolve(),n(e)})),r}},{key:"use",value:function(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===e.type&&(this.modules.backend=e),("logger"===e.type||e.log&&e.warn&&e.error)&&(this.modules.logger=e),"languageDetector"===e.type&&(this.modules.languageDetector=e),"i18nFormat"===e.type&&(this.modules.i18nFormat=e),"postProcessor"===e.type&&ue.addPostProcessor(e),"3rdParty"===e.type&&this.modules.external.push(e),this}},{key:"changeLanguage",value:function(e,t){var n=this;this.isLanguageChangingTo=e;var r=X();this.emit("languageChanging",e);var a=function(a){e||a||!n.services.languageDetector||(a=[]);var o="string"==typeof a?a:n.services.languageUtils.getBestMatchFromCodes(a);o&&(n.language||(n.language=o,n.languages=n.services.languageUtils.toResolveHierarchy(o)),n.translator.language||n.translator.changeLanguage(o),n.services.languageDetector&&n.services.languageDetector.cacheUserLanguage(o)),n.loadResources(o,(function(e){!function(e,a){a?(n.language=a,n.languages=n.services.languageUtils.toResolveHierarchy(a),n.translator.changeLanguage(a),n.isLanguageChangingTo=void 0,n.emit("languageChanged",a),n.logger.log("languageChanged",a)):n.isLanguageChangingTo=void 0,r.resolve((function(){return n.t.apply(n,arguments)})),t&&t(e,(function(){return n.t.apply(n,arguments)}))}(e,o)}))};return e||!this.services.languageDetector||this.services.languageDetector.async?!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect(a):a(e):a(this.services.languageDetector.detect()),r}},{key:"getFixedT",value:function(e,t,n){var r=this,a=function e(t,a){var o;if("object"!==O(a)){for(var i=arguments.length,s=new Array(i>2?i-2:0),l=2;l<i;l++)s[l-2]=arguments[l];o=r.options.overloadTranslationOptionHandler([t,a].concat(s))}else o=B({},a);o.lng=o.lng||e.lng,o.lngs=o.lngs||e.lngs,o.ns=o.ns||e.ns;var u=r.options.keySeparator||".",c=n?"".concat(n).concat(u).concat(t):t;return r.t(c,o)};return"string"==typeof e?a.lng=e:a.lngs=e,a.ns=t,a.keyPrefix=n,a}},{key:"t",value:function(){var e;return this.translator&&(e=this.translator).translate.apply(e,arguments)}},{key:"exists",value:function(){var e;return this.translator&&(e=this.translator).exists.apply(e,arguments)}},{key:"setDefaultNamespace",value:function(e){this.options.defaultNS=e}},{key:"hasLoadedNamespace",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;var r=this.languages[0],a=!!this.options&&this.options.fallbackLng,o=this.languages[this.languages.length-1];if("cimode"===r.toLowerCase())return!0;var i=function(e,n){var r=t.services.backendConnector.state["".concat(e,"|").concat(n)];return-1===r||2===r};if(n.precheck){var s=n.precheck(this,i);if(void 0!==s)return s}return!!this.hasResourceBundle(r,e)||!this.services.backendConnector.backend||!(!i(r,e)||a&&!i(o,e))}},{key:"loadNamespaces",value:function(e,t){var n=this,r=X();return this.options.ns?("string"==typeof e&&(e=[e]),e.forEach((function(e){n.options.ns.indexOf(e)<0&&n.options.ns.push(e)})),this.loadResources((function(e){r.resolve(),t&&t(e)})),r):(t&&t(),Promise.resolve())}},{key:"loadLanguages",value:function(e,t){var n=X();"string"==typeof e&&(e=[e]);var r=this.options.preload||[],a=e.filter((function(e){return r.indexOf(e)<0}));return a.length?(this.options.preload=r.concat(a),this.loadResources((function(e){n.resolve(),t&&t(e)})),n):(t&&t(),Promise.resolve())}},{key:"dir",value:function(e){return e||(e=this.languages&&this.languages.length>0?this.languages[0]:this.language),e?["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam"].indexOf(this.services.languageUtils.getLanguagePartFromCode(e))>=0?"rtl":"ltr":"rtl"}},{key:"createInstance",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;return new t(e,n)}},{key:"cloneInstance",value:function(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ke,a=B({},this.options,n,{isClone:!0}),o=new t(a),i=["store","services","language"];return i.forEach((function(t){o[t]=e[t]})),o.services=B({},this.services),o.services.utils={hasLoadedNamespace:o.hasLoadedNamespace.bind(o)},o.translator=new de(o.services,o.options),o.translator.on("*",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];o.emit.apply(o,[e].concat(n))})),o.init(a,r),o.translator.options=o.options,o.translator.backendConnector.services.utils={hasLoadedNamespace:o.hasLoadedNamespace.bind(o)},o}},{key:"toJSON",value:function(){return{options:this.options,store:this.store,language:this.language,languages:this.languages}}}]),t}(W));var Ee=[],xe=Ee.forEach,_e=Ee.slice;function Te(e){return xe.call(_e.call(arguments,1),(function(t){if(t)for(var n in t)void 0===e[n]&&(e[n]=t[n])})),e}var Ae=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,Ie=function(e,t,n){var r=n||{};r.path=r.path||"/";var a=e+"="+encodeURIComponent(t);if(r.maxAge>0){var o=r.maxAge-0;if(isNaN(o))throw new Error("maxAge should be a Number");a+="; Max-Age="+Math.floor(o)}if(r.domain){if(!Ae.test(r.domain))throw new TypeError("option domain is invalid");a+="; Domain="+r.domain}if(r.path){if(!Ae.test(r.path))throw new TypeError("option path is invalid");a+="; Path="+r.path}if(r.expires){if("function"!=typeof r.expires.toUTCString)throw new TypeError("option expires is invalid");a+="; Expires="+r.expires.toUTCString()}if(r.httpOnly&&(a+="; HttpOnly"),r.secure&&(a+="; Secure"),r.sameSite)switch("string"==typeof r.sameSite?r.sameSite.toLowerCase():r.sameSite){case!0:a+="; SameSite=Strict";break;case"lax":a+="; SameSite=Lax";break;case"strict":a+="; SameSite=Strict";break;case"none":a+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}return a},Ne={name:"cookie",lookup:function(e){var t;if(e.lookupCookie&&"undefined"!=typeof document){var n=function(e){for(var t=e+"=",n=document.cookie.split(";"),r=0;r<n.length;r++){for(var a=n[r];" "===a.charAt(0);)a=a.substring(1,a.length);if(0===a.indexOf(t))return a.substring(t.length,a.length)}return null}(e.lookupCookie);n&&(t=n)}return t},cacheUserLanguage:function(e,t){t.lookupCookie&&"undefined"!=typeof document&&function(e,t,n,r){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{path:"/",sameSite:"strict"};n&&(a.expires=new Date,a.expires.setTime(a.expires.getTime()+60*n*1e3)),r&&(a.domain=r),document.cookie=Ie(e,encodeURIComponent(t),a)}(t.lookupCookie,e,t.cookieMinutes,t.cookieDomain,t.cookieOptions)}},Re={name:"querystring",lookup:function(e){var t;if("undefined"!=typeof window)for(var n=window.location.search.substring(1).split("&"),r=0;r<n.length;r++){var a=n[r].indexOf("=");a>0&&n[r].substring(0,a)===e.lookupQuerystring&&(t=n[r].substring(a+1))}return t}},Le=null,De=function(){if(null!==Le)return Le;try{Le="undefined"!==window&&null!==window.localStorage;var e="i18next.translate.boo";window.localStorage.setItem(e,"foo"),window.localStorage.removeItem(e)}catch(e){Le=!1}return Le},Pe={name:"localStorage",lookup:function(e){var t;if(e.lookupLocalStorage&&De()){var n=window.localStorage.getItem(e.lookupLocalStorage);n&&(t=n)}return t},cacheUserLanguage:function(e,t){t.lookupLocalStorage&&De()&&window.localStorage.setItem(t.lookupLocalStorage,e)}},Oe=null,Me=function(){if(null!==Oe)return Oe;try{Oe="undefined"!==window&&null!==window.sessionStorage;var e="i18next.translate.boo";window.sessionStorage.setItem(e,"foo"),window.sessionStorage.removeItem(e)}catch(e){Oe=!1}return Oe},Be={name:"sessionStorage",lookup:function(e){var t;if(e.lookupSessionStorage&&Me()){var n=window.sessionStorage.getItem(e.lookupSessionStorage);n&&(t=n)}return t},cacheUserLanguage:function(e,t){t.lookupSessionStorage&&Me()&&window.sessionStorage.setItem(t.lookupSessionStorage,e)}},Fe={name:"navigator",lookup:function(e){var t=[];if("undefined"!=typeof navigator){if(navigator.languages)for(var n=0;n<navigator.languages.length;n++)t.push(navigator.languages[n]);navigator.userLanguage&&t.push(navigator.userLanguage),navigator.language&&t.push(navigator.language)}return t.length>0?t:void 0}},Ue={name:"htmlTag",lookup:function(e){var t,n=e.htmlTag||("undefined"!=typeof document?document.documentElement:null);return n&&"function"==typeof n.getAttribute&&(t=n.getAttribute("lang")),t}},je={name:"path",lookup:function(e){var t;if("undefined"!=typeof window){var n=window.location.pathname.match(/\/([a-zA-Z-]*)/g);if(n instanceof Array)if("number"==typeof e.lookupFromPathIndex){if("string"!=typeof n[e.lookupFromPathIndex])return;t=n[e.lookupFromPathIndex].replace("/","")}else t=n[0].replace("/","")}return t}},ze={name:"subdomain",lookup:function(e){var t;if("undefined"!=typeof window){var n=window.location.href.match(/(?:http[s]*\:\/\/)*(.*?)\.(?=[^\/]*\..{2,5})/gi);n instanceof Array&&(t="number"==typeof e.lookupFromSubdomainIndex?n[e.lookupFromSubdomainIndex].replace("http://","").replace("https://","").replace(".",""):n[0].replace("http://","").replace("https://","").replace(".",""))}return t}},He=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};F(this,e),this.type="languageDetector",this.detectors={},this.init(t,n)}return j(e,[{key:"init",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.services=e,this.options=Te(t,this.options||{},{order:["querystring","cookie","localStorage","sessionStorage","navigator","htmlTag"],lookupQuerystring:"lng",lookupCookie:"i18next",lookupLocalStorage:"i18nextLng",lookupSessionStorage:"i18nextLng",caches:["localStorage"],excludeCacheFor:["cimode"]}),this.options.lookupFromUrlIndex&&(this.options.lookupFromPathIndex=this.options.lookupFromUrlIndex),this.i18nOptions=n,this.addDetector(Ne),this.addDetector(Re),this.addDetector(Pe),this.addDetector(Be),this.addDetector(Fe),this.addDetector(Ue),this.addDetector(je),this.addDetector(ze)}},{key:"addDetector",value:function(e){this.detectors[e.name]=e}},{key:"detect",value:function(e){var t=this;e||(e=this.options.order);var n=[];return e.forEach((function(e){if(t.detectors[e]){var r=t.detectors[e].lookup(t.options);r&&"string"==typeof r&&(r=[r]),r&&(n=n.concat(r))}})),this.services.languageUtils.getBestMatchFromCodes?n:n.length>0?n[0]:null}},{key:"cacheUserLanguage",value:function(e,t){var n=this;t||(t=this.options.caches),t&&(this.options.excludeCacheFor&&this.options.excludeCacheFor.indexOf(e)>-1||t.forEach((function(t){n.detectors[t]&&n.detectors[t].cacheUserLanguage(e,n.options)})))}}]),e}();He.type="languageDetector";const Ve=He;function Ke(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ze(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ke(Object(n),!0).forEach((function(t){M(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ke(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var $e={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0};r.createContext(),j((function e(){F(this,e),this.usedNamespaces={}}),[{key:"addUsedNamespaces",value:function(e){var t=this;e.forEach((function(e){t.usedNamespaces[e]||(t.usedNamespaces[e]=!0)}))}},{key:"getUsedNamespaces",value:function(){return Object.keys(this.usedNamespaces)}}]);var qe={type:"3rdParty",init:function(e){!function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};$e=Ze(Ze({},$e),e)}(e.options.react)}};const We={en:{translations:JSON.parse('{"amtFeatures":{"enabled":"enabled","disabled":"disabled","messageTypes":{"success":"success","warning":"warning","error":"error"},"features":{"kvm":"KVM","sol":"SOL"},"messages":{"kvmNotEnabledAndNotPoweredUp":"Power on remote computer and check the KVM enable to connect to KVM","notPoweredUp":"Remote computer is not powered on.","kvmNotEnabled":"Check the KVM enable to connect to KVM","failedKvmFetch":"Unable to fetch KVM features","failedKvmFetchAndNotPoweredUp":"Unable to fetch KVM features and device is not powered on","failedKvmFetchAndFailedPowerFetch":"Unable to fetch KVM features and device power status","kvmNotEnabledAndFailedPowerFetch":"Check the KVM enable to connect to KVM and failed to fetch power status","failedPowerFetch":"Failed to fetch the power status","solNotEnabledAndNotPoweredUp":"Power on remote computer and check the SOL enable to connect to SOL","solNotEnabled":"Check the SOL enable to connect to SOL","failedSolFetch":"Unable to fetch SOL features","failedSolFetchAndNotPoweredUp":"Unable to fetch SOL features and device is not powered on","failedSolFetchAndFailedPowerFetch":"Unable to fetch SOL features and device power status","solNotEnabledAndFailedPowerFetch":"Check the SOL enable to connect to SOL and failed to fetch power status","failedToFetch":"Failed to fetch the {{translate.feature}} feature status","featureSuccess":"{{translate.feature}} has been {{translate.featureText}}","updateFailed":"Failed to update the {{translate.feature}} status!"}},"companyName":"Contoso","header":{"appName":"Lynx DAM WEB UI","logout":"Logout","profile":"Profile"},"pageNotFound":{"title":"404 - Page not found","message":"Oops, we weren\'t able to find the page you requested."},"tabs":{"dashboard":"Dashboard","devices":"Devices"},"user":{"login":{"heading":"Login","userName":"username","password":"password","signIn":"Sign In","cancel":"Cancel"}},"errorFormat":"Error: {{message}}","errorCode":{"noResponse":"Oops, there was no response from the server.","notLoggedIn":"You need to login to call the service.","notAuthorized":"Invalid username or password.","notFound":"Oops, we were not able to find the service.","redirection":"Oops, we got a redirection error.","retryFailure":"Oops, we got a temporary error from the service but were unable to recover. Try again later.","unknown":"An unknown error occurred. {{message}}"},"protected":{"permissionDenied":"Permission {{permission}} is denied."},"settingsFlyout":{"title":"System settings","version":"Version {{version}}","viewRelNotes":"View release notes","theme":"Theme","changeTheme":"Change the application color theme","switchTheme":"Switch to {{nextTheme}} theme","apply":"Apply","cancel":"Cancel","close":"Close","flowing":"Flowing","start":"Start","stop":"Stop","stopped":"Stopped","simulationData":"Simulation data","loading":"Loading","simulationDescription":"Start or stop simulation of devices. Stopping device simulation will minimize the cost of the solution; no simulated telemetry will be sent to your IoT Hub and alerts will not be generated for simulated devices.","toggleError":"Error updating simulation status","setLogoError":"Error updating logo","simulationLoadError":"Error loading simulation status"},"refreshBar":{"refreshing":"Refreshing","lastRefreshed":"Last refreshed"},"devices":{"grid":{"Name":"Name","uuids":"UUID","connected":"Connected","deviceName":"Device name","deviceType":"Device type","firmware":"Firmware","lastConnection":"Last connection","no":"No","offline":"Offline","simulated":"Simulated","status":"Status","telemetry":"Telemetry","yes":"Yes","resultSuccess":"Success","resultFailure":"Failed","resultMessage":"Message","executionResultsLink":"Execution Results","result":"Result","Percentage":"Percent Complete","Inprogress":"In Progress","ViewResults":"View Results"}},"fileInput":{"upload":"Upload"},"applicationSettings":{"nameAndLogo":"Name and logo","nameLogoDescription":"Edit logo and name in the site header.","replaceLogo":"Replace logo image","logoDescription":"Recommended logo size: 24 x 24 px.\\nMaximum logo size: 300 KB.\\nSupported file formats:\\n\\t.SVG\\n\\t.PNG\\n\\t.JPEG\\n\\t.JPG","applicationName":"Application name","currentLogo":"Current logo","edit":"Edit","checkmark":"Checkmark","uploadError":"Unable to upload file, please check the file type/size and try again.","error":"Error"},"auditLog":{"header":{"heading":"Audit Log Records"},"grid":{"column":{"auditappid":"Role ID","auditappiddescription":"A unique ID for each AMT Role","eventId":"Event ID","eventIddescription":"ID of an event of the application","initiatortype":"InitiatorType","auditapp":"Role Name","auditappdescription":"The role group name for each AMT functional area","event":"Event","eventdescription":"ID of an event of the application","initiator":"Initiator","initiatordescription":"User ID performing action","time":"Device Time(UTC)","timedescription":"Server time to indicate the event occurance","mclocationtype":"MCLocationType","mclocationtypedescription":"Management console interface","netaddress":"Network Address","netaddressdescription":"Network address details","exstr":"Event Details","exstrdescription":"Extended data length details"},"footer":{"exporttocsv":{"title":"Export to CSV"},"gotopage":{"title":"Go to page"},"pagination":{"text1":"Page","text2":"of"}}}},"dashboard":{"header":"AMT Device Management","deviceDetails":"Device details","count":"Count","totalDevices":"Total Devices","connectedDevices":"Connected","disconnectedDevices":"Disconnected"},"cira":{"new":"New","delete":"Delete","edit":"Edit","close":"Close","newCIRAConfig":"New CIRA Configuration","editCIRAConfig":"Edit CIRA Configuration","configName":"Config Name","addressFormat":"MPS Server Address Format","ipv4":"IPV4","ipv6":"IPV6","fqdn":"FQDN","mpsServerAddress":"MPS Server Address","port":"Port","userName":"User Name","password":"Password","commonName":"Cert. Hostname(CN)","mpsRootCetificate":"MPS Root Certificate","create":"Create","save":"Save","mpsRootCertFormat":"Mps root certificate format","autoLoad":"Auto load","manual":"Manual","load":"Load","mpsLoaded":"MPS root certificate successfully loaded","errors":{"commonNameValidation":"Cert. Hostname(CN) is required field and contains letters,numbers and ._- characters.","passwordValidation":"Password is required field should contains atleast one lowercase letter, one uppercase letter, one numeric digit,and one special character and password length should be in between 8 to 32.","userNameValidation":"User name is required field and contains letters, numbers and special characters.","portValidation":"Port is required and should be a numeric value between 1024 and 49151","ipv4AddressValidation":"Please enter valid IPV4 Address.","ipv6AddressValidation":"Please enter valid IPV6 Address.","fqdnAddressValidation":"Please enter valid FQDN Address.","configNameValidation":"Config name is required field and contains letters, numbers and special characters.","loadMpsError":"Load the mps root certificate","mpsCertFetchError":"Failed to fetch the certificate from the server. Please try to enter the certificate manually by switching the Mps root certificate format option.","mpsServerMismatchError":"MPS server address does not match with base URL of the application. Please try to enter the certificate manually by switching the Mps root certificate format option."},"grid":{"configName":"Config Name","mpsServer":"MPS server","port":"Port","username":"Username","password":"Password","commonName":"Cert. Hostname(CN)","rootCert":"MPS root Certificate"}},"domain":{"delete":"Delete","new":"New","edit":"Edit","close":"Close","newDomain":"Create Domain","editDomain":"Edit domain details","grid":{"name":"Name","domainSuffix":"Domain Suffix","provisioningCert":"Provisioning Certificate","provisioningCertStorageFormat":"Provisioning Certificate Storage Format","provisioningCertPassword":"Provisioning Certificate Password"},"name":"Name","domainSuffix":"Domain Suffix","provisioningCertStorageFormat":"Provisioning Cert Storage Format","provisioningCert":"Provisioning Cert","provisioningCertPassword":"Provisioning Cert Password","create":"Create","file":"File","browse":"Browse","browseNew":"Browse new file","save":"Save","namePlaceHolder":"Enter domain name","domainSuffixPlaceHolder":"Enter Domain suffix","provisioningCertTextAreaPlaceHolder":"Enter provisioning Cert ","provisioningCertPasswordPlaceHolder":"Enter password","provisioningCertTextPlaceHolder":"Enter file path","text":"Text","certExists":"If you would like to add a new Provisioning certificate browse and select.","error":{"nameValidation":"Name is a required field and contains letters, numbers and special characters.","domainSuffixValidation":"Domain suffix is a required field","provisioningCertStorageFormatValidation":"Provisioning Cert Storage Format is a required field","provisioningCertValidation":"Provisioning cert is a required field","provisioningCertPasswordValidation":"Provisioning Cert Password is required field should contains atleast one lowercase letter, one uppercase letter, one numeric digit,and one special character and password length should be in between 8 to 32.","invalidFileType":"Invalid provisioning certificate type"}},"network":{"new":"New","newNetwork":"New Network configuration","editNetwork":"Edit Network configuration","create":"Create","delete":"Delete","edit":"Edit","save":"Save","grid":{"name":"Name","dhcpEnabled":"DHCP Enabled"},"networkName":"Network Name","dhcpEnabled":"DHCP Enabled","errors":{"networkNameValidation":"Network name is a required field and contains letters, numbers and special characters."}}}')},te:{translations:JSON.parse('{"amtFeatures":{"enabled":"ఎనేబుల్","disabled":"వికలాంగ","messageTypes":{"success":"విజయం","warning":"హెచ్చరిక","error":"లోపం"},"features":{"kvm":"KVM","sol":"సోల్"},"messages":{"kvmNotEnabledAndNotPoweredUp":"రిమోట్ కంప్యూటర్లో శక్తినివ్వండి మరియు KVM ని ప్రారంభించండి","notPoweredUp":"రిమోట్ కంప్యూటర్ ఆన్ చేయబడదు.","kvmNotEnabled":"KVM ప్రారంభించబడలేదు","solNotEnabledAndNotPoweredUp":"రిమోట్ కంప్యూటర్లో శక్తినివ్వండి మరియు SOL ని ప్రారంభించండి","solNotEnabled":"SOL ప్రారంభించబడలేదు","failedToFetch":"Failed to fetch the {{translate.feature}} feature status","featureSuccess":"{{translate.feature}} has been {{translate.featureText}}","updateFailed":"Failed to update the {{translate.feature}} status!"}},"companyName":"Contoso","header":{"appName":"Lynx DAM WEB UI","logout":"లాగౌట్","profile":"ప్రొఫైల్"},"pageNotFound":{"title":"404 - పేజి దొరకలేదు","message":"అయ్యో, మీరు అభ్యర్థించిన పేజీని మేము కనుగొనలేకపోయాము."},"tabs":{"dashboard":"Dashboard","devices":"Devices"},"user":{"login":{"heading":"ప్రవేశించండి","userName":"యూజర్పేరు","password":"పాస్వర్డ్","signIn":"సైన్ ఇన్ చేయండి","cancel":"రద్దు చేయండి"}},"errorFormat":"Error: {{message}}","errorCode":{"noResponse":"Oops, there was no response from the server.","notLoggedIn":"You need to login to call the service.","notAuthorized":"Invalid username or password.","notFound":"Oops, we were not able to find the service.","redirection":"Oops, we got a redirection error.","retryFailure":"Oops, we got a temporary error from the service but were unable to recover. Try again later.","unknown":"An unknown error occurred. {{message}}"},"protected":{"permissionDenied":"Permission {{permission}} is denied."},"settingsFlyout":{"title":"System settings","version":"Version {{version}}","viewRelNotes":"View release notes","theme":"Theme","changeTheme":"Change the application color theme","switchTheme":"Switch to {{nextTheme}} theme","apply":"Apply","cancel":"Cancel","close":"Close","flowing":"Flowing","start":"Start","stop":"Stop","stopped":"Stopped","simulationData":"Simulation data","loading":"Loading","simulationDescription":"Start or stop simulation of devices. Stopping device simulation will minimize the cost of the solution; no simulated telemetry will be sent to your IoT Hub and alerts will not be generated for simulated devices.","toggleError":"Error updating simulation status","setLogoError":"Error updating logo","simulationLoadError":"Error loading simulation status"},"refreshBar":{"refreshing":"Refreshing","lastRefreshed":"Last refreshed"},"fileInput":{"upload":"Upload"},"applicationSettings":{"nameAndLogo":"Name and logo","nameLogoDescription":"Edit logo and name in the site header.","replaceLogo":"Replace logo image","logoDescription":"Recommended logo size: 24 x 24 px.\\nMaximum logo size: 300 KB.\\nSupported file formats:\\n\\t.SVG\\n\\t.PNG\\n\\t.JPEG\\n\\t.JPG","applicationName":"Application name","currentLogo":"Current logo","edit":"Edit","checkmark":"Checkmark","uploadError":"Unable to upload file, please check the file type/size and try again.","error":"Error"},"auditLog":{"header":{"heading":"Audit Log Records"},"grid":{"column":{"auditappid":"Role ID","auditappiddescription":"A unique ID for each AMT Role","eventId":"Event ID","eventIddescription":"ID of an event of the application","initiatortype":"InitiatorType","auditapp":"Role Name","auditappdescription":"The role group name for each AMT functional area","event":"Event","eventdescription":"ID of an event of the application","initiator":"ప్రారంబికని","initiatordescription":"User ID performing action","time":"Device Time(UTC)","timedescription":"Server time to indicate the event occurance","mclocationtype":"MCLocationType","mclocationtypedescription":"Management console interface","netaddress":"Network Address","netaddressdescription":"Network address details","exstr":"Event Details","exstrdescription":"Extended data length details"},"footer":{"exporttocsv":{"title":"Export to CSV"},"gotopage":{"title":"Go to page"},"pagination":{"text1":"Page","text2":"of"}}}},"devices":{"searchPlaceholder":"Search devices...","noneFound":"No devices found.","refresh":"Refresh","exportToCsv":"Export to CSV","exportDefaultFileName":"Devices","grid":{"connected":"Connected","Name":"పేరు","uuids":"UUID లను","firmware":"Firmware","lastConnection":"Last connection","no":"No","offline":"Offline","simulated":"Simulated","status":"స్థితి","telemetry":"Telemetry","yes":"Yes","resultSuccess":"Success","resultFailure":"Failed","resultMessage":"Message","executionResultsLink":"Execution Results","result":"Result","Percentage":"Percent Complete","Inprogress":"In Progress","ViewResults":"View Results"},"flyouts":{"details":{"title":"Device Details","noDevice":"Oops, we were not able to find the device.","close":"Close","connected":"Connected","notConnected":"Disconnected","simulated":"Simulated","notSimulated":"Physical","diagnostics":{"title":"Diagnostics","description":"Diagnostic information from device","keyHeader":"Property","valueHeader":"Value","status":"Status","lastMessage":"Last message","message":"Message","showMessage":"Click here to see raw message"},"methods":{"title":"Methods","description":"All methods available for device","noneExist":"No methods found for this device."},"properties":{"title":"Properties","description":"Selected properties on device","keyHeader":"Property","valueHeader":"Value","noneExist":"No properties found for this device.","copy":"Copy","copyAllProperties":"Copy a list of all properties for the device","syncing":"{{reportedPropertyValue}} (Syncing {{desiredPropertyValue}})"},"tags":{"title":"Tags","description":"Tags applied to device","keyHeader":"Key","valueHeader":"Value","noneExist":"No tags found for this device."},"telemetry":{"title":"Telemetry"}},"delete":{"title":"Delete","header":"Delete device","description":"This action will delete the devices permanently from the platform.","confirmNo":"No, do not delete the selected physical devices.","confirmYes":"Yes, please delete the selected physical devices.","simulatedNotSupported":"Deleting simulated devices is not currently supported, this action will only be taken on the physical devices.","summaryHeader":"Summary","affected":"Affected devices","cancel":"Cancel","apply":"Delete","pending":"Deleting devices... ","applySuccess":"devices deleted successfully!","close":"Close"},"kvm":{"title":"KVM"},"jobs":{"title":"Jobs","noDevices":"Oops, we were not able to find any selected devices.","summaryHeader":"Summary","affected":"Affected devices","cancel":"Cancel","apply":"Apply","pending":"Submitting job...","applySuccess":"Job submitted successfully!","close":"Close","selectJob":"Select job","jobName":"Job Name","jobNameHint":"Enter job name","jobNameHelpMessage":"Only letters and numbers are allowed","viewStatus":"View job status","validation":{"required":"Is required"},"errorMsg":{"selectedType":"Must be of the selected type"},"schedule":"Schedule","scheduleHint":"Enter schedule as a cron expression","scheduleHelpMessage":"If schedule is empty, Immediate jobs are created.Use http://www.cronmaker.com/ for creating cron expressions","startTime":"Start Time","startTimeHint":"Enter start time","startTimeHelpMessage":"Only yyyy-MM-ddTHH:mm:ss","endTime":"End Time","endTimeHint":"Enter end time","endTimeHelpMessage":"Only yyyy-MM-ddTHH:mm:ss","jobType":"Job type","jobTypeHint":"Select job type","tags":{"radioLabel":"Tag","title":"Tags on selected devices","description":"Tags in common on selected devices","keyHeader":"Key","valueHeader":"Value","typeHeader":"Type","typeNumber":"Number","typeString":"Text","noneExist":"No common tags found for the selected devices.","add":"Add tag"},"methods":{"radioLabel":"Run method","title":"Run method","description":"All available methods for device or group of devices","methodName":"Method name","methodNameHint":"Select method","firmwareVersion":"Firmware Version","firmwareVersionHint":"1.0.1","firmwareUri":"Firmware URI","firmwareUriHint":"Enter firmware URI value","destinationPath":"Destination Folder","fileUpload":"Upload Files","selectFiles":"Select Files For Upload","destinationPathHint":"Enter a destination folder for files","filename":"Command","specifyFileName":"Specify command to execute on remote device","fileparams":"Command parameters","specifyFileParams":"Specify parameters for the command"},"properties":{"radioLabel":"Reconfigure","title":"Reconfigure","description":"Available properties and values to change","keyHeader":"Property","valueHeader":"Value","typeHeader":"Type","typeNumber":"Number","typeString":"Text","noneExist":"No common properties found for the selected devices.","syncing":"{{reportedPropertyValue}} (Syncing {{desiredPropertyValue}})"}},"new":{"contextMenuName":"New device","title":"New device","summaryHeader":"Provision summary","affected":"Devices to provision","cancel":"Cancel","apply":"Apply","pending":"Provisioning devices... ","applySuccess":"Devices provisioned successfully","simulatedRefreshMessage":"Simulated devices are created in the background on the server. Therefore, they may take a while to show up when the device list is refreshed.","close":"Close","validation":{"required":"Is required","greaterThanZero":"Must be greater than zero"},"count":{"label":"Number of devices"},"deviceType":{"label":"Device type","simulated":"Simulated","physical":"Physical"},"deviceId":{"label":"Device ID","hint":"Enter device ID ","sysGenerated":"System generated device IDs"},"deviceIdExample":{"label":"Device ID example","format":"{{deviceName}}-{#####}","deviceName":"{Device name}"},"deviceModel":{"label":"Device model","hint":"Select existing device type"},"authenticationType":{"label":"Authentication type","symmetric":"Symmetric key","x509":"X.509"},"authenticationKey":{"label":"Authentication key","generateKeys":"Auto generate keys","manualKeys":"Enter keys manually","hint":"Enter your key here","primaryKey":"Primary Key","primaryKeyConnection":"Connection string primary Key","secondaryKey":"Secondary Key","secondaryKeyConnection":"Connection string secondary Key","primaryThumbprint":"Primary thumbprint","secondaryThumbprint":"Secondary thumbprint"}},"SIMManagement":{"title":"SIM Management","provider":"Provider","summaryHeader":"Summary and instructions","here":"here","select":"Select...","header":{"telefonica":"As a Telefónica IoT customer you have the advantage of adding this feature to enrich automatically your Azure Remote Monitoring Solution with the connectivity data available in Telefónica IoT Connectivity Platform (Network Information, Data Consumption & Network Based Location)."},"description":{"telefonica":"This feature is in Preview. In order to sync your connectivity data into Azure Remote Monitoring Solution, please fill a request <1><0>url</0></1>, select the option “Azure Remote Monitoring” and include your contact data and we will automatically activate your account. \\n\\nIf you are not a Telefónica client yet and you want to enjoy this or other IoT Connectivity Cloud Ready services, you can contact us <1><0>url</0></1> and select the option “Connectivity”; we will be glad to help you."},"operator":{"telefonica":"Telefónica"}}}}}')},fr:{translations:JSON.parse('{"auditLog":{"header":{"heading":"Audit Log Records"},"grid":{"column":{"auditappid":"Role ID","auditappiddescription":"A unique ID for each AMT Role","eventId":"Event ID","eventIddescription":"ID of an event of the application","initiatortype":"InitiatorType","auditapp":"Role Name","auditappdescription":"The role group name for each AMT functional area","event":"Event","eventdescription":"ID of an event of the application","initiator":"ప్రారంబికని","initiatordescription":"User ID performing action","time":"Device Time(UTC)","timedescription":"Server time to indicate the event occurance","mclocationtype":"MCLocationType","mclocationtypedescription":"Management console interface","netaddress":"Network Address","netaddressdescription":"Network address details","exstr":"Event Details","exstrdescription":"Extended data length details"},"footer":{"exporttocsv":{"title":"Export to CSV"},"gotopage":{"title":"Go to page"},"pagination":{"text1":"Page","text2":"of"}}}},"devices":{"searchPlaceholder":"Search devices...","noneFound":"No devices found.","refresh":"Refresh","exportToCsv":"Export to CSV","exportDefaultFileName":"Devices","grid":{"connected":"Connected","Name":"Nom","uuids":"uuids","firmware":"Firmware","lastConnection":"Last connection","no":"No","offline":"Offline","simulated":"Simulated","status":"statut","telemetry":"Telemetry","yes":"Yes","resultSuccess":"Success","resultFailure":"Failed","resultMessage":"Message","executionResultsLink":"Execution Results","result":"Result","Percentage":"Percent Complete","Inprogress":"In Progress","ViewResults":"View Results"},"flyouts":{"details":{"title":"Device Details","noDevice":"Oops, we were not able to find the device.","close":"Close","connected":"Connected","notConnected":"Disconnected","simulated":"Simulated","notSimulated":"Physical","diagnostics":{"title":"Diagnostics","description":"Diagnostic information from device","keyHeader":"Property","valueHeader":"Value","status":"Status","lastMessage":"Last message","message":"Message","showMessage":"Click here to see raw message"},"methods":{"title":"Methods","description":"All methods available for device","noneExist":"No methods found for this device."},"properties":{"title":"Properties","description":"Selected properties on device","keyHeader":"Property","valueHeader":"Value","noneExist":"No properties found for this device.","copy":"Copy","copyAllProperties":"Copy a list of all properties for the device","syncing":"{{reportedPropertyValue}} (Syncing {{desiredPropertyValue}})"},"tags":{"title":"Tags","description":"Tags applied to device","keyHeader":"Key","valueHeader":"Value","noneExist":"No tags found for this device."},"telemetry":{"title":"Telemetry"}},"delete":{"title":"Delete","header":"Delete device","description":"This action will delete the devices permanently from the platform.","confirmNo":"No, do not delete the selected physical devices.","confirmYes":"Yes, please delete the selected physical devices.","simulatedNotSupported":"Deleting simulated devices is not currently supported, this action will only be taken on the physical devices.","summaryHeader":"Summary","affected":"Affected devices","cancel":"Cancel","apply":"Delete","pending":"Deleting devices... ","applySuccess":"devices deleted successfully!","close":"Close"},"kvm":{"title":"KVM"},"jobs":{"title":"Jobs","noDevices":"Oops, we were not able to find any selected devices.","summaryHeader":"Summary","affected":"Affected devices","cancel":"Cancel","apply":"Apply","pending":"Submitting job...","applySuccess":"Job submitted successfully!","close":"Close","selectJob":"Select job","jobName":"Job Name","jobNameHint":"Enter job name","jobNameHelpMessage":"Only letters and numbers are allowed","viewStatus":"View job status","validation":{"required":"Is required"},"errorMsg":{"selectedType":"Must be of the selected type"},"schedule":"Schedule","scheduleHint":"Enter schedule as a cron expression","scheduleHelpMessage":"If schedule is empty, Immediate jobs are created.Use http://www.cronmaker.com/ for creating cron expressions","startTime":"Start Time","startTimeHint":"Enter start time","startTimeHelpMessage":"Only yyyy-MM-ddTHH:mm:ss","endTime":"End Time","endTimeHint":"Enter end time","endTimeHelpMessage":"Only yyyy-MM-ddTHH:mm:ss","jobType":"Job type","jobTypeHint":"Select job type","tags":{"radioLabel":"Tag","title":"Tags on selected devices","description":"Tags in common on selected devices","keyHeader":"Key","valueHeader":"Value","typeHeader":"Type","typeNumber":"Number","typeString":"Text","noneExist":"No common tags found for the selected devices.","add":"Add tag"},"methods":{"radioLabel":"Run method","title":"Run method","description":"All available methods for device or group of devices","methodName":"Method name","methodNameHint":"Select method","firmwareVersion":"Firmware Version","firmwareVersionHint":"1.0.1","firmwareUri":"Firmware URI","firmwareUriHint":"Enter firmware URI value","destinationPath":"Destination Folder","fileUpload":"Upload Files","selectFiles":"Select Files For Upload","destinationPathHint":"Enter a destination folder for files","filename":"Command","specifyFileName":"Specify command to execute on remote device","fileparams":"Command parameters","specifyFileParams":"Specify parameters for the command"},"properties":{"radioLabel":"Reconfigure","title":"Reconfigure","description":"Available properties and values to change","keyHeader":"Property","valueHeader":"Value","typeHeader":"Type","typeNumber":"Number","typeString":"Text","noneExist":"No common properties found for the selected devices.","syncing":"{{reportedPropertyValue}} (Syncing {{desiredPropertyValue}})"}},"new":{"contextMenuName":"New device","title":"New device","summaryHeader":"Provision summary","affected":"Devices to provision","cancel":"Cancel","apply":"Apply","pending":"Provisioning devices... ","applySuccess":"Devices provisioned successfully","simulatedRefreshMessage":"Simulated devices are created in the background on the server. Therefore, they may take a while to show up when the device list is refreshed.","close":"Close","validation":{"required":"Is required","greaterThanZero":"Must be greater than zero"},"count":{"label":"Number of devices"},"deviceType":{"label":"Device type","simulated":"Simulated","physical":"Physical"},"deviceId":{"label":"Device ID","hint":"Enter device ID ","sysGenerated":"System generated device IDs"},"deviceIdExample":{"label":"Device ID example","format":"{{deviceName}}-{#####}","deviceName":"{Device name}"},"deviceModel":{"label":"Device model","hint":"Select existing device type"},"authenticationType":{"label":"Authentication type","symmetric":"Symmetric key","x509":"X.509"},"authenticationKey":{"label":"Authentication key","generateKeys":"Auto generate keys","manualKeys":"Enter keys manually","hint":"Enter your key here","primaryKey":"Primary Key","primaryKeyConnection":"Connection string primary Key","secondaryKey":"Secondary Key","secondaryKeyConnection":"Connection string secondary Key","primaryThumbprint":"Primary thumbprint","secondaryThumbprint":"Secondary thumbprint"}},"SIMManagement":{"title":"SIM Management","provider":"Provider","summaryHeader":"Summary and instructions","here":"here","select":"Select...","header":{"telefonica":"As a Telefónica IoT customer you have the advantage of adding this feature to enrich automatically your Azure Remote Monitoring Solution with the connectivity data available in Telefónica IoT Connectivity Platform (Network Information, Data Consumption & Network Based Location)."},"description":{"telefonica":"This feature is in Preview. In order to sync your connectivity data into Azure Remote Monitoring Solution, please fill a request <1><0>url</0></1>, select the option “Azure Remote Monitoring” and include your contact data and we will automatically activate your account. \\n\\nIf you are not a Telefónica client yet and you want to enjoy this or other IoT Connectivity Cloud Ready services, you can contact us <1><0>url</0></1> and select the option “Connectivity”; we will be glad to help you."},"operator":{"telefonica":"Telefónica"}}}}}')},es:{translations:JSON.parse('{"auditLog":{"header":{"heading":"Audit Log Records"},"grid":{"column":{"auditappid":"Role ID","auditappiddescription":"A unique ID for each AMT Role","eventId":"Event ID","eventIddescription":"ID of an event of the application","initiatortype":"InitiatorType","auditapp":"Role Name","auditappdescription":"The role group name for each AMT functional area","event":"Event","eventdescription":"ID of an event of the application","initiator":"ప్రారంబికని","initiatordescription":"User ID performing action","time":"Device Time(UTC)","timedescription":"Server time to indicate the event occurance","mclocationtype":"MCLocationType","mclocationtypedescription":"Management console interface","netaddress":"Network Address","netaddressdescription":"Network address details","exstr":"Event Details","exstrdescription":"Extended data length details"},"footer":{"exporttocsv":{"title":"Export to CSV"},"gotopage":{"title":"Go to page"},"pagination":{"text1":"Page","text2":"of"}}}},"devices":{"searchPlaceholder":"Search devices...","noneFound":"No devices found.","refresh":"Refresh","exportToCsv":"Export to CSV","exportDefaultFileName":"Devices","grid":{"connected":"Connected","Name":"nombre","uuids":"uuids","firmware":"Firmware","lastConnection":"Last connection","no":"No","offline":"Offline","simulated":"Simulated","status":"estado","telemetry":"Telemetry","yes":"Yes","resultSuccess":"Success","resultFailure":"Failed","resultMessage":"Message","executionResultsLink":"Execution Results","result":"Result","Percentage":"Percent Complete","Inprogress":"In Progress","ViewResults":"View Results"},"flyouts":{"details":{"title":"Device Details","noDevice":"Oops, we were not able to find the device.","close":"Close","connected":"Connected","notConnected":"Disconnected","simulated":"Simulated","notSimulated":"Physical","diagnostics":{"title":"Diagnostics","description":"Diagnostic information from device","keyHeader":"Property","valueHeader":"Value","status":"Status","lastMessage":"Last message","message":"Message","showMessage":"Click here to see raw message"},"methods":{"title":"Methods","description":"All methods available for device","noneExist":"No methods found for this device."},"properties":{"title":"Properties","description":"Selected properties on device","keyHeader":"Property","valueHeader":"Value","noneExist":"No properties found for this device.","copy":"Copy","copyAllProperties":"Copy a list of all properties for the device","syncing":"{{reportedPropertyValue}} (Syncing {{desiredPropertyValue}})"},"tags":{"title":"Tags","description":"Tags applied to device","keyHeader":"Key","valueHeader":"Value","noneExist":"No tags found for this device."},"telemetry":{"title":"Telemetry"}},"delete":{"title":"Delete","header":"Delete device","description":"This action will delete the devices permanently from the platform.","confirmNo":"No, do not delete the selected physical devices.","confirmYes":"Yes, please delete the selected physical devices.","simulatedNotSupported":"Deleting simulated devices is not currently supported, this action will only be taken on the physical devices.","summaryHeader":"Summary","affected":"Affected devices","cancel":"Cancel","apply":"Delete","pending":"Deleting devices... ","applySuccess":"devices deleted successfully!","close":"Close"},"kvm":{"title":"KVM"},"jobs":{"title":"Jobs","noDevices":"Oops, we were not able to find any selected devices.","summaryHeader":"Summary","affected":"Affected devices","cancel":"Cancel","apply":"Apply","pending":"Submitting job...","applySuccess":"Job submitted successfully!","close":"Close","selectJob":"Select job","jobName":"Job Name","jobNameHint":"Enter job name","jobNameHelpMessage":"Only letters and numbers are allowed","viewStatus":"View job status","validation":{"required":"Is required"},"errorMsg":{"selectedType":"Must be of the selected type"},"schedule":"Schedule","scheduleHint":"Enter schedule as a cron expression","scheduleHelpMessage":"If schedule is empty, Immediate jobs are created.Use http://www.cronmaker.com/ for creating cron expressions","startTime":"Start Time","startTimeHint":"Enter start time","startTimeHelpMessage":"Only yyyy-MM-ddTHH:mm:ss","endTime":"End Time","endTimeHint":"Enter end time","endTimeHelpMessage":"Only yyyy-MM-ddTHH:mm:ss","jobType":"Job type","jobTypeHint":"Select job type","tags":{"radioLabel":"Tag","title":"Tags on selected devices","description":"Tags in common on selected devices","keyHeader":"Key","valueHeader":"Value","typeHeader":"Type","typeNumber":"Number","typeString":"Text","noneExist":"No common tags found for the selected devices.","add":"Add tag"},"methods":{"radioLabel":"Run method","title":"Run method","description":"All available methods for device or group of devices","methodName":"Method name","methodNameHint":"Select method","firmwareVersion":"Firmware Version","firmwareVersionHint":"1.0.1","firmwareUri":"Firmware URI","firmwareUriHint":"Enter firmware URI value","destinationPath":"Destination Folder","fileUpload":"Upload Files","selectFiles":"Select Files For Upload","destinationPathHint":"Enter a destination folder for files","filename":"Command","specifyFileName":"Specify command to execute on remote device","fileparams":"Command parameters","specifyFileParams":"Specify parameters for the command"},"properties":{"radioLabel":"Reconfigure","title":"Reconfigure","description":"Available properties and values to change","keyHeader":"Property","valueHeader":"Value","typeHeader":"Type","typeNumber":"Number","typeString":"Text","noneExist":"No common properties found for the selected devices.","syncing":"{{reportedPropertyValue}} (Syncing {{desiredPropertyValue}})"}},"new":{"contextMenuName":"New device","title":"New device","summaryHeader":"Provision summary","affected":"Devices to provision","cancel":"Cancel","apply":"Apply","pending":"Provisioning devices... ","applySuccess":"Devices provisioned successfully","simulatedRefreshMessage":"Simulated devices are created in the background on the server. Therefore, they may take a while to show up when the device list is refreshed.","close":"Close","validation":{"required":"Is required","greaterThanZero":"Must be greater than zero"},"count":{"label":"Number of devices"},"deviceType":{"label":"Device type","simulated":"Simulated","physical":"Physical"},"deviceId":{"label":"Device ID","hint":"Enter device ID ","sysGenerated":"System generated device IDs"},"deviceIdExample":{"label":"Device ID example","format":"{{deviceName}}-{#####}","deviceName":"{Device name}"},"deviceModel":{"label":"Device model","hint":"Select existing device type"},"authenticationType":{"label":"Authentication type","symmetric":"Symmetric key","x509":"X.509"},"authenticationKey":{"label":"Authentication key","generateKeys":"Auto generate keys","manualKeys":"Enter keys manually","hint":"Enter your key here","primaryKey":"Primary Key","primaryKeyConnection":"Connection string primary Key","secondaryKey":"Secondary Key","secondaryKeyConnection":"Connection string secondary Key","primaryThumbprint":"Primary thumbprint","secondaryThumbprint":"Secondary thumbprint"}},"SIMManagement":{"title":"SIM Management","provider":"Provider","summaryHeader":"Summary and instructions","here":"here","select":"Select...","header":{"telefonica":"As a Telefónica IoT customer you have the advantage of adding this feature to enrich automatically your Azure Remote Monitoring Solution with the connectivity data available in Telefónica IoT Connectivity Platform (Network Information, Data Consumption & Network Based Location)."},"description":{"telefonica":"This feature is in Preview. In order to sync your connectivity data into Azure Remote Monitoring Solution, please fill a request <1><0>url</0></1>, select the option “Azure Remote Monitoring” and include your contact data and we will automatically activate your account. \\n\\nIf you are not a Telefónica client yet and you want to enjoy this or other IoT Connectivity Cloud Ready services, you can contact us <1><0>url</0></1> and select the option “Connectivity”; we will be glad to help you."},"operator":{"telefonica":"Telefónica"}}}}}')}};Ce.use(qe).use(Ve).init({resources:We,ns:["translations"],defaultNS:"translations",debug:!1,fallbackLng:"en",interpolation:{escapeValue:!1,formatSeparator:","},react:{wait:!1}}).catch((()=>console.info("error occured"))),Ce.changeLanguage(navigator.language).catch((()=>console.info("error occured")));const Xe=new URL(window.location.href),Ye=new URLSearchParams(Xe.search);(0,a.render)(r.createElement(P,{autoConnect:!1,deviceId:Ye.get("deviceId"),mpsServer:Ye.get("mpsServer")+"/relay",authToken:"authorization",mouseDebounceTime:200,canvasHeight:"100%",canvasWidth:"100%"}),document.querySelector("#kvm"))}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={id:e,exports:{}};return __webpack_modules__[e](n,n.exports,__webpack_require__),n.exports}__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__=__webpack_require__(307);return __webpack_exports__})()}));
|
|
3
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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SUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLElBQUksS0FBSyxLQUFLLEtBQUssS0FBSyxJQUFJLEtBQUssSUFBSSxLQUFLLElBQUksS0FBSyxLQUFLLElBQUksS0FBSyxLQUFLdkgsS0FBS3dILG9CQUFvQixDQUFDLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFL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QUU2UixVQUFVeFMsR0FBRyxJQUFJQSxHQUFHLEtBQUs0QixFQUFFNUIsRUFBRSxJQUFJQSxHQUFHLEtBQUtBLEdBQUcsTUFBTTRCLEVBQUU1QixFQUFFLE9BQU8sSUFBSUEsSUFBSTRCLEVBQUUsT0FBTyxJQUFJNUIsSUFBSTRCLEVBQUUsT0FBTyxLQUFLNUIsSUFBSTRCLEVBQUUsT0FBTyxLQUFLNUIsSUFBSTRCLEVBQUUsT0FBTyxLQUFLNUIsSUFBSTRCLEVBQUUsT0FBTyxLQUFLNUIsSUFBSTRCLEVBQUUsT0FBTyxLQUFLNUIsSUFBSTRCLEVBQUUsT0FBTyxLQUFLNUIsSUFBSTRCLEVBQUUsT0FBTyxLQUFLNUIsSUFBSTRCLEVBQUUsT0FBTyxLQUFLNUIsSUFBSTRCLEVBQUUsT0FBTyxLQUFLNUIsSUFBSTRCLEVBQUUsT0FBTyxLQUFLNUIsSUFBSTRCLEVBQUUsT0FBTyxLQUFLNUIsSUFBSTRCLEVBQUUsT0FBTyxLQUFLNUIsSUFBSTRCLEVBQUUsT0FBTyxLQUFLNUIsSUFBSTRCLEVBQUUsT0FBTyxLQUFLNUIsSUFBSTRCLEVBQUUsT0FBTyxLQUFLNUIsSUFBSTRCLEVBQUUsT0FBTzVCLEdBQUcsSUFBSUEsR0FBRyxNQUFNNEIsRUFBRTVCLEVBQUUsSUFBSSxNQUFNQSxJQUFJNEIsRUFBRSxJQUFJLE1BQU01QixJQUFJNEIsRUFBRSxJQUFJLE1BQU01QixJQUFJNEIsRUFBRSxJQUFJLE1BQU01QixJQUFJNEIsRUFBRSxJQUFJLE1BQU01QixJQUFJNEIsRUFBRSxJQUFJLE1BQU01QixJQUFJNEIsRUFBRSxJQUFJLE1BQU01QixJQUFJNEIsRUFBRSxJQUFJLE1BQU01QixJQUFJNEIsRUFBRSxJQUFJLE1BQU01QixJQUFJNEIsRUFBRSxJQUFJLE1BQU01QixJQUFJNEIsRUFBRSxJQUFJLE1BQU01QixJQUFJNEIsRUFBRSxJQUFJLE1BQU01QixJQUFJNEIsRUFBRSxJQUFJLE1BQU01QixJQUFJNEIsRUFBRSxJQUFJLE1BQU01QixJQUFJNEIsRUFBRSxJQUFJLE1BQU01QixJQUFJNEIsRUFBRSxJQUFJ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QUdDLE1BQU0sR0FBR0MsT0FBTyxHQUFHQyxLQUFLLEdBQUdDLElBQUksR0FBR0MsSUFBSSxHQUFHQyxLQUFLLEdBQUdDLFlBQVksSUFBSUMsYUFBYSxJQUFJQyxPQUFPRixZQUFZQyxhQUFhRSxNQUFNLEVBQUVDLEtBQUssRUFBRUMsTUFBTSxFQUFFQyxvQkFBb0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxHQUFHQyxtQkFBbUIsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJQyxvQkFBb0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxNQUFNLE1BQU0sTUFBTSxFQUFFLEdBQUdDLG1CQUFtQixDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxTQUFTQyxjQUFjbGhCLEVBQUVGLEdBQUcsSUFBSVcsRUFBRWlCLEVBQUVRLEVBQUVDLEVBQUVVLEVBQUVDLEVBQUVPLEVBQUVDLEVBQUVDLEVBQUVDLEVBQUVDLEVBQUVDLEVBQUVDLEVBQUVFLEVBQUVFLEVBQUVFLEVBQUVFLEVBQUVDLEVBQUVDLEVBQUVDLEVBQUU2YyxFQUFFakosRUFBRWhILEVBQUVsUixFQUFFb2hCLEtBQUszVSxFQUFFM00sR0FBRytnQixNQUFNN2dCLEVBQUVxaEIsU0FBU3JoQixFQUFFc2hCLFFBQVFDLEVBQUV2aEIsRUFBRXdoQixLQUFLdlEsRUFBRWpSLEVBQUV5aEIsS0FBS0MsRUFBRTVoQixHQUFHK2dCLE1BQU03Z0IsRUFBRTJoQixLQUFLLEVBQUVDLEVBQUU1aEIsRUFBRTZoQixNQUFNcGhCLEVBQUVYLEdBQUc4Z0IsS0FBSzVnQixFQUFFMmhCLEtBQUs3aEIsR0FBRytnQixNQUFNN2dCLEVBQUU4aEIsTUFBTSxHQUFHLElBQUlDLEVBQUUsSUFBSS9lLE1BQU0sSUFBSXFXLEVBQUUsSUFBSXJXLE1BQU0sSUFBSSxJQUFJdEIsRUFBRSxFQUFFQSxHQUFHLEdBQUdBLElBQUlxZ0IsRUFBRXJnQixHQUFHLEVBQUUsSUFBSVEsRUFBRSxFQUFFQSxFQUFFekIsRUFBRXlCLElBQUk2ZixFQUFFOVEsRUFBRXlRLEVBQUV4ZixNQUFNLElBQUlZLEVBQUUySixFQUFFNUosRUFBRSxHQUFHQSxHQUFHLEdBQUcsR0FBR2tmLEVBQUVsZixHQUFHQSxLQUFLLEdBQUdDLEVBQUVELElBQUlDLEVBQUVELEdBQUcsR0FBR0EsRUFBRSxPQUFPb0IsRUFBRSxDQUFDK2QsR0FBRyxHQUFHQyxLQUFLLEVBQUVDLElBQUksR0FBR04sRUFBRTFRLEtBQUtqTixFQUFFMmQsRUFBRTFRLEtBQUtqTixFQUFFbkUsR0FBRytnQixNQUFNN2dCLEVBQUVxaEIsU0FBUyxFQUFFcmhCLEVBQUVzaEIsUUFBUSxFQUFFdGhCLEVBQUVvaEIsS0FBS2xRLEVBQUUsRUFBRSxJQUFJL08sRUFBRSxFQUFFQSxFQUFFVSxHQUFHLEdBQUdrZixFQUFFNWYsR0FBR0EsS0FBSyxJQUFJVyxFQUFFWCxJQUFJVyxFQUFFWCxHQUFHb0IsRUFBRSxFQUFFN0IsRUFBRSxFQUFFQSxHQUFHLEdBQUdBLElBQUksR0FBRzZCLElBQUksR0FBR0EsR0FBR3dlLEVBQUVyZ0IsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHNkIsRUFBRSxJQUFJekQsR0FBRzZnQixPQUFPLEdBQUc5ZCxHQUFHLE9BQU83QyxFQUFFb2hCLEtBQUtsUSxHQUFHLEVBQUUsSUFBSW1JLEVBQUUsR0FBRyxFQUFFM1gsRUFBRSxFQUFFQSxFQUFFLEdBQUdBLElBQUkyWCxFQUFFM1gsRUFBRSxHQUFHMlgsRUFBRTNYLEdBQUdxZ0IsRUFBRXJnQixHQUFHLElBQUlRLEVBQUUsRUFBRUEsRUFBRXpCLEVBQUV5QixJQUFJLEdBQUcrTyxFQUFFeVEsRUFBRXhmLEtBQUtxZixFQUFFbEksRUFBRXBJLEVBQUV5USxFQUFFeGYsT0FBT0EsR0FBRyxPQUFPcEMsR0FBRyxLQUFLNmdCLE1BQU12YyxFQUFFRSxFQUFFaWQsRUFBRWxkLEVBQUUsRUFBRThjLEVBQUUsRUFBRWpKLEVBQUUsR0FBRyxNQUFNLEtBQUswSSxLQUFLeGMsRUFBRTBjLG9CQUFvQnpjLEdBQUcsSUFBSUMsRUFBRXljLG1CQUFtQkksR0FBRyxJQUFJakosRUFBRSxJQUFJLE1BQU0sUUFBUTlULEVBQUU0YyxvQkFBb0IxYyxFQUFFMmMsbUJBQW1CNWMsRUFBRSxFQUFFOGMsRUFBRSxFQUFFakosR0FBRyxFQUFFLEdBQUd6VSxFQUFFLEVBQUV2QixFQUFFLEVBQUVSLEVBQUVTLEVBQUVnQyxFQUFFK00sRUFBRTdOLEVBQUVQLEVBQUVRLEVBQUUsRUFBRU8sR0FBRyxFQUFFRSxHQUFHUCxFQUFFLEdBQUdWLEdBQUcsRUFBRWhELEdBQUc4Z0IsTUFBTXBkLEdBQUdnZCxhQUFhMWdCLEdBQUcrZ0IsT0FBT3JkLEdBQUdpZCxhQUFhLE9BQU96Z0IsRUFBRW9oQixLQUFLbFEsRUFBRSxFQUFFLE9BQU8sQ0FBQ2pOLEVBQUUsQ0FBQytkLEdBQUcsRUFBRUMsS0FBS3ZnQixFQUFFNEIsRUFBRTRlLElBQUksR0FBR1gsRUFBRXJmLEdBQUdnVyxFQUFFalUsRUFBRWllLElBQUlYLEVBQUVyZixHQUFHcWYsRUFBRXJmLEdBQUdnVyxHQUFHalUsRUFBRStkLEdBQUcxZCxFQUFFNmMsRUFBRUksRUFBRXJmLElBQUkrQixFQUFFaWUsSUFBSTlkLEVBQUVDLEVBQUVrZCxFQUFFcmYsS0FBSytCLEVBQUUrZCxHQUFHLEdBQUd0ZSxFQUFFLEdBQUdoQyxFQUFFNEIsRUFBRW5CLEVBQUV3QixFQUFFLEdBQUdOLEVBQUUsR0FBR3VlLEVBQUV6ZCxHQUFHVixJQUFJSCxJQUFJSyxHQUFHRCxJQUFJTyxRQUFRLEdBQUdOLEdBQUcsSUFBSUQsRUFBRSxHQUFHaEMsRUFBRSxFQUFFK0IsRUFBRUMsR0FBR0EsS0FBSyxFQUFFLEdBQUcsR0FBR0EsR0FBR0QsR0FBR0MsRUFBRSxFQUFFRCxHQUFHQyxHQUFHRCxFQUFFLEVBQUV2QixJQUFJLEtBQUs2ZixFQUFFcmdCLEdBQUcsQ0FBQyxHQUFHQSxHQUFHbUIsRUFBRSxNQUFNbkIsRUFBRXVQLEVBQUV5USxFQUFFSCxFQUFFcmYsSUFBSSxHQUFHUixFQUFFb0IsSUFBSVcsRUFBRU0sSUFBSUYsRUFBRSxDQUFDLElBQUksR0FBR1AsSUFBSUEsRUFBRVIsR0FBR3FCLEdBQUdoQyxFQUFFb0IsRUFBRSxJQUFJRixFQUFFM0IsRUFBRTRCLEdBQUdELEVBQUVDLEVBQUVULE1BQU1VLEdBQUd3ZSxFQUFFMWUsRUFBRUMsS0FBSyxJQUFJRCxJQUFJRSxJQUFJLEVBQUUsR0FBR0MsR0FBRyxHQUFHSCxFQUFFdkQsR0FBRzhnQixNQUFNcGQsR0FBR2dkLGFBQWExZ0IsR0FBRytnQixPQUFPcmQsR0FBR2lkLGFBQWEsT0FBT3pnQixFQUFFb2hCLEtBQUtsUSxFQUFFLEVBQUUwUSxFQUFFMVEsR0FBR3JOLEVBQUVKLEVBQUVNLElBQUksQ0FBQ2llLEdBQUczZSxFQUFFNGUsS0FBS25mLEVBQUVvZixJQUFJL2QsRUFBRStNLElBQUksT0FBTyxHQUFHek4sSUFBSW1lLEVBQUV6ZCxFQUFFVixHQUFHLENBQUN1ZSxHQUFHLEdBQUdDLEtBQUt2Z0IsRUFBRTRCLEVBQUU0ZSxJQUFJLElBQUlsaUIsRUFBRW9oQixLQUFLbFEsRUFBRTFOLEVBQUUxRCxHQUFHK2dCLE1BQU03Z0IsRUFBRXFoQixTQUFTdmUsRUFBRTlDLEVBQUVzaEIsUUFBUXhlLEVBQUUsRUFBRSxTQUFTcWYsYUFBYW5pQixFQUFFRixHQUFHLElBQUlXLEVBQUVpQixFQUFFUSxFQUFFQyxFQUFFVSxFQUFFQyxFQUFFTyxFQUFFQyxFQUFFQyxFQUFFQyxFQUFFQyxFQUFFQyxFQUFFQyxFQUFFRSxFQUFFRSxFQUFFRSxFQUFFRSxFQUFFQyxFQUFFQyxFQUFFQyxFQUFFNmMsRUFBRWpKLEVBQUVoSCxHQUFHLEVBQUV6RSxHQUFHLEVBQUVoTSxFQUFFVCxFQUFFbUYsTUFBTXpELEVBQUUxQixFQUFFcWQsV0FBV2xiLEdBQUdELEVBQUVsQyxFQUFFNGMsU0FBUzVjLEVBQUU2YyxTQUFTLEVBQUUvWixHQUFHRCxFQUFFN0MsRUFBRStjLFdBQVdqZCxFQUFFRSxFQUFFZ2QsV0FBVzNaLEVBQUVSLEdBQUc3QyxFQUFFZ2QsVUFBVSxLQUFLMVosRUFBRTdDLEVBQUUyaEIsTUFBTTdlLEVBQUU5QyxFQUFFNGhCLE1BQU03ZSxFQUFFL0MsRUFBRTZoQixNQUFNN2UsRUFBRWhELEVBQUVrSSxPQUFPakYsRUFBRWpELEVBQUU4aEIsS0FBSzVlLEVBQUVsRCxFQUFFd2hCLEtBQUtwZSxFQUFFcEQsRUFBRW9oQixNQUFNOWQsRUFBRXRELEVBQUUraEIsUUFBUXZlLEVBQUV4RCxFQUFFZ2lCLFNBQVN0ZSxHQUFHLEdBQUcxRCxFQUFFNmdCLFNBQVMsRUFBRWxkLEdBQUcsR0FBRzNELEVBQUU0Z0IsVUFBVSxFQUFFcmhCLEVBQUUsRUFBRSxDQUFDMkQsRUFBRSxLQUFLRCxJQUFJLElBQUloQyxFQUFFZCxXQUFXc0IsT0FBT3lCLEVBQUVBLEdBQUcsRUFBRUQsSUFBSSxJQUFJaEMsRUFBRWQsV0FBV3NCLE9BQU95QixFQUFFQSxHQUFHLEdBQUdVLEVBQUVSLEVBQUVFLEdBQUdMLEVBQUVTLElBQUlyRSxFQUFFLE9BQU8sQ0FBQyxHQUFHNEQsS0FBS1ksRUFBRUQsRUFBRTRkLEtBQUt0ZSxHQUFHVyxFQUFFLElBQUlBLEVBQUVELEVBQUUyZCxJQUFJaGlCLEVBQUVzZCxhQUFhemMsT0FBT0MsYUFBYXVELEVBQUU2ZCxLQUFLcmYsUUFBUSxDQUFDLEtBQUssR0FBR3lCLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBR0EsR0FBRyxDQUFDRCxFQUFFUixFQUFFRSxHQUFHTSxFQUFFNmQsS0FBS3hlLEdBQUcsR0FBR1ksR0FBRyxLQUFLLFNBQVN4RSxFQUFFLEdBQUcsR0FBR3dFLEVBQUUsQ0FBQzdELEVBQUVpaUIsS0FBS3ZELEtBQUssTUFBTW5mLEVBQUVBLEVBQUVrZCxJQUFJLDhCQUE4QnpjLEVBQUVpaUIsS0FBS3JDLElBQUksTUFBTXJnQixFQUFFbWhCLEVBQUU5YyxFQUFFNmQsS0FBSzVkLEdBQUcsTUFBTVgsRUFBRVcsSUFBSVosSUFBSSxJQUFJaEMsRUFBRWQsV0FBV3NCLE9BQU95QixFQUFFQSxHQUFHLEdBQUd3ZCxHQUFHemQsR0FBRyxHQUFHWSxHQUFHLEVBQUVaLEtBQUtZLEVBQUVYLEdBQUdXLEdBQUdYLEVBQUUsS0FBS0QsSUFBSSxJQUFJaEMsRUFBRWQsV0FBV3NCLE9BQU95QixFQUFFQSxHQUFHLEVBQUVELElBQUksSUFBSWhDLEVBQUVkLFdBQVdzQixPQUFPeUIsRUFBRUEsR0FBRyxHQUFHVSxFQUFFUixFQUFFSSxHQUFHUCxFQUFFVSxJQUFJM0QsRUFBRSxPQUFPLENBQUMsR0FBR2lELEtBQUtZLEVBQUVELEVBQUU0ZCxLQUFLdGUsR0FBR1csSUFBSSxJQUFJQSxFQUFFRCxFQUFFMmQsS0FBSyxDQUFDLEdBQUcsSUFBSSxHQUFHMWQsR0FBRyxDQUFDRCxFQUFFUixFQUFFSSxHQUFHSSxFQUFFNmQsS0FBS3hlLEdBQUcsR0FBR1ksR0FBRyxLQUFLLFNBQVM3RCxFQUFFVCxFQUFFa2QsSUFBSSx3QkFBd0J6YyxFQUFFaWlCLEtBQUtyQyxJQUFJLE1BQU1yZ0IsRUFBRSxHQUFHa1ksRUFBRTdULEVBQUU2ZCxJQUFJdmUsR0FBR1csR0FBRyxNQUFNWixJQUFJLElBQUloQyxFQUFFZCxXQUFXc0IsT0FBT3lCLEdBQUdBLEdBQUcsR0FBR1csSUFBSVosSUFBSSxJQUFJaEMsRUFBRWQsV0FBV3NCLE9BQU95QixFQUFFQSxHQUFHLElBQUl1VSxHQUFHeFUsR0FBRyxHQUFHWSxHQUFHLEVBQUVaLEtBQUtZLEVBQUVYLEdBQUdXLEVBQUU0VCxHQUFHNVQsRUFBRXpCLEVBQUVDLEdBQUcsQ0FBQyxJQUFJd0IsRUFBRTRULEVBQUU1VCxHQUFHZixHQUFHOUMsRUFBRWtpQixLQUFLLENBQUMzaUIsRUFBRWtkLElBQUksZ0NBQWdDemMsRUFBRWlpQixLQUFLckMsSUFBSSxNQUFNcmdCLEVBQUVrUixFQUFFLEVBQUV6RSxHQUFHLEVBQUUsR0FBR2pKLEdBQUcwTixHQUFHNU4sRUFBRWdCLEVBQUVBLEVBQUU2YyxJQUFJQSxHQUFHN2MsRUFBRXRFLEVBQUVzZCxhQUFhN1osRUFBRXFGLFVBQVVvSSxFQUFFQSxFQUFFNU0sR0FBR3pCLEdBQUd5QixFQUFFQSxFQUFFLEVBQUU0TSxHQUFHLEVBQUV6RSxFQUFFNUosRUFBRXFWLEtBQUtoSCxHQUFHMU4sRUFBRWMsRUFBRUEsRUFBRTZjLElBQUlBLEdBQUc3YyxFQUFFdEUsRUFBRXNkLGFBQWE3WixFQUFFcUYsVUFBVW9JLEVBQUVBLEVBQUU1TSxHQUFHNE0sR0FBRyxFQUFFekUsR0FBRzVKLEdBQUd5QixHQUFHNFQsU0FBU2hILEdBQUcsRUFBRXpFLEVBQUU1SixFQUFFcVYsRUFBRSxHQUFHaEgsR0FBRyxFQUFFbFIsRUFBRXNkLGFBQWE3WixFQUFFcUYsVUFBVW9JLEVBQUVBLEVBQUVpUSxHQUFHdGUsR0FBR3NlLEVBQUVqUSxHQUFHaVEsTUFBTSxDQUFDLElBQUlJLEVBQUVKLEVBQUUsSUFBSUksRUFBRTFlLEVBQUU0SixJQUFJOFUsRUFBRTFlLEVBQUU0SixHQUFHek0sRUFBRXNkLGFBQWF0ZCxFQUFFc2QsWUFBWXhVLFVBQVUyRCxFQUFFQSxFQUFFOFUsR0FBRzFlLEdBQUcwZSxFQUFFOVUsR0FBRzhVLEVBQUUxZSxHQUFHc2UsR0FBR0ksRUFBRUosRUFBRSxHQUFHbmhCLEVBQUVzZCxhQUFhdGQsRUFBRXNkLFlBQVlsYixPQUFPcUssS0FBS3pNLEVBQUVzZCxhQUFhdGQsRUFBRXNkLFlBQVlsYixPQUFPcUssS0FBS3pNLEVBQUVzZCxhQUFhdGQsRUFBRXNkLFlBQVlsYixPQUFPcUssS0FBSzBVLEdBQUcsRUFBRUEsSUFBSW5oQixFQUFFc2QsYUFBYXRkLEVBQUVzZCxZQUFZbGIsT0FBT3FLLEtBQUswVSxFQUFFLElBQUluaEIsRUFBRXNkLGFBQWF0ZCxFQUFFc2QsWUFBWWxiLE9BQU9xSyxPQUFPLE1BQU1oTSxHQUFHLE1BQU1YLFNBQVNvQyxFQUFFQyxHQUFHVSxFQUFFUSxHQUFHbkIsR0FBR2lmLEVBQUV4ZCxJQUFJLEVBQUVELElBQUksSUFBSUMsR0FBR3dkLEdBQUcsSUFBSSxFQUFFbmhCLEVBQUU0YyxRQUFRMWEsRUFBRWxDLEVBQUUrYyxTQUFTbGEsRUFBRTdDLEVBQUU2YyxTQUFTM2EsRUFBRUMsRUFBRUEsRUFBRUQsRUFBRSxFQUFFLEdBQUdBLEVBQUVDLEdBQUduQyxFQUFFZ2QsVUFBVW5hLEVBQUVRLEVBQUVBLEVBQUVSLEVBQUUsSUFBSSxLQUFLQSxFQUFFUSxHQUFHNUMsRUFBRThoQixLQUFLN2UsRUFBRWpELEVBQUV3aEIsS0FBS3RlLEVBQUUsU0FBU2lmLFVBQVU1aUIsR0FBRyxJQUFJRixFQUFFVyxFQUFFLElBQUl1QyxNQUFNaEQsR0FBRyxJQUFJRixFQUFFLEVBQUVBLEVBQUVFLEVBQUVGLElBQUlXLEVBQUVYLEdBQUcsRUFBRSxPQUFPVyxFQUFFLFNBQVNvaUIsT0FBTzdpQixFQUFFRixFQUFFVyxHQUFHLE9BQU9ULEdBQUdGLEtBQUtFLEVBQUVBLEVBQUVGLEdBQUdXLEVBQUUsU0FBU3FpQixnQkFBZ0IsT0FBTyxFQUFFLFNBQVNDLGdCQUFnQixJQUFJL2lCLEVBQUU4RSxLQUFLNGQsS0FBSyxFQUFFNWQsS0FBS2tlLEtBQUssRUFBRWxlLEtBQUttZSxLQUFLLEVBQUVuZSxLQUFLb2UsU0FBUyxFQUFFcGUsS0FBS3FlLE1BQU0sRUFBRXJlLEtBQUtzZSxLQUFLLEVBQUV0ZSxLQUFLdWUsTUFBTSxFQUFFdmUsS0FBS3dlLE1BQU0sRUFBRXhlLEtBQUt5ZSxLQUFLLEtBQUt6ZSxLQUFLMGUsTUFBTSxFQUFFMWUsS0FBS3NkLE1BQU0sRUFBRXRkLEtBQUt1ZCxNQUFNLEVBQUV2ZCxLQUFLd2QsTUFBTSxFQUFFeGQsS0FBSzZELE9BQU8sS0FBSzdELEtBQUt5ZCxLQUFLLEVBQUV6ZCxLQUFLbWQsS0FBSyxFQUFFbmQsS0FBS3BFLE9BQU8sRUFBRW9FLEtBQUsyZSxPQUFPLEVBQUUzZSxLQUFLK1ksTUFBTSxFQUFFL1ksS0FBSzBkLFFBQVEsRUFBRTFkLEtBQUsyZCxTQUFTLEVBQUUzZCxLQUFLd2MsUUFBUSxFQUFFeGMsS0FBS3VjLFNBQVMsRUFBRXZjLEtBQUs0ZSxNQUFNLEVBQUU1ZSxLQUFLNmMsS0FBSyxFQUFFN2MsS0FBS2dkLE1BQU0sRUFBRWhkLEtBQUs2ZSxLQUFLLEVBQUU3ZSxLQUFLc2MsS0FBSyxFQUFFdGMsS0FBSzJjLEtBQUttQixVQUFVLEtBQUs5ZCxLQUFLMGMsS0FBS29CLFVBQVUsS0FBSzlkLEtBQUsrYyxNQUFNLElBQUk3ZSxNQUFNMGQsUUFBUSxJQUFJNWdCLEVBQUUsQ0FBQ2tpQixHQUFHLEVBQUVDLEtBQUssRUFBRUMsSUFBSSxHQUFHLElBQUlsaUIsRUFBRSxFQUFFQSxFQUFFMGdCLE9BQU8xZ0IsSUFBSThFLEtBQUsrYyxNQUFNN2hCLEdBQUdGLEVBQUVnRixLQUFLNmQsS0FBSyxFQUFFN2QsS0FBSzhlLEtBQUssRUFBRTllLEtBQUsrZSxJQUFJLEVBQUV2SSxLQUFLd0ksa0JBQWtCLGlEQUFpRHhJLEtBQUt5SSxpQkFBaUIsU0FBUy9qQixHQUFHLElBQUlGLEVBQUUsT0FBT0UsR0FBR0EsRUFBRW1GLE9BQU9yRixFQUFFRSxFQUFFbUYsTUFBTW5GLEVBQUU4YyxTQUFTOWMsRUFBRWlkLFVBQVVuZCxFQUFFd2pCLE1BQU0sRUFBRXRqQixFQUFFa2QsSUFBSSxLQUFLcGQsRUFBRW1qQixPQUFPampCLEVBQUVvZCxNQUFNLEVBQUV0ZCxFQUFFbWpCLE1BQU1uakIsRUFBRTRpQixLQUFLbEUsS0FBSzFlLEVBQUVrakIsS0FBSyxFQUFFbGpCLEVBQUVvakIsU0FBUyxFQUFFcGpCLEVBQUVzakIsS0FBSyxNQUFNdGpCLEVBQUV5akIsS0FBSyxLQUFLempCLEVBQUV5aUIsS0FBSyxFQUFFemlCLEVBQUVtaUIsS0FBSyxFQUFFbmlCLEVBQUUwaUIsUUFBUSxFQUFFMWlCLEVBQUUyaUIsU0FBUyxFQUFFM2lCLEVBQUVzaEIsS0FBSyxFQUFFdGhCLEVBQUU2aUIsS0FBSyxFQUFFN2lCLEVBQUU4akIsTUFBTSxFQUFFdEksS0FBS1csTUFBTVgsS0FBS2UsZ0JBQWdCZixLQUFLNVUsYUFBYSxTQUFTMUcsRUFBRUYsR0FBRyxJQUFJVyxFQUFFaUIsRUFBRSxPQUFPMUIsR0FBR0EsRUFBRW1GLE9BQU96RCxFQUFFMUIsRUFBRW1GLFdBQU0sSUFBU3JGLElBQUlBLEVBQUV5ZSxXQUFXemUsRUFBRSxHQUFHVyxFQUFFLEVBQUVYLEdBQUdBLElBQUlXLEVBQUUsR0FBR1gsSUFBSSxHQUFHQSxFQUFFLEtBQUtBLEdBQUcsS0FBSyxHQUFHVyxHQUFHLG1CQUFtQjZhLEtBQUswSSxRQUFRaGtCLEVBQUV1ZCxrQkFBa0JqQyxLQUFLMEksUUFBUSxHQUFHdmpCLEdBQUcsbUJBQW1CNmEsS0FBSzJJLE1BQU1qa0IsRUFBRXVkLGtCQUFrQmpDLEtBQUsySSxNQUFNamtCLEVBQUV1ZCxrQkFBa0J1RixjQUFjaGpCLElBQUlBLEVBQUUsR0FBR0EsRUFBRSxJQUFJd2IsS0FBS2UsZ0JBQWdCM2EsRUFBRWlILFFBQVFqSCxFQUFFOGhCLE9BQU8xakIsSUFBSTRCLEVBQUVpSCxPQUFPLE1BQU1qSCxFQUFFdWhCLEtBQUt4aUIsRUFBRWlCLEVBQUU4aEIsTUFBTTFqQixFQUFFNEIsRUFBRTBnQixNQUFNLEVBQUUxZ0IsRUFBRTJnQixNQUFNLEVBQUUzZ0IsRUFBRTRnQixNQUFNLEVBQUVoSCxLQUFLeUksaUJBQWlCL2pCLEtBQUtzYixLQUFLZSxnQkFBZ0JmLEtBQUtyVyxZQUFZLFNBQVNqRixHQUFHLElBQUlGLEVBQUUsSUFBSXdiLEtBQUtxQixTQUFTLE9BQU83YyxFQUFFcUYsTUFBTSxJQUFJNGQsY0FBY3pILEtBQUs1VSxhQUFhNUcsRUFBRUUsR0FBR0YsR0FBR3diLEtBQUs0SSxhQUFhLFNBQVNsa0IsRUFBRUYsRUFBRVcsR0FBRyxJQUFJaUIsRUFBRSxPQUFPMUIsR0FBR0EsRUFBRW1GLE9BQU96RCxFQUFFMUIsRUFBRW1GLE1BQU1yRixFQUFFLEdBQUc0QixFQUFFNmdCLEtBQUssRUFBRTdnQixFQUFFdWdCLEtBQUssRUFBRTNHLEtBQUtXLE1BQU1uYyxFQUFFLElBQUk0QixFQUFFdWdCLEtBQUtuaUIsRUFBRSxHQUFHd2IsS0FBS2UsZ0JBQWdCNWIsSUFBSSxHQUFHWCxHQUFHLEVBQUU0QixFQUFFNmdCLE1BQU05aEIsR0FBR2lCLEVBQUV1Z0IsS0FBS3ZnQixFQUFFdWdCLE1BQU1uaUIsRUFBRXdiLEtBQUtXLE9BQU9YLEtBQUtlLGdCQUFnQixJQUFJOEgsV0FBVyxLQUFLQyxXQUFXLDBqV0FBMGpXQyxZQUFZLEtBQUtDLFlBQVksa3ZCQUFrdkIsU0FBU0MsWUFBWXBmLE9BQU8sSUFBSWhELEVBQUUsSUFBSWdpQixhQUFhQSxXQUFXSyxLQUFLSixhQUFhQyxjQUFjQSxZQUFZRyxLQUFLRixjQUFjbmYsTUFBTXFkLFFBQVEsRUFBRXJkLE1BQU1zZCxTQUFTLElBQUl0Z0IsRUFBRSxFQUFFQSxFQUFFLElBQUlBLElBQUlnRCxNQUFNMGMsTUFBTTFmLEdBQUdnaUIsV0FBV2hpQixHQUFHLElBQUlBLEVBQUUsRUFBRUEsRUFBRSxHQUFHQSxJQUFJZ0QsTUFBTTBjLE1BQU0xZixFQUFFLEtBQUtraUIsWUFBWWxpQixHQUFHZ0QsTUFBTW1jLFFBQVEsRUFBRW5jLE1BQU1rYyxTQUFTLEVBQUUsU0FBU29ELGFBQWF6a0IsR0FBRyxJQUFJRixFQUFFRSxFQUFFbUYsTUFBTTFFLEVBQUVULEVBQUVzZCxZQUFZNWMsT0FBTyxPQUFPLE9BQU9aLEVBQUU2SSxTQUFTN0ksRUFBRTZJLE9BQU8sSUFBSSxHQUFHN0ksRUFBRXNpQixRQUFRdGlCLEVBQUVzaUIsTUFBTSxHQUFHdGlCLEVBQUUwakIsT0FBTy9pQixHQUFHWCxFQUFFc2lCLE1BQU10aUIsRUFBRTZJLE9BQU8zSSxFQUFFc2QsWUFBWXhVLFVBQVVySSxFQUFFWCxFQUFFc2lCLE9BQU90aUIsRUFBRXVpQixNQUFNNWhCLEVBQUVYLEVBQUVzaUIsTUFBTXRpQixFQUFFNkksUUFBUTNJLEVBQUVzZCxZQUFZeGQsRUFBRTZJLE9BQU83SSxFQUFFNkksT0FBT0csVUFBVWhKLEVBQUV1aUIsT0FBT3ZpQixFQUFFc2lCLE1BQU0zaEIsSUFBSVQsRUFBRXNkLFlBQVl4ZCxFQUFFdWlCLE1BQU12aUIsRUFBRTZJLE9BQU9qSSxPQUFPWixFQUFFdWlCLE1BQU12aUIsRUFBRXNpQixNQUFNdGlCLEVBQUV3aUIsTUFBTXhpQixFQUFFdWlCLE1BQU12aUIsRUFBRXdpQixNQUFNLEVBQUUsRUFBRSxTQUFTb0MsS0FBSzFrQixFQUFFRixHQUFHLElBQUlXLEVBQUUsQ0FBQyxJQUFJWCxFQUFFQSxJQUFJLEVBQUUsS0FBS0UsRUFBRW1GLE1BQU1rZSxNQUFNcmpCLEVBQUV1ZCxrQkFBa0J2ZCxFQUFFbUYsTUFBTWtlLE1BQU01aUIsRUFBRSxFQUFFLEdBQUcsU0FBU2trQixLQUFLM2tCLEVBQUVGLEdBQUcsSUFBSVcsRUFBRSxDQUFDLElBQUlYLEVBQUVBLElBQUksRUFBRSxJQUFJQSxJQUFJLEdBQUcsSUFBSUEsSUFBSSxHQUFHLEtBQUtFLEVBQUVtRixNQUFNa2UsTUFBTXJqQixFQUFFdWQsa0JBQWtCdmQsRUFBRW1GLE1BQU1rZSxNQUFNNWlCLEVBQUUsRUFBRSxHQUFHLFNBQVNta0IsS0FBSzVrQixFQUFFRixHQUFHLE9BQU9BLEVBQUUra0IsS0FBSzdrQixFQUFFRixFQUFFZ2IsS0FBSzlhLEVBQUVnZCxVQUFVbGQsRUFBRXNoQixLQUFLcGhCLEVBQUU0YyxRQUFROWMsRUFBRTZqQixLQUFLM2pCLEVBQUU2YyxTQUFTL2MsRUFBRXlpQixLQUFLdmlCLEVBQUVtRixNQUFNb2QsS0FBS3ppQixFQUFFbWlCLEtBQUtqaUIsRUFBRW1GLE1BQU04YyxLQUFLbmlCLEVBQUUsU0FBU2dsQixRQUFROWtCLEdBQUcsSUFBSUYsRUFBRUUsRUFBRTZrQixLQUFLL2tCLEVBQUU4YyxRQUFRNWMsRUFBRW9oQixLQUFLdGhCLEVBQUVrZCxVQUFVaGQsRUFBRThhLEtBQUtoYixFQUFFK2MsU0FBUzdjLEVBQUUyakIsS0FBSzdqQixFQUFFcUYsTUFBTW9kLEtBQUt2aUIsRUFBRXVpQixLQUFLemlCLEVBQUVxRixNQUFNOGMsS0FBS2ppQixFQUFFaWlCLEtBQUssU0FBUzhDLFNBQVMva0IsR0FBR0EsRUFBRXVpQixLQUFLLEVBQUV2aUIsRUFBRWlpQixLQUFLLEVBQUUsU0FBUytDLFNBQVNobEIsR0FBRyxPQUFPLEdBQUdBLEVBQUUyakIsT0FBTzNqQixFQUFFMmpCLE9BQU8zakIsRUFBRXVpQixPQUFPLElBQUl2aUIsRUFBRTZrQixLQUFLeEgsV0FBV3pjLFdBQVdaLEVBQUVvaEIsVUFBVXBoQixFQUFFaWlCLEtBQUtqaUIsRUFBRWlpQixNQUFNLEdBQUUsR0FBSSxTQUFTZ0QsU0FBU2psQixFQUFFRixHQUFHLEtBQUtFLEVBQUVpaUIsS0FBS25pQixHQUFHLElBQUlrbEIsU0FBU2hsQixHQUFHLE9BQU0sRUFBRyxPQUFNLEVBQUcsU0FBU2tsQixLQUFLbGxCLEVBQUVGLEdBQUcsT0FBT0UsRUFBRXVpQixNQUFNLEdBQUd6aUIsR0FBRyxFQUFFLFNBQVNxbEIsU0FBU25sQixFQUFFRixHQUFHRSxFQUFFdWlCLFFBQVF6aUIsRUFBRUUsRUFBRWlpQixNQUFNbmlCLEVBQUUsU0FBU3NsQixTQUFTcGxCLEdBQUdBLEVBQUV1aUIsUUFBUSxFQUFFdmlCLEVBQUVpaUIsS0FBS2ppQixFQUFFaWlCLE1BQU0sRUFBRWppQixFQUFFaWlCLEtBQUssU0FBU29ELFFBQVFybEIsR0FBRyxPQUFPQSxJQUFJLEdBQUcsTUFBTUEsSUFBSSxFQUFFLFNBQVMsTUFBTUEsSUFBSSxLQUFLLElBQUlBLElBQUksSUFBSSxJQUFJc2xCLGNBQWMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJaEssS0FBS3RXLFFBQVEsU0FBU2hGLEVBQUVGLEdBQUcsSUFBSVcsRUFBRWlCLEVBQUVRLEVBQUVDLEVBQUVVLEVBQUVDLEVBQUVPLEVBQUVDLEVBQUVDLEVBQUVDLEdBQUcsRUFBRUMsR0FBRyxFQUFFLElBQUl6RCxJQUFJQSxFQUFFbUYsUUFBUW5GLEVBQUVxZCxZQUFZLEdBQUdyZCxFQUFFNmMsU0FBUyxPQUFPdkIsS0FBS2UsZ0JBQWdCNWIsRUFBRVQsRUFBRW1GLE9BQU91ZCxNQUFNdkQsT0FBTzFlLEVBQUVpaUIsS0FBS3RELFFBQVF3RixLQUFLNWtCLEVBQUUwQixFQUFFLElBQUlRLEVBQUVSLEVBQUVpaUIsS0FBS3hoQixFQUFFVCxFQUFFb1osS0FBS3ZYLEVBQUUrWCxLQUFLVyxLQUFLamMsRUFBRSxPQUFPLE9BQU9TLEVBQUVpaUIsTUFBTSxLQUFLbEUsS0FBSyxHQUFHLEdBQUcvZCxFQUFFd2lCLEtBQUssQ0FBQ3hpQixFQUFFaWlCLEtBQUt0RCxPQUFPLE1BQU0sSUFBSTZGLFNBQVN2akIsRUFBRSxJQUFJLE1BQU0xQixFQUFFLEdBQUcsRUFBRVMsRUFBRXdpQixNQUFNLE9BQU92aEIsRUFBRTZnQixLQUFLLENBQUM5aEIsRUFBRTRpQixNQUFNcmpCLEVBQUV1ZCxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsR0FBR21ILEtBQUsxa0IsRUFBRTBCLEVBQUU2Z0IsTUFBTXdDLFNBQVNyakIsR0FBR2pCLEVBQUVpaUIsS0FBS2pFLE1BQU0sTUFBTSxHQUFHaGUsRUFBRTBpQixNQUFNLEVBQUUsT0FBTzFpQixFQUFFOGlCLE9BQU85aUIsRUFBRThpQixLQUFLbEYsTUFBTSxLQUFLLEVBQUU1ZCxFQUFFd2lCLFNBQVNpQyxLQUFLeGpCLEVBQUUsSUFBSSxJQUFJQSxFQUFFNmdCLE9BQU8sSUFBSSxHQUFHLENBQUN2aUIsRUFBRWtkLElBQUkseUJBQXlCemMsRUFBRWlpQixLQUFLckMsSUFBSSxNQUFNLEdBQUc2RSxLQUFLeGpCLEVBQUUsSUFBSTRaLEtBQUtvQixXQUFXLENBQUMxYyxFQUFFa2QsSUFBSSw2QkFBNkJ6YyxFQUFFaWlCLEtBQUtyQyxJQUFJLE1BQU0sR0FBRzhFLFNBQVN6akIsRUFBRSxHQUFHNEIsRUFBRTRoQixLQUFLeGpCLEVBQUUsR0FBRyxFQUFFLEdBQUdqQixFQUFFK2lCLE1BQU0vaUIsRUFBRStpQixNQUFNbGdCLE9BQU8sR0FBR0EsRUFBRTdDLEVBQUUraUIsTUFBTSxDQUFDeGpCLEVBQUVrZCxJQUFJLHNCQUFzQnpjLEVBQUVpaUIsS0FBS3JDLElBQUksTUFBTTVmLEVBQUUyaUIsS0FBSyxHQUFHOWYsRUFBRXRELEVBQUVvZCxNQUFNM2MsRUFBRTRpQixNQUFNcmpCLEVBQUV1ZCxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsR0FBRzljLEVBQUVpaUIsS0FBSyxJQUFJaGhCLEVBQUU2Z0IsS0FBS3RELE9BQU9FLEtBQUs0RixTQUFTcmpCLEdBQUcsTUFBTSxLQUFLK2MsTUFBTSxJQUFJd0csU0FBU3ZqQixFQUFFLElBQUksTUFBTTFCLEVBQUUsR0FBR1MsRUFBRTBpQixNQUFNemhCLEVBQUU2Z0IsTUFBTSxJQUFJOWhCLEVBQUUwaUIsUUFBUTdILEtBQUtvQixXQUFXLENBQUMxYyxFQUFFa2QsSUFBSSw2QkFBNkJ6YyxFQUFFaWlCLEtBQUtyQyxJQUFJLE1BQU0sR0FBRyxNQUFNNWYsRUFBRTBpQixNQUFNLENBQUNuakIsRUFBRWtkLElBQUksMkJBQTJCemMsRUFBRWlpQixLQUFLckMsSUFBSSxNQUFNLE9BQU81ZixFQUFFOGlCLE9BQU85aUIsRUFBRThpQixLQUFLOUYsS0FBSy9iLEVBQUU2Z0IsT0FBTyxFQUFFLEdBQUcsSUFBSTloQixFQUFFMGlCLE9BQU91QixLQUFLMWtCLEVBQUUwQixFQUFFNmdCLE1BQU13QyxTQUFTcmpCLEdBQUdqQixFQUFFaWlCLEtBQUtoRSxLQUFLLEtBQUtBLEtBQUssSUFBSXVHLFNBQVN2akIsRUFBRSxJQUFJLE1BQU0xQixFQUFFLE9BQU9TLEVBQUU4aUIsT0FBTzlpQixFQUFFOGlCLEtBQUs3RixLQUFLaGMsRUFBRTZnQixNQUFNLElBQUk5aEIsRUFBRTBpQixPQUFPd0IsS0FBSzNrQixFQUFFMEIsRUFBRTZnQixNQUFNd0MsU0FBU3JqQixHQUFHakIsRUFBRWlpQixLQUFLL0QsR0FBRyxLQUFLQSxHQUFHLElBQUlzRyxTQUFTdmpCLEVBQUUsSUFBSSxNQUFNMUIsRUFBRSxPQUFPUyxFQUFFOGlCLE9BQU85aUIsRUFBRThpQixLQUFLNUYsT0FBTyxJQUFJamMsRUFBRTZnQixLQUFLOWhCLEVBQUU4aUIsS0FBSzNGLEdBQUdsYyxFQUFFNmdCLE9BQU8sR0FBRyxJQUFJOWhCLEVBQUUwaUIsT0FBT3VCLEtBQUsxa0IsRUFBRTBCLEVBQUU2Z0IsTUFBTXdDLFNBQVNyakIsR0FBR2pCLEVBQUVpaUIsS0FBSzlELE1BQU0sS0FBS0EsTUFBTSxHQUFHLEtBQUtuZSxFQUFFMGlCLE1BQU0sQ0FBQyxJQUFJOEIsU0FBU3ZqQixFQUFFLElBQUksTUFBTTFCLEVBQUVTLEVBQUVDLE9BQU9nQixFQUFFNmdCLEtBQUssT0FBTzloQixFQUFFOGlCLE9BQU85aUIsRUFBRThpQixLQUFLekYsVUFBVXBjLEVBQUU2Z0IsTUFBTSxJQUFJOWhCLEVBQUUwaUIsT0FBT3VCLEtBQUsxa0IsRUFBRTBCLEVBQUU2Z0IsTUFBTXdDLFNBQVNyakIsR0FBR2pCLEVBQUU4aUIsS0FBSzFGLE1BQU0sUUFBUSxPQUFPcGQsRUFBRThpQixPQUFPOWlCLEVBQUU4aUIsS0FBSzFGLE1BQU0sTUFBTXBkLEVBQUVpaUIsS0FBSzdELE1BQU0sS0FBS0EsTUFBTSxHQUFHLEtBQUtwZSxFQUFFMGlCLFNBQVN0Z0IsRUFBRXBDLEVBQUVDLFFBQVFnQixFQUFFaWlCLE9BQU85Z0IsRUFBRW5CLEVBQUVpaUIsTUFBTTlnQixJQUFJLE9BQU9wQyxFQUFFOGlCLE1BQU0sT0FBTzlpQixFQUFFOGlCLEtBQUsxRixRQUFRdmEsRUFBRTdDLEVBQUU4aUIsS0FBS3pGLFVBQVVyZCxFQUFFQyxPQUFPRCxFQUFFOGlCLEtBQUsxRixPQUFPN2QsRUFBRXFkLFdBQVd2VSxVQUFVcEgsRUFBRTBmLEtBQUsxZixFQUFFMGYsTUFBTTlkLEVBQUVULEVBQUVwQyxFQUFFOGlCLEtBQUt4RixVQUFVdGQsRUFBRThpQixLQUFLeEYsVUFBVXphLEVBQUVULEtBQUssSUFBSXBDLEVBQUUwaUIsUUFBUTFpQixFQUFFNGlCLE1BQU1yakIsRUFBRXVkLGtCQUFrQjljLEVBQUU0aUIsTUFBTXJqQixFQUFFcWQsV0FBVzNiLEVBQUUwZixLQUFLdmUsSUFBSW5CLEVBQUVpaUIsTUFBTTlnQixFQUFFbkIsRUFBRTBmLE1BQU12ZSxFQUFFcEMsRUFBRUMsUUFBUW1DLEdBQUdwQyxFQUFFQyxRQUFRLE1BQU1WLEVBQUVTLEVBQUVDLE9BQU8sRUFBRUQsRUFBRWlpQixLQUFLNUQsS0FBSyxLQUFLQSxLQUFLLEdBQUcsS0FBS3JlLEVBQUUwaUIsTUFBTSxDQUFDLEdBQUcsR0FBR3poQixFQUFFaWlCLEtBQUssTUFBTTNqQixFQUFFLE9BQU9TLEVBQUU4aUIsTUFBTSxPQUFPOWlCLEVBQUU4aUIsS0FBS3ZGLE9BQU92ZCxFQUFFOGlCLEtBQUt2RixLQUFLLElBQUluYixFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUdTLEVBQUV0RCxFQUFFcWQsV0FBV2piLE9BQU9WLEVBQUUwZixLQUFLdmUsR0FBR0EsSUFBSSxPQUFPUyxFQUFFLE1BQU0sT0FBTzdDLEVBQUU4aUIsTUFBTTlpQixFQUFFQyxPQUFPRCxFQUFFOGlCLEtBQUt0RixXQUFXeGQsRUFBRThpQixLQUFLdkYsTUFBTTFhLEVBQUU3QyxFQUFFQyxnQkFBZ0JtQyxFQUFFbkIsRUFBRWlpQixNQUFNLEdBQUcsSUFBSWxqQixFQUFFMGlCLFFBQVExaUIsRUFBRTRpQixNQUFNcmpCLEVBQUV1ZCxrQkFBa0I5YyxFQUFFNGlCLE1BQU1yakIsRUFBRXFkLFdBQVczYixFQUFFMGYsS0FBS3ZlLElBQUluQixFQUFFaWlCLE1BQU05Z0IsRUFBRW5CLEVBQUUwZixNQUFNdmUsRUFBRSxPQUFPUyxFQUFFLE1BQU10RCxPQUFPLE9BQU9TLEVBQUU4aUIsT0FBTzlpQixFQUFFOGlCLEtBQUt2RixLQUFLLE1BQU12ZCxFQUFFQyxPQUFPLEVBQUVELEVBQUVpaUIsS0FBSzNELFFBQVEsS0FBS0EsUUFBUSxHQUFHLEtBQUt0ZSxFQUFFMGlCLE1BQU0sQ0FBQyxHQUFHLEdBQUd6aEIsRUFBRWlpQixLQUFLLE1BQU0zakIsRUFBRTZDLEVBQUUsRUFBRSxPQUFPcEMsRUFBRThpQixNQUFNLE9BQU85aUIsRUFBRThpQixLQUFLckYsVUFBVXpkLEVBQUU4aUIsS0FBS3JGLFFBQVEsSUFBSSxFQUFFLENBQUMsR0FBRzVhLEVBQUV0RCxFQUFFcWQsV0FBV2piLE9BQU9WLEVBQUUwZixLQUFLdmUsR0FBR0EsSUFBSSxPQUFPUyxFQUFFLE1BQU0sT0FBTzdDLEVBQUU4aUIsTUFBTTlpQixFQUFFQyxPQUFPRCxFQUFFOGlCLEtBQUtwRixXQUFXMWQsRUFBRThpQixLQUFLckYsU0FBUzVhLEVBQUU3QyxFQUFFQyxnQkFBZ0JtQyxFQUFFbkIsRUFBRWlpQixNQUFNLEdBQUcsSUFBSWxqQixFQUFFMGlCLFFBQVExaUIsRUFBRTRpQixNQUFNcmpCLEVBQUV1ZCxrQkFBa0I5YyxFQUFFNGlCLE1BQU1yakIsRUFBRXFkLFdBQVczYixFQUFFMGYsS0FBS3ZlLElBQUluQixFQUFFaWlCLE1BQU05Z0IsRUFBRW5CLEVBQUUwZixNQUFNdmUsRUFBRSxPQUFPUyxFQUFFLE1BQU10RCxPQUFPLE9BQU9TLEVBQUU4aUIsT0FBTzlpQixFQUFFOGlCLEtBQUtyRixRQUFRLE1BQU16ZCxFQUFFaWlCLEtBQUsxRCxLQUFLLEtBQUtBLEtBQUssR0FBRyxJQUFJdmUsRUFBRTBpQixNQUFNLENBQUMsSUFBSThCLFNBQVN2akIsRUFBRSxJQUFJLE1BQU0xQixFQUFFLEdBQUcwQixFQUFFNmdCLE9BQU8sTUFBTTloQixFQUFFNGlCLE9BQU8sQ0FBQ3JqQixFQUFFa2QsSUFBSSxzQkFBc0J6YyxFQUFFaWlCLEtBQUtyQyxJQUFJLE1BQU0wRSxTQUFTcmpCLEdBQUcsT0FBT2pCLEVBQUU4aUIsT0FBTzlpQixFQUFFOGlCLEtBQUtuRixLQUFLM2QsRUFBRTBpQixRQUFRLEVBQUUsRUFBRTFpQixFQUFFOGlCLEtBQUtsRixLQUFLLEdBQUdyZSxFQUFFb2QsTUFBTTNjLEVBQUU0aUIsTUFBTXJqQixFQUFFdWQsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLEdBQUc5YyxFQUFFaWlCLEtBQUt2RCxLQUFLLE1BQU0sS0FBS0YsT0FBTyxJQUFJZ0csU0FBU3ZqQixFQUFFLElBQUksTUFBTTFCLEVBQUVBLEVBQUVvZCxNQUFNM2MsRUFBRTRpQixNQUFNZ0MsUUFBUTNqQixFQUFFNmdCLE1BQU13QyxTQUFTcmpCLEdBQUdqQixFQUFFaWlCLEtBQUt4RCxLQUFLLEtBQUtBLEtBQUssR0FBRyxHQUFHemUsRUFBRXlpQixTQUFTLE9BQU80QixRQUFRcGpCLEdBQUc0WixLQUFLYSxZQUFZbmMsRUFBRW9kLE1BQU0zYyxFQUFFNGlCLE1BQU1yakIsRUFBRXVkLGtCQUFrQixFQUFFLEtBQUssRUFBRSxHQUFHOWMsRUFBRWlpQixLQUFLdkQsS0FBSyxLQUFLQSxLQUFLLEdBQUdyZixHQUFHd2IsS0FBS1MsU0FBU2pjLEdBQUd3YixLQUFLVSxRQUFRLE1BQU1oYyxFQUFFLEtBQUtvZixPQUFPLEdBQUczZSxFQUFFdWlCLEtBQUssQ0FBQ29DLFNBQVMxakIsR0FBR2pCLEVBQUVpaUIsS0FBS3hDLE1BQU0sTUFBTSxJQUFJK0UsU0FBU3ZqQixFQUFFLEdBQUcsTUFBTTFCLEVBQUUsT0FBT1MsRUFBRXVpQixLQUFLa0MsS0FBS3hqQixFQUFFLEdBQUd5akIsU0FBU3pqQixFQUFFLEdBQUd3akIsS0FBS3hqQixFQUFFLElBQUksS0FBSyxFQUFFakIsRUFBRWlpQixLQUFLckQsT0FBTyxNQUFNLEtBQUssRUFBRSxHQUFHa0YsWUFBWTlqQixHQUFHQSxFQUFFaWlCLEtBQUsvQyxLQUFLN2YsR0FBR3diLEtBQUtVLFFBQVEsQ0FBQ21KLFNBQVN6akIsRUFBRSxHQUFHLE1BQU0xQixFQUFFLE1BQU0sS0FBSyxFQUFFUyxFQUFFaWlCLEtBQUtsRCxNQUFNLE1BQU0sS0FBSyxFQUFFeGYsRUFBRWtkLElBQUkscUJBQXFCemMsRUFBRWlpQixLQUFLckMsSUFBSThFLFNBQVN6akIsRUFBRSxHQUFHLE1BQU0sS0FBSzJkLE9BQU8sR0FBRytGLFNBQVMxakIsSUFBSXVqQixTQUFTdmpCLEVBQUUsSUFBSSxNQUFNMUIsRUFBRSxJQUFJLE1BQU0wQixFQUFFNmdCLFFBQVE3Z0IsRUFBRTZnQixPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUN2aUIsRUFBRWtkLElBQUksK0JBQStCemMsRUFBRWlpQixLQUFLckMsSUFBSSxNQUFNLEdBQUc1ZixFQUFFQyxPQUFPLE1BQU1nQixFQUFFNmdCLEtBQUt3QyxTQUFTcmpCLEdBQUdqQixFQUFFaWlCLEtBQUtwRCxNQUFNeGYsR0FBR3diLEtBQUtVLFFBQVEsTUFBTWhjLEVBQUUsS0FBS3NmLE1BQU03ZSxFQUFFaWlCLEtBQUtuRCxLQUFLLEtBQUtBLEtBQUssR0FBRzFjLEVBQUVwQyxFQUFFQyxPQUFPLENBQUMsR0FBR21DLEVBQUVuQixFQUFFaWlCLE9BQU85Z0IsRUFBRW5CLEVBQUVpaUIsTUFBTTlnQixFQUFFbkIsRUFBRW9aLE9BQU9qWSxFQUFFbkIsRUFBRW9aLE1BQU0sR0FBR2pZLEVBQUUsTUFBTTdDLEVBQUVBLEVBQUVzZCxhQUFhdGQsRUFBRXFkLFdBQVd2VSxVQUFVcEgsRUFBRTBmLEtBQUsxZixFQUFFMGYsS0FBS3ZlLEdBQUc3QyxFQUFFK2MsVUFBVWxhLEVBQUVuQixFQUFFaWlCLE1BQU05Z0IsRUFBRW5CLEVBQUUwZixNQUFNdmUsRUFBRW5CLEVBQUVvWixNQUFNalksRUFBRXBDLEVBQUVDLFFBQVFtQyxFQUFFLE1BQU1wQyxFQUFFaWlCLEtBQUt2RCxLQUFLLE1BQU0sS0FBS0ssTUFBTSxJQUFJeUYsU0FBU3ZqQixFQUFFLElBQUksTUFBTTFCLEVBQUUsR0FBR1MsRUFBRWtoQixLQUFLdUQsS0FBS3hqQixFQUFFLEdBQUcsSUFBSXlqQixTQUFTempCLEVBQUUsR0FBR2pCLEVBQUVxaEIsTUFBTW9ELEtBQUt4akIsRUFBRSxHQUFHLEVBQUV5akIsU0FBU3pqQixFQUFFLEdBQUdqQixFQUFFaWpCLE1BQU13QixLQUFLeGpCLEVBQUUsR0FBRyxFQUFFeWpCLFNBQVN6akIsRUFBRSxHQUFHakIsRUFBRWtoQixLQUFLLEtBQUtsaEIsRUFBRXFoQixNQUFNLEdBQUcsQ0FBQzloQixFQUFFa2QsSUFBSSxzQ0FBc0N6YyxFQUFFaWlCLEtBQUtyQyxJQUFJLE1BQU01ZixFQUFFa2pCLEtBQUssRUFBRWxqQixFQUFFaWlCLEtBQUtqRCxRQUFRLEtBQUtBLFFBQVEsS0FBS2hmLEVBQUVrakIsS0FBS2xqQixFQUFFaWpCLE9BQU8sQ0FBQyxJQUFJdUIsU0FBU3ZqQixFQUFFLEdBQUcsTUFBTTFCLEVBQUUsSUFBSTBELEVBQUV3aEIsS0FBS3hqQixFQUFFLEdBQUdqQixFQUFFZ2hCLEtBQUs2RCxjQUFjN2tCLEVBQUVrakIsU0FBU2pnQixFQUFFeWhCLFNBQVN6akIsRUFBRSxHQUFHLEtBQUtqQixFQUFFa2pCLEtBQUssSUFBSWxqQixFQUFFZ2hCLEtBQUs2RCxjQUFjN2tCLEVBQUVrakIsU0FBUyxFQUFFLEdBQUdsakIsRUFBRTJnQixLQUFLLEVBQUUzZ0IsRUFBRStoQixRQUFRLEVBQUUvaEIsRUFBRTZnQixRQUFRLEVBQUUvZCxFQUFFMmQsY0FBY3pnQixFQUFFa2dCLE9BQU8sQ0FBQzNnQixFQUFFa2QsSUFBSSwyQkFBMkJ6YyxFQUFFaWlCLEtBQUtyQyxJQUFJLE1BQU01ZixFQUFFa2pCLEtBQUssRUFBRWxqQixFQUFFaWlCLEtBQUtoRCxTQUFTLEtBQUtBLFNBQVMsS0FBS2pmLEVBQUVrakIsS0FBS2xqQixFQUFFa2hCLEtBQUtsaEIsRUFBRXFoQixPQUFPLENBQUMsUUFBUWhmLEVBQUVyQyxFQUFFb2hCLE1BQU1waEIsRUFBRStoQixRQUFRMEMsS0FBS3hqQixFQUFFakIsRUFBRTZnQixXQUFXVyxNQUFNdmdCLEVBQUV1Z0IsT0FBTyxJQUFJK0MsU0FBU3RqQixHQUFHLE1BQU0xQixFQUFFLEdBQUc4QyxFQUFFb2YsSUFBSSxHQUFHaUQsU0FBU3pqQixFQUFFb0IsRUFBRW1mLE1BQU14aEIsRUFBRWdoQixLQUFLaGhCLEVBQUVrakIsUUFBUTdnQixFQUFFb2YsUUFBUSxDQUFDLEdBQUcsSUFBSXBmLEVBQUVvZixJQUFJLENBQUMsSUFBSStDLFNBQVN2akIsRUFBRW9CLEVBQUVtZixLQUFLLEdBQUcsTUFBTWppQixFQUFFLEdBQUdtbEIsU0FBU3pqQixFQUFFb0IsRUFBRW1mLE1BQU0sR0FBR3hoQixFQUFFa2pCLEtBQUssQ0FBQzNqQixFQUFFa2QsSUFBSSw0QkFBNEJ6YyxFQUFFaWlCLEtBQUtyQyxJQUFJLE1BQU0vYyxFQUFFN0MsRUFBRWdoQixLQUFLaGhCLEVBQUVrakIsS0FBSyxHQUFHOWdCLEVBQUUsRUFBRXFpQixLQUFLeGpCLEVBQUUsR0FBR3lqQixTQUFTempCLEVBQUUsUUFBUSxHQUFHLElBQUlvQixFQUFFb2YsSUFBSSxDQUFDLElBQUkrQyxTQUFTdmpCLEVBQUVvQixFQUFFbWYsS0FBSyxHQUFHLE1BQU1qaUIsRUFBRW1sQixTQUFTempCLEVBQUVvQixFQUFFbWYsTUFBTTNlLEVBQUUsRUFBRVQsRUFBRSxFQUFFcWlCLEtBQUt4akIsRUFBRSxHQUFHeWpCLFNBQVN6akIsRUFBRSxPQUFPLENBQUMsSUFBSXVqQixTQUFTdmpCLEVBQUVvQixFQUFFbWYsS0FBSyxHQUFHLE1BQU1qaUIsRUFBRW1sQixTQUFTempCLEVBQUVvQixFQUFFbWYsTUFBTTNlLEVBQUUsRUFBRVQsRUFBRSxHQUFHcWlCLEtBQUt4akIsRUFBRSxHQUFHeWpCLFNBQVN6akIsRUFBRSxHQUFHLEdBQUdqQixFQUFFa2pCLEtBQUs5Z0IsRUFBRXBDLEVBQUVraEIsS0FBS2xoQixFQUFFcWhCLE1BQU0sQ0FBQzloQixFQUFFa2QsSUFBSSw0QkFBNEJ6YyxFQUFFaWlCLEtBQUtyQyxJQUFJLE1BQU0sS0FBS3hkLEtBQUtwQyxFQUFFZ2hCLEtBQUtoaEIsRUFBRWtqQixRQUFRcmdCLEdBQUcsR0FBRzdDLEVBQUVpaUIsTUFBTXJDLElBQUksTUFBTSxHQUFHLEdBQUc1ZixFQUFFZ2hCLEtBQUssS0FBSyxDQUFDemhCLEVBQUVrZCxJQUFJLHVDQUF1Q3pjLEVBQUVpaUIsS0FBS3JDLElBQUksTUFBTSxHQUFHNWYsRUFBRTJnQixLQUFLLEVBQUUzZ0IsRUFBRStoQixRQUFRL2hCLEVBQUUyZ0IsS0FBSzNnQixFQUFFNmdCLFFBQVEsRUFBRS9kLEVBQUUyZCxjQUFjemdCLEVBQUVtZ0IsTUFBTSxDQUFDNWdCLEVBQUVrZCxJQUFJLDhCQUE4QnpjLEVBQUVpaUIsS0FBS3JDLElBQUksTUFBTSxHQUFHNWYsRUFBRWdpQixTQUFTaGlCLEVBQUUyZ0IsS0FBSzNnQixFQUFFNGdCLFNBQVMsRUFBRTlkLEVBQUUyZCxjQUFjemdCLEVBQUVvZ0IsT0FBTyxDQUFDN2dCLEVBQUVrZCxJQUFJLHdCQUF3QnpjLEVBQUVpaUIsS0FBS3JDLElBQUksTUFBTSxHQUFHNWYsRUFBRWlpQixLQUFLL0MsS0FBSzdmLEdBQUd3YixLQUFLVSxRQUFRLE1BQU1oYyxFQUFFLEtBQUsyZixLQUFLbGYsRUFBRWlpQixLQUFLOUMsSUFBSSxLQUFLQSxJQUFJLEdBQUdsZSxFQUFFaWlCLE1BQU0sR0FBR2ppQixFQUFFb1osTUFBTSxJQUFJLENBQUNnSyxRQUFRcGpCLEdBQUd5Z0IsYUFBYW5pQixFQUFFbUMsR0FBR3lpQixLQUFLNWtCLEVBQUUwQixHQUFHakIsRUFBRWlpQixNQUFNdkQsT0FBTzFlLEVBQUVtakIsTUFBTSxHQUFHLE1BQU0sSUFBSW5qQixFQUFFbWpCLEtBQUssS0FBSzlnQixFQUFFckMsRUFBRW9oQixNQUFNcGhCLEVBQUUraEIsUUFBUTBDLEtBQUt4akIsRUFBRWpCLEVBQUU2Z0IsV0FBV1csTUFBTXZnQixFQUFFdWdCLE9BQU8sSUFBSStDLFNBQVN0akIsR0FBRyxNQUFNMUIsRUFBRSxHQUFHOEMsRUFBRWtmLElBQUksSUFBSSxJQUFJbGYsRUFBRWtmLElBQUksQ0FBQyxJQUFJM2UsRUFBRVAsRUFBRUEsRUFBRXJDLEVBQUVvaEIsTUFBTXBoQixFQUFFK2hCLFFBQVFuZixFQUFFNmUsS0FBS2dELEtBQUt4akIsRUFBRTJCLEVBQUU0ZSxLQUFLNWUsRUFBRTJlLE1BQU0zZSxFQUFFNGUsU0FBUzVlLEVBQUU0ZSxLQUFLbmYsRUFBRW1mLE1BQU12Z0IsRUFBRXVnQixPQUFPLElBQUkrQyxTQUFTdGpCLEdBQUcsTUFBTTFCLEVBQUVtbEIsU0FBU3pqQixFQUFFMkIsRUFBRTRlLE1BQU14aEIsRUFBRW1qQixNQUFNdmdCLEVBQUU0ZSxLQUFLLEdBQUdrRCxTQUFTempCLEVBQUVvQixFQUFFbWYsTUFBTXhoQixFQUFFbWpCLE1BQU05Z0IsRUFBRW1mLEtBQUt4aEIsRUFBRUMsT0FBT29DLEVBQUVvZixJQUFJLEdBQUdwZixFQUFFa2YsR0FBRyxDQUFDdmhCLEVBQUVpaUIsS0FBS3pDLElBQUksTUFBTSxHQUFHLEdBQUduZCxFQUFFa2YsR0FBRyxDQUFDdmhCLEVBQUVtakIsTUFBTSxFQUFFbmpCLEVBQUVpaUIsS0FBS3ZELEtBQUssTUFBTSxHQUFHLEdBQUdyYyxFQUFFa2YsR0FBRyxDQUFDaGlCLEVBQUVrZCxJQUFJLDhCQUE4QnpjLEVBQUVpaUIsS0FBS3JDLElBQUksTUFBTTVmLEVBQUVvZCxNQUFNLEdBQUcvYSxFQUFFa2YsR0FBR3ZoQixFQUFFaWlCLEtBQUs3QyxPQUFPLEtBQUtBLE9BQU8sR0FBR3BmLEVBQUVvZCxNQUFNLENBQUMsSUFBSW9ILFNBQVN2akIsRUFBRWpCLEVBQUVvZCxPQUFPLE1BQU03ZCxFQUFFUyxFQUFFQyxRQUFRd2tCLEtBQUt4akIsRUFBRWpCLEVBQUVvZCxPQUFPc0gsU0FBU3pqQixFQUFFakIsRUFBRW9kLE9BQU9wZCxFQUFFbWpCLE1BQU1uakIsRUFBRW9kLE1BQU1wZCxFQUFFb2pCLElBQUlwakIsRUFBRUMsT0FBT0QsRUFBRWlpQixLQUFLNUMsS0FBSyxLQUFLQSxLQUFLLFFBQVFoZCxFQUFFckMsRUFBRW9oQixNQUFNcGhCLEVBQUVnaUIsU0FBU3lDLEtBQUt4akIsRUFBRWpCLEVBQUU0Z0IsWUFBWVksTUFBTXZnQixFQUFFdWdCLE9BQU8sSUFBSStDLFNBQVN0akIsR0FBRyxNQUFNMUIsRUFBRSxHQUFHLElBQUksSUFBSThDLEVBQUVrZixJQUFJLENBQUMsSUFBSTNlLEVBQUVQLEVBQUVBLEVBQUVyQyxFQUFFb2hCLE1BQU1waEIsRUFBRWdpQixTQUFTcGYsRUFBRTZlLEtBQUtnRCxLQUFLeGpCLEVBQUUyQixFQUFFNGUsS0FBSzVlLEVBQUUyZSxNQUFNM2UsRUFBRTRlLFNBQVM1ZSxFQUFFNGUsS0FBS25mLEVBQUVtZixNQUFNdmdCLEVBQUV1Z0IsT0FBTyxJQUFJK0MsU0FBU3RqQixHQUFHLE1BQU0xQixFQUFFbWxCLFNBQVN6akIsRUFBRTJCLEVBQUU0ZSxNQUFNeGhCLEVBQUVtakIsTUFBTXZnQixFQUFFNGUsS0FBSyxHQUFHa0QsU0FBU3pqQixFQUFFb0IsRUFBRW1mLE1BQU14aEIsRUFBRW1qQixNQUFNOWdCLEVBQUVtZixLQUFLLEdBQUduZixFQUFFa2YsR0FBRyxDQUFDaGlCLEVBQUVrZCxJQUFJLHdCQUF3QnpjLEVBQUVpaUIsS0FBS3JDLElBQUksTUFBTTVmLEVBQUVnakIsT0FBTzNnQixFQUFFb2YsSUFBSXpoQixFQUFFb2QsTUFBTSxHQUFHL2EsRUFBRWtmLEdBQUd2aEIsRUFBRWlpQixLQUFLM0MsUUFBUSxLQUFLQSxRQUFRLEdBQUd0ZixFQUFFb2QsTUFBTSxDQUFDLElBQUlvSCxTQUFTdmpCLEVBQUVqQixFQUFFb2QsT0FBTyxNQUFNN2QsRUFBRVMsRUFBRWdqQixRQUFReUIsS0FBS3hqQixFQUFFakIsRUFBRW9kLE9BQU9zSCxTQUFTempCLEVBQUVqQixFQUFFb2QsT0FBT3BkLEVBQUVtakIsTUFBTW5qQixFQUFFb2QsTUFBTXBkLEVBQUVpaUIsS0FBSzFDLE1BQU0sS0FBS0EsTUFBTSxHQUFHLEdBQUd0ZSxFQUFFb1osS0FBSyxNQUFNOWEsRUFBRSxHQUFHNkMsRUFBRVYsRUFBRVQsRUFBRW9aLEtBQUtyYSxFQUFFZ2pCLE9BQU81Z0IsRUFBRSxDQUFDLElBQUlBLEVBQUVwQyxFQUFFZ2pCLE9BQU81Z0IsR0FBR3BDLEVBQUU0aEIsT0FBTzVoQixFQUFFa2lCLEtBQUssQ0FBQzNpQixFQUFFa2QsSUFBSSxnQ0FBZ0N6YyxFQUFFaWlCLEtBQUtyQyxJQUFJLE1BQU14ZCxFQUFFcEMsRUFBRTZoQixPQUFPemYsR0FBR3BDLEVBQUU2aEIsTUFBTTllLEVBQUUvQyxFQUFFMmhCLE1BQU12ZixFQUFFWSxHQUFHLElBQUlELEVBQUUvQyxFQUFFNmhCLE1BQU16ZixFQUFFWSxHQUFHLEdBQUdaLEVBQUVwQyxFQUFFQyxTQUFTbUMsRUFBRXBDLEVBQUVDLGFBQWE4QyxHQUFHLEVBQUVDLEVBQUV6RCxFQUFFK2MsU0FBU3RjLEVBQUVnakIsT0FBTzVnQixFQUFFcEMsRUFBRUMsT0FBTyxHQUFHbUMsRUFBRW5CLEVBQUVvWixPQUFPalksRUFBRW5CLEVBQUVvWixNQUFNcFosRUFBRW9aLE1BQU1qWSxFQUFFcEMsRUFBRUMsUUFBUW1DLEVBQUVXLEdBQUcsRUFBRXhELEVBQUVzZCxhQUFhN2MsRUFBRWtJLE9BQU9HLFVBQVV0RixFQUFFQSxFQUFFWCxHQUFHN0MsRUFBRStjLFVBQVVsYSxFQUFFQSxFQUFFLE1BQU0sQ0FBQzdDLEVBQUUrYyxVQUFVbGEsRUFBRSxHQUFHN0MsRUFBRXNkLGFBQWF0ZCxFQUFFc2QsWUFBWWxiLE9BQU9xQixhQUFhWixHQUFHLEdBQUdwQyxFQUFFQyxTQUFTRCxFQUFFaWlCLEtBQUs5QyxLQUFLLE1BQU0sS0FBS0ssSUFBSSxHQUFHLEdBQUd2ZSxFQUFFb1osS0FBSyxNQUFNOWEsRUFBRUEsRUFBRXNkLGFBQWF6YyxPQUFPQyxhQUFhTCxFQUFFQyxRQUFRVixFQUFFK2MsV0FBV3JiLEVBQUVvWixPQUFPcmEsRUFBRWlpQixLQUFLOUMsSUFBSSxNQUFNLEtBQUtNLE1BQU0sR0FBR3pmLEVBQUV3aUIsS0FBSyxDQUFDLElBQUlnQyxTQUFTdmpCLEVBQUUsSUFBSSxNQUFNMUIsRUFBRSxHQUFHbUMsR0FBR1QsRUFBRW9aLEtBQUs5YSxFQUFFaWQsV0FBVzlhLEVBQUUxQixFQUFFNmlCLE9BQU9uaEIsRUFBRUEsSUFBSW5DLEVBQUVvZCxNQUFNM2MsRUFBRTRpQixNQUFNcmpCLEVBQUV1ZCxrQkFBa0I5YyxFQUFFNGlCLE1BQU1yakIsRUFBRXNkLFlBQVl0ZCxFQUFFc2QsWUFBWTVjLE9BQU95QixFQUFFQSxJQUFJQSxFQUFFVCxFQUFFb1osTUFBTXJhLEVBQUUwaUIsTUFBTXpoQixFQUFFNmdCLEtBQUs4QyxRQUFRM2pCLEVBQUU2Z0IsUUFBUTloQixFQUFFNGlCLE1BQU0sQ0FBQ3JqQixFQUFFa2QsSUFBSSx1QkFBdUJ6YyxFQUFFaWlCLEtBQUtyQyxJQUFJLE1BQU0wRSxTQUFTcmpCLEdBQUdqQixFQUFFaWlCLEtBQUt2QyxPQUFPLEtBQUtBLE9BQU8sR0FBRzFmLEVBQUV3aUIsTUFBTXhpQixFQUFFMGlCLE1BQU0sQ0FBQyxJQUFJOEIsU0FBU3ZqQixFQUFFLElBQUksTUFBTTFCLEVBQUUsR0FBRzBCLEVBQUU2Z0IsT0FBTyxXQUFXOWhCLEVBQUU2aUIsT0FBTyxDQUFDdGpCLEVBQUVrZCxJQUFJLHlCQUF5QnpjLEVBQUVpaUIsS0FBS3JDLElBQUksTUFBTTBFLFNBQVNyakIsR0FBR2pCLEVBQUVpaUIsS0FBS3RDLEtBQUssS0FBS0EsS0FBSzdjLEVBQUUrWCxLQUFLWSxhQUFhLE1BQU1sYyxFQUFFLEtBQUtxZ0IsSUFBSTljLEVBQUUrWCxLQUFLZ0IsYUFBYSxNQUFNdGMsRUFBRSxLQUFLc2dCLElBQUksT0FBT2hGLEtBQUtpQixZQUFZLEtBQUtnRSxLQUFLLFFBQVEsT0FBT2pGLEtBQUtlLGVBQWUsT0FBT3lJLFFBQVFwakIsSUFBSWpCLEVBQUUyaEIsT0FBT2pnQixHQUFHbkMsRUFBRWdkLFdBQVd2YyxFQUFFaWlCLEtBQUtyQyxNQUFNNWYsRUFBRWlpQixLQUFLeEMsT0FBT3BnQixHQUFHd2IsS0FBS1EsWUFBWTJJLGFBQWF6a0IsSUFBSVMsRUFBRWlpQixLQUFLcEMsSUFBSWhGLEtBQUtpQixjQUFjcmEsR0FBR2xDLEVBQUU2YyxTQUFTMWEsR0FBR25DLEVBQUVnZCxVQUFVaGQsRUFBRThjLFVBQVU1YSxFQUFFbEMsRUFBRWlkLFdBQVc5YSxFQUFFMUIsRUFBRTZpQixPQUFPbmhCLEVBQUUxQixFQUFFd2lCLE1BQU05Z0IsSUFBSW5DLEVBQUVvZCxNQUFNM2MsRUFBRTRpQixNQUFNcmpCLEVBQUV1ZCxrQkFBa0I5YyxFQUFFNGlCLE1BQU1yakIsRUFBRXNkLFlBQVksRUFBRXRkLEVBQUVzZCxZQUFZNWMsU0FBU1YsRUFBRW1kLFVBQVUxYyxFQUFFd2hCLE1BQU14aEIsRUFBRXVpQixLQUFLLEdBQUcsSUFBSXZpQixFQUFFaWlCLE1BQU12RCxLQUFLLElBQUksSUFBSTFlLEVBQUVpaUIsTUFBTS9DLE1BQU1sZixFQUFFaWlCLE1BQU1wRCxNQUFNLElBQUksSUFBSSxHQUFHcGQsR0FBRyxHQUFHQyxHQUFHckMsR0FBR3diLEtBQUtRLFdBQVd2WSxHQUFHK1gsS0FBS1csT0FBTzFZLEVBQUUrWCxLQUFLa0IsYUFBYWpaLElBQUkrWCxLQUFLaUssV0FBVyxTQUFTdmxCLEdBQUcsT0FBT0EsR0FBR0EsRUFBRW1GLE9BQU9uRixFQUFFbUYsTUFBTXdELE9BQU8sS0FBSzNJLEVBQUVtRixNQUFNLEtBQUttVyxLQUFLVyxNQUFNWCxLQUFLZSxnQkFBZ0JmLEtBQUtxQixTQUFTMVosVUFBVStCLFFBQVEsU0FBU2hGLEVBQUVGLEdBQUcsSUFBSVcsRUFBRWlCLEVBQUVvRCxLQUFLdVksV0FBV3JkLEVBQUU4RSxLQUFLOFgsUUFBUWlHLE9BQU8vaUIsRUFBRSxVQUFVLEdBQUdnRixLQUFLK1gsU0FBU2dHLE9BQU8vaUIsRUFBRSxXQUFXRSxFQUFFVSxPQUFPb0UsS0FBSzhYLFNBQVNuYyxFQUFFb2lCLE9BQU8vaUIsRUFBRSxRQUFRd2IsS0FBS00sY0FBY2xhLEVBQUVtaEIsT0FBTy9pQixFQUFFLGFBQWEsR0FBRyxJQUFJb0MsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHNEMsS0FBS2tZLFVBQVV0YixHQUFHLEVBQUVBLEVBQUUsTUFBTW9ELEtBQUt3WSxZQUFZLEdBQUd4WSxLQUFLaVksU0FBUyxFQUFFalksS0FBSzZGLE1BQU0yUSxLQUFLdFcsUUFBUUYsS0FBS3JFLEdBQUcsR0FBR3FFLEtBQUs2RixPQUFPMUQsUUFBUUMsSUFBSSxhQUFhcEMsS0FBSzZGLE9BQU9qSixHQUFHLEVBQUUsT0FBT29ELEtBQUt3WSxZQUFZLEdBQUdwYixHQUFHNEMsS0FBS3dZLFlBQVl4WSxLQUFLa1ksVUFBVSxFQUFFLFlBQVlsWSxLQUFLNkYsT0FBTzJRLEtBQUtXLE1BQU0sT0FBTy9aLEdBQUdvWixLQUFLcUIsU0FBUzFaLFVBQVV5RCxhQUFhLFNBQVMxRyxHQUFHLE9BQU9zYixLQUFLNVUsYUFBYTVCLEtBQUs5RSxJQUF0MDVCLFFBQTYwNUIsSUFBU3NiLE1BQU1nRCxNQUFNLDREQUE0RC9DLEtBQUssTUFBTUMsS0FBSyxLQUFLRixLQUFLMEksUUFBUSxTQUFTaGtCLEVBQUVGLEVBQUVXLEVBQUVpQixHQUFHLE1BQU0saUJBQWlCNUIsRUFBRSxTQUFTRSxFQUFFRixFQUFFVyxFQUFFaUIsR0FBRyxJQUFJUSxFQUFFQyxFQUFFLEdBQUdELEVBQUVsQyxJQUFJLEdBQUcsTUFBTUEsR0FBRyxNQUFNLEdBQUcwQixFQUFFLE9BQU8xQixHQUFHLElBQUlGLEVBQUVjLFdBQVdILEtBQUs4YSxPQUFPdmIsR0FBR3ViLE9BQU9yWixHQUFHbEMsSUFBSXViLE9BQU9yWixHQUFHcVosTUFBTXZiLEVBQUVrQyxHQUFHLEdBQUcsR0FBRyxPQUFPcEMsRUFBRSxPQUFPLEVBQUUsR0FBRzRCLEVBQUUsR0FBRyxDQUFDLEtBQUtBLEtBQUtRLEdBQUdsQyxHQUFHLElBQUlGLEVBQUVjLFdBQVdILEtBQUssT0FBT1QsR0FBR3ViLE9BQU92YixHQUFHdWIsTUFBTXZiLEdBQUdrQyxHQUFHcVosT0FBTyxHQUFHLEtBQUs3WixHQUFHOFosTUFBTSxDQUFDOVosR0FBRzhaLEtBQUtyWixFQUFFLElBQUksR0FBR0QsR0FBR2xDLEdBQUcsSUFBSUYsRUFBRWMsV0FBV0gsS0FBS3lCLEdBQUdsQyxHQUFHLElBQUlGLEVBQUVjLFdBQVdILEtBQUt5QixHQUFHbEMsR0FBRyxJQUFJRixFQUFFYyxXQUFXSCxLQUFLeUIsR0FBR2xDLEdBQUcsSUFBSUYsRUFBRWMsV0FBV0gsS0FBS3lCLEdBQUdsQyxHQUFHLElBQUlGLEVBQUVjLFdBQVdILEtBQUt5QixHQUFHbEMsR0FBRyxJQUFJRixFQUFFYyxXQUFXSCxLQUFLeUIsR0FBR2xDLEdBQUcsSUFBSUYsRUFBRWMsV0FBV0gsS0FBS3lCLEdBQUdsQyxHQUFHLElBQUlGLEVBQUVjLFdBQVdILEtBQUt5QixHQUFHbEMsR0FBRyxJQUFJRixFQUFFYyxXQUFXSCxLQUFLeUIsR0FBR2xDLEdBQUcsSUFBSUYsRUFBRWMsV0FBV0gsS0FBS3lCLEdBQUdsQyxHQUFHLElBQUlGLEVBQUVjLFdBQVdILEtBQUt5QixHQUFHbEMsR0FBRyxJQUFJRixFQUFFYyxXQUFXSCxLQUFLeUIsR0FBR2xDLEdBQUcsSUFBSUYsRUFBRWMsV0FBV0gsS0FBS3lCLEdBQUdsQyxHQUFHLElBQUlGLEVBQUVjLFdBQVdILEtBQUt5QixHQUFHbEMsR0FBRyxJQUFJRixFQUFFYyxXQUFXSCxLQUFLeUIsR0FBR2xDLEdBQUcsSUFBSUYsRUFBRWMsV0FBV0gsYUFBYTBCLEdBQUduQyxHQUFHdWIsS0FBS3JaLEdBQUdxWixLQUFLLEdBQUc3WixFQUFFLENBQUMsS0FBS0EsR0FBRyxJQUFJQSxHQUFHLEdBQUdRLEdBQUdsQyxHQUFHLElBQUlGLEVBQUVjLFdBQVdILEtBQUt5QixHQUFHbEMsR0FBRyxJQUFJRixFQUFFYyxXQUFXSCxLQUFLeUIsR0FBR2xDLEdBQUcsSUFBSUYsRUFBRWMsV0FBV0gsS0FBS3lCLEdBQUdsQyxHQUFHLElBQUlGLEVBQUVjLFdBQVdILEtBQUt5QixHQUFHbEMsR0FBRyxJQUFJRixFQUFFYyxXQUFXSCxLQUFLeUIsR0FBR2xDLEdBQUcsSUFBSUYsRUFBRWMsV0FBV0gsS0FBS3lCLEdBQUdsQyxHQUFHLElBQUlGLEVBQUVjLFdBQVdILEtBQUt5QixHQUFHbEMsR0FBRyxJQUFJRixFQUFFYyxXQUFXSCxLQUFLeUIsR0FBR2xDLEdBQUcsSUFBSUYsRUFBRWMsV0FBV0gsS0FBS3lCLEdBQUdsQyxHQUFHLElBQUlGLEVBQUVjLFdBQVdILEtBQUt5QixHQUFHbEMsR0FBRyxJQUFJRixFQUFFYyxXQUFXSCxLQUFLeUIsR0FBR2xDLEdBQUcsSUFBSUYsRUFBRWMsV0FBV0gsS0FBS3lCLEdBQUdsQyxHQUFHLElBQUlGLEVBQUVjLFdBQVdILEtBQUt5QixHQUFHbEMsR0FBRyxJQUFJRixFQUFFYyxXQUFXSCxLQUFLeUIsR0FBR2xDLEdBQUcsSUFBSUYsRUFBRWMsV0FBV0gsS0FBS3lCLEdBQUdsQyxHQUFHLElBQUlGLEVBQUVjLFdBQVdILEtBQUssS0FBS2lCLEtBQUtRLEdBQUdsQyxHQUFHLElBQUlGLEVBQUVjLFdBQVdILEtBQUtULEdBQUd1YixLQUFLclosR0FBR3FaLEtBQUssT0FBT3ZiLEVBQUVrQyxHQUFHLEdBQTd3QyxDQUFpeENsQyxFQUFFRixFQUFFVyxFQUFFaUIsR0FBRyxTQUFTMUIsRUFBRUYsRUFBRVcsRUFBRWlCLEdBQUcsSUFBSVEsRUFBRUMsRUFBRSxHQUFHRCxFQUFFbEMsSUFBSSxHQUFHLE1BQU1BLEdBQUcsTUFBTSxHQUFHMEIsRUFBRSxPQUFPMUIsR0FBR0YsRUFBRVcsS0FBSzhhLE9BQU92YixHQUFHdWIsT0FBT3JaLEdBQUdsQyxJQUFJdWIsT0FBT3JaLEdBQUdxWixNQUFNdmIsRUFBRWtDLEdBQUcsR0FBRyxHQUFHLE9BQU9wQyxFQUFFLE9BQU8sRUFBRSxHQUFHNEIsRUFBRSxHQUFHLENBQUMsS0FBS0EsS0FBS1EsR0FBR2xDLEdBQUdGLEVBQUVXLEtBQUssT0FBT1QsR0FBR3ViLE9BQU92YixHQUFHdWIsTUFBTXZiLEdBQUdrQyxHQUFHcVosT0FBTyxHQUFHLEtBQUs3WixHQUFHOFosTUFBTSxDQUFDOVosR0FBRzhaLEtBQUtyWixFQUFFLElBQUksR0FBR0QsR0FBR2xDLEdBQUdGLEVBQUVXLEtBQUt5QixHQUFHbEMsR0FBR0YsRUFBRVcsS0FBS3lCLEdBQUdsQyxHQUFHRixFQUFFVyxLQUFLeUIsR0FBR2xDLEdBQUdGLEVBQUVXLEtBQUt5QixHQUFHbEMsR0FBR0YsRUFBRVcsS0FBS3lCLEdBQUdsQyxHQUFHRixFQUFFVyxLQUFLeUIsR0FBR2xDLEdBQUdGLEVBQUVXLEtBQUt5QixHQUFHbEMsR0FBR0YsRUFBRVcsS0FBS3lCLEdBQUdsQyxHQUFHRixFQUFFVyxLQUFLeUIsR0FBR2xDLEdBQUdGLEVBQUVXLEtBQUt5QixHQUFHbEMsR0FBR0YsRUFBRVcsS0FBS3lCLEdBQUdsQyxHQUFHRixFQUFFVyxLQUFLeUIsR0FBR2xDLEdBQUdGLEVBQUVXLEtBQUt5QixHQUFHbEMsR0FBR0YsRUFBRVcsS0FBS3lCLEdBQUdsQyxHQUFHRixFQUFFVyxLQUFLeUIsR0FBR2xDLEdBQUdGLEVBQUVXLGFBQWEwQixHQUFHbkMsR0FBR3ViLEtBQUtyWixHQUFHcVosS0FBSyxHQUFHN1osRUFBRSxDQUFDLEtBQUtBLEdBQUcsSUFBSUEsR0FBRyxHQUFHUSxHQUFHbEMsR0FBR0YsRUFBRVcsS0FBS3lCLEdBQUdsQyxHQUFHRixFQUFFVyxLQUFLeUIsR0FBR2xDLEdBQUdGLEVBQUVXLEtBQUt5QixHQUFHbEMsR0FBR0YsRUFBRVcsS0FBS3lCLEdBQUdsQyxHQUFHRixFQUFFVyxLQUFLeUIsR0FBR2xDLEdBQUdGLEVBQUVXLEtBQUt5QixHQUFHbEMsR0FBR0YsRUFBRVcsS0FBS3lCLEdBQUdsQyxHQUFHRixFQUFFVyxLQUFLeUIsR0FBR2xDLEdBQUdGLEVBQUVXLEtBQUt5QixHQUFHbEMsR0FBR0YsRUFBRVcsS0FBS3lCLEdBQUdsQyxHQUFHRixFQUFFVyxLQUFLeUIsR0FBR2xDLEdBQUdGLEVBQUVXLEtBQUt5QixHQUFHbEMsR0FBR0YsRUFBRVcsS0FBS3lCLEdBQUdsQyxHQUFHRixFQUFFVyxLQUFLeUIsR0FBR2xDLEdBQUdGLEVBQUVXLEtBQUt5QixHQUFHbEMsR0FBR0YsRUFBRVcsS0FBSyxLQUFLaUIsS0FBS1EsR0FBR2xDLEdBQUdGLEVBQUVXLEtBQUtULEdBQUd1YixLQUFLclosR0FBR3FaLEtBQUssT0FBT3ZiLEVBQUVrQyxHQUFHLEdBQWh3QixDQUFvd0JsQyxFQUFFRixFQUFFVyxFQUFFaUIsSUFBSTRaLEtBQUtrSyxnQkFBZ0IsU0FBU3hsQixFQUFFRixFQUFFVyxHQUFHLElBQUlpQixFQUFFUSxFQUFFQyxFQUFFLE9BQU8xQixFQUFFLEVBQUUsWUFBWXlCLEdBQUdDLEVBQUUxQixHQUFHOGEsT0FBTzdaLEVBQUUsTUFBTTFCLEdBQUdrQyxHQUFHcVosTUFBTTdaLElBQUksTUFBTTVCLEdBQUd5YixLQUFLLElBQUlBLE9BQU83WixHQUFHNlosTUFBTTdaLEdBQUc2WixPQUFPN1osR0FBRzZaLE9BQU9yWixJQUFJbEMsR0FBRyxHQUFHLFFBQVFGLEdBQUcsR0FBRyxPQUFPeWIsS0FBS3BaLElBQUksU0FBU0QsR0FBRyxRQUFRQSxHQUFHcVosT0FBT3JaLEdBQUdxWixNQUFNN1osRUFBRVEsR0FBRyxVQUFLLElBQVNvWixNQUFNZ0QsTUFBTSwwREFBMEQsV0FBVyxJQUFJdGUsRUFBRSxDQUFDLEVBQUUsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsV0FBVyxTQUFTLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsU0FBUyxXQUFXLFdBQVcsV0FBVyxTQUFTLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxXQUFXLFNBQVMsV0FBVyxXQUFXLFdBQVcsU0FBUyxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFX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R0FBSXdvRCxFQUVKOXdFLFFBQVMsSUFPVixPQUhBTSxvQkFBb0J3d0UsR0FBVTd3RSxFQUFRQSxFQUFPRCxRQUFTNndFLHFCQUcvQzV3RSxFQUFPRCxRQ3BCZjZ3RSxvQkFBb0J4dEUsRUFBS3BELElBQ3hCLElBQUkrd0UsRUFBUy93RSxHQUFVQSxFQUFPaW1CLFdBQzdCLElBQU9qbUIsRUFBaUIsUUFDeEIsSUFBTSxFQUVQLE9BREE0d0Usb0JBQW9CN3NFLEVBQUVndEUsRUFBUSxDQUFFaHdFLEVBQUdnd0UsSUFDNUJBLEdDTFJILG9CQUFvQjdzRSxFQUFJLENBQUNoRSxFQUFTaXhFLEtBQ2pDLElBQUksSUFBSW5sRCxLQUFPbWxELEVBQ1hKLG9CQUFvQnB1RSxFQUFFd3VFLEVBQVlubEQsS0FBUytrRCxvQkFBb0JwdUUsRUFBRXpDLEVBQVM4ckIsSUFDNUV2ZCxPQUFPNlgsZUFBZXBtQixFQUFTOHJCLEVBQUssQ0FBRXpGLFlBQVksRUFBTUMsSUFBSzJxRCxFQUFXbmxELE1DSjNFK2tELG9CQUFvQnB1RSxFQUFJLENBQUNvdEQsRUFBS3lKLElBQVUvcUQsT0FBTy9LLFVBQVUraUIsZUFBZTlpQixLQUFLb3NELEVBQUt5SixHQ0NsRnVYLG9CQUFvQnp0RSxFQUFLcEQsSUFDSCxvQkFBWHdtQixRQUEwQkEsT0FBT0MsYUFDMUNsWSxPQUFPNlgsZUFBZXBtQixFQUFTd21CLE9BQU9DLFlBQWEsQ0FBRUMsTUFBTyxXQUU3RG5ZLE9BQU82WCxlQUFlcG1CLEVBQVMsYUFBYyxDQUFFMG1CLE9BQU8sS0NGdkQsSUFBSUMsb0JBQXNCa3FELG9CQUFvQiIsInNvdXJjZXMiOlsid2VicGFjazovL3VpLXRvb2xraXQvd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9ub2RlX21vZHVsZXMvQG9wZW4tYW10LWNsb3VkLXRvb2xraXQvdWktdG9vbGtpdC9idW5kbGVzL2NvcmUuYnVuZGxlLmpzIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9zcmMvcmVhY3Rqcy9LVk0vQ29ubmVjdEJ1dHRvbi5zY3NzIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9zcmMvcmVhY3Rqcy9LVk0vRW5jb2RpbmdPcHRpb25zLnNjc3MiLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL3NyYy9yZWFjdGpzL0tWTS9IZWFkZXIuc2NzcyIsIndlYnBhY2s6Ly91aS10b29sa2l0Ly4vc3JjL3JlYWN0anMvS1ZNL1B1cmVDYW52YXMuc2NzcyIsIndlYnBhY2s6Ly91aS10b29sa2l0Ly4vc3JjL3JlYWN0anMvS1ZNL1VJLnNjc3MiLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanMiLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9jc3NXaXRoTWFwcGluZ1RvU3RyaW5nLmpzIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9ub2RlX21vZHVsZXMvb2JqZWN0LWFzc2lnbi9pbmRleC5qcyIsIndlYnBhY2s6Ly91aS10b29sa2l0Ly4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9janMvcmVhY3QtZG9tLnByb2R1Y3Rpb24ubWluLmpzIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2luZGV4LmpzIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL25vZGVfbW9kdWxlcy9zY2hlZHVsZXIvY2pzL3NjaGVkdWxlci5wcm9kdWN0aW9uLm1pbi5qcyIsIndlYnBhY2s6Ly91aS10b29sa2l0Ly4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9ub2RlX21vZHVsZXMvc2NoZWR1bGVyL2luZGV4LmpzIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9ub2RlX21vZHVsZXMvcmVhY3QvY2pzL3JlYWN0LnByb2R1Y3Rpb24ubWluLmpzIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9ub2RlX21vZHVsZXMvcmVhY3QvaW5kZXguanMiLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qcyIsIndlYnBhY2s6Ly91aS10b29sa2l0Ly4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qcyIsIndlYnBhY2s6Ly91aS10b29sa2l0Ly4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanMiLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qcyIsIndlYnBhY2s6Ly91aS10b29sa2l0Ly4vc3JjL3JlYWN0anMvS1ZNL0Nvbm5lY3RCdXR0b24uc2Nzcz80NmNiIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9zcmMvcmVhY3Rqcy9LVk0vQ29ubmVjdEJ1dHRvbi50c3giLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL3NyYy9yZWFjdGpzL0tWTS9FbmNvZGluZ09wdGlvbnMuc2Nzcz9jYjM3Iiwid2VicGFjazovL3VpLXRvb2xraXQvLi9zcmMvcmVhY3Rqcy9LVk0vRW5jb2RpbmdPcHRpb25zLnRzeCIsIndlYnBhY2s6Ly91aS10b29sa2l0Ly4vc3JjL3JlYWN0anMvS1ZNL0Rlc2t0b3BTZXR0aW5ncy50c3giLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL3NyYy9yZWFjdGpzL0tWTS9IZWFkZXIuc2Nzcz83YTVmIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9zcmMvcmVhY3Rqcy9LVk0vSGVhZGVyLnRzeCIsIndlYnBhY2s6Ly91aS10b29sa2l0Ly4vc3JjL3JlYWN0anMvc2hhcmVkL1V0aWxpdGllcy50cyIsIndlYnBhY2s6Ly91aS10b29sa2l0Ly4vc3JjL3JlYWN0anMvS1ZNL1B1cmVDYW52YXMuc2Nzcz8zNTY4Iiwid2VicGFjazovL3VpLXRvb2xraXQvLi9zcmMvcmVhY3Rqcy9LVk0vUHVyZUNhbnZhcy50c3giLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL3NyYy9yZWFjdGpzL0tWTS9VSS5zY3NzP2IwNzciLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL3NyYy9yZWFjdGpzL0tWTS9VSS50c3giLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90eXBlb2YuanMiLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9kZWZpbmVQcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly91aS10b29sa2l0Ly4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZC5qcyIsIndlYnBhY2s6Ly91aS10b29sa2l0Ly4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NsYXNzQ2FsbENoZWNrLmpzIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlQ2xhc3MuanMiLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQuanMiLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuLmpzIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZ2V0UHJvdG90eXBlT2YuanMiLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9zZXRQcm90b3R5cGVPZi5qcyIsIndlYnBhY2s6Ly91aS10b29sa2l0Ly4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2luaGVyaXRzLmpzIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9ub2RlX21vZHVsZXMvaTE4bmV4dC9kaXN0L2VzbS9pMThuZXh0LmpzIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9ub2RlX21vZHVsZXMvaTE4bmV4dC1icm93c2VyLWxhbmd1YWdlZGV0ZWN0b3IvZGlzdC9lc20vaTE4bmV4dEJyb3dzZXJMYW5ndWFnZURldGVjdG9yLmpzIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9ub2RlX21vZHVsZXMvcmVhY3QtaTE4bmV4dC9kaXN0L2VzL2NvbnRleHQuanMiLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC8uL3NyYy9pMThuLnRzIiwid2VicGFjazovL3VpLXRvb2xraXQvLi9zcmMvcmVhY3Rqcy9LVk0vaW5kZXgudHN4Iiwid2VicGFjazovL3VpLXRvb2xraXQvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC93ZWJwYWNrL3J1bnRpbWUvY29tcGF0IGdldCBkZWZhdWx0IGV4cG9ydCIsIndlYnBhY2s6Ly91aS10b29sa2l0L3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly91aS10b29sa2l0L3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vdWktdG9vbGtpdC93ZWJwYWNrL3J1bnRpbWUvbWFrZSBuYW1lc3BhY2Ugb2JqZWN0Iiwid2VicGFjazovL3VpLXRvb2xraXQvd2VicGFjay9zdGFydHVwIl0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcInVpLXRvb2xraXRcIl0gPSBmYWN0b3J5KCk7XG5cdGVsc2Vcblx0XHRyb290W1widWktdG9vbGtpdFwiXSA9IGZhY3RvcnkoKTtcbn0pKHNlbGYsIGZ1bmN0aW9uKCkge1xucmV0dXJuICIsIi8qISBGb3IgbGljZW5zZSBpbmZvcm1hdGlvbiBwbGVhc2Ugc2VlIGNvcmUuYnVuZGxlLmpzLkxJQ0VOU0UudHh0ICovXHJcbiFmdW5jdGlvbih0LGUpe1wib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzJiZcIm9iamVjdFwiPT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPWUoKTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFtdLGUpOlwib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzP2V4cG9ydHNbXCJ1aS10b29sa2l0L2NvcmVcIl09ZSgpOnRbXCJ1aS10b29sa2l0L2NvcmVcIl09ZSgpfShzZWxmLChmdW5jdGlvbigpe3JldHVybigoKT0+e3ZhciBfX3dlYnBhY2tfbW9kdWxlc19fPXs0ODc6dD0+e3ZhciBlPXt1dGY4OntzdHJpbmdUb0J5dGVzOmZ1bmN0aW9uKHQpe3JldHVybiBlLmJpbi5zdHJpbmdUb0J5dGVzKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudCh0KSkpfSxieXRlc1RvU3RyaW5nOmZ1bmN0aW9uKHQpe3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoZXNjYXBlKGUuYmluLmJ5dGVzVG9TdHJpbmcodCkpKX19LGJpbjp7c3RyaW5nVG9CeXRlczpmdW5jdGlvbih0KXtmb3IodmFyIGU9W10sYT0wO2E8dC5sZW5ndGg7YSsrKWUucHVzaCgyNTUmdC5jaGFyQ29kZUF0KGEpKTtyZXR1cm4gZX0sYnl0ZXNUb1N0cmluZzpmdW5jdGlvbih0KXtmb3IodmFyIGU9W10sYT0wO2E8dC5sZW5ndGg7YSsrKWUucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKHRbYV0pKTtyZXR1cm4gZS5qb2luKFwiXCIpfX19O3QuZXhwb3J0cz1lfSwxMjp0PT57dmFyIGUsYTtlPVwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrL1wiLGE9e3JvdGw6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdDw8ZXx0Pj4+MzItZX0scm90cjpmdW5jdGlvbih0LGUpe3JldHVybiB0PDwzMi1lfHQ+Pj5lfSxlbmRpYW46ZnVuY3Rpb24odCl7aWYodC5jb25zdHJ1Y3Rvcj09TnVtYmVyKXJldHVybiAxNjcxMTkzNSZhLnJvdGwodCw4KXw0Mjc4MjU1MzYwJmEucm90bCh0LDI0KTtmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKyl0W2VdPWEuZW5kaWFuKHRbZV0pO3JldHVybiB0fSxyYW5kb21CeXRlczpmdW5jdGlvbih0KXtmb3IodmFyIGU9W107dD4wO3QtLSllLnB1c2goTWF0aC5mbG9vcigyNTYqTWF0aC5yYW5kb20oKSkpO3JldHVybiBlfSxieXRlc1RvV29yZHM6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLGE9MCxzPTA7YTx0Lmxlbmd0aDthKysscys9OCllW3M+Pj41XXw9dFthXTw8MjQtcyUzMjtyZXR1cm4gZX0sd29yZHNUb0J5dGVzOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxhPTA7YTwzMip0Lmxlbmd0aDthKz04KWUucHVzaCh0W2E+Pj41XT4+PjI0LWElMzImMjU1KTtyZXR1cm4gZX0sYnl0ZXNUb0hleDpmdW5jdGlvbih0KXtmb3IodmFyIGU9W10sYT0wO2E8dC5sZW5ndGg7YSsrKWUucHVzaCgodFthXT4+PjQpLnRvU3RyaW5nKDE2KSksZS5wdXNoKCgxNSZ0W2FdKS50b1N0cmluZygxNikpO3JldHVybiBlLmpvaW4oXCJcIil9LGhleFRvQnl0ZXM6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLGE9MDthPHQubGVuZ3RoO2ErPTIpZS5wdXNoKHBhcnNlSW50KHQuc3Vic3RyKGEsMiksMTYpKTtyZXR1cm4gZX0sYnl0ZXNUb0Jhc2U2NDpmdW5jdGlvbih0KXtmb3IodmFyIGE9W10scz0wO3M8dC5sZW5ndGg7cys9Mylmb3IodmFyIG89dFtzXTw8MTZ8dFtzKzFdPDw4fHRbcysyXSxpPTA7aTw0O2krKyk4KnMrNippPD04KnQubGVuZ3RoP2EucHVzaChlLmNoYXJBdChvPj4+NiooMy1pKSY2MykpOmEucHVzaChcIj1cIik7cmV0dXJuIGEuam9pbihcIlwiKX0sYmFzZTY0VG9CeXRlczpmdW5jdGlvbih0KXt0PXQucmVwbGFjZSgvW15BLVowLTkrXFwvXS9naSxcIlwiKTtmb3IodmFyIGE9W10scz0wLG89MDtzPHQubGVuZ3RoO289KytzJTQpMCE9byYmYS5wdXNoKChlLmluZGV4T2YodC5jaGFyQXQocy0xKSkmTWF0aC5wb3coMiwtMipvKzgpLTEpPDwyKm98ZS5pbmRleE9mKHQuY2hhckF0KHMpKT4+PjYtMipvKTtyZXR1cm4gYX19LHQuZXhwb3J0cz1hfSw3Mzg6dD0+e2Z1bmN0aW9uIGUodCl7cmV0dXJuISF0LmNvbnN0cnVjdG9yJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiB0LmNvbnN0cnVjdG9yLmlzQnVmZmVyJiZ0LmNvbnN0cnVjdG9yLmlzQnVmZmVyKHQpfXQuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dCYmKGUodCl8fGZ1bmN0aW9uKHQpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIHQucmVhZEZsb2F0TEUmJlwiZnVuY3Rpb25cIj09dHlwZW9mIHQuc2xpY2UmJmUodC5zbGljZSgwLDApKX0odCl8fCEhdC5faXNCdWZmZXIpfX0sNTY4Oih0LGUsYSk9Pnt2YXIgcyxvLGkscixuO3M9YSgxMiksbz1hKDQ4NykudXRmOCxpPWEoNzM4KSxyPWEoNDg3KS5iaW4sKG49ZnVuY3Rpb24odCxlKXt0LmNvbnN0cnVjdG9yPT1TdHJpbmc/dD1lJiZcImJpbmFyeVwiPT09ZS5lbmNvZGluZz9yLnN0cmluZ1RvQnl0ZXModCk6by5zdHJpbmdUb0J5dGVzKHQpOmkodCk/dD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0LDApOkFycmF5LmlzQXJyYXkodCl8fHQuY29uc3RydWN0b3I9PT1VaW50OEFycmF5fHwodD10LnRvU3RyaW5nKCkpO2Zvcih2YXIgYT1zLmJ5dGVzVG9Xb3Jkcyh0KSxsPTgqdC5sZW5ndGgsaD0xNzMyNTg0MTkzLGM9LTI3MTczMzg3OSxwPS0xNzMyNTg0MTk0LGQ9MjcxNzMzODc4LHY9MDt2PGEubGVuZ3RoO3YrKylhW3ZdPTE2NzExOTM1JihhW3ZdPDw4fGFbdl0+Pj4yNCl8NDI3ODI1NTM2MCYoYVt2XTw8MjR8YVt2XT4+PjgpO2FbbD4+PjVdfD0xMjg8PGwlMzIsYVsxNCsobCs2ND4+Pjk8PDQpXT1sO3ZhciBiPW4uX2ZmLHU9bi5fZ2csZj1uLl9oaCxnPW4uX2lpO2Zvcih2PTA7djxhLmxlbmd0aDt2Kz0xNil7dmFyIFM9aCxtPWMsXz1wLEM9ZDtoPWIoaCxjLHAsZCxhW3YrMF0sNywtNjgwODc2OTM2KSxkPWIoZCxoLGMscCxhW3YrMV0sMTIsLTM4OTU2NDU4NikscD1iKHAsZCxoLGMsYVt2KzJdLDE3LDYwNjEwNTgxOSksYz1iKGMscCxkLGgsYVt2KzNdLDIyLC0xMDQ0NTI1MzMwKSxoPWIoaCxjLHAsZCxhW3YrNF0sNywtMTc2NDE4ODk3KSxkPWIoZCxoLGMscCxhW3YrNV0sMTIsMTIwMDA4MDQyNikscD1iKHAsZCxoLGMsYVt2KzZdLDE3LC0xNDczMjMxMzQxKSxjPWIoYyxwLGQsaCxhW3YrN10sMjIsLTQ1NzA1OTgzKSxoPWIoaCxjLHAsZCxhW3YrOF0sNywxNzcwMDM1NDE2KSxkPWIoZCxoLGMscCxhW3YrOV0sMTIsLTE5NTg0MTQ0MTcpLHA9YihwLGQsaCxjLGFbdisxMF0sMTcsLTQyMDYzKSxjPWIoYyxwLGQsaCxhW3YrMTFdLDIyLC0xOTkwNDA0MTYyKSxoPWIoaCxjLHAsZCxhW3YrMTJdLDcsMTgwNDYwMzY4MiksZD1iKGQsaCxjLHAsYVt2KzEzXSwxMiwtNDAzNDExMDEpLHA9YihwLGQsaCxjLGFbdisxNF0sMTcsLTE1MDIwMDIyOTApLGg9dShoLGM9YihjLHAsZCxoLGFbdisxNV0sMjIsMTIzNjUzNTMyOSkscCxkLGFbdisxXSw1LC0xNjU3OTY1MTApLGQ9dShkLGgsYyxwLGFbdis2XSw5LC0xMDY5NTAxNjMyKSxwPXUocCxkLGgsYyxhW3YrMTFdLDE0LDY0MzcxNzcxMyksYz11KGMscCxkLGgsYVt2KzBdLDIwLC0zNzM4OTczMDIpLGg9dShoLGMscCxkLGFbdis1XSw1LC03MDE1NTg2OTEpLGQ9dShkLGgsYyxwLGFbdisxMF0sOSwzODAxNjA4MykscD11KHAsZCxoLGMsYVt2KzE1XSwxNCwtNjYwNDc4MzM1KSxjPXUoYyxwLGQsaCxhW3YrNF0sMjAsLTQwNTUzNzg0OCksaD11KGgsYyxwLGQsYVt2KzldLDUsNTY4NDQ2NDM4KSxkPXUoZCxoLGMscCxhW3YrMTRdLDksLTEwMTk4MDM2OTApLHA9dShwLGQsaCxjLGFbdiszXSwxNCwtMTg3MzYzOTYxKSxjPXUoYyxwLGQsaCxhW3YrOF0sMjAsMTE2MzUzMTUwMSksaD11KGgsYyxwLGQsYVt2KzEzXSw1LC0xNDQ0NjgxNDY3KSxkPXUoZCxoLGMscCxhW3YrMl0sOSwtNTE0MDM3ODQpLHA9dShwLGQsaCxjLGFbdis3XSwxNCwxNzM1MzI4NDczKSxoPWYoaCxjPXUoYyxwLGQsaCxhW3YrMTJdLDIwLC0xOTI2NjA3NzM0KSxwLGQsYVt2KzVdLDQsLTM3ODU1OCksZD1mKGQsaCxjLHAsYVt2KzhdLDExLC0yMDIyNTc0NDYzKSxwPWYocCxkLGgsYyxhW3YrMTFdLDE2LDE4MzkwMzA1NjIpLGM9ZihjLHAsZCxoLGFbdisxNF0sMjMsLTM1MzA5NTU2KSxoPWYoaCxjLHAsZCxhW3YrMV0sNCwtMTUzMDk5MjA2MCksZD1mKGQsaCxjLHAsYVt2KzRdLDExLDEyNzI4OTMzNTMpLHA9ZihwLGQsaCxjLGFbdis3XSwxNiwtMTU1NDk3NjMyKSxjPWYoYyxwLGQsaCxhW3YrMTBdLDIzLC0xMDk0NzMwNjQwKSxoPWYoaCxjLHAsZCxhW3YrMTNdLDQsNjgxMjc5MTc0KSxkPWYoZCxoLGMscCxhW3YrMF0sMTEsLTM1ODUzNzIyMikscD1mKHAsZCxoLGMsYVt2KzNdLDE2LC03MjI1MjE5NzkpLGM9ZihjLHAsZCxoLGFbdis2XSwyMyw3NjAyOTE4OSksaD1mKGgsYyxwLGQsYVt2KzldLDQsLTY0MDM2NDQ4NyksZD1mKGQsaCxjLHAsYVt2KzEyXSwxMSwtNDIxODE1ODM1KSxwPWYocCxkLGgsYyxhW3YrMTVdLDE2LDUzMDc0MjUyMCksaD1nKGgsYz1mKGMscCxkLGgsYVt2KzJdLDIzLC05OTUzMzg2NTEpLHAsZCxhW3YrMF0sNiwtMTk4NjMwODQ0KSxkPWcoZCxoLGMscCxhW3YrN10sMTAsMTEyNjg5MTQxNSkscD1nKHAsZCxoLGMsYVt2KzE0XSwxNSwtMTQxNjM1NDkwNSksYz1nKGMscCxkLGgsYVt2KzVdLDIxLC01NzQzNDA1NSksaD1nKGgsYyxwLGQsYVt2KzEyXSw2LDE3MDA0ODU1NzEpLGQ9ZyhkLGgsYyxwLGFbdiszXSwxMCwtMTg5NDk4NjYwNikscD1nKHAsZCxoLGMsYVt2KzEwXSwxNSwtMTA1MTUyMyksYz1nKGMscCxkLGgsYVt2KzFdLDIxLC0yMDU0OTIyNzk5KSxoPWcoaCxjLHAsZCxhW3YrOF0sNiwxODczMzEzMzU5KSxkPWcoZCxoLGMscCxhW3YrMTVdLDEwLC0zMDYxMTc0NCkscD1nKHAsZCxoLGMsYVt2KzZdLDE1LC0xNTYwMTk4MzgwKSxjPWcoYyxwLGQsaCxhW3YrMTNdLDIxLDEzMDkxNTE2NDkpLGg9ZyhoLGMscCxkLGFbdis0XSw2LC0xNDU1MjMwNzApLGQ9ZyhkLGgsYyxwLGFbdisxMV0sMTAsLTExMjAyMTAzNzkpLHA9ZyhwLGQsaCxjLGFbdisyXSwxNSw3MTg3ODcyNTkpLGM9ZyhjLHAsZCxoLGFbdis5XSwyMSwtMzQzNDg1NTUxKSxoPWgrUz4+PjAsYz1jK20+Pj4wLHA9cCtfPj4+MCxkPWQrQz4+PjB9cmV0dXJuIHMuZW5kaWFuKFtoLGMscCxkXSl9KS5fZmY9ZnVuY3Rpb24odCxlLGEscyxvLGkscil7dmFyIG49dCsoZSZhfH5lJnMpKyhvPj4+MCkrcjtyZXR1cm4objw8aXxuPj4+MzItaSkrZX0sbi5fZ2c9ZnVuY3Rpb24odCxlLGEscyxvLGkscil7dmFyIG49dCsoZSZzfGEmfnMpKyhvPj4+MCkrcjtyZXR1cm4objw8aXxuPj4+MzItaSkrZX0sbi5faGg9ZnVuY3Rpb24odCxlLGEscyxvLGkscil7dmFyIG49dCsoZV5hXnMpKyhvPj4+MCkrcjtyZXR1cm4objw8aXxuPj4+MzItaSkrZX0sbi5faWk9ZnVuY3Rpb24odCxlLGEscyxvLGkscil7dmFyIG49dCsoYV4oZXx+cykpKyhvPj4+MCkrcjtyZXR1cm4objw8aXxuPj4+MzItaSkrZX0sbi5fYmxvY2tzaXplPTE2LG4uX2RpZ2VzdHNpemU9MTYsdC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYobnVsbD09dCl0aHJvdyBuZXcgRXJyb3IoXCJJbGxlZ2FsIGFyZ3VtZW50IFwiK3QpO3ZhciBhPXMud29yZHNUb0J5dGVzKG4odCxlKSk7cmV0dXJuIGUmJmUuYXNCeXRlcz9hOmUmJmUuYXNTdHJpbmc/ci5ieXRlc1RvU3RyaW5nKGEpOnMuYnl0ZXNUb0hleChhKX19LDE2NjoodCxlLGEpPT57XCJ1c2Ugc3RyaWN0XCI7YS5kKGUse3I6KCk9Pmx9KTt2YXIgcz1hKDQ2KSxvPWEoNTY1KSxpPWEoNjExKSxyPWEoMzA1KSxuPWEubihyKTtjbGFzcyBsIGV4dGVuZHMgcy5Ie2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIoKSx0aGlzLnByb3RvY29sPTIsdGhpcy5pbmZsYXRlPW4oKS5pbmZsYXRlSW5pdCgxNSksdGhpcy5icHA9MSx0aGlzLnN0YXRlPTAsdGhpcy5mb2N1c01vZGU9MCx0aGlzLnVzZVpSTEU9ITAsdGhpcy5mcmFtZVJhdGVEZWxheT0yLHRoaXMuY2FudmFzQ3R4PWUsdGhpcy5zcGFyZWNhY2hlPXt9LHRoaXMuYnV0dG9ubWFzaz0wLHRoaXMuY2FudmFzQ29udHJvbD10aGlzLmNhbnZhc0N0eC5jYW52YXMsdGhpcy5sYXN0TW91c2VNb3ZlVGltZT0obmV3IERhdGUpLmdldFRpbWUoKSx0aGlzLmxvZ2dlcj10LHRoaXMuc2V0RGVza0ZvY3VzPSh0LGUpPT57fSx0aGlzLmdldERlc2tGb2N1cz10PT57fX1wcm9jZXNzRGF0YSh0KXt0aGlzLm9uUHJvY2Vzc0RhdGEodCl9b25TdGF0ZUNoYW5nZSh0KXt0aGlzLmxvZ2dlci52ZXJib3NlKGBzdGF0ZSBjaGFuZ2UgaW4gQU1URGVza3RvcDogJHt0fWApLDA9PT10JiYodGhpcy5jYW52YXNDdHguZmlsbFN0eWxlPVwiI0ZGRkZGRlwiLHRoaXMuY2FudmFzQ3R4LmZpbGxSZWN0KDAsMCx0aGlzLmNhbnZhc0N0eC5jYW52YXMud2lkdGgsdGhpcy5jYW52YXNDdHguY2FudmFzLndpZHRoKSl9c3RhcnQoKXt0aGlzLmxvZ2dlci52ZXJib3NlKFwiU3RhcnRpbmcgZGVza3RvcCBoZXJlXCIpLHRoaXMuc3RhdGU9MCx0aGlzLmluZmxhdGUuaW5mbGF0ZVJlc2V0KCksdGhpcy5vbkt2bURhdGFQZW5kaW5nPVtdLHRoaXMub25Ldm1EYXRhQWNrPS0xLHRoaXMua3ZtRGF0YVN1cHBvcnRlZD0hMTtmb3IoY29uc3QgdCBpbiB0aGlzLnNwYXJlY2FjaGUpZGVsZXRlIHRoaXMuc3BhcmVjYWNoZVt0XX1vblNlbmRLdm1EYXRhKHQpeyEwIT09dGhpcy5vbkt2bURhdGFBY2s/dGhpcy5vbkt2bURhdGFQZW5kaW5nLnB1c2godCk6KCgwLGkuZikodGhpcy51cmx2YXJzKSYmKDAsaS5mKSh0aGlzLnVybHZhcnMua3ZtZGF0YXRyYWNlKSYmY29uc29sZS5sb2coYEtWTS1TZW5kICgke3QubGVuZ3RofSkgZGF0YWApLHQ9XCJcXDBLdm1EYXRhQ2hhbm5lbFxcMFwiK3QsdGhpcy5vblNlbmQoU3RyaW5nLmZyb21DaGFyQ29kZSg2LDAsMCwwKStvLnIuSW50VG9TdHIodC5sZW5ndGgpK3QpLHRoaXMub25Ldm1EYXRhQWNrPSExKX19fSw1OToodCxlLGEpPT57XCJ1c2Ugc3RyaWN0XCI7YS5kKGUse046KCk9Pm99KTt2YXIgcz1hKDUwMyk7Y2xhc3MgbyBleHRlbmRzIHMuS3tjb25zdHJ1Y3Rvcih0LGUsYSxzLG8saSxyLG4sbCxoLGMpe3N1cGVyKHQsZSxhLHMsbyxpLHIsbixsLGgsYyl9fX0sNTAzOih0LGUsYSk9PntcInVzZSBzdHJpY3RcIjthLmQoZSx7YjooKT0+cyxLOigpPT5sfSk7dmFyIHMsbz1hKDU2NSksaT1hKDU2OCkscj1hLm4oaSksbj1hKDYxMSk7IWZ1bmN0aW9uKHQpe3RbdC5TT0w9MV09XCJTT0xcIix0W3QuS1ZNPTJdPVwiS1ZNXCIsdFt0LklERVI9M109XCJJREVSXCJ9KHN8fChzPXt9KSk7Y2xhc3MgbHtjb25zdHJ1Y3Rvcih0LGUsYSxzLG8saSxyLG4sbCxoLGMpe3RoaXMuZmlsZVJlYWRlcj1hLHRoaXMucmFuZG9tTm9uY2VDaGFycz1cImFiY2RlZjAxMjM0NTY3ODlcIix0aGlzLmhvc3Q9cyx0aGlzLnBvcnQ9byx0aGlzLnVzZXI9aSx0aGlzLnBhc3M9cix0aGlzLnRscz1uLHRoaXMudGxzdjFvbmx5PWwsdGhpcy5wcm90b2NvbD1lLHRoaXMuUmVkaXJlY3RTdGFydFNvbD1TdHJpbmcuZnJvbUNoYXJDb2RlKDE2LDAsMCwwLDgzLDc5LDc2LDMyKSx0aGlzLlJlZGlyZWN0U3RhcnRLdm09U3RyaW5nLmZyb21DaGFyQ29kZSgxNiwxLDAsMCw3NSw4Niw3Nyw4MiksdGhpcy5SZWRpcmVjdFN0YXJ0SWRlcj1TdHJpbmcuZnJvbUNoYXJDb2RlKDE2LDAsMCwwLDczLDY4LDY5LDgyKSx0aGlzLnVybHZhcnM9e30sdGhpcy5zZXJ2ZXI9Yyx0aGlzLmFtdEFjY3VtdWxhdG9yPVwiXCIsdGhpcy5hdXRoVXJpPVwiXCIsdGhpcy5sb2dnZXI9dCx0aGlzLmF1dGhUb2tlbj1ofWdldFdzTG9jYXRpb24oKXtyZXR1cm4gdGhpcy5pc0Jyb3dzZXIoKSYmISgwLG4uZikodGhpcy5zZXJ2ZXIpP2Ake3dpbmRvdy5sb2NhdGlvbi5wcm90b2NvbC5yZXBsYWNlKFwiaHR0cFwiLFwid3NcIil9Ly9cXG4gICAgICAke3dpbmRvdy5sb2NhdGlvbi5ob3N0fVxcbiAgICAgICR7d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnN1YnN0cmluZygwLHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5sYXN0SW5kZXhPZihcIi9cIikpfVxcbiAgICAgIC93ZWJyZWxheS5hc2h4P3A9MiZob3N0PSR7dGhpcy5ob3N0fSZwb3J0PSR7dGhpcy5wb3J0fSZ0bHM9JHt0aGlzLnRsc30ke1wiKlwiPT09dGhpcy51c2VyP1wiJnNlcnZlcmF1dGg9MVwiOlwiXCJ9JHt2b2lkIDA9PT10aGlzLnBhc3M/XCImc2VydmVyYXV0aD0xJnVzZXI9XCIrdGhpcy51c2VyOlwiXCJ9JnRsczFvbmx5PSR7dGhpcy50bHN2MW9ubHl9YDpgJHtTdHJpbmcodGhpcy5zZXJ2ZXIpfS93ZWJyZWxheS5hc2h4P3A9MiZob3N0PSR7dGhpcy5ob3N0fSZwb3J0PSR7dGhpcy5wb3J0fSZ0bHM9JHt0aGlzLnRsc30ke1wiKlwiPT09dGhpcy51c2VyP1wiJnNlcnZlcmF1dGg9MVwiOlwiXCJ9JHt2b2lkIDA9PT10aGlzLnBhc3M/XCImc2VydmVyYXV0aD0xJnVzZXI9XCIrdGhpcy51c2VyOlwiXCJ9JnRsczFvbmx5PSR7dGhpcy50bHN2MW9ubHl9YH1pc0Jyb3dzZXIoKXt0cnl7Y29uc3QgdD1cInVuZGVmaW5lZFwiIT10eXBlb2Ygd2luZG93O3JldHVybiB0JiZ0aGlzLmxvZ2dlci5kZWJ1ZyhcIiEhISEhQlJPV1NFUiEhISEhXCIpLHR9Y2F0Y2godCl7cmV0dXJuITF9fXN0YXJ0KHQpe3RoaXMuY29ubmVjdFN0YXRlPTAsdGhpcy5zb2NrZXQ9bmV3IHQodGhpcy5nZXRXc0xvY2F0aW9uKCksdGhpcy5hdXRoVG9rZW4pLHRoaXMuc29ja2V0Lm9ub3Blbj10aGlzLm9uU29ja2V0Q29ubmVjdGVkLmJpbmQodGhpcyksdGhpcy5zb2NrZXQub25tZXNzYWdlPXRoaXMub25NZXNzYWdlLmJpbmQodGhpcyksdGhpcy5zb2NrZXQub25jbG9zZT10aGlzLm9uU29ja2V0Q2xvc2VkLmJpbmQodGhpcyk7KDAsbi5mKSh0aGlzLmZpbGVSZWFkZXIpJiYoMCxuLmYpKHRoaXMuZmlsZVJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcpP3RoaXMuZmlsZVJlYWRlci5vbmxvYWQ9KHQ9Pnt0aGlzLm9uU29ja2V0RGF0YSh0LnRhcmdldC5yZXN1bHQpLDA9PT10aGlzLmZpbGVSZWFkZXJBY2MubGVuZ3RoP3RoaXMuZmlsZVJlYWRlckluVXNlPSExOnRoaXMuZmlsZVJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcobmV3IEJsb2IoW3RoaXMuZmlsZVJlYWRlckFjYy5zaGlmdCgpXSkpfSkuYmluZCh0aGlzKTooMCxuLmYpKHRoaXMuZmlsZVJlYWRlcikmJigwLG4uZikodGhpcy5maWxlUmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKSYmKHRoaXMuZmlsZVJlYWRlci5vbmxvYWRlbmQ9KHQ9Pnt0aGlzLm9uU29ja2V0RGF0YSh0LnRhcmdldC5yZXN1bHQpLDA9PT10aGlzLmZpbGVSZWFkZXJBY2MubGVuZ3RoP3RoaXMuZmlsZVJlYWRlckluVXNlPSExOnRoaXMuZmlsZVJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcih0aGlzLmZpbGVSZWFkZXJBY2Muc2hpZnQoKSl9KS5iaW5kKHRoaXMpKSx0aGlzLmxvZ2dlci52ZXJib3NlKFwiQ29ubmVjdGluZyB0byB3ZWJzb2NrZXRcIiksdGhpcy5vblN0YXRlQ2hhbmdlKDEpfW9uU29ja2V0Q29ubmVjdGVkKCl7KDAsbi5mKSh0aGlzLnVybHZhcnMpJiYoMCxuLmYpKHRoaXMudXJsdmFycy5yZWRpcnRyYWNlKSYmY29uc29sZS5sb2coXCJSRURJUi1DT05ORUNUXCIpLHRoaXMub25TdGF0ZUNoYW5nZSgyKSx0aGlzLmxvZ2dlci52ZXJib3NlKGBDb25uZWN0ZWQgdG8gd2Vic29ja2V0IHNlcnZlci4gV2l0aCBwcm90b2NvbCAke3RoaXMucHJvdG9jb2x9ICgyID0gS1ZNKWApLHRoaXMubG9nZ2VyLmluZm8oYFN0YXJ0IFJlZGlyZWN0IFNlc3Npb24gZm9yIHByb3RvY29sLiAke3RoaXMucHJvdG9jb2x9YCksdGhpcy5wcm90b2NvbD09PXMuU09MJiZ0aGlzLnNvY2tldFNlbmQodGhpcy5SZWRpcmVjdFN0YXJ0U29sKSx0aGlzLnByb3RvY29sPT09cy5LVk0mJnRoaXMuc29ja2V0U2VuZCh0aGlzLlJlZGlyZWN0U3RhcnRLdm0pLHRoaXMucHJvdG9jb2w9PT1zLklERVImJnRoaXMuc29ja2V0U2VuZCh0aGlzLlJlZGlyZWN0U3RhcnRJZGVyKX1vbk1lc3NhZ2UodCl7dHJ5e2lmKHRoaXMuaW5EYXRhQ291bnQrKyxcIm9iamVjdFwiPT10eXBlb2YgdC5kYXRhKXtpZih0aGlzLmZpbGVSZWFkZXJJblVzZSlyZXR1cm4gdm9pZCB0aGlzLmZpbGVSZWFkZXJBY2MucHVzaCh0LmRhdGEpO2lmKG51bGwhPXRoaXMuZmlsZVJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcpdGhpcy5maWxlUmVhZGVySW5Vc2U9ITAsdGhpcy5maWxlUmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyhuZXcgQmxvYihbdC5kYXRhXSkpO2Vsc2UgaWYobnVsbCE9dGhpcy5maWxlUmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKXRoaXMuZmlsZVJlYWRlckluVXNlPSEwLHRoaXMuZmlsZVJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcih0LmRhdGEpO2Vsc2V7bGV0IGU9XCJcIjtjb25zdCBhPW5ldyBVaW50OEFycmF5KHQuZGF0YSkscz1hLmJ5dGVMZW5ndGg7Zm9yKGxldCB0PTA7dDxzO3QrKyllKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGFbdF0pO3RoaXMub25Tb2NrZXREYXRhKGUpfX1lbHNlIHRoaXMub25Tb2NrZXREYXRhKHQuZGF0YSl9Y2F0Y2godCl7dGhpcy5sb2dnZXIuZXJyb3IodCksdGhpcy5zdG9wKCksdGhpcy5vbkVycm9yKCl9fW9uU29ja2V0RGF0YSh0KXtpZigoMCxuLmYpKHQpJiYtMSE9PXRoaXMuY29ubmVjdFN0YXRlKXtpZihcIm9iamVjdFwiPT10eXBlb2YgdCl7bGV0IGU9XCJcIjtjb25zdCBhPW5ldyBVaW50OEFycmF5KHQpLHM9YS5ieXRlTGVuZ3RoO2ZvcihsZXQgdD0wO3Q8czt0KyspZSs9U3RyaW5nLmZyb21DaGFyQ29kZShhW3RdKTt0PWV9ZWxzZSBpZihcInN0cmluZ1wiIT10eXBlb2YgdClyZXR1cm47aWYoKHRoaXMucHJvdG9jb2w9PT1zLktWTXx8dGhpcy5wcm90b2NvbD09PXMuSURFUikmJjE9PT10aGlzLmNvbm5lY3RTdGF0ZSlyZXR1cm4gdGhpcy5vblByb2Nlc3NEYXRhKHQpO2Zvcih0aGlzLmFtdEFjY3VtdWxhdG9yKz10O3RoaXMuYW10QWNjdW11bGF0b3IubGVuZ3RoPj0xOyl7bGV0IHQ9MDtzd2l0Y2godGhpcy5hbXRBY2N1bXVsYXRvci5jaGFyQ29kZUF0KDApKXtjYXNlIDE3OmlmKHRoaXMubG9nZ2VyLnZlcmJvc2UoYFN0YXJ0IFJlZGlyZWN0aW9uIFNlc3Npb24gcmVwbHkgcmVjZWl2ZWQgZm9yICAke3RoaXMucHJvdG9jb2x9YCksdGhpcy5hbXRBY2N1bXVsYXRvci5sZW5ndGg8NClyZXR1cm47c3dpdGNoKHRoaXMuYW10QWNjdW11bGF0b3IuY2hhckNvZGVBdCgxKSl7Y2FzZSAwOntpZih0aGlzLmxvZ2dlci52ZXJib3NlKFwiU2Vzc2lvbiBzdGF0dXMgc3VjY2Vzcy4gU3RhcnQgaGFuZHNoYWtlXCIpLHRoaXMuYW10QWNjdW11bGF0b3IubGVuZ3RoPDEzKXJldHVybjtjb25zdCBlPXRoaXMuYW10QWNjdW11bGF0b3IuY2hhckNvZGVBdCgxMik7aWYodGhpcy5hbXRBY2N1bXVsYXRvci5sZW5ndGg8MTMrZSlyZXR1cm47dGhpcy5sb2dnZXIudmVyYm9zZShcIlF1ZXJ5IGZvciBhdmFpbGFibGUgYXV0aGVudGljYXRpb25cIiksdGhpcy5zb2NrZXRTZW5kKFN0cmluZy5mcm9tQ2hhckNvZGUoMTksMCwwLDAsMCwwLDAsMCwwKSksdD0xMytlO2JyZWFrfWRlZmF1bHQ6dGhpcy5zdG9wKCl9YnJlYWs7Y2FzZSAyMDp7aWYodGhpcy5sb2dnZXIudmVyYm9zZShcIkF2YWlsYWJsZSBBdXRoZW50aWNhdGlvbnMgcmVwbHkgcmVjZWl2ZWQuXCIpLHRoaXMuYW10QWNjdW11bGF0b3IubGVuZ3RoPDkpcmV0dXJuO2NvbnN0IGU9by5yLlJlYWRJbnRYKHRoaXMuYW10QWNjdW11bGF0b3IsNSk7aWYodGhpcy5hbXRBY2N1bXVsYXRvci5sZW5ndGg8OStlKXJldHVybjtjb25zdCBhPXRoaXMuYW10QWNjdW11bGF0b3IuY2hhckNvZGVBdCgxKSxzPXRoaXMuYW10QWNjdW11bGF0b3IuY2hhckNvZGVBdCg0KSxpPVtdO2ZvcihsZXQgdD0wO3Q8ZTt0KyspaS5wdXNoKHRoaXMuYW10QWNjdW11bGF0b3IuY2hhckNvZGVBdCg5K3QpKTtjb25zdCByPXRoaXMuYW10QWNjdW11bGF0b3Iuc3Vic3RyaW5nKDksOStlKTtpZih0PTkrZSwwPT09cykoMCxuLmYpKGkuaW5jbHVkZXMoNCkpPyh0aGlzLmxvZ2dlci52ZXJib3NlKFwiR29vZCBEaWdlc3QgQXV0aCAoV2l0aCBjbm9uY2UgYW5kIGFsbClcIiksdGhpcy5zb2NrZXRTZW5kKFN0cmluZy5mcm9tQ2hhckNvZGUoMTksMCwwLDAsNCkrby5yLkludFRvU3RyWCh0aGlzLnVzZXIubGVuZ3RoK3RoaXMuYXV0aFVyaS5sZW5ndGgrOCkrU3RyaW5nLmZyb21DaGFyQ29kZSh0aGlzLnVzZXIubGVuZ3RoKSt0aGlzLnVzZXIrU3RyaW5nLmZyb21DaGFyQ29kZSgwLDApK1N0cmluZy5mcm9tQ2hhckNvZGUodGhpcy5hdXRoVXJpLmxlbmd0aCkrdGhpcy5hdXRoVXJpK1N0cmluZy5mcm9tQ2hhckNvZGUoMCwwLDAsMCkpKTooMCxuLmYpKGkuaW5jbHVkZXMoMykpPyh0aGlzLmxvZ2dlci53YXJuKFwiQmFkIERpZ2VzdCBBdXRoXCIpLHRoaXMuc29ja2V0U2VuZChTdHJpbmcuZnJvbUNoYXJDb2RlKDE5LDAsMCwwLDMpK28uci5JbnRUb1N0clgodGhpcy51c2VyLmxlbmd0aCt0aGlzLmF1dGhVcmkubGVuZ3RoKzcpK1N0cmluZy5mcm9tQ2hhckNvZGUodGhpcy51c2VyLmxlbmd0aCkrdGhpcy51c2VyK1N0cmluZy5mcm9tQ2hhckNvZGUoMCwwKStTdHJpbmcuZnJvbUNoYXJDb2RlKHRoaXMuYXV0aFVyaS5sZW5ndGgpK3RoaXMuYXV0aFVyaStTdHJpbmcuZnJvbUNoYXJDb2RlKDAsMCwwKSkpOigwLG4uZikoaS5pbmNsdWRlcygxKSk/KHRoaXMubG9nZ2VyLnZlcmJvc2UoXCJCYXNpYyBBdXRoXCIpLHRoaXMuc29ja2V0U2VuZChTdHJpbmcuZnJvbUNoYXJDb2RlKDE5LDAsMCwwLDEpK28uci5JbnRUb1N0clgodGhpcy51c2VyLmxlbmd0aCt0aGlzLnBhc3MubGVuZ3RoKzIpK1N0cmluZy5mcm9tQ2hhckNvZGUodGhpcy51c2VyLmxlbmd0aCkrdGhpcy51c2VyK1N0cmluZy5mcm9tQ2hhckNvZGUodGhpcy5wYXNzLmxlbmd0aCkrdGhpcy5wYXNzKSk6KHRoaXMubG9nZ2VyLmVycm9yKFwiQXV0aCBUeXBlIG5vdCByZWNvZ25pemVkLiBTdG9wcGluZy5cIiksdGhpcy5zdG9wKCkpO2Vsc2UgaWYoMyE9PXMmJjQhPT1zfHwxIT09YSlpZigwPT09YSl7aWYoMT09PXRoaXMucHJvdG9jb2wpe2NvbnN0IHQ9MWU0LGU9MTAwLGE9MCxzPTFlNCxpPTEwMCxyPTA7dGhpcy5zb2NrZXRTZW5kKFN0cmluZy5mcm9tQ2hhckNvZGUoMzIsMCwwLDApK28uci5JbnRUb1N0clgodGhpcy5hbXRTZXF1ZW5jZSsrKStvLnIuU2hvcnRUb1N0clgodCkrby5yLlNob3J0VG9TdHJYKGUpK28uci5TaG9ydFRvU3RyWChhKStvLnIuU2hvcnRUb1N0clgocykrby5yLlNob3J0VG9TdHJYKGkpK28uci5TaG9ydFRvU3RyWChyKStvLnIuSW50VG9TdHJYKDApKX0yPT09dGhpcy5wcm90b2NvbCYmdGhpcy5zb2NrZXRTZW5kKFN0cmluZy5mcm9tQ2hhckNvZGUoNjQsMCwwLDAsMCwwLDAsMCkpLDM9PT10aGlzLnByb3RvY29sJiYodGhpcy5jb25uZWN0U3RhdGU9MSx0aGlzLm9uU3RhdGVDaGFuZ2UoMykpfWVsc2UgdGhpcy5zdG9wKCk7ZWxzZXtsZXQgdD0wO2NvbnN0IGU9ci5jaGFyQ29kZUF0KHQpLGE9ci5zdWJzdHJpbmcodCsxLHQrMStlKTt0Kz1lKzE7Y29uc3QgaT1yLmNoYXJDb2RlQXQodCksbj1yLnN1YnN0cmluZyh0KzEsdCsxK2kpO3QrPWkrMTtsZXQgbD0wLGg9bnVsbDtjb25zdCBjPXRoaXMuZ2VuZXJhdGVSYW5kb21Ob25jZSgzMikscD1cIjAwMDAwMDAyXCI7bGV0IGQ9XCJcIjs0PT09cyYmKGw9ci5jaGFyQ29kZUF0KHQpLGg9ci5zdWJzdHJpbmcodCsxLHQrMStsKSx0Kz1sKzEsZD1gJHtwfToke2N9OiR7U3RyaW5nKGgpfSA6YCk7Y29uc3Qgdj10aGlzLmhleF9tZDUodGhpcy5oZXhfbWQ1KHRoaXMudXNlcitcIjpcIithK1wiOlwiK3RoaXMucGFzcykrXCI6XCIrbitcIjpcIitkK3RoaXMuaGV4X21kNShcIlBPU1Q6XCIrdGhpcy5hdXRoVXJpKSk7bGV0IGI9dGhpcy51c2VyLmxlbmd0aCthLmxlbmd0aCtuLmxlbmd0aCt0aGlzLmF1dGhVcmkubGVuZ3RoK2MubGVuZ3RoK3AubGVuZ3RoK3YubGVuZ3RoKzc7ND09PXMmJihiKz1wYXJzZUludChoLmxlbmd0aCkrMSk7bGV0IHU9U3RyaW5nLmZyb21DaGFyQ29kZSgxOSwwLDAsMCxzKStvLnIuSW50VG9TdHJYKGIpK1N0cmluZy5mcm9tQ2hhckNvZGUodGhpcy51c2VyLmxlbmd0aCkrdGhpcy51c2VyK1N0cmluZy5mcm9tQ2hhckNvZGUoYS5sZW5ndGgpK2ErU3RyaW5nLmZyb21DaGFyQ29kZShuLmxlbmd0aCkrbitTdHJpbmcuZnJvbUNoYXJDb2RlKHRoaXMuYXV0aFVyaS5sZW5ndGgpK3RoaXMuYXV0aFVyaStTdHJpbmcuZnJvbUNoYXJDb2RlKGMubGVuZ3RoKStjK1N0cmluZy5mcm9tQ2hhckNvZGUocC5sZW5ndGgpK3ArU3RyaW5nLmZyb21DaGFyQ29kZSh2Lmxlbmd0aCkrdjs0PT09cyYmKHU9U3RyaW5nKHUpKyhTdHJpbmcuZnJvbUNoYXJDb2RlKGgubGVuZ3RoKStTdHJpbmcoaCkpKSx0aGlzLnNvY2tldFNlbmQodSl9YnJlYWt9Y2FzZSAzMzppZih0aGlzLmFtdEFjY3VtdWxhdG9yLmxlbmd0aDwyMylicmVhazt0aGlzLmxvZ2dlci52ZXJib3NlKFwiUmVzcG9uc2UgdG8gc2V0dGluZ3NcIiksdD0yMyx0aGlzLnNvY2tldFNlbmQoU3RyaW5nLmZyb21DaGFyQ29kZSgzOSwwLDAsMCkrby5yLkludFRvU3RyWCh0aGlzLmFtdFNlcXVlbmNlKyspK1N0cmluZy5mcm9tQ2hhckNvZGUoMCwwLDI3LDAsMCwwKSksMT09PXRoaXMucHJvdG9jb2wmJih0aGlzLmFtdEtlZXBBbGl2ZVRpbWVyPXNldEludGVydmFsKHRoaXMuc2VuZEFtdEtlZXBBbGl2ZS5iaW5kKHRoaXMpLDJlMykpLHRoaXMuY29ubmVjdFN0YXRlPTEsdGhpcy5vblN0YXRlQ2hhbmdlKDMpO2JyZWFrO2Nhc2UgNDE6aWYodGhpcy5hbXRBY2N1bXVsYXRvci5sZW5ndGg8MTApYnJlYWs7dGhpcy5sb2dnZXIudmVyYm9zZShcIlNlcmlhbCBTZXR0aW5nc1wiKSx0PTEwO2JyZWFrO2Nhc2UgNDI6e2lmKHRoaXMuYW10QWNjdW11bGF0b3IubGVuZ3RoPDEwKWJyZWFrO3RoaXMubG9nZ2VyLnZlcmJvc2UoXCJJbmNvbWluZyBkaXNwbGF5IGRhdGFcIik7Y29uc3QgZT0xMCsoKDI1NSZ0aGlzLmFtdEFjY3VtdWxhdG9yLmNoYXJDb2RlQXQoOSkpPDw4KSsoMjU1JnRoaXMuYW10QWNjdW11bGF0b3IuY2hhckNvZGVBdCg4KSk7aWYodGhpcy5hbXRBY2N1bXVsYXRvci5sZW5ndGg8ZSlicmVhazt0aGlzLm9uUHJvY2Vzc0RhdGEodGhpcy5hbXRBY2N1bXVsYXRvci5zdWJzdHJpbmcoMTAsZSkpLHQ9ZTticmVha31jYXNlIDQzOmlmKHRoaXMuYW10QWNjdW11bGF0b3IubGVuZ3RoPDgpYnJlYWs7dGhpcy5sb2dnZXIudmVyYm9zZShcIktlZXAgQWx2ZSBtZXNzYWdlXCIpLHQ9ODticmVhaztjYXNlIDY1OmlmKHRoaXMuYW10QWNjdW11bGF0b3IubGVuZ3RoPDgpYnJlYWs7dGhpcy5sb2dnZXIudmVyYm9zZShcIktWTSB0cmFmZmljLiBDYWxsIG9uU3RhcnQgaGFuZGxlci4gQW5kIGZvcndhcmQgcmVzdCBvZiBhY2MgZGlyZWN0bHkuXCIpLHRoaXMuY29ubmVjdFN0YXRlPTEsdGhpcy5vblN0YXJ0KCksdGhpcy5hbXRBY2N1bXVsYXRvci5sZW5ndGg+OCYmdGhpcy5vblByb2Nlc3NEYXRhKHRoaXMuYW10QWNjdW11bGF0b3Iuc3Vic3RyaW5nKDgpKSx0PXRoaXMuYW10QWNjdW11bGF0b3IubGVuZ3RoO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIHRoaXMubG9nZ2VyLmVycm9yKGBVbmtub3duIEludGVsIEFNVCBjb21tYW5kOiAgJHt0aGlzLmFtdEFjY3VtdWxhdG9yLmNoYXJDb2RlQXQoMCl9ICBhY2NsZW49JHt0aGlzLmFtdEFjY3VtdWxhdG9yLmxlbmd0aH1gKSx2b2lkIHRoaXMuc3RvcCgpfWlmKDA9PT10KXJldHVybjt0aGlzLmFtdEFjY3VtdWxhdG9yPXRoaXMuYW10QWNjdW11bGF0b3Iuc3Vic3RyaW5nKHQpfX19aGV4X21kNSh0KXtyZXR1cm4gdGhpcy5sb2dnZXIudmVyYm9zZShcIk1ENSB0aGUgc3RyaW5nXCIpLHIoKSh0KX1zb2NrZXRTZW5kKHQpeygwLG4uZikodGhpcy51cmx2YXJzKSYmKDAsbi5mKSh0aGlzLnVybHZhcnMucmVkaXJ0cmFjZSkmJnRoaXMubG9nZ2VyLnZlcmJvc2UoYFJFRElSLVNFTkQoJHt0Lmxlbmd0aH0pOiAke28uci5yc3RyMmhleCh0KX1gKTt0cnl7aWYobnVsbCE9dGhpcy5zb2NrZXQmJjE9PT10aGlzLnNvY2tldC5yZWFkeVN0YXRlKXtjb25zdCBlPW5ldyBVaW50OEFycmF5KHQubGVuZ3RoKTt0aGlzLmxvZ2dlci52ZXJib3NlKGBSZWRpciBTZW5kKCAke3QubGVuZ3RofSk6ICR7by5yLnJzdHIyaGV4KHQpfWApO2ZvcihsZXQgYT0wO2E8dC5sZW5ndGg7KythKWVbYV09dC5jaGFyQ29kZUF0KGEpO3RoaXMuc29ja2V0LnNlbmQoZS5idWZmZXIpfX1jYXRjaCh0KXt0aGlzLmxvZ2dlci5lcnJvcihgU29ja2V0IHNlbmQgZXJyb3I6ICR7U3RyaW5nKHQpfWApfX1zZW5kKHQpe3RoaXMubG9nZ2VyLnZlcmJvc2UoXCJTZW5kIGNhbGxlZCBcIit0KSxudWxsIT10aGlzLnNvY2tldCYmMT09PXRoaXMuY29ubmVjdFN0YXRlJiYodGhpcy5wcm90b2NvbD09PXMuU09MP3RoaXMuc29ja2V0U2VuZChTdHJpbmcuZnJvbUNoYXJDb2RlKDQwLDAsMCwwKStvLnIuSW50VG9TdHJYKHRoaXMuYW10U2VxdWVuY2UrKykrby5yLlNob3J0VG9TdHJYKHQubGVuZ3RoKSt0KTp0aGlzLnNvY2tldFNlbmQodCkpfXNlbmRBbXRLZWVwQWxpdmUoKXtudWxsIT10aGlzLnNvY2tldCYmdGhpcy5zb2NrZXRTZW5kKFN0cmluZy5mcm9tQ2hhckNvZGUoNDMsMCwwLDApK28uci5JbnRUb1N0clgodGhpcy5hbXRTZXF1ZW5jZSsrKSl9Z2VuZXJhdGVSYW5kb21Ob25jZSh0KXtsZXQgZT1cIlwiO2ZvcihsZXQgYT0wO2E8dDthKyspZSs9dGhpcy5yYW5kb21Ob25jZUNoYXJzLmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqdGhpcy5yYW5kb21Ob25jZUNoYXJzLmxlbmd0aCkpO3JldHVybiBlfW9uU29ja2V0Q2xvc2VkKHQpeygwLG4uZikodGhpcy51cmx2YXJzKSYmKDAsbi5mKSh0aGlzLnVybHZhcnMucmVkaXJ0cmFjZSkmJmNvbnNvbGUubG9nKFwiUkVESVItQ0xPU0VEXCIpLHRoaXMubG9nZ2VyLndhcm4oXCJSZWRpciBTb2NrZXQgQ2xvc2VkXCIpLHRoaXMuc3RvcCgpfW9uU3RhdGVDaGFuZ2UodCl7Y29uc29sZS5pbmZvKFwib25zdGF0ZWNoYW5nZVwiLHQpLHRoaXMuc3RhdGUhPT10JiYodGhpcy5zdGF0ZT10LHRoaXMub25OZXdTdGF0ZSh0aGlzLnN0YXRlKSxudWxsIT10aGlzLm9uU3RhdGVDaGFuZ2VkJiZ0aGlzLm9uU3RhdGVDaGFuZ2VkKHRoaXMsdGhpcy5zdGF0ZSkpfXN0b3AoKXt0aGlzLmxvZ2dlci53YXJuKFwiU3RvcCBjYWxsZWQgb24gUmVkaXJlY3Rvci4gQ2hhbmdlIHN0YXRlIHRvIDAgYW5kIGNsb3NlIFNvY2tldC5cIiksdGhpcy5vblN0YXRlQ2hhbmdlKDApLHRoaXMuY29ubmVjdFN0YXRlPS0xLHRoaXMuYW10QWNjdW11bGF0b3I9XCJcIixudWxsIT10aGlzLnNvY2tldCYmKHRoaXMuc29ja2V0LmNsb3NlKCksdGhpcy5zb2NrZXQ9bnVsbCksbnVsbCE9dGhpcy5hbXRLZWVwQWxpdmVUaW1lciYmKGNsZWFySW50ZXJ2YWwodGhpcy5hbXRLZWVwQWxpdmVUaW1lciksdGhpcy5hbXRLZWVwQWxpdmVUaW1lcj1udWxsKX19fSwyNzc6KHQsZSxhKT0+e1widXNlIHN0cmljdFwiO2EuZChlLHtyOigpPT5zfSk7Y2xhc3Mgc3tjb25zdHJ1Y3Rvcigpe3RoaXMudGVybWluYWxFbXVsYXRpb249MSx0aGlzLmZ4RW11bGF0aW9uPTAsdGhpcy5meExpbmVCcmVhaz0wLHRoaXMuQXNjaWlUb1VuaWNvZGU9WzE5OSwyNTIsMjMzLDIyNiwyMjgsMjI0LDIyOSwyMzEsMjM0LDIzNSwyMzIsMjM5LDIzOCwyMzYsMTk2LDE5NywyMDEsMjMwLDE5OCwyNDQsMjQ2LDI0MiwyNTEsMjQ5LDI1NSwyMTQsMjIwLDE2MiwxNjMsMTY1LDgzNTksNDAyLDIyNSwyMzcsMjQzLDI1MCwyNDEsMjA5LDE3MCwyMTgsMTkxLDg5NzYsMTcyLDE4OSwxODgsMTYxLDE3MSwxODcsOTYxOSw5NjE4LDk2MTcsOTQ3NCw5NTA4LDk1NjksOTU3MCw5NTU4LDk1NTcsOTU3MSw5NTUzLDk1NTksOTU2NSw5NTY0LDk1NjMsOTQ4OCw5NDkyLDk1MjQsOTUxNiw5NTAwLDk0NzIsOTUzMiw5NTY2LDk1NjcsOTU2Miw5NTU2LDk1NzcsOTU3NCw5NTY4LDk1NTIsOTU4MCw5NTc1LDk1NzYsOTU3Miw5NTczLDk1NzYsOTU2MCw5NTU0LDk1NTUsOTU3OSw5NTc4LDk0OTYsOTQ4NCw5NjA4LDk2MDQsOTYxMSw5NjE2LDk2MDAsOTQ1LDIyMyw5MTUsOTYwLDkzMSw5NjMsMTgxLDk2NCw5NjYsOTUyLDg0ODYsOTQ4LDg3MzQsMjQ4LDk0OSw4NzE5LDg4MDEsMTc3LDg4MDUsODgwNiw4OTkyLDg5OTMsMjQ3LDg3NzYsMTc2LDgyMjYsMTgzLDg3MzAsODMxOSwxNzgsODcxOCwxNjBdLHRoaXMuQXNjaWlUb1VuaWNvZGVJbnRlbD1bMTk5LDI1MiwyMzMsMjI2LDIyOCwyMjQsMjI5LDIzMSwyMzQsMjM1LDIzMiwyMzksMjM4LDIzNiwxOTYsMTk3LDIwMSwyMzAsMTk4LDI0NCwyNDYsMjQyLDI1MSwyNDksMjU1LDIxNCwyMjAsMTYyLDE2MywxNjUsODM1OSw0MDIsMjI1LDIzNywyNDMsMjUwLDI0MSwyMDksMTcwLDIxOCwxOTEsODk3NiwxNzIsMTg5LDE4OCwxNjEsMTc0LDE4Nyw5NjE5LDk2MTgsOTYxNyw5NDc0LDk1MDgsOTU2OSw5NTcwLDk1NTgsOTU1Nyw5NTcxLDk1NTMsOTU1OSw5NTY1LDk1NjQsOTU2Myw5NDg4LDk0OTIsOTUyNCw5NTE2LDk1MDAsOTQ3Miw5NTMyLDk1NjYsOTU2Nyw5NTYyLDk1NTYsOTU3Nyw5NTc0LDk1NjgsOTU1Miw5NTgwLDk1NzUsOTU3Niw5NTcyLDk1NzMsOTU3Niw5NTYwLDk1NTQsOTU1NSw5NTc5LDk1NzgsOTQ5Niw5NDg0LDk2MDgsOTYwNCw5NjExLDk2MTYsOTYwMCw5NDUsMjIzLDkxNSw5NjAsOTMxLDk2MywxODEsOTY0LDk2Niw5NTIsODQ4Niw5NDgsODczNCwyNDgsOTQ5LDg3MTksODgwMSwxNzcsODgwNSw4ODA2LDg5OTIsODk5MywyNDcsODc3NiwxNzYsODIyNiwxODMsODczMCw4MzE5LDE3OCw4NzE4LDE2MF0sdGhpcy5TdGF0ZUNoYW5nZT10PT57fSx0aGlzLlRlcm1TZW5kS2V5cz10PT50aGlzLm9uU2VuZCh0KX19fSwyMzc6KHQsZSxhKT0+e1widXNlIHN0cmljdFwiO2EuZChlLHtrOigpPT5vfSk7dmFyIHM9YSgyMDEpO2NsYXNzIG97Y29uc3RydWN0b3IodCl7dGhpcy5taW5MZXZlbD10fWxvZyh0LGUpe3N3aXRjaCh0KXtjYXNlIHMuaS5WRVJCT1NFOnRoaXMudmVyYm9zZShlKTticmVhaztjYXNlIHMuaS5JTkZPOnRoaXMuaW5mbyhlKTticmVhaztjYXNlIHMuaS5ERUJVRzp0aGlzLmRlYnVnKGUpO2JyZWFrO2Nhc2Ugcy5pLldBUk5JTkc6dGhpcy53YXJuKGUpO2JyZWFrO2Nhc2Ugcy5pLkVSUk9SOnRoaXMuZXJyb3IoZSl9fWRlYnVnKHQpe3RoaXMubWluTGV2ZWw+PXMuaS5ERUJVRyYmY29uc29sZS5kZWJ1Zyh0KX1pbmZvKHQpe3RoaXMubWluTGV2ZWw+PXMuaS5JTkZPJiZjb25zb2xlLmluZm8odCl9ZXJyb3IodCl7dGhpcy5taW5MZXZlbD49cy5pLkVSUk9SJiZjb25zb2xlLmVycm9yKHQpfXdhcm4odCl7dGhpcy5taW5MZXZlbD49cy5pLldBUk5JTkcmJmNvbnNvbGUud2Fybih0KX12ZXJib3NlKHQpe3RoaXMubWluTGV2ZWw+PXMuaS5WRVJCT1NFJiZjb25zb2xlLmxvZyh0KX19fSw1NjU6KHQsZSxhKT0+e1widXNlIHN0cmljdFwiO2EuZChlLHtyOigpPT5vfSk7dmFyIHM9YSg2MTEpO2NvbnN0IG89e1JlYWRTaG9ydDoodCxlKT0+KHQuY2hhckNvZGVBdChlKTw8OCkrdC5jaGFyQ29kZUF0KGUrMSksUmVhZFNob3J0WDoodCxlKT0+KHQuY2hhckNvZGVBdChlKzEpPDw4KSt0LmNoYXJDb2RlQXQoZSksUmVhZEludDoodCxlKT0+MTY3NzcyMTYqdC5jaGFyQ29kZUF0KGUpKyh0LmNoYXJDb2RlQXQoZSsxKTw8MTYpKyh0LmNoYXJDb2RlQXQoZSsyKTw8OCkrdC5jaGFyQ29kZUF0KGUrMyksUmVhZFNJbnQ6KHQsZSk9Pih0LmNoYXJDb2RlQXQoZSk8PDI0KSsodC5jaGFyQ29kZUF0KGUrMSk8PDE2KSsodC5jaGFyQ29kZUF0KGUrMik8PDgpK3QuY2hhckNvZGVBdChlKzMpLFJlYWRJbnRYOih0LGUpPT4xNjc3NzIxNip0LmNoYXJDb2RlQXQoZSszKSsodC5jaGFyQ29kZUF0KGUrMik8PDE2KSsodC5jaGFyQ29kZUF0KGUrMSk8PDgpK3QuY2hhckNvZGVBdChlKSxTaG9ydFRvU3RyOnQ9PlN0cmluZy5mcm9tQ2hhckNvZGUodD4+OCYyNTUsMjU1JnQpLFNob3J0VG9TdHJYOnQ9PlN0cmluZy5mcm9tQ2hhckNvZGUoMjU1JnQsdD4+OCYyNTUpLEludFRvU3RyOnQ9PlN0cmluZy5mcm9tQ2hhckNvZGUodD4+MjQmMjU1LHQ+PjE2JjI1NSx0Pj44JjI1NSwyNTUmdCksSW50VG9TdHJYOnQ9PlN0cmluZy5mcm9tQ2hhckNvZGUoMjU1JnQsdD4+OCYyNTUsdD4+MTYmMjU1LHQ+PjI0JjI1NSksU3BsaXRBcnJheTp0PT50LnNwbGl0KFwiLFwiKSxDbG9uZTp0PT5KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHQpKSxFc2NhcGVIdG1sOnQ9Plwic3RyaW5nXCI9PXR5cGVvZiB0P3QucmVwbGFjZSgvJi9nLFwiJmFtcDtcIikucmVwbGFjZSgvPi9nLFwiJmd0O1wiKS5yZXBsYWNlKC88L2csXCImbHQ7XCIpLnJlcGxhY2UoL1wiL2csXCImcXVvdDtcIikucmVwbGFjZSgvJy9nLFwiJmFwb3M7XCIpOlwiYm9vbGVhblwiPT10eXBlb2YgdHx8XCJudW1iZXJcIj09dHlwZW9mIHQ/dDp2b2lkIDAsQXJyYXlFbGVtZW50TW92ZSh0LGUsYSl7dC5zcGxpY2UoYSwwLHQuc3BsaWNlKGUsMSlbMF0pfSxPYmplY3RUb1N0cmluZ0V4KHQsZSl7bGV0IGE9XCJcIjtpZigwIT09dCYmKCEoMCxzLmYpKHQpfHxudWxsPT10KSlyZXR1cm5cIihOdWxsKVwiO2lmKHQgaW5zdGFuY2VvZiBBcnJheSlmb3IoY29uc3QgcyBpbiB0KWE9YStcIjxiciAvPlwiK1N0cmluZyh0aGlzLmdhcChlKSkrXCJJdGVtICNcIitTdHJpbmcocykrXCI6IFwiK1N0cmluZyh0aGlzLk9iamVjdFRvU3RyaW5nRXgodFtzXSxlKzEpKTtlbHNlIGlmKHQgaW5zdGFuY2VvZiBPYmplY3QpZm9yKGNvbnN0IHMgaW4gdClhPWErXCI8YnIgLz5cIitTdHJpbmcodGhpcy5nYXAoZSkpK1N0cmluZyhzKStcIiA9IFwiK1N0cmluZyh0aGlzLk9iamVjdFRvU3RyaW5nRXgodFtzXSxlKzEpKTtlbHNlIGErPVN0cmluZyh0aGlzLkVzY2FwZUh0bWwodCkpO3JldHVybiBhfSxPYmplY3RUb1N0cmluZ0V4Mih0LGUpe2xldCBhPVwiXCI7aWYoMCE9PXQmJighKDAscy5mKSh0KXx8bnVsbD09dCkpcmV0dXJuXCIoTnVsbClcIjtpZih0IGluc3RhbmNlb2YgQXJyYXkpZm9yKGNvbnN0IHMgaW4gdClhPWErXCJcXHJcXG5cIitTdHJpbmcodGhpcy5nYXAyKGUpKStcIkl0ZW0gI1wiK1N0cmluZyhzKStcIjogXCIrU3RyaW5nKHRoaXMuT2JqZWN0VG9TdHJpbmdFeDIodFtzXSxlKzEpKTtlbHNlIGlmKHQgaW5zdGFuY2VvZiBPYmplY3QpZm9yKGNvbnN0IHMgaW4gdClhPWErXCJcXHJcXG5cIitTdHJpbmcodGhpcy5nYXAyKGUpKStTdHJpbmcocykrXCIgPSBcIitTdHJpbmcodGhpcy5PYmplY3RUb1N0cmluZ0V4Mih0W3NdLGUrMSkpO2Vsc2UgYSs9U3RyaW5nKHRoaXMuRXNjYXBlSHRtbCh0KSk7cmV0dXJuIGF9LGdhcCh0KXtsZXQgZT1cIlwiO2ZvcihsZXQgYT0wO2E8NCp0O2ErKyllKz1cIiZuYnNwO1wiO3JldHVybiBlfSxnYXAyKHQpe2xldCBlPVwiXCI7Zm9yKGxldCBhPTA7YTw0KnQ7YSsrKWUrPVwiIFwiO3JldHVybiBlfSxPYmplY3RUb1N0cmluZyh0KXtyZXR1cm4gdGhpcy5PYmplY3RUb1N0cmluZ0V4KHQsMCl9LE9iamVjdFRvU3RyaW5nMih0KXtyZXR1cm4gdGhpcy5PYmplY3RUb1N0cmluZ0V4Mih0LDApfSxjaGFyMmhleDp0PT4odCsyNTYpLnRvU3RyaW5nKDE2KS5zdWJzdHIoLTIpLnRvVXBwZXJDYXNlKCkscnN0cjJoZXgodCl7bGV0IGUsYT1cIlwiO2ZvcihlPTA7ZTx0Lmxlbmd0aDtlKyspYSs9U3RyaW5nKHRoaXMuY2hhcjJoZXgodC5jaGFyQ29kZUF0KGUpKSk7cmV0dXJuIGF9LGVuY29kZV91dGY4OnQ9PnVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudCh0KSksZGVjb2RlX3V0Zjg6dD0+ZGVjb2RlVVJJQ29tcG9uZW50KGVzY2FwZSh0KSksZGF0YTJibG9iKHQpe2NvbnN0IGU9bmV3IEFycmF5KHQubGVuZ3RoKTtmb3IobGV0IGE9MDthPHQubGVuZ3RoO2ErKyllW2FdPXQuY2hhckNvZGVBdChhKTtyZXR1cm4gbmV3IEJsb2IoW25ldyBVaW50OEFycmF5KGUpXSl9LHJhbmRvbTp0PT5NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqdCksdHJhZGVtYXJrczp0PT50LnJlcGxhY2UoL1xcKFJcXCkvZyxcIiZyZWc7XCIpLnJlcGxhY2UoL1xcKFRNXFwpL2csXCImdHJhZGU7XCIpfX0sNDY6KHQsZSxhKT0+e1widXNlIHN0cmljdFwiO2EuZChlLHtIOigpPT5zfSk7Y2xhc3Mgc3twcm9jZXNzRGF0YSh0KXt9b25TdGF0ZUNoYW5nZSh0KXt9c3RhcnQoKXt9b25TZW5kS3ZtRGF0YSh0KXt9fX0sNzg0Oih0LGUsYSk9PntcInVzZSBzdHJpY3RcIjthLmQoZSx7JDooKT0+aX0pO3ZhciBzPWEoOTg5KSxvPWEoNjExKTtjbGFzcyBpe2NvbnN0cnVjdG9yKHQsZSxhKXt0aGlzLmFjYz1cIlwiLHRoaXMuc3RhdGVQcm9jZXNzb3JGYWM9bmV3IHMudihlLGEsdGhpcy51cGRhdGVSRkJTdGF0ZS5iaW5kKHRoaXMpKSx0aGlzLnBhcmVudD1hLHRoaXMubG9nZ2VyPXR9cHJvY2Vzc0RhdGEodCl7aWYoISgwLG8uZikodCkpcmV0dXJuO3RoaXMuYWNjKz10O2xldCBlPTA7Zm9yKHRoaXMubG9nZ2VyLnZlcmJvc2UoYFByb2Nlc3MgRGF0YSBBQ0MgbGVuZ3RoOiAgJHt0aGlzLmFjYy5sZW5ndGh9YCk7dGhpcy5hY2MubGVuZ3RoPjA7KXtjb25zdCB0PXRoaXMuc3RhdGVQcm9jZXNzb3JGYWMuZ2V0UHJvY2Vzc29yKHRoaXMucGFyZW50LnN0YXRlKSxhPXRoaXMucGFyZW50LnN0YXRlO2lmKGU9dC5wcm9jZXNzU3RhdGUodGhpcy5hY2MpLHRoaXMubG9nZ2VyLnZlcmJvc2UoYFN0YXRlICAke2F9ICBQcm9jZXNzZWQuIGNtZFNpemUgcmV0dXJuZWQgJHtlfWApLDA9PT1lKXJldHVybjt0aGlzLmFjYz10aGlzLmFjYy5zdWJzdHJpbmcoZSksdGhpcy5sb2dnZXIudmVyYm9zZShgcmVtYWluaW5nIGFjYyAgJHt0aGlzLmFjYy5sZW5ndGh9IGNvbW1hbmQgc2l6ZTogJHtlfSBuZXcgcGFyZW50IHN0YXRlOiAke3RoaXMucGFyZW50LnN0YXRlfWApfX11cGRhdGVSRkJTdGF0ZSh0KXt0aGlzLnBhcmVudC5zdGF0ZT10fX19LDY3OToodCxlLGEpPT57XCJ1c2Ugc3RyaWN0XCI7YS5kKGUse1g6KCk9Pm99KTt2YXIgcz1hKDY0NCk7Y2xhc3Mgb3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnBhcmVudD10fURlY29kZSh0LGUsYSxvLGkscixuLGwpe2NvbnN0IGg9dC5jaGFyQ29kZUF0KGUrKyk7bGV0IGMscCxkO2NvbnN0IHY9e307bGV0IGIsdT0wLGY9MDtpZigwPT09aCl7Zm9yKHRoaXMucGFyZW50LmxvZ2dlci52ZXJib3NlKFwiUmF3IGVuY29kaW5nXCIpLGI9MDtiPG47YisrKXMuai5zZXRQaXhlbCh0aGlzLnBhcmVudCx0LmNoYXJDb2RlQXQoZSsrKSsoMj09PXRoaXMucGFyZW50LmJwcD90LmNoYXJDb2RlQXQoZSsrKTw8ODowKSxiKTtzLmoucHV0SW1hZ2UodGhpcy5wYXJlbnQsYSxvKX1lbHNlIGlmKDE9PT1oKXtwPXQuY2hhckNvZGVBdChlKyspKygyPT09dGhpcy5wYXJlbnQuYnBwP3QuY2hhckNvZGVBdChlKyspPDw4OjApLHRoaXMucGFyZW50LmNhbnZhc0N0eC5maWxsU3R5bGU9XCJyZ2IoXCIrKDE9PT10aGlzLnBhcmVudC5icHA/YCR7MjI0JnB9LCAkeygyOCZwKTw8M30sICR7cy5qLmZpeENvbG9yKCgzJnApPDw2KX1gOmAke3A+PjgmMjQ4fSwgJHtwPj4zJjI1Mn0sJHsoMzEmcCk8PDN9YCkrXCIpXCIsdGhpcy5wYXJlbnQubG9nZ2VyLnZlcmJvc2UoXCJmaWxsc3R5bGU6IFwiK3RoaXMucGFyZW50LmNhbnZhc0N0eC5maWxsU3R5bGUpO2NvbnN0IG49cy5qLnJvdFgodGhpcy5wYXJlbnQsYSxvKTtvPXMuai5yb3RZKHRoaXMucGFyZW50LGEsbyksYT1uLHRoaXMucGFyZW50LmNhbnZhc0N0eC5maWxsUmVjdChhLG8saSxyKX1lbHNlIGlmKGg+MSYmaDwxNyl7dGhpcy5wYXJlbnQubG9nZ2VyLnZlcmJvc2UoXCJSZWFkIHRoZSBwYWNrZWQgcGFsZXR0ZVwiKTtsZXQgaT00LHI9MTU7Zm9yKGI9MDtiPGg7YisrKXZbYl09dC5jaGFyQ29kZUF0KGUrKykrKDI9PT10aGlzLnBhcmVudC5icHA/dC5jaGFyQ29kZUF0KGUrKyk8PDg6MCk7Zm9yKDI9PT1oPyhpPTEscj0xKTpoPD00JiYoaT0yLHI9Myk7dTxuJiZlPHQubGVuZ3RoOylmb3IocD10LmNoYXJDb2RlQXQoZSsrKSxiPTgtaTtiPj0wO2ItPWkpcy5qLnNldFBpeGVsKHRoaXMucGFyZW50LHZbcD4+YiZyXSx1KyspO3Muai5wdXRJbWFnZSh0aGlzLnBhcmVudCxhLG8pfWVsc2UgaWYoMTI4PT09aCl7Zm9yKHRoaXMucGFyZW50LmxvZ2dlci52ZXJib3NlKFwiUkxFIGVuY29kZWQgdGlsZVwiKTt1PG4mJmU8dC5sZW5ndGg7KXtwPXQuY2hhckNvZGVBdChlKyspKygyPT09dGhpcy5wYXJlbnQuYnBwP3QuY2hhckNvZGVBdChlKyspPDw4OjApLGY9MTtkb3tmKz1kPXQuY2hhckNvZGVBdChlKyspfXdoaWxlKDI1NT09PWQpO2Zvcig7LS1mPj0wOylzLmouc2V0UGl4ZWwodGhpcy5wYXJlbnQscCx1KyspfXMuai5wdXRJbWFnZSh0aGlzLnBhcmVudCxhLG8pfWVsc2UgaWYoaD4xMjkpe2Zvcih0aGlzLnBhcmVudC5sb2dnZXIudmVyYm9zZShcIlJlYWQgdGhlIFJMRSBwYWxldHRlXCIpLGI9MDtiPGgtMTI4O2IrKyl2W2JdPXQuY2hhckNvZGVBdChlKyspKygyPT09dGhpcy5wYXJlbnQuYnBwP3QuY2hhckNvZGVBdChlKyspPDw4OjApO2Zvcih0aGlzLnBhcmVudC5sb2dnZXIudmVyYm9zZShcIkRlY29kZSBSTEUgb24gcGFsZXR0ZVwiKTt1PG4mJmU8dC5sZW5ndGg7KXtpZihmPTEsYz10LmNoYXJDb2RlQXQoZSsrKSxwPXZbYyUxMjhdLGM+MTI3KWRve2YrPWQ9dC5jaGFyQ29kZUF0KGUrKyl9d2hpbGUoMjU1PT09ZCk7Zm9yKDstLWY+PTA7KXMuai5zZXRQaXhlbCh0aGlzLnBhcmVudCxwLHUrKyl9cy5qLnB1dEltYWdlKHRoaXMucGFyZW50LGEsbyl9fX19LDY0NjoodCxlLGEpPT57XCJ1c2Ugc3RyaWN0XCI7YS5kKGUseyQ6KCk9PnMuJCxYOigpPT5vLlh9KTt2YXIgcz1hKDc4NCksbz1hKDY3OSl9LDY2MzoodCxlLGEpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHM7YS5kKGUse2k6KCk9PnN9KSxmdW5jdGlvbih0KXt0W3QuVkVSQk9TRT01XT1cIlZFUkJPU0VcIix0W3QuSU5GTz00XT1cIklORk9cIix0W3QuREVCVUc9M109XCJERUJVR1wiLHRbdC5XQVJOSU5HPTJdPVwiV0FSTklOR1wiLHRbdC5FUlJPUj0xXT1cIkVSUk9SXCJ9KHN8fChzPXt9KSl9LDIwMToodCxlLGEpPT57XCJ1c2Ugc3RyaWN0XCI7YS5kKGUse2k6KCk9PnMuaX0pO3ZhciBzPWEoNjYzKX0sNzI1Oih0LGUsYSk9PntcInVzZSBzdHJpY3RcIjthLmQoZSx7ZTooKT0+aX0pO3ZhciBzPWEoNTY1KSxvPWEoOCk7Y2xhc3MgaXtjb25zdHJ1Y3Rvcih0LGUsYSxzKXt0aGlzLndzU29ja2V0PXQsdGhpcy5wYXJlbnQ9ZSx0aGlzLnJsZURlY29kZXI9YSx0aGlzLnVwZGF0ZVJGQlN0YXRlPXN9cHJvY2Vzc1N0YXRlKHQpe2xldCBlPTA7aWYodC5sZW5ndGg+PTEyKXtjb25zdCBhPXMuci5SZWFkU2hvcnQodCwwKSxpPXMuci5SZWFkU2hvcnQodCwyKSxyPXMuci5SZWFkU2hvcnQodCw0KSxuPXMuci5SZWFkU2hvcnQodCw2KSxsPXIqbixoPXMuci5SZWFkSW50KHQsOCk7aWYoaDwxNyl7aWYocjwxfHxyPjY0fHxuPDF8fG4+NjQpdGhyb3cgdGhpcy5wYXJlbnQubG9nZ2VyLmVycm9yKGBJbnZhbGlkIHRpbGUgc2l6ZSAoJHtyfSwke259KSwgZGlzY29ubmVjdGluZy5gKSxuZXcgRXJyb3IoXCJJbnZhbGlkIHRpbGUgc2l6ZVwiKTtpZih0aGlzLnBhcmVudC5zcGFyZXchPT1yfHx0aGlzLnBhcmVudC5zcGFyZWghPT1uKXt0aGlzLnBhcmVudC5zcGFyZXc9dGhpcy5wYXJlbnQuc3BhcmV3Mj1yLHRoaXMucGFyZW50LnNwYXJlaD10aGlzLnBhcmVudC5zcGFyZWgyPW4sMSE9PXRoaXMucGFyZW50LnJvdGF0aW9uJiYzIT09dGhpcy5wYXJlbnQucm90YXRpb258fCh0aGlzLnBhcmVudC5zcGFyZXcyPW4sdGhpcy5wYXJlbnQuc3BhcmVoMj1yKTtjb25zdCB0PWAke3RoaXMucGFyZW50LnNwYXJldzJ9eCR7dGhpcy5wYXJlbnQuc3BhcmVoMn1gO3RoaXMucGFyZW50LnNwYXJlPXRoaXMucGFyZW50LnNwYXJlY2FjaGVbdF0sKDAsby5mUSkodGhpcy5wYXJlbnQuc3BhcmUpfHwodGhpcy5wYXJlbnQuc3BhcmVjYWNoZVt0XT10aGlzLnBhcmVudC5zcGFyZT10aGlzLnBhcmVudC5jYW52YXNDdHguY3JlYXRlSW1hZ2VEYXRhKHRoaXMucGFyZW50LnNwYXJldzIsdGhpcy5wYXJlbnQuc3BhcmVoMikpfX1pZig0Mjk0OTY3MDczPT09aCl0aGlzLnBhcmVudC5sb2dnZXIudmVyYm9zZShcIkRlc2t0b3Agc2l6ZVwiKSx0aGlzLnBhcmVudC5jYW52YXNDdHguY2FudmFzLndpZHRoPXRoaXMucGFyZW50LlNjcmVlbldpZHRoPXRoaXMucGFyZW50LnJ3aWR0aD10aGlzLnBhcmVudC53aWR0aD1yLHRoaXMucGFyZW50LmNhbnZhc0N0eC5jYW52YXMuaGVpZ2h0PXRoaXMucGFyZW50LlNjcmVlbkhlaWdodD10aGlzLnBhcmVudC5yaGVpZ2h0PXRoaXMucGFyZW50LmhlaWdodD1uLHRoaXMud3NTb2NrZXQuc2VuZChTdHJpbmcuZnJvbUNoYXJDb2RlKDMsMCwwLDAsMCwwKStzLnIuU2hvcnRUb1N0cih0aGlzLnBhcmVudC53aWR0aCkrcy5yLlNob3J0VG9TdHIodGhpcy5wYXJlbnQuaGVpZ2h0KSksZT0xMixudWxsIT10aGlzLnBhcmVudC5vblNjcmVlblNpemVDaGFuZ2UmJnRoaXMucGFyZW50Lm9uU2NyZWVuU2l6ZUNoYW5nZSh0aGlzLnBhcmVudC5TY3JlZW5XaWR0aCx0aGlzLnBhcmVudC5TY3JlZW5IZWlnaHQpO2Vsc2UgaWYoMD09PWgpe2xldCBzPTEyO2NvbnN0IHI9MTIrbCp0aGlzLnBhcmVudC5icHA7aWYodC5sZW5ndGg8cilyZXR1cm4gMDtlPXI7Zm9yKGxldCBlPTA7ZTxsO2UrKylvLmp3LnNldFBpeGVsKHRoaXMucGFyZW50LHQuY2hhckNvZGVBdChzKyspKygyPT09dGhpcy5wYXJlbnQuYnBwP3QuY2hhckNvZGVBdChzKyspPDw4OjApLGUpO28uancucHV0SW1hZ2UodGhpcy5wYXJlbnQsYSxpKX1lbHNle2lmKDE2IT09aCl0aHJvdyB0aGlzLnBhcmVudC5sb2dnZXIuZXJyb3IoYFVua25vd24gRW5jb2Rpbmc6ICR7aH0gLCBIRVg6ICR7cy5yLnJzdHIyaGV4KHQpfWApLG5ldyBFcnJvcihgVW5rbm93biBFbmNvZGluZzogJHtofWApO3tpZih0Lmxlbmd0aDwxNilyZXR1cm4gMDtjb25zdCBvPXMuci5SZWFkSW50KHQsMTIpO2lmKHQubGVuZ3RoPDE2K28pcmV0dXJuIDA7Y29uc3QgaD0xNixjPTUscD0wO2lmKG8+NSYmMD09PXQuY2hhckNvZGVBdChoKSYmcy5yLlJlYWRTaG9ydFgodCxoKzEpPT09by1jKXRoaXMucmxlRGVjb2Rlci5EZWNvZGUodCxoKzUsYSxpLHIsbixsLG8pO2Vsc2V7Y29uc3QgZT10LnN1YnN0cmluZyhoLGgrby1wKSxzPXRoaXMucGFyZW50LmluZmxhdGUuaW5mbGF0ZShlKTtpZighKHMubGVuZ3RoPjApKXRocm93IHRoaXMucGFyZW50LmxvZ2dlci5lcnJvcihcIkludmFsaWQgZGVmbGF0ZSBkYXRhLlwiKSxuZXcgRXJyb3IoXCJpbnZhbGlkIGRlZmxhdGUgZGF0YVwiKTt0aGlzLnJsZURlY29kZXIuRGVjb2RlKHMsMCxhLGkscixuLGwscy5sZW5ndGgpfWU9MTYrb319aWYoMTAwPT0tLXRoaXMucGFyZW50LnN0YXRlKXt0aGlzLnBhcmVudC5sb2dnZXIuZGVidWcoXCJGcmFtZSBjb21wbGV0ZWQuIFVwZGF0ZSBzdGF0ZSBhbmQgcmVxdWVzdCBuZXcgZnJhbWVcIiksdGhpcy51cGRhdGVSRkJTdGF0ZSg0KTtjb25zdCB0PSgpPT5vLlhuLnNlbmRSZWZyZXNoKHRoaXMucGFyZW50LHRoaXMud3NTb2NrZXQpOzA9PT10aGlzLnBhcmVudC5mcmFtZVJhdGVEZWxheT9vLlhuLnNlbmRSZWZyZXNoKHRoaXMucGFyZW50LHRoaXMud3NTb2NrZXQpOnNldFRpbWVvdXQodCx0aGlzLnBhcmVudC5mcmFtZVJhdGVEZWxheSl9fXJldHVybiBlfX19LDcwOih0LGUsYSk9PntcInVzZSBzdHJpY3RcIjthLmQoZSx7VTooKT0+b30pO3ZhciBzPWEoNTY1KTtjbGFzcyBve2NvbnN0cnVjdG9yKHQsZSxhKXt0aGlzLndzU29ja2V0PXQsdGhpcy5zZXJ2ZXJDdXRUZXh0SGFuZGxlcj1lLHRoaXMudXBkYXRlUkZCU3RhdGU9YX1wcm9jZXNzU3RhdGUodCl7bGV0IGU9MCxhPTA7c3dpdGNoKHQuY2hhckNvZGVBdCgwKSl7Y2FzZSAwOmlmKHQubGVuZ3RoPDQpcmV0dXJuIDA7dGhpcy51cGRhdGVSRkJTdGF0ZSgxMDArcy5yLlJlYWRTaG9ydCh0LDIpKSxlPTQ7YnJlYWs7Y2FzZSAyOmU9MTticmVhaztjYXNlIDM6aWYodC5sZW5ndGg8OClyZXR1cm4gMDtpZihhPXMuci5SZWFkSW50KHQsNCkrOCx0Lmxlbmd0aDxhKXJldHVybiAwO2U9dGhpcy5zZXJ2ZXJDdXRUZXh0SGFuZGxlci5oYW5kbGVTZXJ2ZXJDdXRUZXh0KHQpfXJldHVybiBlfX19LDIxMjoodCxlLGEpPT57XCJ1c2Ugc3RyaWN0XCI7YS5kKGUse3c6KCk9PnN9KTtjbGFzcyBze2NvbnN0cnVjdG9yKHQsZSl7dGhpcy53c1NvY2tldD10LHRoaXMudXBkYXRlUkZCU3RhdGU9ZX1wcm9jZXNzU3RhdGUodCl7bGV0IGU9MDtyZXR1cm4gdC5sZW5ndGg+PTEyPyhlPTEyLHRoaXMudXBkYXRlUkZCU3RhdGUoMSksdGhpcy53c1NvY2tldC5zZW5kKFwiUkZCIDAwMy4wMDhcXG5cIiksZSk6MH19fSwyNjoodCxlLGEpPT57XCJ1c2Ugc3RyaWN0XCI7YS5kKGUse2w6KCk9PnN9KTtjbGFzcyBze2NvbnN0cnVjdG9yKHQsZSl7dGhpcy53c1NvY2tldD10LHRoaXMudXBkYXRlUkZCU3RhdGU9ZX1wcm9jZXNzU3RhdGUodCl7bGV0IGU9MDtyZXR1cm4gdC5sZW5ndGg+PTE/KGU9dC5jaGFyQ29kZUF0KDApKzEsdGhpcy53c1NvY2tldC5zZW5kKFN0cmluZy5mcm9tQ2hhckNvZGUoMSkpLHRoaXMudXBkYXRlUkZCU3RhdGUoMiksZSk6MH19fSw3MjQ6KHQsZSxhKT0+e1widXNlIHN0cmljdFwiO2EuZChlLHttOigpPT5vfSk7dmFyIHM9YSg1NjUpO2NsYXNzIG97Y29uc3RydWN0b3IodCxlKXt0aGlzLndzU29ja2V0PXQsdGhpcy51cGRhdGVSRkJTdGF0ZT1lfXByb2Nlc3NTdGF0ZSh0KXtsZXQgZT0wO2lmKHQubGVuZ3RoPj00KXtpZihlPTQsMCE9PXMuci5SZWFkSW50KHQsMCkpdGhyb3cgbmV3IEVycm9yKFwiRXJyb3IuIFN0b3BwaW5nLiBTZWN1cml0eSByZXNwb25zZSBub3QgTm9uZS5cIik7cmV0dXJuIHRoaXMud3NTb2NrZXQuc2VuZChTdHJpbmcuZnJvbUNoYXJDb2RlKDEpKSx0aGlzLnVwZGF0ZVJGQlN0YXRlKDMpLGV9cmV0dXJuIDB9fX0sMjU2Oih0LGUsYSk9PntcInVzZSBzdHJpY3RcIjthLmQoZSx7STooKT0+aX0pO3ZhciBzPWEoNTY1KSxvPWEoNjExKTtjbGFzcyBpe2NvbnN0cnVjdG9yKHQsZSl7dGhpcy53c1NvY2tldD10LHRoaXMucGFyZW50PWV9aGFuZGxlU2VydmVyQ3V0VGV4dCh0KXtpZih0Lmxlbmd0aDw4KXJldHVybiAwO2NvbnN0IGU9cy5yLlJlYWRJbnQodCw0KSs4O2lmKHQubGVuZ3RoPGUpcmV0dXJuIDA7aWYobnVsbCE9dGhpcy5wYXJlbnQub25Ldm1EYXRhKXtjb25zdCBhPXQuc3Vic3RyaW5nKDgsZSk7YS5sZW5ndGg+PTE2JiZcIlxcMEt2bURhdGFDaGFubmVsXCI9PT1hLnN1YnN0cmluZygwLDE1KSYmKHRoaXMucGFyZW50Lmt2bURhdGFTdXBwb3J0ZWR8fCh0aGlzLnBhcmVudC5rdm1EYXRhU3VwcG9ydGVkPSEwLGNvbnNvbGUubG9nKFwiS1ZNIERhdGEgQ2hhbm5lbCBTdXBwb3J0ZWQuXCIpKSwoLTE9PT10aGlzLnBhcmVudC5vbkt2bURhdGFBY2smJjE2PT09YS5sZW5ndGh8fDAhPT1hLmNoYXJDb2RlQXQoMTUpKSYmKHRoaXMucGFyZW50Lm9uS3ZtRGF0YUFjaz0hMCksKDAsby5mKSh0aGlzLnBhcmVudC51cmx2YXJzKSYmKDAsby5mKSh0aGlzLnBhcmVudC51cmx2YXJzLmt2bWRhdGF0cmFjZSkmJmNvbnNvbGUubG9nKGBLVk0tUmVjdigoJHthLmxlbmd0aC0xNn0pKTogICR7YS5zdWJzdHJpbmcoMTYpfWApLGEubGVuZ3RoPjE2JiZ0aGlzLnBhcmVudC5vbkt2bURhdGEoYS5zdWJzdHJpbmcoMTYpKSwhMD09PXRoaXMucGFyZW50Lm9uS3ZtRGF0YUFjayYmdGhpcy5wYXJlbnQub25Ldm1EYXRhUGVuZGluZy5sZW5ndGg+MCYmdGhpcy53c1NvY2tldC5vblNlbmRLdm1EYXRhKHRoaXMucGFyZW50Lm9uS3ZtRGF0YVBlbmRpbmcuc2hpZnQoKSkpfXJldHVybiBlfX19LDk0NjoodCxlLGEpPT57XCJ1c2Ugc3RyaWN0XCI7YS5kKGUse0M6KCk9Pml9KTt2YXIgcz1hKDU2NSksbz1hKDE3Myk7Y2xhc3MgaXtjb25zdHJ1Y3Rvcih0LGUsYSl7dGhpcy53c1NvY2tldD10LHRoaXMucGFyZW50PWUsdGhpcy51cGRhdGVSRkJTdGF0ZT1hfXByb2Nlc3NTdGF0ZSh0KXtsZXQgZT0wO2lmKHQubGVuZ3RoPj0yNCl7dGhpcy5wYXJlbnQucm90YXRpb249MDtjb25zdCBhPXMuci5SZWFkSW50KHQsMjApO2lmKHQubGVuZ3RoPDI0K2EpcmV0dXJuIDA7ZT0yNCthLG51bGwhPXRoaXMucGFyZW50LnVwZGF0ZVNjcmVlbkRpbWVuc2lvbnMmJnRoaXMucGFyZW50LnVwZGF0ZVNjcmVlbkRpbWVuc2lvbnMocy5yLlJlYWRTaG9ydCh0LDApLHMuci5SZWFkU2hvcnQodCwyKSksdGhpcy5wYXJlbnQuY2FudmFzQ3R4LmNhbnZhcy53aWR0aD10aGlzLnBhcmVudC5TY3JlZW5XaWR0aD10aGlzLnBhcmVudC5yd2lkdGg9dGhpcy5wYXJlbnQud2lkdGg9cy5yLlJlYWRTaG9ydCh0LDApLHRoaXMucGFyZW50LmNhbnZhc0N0eC5jYW52YXMuaGVpZ2h0PXRoaXMucGFyZW50LlNjcmVlbkhlaWdodD10aGlzLnBhcmVudC5yaGVpZ2h0PXRoaXMucGFyZW50LmhlaWdodD1zLnIuUmVhZFNob3J0KHQsMik7bGV0IGk9XCJcIjtyZXR1cm4gdGhpcy5wYXJlbnQudXNlWlJMRSYmKGkrPXMuci5JbnRUb1N0cigxNikpLGkrPXMuci5JbnRUb1N0cigwKSxpKz1zLnIuSW50VG9TdHIoMTA5MiksdGhpcy5wYXJlbnQubG9nZ2VyLnZlcmJvc2UoXCJTZW5kIHN1cHBvcnRlZCBlbmNvZGluZ3NcIiksdGhpcy53c1NvY2tldC5zZW5kKFN0cmluZy5mcm9tQ2hhckNvZGUoMiwwKStzLnIuU2hvcnRUb1N0cihpLmxlbmd0aC80KzEpK2krcy5yLkludFRvU3RyKC0yMjMpKSwxPT09dGhpcy5wYXJlbnQuYnBwJiZ0aGlzLndzU29ja2V0LnNlbmQoU3RyaW5nLmZyb21DaGFyQ29kZSgwLDAsMCwwLDgsOCwwLDEpK3Muci5TaG9ydFRvU3RyKDcpK3Muci5TaG9ydFRvU3RyKDcpK3Muci5TaG9ydFRvU3RyKDMpK1N0cmluZy5mcm9tQ2hhckNvZGUoNSwyLDAsMCwwLDApKSx0aGlzLnVwZGF0ZVJGQlN0YXRlKDQpLHRoaXMucGFyZW50Lm9uU3RhdGVDaGFuZ2UoMyksdGhpcy5wYXJlbnQubG9nZ2VyLmluZm8oXCJTdGFydCBuZXcgZnJhbWUuXCIpLG8uWC5zZW5kUmVmcmVzaCh0aGlzLnBhcmVudCx0aGlzLndzU29ja2V0KSx0aGlzLnBhcmVudC5vbGRNb3VzZVg9LTEsZX1yZXR1cm4gMH19fSwzODk6KHQsZSxhKT0+e1widXNlIHN0cmljdFwiO2EuZChlLHtlejooKT0+cy5lLHdXOigpPT5vLncsVXQ6KCk9PmkuVSxsbDooKT0+ci5sLG1DOigpPT5uLm0sQ3U6KCk9PmwuQ30pO3ZhciBzPWEoNzI1KSxvPWEoMjEyKSxpPWEoNzApLHI9YSgyNiksbj1hKDcyNCksbD1hKDk0Nil9LDk4OToodCxlLGEpPT57XCJ1c2Ugc3RyaWN0XCI7YS5kKGUse3Y6KCk9PnJ9KTt2YXIgcz1hKDM4OSksbz1hKDI1NiksaT1hKDY3OSk7Y2xhc3Mgcntjb25zdHJ1Y3Rvcih0LGUsYSl7dGhpcy5zdGF0ZVByb2Nlc3NvcnM9e30sdGhpcy5zdGF0ZVByb2Nlc3NvcnNbMF09bmV3IHMud1codCxhKSx0aGlzLnN0YXRlUHJvY2Vzc29yc1sxXT1uZXcgcy5sbCh0LGEpLHRoaXMuc3RhdGVQcm9jZXNzb3JzWzJdPW5ldyBzLm1DKHQsYSksdGhpcy5zdGF0ZVByb2Nlc3NvcnNbM109bmV3IHMuQ3UodCxlLGEpO2NvbnN0IHI9bmV3IG8uSSh0LGUpO3RoaXMuc3RhdGVQcm9jZXNzb3JzWzRdPW5ldyBzLlV0KHQscixhKSx0aGlzLnN0YXRlUHJvY2Vzc29yc1tcIjEwMHBsdXNcIl09bmV3IHMuZXoodCxlLG5ldyBpLlgoZSksYSl9Z2V0UHJvY2Vzc29yKHQpe3JldHVybiB0PD0xMDA/dGhpcy5zdGF0ZVByb2Nlc3NvcnNbdF06dGhpcy5zdGF0ZVByb2Nlc3NvcnNbXCIxMDBwbHVzXCJdfX19LDE1NToodCxlLGEpPT57XCJ1c2Ugc3RyaWN0XCI7YS5kKGUse1E6KCk9PnN9KTtjbGFzcyBze2NvbnN0cnVjdG9yKHQpe3RoaXMucHJvY2Vzc0RhdGE9dD0+e251bGwhPXRoaXMudGVybWluYWwuY2FwdHVyZSYmKHRoaXMudGVybWluYWwuY2FwdHVyZT1TdHJpbmcodGhpcy50ZXJtaW5hbC5jYXB0dXJlKSt0KTtsZXQgZT1cIlwiO2ZvcihsZXQgYT0wO2E8dC5sZW5ndGg7YSsrKXtjb25zdCBzPXQuY2hhckNvZGVBdChhKTtcIkpcIj09PXRbYV0/dGhpcy5jbGVhclRlcm1pbmFsKCk6ZSs9MCE9KDEyOCZzKT9TdHJpbmcuZnJvbUNoYXJDb2RlKHRoaXMudGVybWluYWwuQXNjaWlUb1VuaWNvZGVbMTI3JnNdKTpgJHt0W2FdfWB9dGhpcy5wcm9jZXNzRGF0YVRvWHRlcm0oZSl9LHRoaXMudGVybWluYWw9dH19fSwzODoodCxlLGEpPT57XCJ1c2Ugc3RyaWN0XCI7YS5kKGUse3E6KCk9Pml9KTt2YXIgcz1hKDkyMyksbz1hKDYxMSk7Y29uc3QgaT17Y29udmVydEFNVEtleUNvZGU6dD0+KDAsby5mKSh0LmNvZGUuc3RhcnRzV2l0aChcIktleVwiKSkmJjQ9PT10LmNvZGUubGVuZ3RoP3QuY29kZS5jaGFyQ29kZUF0KDMpKyghMT09PXQuc2hpZnRLZXk/MzI6MCk6KDAsby5mKSh0LmNvZGUuc3RhcnRzV2l0aChcIkRpZ2l0XCIpKSYmNj09PXQuY29kZS5sZW5ndGg/dC5jb2RlLmNoYXJDb2RlQXQoNSk6KDAsby5mKSh0LmNvZGUuc3RhcnRzV2l0aChcIk51bXBhZFwiKSkmJjc9PT10LmNvZGUubGVuZ3RoP3QuY29kZS5jaGFyQ29kZUF0KDYpOnMuWlt0LmNvZGVdfX0sOTIzOih0LGUsYSk9PntcInVzZSBzdHJpY3RcIjthLmQoZSx7WjooKT0+c30pO2NvbnN0IHM9e1BhdXNlOjE5LENhcHNMb2NrOjIwLFNwYWNlOjMyLFF1b3RlOjM5LE1pbnVzOjQ1LE51bXBhZE11bHRpcGx5OjQyLE51bXBhZEFkZDo0MyxQcmludFNjcmVlbjo0NCxDb21tYTo0NCxOdW1wYWRTdWJ0cmFjdDo0NSxOdW1wYWREZWNpbWFsOjQ2LFBlcmlvZDo0NixTbGFzaDo0NyxOdW1wYWREaXZpZGU6NDcsU2VtaWNvbG9uOjU5LEVxdWFsOjYxLE9TTGVmdDo5MSxCcmFja2V0TGVmdDo5MSxPU1JpZ2h0OjkxLEJhY2tzbGFzaDo5MixCcmFja2V0UmlnaHQ6OTMsQ29udGV4dE1lbnU6OTMsQmFja3F1b3RlOjk2LE51bUxvY2s6MTQ0LFNjcm9sbExvY2s6MTQ1LEJhY2tzcGFjZTo2NTI4OCxUYWI6NjUyODksRW50ZXI6NjUyOTMsTnVtcGFkRW50ZXI6NjUyOTMsRXNjYXBlOjY1MzA3LERlbGV0ZTo2NTUzNSxIb21lOjY1MzYwLFBhZ2VVcDo2NTM2NSxQYWdlRG93bjo2NTM2NixBcnJvd0xlZnQ6NjUzNjEsQXJyb3dVcDo2NTM2MixBcnJvd1JpZ2h0OjY1MzYzLEFycm93RG93bjo2NTM2NCxFbmQ6NjUzNjcsSW5zZXJ0OjY1Mzc5LEYxOjY1NDcwLEYyOjY1NDcxLEYzOjY1NDcyLEY0OjY1NDczLEY1OjY1NDc0LEY2OjY1NDc1LEY3OjY1NDc2LEY4OjY1NDc3LEY5OjY1NDc4LEYxMDo2NTQ3OSxGMTE6NjU0ODAsRjEyOjY1NDgxLFNoaWZ0TGVmdDo2NTUwNSxTaGlmdFJpZ2h0OjY1NTA2LENvbnRyb2xMZWZ0OjY1NTA3LENvbnRyb2xSaWdodDo2NTUwOCxBbHRMZWZ0OjY1NTEzLEFsdFJpZ2h0OjY1NTE0LE1ldGFMZWZ0OjY1NTExLE1ldGFSaWdodDo2NTUxMn19LDE3MzoodCxlLGEpPT57XCJ1c2Ugc3RyaWN0XCI7YS5kKGUse1g6KCk9Pml9KTt2YXIgcz1hKDU2NSksbz1hKDYxMSk7Y29uc3QgaT17c2VuZFJlZnJlc2godCxlKXtpZighdC5ob2xkaW5nKWlmKHQuZm9jdXNNb2RlPjApe2NvbnN0IGE9Mip0LmZvY3VzTW9kZTtlLnNlbmQoU3RyaW5nLmZyb21DaGFyQ29kZSgzLDEpK3Muci5TaG9ydFRvU3RyKE1hdGgubWF4KE1hdGgubWluKHQub2xkTW91c2VYLHQubGFzdE1vdXNlWCktdC5mb2N1c01vZGUsMCkpK3Muci5TaG9ydFRvU3RyKE1hdGgubWF4KE1hdGgubWluKHQub2xkTW91c2VZLHQubGFzdE1vdXNlWSktdC5mb2N1c01vZGUsMCkpK3Muci5TaG9ydFRvU3RyKGErTWF0aC5hYnModC5vbGRNb3VzZVgtdC5sYXN0TW91c2VYKSkrcy5yLlNob3J0VG9TdHIoYStNYXRoLmFicyh0Lm9sZE1vdXNlWS10Lmxhc3RNb3VzZVkpKSksdC5vbGRNb3VzZVg9dC5sYXN0TW91c2VYLHQub2xkTW91c2VZPXQubGFzdE1vdXNlWX1lbHNlIGUuc2VuZChTdHJpbmcuZnJvbUNoYXJDb2RlKDMsMSwwLDAsMCwwKStzLnIuU2hvcnRUb1N0cih0LnJ3aWR0aCkrcy5yLlNob3J0VG9TdHIodC5yaGVpZ2h0KSl9LHNlbmRLZXkodCxlLGEpe2lmKFwib2JqZWN0XCI9PXR5cGVvZiBlKWZvcihjb25zdCBhIGluIGUpdGhpcy5zZW5kS2V5KHQsZVthXVswXSxlW2FdWzFdKTtlbHNlIHQuc2VuZChTdHJpbmcuZnJvbUNoYXJDb2RlKDQsYSwwLDApK3Muci5JbnRUb1N0cihlKSl9LHNlbmRLdm1EYXRhKHQsZSxhKXshMCE9PXQub25Ldm1EYXRhQWNrP3Qub25Ldm1EYXRhUGVuZGluZy5wdXNoKGEpOigoMCxvLmYpKHQudXJsdmFycykmJigwLG8uZikodC51cmx2YXJzLmt2bWRhdGF0cmFjZSkmJmNvbnNvbGUubG9nKGBLVk0tU2VuZCgke1N0cmluZyhhLmxlbmd0aCl9KTogJHtTdHJpbmcoYSl9YCksYT1cIlxcMEt2bURhdGFDaGFubmVsXFwwXCIrU3RyaW5nKGEpLGUuc2VuZChgJHtTdHJpbmcuZnJvbUNoYXJDb2RlKDYsMCwwLDApfSR7cy5yLkludFRvU3RyKGEubGVuZ3RoKX0ke1N0cmluZyhhKX1gKSx0Lm9uS3ZtRGF0YUFjaz0hMSl9LHNlbmRLZWVwQWxpdmUodCxlKXt0Lmxhc3RLZWVwQWxpdmU8RGF0ZS5ub3coKS01ZTMmJih0Lmxhc3RLZWVwQWxpdmU9RGF0ZS5ub3coKSxlLnNlbmQoU3RyaW5nLmZyb21DaGFyQ29kZSg2LDAsMCwwKStzLnIuSW50VG9TdHIoMTYpK1wiXFwwS3ZtRGF0YUNoYW5uZWxcXDBcIikpfSxzZW5kQ3RybEFsdERlbE1zZyh0KXt0aGlzLnNlbmRDYWQodCl9LHNlbmRDYWQodCl7dGhpcy5zZW5kS2V5KHQsNjU1MDcsMSksdGhpcy5zZW5kS2V5KHQsNjU1MTMsMSksdGhpcy5zZW5kS2V5KHQsNjU1MzUsMSksdGhpcy5zZW5kS2V5KHQsNjU1MzUsMCksdGhpcy5zZW5kS2V5KHQsNjU1MTMsMCksdGhpcy5zZW5kS2V5KHQsNjU1MDcsMCl9fX0sNjQ0Oih0LGUsYSk9PntcInVzZSBzdHJpY3RcIjthLmQoZSx7ajooKT0+c30pO2NvbnN0IHM9e3B1dEltYWdlKHQsZSxhKXtpZih0LmhvbGRpbmcpcmV0dXJuO2NvbnN0IG89cy5hcm90WCh0LGUsYSk7YT1zLmFyb3RZKHQsZSxhKSxlPW8sdC5jYW52YXNDdHgucHV0SW1hZ2VEYXRhKHQuc3BhcmUsZSxhKX0sc2V0UGl4ZWwodCxlLGEpe2xldCBvLGkscj00KmE7dC5yb3RhdGlvbj4wJiYoMT09PXQucm90YXRpb24/KG89YSV0LnNwYXJldyxpPU1hdGguZmxvb3IoYS90LnNwYXJldykscj00KihhPW8qdC5zcGFyZXcyKyh0LnNwYXJldzItMS1pKSkpOjI9PT10LnJvdGF0aW9uP3I9dC5zcGFyZXcqdC5zcGFyZWgqNC00LXI6Mz09PXQucm90YXRpb24mJihvPWEldC5zcGFyZXcsaT1NYXRoLmZsb29yKGEvdC5zcGFyZXcpLHI9NCooYT0odC5zcGFyZXcyLTEtbykqdC5zcGFyZXcyK2kpKSksMT09PXQuYnBwPyh0LnNwYXJlLmRhdGFbcisrXT0yMjQmZSx0LnNwYXJlLmRhdGFbcisrXT0oMjgmZSk8PDMsdC5zcGFyZS5kYXRhW3IrK109cy5maXhDb2xvcigoMyZlKTw8NikpOih0LnNwYXJlLmRhdGFbcisrXT1lPj44JjI0OCx0LnNwYXJlLmRhdGFbcisrXT1lPj4zJjI1Mix0LnNwYXJlLmRhdGFbcisrXT0oMzEmZSk8PDMpLHQuc3BhcmUuZGF0YVtyXT0yNTV9LGFyb3RYOih0LGUsYSk9PjA9PT10LnJvdGF0aW9uP2U6MT09PXQucm90YXRpb24/dC5jYW52YXNDdHguY2FudmFzLndpZHRoLXQuc3BhcmV3Mi1hOjI9PT10LnJvdGF0aW9uP3QuY2FudmFzQ3R4LmNhbnZhcy53aWR0aC10LnNwYXJldzItZTozPT09dC5yb3RhdGlvbj9hOjAsYXJvdFk6KHQsZSxhKT0+MD09PXQucm90YXRpb24/YToxPT09dC5yb3RhdGlvbj9lOjI9PT10LnJvdGF0aW9uP3QuY2FudmFzQ3R4LmNhbnZhcy5oZWlnaHQtdC5zcGFyZWgyLWE6Mz09PXQucm90YXRpb24/dC5jYW52YXNDdHguY2FudmFzLmhlaWdodC10LnNwYXJlaC1lOjAsY3JvdFg6KHQsZSxhKT0+MD09PXQucm90YXRpb24/ZToxPT09dC5yb3RhdGlvbj9hOjI9PT10LnJvdGF0aW9uP3QuY2FudmFzQ3R4LmNhbnZhcy53aWR0aC1lOjM9PT10LnJvdGF0aW9uP3QuY2FudmFzQ3R4LmNhbnZhcy5oZWlnaHQtYTowLGNyb3RZOih0LGUsYSk9PjA9PT10LnJvdGF0aW9uP2E6MT09PXQucm90YXRpb24/dC5jYW52YXNDdHguY2FudmFzLndpZHRoLWU6Mj09PXQucm90YXRpb24/dC5jYW52YXNDdHguY2FudmFzLmhlaWdodC1hOjM9PT10LnJvdGF0aW9uP2U6MCxyb3RYOih0LGUsYSk9PjA9PT10LnJvdGF0aW9ufHwxPT09dC5yb3RhdGlvbj9lOjI9PT10LnJvdGF0aW9uP2UtdC5jYW52YXNDdHguY2FudmFzLndpZHRoOjM9PT10LnJvdGF0aW9uP2UtdC5jYW52YXNDdHguY2FudmFzLmhlaWdodDowLHJvdFk6KHQsZSxhKT0+MD09PXQucm90YXRpb24/YToxPT09dC5yb3RhdGlvbj9hLXQuY2FudmFzQ3R4LmNhbnZhcy53aWR0aDoyPT09dC5yb3RhdGlvbj9hLXQuY2FudmFzQ3R4LmNhbnZhcy5oZWlnaHQ6Mz09PXQucm90YXRpb24/YTowLHNldFJvdGF0aW9uKHQsZSl7Zm9yKDtlPDA7KWUrPTQ7Y29uc3QgYT1lJTQ7aWYodC5ob2xkaW5nKXJldHVybiB0LnJvdGF0aW9uPWEsITE7aWYoYT09PXQucm90YXRpb24pcmV0dXJuITA7bGV0IG89dC5jYW52YXNDdHguY2FudmFzLndpZHRoLGk9dC5jYW52YXNDdHguY2FudmFzLmhlaWdodDsxIT09dC5yb3RhdGlvbiYmMyE9PXQucm90YXRpb258fChvPXQuY2FudmFzQ3R4LmNhbnZhcy5oZWlnaHQsaT10LmNhbnZhc0N0eC5jYW52YXMud2lkdGgpLG51bGw9PXQudGNhbnZhcyYmKHQudGNhbnZhcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiY2FudmFzXCIpKTtjb25zdCByPXQudGNhbnZhcy5nZXRDb250ZXh0KFwiMmRcIik7cmV0dXJuIHIuc2V0VHJhbnNmb3JtKDEsMCwwLDEsMCwwKSxyLmNhbnZhcy53aWR0aD1vLHIuY2FudmFzLmhlaWdodD1pLHIucm90YXRlKC05MCp0LnJvdGF0aW9uKk1hdGguUEkvMTgwKSwwPT09dC5yb3RhdGlvbiYmci5kcmF3SW1hZ2UodC5jYW52YXNDdHguY2FudmFzLDAsMCksMT09PXQucm90YXRpb24mJnIuZHJhd0ltYWdlKHQuY2FudmFzQ3R4LmNhbnZhcywtdC5jYW52YXNDdHguY2FudmFzLndpZHRoLDApLDI9PT10LnJvdGF0aW9uJiZyLmRyYXdJbWFnZSh0LmNhbnZhc0N0eC5jYW52YXMsLXQuY2FudmFzQ3R4LmNhbnZhcy53aWR0aCwtdC5jYW52YXNDdHguY2FudmFzLmhlaWdodCksMz09PXQucm90YXRpb24mJnIuZHJhd0ltYWdlKHQuY2FudmFzQ3R4LmNhbnZhcywwLC10LmNhbnZhc0N0eC5jYW52YXMuaGVpZ2h0KSwwIT09dC5yb3RhdGlvbiYmMiE9PXQucm90YXRpb258fCh0LmNhbnZhc0N0eC5jYW52YXMuaGVpZ2h0PW8sdC5jYW52YXNDdHguY2FudmFzLndpZHRoPWkpLDEhPT10LnJvdGF0aW9uJiYzIT09dC5yb3RhdGlvbnx8KHQuY2FudmFzQ3R4LmNhbnZhcy5oZWlnaHQ9aSx0LmNhbnZhc0N0eC5jYW52YXMud2lkdGg9byksdC5jYW52YXNDdHguc2V0VHJhbnNmb3JtKDEsMCwwLDEsMCwwKSx0LmNhbnZhc0N0eC5yb3RhdGUoOTAqYSpNYXRoLlBJLzE4MCksdC5yb3RhdGlvbj1hLHQuY2FudmFzQ3R4LmRyYXdJbWFnZSh0LnRjYW52YXMscy5yb3RYKHQsMCwwKSxzLnJvdFkodCwwLDApKSx0LndpZHRoPXQuY2FudmFzQ3R4LmNhbnZhcy53aWR0aCx0LmhlaWdodD10LmNhbnZhc0N0eC5jYW52YXMuaGVpZ2h0LG51bGwhPXQub25TY3JlZW5SZXNpemUmJnQub25TY3JlZW5SZXNpemUodC53aWR0aCx0LmhlaWdodCx0LmNhbnZhc0lkKSwhMH0sZml4Q29sb3I6dD0+dD4xMjc/dCszMjp0fX0sNzE3Oih0LGUsYSk9PntcInVzZSBzdHJpY3RcIjthLmQoZSx7RTooKT0+bn0pO3ZhciBzLG89YSgzOCksaT1hKDE3Mykscj1hKDYxMSk7IWZ1bmN0aW9uKHQpe3RbdC5VcD0wXT1cIlVwXCIsdFt0LkRvd249MV09XCJEb3duXCJ9KHN8fChzPXt9KSk7Y2xhc3Mgbntjb25zdHJ1Y3Rvcih0LGUpe3RoaXMuQ29tbXM9ZSx0aGlzLnBhcmVudD10fUdyYWJLZXlJbnB1dCgpe3RoaXMuS2V5SW5wdXRHcmFifHwoZG9jdW1lbnQub25rZXl1cD10aGlzLmhhbmRsZUtleVVwLmJpbmQodGhpcyksZG9jdW1lbnQub25rZXlkb3duPXRoaXMuaGFuZGxlS2V5RG93bi5iaW5kKHRoaXMpLGRvY3VtZW50Lm9ua2V5cHJlc3M9dGhpcy5oYW5kbGVLZXlzLmJpbmQodGhpcyksdGhpcy5LZXlJbnB1dEdyYWI9ITApfVVuR3JhYktleUlucHV0KCl7dGhpcy5LZXlJbnB1dEdyYWImJihkb2N1bWVudC5vbmtleXVwPW51bGwsZG9jdW1lbnQub25rZXlkb3duPW51bGwsZG9jdW1lbnQub25rZXlwcmVzcz1udWxsLHRoaXMuS2V5SW5wdXRHcmFiPSExKX1oYW5kbGVLZXlzKHQpe3JldHVybiB0aGlzLmhhbHRFdmVudCh0KX1oYWx0RXZlbnQodCl7cmV0dXJuKDAsci5mKSh0LnByZXZlbnREZWZhdWx0KSYmdC5wcmV2ZW50RGVmYXVsdCgpLCgwLHIuZikodC5zdG9wUHJvcGFnYXRpb24pJiZ0LnN0b3BQcm9wYWdhdGlvbigpLCExfWhhbmRsZUtleVVwKHQpe3JldHVybiB0aGlzLmhhbmRsZUtleUV2ZW50KHMuVXAsdCl9aGFuZGxlS2V5RG93bih0KXtyZXR1cm4gdGhpcy5oYW5kbGVLZXlFdmVudChzLkRvd24sdCl9aGFuZGxlS2V5RXZlbnQodCxlKXtsZXQgYT1lO2lmKCgwLHIuZikoYSl8fChhPXdpbmRvdy5ldmVudCksKDAsci5mKShhLmNvZGUpKXtjb25zdCBlPW8ucS5jb252ZXJ0QU1US2V5Q29kZShhKTt0aGlzLnBhcmVudC5sb2dnZXIudmVyYm9zZShgS2V5ICR7dH0gOiAke1N0cmluZyhlKX1gKSxudWxsIT1lJiZpLlguc2VuZEtleSh0aGlzLkNvbW1zLGUsdCl9ZWxzZXtsZXQgZT1hLmtleUNvZGU7MTczPT09ZSYmKGU9MTg5KSw2MT09PWUmJihlPTE4Nyk7bGV0IHM9ZTshMT09PWEuc2hpZnRLZXkmJmU+PTY1JiZlPD05MCYmKHM9ZSszMiksZT49MTEyJiZlPD0xMjQmJihzPWUrNjUzNTgpLDg9PT1lJiYocz02NTI4OCksOT09PWUmJihzPTY1Mjg5KSwxMz09PWUmJihzPTY1MjkzKSwxNj09PWUmJihzPTY1NTA1KSwxNz09PWUmJihzPTY1NTA3KSwxOD09PWUmJihzPTY1NTEzKSwyNz09PWUmJihzPTY1MzA3KSwzMz09PWUmJihzPTY1MzY1KSwzND09PWUmJihzPTY1MzY2KSwzNT09PWUmJihzPTY1MzY3KSwzNj09PWUmJihzPTY1MzYwKSwzNz09PWUmJihzPTY1MzYxKSwzOD09PWUmJihzPTY1MzYyKSwzOT09PWUmJihzPTY1MzYzKSw0MD09PWUmJihzPTY1MzY0KSw0NT09PWUmJihzPTY1Mzc5KSw0Nj09PWUmJihzPTY1NTM1KSxlPj05NiYmZTw9MTA1JiYocz1lLTQ4KSwxMDY9PT1lJiYocz00MiksMTA3PT09ZSYmKHM9NDMpLDEwOT09PWUmJihzPTQ1KSwxMTA9PT1lJiYocz00NiksMTExPT09ZSYmKHM9NDcpLDE4Nj09PWUmJihzPTU5KSwxODc9PT1lJiYocz02MSksMTg4PT09ZSYmKHM9NDQpLDE4OT09PWUmJihzPTQ1KSwxOTA9PT1lJiYocz00NiksMTkxPT09ZSYmKHM9NDcpLDE5Mj09PWUmJihzPTk2KSwyMTk9PT1lJiYocz05MSksMjIwPT09ZSYmKHM9OTIpLDIyMT09PWUmJihzPTkzKSwyMjI9PT1lJiYocz0zOSksdGhpcy5wYXJlbnQubG9nZ2VyLnZlcmJvc2UoYEtleSAke3R9OiAke2V9ICA9ICR7c31gKSxpLlguc2VuZEtleSh0aGlzLkNvbW1zLHMsdCl9cmV0dXJuIHRoaXMuaGFsdEV2ZW50KGEpfX19LDMzOih0LGUsYSk9PntcInVzZSBzdHJpY3RcIjthLmQoZSx7eDooKT0+cn0pO3ZhciBzPWEoNTY1KSxvPWEoNjQ0KSxpPWEoNjExKTtjbGFzcyBye2NvbnN0cnVjdG9yKHQsZSxhKXt0aGlzLnBhcmVudD10LHRoaXMuY29tbT1lLHRoaXMuZGVib3VuY2VUaW1lPWEsdGhpcy5tb3VzZUNsaWNrQ29tcGxldGVkPSEwLHRoaXMubGFzdEV2ZW50PW51bGx9R3JhYk1vdXNlSW5wdXQoKXt0aGlzLk1vdXNlSW5wdXRHcmFifHwodGhpcy5Nb3VzZUlucHV0R3JhYj0hMCl9VW5HcmFiTW91c2VJbnB1dCgpe2lmKCF0aGlzLk1vdXNlSW5wdXRHcmFiKXJldHVybjtjb25zdCB0PXRoaXMucGFyZW50LmNhbnZhc0N0eC5jYW52YXM7dC5vbm1vdXNlbW92ZT1udWxsLHQub25tb3VzZXVwPW51bGwsdC5vbm1vdXNlZG93bj1udWxsLHRoaXMuTW91c2VJbnB1dEdyYWI9ITF9bW91c2Vkb3duKHQpe3JldHVybiB0aGlzLnBhcmVudC5idXR0b25tYXNrfD0xPDx0LmJ1dHRvbix0aGlzLm1vdXNlbW92ZSh0KX1tb3VzZXVwKHQpe3JldHVybiB0aGlzLnBhcmVudC5idXR0b25tYXNrJj02NTUzNS0oMTw8dC5idXR0b24pLHRoaXMubW91c2Vtb3ZlKHQpfW1vdXNlbW92ZSh0KXtpZig0IT09dGhpcy5wYXJlbnQuc3RhdGUpcmV0dXJuITA7Y29uc3QgZT10aGlzLmdldFBvc2l0aW9uT2ZDb250cm9sKHRoaXMucGFyZW50LmNhbnZhc0NvbnRyb2wpO2lmKHRoaXMucGFyZW50Lmxhc3RNb3VzZVg9KHQucGFnZVgtZVswXSkqKHRoaXMucGFyZW50LmNhbnZhc0NvbnRyb2wuaGVpZ2h0L3RoaXMucGFyZW50LmNhbnZhc0NvbnRyb2wub2Zmc2V0SGVpZ2h0KSx0aGlzLnBhcmVudC5sYXN0TW91c2VZPShOdW1iZXIodC5wYWdlWS1lWzFdKSsoKDAsaS5mKSh0aGlzLnBhcmVudC5zY3JvbGxkaXYpP051bWJlcih0aGlzLnBhcmVudC5zY3JvbGxkaXYuc2Nyb2xsVG9wKTowKSkqKHRoaXMucGFyZW50LmNhbnZhc0NvbnRyb2wud2lkdGgvdGhpcy5wYXJlbnQuY2FudmFzQ29udHJvbC5vZmZzZXRXaWR0aCksKDAsaS5mKSh0aGlzLnBhcmVudC5ub01vdXNlUm90YXRlKXx8KHRoaXMucGFyZW50Lmxhc3RNb3VzZVgyPW8uai5jcm90WCh0aGlzLnBhcmVudCx0aGlzLnBhcmVudC5sYXN0TW91c2VYLHRoaXMucGFyZW50Lmxhc3RNb3VzZVkpLHRoaXMucGFyZW50Lmxhc3RNb3VzZVk9by5qLmNyb3RZKHRoaXMucGFyZW50LHRoaXMucGFyZW50Lmxhc3RNb3VzZVgsdGhpcy5wYXJlbnQubGFzdE1vdXNlWSksdGhpcy5wYXJlbnQubGFzdE1vdXNlWD10aGlzLnBhcmVudC5sYXN0TW91c2VYMiksdGhpcy5jb21tLnNlbmQoU3RyaW5nLmZyb21DaGFyQ29kZSg1LHRoaXMucGFyZW50LmJ1dHRvbm1hc2spK3Muci5TaG9ydFRvU3RyKHRoaXMucGFyZW50Lmxhc3RNb3VzZVgpK3Muci5TaG9ydFRvU3RyKHRoaXMucGFyZW50Lmxhc3RNb3VzZVkpKSx0aGlzLnBhcmVudC5zZXREZXNrRm9jdXMoXCJEZXNrRm9jdXNcIix0aGlzLnBhcmVudC5mb2N1c01vZGUpLDAhPT10aGlzLnBhcmVudC5mb2N1c01vZGUpe2NvbnN0IHQ9TWF0aC5taW4odGhpcy5wYXJlbnQubGFzdE1vdXNlWCx0aGlzLnBhcmVudC5jYW52YXNDb250cm9sLndpZHRoLXRoaXMucGFyZW50LmZvY3VzTW9kZSksYT1NYXRoLm1pbih0aGlzLnBhcmVudC5sYXN0TW91c2VZLHRoaXMucGFyZW50LmNhbnZhc0NvbnRyb2wuaGVpZ2h0LXRoaXMucGFyZW50LmZvY3VzTW9kZSkscz0yKnRoaXMucGFyZW50LmZvY3VzTW9kZSxvPXRoaXMucGFyZW50LmNhbnZhc0NvbnRyb2wsaT1vLm9mZnNldEhlaWdodC90aGlzLnBhcmVudC5jYW52YXNDb250cm9sLmhlaWdodCxyPW8ub2Zmc2V0V2lkdGgvdGhpcy5wYXJlbnQuY2FudmFzQ29udHJvbC53aWR0aCxuPXRoaXMucGFyZW50LmdldERlc2tGb2N1cyhcIkRlc2tGb2N1c1wiKSxsPXRoaXMuZ2V0UG9zaXRpb25PZkNvbnRyb2wodGhpcy5wYXJlbnQuY2FudmFzQ29udHJvbC5wYXJlbnRFbGVtZW50KTtuLmxlZnQ9YCR7TWF0aC5tYXgoKHQtdGhpcy5wYXJlbnQuZm9jdXNNb2RlKSppLDApKyhlWzBdLWxbMF0pfXB4YCxuLnRvcD1gJHtNYXRoLm1heCgoYS10aGlzLnBhcmVudC5mb2N1c01vZGUpKnIsMCkrKGVbMV0tbFsxXSl9cHhgLG4ud2lkdGg9cyppLTYrXCJweFwiLG4uaGVpZ2h0PXMqaS02K1wicHhcIn1yZXR1cm4gdGhpcy5oYWx0RXZlbnQodCl9aGFsdEV2ZW50KHQpe3JldHVybigwLGkuZikodC5wcmV2ZW50RGVmYXVsdCkmJnQucHJldmVudERlZmF1bHQoKSwoMCxpLmYpKHQuc3RvcFByb3BhZ2F0aW9uKSYmdC5zdG9wUHJvcGFnYXRpb24oKSwhMX1nZXRQb3NpdGlvbk9mQ29udHJvbCh0KXtjb25zdCBlPUFycmF5KDIpO2VbMF09ZVsxXT0wO2xldCBhPXQ7Zm9yKDtudWxsIT1hOyllWzBdPU51bWJlcihlWzBdKStOdW1iZXIoYS5vZmZzZXRMZWZ0KSxlWzFdPU51bWJlcihlWzFdKStOdW1iZXIoYS5vZmZzZXRUb3ApLGE9YS5vZmZzZXRQYXJlbnQ7cmV0dXJuIGV9fX0sNjExOih0LGUsYSk9PntcInVzZSBzdHJpY3RcIjthLmQoZSx7ZjooKT0+c30pO2NvbnN0IHM9dD0+bnVsbCE9dCYmXCJcIiE9PXQmJiExIT09dCYmMCE9PXR9LDg6KHQsZSxhKT0+e1widXNlIHN0cmljdFwiO2EuZChlLHtxRDooKT0+cy5xLFhuOigpPT5vLlgsanc6KCk9PmkuaixFQjooKT0+ci5FLHh4OigpPT5uLngsZlE6KCk9PmwuZn0pO3ZhciBzPWEoMzgpLG89YSgxNzMpLGk9YSg2NDQpLHI9YSg3MTcpLG49YSgzMyksbD1hKDYxMSl9LDMwNTptb2R1bGU9Pnt2YXIgWkxJQj1aTElCfHx7fSxCQVNFLE5NQVg7dm9pZCAwPT09WkxJQi5jb21tb25faW5pdGlhbGl6ZWQmJihaTElCLlpfTk9fRkxVU0g9MCxaTElCLlpfUEFSVElBTF9GTFVTSD0xLFpMSUIuWl9TWU5DX0ZMVVNIPTIsWkxJQi5aX0ZVTExfRkxVU0g9MyxaTElCLlpfRklOSVNIPTQsWkxJQi5aX0JMT0NLPTUsWkxJQi5aX1RSRUVTPTYsWkxJQi5aX09LPTAsWkxJQi5aX1NUUkVBTV9FTkQ9MSxaTElCLlpfTkVFRF9ESUNUPTIsWkxJQi5aX0VSUk5PPS0xLFpMSUIuWl9TVFJFQU1fRVJST1I9LTIsWkxJQi5aX0RBVEFfRVJST1I9LTMsWkxJQi5aX01FTV9FUlJPUj0tNCxaTElCLlpfQlVGX0VSUk9SPS01LFpMSUIuWl9WRVJTSU9OX0VSUk9SPS02LFpMSUIuWl9ERUZMQVRFRD04LFpMSUIuel9zdHJlYW09ZnVuY3Rpb24oKXt0aGlzLm5leHRfaW49MCx0aGlzLmF2YWlsX2luPTAsdGhpcy50b3RhbF9pbj0wLHRoaXMubmV4dF9vdXQ9MCx0aGlzLmF2YWlsX291dD0wLHRoaXMudG90YWxfb3V0PTAsdGhpcy5tc2c9bnVsbCx0aGlzLnN0YXRlPW51bGwsdGhpcy5kYXRhX3R5cGU9MCx0aGlzLmFkbGVyPTAsdGhpcy5pbnB1dF9kYXRhPVwiXCIsdGhpcy5vdXRwdXRfZGF0YT1cIlwiLHRoaXMuZXJyb3I9MCx0aGlzLmNoZWNrc3VtX2Z1bmN0aW9uPW51bGx9LFpMSUIuZ3pfaGVhZGVyPWZ1bmN0aW9uKCl7dGhpcy50ZXh0PTAsdGhpcy50aW1lPTAsdGhpcy54ZmxhZ3M9MCx0aGlzLm9zPTI1NSx0aGlzLmV4dHJhPW51bGwsdGhpcy5leHRyYV9sZW49MCx0aGlzLmV4dHJhX21heD0wLHRoaXMubmFtZT1udWxsLHRoaXMubmFtZV9tYXg9MCx0aGlzLmNvbW1lbnQ9bnVsbCx0aGlzLmNvbW1fbWF4PTAsdGhpcy5oY3JjPTAsdGhpcy5kb25lPTB9LFpMSUIuY29tbW9uX2luaXRpYWxpemVkPSEwKSx2b2lkIDA9PT1aTElCJiZhbGVydChcIlpMSUIgaXMgbm90IGRlZmluZWQuICBTUkMgemxpYi5qcyBiZWZvcmUgemxpYi1pbmZsYXRlLmpzXCIpLGZ1bmN0aW9uKCl7dmFyIERFRl9XQklUUz0xNSxIRUFEPTAsRkxBR1M9MSxUSU1FPTIsT1M9MyxFWExFTj00LEVYVFJBPTUsTkFNRT02LENPTU1FTlQ9NyxIQ1JDPTgsRElDVElEPTksRElDVD0xMCxUWVBFPTExLFRZUEVETz0xMixTVE9SRUQ9MTMsQ09QWV89MTQsQ09QWT0xNSxUQUJMRT0xNixMRU5MRU5TPTE3LENPREVMRU5TPTE4LExFTl89MTksTEVOPTIwLExFTkVYVD0yMSxESVNUPTIyLERJU1RFWFQ9MjMsTUFUQ0g9MjQsTElUPTI1LENIRUNLPTI2LExFTkdUSD0yNyxET05FPTI4LEJBRD0yOSxNRU09MzAsU1lOQz0zMSxFTk9VR0hfTEVOUz04NTIsRU5PVUdIX0RJU1RTPTU5MixFTk9VR0g9RU5PVUdIX0xFTlMrRU5PVUdIX0RJU1RTLENPREVTPTAsTEVOUz0xLERJU1RTPTIsaW5mbGF0ZV90YWJsZV9sYmFzZT1bMyw0LDUsNiw3LDgsOSwxMCwxMSwxMywxNSwxNywxOSwyMywyNywzMSwzNSw0Myw1MSw1OSw2Nyw4Myw5OSwxMTUsMTMxLDE2MywxOTUsMjI3LDI1OCwwLDBdLGluZmxhdGVfdGFibGVfbGV4dD1bMTYsMTYsMTYsMTYsMTYsMTYsMTYsMTYsMTcsMTcsMTcsMTcsMTgsMTgsMTgsMTgsMTksMTksMTksMTksMjAsMjAsMjAsMjAsMjEsMjEsMjEsMjEsMTYsMjAzLDY5XSxpbmZsYXRlX3RhYmxlX2RiYXNlPVsxLDIsMyw0LDUsNyw5LDEzLDE3LDI1LDMzLDQ5LDY1LDk3LDEyOSwxOTMsMjU3LDM4NSw1MTMsNzY5LDEwMjUsMTUzNywyMDQ5LDMwNzMsNDA5Nyw2MTQ1LDgxOTMsMTIyODksMTYzODUsMjQ1NzcsMCwwXSxpbmZsYXRlX3RhYmxlX2RleHQ9WzE2LDE2LDE2LDE2LDE3LDE3LDE4LDE4LDE5LDE5LDIwLDIwLDIxLDIxLDIyLDIyLDIzLDIzLDI0LDI0LDI1LDI1LDI2LDI2LDI3LDI3LDI4LDI4LDI5LDI5LDY0LDY0XTtmdW5jdGlvbiBpbmZsYXRlX3RhYmxlKHQsZSl7dmFyIGEscyxvLGkscixuLGwsaCxjLHAsZCx2LGIsdSxmLGcsUyxtLF8sQyxBLEUsST10Lm5leHQsaz1lPT1ESVNUUz90LmRpc3RiaXRzOnQubGVuYml0cyxUPXQud29yayx3PXQubGVucyxCPWU9PURJU1RTP3QubmxlbjowLFI9dC5jb2RlczthPWU9PUxFTlM/dC5ubGVuOmU9PURJU1RTP3QubmRpc3Q6MTk7dmFyIEQ9bmV3IEFycmF5KDE2KSx4PW5ldyBBcnJheSgxNik7Zm9yKHM9MDtzPD0xNTtzKyspRFtzXT0wO2ZvcihvPTA7bzxhO28rKylEW3dbQitvXV0rKztmb3Iobj1rLHI9MTU7cj49MSYmMD09RFtyXTtyLS0pO2lmKG4+ciYmKG49ciksMD09cilyZXR1cm4gZz17b3A6NjQsYml0czoxLHZhbDowfSxSW0krK109ZyxSW0krK109ZyxlPT1ESVNUUz90LmRpc3RiaXRzPTE6dC5sZW5iaXRzPTEsdC5uZXh0PUksMDtmb3IoaT0xO2k8ciYmMD09RFtpXTtpKyspO2ZvcihuPGkmJihuPWkpLGM9MSxzPTE7czw9MTU7cysrKWlmKGM8PD0xLChjLT1EW3NdKTwwKXJldHVybi0xO2lmKGM+MCYmKGU9PUNPREVTfHwxIT1yKSlyZXR1cm4gdC5uZXh0PUksLTE7Zm9yKHhbMV09MCxzPTE7czwxNTtzKyspeFtzKzFdPXhbc10rRFtzXTtmb3Iobz0wO288YTtvKyspMCE9d1tCK29dJiYoVFt4W3dbQitvXV0rK109byk7c3dpdGNoKGUpe2Nhc2UgQ09ERVM6bT1DPVQsXz0wLEE9MCxFPTE5O2JyZWFrO2Nhc2UgTEVOUzptPWluZmxhdGVfdGFibGVfbGJhc2UsXz0tMjU3LEM9aW5mbGF0ZV90YWJsZV9sZXh0LEE9LTI1NyxFPTI1NjticmVhaztkZWZhdWx0Om09aW5mbGF0ZV90YWJsZV9kYmFzZSxDPWluZmxhdGVfdGFibGVfZGV4dCxfPTAsQT0wLEU9LTF9aWYoZD0wLG89MCxzPWksUz1JLGw9bixoPTAsdT0tMSxmPShwPTE8PG4pLTEsZT09TEVOUyYmcD49RU5PVUdIX0xFTlN8fGU9PURJU1RTJiZwPj1FTk9VR0hfRElTVFMpcmV0dXJuIHQubmV4dD1JLDE7Zm9yKDs7KXtnPXtvcDowLGJpdHM6cy1oLHZhbDowfSxUW29dPEU/Zy52YWw9VFtvXTpUW29dPkU/KGcub3A9Q1tBK1Rbb11dLGcudmFsPW1bXytUW29dXSk6Zy5vcD05Nix2PTE8PHMtaCxpPWI9MTw8bDtkb3tSW1MrKGQ+Pj5oKSsoYi09dildPWd9d2hpbGUoMCE9Yik7Zm9yKHY9MTw8cy0xO2Qmdjspdj4+Pj0xO2lmKDAhPXY/KGQmPXYtMSxkKz12KTpkPTAsbysrLDA9PS0tRFtzXSl7aWYocz09cilicmVhaztzPXdbQitUW29dXX1pZihzPm4mJihkJmYpIT11KXtmb3IoMD09aCYmKGg9biksUys9aSxjPTE8PChsPXMtaCk7bCtoPHImJiEoKGMtPURbbCtoXSk8PTApOylsKyssYzw8PTE7aWYocCs9MTw8bCxlPT1MRU5TJiZwPj1FTk9VR0hfTEVOU3x8ZT09RElTVFMmJnA+PUVOT1VHSF9ESVNUUylyZXR1cm4gdC5uZXh0PUksMTtSW0krKHU9ZCZmKV09e29wOmwsYml0czpuLHZhbDpTLUl9fX1yZXR1cm4gMCE9ZCYmKFJbUytkXT17b3A6NjQsYml0czpzLWgsdmFsOjB9KSx0Lm5leHQ9SStwLGU9PURJU1RTP3QuZGlzdGJpdHM9bjp0LmxlbmJpdHM9biwwfWZ1bmN0aW9uIGluZmxhdGVfZmFzdCh0LGUpe3ZhciBhLHMsbyxpLHIsbixsLGgsYyxwLGQsdixiLHUsZixnLFMsbSxfLEMsQSxFLEk9LTEsaz0tMTthPXQuc3RhdGUscz10LmlucHV0X2RhdGEsaT0obz10Lm5leHRfaW4pK3QuYXZhaWxfaW4tNSxuPShyPXQubmV4dF9vdXQpLShlLXQuYXZhaWxfb3V0KSxsPXIrKHQuYXZhaWxfb3V0LTI1NyksaD1hLndzaXplLGM9YS53aGF2ZSxwPWEud25leHQsZD1hLndpbmRvdyx2PWEuaG9sZCxiPWEuYml0cyx1PWEuY29kZXMsZj1hLmxlbmNvZGUsZz1hLmRpc3Rjb2RlLFM9KDE8PGEubGVuYml0cyktMSxtPSgxPDxhLmRpc3RiaXRzKS0xO3Q6ZG97YjwxNSYmKHYrPSgyNTUmcy5jaGFyQ29kZUF0KG8rKykpPDxiLGIrPTgsdis9KDI1NSZzLmNoYXJDb2RlQXQobysrKSk8PGIsYis9OCksXz11W2YrKHYmUyldO2U6Zm9yKDs7KXtpZih2Pj4+PUM9Xy5iaXRzLGItPUMsMD09KEM9Xy5vcCkpdC5vdXRwdXRfZGF0YSs9U3RyaW5nLmZyb21DaGFyQ29kZShfLnZhbCkscisrO2Vsc2V7aWYoISgxNiZDKSl7aWYoMD09KDY0JkMpKXtfPXVbZisoXy52YWwrKHYmKDE8PEMpLTEpKV07Y29udGludWUgZX1pZigzMiZDKXthLm1vZGU9VFlQRTticmVhayB0fXQubXNnPVwiaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlXCIsYS5tb2RlPUJBRDticmVhayB0fUE9Xy52YWwsKEMmPTE1KSYmKGI8QyYmKHYrPSgyNTUmcy5jaGFyQ29kZUF0KG8rKykpPDxiLGIrPTgpLEErPXYmKDE8PEMpLTEsdj4+Pj1DLGItPUMpLGI8MTUmJih2Kz0oMjU1JnMuY2hhckNvZGVBdChvKyspKTw8YixiKz04LHYrPSgyNTUmcy5jaGFyQ29kZUF0KG8rKykpPDxiLGIrPTgpLF89dVtnKyh2Jm0pXTthOmZvcig7Oyl7aWYodj4+Pj1DPV8uYml0cyxiLT1DLCEoMTYmKEM9Xy5vcCkpKXtpZigwPT0oNjQmQykpe189dVtnKyhfLnZhbCsodiYoMTw8QyktMSkpXTtjb250aW51ZSBhfXQubXNnPVwiaW52YWxpZCBkaXN0YW5jZSBjb2RlXCIsYS5tb2RlPUJBRDticmVhayB0fWlmKEU9Xy52YWwsYjwoQyY9MTUpJiYodis9KDI1NSZzLmNoYXJDb2RlQXQobysrKSk8PGIsKGIrPTgpPEMmJih2Kz0oMjU1JnMuY2hhckNvZGVBdChvKyspKTw8YixiKz04KSksRSs9diYoMTw8QyktMSx2Pj4+PUMsYi09QyxFPihDPXItbikpe2lmKChDPUUtQyk+YyYmYS5zYW5lKXt0Lm1zZz1cImludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrXCIsYS5tb2RlPUJBRDticmVhayB0fUk9MCxrPS0xLDA9PXA/KEkrPWgtQyxDPEEmJihBLT1DLHQub3V0cHV0X2RhdGErPWQuc3Vic3RyaW5nKEksSStDKSxyKz1DLEM9MCxJPS0xLGs9ci1FKSk6KEkrPXAtQyxDPEEmJihBLT1DLHQub3V0cHV0X2RhdGErPWQuc3Vic3RyaW5nKEksSStDKSxJPS0xLGs9KHIrPUMpLUUpKX1lbHNlIEk9LTEsaz1yLUU7aWYoST49MCl0Lm91dHB1dF9kYXRhKz1kLnN1YnN0cmluZyhJLEkrQSkscis9QSxJKz1BO2Vsc2V7dmFyIFQ9QTtmb3IoVD5yLWsmJihUPXItayksdC5vdXRwdXRfZGF0YSs9dC5vdXRwdXRfZGF0YS5zdWJzdHJpbmcoayxrK1QpLHIrPVQsays9VCxyKz1BLT1UO0E+MjspdC5vdXRwdXRfZGF0YSs9dC5vdXRwdXRfZGF0YS5jaGFyQXQoaysrKSx0Lm91dHB1dF9kYXRhKz10Lm91dHB1dF9kYXRhLmNoYXJBdChrKyspLHQub3V0cHV0X2RhdGErPXQub3V0cHV0X2RhdGEuY2hhckF0KGsrKyksQS09MztBJiYodC5vdXRwdXRfZGF0YSs9dC5vdXRwdXRfZGF0YS5jaGFyQXQoaysrKSxBPjEmJih0Lm91dHB1dF9kYXRhKz10Lm91dHB1dF9kYXRhLmNoYXJBdChrKyspKSl9YnJlYWsgYX19YnJlYWsgZX19d2hpbGUobzxpJiZyPGwpO28tPUE9Yj4+PjMsdiY9KDE8PChiLT1BPDwzKSktMSx0Lm5leHRfaW49byx0Lm5leHRfb3V0PXIsdC5hdmFpbF9pbj1vPGk/aS1vKzU6NS0oby1pKSx0LmF2YWlsX291dD1yPGw/bC1yKzI1NzoyNTctKHItbCksYS5ob2xkPXYsYS5iaXRzPWJ9ZnVuY3Rpb24gbmV3X2FycmF5KHQpe3ZhciBlLGE9bmV3IEFycmF5KHQpO2ZvcihlPTA7ZTx0O2UrKylhW2VdPTA7cmV0dXJuIGF9ZnVuY3Rpb24gZ2V0YXJnKHQsZSxhKXtyZXR1cm4gdCYmZSBpbiB0P3RbZV06YX1mdW5jdGlvbiBjaGVja3N1bV9ub25lKCl7cmV0dXJuIDB9ZnVuY3Rpb24gaW5mbGF0ZV9zdGF0ZSgpe3ZhciB0O3RoaXMubW9kZT0wLHRoaXMubGFzdD0wLHRoaXMud3JhcD0wLHRoaXMuaGF2ZWRpY3Q9MCx0aGlzLmZsYWdzPTAsdGhpcy5kbWF4PTAsdGhpcy5jaGVjaz0wLHRoaXMudG90YWw9MCx0aGlzLmhlYWQ9bnVsbCx0aGlzLndiaXRzPTAsdGhpcy53c2l6ZT0wLHRoaXMud2hhdmU9MCx0aGlzLnduZXh0PTAsdGhpcy53aW5kb3c9bnVsbCx0aGlzLmhvbGQ9MCx0aGlzLmJpdHM9MCx0aGlzLmxlbmd0aD0wLHRoaXMub2Zmc2V0PTAsdGhpcy5leHRyYT0wLHRoaXMubGVuY29kZT0wLHRoaXMuZGlzdGNvZGU9MCx0aGlzLmxlbmJpdHM9MCx0aGlzLmRpc3RiaXRzPTAsdGhpcy5uY29kZT0wLHRoaXMubmxlbj0wLHRoaXMubmRpc3Q9MCx0aGlzLmhhdmU9MCx0aGlzLm5leHQ9MCx0aGlzLmxlbnM9bmV3X2FycmF5KDMyMCksdGhpcy53b3JrPW5ld19hcnJheSgyODgpLHRoaXMuY29kZXM9bmV3IEFycmF5KEVOT1VHSCk7dmFyIGU9e29wOjAsYml0czowLHZhbDowfTtmb3IodD0wO3Q8RU5PVUdIO3QrKyl0aGlzLmNvZGVzW3RdPWU7dGhpcy5zYW5lPTAsdGhpcy5iYWNrPTAsdGhpcy53YXM9MH1aTElCLmluZmxhdGVfY29weXJpZ2h0PVwiIGluZmxhdGUgMS4yLjYgQ29weXJpZ2h0IDE5OTUtMjAxMiBNYXJrIEFkbGVyIFwiLFpMSUIuaW5mbGF0ZVJlc2V0S2VlcD1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gdCYmdC5zdGF0ZT8oZT10LnN0YXRlLHQudG90YWxfaW49dC50b3RhbF9vdXQ9ZS50b3RhbD0wLHQubXNnPW51bGwsZS53cmFwJiYodC5hZGxlcj0xJmUud3JhcCksZS5tb2RlPUhFQUQsZS5sYXN0PTAsZS5oYXZlZGljdD0wLGUuZG1heD0zMjc2OCxlLmhlYWQ9bnVsbCxlLmhvbGQ9MCxlLmJpdHM9MCxlLmxlbmNvZGU9MCxlLmRpc3Rjb2RlPTAsZS5uZXh0PTAsZS5zYW5lPTEsZS5iYWNrPS0xLFpMSUIuWl9PSyk6WkxJQi5aX1NUUkVBTV9FUlJPUn0sWkxJQi5pbmZsYXRlUmVzZXQ9ZnVuY3Rpb24odCxlKXt2YXIgYSxzO3JldHVybiB0JiZ0LnN0YXRlPyhzPXQuc3RhdGUsdm9pZCAwPT09ZSYmKGU9REVGX1dCSVRTKSxlPDA/KGE9MCxlPS1lKTooYT0xKyhlPj4+NCksZTw0OCYmKGUmPTE1KSksMT09YSYmXCJmdW5jdGlvblwiPT10eXBlb2YgWkxJQi5hZGxlcjMyP3QuY2hlY2tzdW1fZnVuY3Rpb249WkxJQi5hZGxlcjMyOjI9PWEmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFpMSUIuY3JjMzI/dC5jaGVja3N1bV9mdW5jdGlvbj1aTElCLmNyYzMyOnQuY2hlY2tzdW1fZnVuY3Rpb249Y2hlY2tzdW1fbm9uZSxlJiYoZTw4fHxlPjE1KT9aTElCLlpfU1RSRUFNX0VSUk9SOihzLndpbmRvdyYmcy53Yml0cyE9ZSYmKHMud2luZG93PW51bGwpLHMud3JhcD1hLHMud2JpdHM9ZSxzLndzaXplPTAscy53aGF2ZT0wLHMud25leHQ9MCxaTElCLmluZmxhdGVSZXNldEtlZXAodCkpKTpaTElCLlpfU1RSRUFNX0VSUk9SfSxaTElCLmluZmxhdGVJbml0PWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBaTElCLnpfc3RyZWFtO3JldHVybiBlLnN0YXRlPW5ldyBpbmZsYXRlX3N0YXRlLFpMSUIuaW5mbGF0ZVJlc2V0KGUsdCksZX0sWkxJQi5pbmZsYXRlUHJpbWU9ZnVuY3Rpb24odCxlLGEpe3ZhciBzO3JldHVybiB0JiZ0LnN0YXRlPyhzPXQuc3RhdGUsZTwwPyhzLmhvbGQ9MCxzLmJpdHM9MCxaTElCLlpfT0spOmU+MTZ8fHMuYml0cytlPjMyP1pMSUIuWl9TVFJFQU1fRVJST1I6KGEmPSgxPDxlKS0xLHMuaG9sZCs9YTw8cy5iaXRzLHMuYml0cys9ZSxaTElCLlpfT0spKTpaTElCLlpfU1RSRUFNX0VSUk9SfTt2YXIgbGVuZml4X2FyeT1udWxsLGxlbmZpeF9kZWY9XCIoWyAgICB7b3A6OTYsYml0czo3LHZhbDowfSx7b3A6MCxiaXRzOjgsdmFsOjgwfSx7b3A6MCxiaXRzOjgsdmFsOjE2fSx7b3A6MjAsYml0czo4LHZhbDoxMTV9LHtvcDoxOCxiaXRzOjcsdmFsOjMxfSx7b3A6MCxiaXRzOjgsdmFsOjExMn0se29wOjAsYml0czo4LHZhbDo0OH0sICAgIHtvcDowLGJpdHM6OSx2YWw6MTkyfSx7b3A6MTYsYml0czo3LHZhbDoxMH0se29wOjAsYml0czo4LHZhbDo5Nn0se29wOjAsYml0czo4LHZhbDozMn0se29wOjAsYml0czo5LHZhbDoxNjB9LHtvcDowLGJpdHM6OCx2YWw6MH0se29wOjAsYml0czo4LHZhbDoxMjh9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjY0fSx7b3A6MCxiaXRzOjksdmFsOjIyNH0se29wOjE2LGJpdHM6Nyx2YWw6Nn0se29wOjAsYml0czo4LHZhbDo4OH0se29wOjAsYml0czo4LHZhbDoyNH0se29wOjAsYml0czo5LHZhbDoxNDR9LHtvcDoxOSxiaXRzOjcsdmFsOjU5fSwgICAge29wOjAsYml0czo4LHZhbDoxMjB9LHtvcDowLGJpdHM6OCx2YWw6NTZ9LHtvcDowLGJpdHM6OSx2YWw6MjA4fSx7b3A6MTcsYml0czo3LHZhbDoxN30se29wOjAsYml0czo4LHZhbDoxMDR9LHtvcDowLGJpdHM6OCx2YWw6NDB9LHtvcDowLGJpdHM6OSx2YWw6MTc2fSwgICAge29wOjAsYml0czo4LHZhbDo4fSx7b3A6MCxiaXRzOjgsdmFsOjEzNn0se29wOjAsYml0czo4LHZhbDo3Mn0se29wOjAsYml0czo5LHZhbDoyNDB9LHtvcDoxNixiaXRzOjcsdmFsOjR9LHtvcDowLGJpdHM6OCx2YWw6ODR9LHtvcDowLGJpdHM6OCx2YWw6MjB9LCAgICB7b3A6MjEsYml0czo4LHZhbDoyMjd9LHtvcDoxOSxiaXRzOjcsdmFsOjQzfSx7b3A6MCxiaXRzOjgsdmFsOjExNn0se29wOjAsYml0czo4LHZhbDo1Mn0se29wOjAsYml0czo5LHZhbDoyMDB9LHtvcDoxNyxiaXRzOjcsdmFsOjEzfSx7b3A6MCxiaXRzOjgsdmFsOjEwMH0sICAgIHtvcDowLGJpdHM6OCx2YWw6MzZ9LHtvcDowLGJpdHM6OSx2YWw6MTY4fSx7b3A6MCxiaXRzOjgsdmFsOjR9LHtvcDowLGJpdHM6OCx2YWw6MTMyfSx7b3A6MCxiaXRzOjgsdmFsOjY4fSx7b3A6MCxiaXRzOjksdmFsOjIzMn0se29wOjE2LGJpdHM6Nyx2YWw6OH0sICAgIHtvcDowLGJpdHM6OCx2YWw6OTJ9LHtvcDowLGJpdHM6OCx2YWw6Mjh9LHtvcDowLGJpdHM6OSx2YWw6MTUyfSx7b3A6MjAsYml0czo3LHZhbDo4M30se29wOjAsYml0czo4LHZhbDoxMjR9LHtvcDowLGJpdHM6OCx2YWw6NjB9LHtvcDowLGJpdHM6OSx2YWw6MjE2fSwgICAge29wOjE4LGJpdHM6Nyx2YWw6MjN9LHtvcDowLGJpdHM6OCx2YWw6MTA4fSx7b3A6MCxiaXRzOjgsdmFsOjQ0fSx7b3A6MCxiaXRzOjksdmFsOjE4NH0se29wOjAsYml0czo4LHZhbDoxMn0se29wOjAsYml0czo4LHZhbDoxNDB9LHtvcDowLGJpdHM6OCx2YWw6NzZ9LCAgICB7b3A6MCxiaXRzOjksdmFsOjI0OH0se29wOjE2LGJpdHM6Nyx2YWw6M30se29wOjAsYml0czo4LHZhbDo4Mn0se29wOjAsYml0czo4LHZhbDoxOH0se29wOjIxLGJpdHM6OCx2YWw6MTYzfSx7b3A6MTksYml0czo3LHZhbDozNX0se29wOjAsYml0czo4LHZhbDoxMTR9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjUwfSx7b3A6MCxiaXRzOjksdmFsOjE5Nn0se29wOjE3LGJpdHM6Nyx2YWw6MTF9LHtvcDowLGJpdHM6OCx2YWw6OTh9LHtvcDowLGJpdHM6OCx2YWw6MzR9LHtvcDowLGJpdHM6OSx2YWw6MTY0fSx7b3A6MCxiaXRzOjgsdmFsOjJ9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjEzMH0se29wOjAsYml0czo4LHZhbDo2Nn0se29wOjAsYml0czo5LHZhbDoyMjh9LHtvcDoxNixiaXRzOjcsdmFsOjd9LHtvcDowLGJpdHM6OCx2YWw6OTB9LHtvcDowLGJpdHM6OCx2YWw6MjZ9LHtvcDowLGJpdHM6OSx2YWw6MTQ4fSwgICAge29wOjIwLGJpdHM6Nyx2YWw6Njd9LHtvcDowLGJpdHM6OCx2YWw6MTIyfSx7b3A6MCxiaXRzOjgsdmFsOjU4fSx7b3A6MCxiaXRzOjksdmFsOjIxMn0se29wOjE4LGJpdHM6Nyx2YWw6MTl9LHtvcDowLGJpdHM6OCx2YWw6MTA2fSx7b3A6MCxiaXRzOjgsdmFsOjQyfSwgICAge29wOjAsYml0czo5LHZhbDoxODB9LHtvcDowLGJpdHM6OCx2YWw6MTB9LHtvcDowLGJpdHM6OCx2YWw6MTM4fSx7b3A6MCxiaXRzOjgsdmFsOjc0fSx7b3A6MCxiaXRzOjksdmFsOjI0NH0se29wOjE2LGJpdHM6Nyx2YWw6NX0se29wOjAsYml0czo4LHZhbDo4Nn0sICAgIHtvcDowLGJpdHM6OCx2YWw6MjJ9LHtvcDo2NCxiaXRzOjgsdmFsOjB9LHtvcDoxOSxiaXRzOjcsdmFsOjUxfSx7b3A6MCxiaXRzOjgsdmFsOjExOH0se29wOjAsYml0czo4LHZhbDo1NH0se29wOjAsYml0czo5LHZhbDoyMDR9LHtvcDoxNyxiaXRzOjcsdmFsOjE1fSwgICAge29wOjAsYml0czo4LHZhbDoxMDJ9LHtvcDowLGJpdHM6OCx2YWw6Mzh9LHtvcDowLGJpdHM6OSx2YWw6MTcyfSx7b3A6MCxiaXRzOjgsdmFsOjZ9LHtvcDowLGJpdHM6OCx2YWw6MTM0fSx7b3A6MCxiaXRzOjgsdmFsOjcwfSx7b3A6MCxiaXRzOjksdmFsOjIzNn0sICAgIHtvcDoxNixiaXRzOjcsdmFsOjl9LHtvcDowLGJpdHM6OCx2YWw6OTR9LHtvcDowLGJpdHM6OCx2YWw6MzB9LHtvcDowLGJpdHM6OSx2YWw6MTU2fSx7b3A6MjAsYml0czo3LHZhbDo5OX0se29wOjAsYml0czo4LHZhbDoxMjZ9LHtvcDowLGJpdHM6OCx2YWw6NjJ9LCAgICB7b3A6MCxiaXRzOjksdmFsOjIyMH0se29wOjE4LGJpdHM6Nyx2YWw6Mjd9LHtvcDowLGJpdHM6OCx2YWw6MTEwfSx7b3A6MCxiaXRzOjgsdmFsOjQ2fSx7b3A6MCxiaXRzOjksdmFsOjE4OH0se29wOjAsYml0czo4LHZhbDoxNH0se29wOjAsYml0czo4LHZhbDoxNDJ9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjc4fSx7b3A6MCxiaXRzOjksdmFsOjI1Mn0se29wOjk2LGJpdHM6Nyx2YWw6MH0se29wOjAsYml0czo4LHZhbDo4MX0se29wOjAsYml0czo4LHZhbDoxN30se29wOjIxLGJpdHM6OCx2YWw6MTMxfSx7b3A6MTgsYml0czo3LHZhbDozMX0sICAgIHtvcDowLGJpdHM6OCx2YWw6MTEzfSx7b3A6MCxiaXRzOjgsdmFsOjQ5fSx7b3A6MCxiaXRzOjksdmFsOjE5NH0se29wOjE2LGJpdHM6Nyx2YWw6MTB9LHtvcDowLGJpdHM6OCx2YWw6OTd9LHtvcDowLGJpdHM6OCx2YWw6MzN9LHtvcDowLGJpdHM6OSx2YWw6MTYyfSwgICAge29wOjAsYml0czo4LHZhbDoxfSx7b3A6MCxiaXRzOjgsdmFsOjEyOX0se29wOjAsYml0czo4LHZhbDo2NX0se29wOjAsYml0czo5LHZhbDoyMjZ9LHtvcDoxNixiaXRzOjcsdmFsOjZ9LHtvcDowLGJpdHM6OCx2YWw6ODl9LHtvcDowLGJpdHM6OCx2YWw6MjV9LCAgICB7b3A6MCxiaXRzOjksdmFsOjE0Nn0se29wOjE5LGJpdHM6Nyx2YWw6NTl9LHtvcDowLGJpdHM6OCx2YWw6MTIxfSx7b3A6MCxiaXRzOjgsdmFsOjU3fSx7b3A6MCxiaXRzOjksdmFsOjIxMH0se29wOjE3LGJpdHM6Nyx2YWw6MTd9LHtvcDowLGJpdHM6OCx2YWw6MTA1fSwgICAge29wOjAsYml0czo4LHZhbDo0MX0se29wOjAsYml0czo5LHZhbDoxNzh9LHtvcDowLGJpdHM6OCx2YWw6OX0se29wOjAsYml0czo4LHZhbDoxMzd9LHtvcDowLGJpdHM6OCx2YWw6NzN9LHtvcDowLGJpdHM6OSx2YWw6MjQyfSx7b3A6MTYsYml0czo3LHZhbDo0fSwgICAge29wOjAsYml0czo4LHZhbDo4NX0se29wOjAsYml0czo4LHZhbDoyMX0se29wOjE2LGJpdHM6OCx2YWw6MjU4fSx7b3A6MTksYml0czo3LHZhbDo0M30se29wOjAsYml0czo4LHZhbDoxMTd9LHtvcDowLGJpdHM6OCx2YWw6NTN9LHtvcDowLGJpdHM6OSx2YWw6MjAyfSwgICAge29wOjE3LGJpdHM6Nyx2YWw6MTN9LHtvcDowLGJpdHM6OCx2YWw6MTAxfSx7b3A6MCxiaXRzOjgsdmFsOjM3fSx7b3A6MCxiaXRzOjksdmFsOjE3MH0se29wOjAsYml0czo4LHZhbDo1fSx7b3A6MCxiaXRzOjgsdmFsOjEzM30se29wOjAsYml0czo4LHZhbDo2OX0sICAgIHtvcDowLGJpdHM6OSx2YWw6MjM0fSx7b3A6MTYsYml0czo3LHZhbDo4fSx7b3A6MCxiaXRzOjgsdmFsOjkzfSx7b3A6MCxiaXRzOjgsdmFsOjI5fSx7b3A6MCxiaXRzOjksdmFsOjE1NH0se29wOjIwLGJpdHM6Nyx2YWw6ODN9LHtvcDowLGJpdHM6OCx2YWw6MTI1fSwgICAge29wOjAsYml0czo4LHZhbDo2MX0se29wOjAsYml0czo5LHZhbDoyMTh9LHtvcDoxOCxiaXRzOjcsdmFsOjIzfSx7b3A6MCxiaXRzOjgsdmFsOjEwOX0se29wOjAsYml0czo4LHZhbDo0NX0se29wOjAsYml0czo5LHZhbDoxODZ9LHtvcDowLGJpdHM6OCx2YWw6MTN9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjE0MX0se29wOjAsYml0czo4LHZhbDo3N30se29wOjAsYml0czo5LHZhbDoyNTB9LHtvcDoxNixiaXRzOjcsdmFsOjN9LHtvcDowLGJpdHM6OCx2YWw6ODN9LHtvcDowLGJpdHM6OCx2YWw6MTl9LHtvcDoyMSxiaXRzOjgsdmFsOjE5NX0sICAgIHtvcDoxOSxiaXRzOjcsdmFsOjM1fSx7b3A6MCxiaXRzOjgsdmFsOjExNX0se29wOjAsYml0czo4LHZhbDo1MX0se29wOjAsYml0czo5LHZhbDoxOTh9LHtvcDoxNyxiaXRzOjcsdmFsOjExfSx7b3A6MCxiaXRzOjgsdmFsOjk5fSx7b3A6MCxiaXRzOjgsdmFsOjM1fSwgICAge29wOjAsYml0czo5LHZhbDoxNjZ9LHtvcDowLGJpdHM6OCx2YWw6M30se29wOjAsYml0czo4LHZhbDoxMzF9LHtvcDowLGJpdHM6OCx2YWw6Njd9LHtvcDowLGJpdHM6OSx2YWw6MjMwfSx7b3A6MTYsYml0czo3LHZhbDo3fSx7b3A6MCxiaXRzOjgsdmFsOjkxfSwgICAge29wOjAsYml0czo4LHZhbDoyN30se29wOjAsYml0czo5LHZhbDoxNTB9LHtvcDoyMCxiaXRzOjcsdmFsOjY3fSx7b3A6MCxiaXRzOjgsdmFsOjEyM30se29wOjAsYml0czo4LHZhbDo1OX0se29wOjAsYml0czo5LHZhbDoyMTR9LHtvcDoxOCxiaXRzOjcsdmFsOjE5fSwgICAge29wOjAsYml0czo4LHZhbDoxMDd9LHtvcDowLGJpdHM6OCx2YWw6NDN9LHtvcDowLGJpdHM6OSx2YWw6MTgyfSx7b3A6MCxiaXRzOjgsdmFsOjExfSx7b3A6MCxiaXRzOjgsdmFsOjEzOX0se29wOjAsYml0czo4LHZhbDo3NX0se29wOjAsYml0czo5LHZhbDoyNDZ9LCAgICB7b3A6MTYsYml0czo3LHZhbDo1fSx7b3A6MCxiaXRzOjgsdmFsOjg3fSx7b3A6MCxiaXRzOjgsdmFsOjIzfSx7b3A6NjQsYml0czo4LHZhbDowfSx7b3A6MTksYml0czo3LHZhbDo1MX0se29wOjAsYml0czo4LHZhbDoxMTl9LHtvcDowLGJpdHM6OCx2YWw6NTV9LCAgICB7b3A6MCxiaXRzOjksdmFsOjIwNn0se29wOjE3LGJpdHM6Nyx2YWw6MTV9LHtvcDowLGJpdHM6OCx2YWw6MTAzfSx7b3A6MCxiaXRzOjgsdmFsOjM5fSx7b3A6MCxiaXRzOjksdmFsOjE3NH0se29wOjAsYml0czo4LHZhbDo3fSx7b3A6MCxiaXRzOjgsdmFsOjEzNX0sICAgIHtvcDowLGJpdHM6OCx2YWw6NzF9LHtvcDowLGJpdHM6OSx2YWw6MjM4fSx7b3A6MTYsYml0czo3LHZhbDo5fSx7b3A6MCxiaXRzOjgsdmFsOjk1fSx7b3A6MCxiaXRzOjgsdmFsOjMxfSx7b3A6MCxiaXRzOjksdmFsOjE1OH0se29wOjIwLGJpdHM6Nyx2YWw6OTl9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjEyN30se29wOjAsYml0czo4LHZhbDo2M30se29wOjAsYml0czo5LHZhbDoyMjJ9LHtvcDoxOCxiaXRzOjcsdmFsOjI3fSx7b3A6MCxiaXRzOjgsdmFsOjExMX0se29wOjAsYml0czo4LHZhbDo0N30se29wOjAsYml0czo5LHZhbDoxOTB9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjE1fSx7b3A6MCxiaXRzOjgsdmFsOjE0M30se29wOjAsYml0czo4LHZhbDo3OX0se29wOjAsYml0czo5LHZhbDoyNTR9LHtvcDo5NixiaXRzOjcsdmFsOjB9LHtvcDowLGJpdHM6OCx2YWw6ODB9LHtvcDowLGJpdHM6OCx2YWw6MTZ9LCAgICB7b3A6MjAsYml0czo4LHZhbDoxMTV9LHtvcDoxOCxiaXRzOjcsdmFsOjMxfSx7b3A6MCxiaXRzOjgsdmFsOjExMn0se29wOjAsYml0czo4LHZhbDo0OH0se29wOjAsYml0czo5LHZhbDoxOTN9LHtvcDoxNixiaXRzOjcsdmFsOjEwfSx7b3A6MCxiaXRzOjgsdmFsOjk2fSwgICAge29wOjAsYml0czo4LHZhbDozMn0se29wOjAsYml0czo5LHZhbDoxNjF9LHtvcDowLGJpdHM6OCx2YWw6MH0se29wOjAsYml0czo4LHZhbDoxMjh9LHtvcDowLGJpdHM6OCx2YWw6NjR9LHtvcDowLGJpdHM6OSx2YWw6MjI1fSx7b3A6MTYsYml0czo3LHZhbDo2fSwgICAge29wOjAsYml0czo4LHZhbDo4OH0se29wOjAsYml0czo4LHZhbDoyNH0se29wOjAsYml0czo5LHZhbDoxNDV9LHtvcDoxOSxiaXRzOjcsdmFsOjU5fSx7b3A6MCxiaXRzOjgsdmFsOjEyMH0se29wOjAsYml0czo4LHZhbDo1Nn0se29wOjAsYml0czo5LHZhbDoyMDl9LCAgICB7b3A6MTcsYml0czo3LHZhbDoxN30se29wOjAsYml0czo4LHZhbDoxMDR9LHtvcDowLGJpdHM6OCx2YWw6NDB9LHtvcDowLGJpdHM6OSx2YWw6MTc3fSx7b3A6MCxiaXRzOjgsdmFsOjh9LHtvcDowLGJpdHM6OCx2YWw6MTM2fSx7b3A6MCxiaXRzOjgsdmFsOjcyfSwgICAge29wOjAsYml0czo5LHZhbDoyNDF9LHtvcDoxNixiaXRzOjcsdmFsOjR9LHtvcDowLGJpdHM6OCx2YWw6ODR9LHtvcDowLGJpdHM6OCx2YWw6MjB9LHtvcDoyMSxiaXRzOjgsdmFsOjIyN30se29wOjE5LGJpdHM6Nyx2YWw6NDN9LHtvcDowLGJpdHM6OCx2YWw6MTE2fSwgICAge29wOjAsYml0czo4LHZhbDo1Mn0se29wOjAsYml0czo5LHZhbDoyMDF9LHtvcDoxNyxiaXRzOjcsdmFsOjEzfSx7b3A6MCxiaXRzOjgsdmFsOjEwMH0se29wOjAsYml0czo4LHZhbDozNn0se29wOjAsYml0czo5LHZhbDoxNjl9LHtvcDowLGJpdHM6OCx2YWw6NH0sICAgIHtvcDowLGJpdHM6OCx2YWw6MTMyfSx7b3A6MCxiaXRzOjgsdmFsOjY4fSx7b3A6MCxiaXRzOjksdmFsOjIzM30se29wOjE2LGJpdHM6Nyx2YWw6OH0se29wOjAsYml0czo4LHZhbDo5Mn0se29wOjAsYml0czo4LHZhbDoyOH0se29wOjAsYml0czo5LHZhbDoxNTN9LCAgICB7b3A6MjAsYml0czo3LHZhbDo4M30se29wOjAsYml0czo4LHZhbDoxMjR9LHtvcDowLGJpdHM6OCx2YWw6NjB9LHtvcDowLGJpdHM6OSx2YWw6MjE3fSx7b3A6MTgsYml0czo3LHZhbDoyM30se29wOjAsYml0czo4LHZhbDoxMDh9LHtvcDowLGJpdHM6OCx2YWw6NDR9LCAgICB7b3A6MCxiaXRzOjksdmFsOjE4NX0se29wOjAsYml0czo4LHZhbDoxMn0se29wOjAsYml0czo4LHZhbDoxNDB9LHtvcDowLGJpdHM6OCx2YWw6NzZ9LHtvcDowLGJpdHM6OSx2YWw6MjQ5fSx7b3A6MTYsYml0czo3LHZhbDozfSx7b3A6MCxiaXRzOjgsdmFsOjgyfSwgICAge29wOjAsYml0czo4LHZhbDoxOH0se29wOjIxLGJpdHM6OCx2YWw6MTYzfSx7b3A6MTksYml0czo3LHZhbDozNX0se29wOjAsYml0czo4LHZhbDoxMTR9LHtvcDowLGJpdHM6OCx2YWw6NTB9LHtvcDowLGJpdHM6OSx2YWw6MTk3fSx7b3A6MTcsYml0czo3LHZhbDoxMX0sICAgIHtvcDowLGJpdHM6OCx2YWw6OTh9LHtvcDowLGJpdHM6OCx2YWw6MzR9LHtvcDowLGJpdHM6OSx2YWw6MTY1fSx7b3A6MCxiaXRzOjgsdmFsOjJ9LHtvcDowLGJpdHM6OCx2YWw6MTMwfSx7b3A6MCxiaXRzOjgsdmFsOjY2fSx7b3A6MCxiaXRzOjksdmFsOjIyOX0sICAgIHtvcDoxNixiaXRzOjcsdmFsOjd9LHtvcDowLGJpdHM6OCx2YWw6OTB9LHtvcDowLGJpdHM6OCx2YWw6MjZ9LHtvcDowLGJpdHM6OSx2YWw6MTQ5fSx7b3A6MjAsYml0czo3LHZhbDo2N30se29wOjAsYml0czo4LHZhbDoxMjJ9LHtvcDowLGJpdHM6OCx2YWw6NTh9LCAgICB7b3A6MCxiaXRzOjksdmFsOjIxM30se29wOjE4LGJpdHM6Nyx2YWw6MTl9LHtvcDowLGJpdHM6OCx2YWw6MTA2fSx7b3A6MCxiaXRzOjgsdmFsOjQyfSx7b3A6MCxiaXRzOjksdmFsOjE4MX0se29wOjAsYml0czo4LHZhbDoxMH0se29wOjAsYml0czo4LHZhbDoxMzh9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjc0fSx7b3A6MCxiaXRzOjksdmFsOjI0NX0se29wOjE2LGJpdHM6Nyx2YWw6NX0se29wOjAsYml0czo4LHZhbDo4Nn0se29wOjAsYml0czo4LHZhbDoyMn0se29wOjY0LGJpdHM6OCx2YWw6MH0se29wOjE5LGJpdHM6Nyx2YWw6NTF9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjExOH0se29wOjAsYml0czo4LHZhbDo1NH0se29wOjAsYml0czo5LHZhbDoyMDV9LHtvcDoxNyxiaXRzOjcsdmFsOjE1fSx7b3A6MCxiaXRzOjgsdmFsOjEwMn0se29wOjAsYml0czo4LHZhbDozOH0se29wOjAsYml0czo5LHZhbDoxNzN9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjZ9LHtvcDowLGJpdHM6OCx2YWw6MTM0fSx7b3A6MCxiaXRzOjgsdmFsOjcwfSx7b3A6MCxiaXRzOjksdmFsOjIzN30se29wOjE2LGJpdHM6Nyx2YWw6OX0se29wOjAsYml0czo4LHZhbDo5NH0se29wOjAsYml0czo4LHZhbDozMH0sICAgIHtvcDowLGJpdHM6OSx2YWw6MTU3fSx7b3A6MjAsYml0czo3LHZhbDo5OX0se29wOjAsYml0czo4LHZhbDoxMjZ9LHtvcDowLGJpdHM6OCx2YWw6NjJ9LHtvcDowLGJpdHM6OSx2YWw6MjIxfSx7b3A6MTgsYml0czo3LHZhbDoyN30se29wOjAsYml0czo4LHZhbDoxMTB9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjQ2fSx7b3A6MCxiaXRzOjksdmFsOjE4OX0se29wOjAsYml0czo4LHZhbDoxNH0se29wOjAsYml0czo4LHZhbDoxNDJ9LHtvcDowLGJpdHM6OCx2YWw6Nzh9LHtvcDowLGJpdHM6OSx2YWw6MjUzfSx7b3A6OTYsYml0czo3LHZhbDowfSwgICAge29wOjAsYml0czo4LHZhbDo4MX0se29wOjAsYml0czo4LHZhbDoxN30se29wOjIxLGJpdHM6OCx2YWw6MTMxfSx7b3A6MTgsYml0czo3LHZhbDozMX0se29wOjAsYml0czo4LHZhbDoxMTN9LHtvcDowLGJpdHM6OCx2YWw6NDl9LHtvcDowLGJpdHM6OSx2YWw6MTk1fSwgICAge29wOjE2LGJpdHM6Nyx2YWw6MTB9LHtvcDowLGJpdHM6OCx2YWw6OTd9LHtvcDowLGJpdHM6OCx2YWw6MzN9LHtvcDowLGJpdHM6OSx2YWw6MTYzfSx7b3A6MCxiaXRzOjgsdmFsOjF9LHtvcDowLGJpdHM6OCx2YWw6MTI5fSx7b3A6MCxiaXRzOjgsdmFsOjY1fSwgICAge29wOjAsYml0czo5LHZhbDoyMjd9LHtvcDoxNixiaXRzOjcsdmFsOjZ9LHtvcDowLGJpdHM6OCx2YWw6ODl9LHtvcDowLGJpdHM6OCx2YWw6MjV9LHtvcDowLGJpdHM6OSx2YWw6MTQ3fSx7b3A6MTksYml0czo3LHZhbDo1OX0se29wOjAsYml0czo4LHZhbDoxMjF9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjU3fSx7b3A6MCxiaXRzOjksdmFsOjIxMX0se29wOjE3LGJpdHM6Nyx2YWw6MTd9LHtvcDowLGJpdHM6OCx2YWw6MTA1fSx7b3A6MCxiaXRzOjgsdmFsOjQxfSx7b3A6MCxiaXRzOjksdmFsOjE3OX0se29wOjAsYml0czo4LHZhbDo5fSwgICAge29wOjAsYml0czo4LHZhbDoxMzd9LHtvcDowLGJpdHM6OCx2YWw6NzN9LHtvcDowLGJpdHM6OSx2YWw6MjQzfSx7b3A6MTYsYml0czo3LHZhbDo0fSx7b3A6MCxiaXRzOjgsdmFsOjg1fSx7b3A6MCxiaXRzOjgsdmFsOjIxfSx7b3A6MTYsYml0czo4LHZhbDoyNTh9LCAgICB7b3A6MTksYml0czo3LHZhbDo0M30se29wOjAsYml0czo4LHZhbDoxMTd9LHtvcDowLGJpdHM6OCx2YWw6NTN9LHtvcDowLGJpdHM6OSx2YWw6MjAzfSx7b3A6MTcsYml0czo3LHZhbDoxM30se29wOjAsYml0czo4LHZhbDoxMDF9LHtvcDowLGJpdHM6OCx2YWw6Mzd9LCAgICB7b3A6MCxiaXRzOjksdmFsOjE3MX0se29wOjAsYml0czo4LHZhbDo1fSx7b3A6MCxiaXRzOjgsdmFsOjEzM30se29wOjAsYml0czo4LHZhbDo2OX0se29wOjAsYml0czo5LHZhbDoyMzV9LHtvcDoxNixiaXRzOjcsdmFsOjh9LHtvcDowLGJpdHM6OCx2YWw6OTN9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjI5fSx7b3A6MCxiaXRzOjksdmFsOjE1NX0se29wOjIwLGJpdHM6Nyx2YWw6ODN9LHtvcDowLGJpdHM6OCx2YWw6MTI1fSx7b3A6MCxiaXRzOjgsdmFsOjYxfSx7b3A6MCxiaXRzOjksdmFsOjIxOX0se29wOjE4LGJpdHM6Nyx2YWw6MjN9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjEwOX0se29wOjAsYml0czo4LHZhbDo0NX0se29wOjAsYml0czo5LHZhbDoxODd9LHtvcDowLGJpdHM6OCx2YWw6MTN9LHtvcDowLGJpdHM6OCx2YWw6MTQxfSx7b3A6MCxiaXRzOjgsdmFsOjc3fSx7b3A6MCxiaXRzOjksdmFsOjI1MX0sICAgIHtvcDoxNixiaXRzOjcsdmFsOjN9LHtvcDowLGJpdHM6OCx2YWw6ODN9LHtvcDowLGJpdHM6OCx2YWw6MTl9LHtvcDoyMSxiaXRzOjgsdmFsOjE5NX0se29wOjE5LGJpdHM6Nyx2YWw6MzV9LHtvcDowLGJpdHM6OCx2YWw6MTE1fSx7b3A6MCxiaXRzOjgsdmFsOjUxfSwgICAge29wOjAsYml0czo5LHZhbDoxOTl9LHtvcDoxNyxiaXRzOjcsdmFsOjExfSx7b3A6MCxiaXRzOjgsdmFsOjk5fSx7b3A6MCxiaXRzOjgsdmFsOjM1fSx7b3A6MCxiaXRzOjksdmFsOjE2N30se29wOjAsYml0czo4LHZhbDozfSx7b3A6MCxiaXRzOjgsdmFsOjEzMX0sICAgIHtvcDowLGJpdHM6OCx2YWw6Njd9LHtvcDowLGJpdHM6OSx2YWw6MjMxfSx7b3A6MTYsYml0czo3LHZhbDo3fSx7b3A6MCxiaXRzOjgsdmFsOjkxfSx7b3A6MCxiaXRzOjgsdmFsOjI3fSx7b3A6MCxiaXRzOjksdmFsOjE1MX0se29wOjIwLGJpdHM6Nyx2YWw6Njd9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjEyM30se29wOjAsYml0czo4LHZhbDo1OX0se29wOjAsYml0czo5LHZhbDoyMTV9LHtvcDoxOCxiaXRzOjcsdmFsOjE5fSx7b3A6MCxiaXRzOjgsdmFsOjEwN30se29wOjAsYml0czo4LHZhbDo0M30se29wOjAsYml0czo5LHZhbDoxODN9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjExfSx7b3A6MCxiaXRzOjgsdmFsOjEzOX0se29wOjAsYml0czo4LHZhbDo3NX0se29wOjAsYml0czo5LHZhbDoyNDd9LHtvcDoxNixiaXRzOjcsdmFsOjV9LHtvcDowLGJpdHM6OCx2YWw6ODd9LHtvcDowLGJpdHM6OCx2YWw6MjN9LCAgICB7b3A6NjQsYml0czo4LHZhbDowfSx7b3A6MTksYml0czo3LHZhbDo1MX0se29wOjAsYml0czo4LHZhbDoxMTl9LHtvcDowLGJpdHM6OCx2YWw6NTV9LHtvcDowLGJpdHM6OSx2YWw6MjA3fSx7b3A6MTcsYml0czo3LHZhbDoxNX0se29wOjAsYml0czo4LHZhbDoxMDN9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjM5fSx7b3A6MCxiaXRzOjksdmFsOjE3NX0se29wOjAsYml0czo4LHZhbDo3fSx7b3A6MCxiaXRzOjgsdmFsOjEzNX0se29wOjAsYml0czo4LHZhbDo3MX0se29wOjAsYml0czo5LHZhbDoyMzl9LHtvcDoxNixiaXRzOjcsdmFsOjl9LCAgICB7b3A6MCxiaXRzOjgsdmFsOjk1fSx7b3A6MCxiaXRzOjgsdmFsOjMxfSx7b3A6MCxiaXRzOjksdmFsOjE1OX0se29wOjIwLGJpdHM6Nyx2YWw6OTl9LHtvcDowLGJpdHM6OCx2YWw6MTI3fSx7b3A6MCxiaXRzOjgsdmFsOjYzfSx7b3A6MCxiaXRzOjksdmFsOjIyM30sICAgIHtvcDoxOCxiaXRzOjcsdmFsOjI3fSx7b3A6MCxiaXRzOjgsdmFsOjExMX0se29wOjAsYml0czo4LHZhbDo0N30se29wOjAsYml0czo5LHZhbDoxOTF9LHtvcDowLGJpdHM6OCx2YWw6MTV9LHtvcDowLGJpdHM6OCx2YWw6MTQzfSx7b3A6MCxiaXRzOjgsdmFsOjc5fSwgICAge29wOjAsYml0czo5LHZhbDoyNTV9XSlcIixkaXN0Zml4X2FyeT1udWxsLGRpc3RmaXhfZGVmPVwiKFsgICAge29wOjE2LGJpdHM6NSx2YWw6MX0se29wOjIzLGJpdHM6NSx2YWw6MjU3fSx7b3A6MTksYml0czo1LHZhbDoxN30se29wOjI3LGJpdHM6NSx2YWw6NDA5N30se29wOjE3LGJpdHM6NSx2YWw6NX0se29wOjI1LGJpdHM6NSx2YWw6MTAyNX0sICAgIHtvcDoyMSxiaXRzOjUsdmFsOjY1fSx7b3A6MjksYml0czo1LHZhbDoxNjM4NX0se29wOjE2LGJpdHM6NSx2YWw6M30se29wOjI0LGJpdHM6NSx2YWw6NTEzfSx7b3A6MjAsYml0czo1LHZhbDozM30se29wOjI4LGJpdHM6NSx2YWw6ODE5M30sICAgIHtvcDoxOCxiaXRzOjUsdmFsOjl9LHtvcDoyNixiaXRzOjUsdmFsOjIwNDl9LHtvcDoyMixiaXRzOjUsdmFsOjEyOX0se29wOjY0LGJpdHM6NSx2YWw6MH0se29wOjE2LGJpdHM6NSx2YWw6Mn0se29wOjIzLGJpdHM6NSx2YWw6Mzg1fSwgICAge29wOjE5LGJpdHM6NSx2YWw6MjV9LHtvcDoyNyxiaXRzOjUsdmFsOjYxNDV9LHtvcDoxNyxiaXRzOjUsdmFsOjd9LHtvcDoyNSxiaXRzOjUsdmFsOjE1Mzd9LHtvcDoyMSxiaXRzOjUsdmFsOjk3fSx7b3A6MjksYml0czo1LHZhbDoyNDU3N30sICAgIHtvcDoxNixiaXRzOjUsdmFsOjR9LHtvcDoyNCxiaXRzOjUsdmFsOjc2OX0se29wOjIwLGJpdHM6NSx2YWw6NDl9LHtvcDoyOCxiaXRzOjUsdmFsOjEyMjg5fSx7b3A6MTgsYml0czo1LHZhbDoxM30se29wOjI2LGJpdHM6NSx2YWw6MzA3M30sICAgIHtvcDoyMixiaXRzOjUsdmFsOjE5M30se29wOjY0LGJpdHM6NSx2YWw6MH1dKVwiO2Z1bmN0aW9uIGZpeGVkdGFibGVzKHN0YXRlKXt2YXIgaTtmb3IobGVuZml4X2FyeXx8KGxlbmZpeF9hcnk9ZXZhbChsZW5maXhfZGVmKSksZGlzdGZpeF9hcnl8fChkaXN0Zml4X2FyeT1ldmFsKGRpc3RmaXhfZGVmKSksc3RhdGUubGVuY29kZT0wLHN0YXRlLmRpc3Rjb2RlPTUxMixpPTA7aTw1MTI7aSsrKXN0YXRlLmNvZGVzW2ldPWxlbmZpeF9hcnlbaV07Zm9yKGk9MDtpPDMyO2krKylzdGF0ZS5jb2Rlc1tpKzUxMl09ZGlzdGZpeF9hcnlbaV07c3RhdGUubGVuYml0cz05LHN0YXRlLmRpc3RiaXRzPTV9ZnVuY3Rpb24gdXBkYXRld2luZG93KHQpe3ZhciBlPXQuc3RhdGUsYT10Lm91dHB1dF9kYXRhLmxlbmd0aDtyZXR1cm4gbnVsbD09PWUud2luZG93JiYoZS53aW5kb3c9XCJcIiksMD09ZS53c2l6ZSYmKGUud3NpemU9MTw8ZS53Yml0cyksYT49ZS53c2l6ZT9lLndpbmRvdz10Lm91dHB1dF9kYXRhLnN1YnN0cmluZyhhLWUud3NpemUpOmUud2hhdmUrYTxlLndzaXplP2Uud2luZG93Kz10Lm91dHB1dF9kYXRhOmUud2luZG93PWUud2luZG93LnN1YnN0cmluZyhlLndoYXZlLShlLndzaXplLWEpKSt0Lm91dHB1dF9kYXRhLGUud2hhdmU9ZS53aW5kb3cubGVuZ3RoLGUud2hhdmU8ZS53c2l6ZT9lLnduZXh0PWUud2hhdmU6ZS53bmV4dD0wLDB9ZnVuY3Rpb24gQ1JDMih0LGUpe3ZhciBhPVsyNTUmZSxlPj4+OCYyNTVdO3Quc3RhdGUuY2hlY2s9dC5jaGVja3N1bV9mdW5jdGlvbih0LnN0YXRlLmNoZWNrLGEsMCwyKX1mdW5jdGlvbiBDUkM0KHQsZSl7dmFyIGE9WzI1NSZlLGU+Pj44JjI1NSxlPj4+MTYmMjU1LGU+Pj4yNCYyNTVdO3Quc3RhdGUuY2hlY2s9dC5jaGVja3N1bV9mdW5jdGlvbih0LnN0YXRlLmNoZWNrLGEsMCw0KX1mdW5jdGlvbiBMT0FEKHQsZSl7cmV0dXJuIGUuc3RybT10LGUubGVmdD10LmF2YWlsX291dCxlLm5leHQ9dC5uZXh0X2luLGUuaGF2ZT10LmF2YWlsX2luLGUuaG9sZD10LnN0YXRlLmhvbGQsZS5iaXRzPXQuc3RhdGUuYml0cyxlfWZ1bmN0aW9uIFJFU1RPUkUodCl7dmFyIGU9dC5zdHJtO2UubmV4dF9pbj10Lm5leHQsZS5hdmFpbF9vdXQ9dC5sZWZ0LGUuYXZhaWxfaW49dC5oYXZlLGUuc3RhdGUuaG9sZD10LmhvbGQsZS5zdGF0ZS5iaXRzPXQuYml0c31mdW5jdGlvbiBJTklUQklUUyh0KXt0LmhvbGQ9MCx0LmJpdHM9MH1mdW5jdGlvbiBQVUxMQllURSh0KXtyZXR1cm4gMCE9dC5oYXZlJiYodC5oYXZlLS0sdC5ob2xkKz0oMjU1JnQuc3RybS5pbnB1dF9kYXRhLmNoYXJDb2RlQXQodC5uZXh0KyspKTw8dC5iaXRzLHQuYml0cys9OCwhMCl9ZnVuY3Rpb24gTkVFREJJVFModCxlKXtmb3IoO3QuYml0czxlOylpZighUFVMTEJZVEUodCkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gQklUUyh0LGUpe3JldHVybiB0LmhvbGQmKDE8PGUpLTF9ZnVuY3Rpb24gRFJPUEJJVFModCxlKXt0LmhvbGQ+Pj49ZSx0LmJpdHMtPWV9ZnVuY3Rpb24gQllURUJJVFModCl7dC5ob2xkPj4+PTcmdC5iaXRzLHQuYml0cy09NyZ0LmJpdHN9ZnVuY3Rpb24gUkVWRVJTRSh0KXtyZXR1cm4odD4+PjI0JjI1NSkrKHQ+Pj44JjY1MjgwKSsoKDY1MjgwJnQpPDw4KSsoKDI1NSZ0KTw8MjQpfXZhciBpbmZsYXRlX29yZGVyPVsxNiwxNywxOCwwLDgsNyw5LDYsMTAsNSwxMSw0LDEyLDMsMTMsMiwxNCwxLDE1XTtaTElCLmluZmxhdGU9ZnVuY3Rpb24odCxlKXt2YXIgYSxzLG8saSxyLG4sbCxoLGMscD0tMSxkPS0xO2lmKCF0fHwhdC5zdGF0ZXx8IXQuaW5wdXRfZGF0YSYmMCE9dC5hdmFpbF9pbilyZXR1cm4gWkxJQi5aX1NUUkVBTV9FUlJPUjsoYT10LnN0YXRlKS5tb2RlPT1UWVBFJiYoYS5tb2RlPVRZUEVETyksTE9BRCh0LHM9e30pLG89cy5oYXZlLGk9cy5sZWZ0LGM9WkxJQi5aX09LO3Q6Zm9yKDs7KXN3aXRjaChhLm1vZGUpe2Nhc2UgSEVBRDppZigwPT1hLndyYXApe2EubW9kZT1UWVBFRE87YnJlYWt9aWYoIU5FRURCSVRTKHMsMTYpKWJyZWFrIHQ7aWYoMiZhLndyYXAmJjM1NjE1PT1zLmhvbGQpe2EuY2hlY2s9dC5jaGVja3N1bV9mdW5jdGlvbigwLG51bGwsMCwwKSxDUkMyKHQscy5ob2xkKSxJTklUQklUUyhzKSxhLm1vZGU9RkxBR1M7YnJlYWt9aWYoYS5mbGFncz0wLG51bGwhPT1hLmhlYWQmJihhLmhlYWQuZG9uZT0tMSksISgxJmEud3JhcCl8fCgoQklUUyhzLDgpPDw4KSsocy5ob2xkPj4+OCkpJTMxKXt0Lm1zZz1cImluY29ycmVjdCBoZWFkZXIgY2hlY2tcIixhLm1vZGU9QkFEO2JyZWFrfWlmKEJJVFMocyw0KSE9WkxJQi5aX0RFRkxBVEVEKXt0Lm1zZz1cInVua25vd24gY29tcHJlc3Npb24gbWV0aG9kXCIsYS5tb2RlPUJBRDticmVha31pZihEUk9QQklUUyhzLDQpLGg9QklUUyhzLDQpKzgsMD09YS53Yml0cylhLndiaXRzPWg7ZWxzZSBpZihoPmEud2JpdHMpe3QubXNnPVwiaW52YWxpZCB3aW5kb3cgc2l6ZVwiLGEubW9kZT1CQUQ7YnJlYWt9YS5kbWF4PTE8PGgsdC5hZGxlcj1hLmNoZWNrPXQuY2hlY2tzdW1fZnVuY3Rpb24oMCxudWxsLDAsMCksYS5tb2RlPTUxMiZzLmhvbGQ/RElDVElEOlRZUEUsSU5JVEJJVFMocyk7YnJlYWs7Y2FzZSBGTEFHUzppZighTkVFREJJVFMocywxNikpYnJlYWsgdDtpZihhLmZsYWdzPXMuaG9sZCwoMjU1JmEuZmxhZ3MpIT1aTElCLlpfREVGTEFURUQpe3QubXNnPVwidW5rbm93biBjb21wcmVzc2lvbiBtZXRob2RcIixhLm1vZGU9QkFEO2JyZWFrfWlmKDU3MzQ0JmEuZmxhZ3Mpe3QubXNnPVwidW5rbm93biBoZWFkZXIgZmxhZ3Mgc2V0XCIsYS5tb2RlPUJBRDticmVha31udWxsIT09YS5oZWFkJiYoYS5oZWFkLnRleHQ9cy5ob2xkPj4+OCYxKSw1MTImYS5mbGFncyYmQ1JDMih0LHMuaG9sZCksSU5JVEJJVFMocyksYS5tb2RlPVRJTUU7Y2FzZSBUSU1FOmlmKCFORUVEQklUUyhzLDMyKSlicmVhayB0O251bGwhPT1hLmhlYWQmJihhLmhlYWQudGltZT1zLmhvbGQpLDUxMiZhLmZsYWdzJiZDUkM0KHQscy5ob2xkKSxJTklUQklUUyhzKSxhLm1vZGU9T1M7Y2FzZSBPUzppZighTkVFREJJVFMocywxNikpYnJlYWsgdDtudWxsIT09YS5oZWFkJiYoYS5oZWFkLnhmbGFncz0yNTUmcy5ob2xkLGEuaGVhZC5vcz1zLmhvbGQ+Pj44KSw1MTImYS5mbGFncyYmQ1JDMih0LHMuaG9sZCksSU5JVEJJVFMocyksYS5tb2RlPUVYTEVOO2Nhc2UgRVhMRU46aWYoMTAyNCZhLmZsYWdzKXtpZighTkVFREJJVFMocywxNikpYnJlYWsgdDthLmxlbmd0aD1zLmhvbGQsbnVsbCE9PWEuaGVhZCYmKGEuaGVhZC5leHRyYV9sZW49cy5ob2xkKSw1MTImYS5mbGFncyYmQ1JDMih0LHMuaG9sZCksSU5JVEJJVFMocyksYS5oZWFkLmV4dHJhPVwiXCJ9ZWxzZSBudWxsIT09YS5oZWFkJiYoYS5oZWFkLmV4dHJhPW51bGwpO2EubW9kZT1FWFRSQTtjYXNlIEVYVFJBOmlmKDEwMjQmYS5mbGFncyYmKChyPWEubGVuZ3RoKT5zLmhhdmUmJihyPXMuaGF2ZSksciYmKG51bGwhPT1hLmhlYWQmJm51bGwhPT1hLmhlYWQuZXh0cmEmJihoPWEuaGVhZC5leHRyYV9sZW4tYS5sZW5ndGgsYS5oZWFkLmV4dHJhKz10LmlucHV0X2RhdGEuc3Vic3RyaW5nKHMubmV4dCxzLm5leHQrKGgrcj5hLmhlYWQuZXh0cmFfbWF4P2EuaGVhZC5leHRyYV9tYXgtaDpyKSkpLDUxMiZhLmZsYWdzJiYoYS5jaGVjaz10LmNoZWNrc3VtX2Z1bmN0aW9uKGEuY2hlY2ssdC5pbnB1dF9kYXRhLHMubmV4dCxyKSkscy5oYXZlLT1yLHMubmV4dCs9cixhLmxlbmd0aC09ciksYS5sZW5ndGgpKWJyZWFrIHQ7YS5sZW5ndGg9MCxhLm1vZGU9TkFNRTtjYXNlIE5BTUU6aWYoMjA0OCZhLmZsYWdzKXtpZigwPT1zLmhhdmUpYnJlYWsgdDtudWxsIT09YS5oZWFkJiZudWxsPT09YS5oZWFkLm5hbWUmJihhLmhlYWQubmFtZT1cIlwiKSxyPTA7ZG97aWYoaD10LmlucHV0X2RhdGEuY2hhckF0KHMubmV4dCtyKSxyKyssXCJcXDBcIj09PWgpYnJlYWs7bnVsbCE9PWEuaGVhZCYmYS5sZW5ndGg8YS5oZWFkLm5hbWVfbWF4JiYoYS5oZWFkLm5hbWUrPWgsYS5sZW5ndGgrKyl9d2hpbGUocjxzLmhhdmUpO2lmKDUxMiZhLmZsYWdzJiYoYS5jaGVjaz10LmNoZWNrc3VtX2Z1bmN0aW9uKGEuY2hlY2ssdC5pbnB1dF9kYXRhLHMubmV4dCxyKSkscy5oYXZlLT1yLHMubmV4dCs9cixcIlxcMFwiIT09aClicmVhayB0fWVsc2UgbnVsbCE9PWEuaGVhZCYmKGEuaGVhZC5uYW1lPW51bGwpO2EubGVuZ3RoPTAsYS5tb2RlPUNPTU1FTlQ7Y2FzZSBDT01NRU5UOmlmKDQwOTYmYS5mbGFncyl7aWYoMD09cy5oYXZlKWJyZWFrIHQ7cj0wLG51bGwhPT1hLmhlYWQmJm51bGw9PT1hLmhlYWQuY29tbWVudCYmKGEuaGVhZC5jb21tZW50PVwiXCIpO2Rve2lmKGg9dC5pbnB1dF9kYXRhLmNoYXJBdChzLm5leHQrcikscisrLFwiXFwwXCI9PT1oKWJyZWFrO251bGwhPT1hLmhlYWQmJmEubGVuZ3RoPGEuaGVhZC5jb21tX21heCYmKGEuaGVhZC5jb21tZW50Kz1oLGEubGVuZ3RoKyspfXdoaWxlKHI8cy5oYXZlKTtpZig1MTImYS5mbGFncyYmKGEuY2hlY2s9dC5jaGVja3N1bV9mdW5jdGlvbihhLmNoZWNrLHQuaW5wdXRfZGF0YSxzLm5leHQscikpLHMuaGF2ZS09cixzLm5leHQrPXIsXCJcXDBcIiE9PWgpYnJlYWsgdH1lbHNlIG51bGwhPT1hLmhlYWQmJihhLmhlYWQuY29tbWVudD1udWxsKTthLm1vZGU9SENSQztjYXNlIEhDUkM6aWYoNTEyJmEuZmxhZ3Mpe2lmKCFORUVEQklUUyhzLDE2KSlicmVhayB0O2lmKHMuaG9sZCE9KDY1NTM1JmEuY2hlY2spKXt0Lm1zZz1cImhlYWRlciBjcmMgbWlzbWF0Y2hcIixhLm1vZGU9QkFEO2JyZWFrfUlOSVRCSVRTKHMpfW51bGwhPT1hLmhlYWQmJihhLmhlYWQuaGNyYz1hLmZsYWdzPj4+OSYxLGEuaGVhZC5kb25lPTEpLHQuYWRsZXI9YS5jaGVjaz10LmNoZWNrc3VtX2Z1bmN0aW9uKDAsbnVsbCwwLDApLGEubW9kZT1UWVBFO2JyZWFrO2Nhc2UgRElDVElEOmlmKCFORUVEQklUUyhzLDMyKSlicmVhayB0O3QuYWRsZXI9YS5jaGVjaz1SRVZFUlNFKHMuaG9sZCksSU5JVEJJVFMocyksYS5tb2RlPURJQ1Q7Y2FzZSBESUNUOmlmKDA9PWEuaGF2ZWRpY3QpcmV0dXJuIFJFU1RPUkUocyksWkxJQi5aX05FRURfRElDVDt0LmFkbGVyPWEuY2hlY2s9dC5jaGVja3N1bV9mdW5jdGlvbigwLG51bGwsMCwwKSxhLm1vZGU9VFlQRTtjYXNlIFRZUEU6aWYoZT09WkxJQi5aX0JMT0NLfHxlPT1aTElCLlpfVFJFRVMpYnJlYWsgdDtjYXNlIFRZUEVETzppZihhLmxhc3Qpe0JZVEVCSVRTKHMpLGEubW9kZT1DSEVDSzticmVha31pZighTkVFREJJVFMocywzKSlicmVhayB0O3N3aXRjaChhLmxhc3Q9QklUUyhzLDEpLERST1BCSVRTKHMsMSksQklUUyhzLDIpKXtjYXNlIDA6YS5tb2RlPVNUT1JFRDticmVhaztjYXNlIDE6aWYoZml4ZWR0YWJsZXMoYSksYS5tb2RlPUxFTl8sZT09WkxJQi5aX1RSRUVTKXtEUk9QQklUUyhzLDIpO2JyZWFrIHR9YnJlYWs7Y2FzZSAyOmEubW9kZT1UQUJMRTticmVhaztjYXNlIDM6dC5tc2c9XCJpbnZhbGlkIGJsb2NrIHR5cGVcIixhLm1vZGU9QkFEfURST1BCSVRTKHMsMik7YnJlYWs7Y2FzZSBTVE9SRUQ6aWYoQllURUJJVFMocyksIU5FRURCSVRTKHMsMzIpKWJyZWFrIHQ7aWYoKDY1NTM1JnMuaG9sZCkhPShzLmhvbGQ+Pj4xNiY2NTUzNV42NTUzNSkpe3QubXNnPVwiaW52YWxpZCBzdG9yZWQgYmxvY2sgbGVuZ3Roc1wiLGEubW9kZT1CQUQ7YnJlYWt9aWYoYS5sZW5ndGg9NjU1MzUmcy5ob2xkLElOSVRCSVRTKHMpLGEubW9kZT1DT1BZXyxlPT1aTElCLlpfVFJFRVMpYnJlYWsgdDtjYXNlIENPUFlfOmEubW9kZT1DT1BZO2Nhc2UgQ09QWTppZihyPWEubGVuZ3RoKXtpZihyPnMuaGF2ZSYmKHI9cy5oYXZlKSxyPnMubGVmdCYmKHI9cy5sZWZ0KSwwPT1yKWJyZWFrIHQ7dC5vdXRwdXRfZGF0YSs9dC5pbnB1dF9kYXRhLnN1YnN0cmluZyhzLm5leHQscy5uZXh0K3IpLHQubmV4dF9vdXQrPXIscy5oYXZlLT1yLHMubmV4dCs9cixzLmxlZnQtPXIsYS5sZW5ndGgtPXI7YnJlYWt9YS5tb2RlPVRZUEU7YnJlYWs7Y2FzZSBUQUJMRTppZighTkVFREJJVFMocywxNCkpYnJlYWsgdDtpZihhLm5sZW49QklUUyhzLDUpKzI1NyxEUk9QQklUUyhzLDUpLGEubmRpc3Q9QklUUyhzLDUpKzEsRFJPUEJJVFMocyw1KSxhLm5jb2RlPUJJVFMocyw0KSs0LERST1BCSVRTKHMsNCksYS5ubGVuPjI4Nnx8YS5uZGlzdD4zMCl7dC5tc2c9XCJ0b28gbWFueSBsZW5ndGggb3IgZGlzdGFuY2Ugc3ltYm9sc1wiLGEubW9kZT1CQUQ7YnJlYWt9YS5oYXZlPTAsYS5tb2RlPUxFTkxFTlM7Y2FzZSBMRU5MRU5TOmZvcig7YS5oYXZlPGEubmNvZGU7KXtpZighTkVFREJJVFMocywzKSlicmVhayB0O3ZhciB2PUJJVFMocywzKTthLmxlbnNbaW5mbGF0ZV9vcmRlclthLmhhdmUrK11dPXYsRFJPUEJJVFMocywzKX1mb3IoO2EuaGF2ZTwxOTspYS5sZW5zW2luZmxhdGVfb3JkZXJbYS5oYXZlKytdXT0wO2lmKGEubmV4dD0wLGEubGVuY29kZT0wLGEubGVuYml0cz03LGM9aW5mbGF0ZV90YWJsZShhLENPREVTKSl7dC5tc2c9XCJpbnZhbGlkIGNvZGUgbGVuZ3RocyBzZXRcIixhLm1vZGU9QkFEO2JyZWFrfWEuaGF2ZT0wLGEubW9kZT1DT0RFTEVOUztjYXNlIENPREVMRU5TOmZvcig7YS5oYXZlPGEubmxlbithLm5kaXN0Oyl7Zm9yKDshKChuPWEuY29kZXNbYS5sZW5jb2RlK0JJVFMocyxhLmxlbmJpdHMpXSkuYml0czw9cy5iaXRzKTspaWYoIVBVTExCWVRFKHMpKWJyZWFrIHQ7aWYobi52YWw8MTYpRFJPUEJJVFMocyxuLmJpdHMpLGEubGVuc1thLmhhdmUrK109bi52YWw7ZWxzZXtpZigxNj09bi52YWwpe2lmKCFORUVEQklUUyhzLG4uYml0cysyKSlicmVhayB0O2lmKERST1BCSVRTKHMsbi5iaXRzKSwwPT1hLmhhdmUpe3QubXNnPVwiaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdFwiLGEubW9kZT1CQUQ7YnJlYWt9aD1hLmxlbnNbYS5oYXZlLTFdLHI9MytCSVRTKHMsMiksRFJPUEJJVFMocywyKX1lbHNlIGlmKDE3PT1uLnZhbCl7aWYoIU5FRURCSVRTKHMsbi5iaXRzKzMpKWJyZWFrIHQ7RFJPUEJJVFMocyxuLmJpdHMpLGg9MCxyPTMrQklUUyhzLDMpLERST1BCSVRTKHMsMyl9ZWxzZXtpZighTkVFREJJVFMocyxuLmJpdHMrNykpYnJlYWsgdDtEUk9QQklUUyhzLG4uYml0cyksaD0wLHI9MTErQklUUyhzLDcpLERST1BCSVRTKHMsNyl9aWYoYS5oYXZlK3I+YS5ubGVuK2EubmRpc3Qpe3QubXNnPVwiaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdFwiLGEubW9kZT1CQUQ7YnJlYWt9Zm9yKDtyLS07KWEubGVuc1thLmhhdmUrK109aH19aWYoYS5tb2RlPT1CQUQpYnJlYWs7aWYoMD09YS5sZW5zWzI1Nl0pe3QubXNnPVwiaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrXCIsYS5tb2RlPUJBRDticmVha31pZihhLm5leHQ9MCxhLmxlbmNvZGU9YS5uZXh0LGEubGVuYml0cz05LGM9aW5mbGF0ZV90YWJsZShhLExFTlMpKXt0Lm1zZz1cImludmFsaWQgbGl0ZXJhbC9sZW5ndGhzIHNldFwiLGEubW9kZT1CQUQ7YnJlYWt9aWYoYS5kaXN0Y29kZT1hLm5leHQsYS5kaXN0Yml0cz02LGM9aW5mbGF0ZV90YWJsZShhLERJU1RTKSl7dC5tc2c9XCJpbnZhbGlkIGRpc3RhbmNlcyBzZXRcIixhLm1vZGU9QkFEO2JyZWFrfWlmKGEubW9kZT1MRU5fLGU9PVpMSUIuWl9UUkVFUylicmVhayB0O2Nhc2UgTEVOXzphLm1vZGU9TEVOO2Nhc2UgTEVOOmlmKHMuaGF2ZT49NiYmcy5sZWZ0Pj0yNTgpe1JFU1RPUkUocyksaW5mbGF0ZV9mYXN0KHQsaSksTE9BRCh0LHMpLGEubW9kZT09VFlQRSYmKGEuYmFjaz0tMSk7YnJlYWt9Zm9yKGEuYmFjaz0wOyEoKG49YS5jb2Rlc1thLmxlbmNvZGUrQklUUyhzLGEubGVuYml0cyldKS5iaXRzPD1zLmJpdHMpOylpZighUFVMTEJZVEUocykpYnJlYWsgdDtpZihuLm9wJiYwPT0oMjQwJm4ub3ApKXtmb3IobD1uO249YS5jb2Rlc1thLmxlbmNvZGUrbC52YWwrKEJJVFMocyxsLmJpdHMrbC5vcCk+Pj5sLmJpdHMpXSwhKGwuYml0cytuLmJpdHM8PXMuYml0cyk7KWlmKCFQVUxMQllURShzKSlicmVhayB0O0RST1BCSVRTKHMsbC5iaXRzKSxhLmJhY2srPWwuYml0c31pZihEUk9QQklUUyhzLG4uYml0cyksYS5iYWNrKz1uLmJpdHMsYS5sZW5ndGg9bi52YWwsMD09bi5vcCl7YS5tb2RlPUxJVDticmVha31pZigzMiZuLm9wKXthLmJhY2s9LTEsYS5tb2RlPVRZUEU7YnJlYWt9aWYoNjQmbi5vcCl7dC5tc2c9XCJpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGVcIixhLm1vZGU9QkFEO2JyZWFrfWEuZXh0cmE9MTUmbi5vcCxhLm1vZGU9TEVORVhUO2Nhc2UgTEVORVhUOmlmKGEuZXh0cmEpe2lmKCFORUVEQklUUyhzLGEuZXh0cmEpKWJyZWFrIHQ7YS5sZW5ndGgrPUJJVFMocyxhLmV4dHJhKSxEUk9QQklUUyhzLGEuZXh0cmEpLGEuYmFjays9YS5leHRyYX1hLndhcz1hLmxlbmd0aCxhLm1vZGU9RElTVDtjYXNlIERJU1Q6Zm9yKDshKChuPWEuY29kZXNbYS5kaXN0Y29kZStCSVRTKHMsYS5kaXN0Yml0cyldKS5iaXRzPD1zLmJpdHMpOylpZighUFVMTEJZVEUocykpYnJlYWsgdDtpZigwPT0oMjQwJm4ub3ApKXtmb3IobD1uO249YS5jb2Rlc1thLmRpc3Rjb2RlK2wudmFsKyhCSVRTKHMsbC5iaXRzK2wub3ApPj4+bC5iaXRzKV0sIShsLmJpdHMrbi5iaXRzPD1zLmJpdHMpOylpZighUFVMTEJZVEUocykpYnJlYWsgdDtEUk9QQklUUyhzLGwuYml0cyksYS5iYWNrKz1sLmJpdHN9aWYoRFJPUEJJVFMocyxuLmJpdHMpLGEuYmFjays9bi5iaXRzLDY0Jm4ub3Ape3QubXNnPVwiaW52YWxpZCBkaXN0YW5jZSBjb2RlXCIsYS5tb2RlPUJBRDticmVha31hLm9mZnNldD1uLnZhbCxhLmV4dHJhPTE1Jm4ub3AsYS5tb2RlPURJU1RFWFQ7Y2FzZSBESVNURVhUOmlmKGEuZXh0cmEpe2lmKCFORUVEQklUUyhzLGEuZXh0cmEpKWJyZWFrIHQ7YS5vZmZzZXQrPUJJVFMocyxhLmV4dHJhKSxEUk9QQklUUyhzLGEuZXh0cmEpLGEuYmFjays9YS5leHRyYX1hLm1vZGU9TUFUQ0g7Y2FzZSBNQVRDSDppZigwPT1zLmxlZnQpYnJlYWsgdDtpZihyPWktcy5sZWZ0LGEub2Zmc2V0PnIpe2lmKChyPWEub2Zmc2V0LXIpPmEud2hhdmUmJmEuc2FuZSl7dC5tc2c9XCJpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFja1wiLGEubW9kZT1CQUQ7YnJlYWt9cj5hLnduZXh0PyhyLT1hLnduZXh0LHA9YS53c2l6ZS1yLGQ9LTEpOihwPWEud25leHQtcixkPS0xKSxyPmEubGVuZ3RoJiYocj1hLmxlbmd0aCl9ZWxzZSBwPS0xLGQ9dC5uZXh0X291dC1hLm9mZnNldCxyPWEubGVuZ3RoO2lmKHI+cy5sZWZ0JiYocj1zLmxlZnQpLHMubGVmdC09cixhLmxlbmd0aC09cixwPj0wKXQub3V0cHV0X2RhdGErPWEud2luZG93LnN1YnN0cmluZyhwLHArciksdC5uZXh0X291dCs9cixyPTA7ZWxzZXt0Lm5leHRfb3V0Kz1yO2Rve3Qub3V0cHV0X2RhdGErPXQub3V0cHV0X2RhdGEuY2hhckF0KGQrKyl9d2hpbGUoLS1yKX0wPT1hLmxlbmd0aCYmKGEubW9kZT1MRU4pO2JyZWFrO2Nhc2UgTElUOmlmKDA9PXMubGVmdClicmVhayB0O3Qub3V0cHV0X2RhdGErPVN0cmluZy5mcm9tQ2hhckNvZGUoYS5sZW5ndGgpLHQubmV4dF9vdXQrKyxzLmxlZnQtLSxhLm1vZGU9TEVOO2JyZWFrO2Nhc2UgQ0hFQ0s6aWYoYS53cmFwKXtpZighTkVFREJJVFMocywzMikpYnJlYWsgdDtpZihpLT1zLmxlZnQsdC50b3RhbF9vdXQrPWksYS50b3RhbCs9aSxpJiYodC5hZGxlcj1hLmNoZWNrPXQuY2hlY2tzdW1fZnVuY3Rpb24oYS5jaGVjayx0Lm91dHB1dF9kYXRhLHQub3V0cHV0X2RhdGEubGVuZ3RoLWksaSkpLGk9cy5sZWZ0LChhLmZsYWdzP3MuaG9sZDpSRVZFUlNFKHMuaG9sZCkpIT1hLmNoZWNrKXt0Lm1zZz1cImluY29ycmVjdCBkYXRhIGNoZWNrXCIsYS5tb2RlPUJBRDticmVha31JTklUQklUUyhzKX1hLm1vZGU9TEVOR1RIO2Nhc2UgTEVOR1RIOmlmKGEud3JhcCYmYS5mbGFncyl7aWYoIU5FRURCSVRTKHMsMzIpKWJyZWFrIHQ7aWYocy5ob2xkIT0oNDI5NDk2NzI5NSZhLnRvdGFsKSl7dC5tc2c9XCJpbmNvcnJlY3QgbGVuZ3RoIGNoZWNrXCIsYS5tb2RlPUJBRDticmVha31JTklUQklUUyhzKX1hLm1vZGU9RE9ORTtjYXNlIERPTkU6Yz1aTElCLlpfU1RSRUFNX0VORDticmVhayB0O2Nhc2UgQkFEOmM9WkxJQi5aX0RBVEFfRVJST1I7YnJlYWsgdDtjYXNlIE1FTTpyZXR1cm4gWkxJQi5aX01FTV9FUlJPUjtjYXNlIFNZTkM6ZGVmYXVsdDpyZXR1cm4gWkxJQi5aX1NUUkVBTV9FUlJPUn1yZXR1cm4gUkVTVE9SRShzKSwoYS53c2l6ZXx8aSE9dC5hdmFpbF9vdXQmJmEubW9kZTxCQUQmJihhLm1vZGU8Q0hFQ0t8fGUhPVpMSUIuWl9GSU5JU0gpKSYmdXBkYXRld2luZG93KHQpPyhhLm1vZGU9TUVNLFpMSUIuWl9NRU1fRVJST1IpOihvLT10LmF2YWlsX2luLGktPXQuYXZhaWxfb3V0LHQudG90YWxfaW4rPW8sdC50b3RhbF9vdXQrPWksYS50b3RhbCs9aSxhLndyYXAmJmkmJih0LmFkbGVyPWEuY2hlY2s9dC5jaGVja3N1bV9mdW5jdGlvbihhLmNoZWNrLHQub3V0cHV0X2RhdGEsMCx0Lm91dHB1dF9kYXRhLmxlbmd0aCkpLHQuZGF0YV90eXBlPWEuYml0cysoYS5sYXN0PzY0OjApKyhhLm1vZGU9PVRZUEU/MTI4OjApKyhhLm1vZGU9PUxFTl98fGEubW9kZT09Q09QWV8/MjU2OjApLCgwPT1vJiYwPT1pfHxlPT1aTElCLlpfRklOSVNIKSYmYz09WkxJQi5aX09LJiYoYz1aTElCLlpfQlVGX0VSUk9SKSxjKX0sWkxJQi5pbmZsYXRlRW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0LnN0YXRlPyh0LnN0YXRlLndpbmRvdz1udWxsLHQuc3RhdGU9bnVsbCxaTElCLlpfT0spOlpMSUIuWl9TVFJFQU1fRVJST1J9LFpMSUIuel9zdHJlYW0ucHJvdG90eXBlLmluZmxhdGU9ZnVuY3Rpb24odCxlKXt2YXIgYSxzO3RoaXMuaW5wdXRfZGF0YT10LHRoaXMubmV4dF9pbj1nZXRhcmcoZSxcIm5leHRfaW5cIiwwKSx0aGlzLmF2YWlsX2luPWdldGFyZyhlLFwiYXZhaWxfaW5cIix0Lmxlbmd0aC10aGlzLm5leHRfaW4pLGE9Z2V0YXJnKGUsXCJmbHVzaFwiLFpMSUIuWl9TWU5DX0ZMVVNIKSxzPWdldGFyZyhlLFwiYXZhaWxfb3V0XCIsLTEpO3ZhciBvPVwiXCI7ZG97aWYodGhpcy5hdmFpbF9vdXQ9cz49MD9zOjE2Mzg0LHRoaXMub3V0cHV0X2RhdGE9XCJcIix0aGlzLm5leHRfb3V0PTAsdGhpcy5lcnJvcj1aTElCLmluZmxhdGUodGhpcyxhKSwwIT10aGlzLmVycm9yJiZjb25zb2xlLmxvZyhcInpsaWIgZXJyb3JcIix0aGlzLmVycm9yKSxzPj0wKXJldHVybiB0aGlzLm91dHB1dF9kYXRhO2lmKG8rPXRoaXMub3V0cHV0X2RhdGEsdGhpcy5hdmFpbF9vdXQ+MClicmVha313aGlsZSh0aGlzLmVycm9yPT1aTElCLlpfT0spO3JldHVybiBvfSxaTElCLnpfc3RyZWFtLnByb3RvdHlwZS5pbmZsYXRlUmVzZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIFpMSUIuaW5mbGF0ZVJlc2V0KHRoaXMsdCl9fSgpLHZvaWQgMD09PVpMSUImJmFsZXJ0KFwiWkxJQiBpcyBub3QgZGVmaW5lZC4gIFNSQyB6bGliLmpzIGJlZm9yZSB6bGliLWFkbGVyMzIuanNcIiksQkFTRT02NTUyMSxOTUFYPTU1NTIsWkxJQi5hZGxlcjMyPWZ1bmN0aW9uKHQsZSxhLHMpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiBlP2Z1bmN0aW9uKHQsZSxhLHMpe3ZhciBvLGk7aWYobz10Pj4+MTYmNjU1MzUsdCY9NjU1MzUsMT09cylyZXR1cm4odCs9MjU1JmUuY2hhckNvZGVBdChhKSk+PUJBU0UmJih0LT1CQVNFKSwobys9dCk+PUJBU0UmJihvLT1CQVNFKSx0fG88PDE2O2lmKG51bGw9PT1lKXJldHVybiAxO2lmKHM8MTYpe2Zvcig7cy0tOylvKz10Kz0yNTUmZS5jaGFyQ29kZUF0KGErKyk7cmV0dXJuIHQ+PUJBU0UmJih0LT1CQVNFKSx0fChvJT1CQVNFKTw8MTZ9Zm9yKDtzPj1OTUFYOyl7cy09Tk1BWCxpPTM0Nztkb3tvKz10Kz0yNTUmZS5jaGFyQ29kZUF0KGErKyksbys9dCs9MjU1JmUuY2hhckNvZGVBdChhKyspLG8rPXQrPTI1NSZlLmNoYXJDb2RlQXQoYSsrKSxvKz10Kz0yNTUmZS5jaGFyQ29kZUF0KGErKyksbys9dCs9MjU1JmUuY2hhckNvZGVBdChhKyspLG8rPXQrPTI1NSZlLmNoYXJDb2RlQXQoYSsrKSxvKz10Kz0yNTUmZS5jaGFyQ29kZUF0KGErKyksbys9dCs9MjU1JmUuY2hhckNvZGVBdChhKyspLG8rPXQrPTI1NSZlLmNoYXJDb2RlQXQoYSsrKSxvKz10Kz0yNTUmZS5jaGFyQ29kZUF0KGErKyksbys9dCs9MjU1JmUuY2hhckNvZGVBdChhKyspLG8rPXQrPTI1NSZlLmNoYXJDb2RlQXQoYSsrKSxvKz10Kz0yNTUmZS5jaGFyQ29kZUF0KGErKyksbys9dCs9MjU1JmUuY2hhckNvZGVBdChhKyspLG8rPXQrPTI1NSZlLmNoYXJDb2RlQXQoYSsrKSxvKz10Kz0yNTUmZS5jaGFyQ29kZUF0KGErKyl9d2hpbGUoLS1pKTt0JT1CQVNFLG8lPUJBU0V9aWYocyl7Zm9yKDtzPj0xNjspcy09MTYsbys9dCs9MjU1JmUuY2hhckNvZGVBdChhKyspLG8rPXQrPTI1NSZlLmNoYXJDb2RlQXQoYSsrKSxvKz10Kz0yNTUmZS5jaGFyQ29kZUF0KGErKyksbys9dCs9MjU1JmUuY2hhckNvZGVBdChhKyspLG8rPXQrPTI1NSZlLmNoYXJDb2RlQXQoYSsrKSxvKz10Kz0yNTUmZS5jaGFyQ29kZUF0KGErKyksbys9dCs9MjU1JmUuY2hhckNvZGVBdChhKyspLG8rPXQrPTI1NSZlLmNoYXJDb2RlQXQoYSsrKSxvKz10Kz0yNTUmZS5jaGFyQ29kZUF0KGErKyksbys9dCs9MjU1JmUuY2hhckNvZGVBdChhKyspLG8rPXQrPTI1NSZlLmNoYXJDb2RlQXQoYSsrKSxvKz10Kz0yNTUmZS5jaGFyQ29kZUF0KGErKyksbys9dCs9MjU1JmUuY2hhckNvZGVBdChhKyspLG8rPXQrPTI1NSZlLmNoYXJDb2RlQXQoYSsrKSxvKz10Kz0yNTUmZS5jaGFyQ29kZUF0KGErKyksbys9dCs9MjU1JmUuY2hhckNvZGVBdChhKyspO2Zvcig7cy0tOylvKz10Kz0yNTUmZS5jaGFyQ29kZUF0KGErKyk7dCU9QkFTRSxvJT1CQVNFfXJldHVybiB0fG88PDE2fSh0LGUsYSxzKTpmdW5jdGlvbih0LGUsYSxzKXt2YXIgbyxpO2lmKG89dD4+PjE2JjY1NTM1LHQmPTY1NTM1LDE9PXMpcmV0dXJuKHQrPWVbYV0pPj1CQVNFJiYodC09QkFTRSksKG8rPXQpPj1CQVNFJiYoby09QkFTRSksdHxvPDwxNjtpZihudWxsPT09ZSlyZXR1cm4gMTtpZihzPDE2KXtmb3IoO3MtLTspbys9dCs9ZVthKytdO3JldHVybiB0Pj1CQVNFJiYodC09QkFTRSksdHwobyU9QkFTRSk8PDE2fWZvcig7cz49Tk1BWDspe3MtPU5NQVgsaT0zNDc7ZG97bys9dCs9ZVthKytdLG8rPXQrPWVbYSsrXSxvKz10Kz1lW2ErK10sbys9dCs9ZVthKytdLG8rPXQrPWVbYSsrXSxvKz10Kz1lW2ErK10sbys9dCs9ZVthKytdLG8rPXQrPWVbYSsrXSxvKz10Kz1lW2ErK10sbys9dCs9ZVthKytdLG8rPXQrPWVbYSsrXSxvKz10Kz1lW2ErK10sbys9dCs9ZVthKytdLG8rPXQrPWVbYSsrXSxvKz10Kz1lW2ErK10sbys9dCs9ZVthKytdfXdoaWxlKC0taSk7dCU9QkFTRSxvJT1CQVNFfWlmKHMpe2Zvcig7cz49MTY7KXMtPTE2LG8rPXQrPWVbYSsrXSxvKz10Kz1lW2ErK10sbys9dCs9ZVthKytdLG8rPXQrPWVbYSsrXSxvKz10Kz1lW2ErK10sbys9dCs9ZVthKytdLG8rPXQrPWVbYSsrXSxvKz10Kz1lW2ErK10sbys9dCs9ZVthKytdLG8rPXQrPWVbYSsrXSxvKz10Kz1lW2ErK10sbys9dCs9ZVthKytdLG8rPXQrPWVbYSsrXSxvKz10Kz1lW2ErK10sbys9dCs9ZVthKytdLG8rPXQrPWVbYSsrXTtmb3IoO3MtLTspbys9dCs9ZVthKytdO3QlPUJBU0UsbyU9QkFTRX1yZXR1cm4gdHxvPDwxNn0odCxlLGEscyl9LFpMSUIuYWRsZXIzMl9jb21iaW5lPWZ1bmN0aW9uKHQsZSxhKXt2YXIgcyxvLGk7cmV0dXJuIGE8MD80Mjk0OTY3Mjk1OihvPShpPWElPUJBU0UpKihzPTY1NTM1JnQpLG8lPUJBU0UsKHMrPSg2NTUzNSZlKStCQVNFLTEpPj1CQVNFJiYocy09QkFTRSkscz49QkFTRSYmKHMtPUJBU0UpLChvKz0odD4+MTYmNjU1MzUpKyhlPj4xNiY2NTUzNSkrQkFTRS1pKT49MTMxMDQyJiYoby09MTMxMDQyKSxvPj1CQVNFJiYoby09QkFTRSksc3xvPDwxNil9LHZvaWQgMD09PVpMSUImJmFsZXJ0KFwiWkxJQiBpcyBub3QgZGVmaW5lZC4gIFNSQyB6bGliLmpzIGJlZm9yZSB6bGliLWNyYzMyLmpzXCIpLGZ1bmN0aW9uKCl7dmFyIHQ9WzAsMTk5Njk1OTg5NCwzOTkzOTE5Nzg4LDI1Njc1MjQ3OTQsMTI0NjM0MTM3LDE4ODYwNTc2MTUsMzkxNTYyMTY4NSwyNjU3MzkyMDM1LDI0OTI2ODI3NCwyMDQ0NTA4MzI0LDM3NzIxMTUyMzAsMjU0NzE3Nzg2NCwxNjI5NDE5OTUsMjEyNTU2MTAyMSwzODg3NjA3MDQ3LDI0Mjg0NDQwNDksNDk4NTM2NTQ4LDE3ODk5Mjc2NjYsNDA4OTAxNjY0OCwyMjI3MDYxMjE0LDQ1MDU0ODg2MSwxODQzMjU4NjAzLDQxMDc1ODA3NTMsMjIxMTY3NzYzOSwzMjU4ODM5OTAsMTY4NDc3NzE1Miw0MjUxMTIyMDQyLDIzMjE5MjY2MzYsMzM1NjMzNDg3LDE2NjEzNjU0NjUsNDE5NTMwMjc1NSwyMzY2MTE1MzE3LDk5NzA3MzA5NiwxMjgxOTUzODg2LDM1Nzk4NTUzMzIsMjcyNDY4ODI0MiwxMDA2ODg4MTQ1LDEyNTg2MDc2ODcsMzUyNDEwMTYyOSwyNzY4OTQyNDQzLDkwMTA5NzcyMiwxMTE5MDAwNjg0LDM2ODY1MTcyMDYsMjg5ODA2NTcyOCw4NTMwNDQ0NTEsMTE3MjI2NjEwMSwzNzA1MDE1NzU5LDI4ODI2MTY2NjUsNjUxNzY3OTgwLDEzNzM1MDM1NDYsMzM2OTU1NDMwNCwzMjE4MTA0NTk4LDU2NTUwNzI1MywxNDU0NjIxNzMxLDM0ODUxMTE3MDUsMzA5OTQzNjMwMyw2NzEyNjY5NzQsMTU5NDE5ODAyNCwzMzIyNzMwOTMwLDI5NzAzNDc4MTIsNzk1ODM1NTI3LDE0ODMyMzAyMjUsMzI0NDM2NzI3NSwzMDYwMTQ5NTY1LDE5OTQxNDYxOTIsMzExNTg1MzQsMjU2MzkwNzc3Miw0MDIzNzE3OTMwLDE5MDc0NTk0NjUsMTEyNjM3MjE1LDI2ODAxNTMyNTMsMzkwNDQyNzA1OSwyMDEzNzc2MjkwLDI1MTcyMjAzNiwyNTE3MjE1Mzc0LDM3NzU4MzAwNDAsMjEzNzY1Njc2MywxNDEzNzY4MTMsMjQzOTI3NzcxOSwzODY1MjcxMjk3LDE4MDIxOTU0NDQsNDc2ODY0ODY2LDIyMzgwMDEzNjgsNDA2NjUwODg3OCwxODEyMzcwOTI1LDQ1MzA5MjczMSwyMTgxNjI1MDI1LDQxMTE0NTEyMjMsMTcwNjA4ODkwMiwzMTQwNDI3MDQsMjM0NDUzMjIwMiw0MjQwMDE3NTMyLDE2NTg2NTgyNzEsMzY2NjE5OTc3LDIzNjI2NzAzMjMsNDIyNDk5NDQwNSwxMzAzNTM1OTYwLDk4NDk2MTQ4NiwyNzQ3MDA3MDkyLDM1NjkwMzc1MzgsMTI1NjE3MDgxNywxMDM3NjA0MzExLDI3NjUyMTA3MzMsMzU1NDA3OTk5NSwxMTMxMDE0NTA2LDg3OTY3OTk5NiwyOTA5MjQzNDYyLDM2NjM3NzE4NTYsMTE0MTEyNDQ2Nyw4NTU4NDIyNzcsMjg1MjgwMTYzMSwzNzA4NjQ4NjQ5LDEzNDI1MzM5NDgsNjU0NDU5MzA2LDMxODgzOTYwNDgsMzM3MzAxNTE3NCwxNDY2NDc5OTA5LDU0NDE3OTYzNSwzMTEwNTIzOTEzLDM0NjI1MjIwMTUsMTU5MTY3MTA1NCw3MDIxMzg3NzYsMjk2NjQ2MDQ1MCwzMzUyNzk5NDEyLDE1MDQ5MTg4MDcsNzgzNTUxODczLDMwODI2NDA0NDMsMzIzMzQ0Mjk4OSwzOTg4MjkyMzg0LDI1OTYyNTQ2NDYsNjIzMTcwNjgsMTk1NzgxMDg0MiwzOTM5ODQ1OTQ1LDI2NDc4MTYxMTEsODE0NzA5OTcsMTk0MzgwMzUyMywzODE0OTE4OTMwLDI0ODk1OTY4MDQsMjI1Mjc0NDMwLDIwNTM3OTAzNzYsMzgyNjE3NTc1NSwyNDY2OTA2MDEzLDE2NzgxNjc0MywyMDk3NjUxMzc3LDQwMjc1NTI1ODAsMjI2NTQ5MDM4Niw1MDM0NDQwNzIsMTc2MjA1MDgxNCw0MTUwNDE3MjQ1LDIxNTQxMjkzNTUsNDI2NTIyMjI1LDE4NTI1MDc4NzksNDI3NTMxMzUyNiwyMzEyMzE3OTIwLDI4Mjc1MzYyNiwxNzQyNTU1ODUyLDQxODk3MDgxNDMsMjM5NDg3Nzk0NSwzOTc5MTc3NjMsMTYyMjE4MzYzNywzNjA0MzkwODg4LDI3MTQ4NjY1NTgsOTUzNzI5NzMyLDEzNDAwNzY2MjYsMzUxODcxOTk4NSwyNzk3MzYwOTk5LDEwNjg4MjgzODEsMTIxOTYzODg1OSwzNjI0NzQxODUwLDI5MzY2NzUxNDgsOTA2MTg1NDYyLDEwOTA4MTI1MTIsMzc0NzY3MjAwMywyODI1Mzc5NjY5LDgyOTMyOTEzNSwxMTgxMzM1MTYxLDM0MTIxNzc4MDQsMzE2MDgzNDg0Miw2MjgwODU0MDgsMTM4MjYwNTM2NiwzNDIzMzY5MTA5LDMxMzgwNzg0NjcsNTcwNTYyMjMzLDE0MjY0MDA4MTUsMzMxNzMxNjU0MiwyOTk4NzMzNjA4LDczMzIzOTk1NCwxNTU1MjYxOTU2LDMyNjg5MzU1OTEsMzA1MDM2MDYyNSw3NTI0NTk0MDMsMTU0MTMyMDIyMSwyNjA3MDcxOTIwLDM5NjU5NzMwMzAsMTk2OTkyMjk3Miw0MDczNTQ5OCwyNjE3ODM3MjI1LDM5NDM1NzcxNTEsMTkxMzA4Nzg3Nyw4MzkwODM3MSwyNTEyMzQxNjM0LDM4MDM3NDA2OTIsMjA3NTIwODYyMiwyMTMyNjExMTIsMjQ2MzI3MjYwMywzODU1OTkwMjg1LDIwOTQ4NTQwNzEsMTk4OTU4ODgxLDIyNjIwMjkwMTIsNDA1NzI2MDYxMCwxNzU5MzU5OTkyLDUzNDQxNDE5MCwyMTc2NzE4NTQxLDQxMzkzMjkxMTUsMTg3MzgzNjAwMSw0MTQ2NjQ1NjcsMjI4MjI0ODkzNCw0Mjc5MjAwMzY4LDE3MTE2ODQ1NTQsMjg1MjgxMTE2LDI0MDU4MDE3MjcsNDE2NzIxNjc0NSwxNjM0NDY3Nzk1LDM3NjIyOTcwMSwyNjg1MDY3ODk2LDM2MDgwMDc0MDYsMTMwODkxODYxMiw5NTY1NDM5MzgsMjgwODU1NTEwNSwzNDk1OTU4MjYzLDEyMzE2MzYzMDEsMTA0NzQyNzAzNSwyOTMyOTU5ODE4LDM2NTQ3MDM4MzYsMTA4ODM1OTI3MCw5MzY5MThlMywyODQ3NzE0ODk5LDM3MzY4Mzc4MjksMTIwMjkwMDg2Myw4MTcyMzM4OTcsMzE4MzM0MjEwOCwzNDAxMjM3MTMwLDE0MDQyNzc1NTIsNjE1ODE4MTUwLDMxMzQyMDc0OTMsMzQ1MzQyMTIwMywxNDIzODU3NDQ5LDYwMTQ1MDQzMSwzMDA5ODM3NjE0LDMyOTQ3MTA0NTYsMTU2NzEwMzc0Niw3MTE5Mjg3MjQsMzAyMDY2ODQ3MSwzMjcyMzgwMDY1LDE1MTAzMzQyMzUsNzU1MTY3MTE3XTtmdW5jdGlvbiBlKHQsZSl7dmFyIGEscz0wO2ZvcihhPTA7ZTspMSZlJiYoYV49dFtzXSksZT4+PTEscysrO3JldHVybiBhfWZ1bmN0aW9uIGEodCxhKXt2YXIgcztmb3Iocz0wO3M8MzI7cysrKXRbc109ZShhLGFbc10pfVpMSUIuY3JjMzI9ZnVuY3Rpb24oZSxhLHMsbyl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIGE/ZnVuY3Rpb24oZSxhLHMsbyl7aWYobnVsbD09YSlyZXR1cm4gMDtmb3IoZV49NDI5NDk2NzI5NTtvPj04OyllPXRbMjU1JihlXmEuY2hhckNvZGVBdChzKyspKV1eZT4+PjgsZT10WzI1NSYoZV5hLmNoYXJDb2RlQXQocysrKSldXmU+Pj44LGU9dFsyNTUmKGVeYS5jaGFyQ29kZUF0KHMrKykpXV5lPj4+OCxlPXRbMjU1JihlXmEuY2hhckNvZGVBdChzKyspKV1eZT4+PjgsZT10WzI1NSYoZV5hLmNoYXJDb2RlQXQocysrKSldXmU+Pj44LGU9dFsyNTUmKGVeYS5jaGFyQ29kZUF0KHMrKykpXV5lPj4+OCxlPXRbMjU1JihlXmEuY2hhckNvZGVBdChzKyspKV1eZT4+PjgsZT10WzI1NSYoZV5hLmNoYXJDb2RlQXQocysrKSldXmU+Pj44LG8tPTg7aWYobylkb3tlPXRbMjU1JihlXmEuY2hhckNvZGVBdChzKyspKV1eZT4+Pjh9d2hpbGUoLS1vKTtyZXR1cm4gNDI5NDk2NzI5NV5lfShlLGEscyxvKTpmdW5jdGlvbihlLGEscyxvKXtpZihudWxsPT1hKXJldHVybiAwO2ZvcihlXj00Mjk0OTY3Mjk1O28+PTg7KWU9dFsyNTUmKGVeYVtzKytdKV1eZT4+PjgsZT10WzI1NSYoZV5hW3MrK10pXV5lPj4+OCxlPXRbMjU1JihlXmFbcysrXSldXmU+Pj44LGU9dFsyNTUmKGVeYVtzKytdKV1eZT4+PjgsZT10WzI1NSYoZV5hW3MrK10pXV5lPj4+OCxlPXRbMjU1JihlXmFbcysrXSldXmU+Pj44LGU9dFsyNTUmKGVeYVtzKytdKV1eZT4+PjgsZT10WzI1NSYoZV5hW3MrK10pXV5lPj4+OCxvLT04O2lmKG8pZG97ZT10WzI1NSYoZV5hW3MrK10pXV5lPj4+OH13aGlsZSgtLW8pO3JldHVybiA0Mjk0OTY3Mjk1XmV9KGUsYSxzLG8pfSxaTElCLmNyYzMyX2NvbWJpbmU9ZnVuY3Rpb24odCxzLG8pe3ZhciBpLHIsbixsO2lmKG88PTApcmV0dXJuIHQ7Zm9yKG49bmV3IEFycmF5KDMyKSwobD1uZXcgQXJyYXkoMzIpKVswXT0zOTg4MjkyMzg0LHI9MSxpPTE7aTwzMjtpKyspbFtpXT1yLHI8PD0xO2EobixsKSxhKGwsbik7ZG97aWYoYShuLGwpLDEmbyYmKHQ9ZShuLHQpKSwwPT0obz4+PTEpKWJyZWFrO2EobCxuKSwxJm8mJih0PWUobCx0KSksbz4+PTF9d2hpbGUoMCE9byk7cmV0dXJuIHRec319KCksbW9kdWxlLmV4cG9ydHM9WkxJQn19LF9fd2VicGFja19tb2R1bGVfY2FjaGVfXz17fTtmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKHQpe3ZhciBlPV9fd2VicGFja19tb2R1bGVfY2FjaGVfX1t0XTtpZih2b2lkIDAhPT1lKXJldHVybiBlLmV4cG9ydHM7dmFyIGE9X193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW3RdPXtleHBvcnRzOnt9fTtyZXR1cm4gX193ZWJwYWNrX21vZHVsZXNfX1t0XShhLGEuZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKSxhLmV4cG9ydHN9X193ZWJwYWNrX3JlcXVpcmVfXy5uPXQ9Pnt2YXIgZT10JiZ0Ll9fZXNNb2R1bGU/KCk9PnQuZGVmYXVsdDooKT0+dDtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5kKGUse2E6ZX0pLGV9LF9fd2VicGFja19yZXF1aXJlX18uZD0odCxlKT0+e2Zvcih2YXIgYSBpbiBlKV9fd2VicGFja19yZXF1aXJlX18ubyhlLGEpJiYhX193ZWJwYWNrX3JlcXVpcmVfXy5vKHQsYSkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGEse2VudW1lcmFibGU6ITAsZ2V0OmVbYV19KX0sX193ZWJwYWNrX3JlcXVpcmVfXy5vPSh0LGUpPT5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxlKSxfX3dlYnBhY2tfcmVxdWlyZV9fLnI9dD0+e1widW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC50b1N0cmluZ1RhZyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZTpcIk1vZHVsZVwifSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSl9O3ZhciBfX3dlYnBhY2tfZXhwb3J0c19fPXt9O3JldHVybigoKT0+e1widXNlIHN0cmljdFwiO19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7QU1URGVza3RvcDooKT0+dC5yLEFNVEt2bURhdGFSZWRpcmVjdG9yOigpPT5lLk4sQU1UUmVkaXJlY3RvcjooKT0+YS5LLFByb3RvY29sOigpPT5hLmIsQW10VGVybWluYWw6KCk9PnMucixDb25zb2xlTG9nZ2VyOigpPT5vLmssVHlwZUNvbnZlcnRlcjooKT0+aS5yLERlc2t0b3A6KCk9PnIuSCxTdGF0ZVByb2Nlc3NvckZhY3Rvcnk6KCk9Pm4udixUZXJtaW5hbERhdGFQcm9jZXNzb3I6KCk9PmwuUSxMb2dMZXZlbDooKT0+aC5pLERhdGFQcm9jZXNzb3I6KCk9PmMuJCxSTEVEZWNvZGVyOigpPT5jLlgsRW5jb2Rpbmc6KCk9PnAuZXosRnJhbWVCdWZmZXJCZWxsU2VydmVyQ3V0VGV4dDooKT0+cC5VdCxIYW5kc2hha2VTdGF0ZTooKT0+cC53VyxTZWN1cml0eU9wdGlvbnM6KCk9PnAubGwsU2VjdXJpdHlSZXNwb25zZTooKT0+cC5tQyxTZXJ2ZXJJbml0OigpPT5wLkN1LEFNVEtleUNvZGVDb252ZXJ0ZXI6KCk9PmQucUQsQ29tbXNIZWxwZXI6KCk9PmQuWG4sSW1hZ2VIZWxwZXI6KCk9PmQuancsS2V5Qm9hcmRIZWxwZXI6KCk9PmQuRUIsTW91c2VIZWxwZXI6KCk9PmQueHgsaXNUcnV0aHk6KCk9PmQuZlF9KTt2YXIgdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDE2NiksZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDU5KSxhPV9fd2VicGFja19yZXF1aXJlX18oNTAzKSxzPV9fd2VicGFja19yZXF1aXJlX18oMjc3KSxvPV9fd2VicGFja19yZXF1aXJlX18oMjM3KSxpPV9fd2VicGFja19yZXF1aXJlX18oNTY1KSxyPV9fd2VicGFja19yZXF1aXJlX18oNDYpLG49X193ZWJwYWNrX3JlcXVpcmVfXyg5ODkpLGw9X193ZWJwYWNrX3JlcXVpcmVfXygxNTUpLGg9X193ZWJwYWNrX3JlcXVpcmVfXygyMDEpLGM9X193ZWJwYWNrX3JlcXVpcmVfXyg2NDYpLHA9X193ZWJwYWNrX3JlcXVpcmVfXygzODkpLGQ9X193ZWJwYWNrX3JlcXVpcmVfXyg4KX0pKCksX193ZWJwYWNrX2V4cG9ydHNfX30pKCl9KSk7IiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9jc3NXaXRoTWFwcGluZ1RvU3RyaW5nLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIuYnV0dG9ue21hcmdpbi1yaWdodDozcHg7cGFkZGluZzoycHg7bWluLXdpZHRoOjkwcHh9XCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vc3JjL3JlYWN0anMvS1ZNL0Nvbm5lY3RCdXR0b24uc2Nzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFLQSxRQUNJLGdCQUFBLENBQ0EsV0FBQSxDQUNBLGNBQUFcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiAqIENvcHlyaWdodCAoYykgSW50ZWwgQ29ycG9yYXRpb24gMjAxOVxcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXFxuXFxuLmJ1dHRvbntcXG4gICAgbWFyZ2luLXJpZ2h0OiAzcHg7XFxuICAgIHBhZGRpbmc6IDJweDtcXG4gICAgbWluLXdpZHRoOiA5MHB4XFxufVwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2Nzc1dpdGhNYXBwaW5nVG9TdHJpbmcuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi5lbmNvZGluZ3ttYXJnaW4tbGVmdDoxMHB4fS5lbmNvZGluZyBsYWJlbHtwYWRkaW5nOjJweDtmb250LXNpemU6MTVweH0uZW5jb2Rpbmcgc2VsZWN0e3BhZGRpbmc6MnB4IDB9LnJlbGRpc2FibGVke29wYWNpdHk6LjV9XCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vc3JjL3JlYWN0anMvS1ZNL0VuY29kaW5nT3B0aW9ucy5zY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUtBLFVBQ0ksZ0JBQUEsQ0FFRixnQkFDRSxXQUFBLENBQ0EsY0FBQSxDQUVGLGlCQUNFLGFBQUEsQ0FHRixhQUNFLFVBQUFcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiAqIENvcHlyaWdodCAoYykgSW50ZWwgQ29ycG9yYXRpb24gMjAxOVxcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXFxuIFxcbi5lbmNvZGluZyB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xcbiAgfVxcbiAgLmVuY29kaW5nIGxhYmVsIHsgICAgICBcXG4gICAgcGFkZGluZzogMnB4O1xcbiAgICBmb250LXNpemU6IDE1cHg7XFxuICB9XFxuICAuZW5jb2Rpbmcgc2VsZWN0IHtcXG4gICAgcGFkZGluZzogMnB4IDA7XFxuICB9XFxuICBcXG4gIC5yZWxkaXNhYmxlZHtcXG4gICAgb3BhY2l0eTogMC41O1xcbiAgfVwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2Nzc1dpdGhNYXBwaW5nVG9TdHJpbmcuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi5oZWFkZXJ7YmFja2dyb3VuZC1jb2xvcjojYTlhOWE5O3BhZGRpbmc6NXB4O2ZvbnQtc2l6ZToxM3B4fVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL3NyYy9yZWFjdGpzL0tWTS9IZWFkZXIuc2Nzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFLQSxRQUNFLHdCQUFBLENBQ0EsV0FBQSxDQUNBLGNBQUFcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiAqIENvcHlyaWdodCAoYykgSW50ZWwgQ29ycG9yYXRpb24gMjAxOVxcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXFxuIFxcbi5oZWFkZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogZGFya2dyYXk7XFxuICBwYWRkaW5nOiA1cHg7XFxuICBmb250LXNpemU6IDEzcHg7XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2Nzc1dpdGhNYXBwaW5nVG9TdHJpbmcuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi5jYW52YXN7bWF4LWhlaWdodDo5MCU7bWF4LXdpZHRoOjEwMCV9XCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vc3JjL3JlYWN0anMvS1ZNL1B1cmVDYW52YXMuc2Nzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFLQSxRQUNJLGNBQUEsQ0FDQSxjQUFBXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4gKiBDb3B5cmlnaHQgKGMpIEludGVsIENvcnBvcmF0aW9uIDIwMTlcXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xcbiBcXG4uY2FudmFze1xcbiAgICBtYXgtaGVpZ2h0OiA5MCU7XFxuICAgIG1heC13aWR0aDogMTAwJTtcXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvY3NzV2l0aE1hcHBpbmdUb1N0cmluZy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiKnttYXJnaW46MDtwYWRkaW5nOjA7Ym94LXNpemluZzpib3JkZXItYm94fS5jYW52YXMtY29udGFpbmVye2hlaWdodDoxMDB2aDt0ZXh0LWFsaWduOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9XCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vc3JjL3JlYWN0anMvS1ZNL1VJLnNjc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBS0EsRUFDSSxRQUFBLENBQ0EsU0FBQSxDQUNBLHFCQUFBLENBR0osa0JBQ0csWUFBQSxDQUNBLGlCQUFBLENBQ0EscUJBQUFcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiAqIENvcHlyaWdodCAoYykgSW50ZWwgQ29ycG9yYXRpb24gMjAxOVxcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXFxuIFxcbip7IC8vICogcmVmZXJzIGV2ZXJ5IGVsZW1lbnQgYW5kIHJlbW92ZXMgZGVmYXVsdCBtYXJnaW4gIHBhZGRpbmcgdGhhdCBjb21lcyB3aXRoIGh0bWwgZWxlbWVudHMgYm9keSwgaDEgZXRjXFxuICAgIG1hcmdpbjowO1xcbiAgICBwYWRkaW5nOjA7XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8vZWxlbWVudCBwYWRkaW5nIGFuZCBib3JkZXIgYXJlIGluY2x1ZGVkIGluIHRoZSB3aWR0aCBhbmQgaGVpZ2h0XFxufVxcblxcbi5jYW52YXMtY29udGFpbmVye1xcbiAgIGhlaWdodDogMTAwdmg7IFxcbiAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qXG4gIE1JVCBMaWNlbnNlIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwXG4gIEF1dGhvciBUb2JpYXMgS29wcGVycyBAc29rcmFcbiovXG4vLyBjc3MgYmFzZSBjb2RlLCBpbmplY3RlZCBieSB0aGUgY3NzLWxvYWRlclxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGZ1bmMtbmFtZXNcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcpIHtcbiAgdmFyIGxpc3QgPSBbXTsgLy8gcmV0dXJuIHRoZSBsaXN0IG9mIG1vZHVsZXMgYXMgY3NzIHN0cmluZ1xuXG4gIGxpc3QudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHZhciBjb250ZW50ID0gY3NzV2l0aE1hcHBpbmdUb1N0cmluZyhpdGVtKTtcblxuICAgICAgaWYgKGl0ZW1bMl0pIHtcbiAgICAgICAgcmV0dXJuIFwiQG1lZGlhIFwiLmNvbmNhdChpdGVtWzJdLCBcIiB7XCIpLmNvbmNhdChjb250ZW50LCBcIn1cIik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb250ZW50O1xuICAgIH0pLmpvaW4oXCJcIik7XG4gIH07IC8vIGltcG9ydCBhIGxpc3Qgb2YgbW9kdWxlcyBpbnRvIHRoZSBsaXN0XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLW5hbWVzXG5cblxuICBsaXN0LmkgPSBmdW5jdGlvbiAobW9kdWxlcywgbWVkaWFRdWVyeSwgZGVkdXBlKSB7XG4gICAgaWYgKHR5cGVvZiBtb2R1bGVzID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgIG1vZHVsZXMgPSBbW251bGwsIG1vZHVsZXMsIFwiXCJdXTtcbiAgICB9XG5cbiAgICB2YXIgYWxyZWFkeUltcG9ydGVkTW9kdWxlcyA9IHt9O1xuXG4gICAgaWYgKGRlZHVwZSkge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItZGVzdHJ1Y3R1cmluZ1xuICAgICAgICB2YXIgaWQgPSB0aGlzW2ldWzBdO1xuXG4gICAgICAgIGlmIChpZCAhPSBudWxsKSB7XG4gICAgICAgICAgYWxyZWFkeUltcG9ydGVkTW9kdWxlc1tpZF0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IG1vZHVsZXMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICB2YXIgaXRlbSA9IFtdLmNvbmNhdChtb2R1bGVzW19pXSk7XG5cbiAgICAgIGlmIChkZWR1cGUgJiYgYWxyZWFkeUltcG9ydGVkTW9kdWxlc1tpdGVtWzBdXSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29udGludWVcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChtZWRpYVF1ZXJ5KSB7XG4gICAgICAgIGlmICghaXRlbVsyXSkge1xuICAgICAgICAgIGl0ZW1bMl0gPSBtZWRpYVF1ZXJ5O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW1bMl0gPSBcIlwiLmNvbmNhdChtZWRpYVF1ZXJ5LCBcIiBhbmQgXCIpLmNvbmNhdChpdGVtWzJdKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBsaXN0LnB1c2goaXRlbSk7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiBsaXN0O1xufTsiLCJcInVzZSBzdHJpY3RcIjtcblxuZnVuY3Rpb24gX3NsaWNlZFRvQXJyYXkoYXJyLCBpKSB7IHJldHVybiBfYXJyYXlXaXRoSG9sZXMoYXJyKSB8fCBfaXRlcmFibGVUb0FycmF5TGltaXQoYXJyLCBpKSB8fCBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkoYXJyLCBpKSB8fCBfbm9uSXRlcmFibGVSZXN0KCk7IH1cblxuZnVuY3Rpb24gX25vbkl0ZXJhYmxlUmVzdCgpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKTsgfVxuXG5mdW5jdGlvbiBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkobywgbWluTGVuKSB7IGlmICghbykgcmV0dXJuOyBpZiAodHlwZW9mIG8gPT09IFwic3RyaW5nXCIpIHJldHVybiBfYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pOyB2YXIgbiA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKS5zbGljZSg4LCAtMSk7IGlmIChuID09PSBcIk9iamVjdFwiICYmIG8uY29uc3RydWN0b3IpIG4gPSBvLmNvbnN0cnVjdG9yLm5hbWU7IGlmIChuID09PSBcIk1hcFwiIHx8IG4gPT09IFwiU2V0XCIpIHJldHVybiBBcnJheS5mcm9tKG8pOyBpZiAobiA9PT0gXCJBcmd1bWVudHNcIiB8fCAvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSkgcmV0dXJuIF9hcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7IH1cblxuZnVuY3Rpb24gX2FycmF5TGlrZVRvQXJyYXkoYXJyLCBsZW4pIHsgaWYgKGxlbiA9PSBudWxsIHx8IGxlbiA+IGFyci5sZW5ndGgpIGxlbiA9IGFyci5sZW5ndGg7IGZvciAodmFyIGkgPSAwLCBhcnIyID0gbmV3IEFycmF5KGxlbik7IGkgPCBsZW47IGkrKykgeyBhcnIyW2ldID0gYXJyW2ldOyB9IHJldHVybiBhcnIyOyB9XG5cbmZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXlMaW1pdChhcnIsIGkpIHsgdmFyIF9pID0gYXJyID09IG51bGwgPyBudWxsIDogdHlwZW9mIFN5bWJvbCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBhcnJbU3ltYm9sLml0ZXJhdG9yXSB8fCBhcnJbXCJAQGl0ZXJhdG9yXCJdOyBpZiAoX2kgPT0gbnVsbCkgcmV0dXJuOyB2YXIgX2FyciA9IFtdOyB2YXIgX24gPSB0cnVlOyB2YXIgX2QgPSBmYWxzZTsgdmFyIF9zLCBfZTsgdHJ5IHsgZm9yIChfaSA9IF9pLmNhbGwoYXJyKTsgIShfbiA9IChfcyA9IF9pLm5leHQoKSkuZG9uZSk7IF9uID0gdHJ1ZSkgeyBfYXJyLnB1c2goX3MudmFsdWUpOyBpZiAoaSAmJiBfYXJyLmxlbmd0aCA9PT0gaSkgYnJlYWs7IH0gfSBjYXRjaCAoZXJyKSB7IF9kID0gdHJ1ZTsgX2UgPSBlcnI7IH0gZmluYWxseSB7IHRyeSB7IGlmICghX24gJiYgX2lbXCJyZXR1cm5cIl0gIT0gbnVsbCkgX2lbXCJyZXR1cm5cIl0oKTsgfSBmaW5hbGx5IHsgaWYgKF9kKSB0aHJvdyBfZTsgfSB9IHJldHVybiBfYXJyOyB9XG5cbmZ1bmN0aW9uIF9hcnJheVdpdGhIb2xlcyhhcnIpIHsgaWYgKEFycmF5LmlzQXJyYXkoYXJyKSkgcmV0dXJuIGFycjsgfVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcoaXRlbSkge1xuICB2YXIgX2l0ZW0gPSBfc2xpY2VkVG9BcnJheShpdGVtLCA0KSxcbiAgICAgIGNvbnRlbnQgPSBfaXRlbVsxXSxcbiAgICAgIGNzc01hcHBpbmcgPSBfaXRlbVszXTtcblxuICBpZiAoIWNzc01hcHBpbmcpIHtcbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIGlmICh0eXBlb2YgYnRvYSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmXG4gICAgdmFyIGJhc2U2NCA9IGJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KGNzc01hcHBpbmcpKSkpO1xuICAgIHZhciBkYXRhID0gXCJzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxcIi5jb25jYXQoYmFzZTY0KTtcbiAgICB2YXIgc291cmNlTWFwcGluZyA9IFwiLyojIFwiLmNvbmNhdChkYXRhLCBcIiAqL1wiKTtcbiAgICB2YXIgc291cmNlVVJMcyA9IGNzc01hcHBpbmcuc291cmNlcy5tYXAoZnVuY3Rpb24gKHNvdXJjZSkge1xuICAgICAgcmV0dXJuIFwiLyojIHNvdXJjZVVSTD1cIi5jb25jYXQoY3NzTWFwcGluZy5zb3VyY2VSb290IHx8IFwiXCIpLmNvbmNhdChzb3VyY2UsIFwiICovXCIpO1xuICAgIH0pO1xuICAgIHJldHVybiBbY29udGVudF0uY29uY2F0KHNvdXJjZVVSTHMpLmNvbmNhdChbc291cmNlTWFwcGluZ10pLmpvaW4oXCJcXG5cIik7XG4gIH1cblxuICByZXR1cm4gW2NvbnRlbnRdLmpvaW4oXCJcXG5cIik7XG59OyIsIi8qXG5vYmplY3QtYXNzaWduXG4oYykgU2luZHJlIFNvcmh1c1xuQGxpY2Vuc2UgTUlUXG4qL1xuXG4ndXNlIHN0cmljdCc7XG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xudmFyIGdldE93blByb3BlcnR5U3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIHByb3BJc0VudW1lcmFibGUgPSBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlO1xuXG5mdW5jdGlvbiB0b09iamVjdCh2YWwpIHtcblx0aWYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHVuZGVmaW5lZCkge1xuXHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ09iamVjdC5hc3NpZ24gY2Fubm90IGJlIGNhbGxlZCB3aXRoIG51bGwgb3IgdW5kZWZpbmVkJyk7XG5cdH1cblxuXHRyZXR1cm4gT2JqZWN0KHZhbCk7XG59XG5cbmZ1bmN0aW9uIHNob3VsZFVzZU5hdGl2ZSgpIHtcblx0dHJ5IHtcblx0XHRpZiAoIU9iamVjdC5hc3NpZ24pIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBEZXRlY3QgYnVnZ3kgcHJvcGVydHkgZW51bWVyYXRpb24gb3JkZXIgaW4gb2xkZXIgVjggdmVyc2lvbnMuXG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD00MTE4XG5cdFx0dmFyIHRlc3QxID0gbmV3IFN0cmluZygnYWJjJyk7ICAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLW5ldy13cmFwcGVyc1xuXHRcdHRlc3QxWzVdID0gJ2RlJztcblx0XHRpZiAoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGVzdDEpWzBdID09PSAnNScpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zMDU2XG5cdFx0dmFyIHRlc3QyID0ge307XG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7XG5cdFx0XHR0ZXN0MlsnXycgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGkpXSA9IGk7XG5cdFx0fVxuXHRcdHZhciBvcmRlcjIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0ZXN0MikubWFwKGZ1bmN0aW9uIChuKSB7XG5cdFx0XHRyZXR1cm4gdGVzdDJbbl07XG5cdFx0fSk7XG5cdFx0aWYgKG9yZGVyMi5qb2luKCcnKSAhPT0gJzAxMjM0NTY3ODknKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzA1NlxuXHRcdHZhciB0ZXN0MyA9IHt9O1xuXHRcdCdhYmNkZWZnaGlqa2xtbm9wcXJzdCcuc3BsaXQoJycpLmZvckVhY2goZnVuY3Rpb24gKGxldHRlcikge1xuXHRcdFx0dGVzdDNbbGV0dGVyXSA9IGxldHRlcjtcblx0XHR9KTtcblx0XHRpZiAoT2JqZWN0LmtleXMoT2JqZWN0LmFzc2lnbih7fSwgdGVzdDMpKS5qb2luKCcnKSAhPT1cblx0XHRcdFx0J2FiY2RlZmdoaWprbG1ub3BxcnN0Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdHJldHVybiB0cnVlO1xuXHR9IGNhdGNoIChlcnIpIHtcblx0XHQvLyBXZSBkb24ndCBleHBlY3QgYW55IG9mIHRoZSBhYm92ZSB0byB0aHJvdywgYnV0IGJldHRlciB0byBiZSBzYWZlLlxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNob3VsZFVzZU5hdGl2ZSgpID8gT2JqZWN0LmFzc2lnbiA6IGZ1bmN0aW9uICh0YXJnZXQsIHNvdXJjZSkge1xuXHR2YXIgZnJvbTtcblx0dmFyIHRvID0gdG9PYmplY3QodGFyZ2V0KTtcblx0dmFyIHN5bWJvbHM7XG5cblx0Zm9yICh2YXIgcyA9IDE7IHMgPCBhcmd1bWVudHMubGVuZ3RoOyBzKyspIHtcblx0XHRmcm9tID0gT2JqZWN0KGFyZ3VtZW50c1tzXSk7XG5cblx0XHRmb3IgKHZhciBrZXkgaW4gZnJvbSkge1xuXHRcdFx0aWYgKGhhc093blByb3BlcnR5LmNhbGwoZnJvbSwga2V5KSkge1xuXHRcdFx0XHR0b1trZXldID0gZnJvbVtrZXldO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmIChnZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcblx0XHRcdHN5bWJvbHMgPSBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZnJvbSk7XG5cdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IHN5bWJvbHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0aWYgKHByb3BJc0VudW1lcmFibGUuY2FsbChmcm9tLCBzeW1ib2xzW2ldKSkge1xuXHRcdFx0XHRcdHRvW3N5bWJvbHNbaV1dID0gZnJvbVtzeW1ib2xzW2ldXTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiB0bztcbn07XG4iLCIvKiogQGxpY2Vuc2UgUmVhY3QgdjE3LjAuMlxuICogcmVhY3QtZG9tLnByb2R1Y3Rpb24ubWluLmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cbi8qXG4gTW9kZXJuaXpyIDMuMC4wcHJlIChDdXN0b20gQnVpbGQpIHwgTUlUXG4qL1xuJ3VzZSBzdHJpY3QnO3ZhciBhYT1yZXF1aXJlKFwicmVhY3RcIiksbT1yZXF1aXJlKFwib2JqZWN0LWFzc2lnblwiKSxyPXJlcXVpcmUoXCJzY2hlZHVsZXJcIik7ZnVuY3Rpb24geShhKXtmb3IodmFyIGI9XCJodHRwczovL3JlYWN0anMub3JnL2RvY3MvZXJyb3ItZGVjb2Rlci5odG1sP2ludmFyaWFudD1cIithLGM9MTtjPGFyZ3VtZW50cy5sZW5ndGg7YysrKWIrPVwiJmFyZ3NbXT1cIitlbmNvZGVVUklDb21wb25lbnQoYXJndW1lbnRzW2NdKTtyZXR1cm5cIk1pbmlmaWVkIFJlYWN0IGVycm9yICNcIithK1wiOyB2aXNpdCBcIitiK1wiIGZvciB0aGUgZnVsbCBtZXNzYWdlIG9yIHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCBmb3IgZnVsbCBlcnJvcnMgYW5kIGFkZGl0aW9uYWwgaGVscGZ1bCB3YXJuaW5ncy5cIn1pZighYWEpdGhyb3cgRXJyb3IoeSgyMjcpKTt2YXIgYmE9bmV3IFNldCxjYT17fTtmdW5jdGlvbiBkYShhLGIpe2VhKGEsYik7ZWEoYStcIkNhcHR1cmVcIixiKX1cbmZ1bmN0aW9uIGVhKGEsYil7Y2FbYV09Yjtmb3IoYT0wO2E8Yi5sZW5ndGg7YSsrKWJhLmFkZChiW2FdKX1cbnZhciBmYT0hKFwidW5kZWZpbmVkXCI9PT10eXBlb2Ygd2luZG93fHxcInVuZGVmaW5lZFwiPT09dHlwZW9mIHdpbmRvdy5kb2N1bWVudHx8XCJ1bmRlZmluZWRcIj09PXR5cGVvZiB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCksaGE9L15bOkEtWl9hLXpcXHUwMEMwLVxcdTAwRDZcXHUwMEQ4LVxcdTAwRjZcXHUwMEY4LVxcdTAyRkZcXHUwMzcwLVxcdTAzN0RcXHUwMzdGLVxcdTFGRkZcXHUyMDBDLVxcdTIwMERcXHUyMDcwLVxcdTIxOEZcXHUyQzAwLVxcdTJGRUZcXHUzMDAxLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRkRdWzpBLVpfYS16XFx1MDBDMC1cXHUwMEQ2XFx1MDBEOC1cXHUwMEY2XFx1MDBGOC1cXHUwMkZGXFx1MDM3MC1cXHUwMzdEXFx1MDM3Ri1cXHUxRkZGXFx1MjAwQy1cXHUyMDBEXFx1MjA3MC1cXHUyMThGXFx1MkMwMC1cXHUyRkVGXFx1MzAwMS1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkZEXFwtLjAtOVxcdTAwQjdcXHUwMzAwLVxcdTAzNkZcXHUyMDNGLVxcdTIwNDBdKiQvLGlhPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksXG5qYT17fSxrYT17fTtmdW5jdGlvbiBsYShhKXtpZihpYS5jYWxsKGthLGEpKXJldHVybiEwO2lmKGlhLmNhbGwoamEsYSkpcmV0dXJuITE7aWYoaGEudGVzdChhKSlyZXR1cm4ga2FbYV09ITA7amFbYV09ITA7cmV0dXJuITF9ZnVuY3Rpb24gbWEoYSxiLGMsZCl7aWYobnVsbCE9PWMmJjA9PT1jLnR5cGUpcmV0dXJuITE7c3dpdGNoKHR5cGVvZiBiKXtjYXNlIFwiZnVuY3Rpb25cIjpjYXNlIFwic3ltYm9sXCI6cmV0dXJuITA7Y2FzZSBcImJvb2xlYW5cIjppZihkKXJldHVybiExO2lmKG51bGwhPT1jKXJldHVybiFjLmFjY2VwdHNCb29sZWFuczthPWEudG9Mb3dlckNhc2UoKS5zbGljZSgwLDUpO3JldHVyblwiZGF0YS1cIiE9PWEmJlwiYXJpYS1cIiE9PWE7ZGVmYXVsdDpyZXR1cm4hMX19XG5mdW5jdGlvbiBuYShhLGIsYyxkKXtpZihudWxsPT09Ynx8XCJ1bmRlZmluZWRcIj09PXR5cGVvZiBifHxtYShhLGIsYyxkKSlyZXR1cm4hMDtpZihkKXJldHVybiExO2lmKG51bGwhPT1jKXN3aXRjaChjLnR5cGUpe2Nhc2UgMzpyZXR1cm4hYjtjYXNlIDQ6cmV0dXJuITE9PT1iO2Nhc2UgNTpyZXR1cm4gaXNOYU4oYik7Y2FzZSA2OnJldHVybiBpc05hTihiKXx8MT5ifXJldHVybiExfWZ1bmN0aW9uIEIoYSxiLGMsZCxlLGYsZyl7dGhpcy5hY2NlcHRzQm9vbGVhbnM9Mj09PWJ8fDM9PT1ifHw0PT09Yjt0aGlzLmF0dHJpYnV0ZU5hbWU9ZDt0aGlzLmF0dHJpYnV0ZU5hbWVzcGFjZT1lO3RoaXMubXVzdFVzZVByb3BlcnR5PWM7dGhpcy5wcm9wZXJ0eU5hbWU9YTt0aGlzLnR5cGU9Yjt0aGlzLnNhbml0aXplVVJMPWY7dGhpcy5yZW1vdmVFbXB0eVN0cmluZz1nfXZhciBEPXt9O1xuXCJjaGlsZHJlbiBkYW5nZXJvdXNseVNldElubmVySFRNTCBkZWZhdWx0VmFsdWUgZGVmYXVsdENoZWNrZWQgaW5uZXJIVE1MIHN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyBzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcgc3R5bGVcIi5zcGxpdChcIiBcIikuZm9yRWFjaChmdW5jdGlvbihhKXtEW2FdPW5ldyBCKGEsMCwhMSxhLG51bGwsITEsITEpfSk7W1tcImFjY2VwdENoYXJzZXRcIixcImFjY2VwdC1jaGFyc2V0XCJdLFtcImNsYXNzTmFtZVwiLFwiY2xhc3NcIl0sW1wiaHRtbEZvclwiLFwiZm9yXCJdLFtcImh0dHBFcXVpdlwiLFwiaHR0cC1lcXVpdlwiXV0uZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYj1hWzBdO0RbYl09bmV3IEIoYiwxLCExLGFbMV0sbnVsbCwhMSwhMSl9KTtbXCJjb250ZW50RWRpdGFibGVcIixcImRyYWdnYWJsZVwiLFwic3BlbGxDaGVja1wiLFwidmFsdWVcIl0uZm9yRWFjaChmdW5jdGlvbihhKXtEW2FdPW5ldyBCKGEsMiwhMSxhLnRvTG93ZXJDYXNlKCksbnVsbCwhMSwhMSl9KTtcbltcImF1dG9SZXZlcnNlXCIsXCJleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXCIsXCJmb2N1c2FibGVcIixcInByZXNlcnZlQWxwaGFcIl0uZm9yRWFjaChmdW5jdGlvbihhKXtEW2FdPW5ldyBCKGEsMiwhMSxhLG51bGwsITEsITEpfSk7XCJhbGxvd0Z1bGxTY3JlZW4gYXN5bmMgYXV0b0ZvY3VzIGF1dG9QbGF5IGNvbnRyb2xzIGRlZmF1bHQgZGVmZXIgZGlzYWJsZWQgZGlzYWJsZVBpY3R1cmVJblBpY3R1cmUgZGlzYWJsZVJlbW90ZVBsYXliYWNrIGZvcm1Ob1ZhbGlkYXRlIGhpZGRlbiBsb29wIG5vTW9kdWxlIG5vVmFsaWRhdGUgb3BlbiBwbGF5c0lubGluZSByZWFkT25seSByZXF1aXJlZCByZXZlcnNlZCBzY29wZWQgc2VhbWxlc3MgaXRlbVNjb3BlXCIuc3BsaXQoXCIgXCIpLmZvckVhY2goZnVuY3Rpb24oYSl7RFthXT1uZXcgQihhLDMsITEsYS50b0xvd2VyQ2FzZSgpLG51bGwsITEsITEpfSk7XG5bXCJjaGVja2VkXCIsXCJtdWx0aXBsZVwiLFwibXV0ZWRcIixcInNlbGVjdGVkXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7RFthXT1uZXcgQihhLDMsITAsYSxudWxsLCExLCExKX0pO1tcImNhcHR1cmVcIixcImRvd25sb2FkXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7RFthXT1uZXcgQihhLDQsITEsYSxudWxsLCExLCExKX0pO1tcImNvbHNcIixcInJvd3NcIixcInNpemVcIixcInNwYW5cIl0uZm9yRWFjaChmdW5jdGlvbihhKXtEW2FdPW5ldyBCKGEsNiwhMSxhLG51bGwsITEsITEpfSk7W1wicm93U3BhblwiLFwic3RhcnRcIl0uZm9yRWFjaChmdW5jdGlvbihhKXtEW2FdPW5ldyBCKGEsNSwhMSxhLnRvTG93ZXJDYXNlKCksbnVsbCwhMSwhMSl9KTt2YXIgb2E9L1tcXC06XShbYS16XSkvZztmdW5jdGlvbiBwYShhKXtyZXR1cm4gYVsxXS50b1VwcGVyQ2FzZSgpfVxuXCJhY2NlbnQtaGVpZ2h0IGFsaWdubWVudC1iYXNlbGluZSBhcmFiaWMtZm9ybSBiYXNlbGluZS1zaGlmdCBjYXAtaGVpZ2h0IGNsaXAtcGF0aCBjbGlwLXJ1bGUgY29sb3ItaW50ZXJwb2xhdGlvbiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMgY29sb3ItcHJvZmlsZSBjb2xvci1yZW5kZXJpbmcgZG9taW5hbnQtYmFzZWxpbmUgZW5hYmxlLWJhY2tncm91bmQgZmlsbC1vcGFjaXR5IGZpbGwtcnVsZSBmbG9vZC1jb2xvciBmbG9vZC1vcGFjaXR5IGZvbnQtZmFtaWx5IGZvbnQtc2l6ZSBmb250LXNpemUtYWRqdXN0IGZvbnQtc3RyZXRjaCBmb250LXN0eWxlIGZvbnQtdmFyaWFudCBmb250LXdlaWdodCBnbHlwaC1uYW1lIGdseXBoLW9yaWVudGF0aW9uLWhvcml6b250YWwgZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWwgaG9yaXotYWR2LXggaG9yaXotb3JpZ2luLXggaW1hZ2UtcmVuZGVyaW5nIGxldHRlci1zcGFjaW5nIGxpZ2h0aW5nLWNvbG9yIG1hcmtlci1lbmQgbWFya2VyLW1pZCBtYXJrZXItc3RhcnQgb3ZlcmxpbmUtcG9zaXRpb24gb3ZlcmxpbmUtdGhpY2tuZXNzIHBhaW50LW9yZGVyIHBhbm9zZS0xIHBvaW50ZXItZXZlbnRzIHJlbmRlcmluZy1pbnRlbnQgc2hhcGUtcmVuZGVyaW5nIHN0b3AtY29sb3Igc3RvcC1vcGFjaXR5IHN0cmlrZXRocm91Z2gtcG9zaXRpb24gc3RyaWtldGhyb3VnaC10aGlja25lc3Mgc3Ryb2tlLWRhc2hhcnJheSBzdHJva2UtZGFzaG9mZnNldCBzdHJva2UtbGluZWNhcCBzdHJva2UtbGluZWpvaW4gc3Ryb2tlLW1pdGVybGltaXQgc3Ryb2tlLW9wYWNpdHkgc3Ryb2tlLXdpZHRoIHRleHQtYW5jaG9yIHRleHQtZGVjb3JhdGlvbiB0ZXh0LXJlbmRlcmluZyB1bmRlcmxpbmUtcG9zaXRpb24gdW5kZXJsaW5lLXRoaWNrbmVzcyB1bmljb2RlLWJpZGkgdW5pY29kZS1yYW5nZSB1bml0cy1wZXItZW0gdi1hbHBoYWJldGljIHYtaGFuZ2luZyB2LWlkZW9ncmFwaGljIHYtbWF0aGVtYXRpY2FsIHZlY3Rvci1lZmZlY3QgdmVydC1hZHYteSB2ZXJ0LW9yaWdpbi14IHZlcnQtb3JpZ2luLXkgd29yZC1zcGFjaW5nIHdyaXRpbmctbW9kZSB4bWxuczp4bGluayB4LWhlaWdodFwiLnNwbGl0KFwiIFwiKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBiPWEucmVwbGFjZShvYSxcbnBhKTtEW2JdPW5ldyBCKGIsMSwhMSxhLG51bGwsITEsITEpfSk7XCJ4bGluazphY3R1YXRlIHhsaW5rOmFyY3JvbGUgeGxpbms6cm9sZSB4bGluazpzaG93IHhsaW5rOnRpdGxlIHhsaW5rOnR5cGVcIi5zcGxpdChcIiBcIikuZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2Uob2EscGEpO0RbYl09bmV3IEIoYiwxLCExLGEsXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsITEsITEpfSk7W1wieG1sOmJhc2VcIixcInhtbDpsYW5nXCIsXCJ4bWw6c3BhY2VcIl0uZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2Uob2EscGEpO0RbYl09bmV3IEIoYiwxLCExLGEsXCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2VcIiwhMSwhMSl9KTtbXCJ0YWJJbmRleFwiLFwiY3Jvc3NPcmlnaW5cIl0uZm9yRWFjaChmdW5jdGlvbihhKXtEW2FdPW5ldyBCKGEsMSwhMSxhLnRvTG93ZXJDYXNlKCksbnVsbCwhMSwhMSl9KTtcbkQueGxpbmtIcmVmPW5ldyBCKFwieGxpbmtIcmVmXCIsMSwhMSxcInhsaW5rOmhyZWZcIixcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiwhMCwhMSk7W1wic3JjXCIsXCJocmVmXCIsXCJhY3Rpb25cIixcImZvcm1BY3Rpb25cIl0uZm9yRWFjaChmdW5jdGlvbihhKXtEW2FdPW5ldyBCKGEsMSwhMSxhLnRvTG93ZXJDYXNlKCksbnVsbCwhMCwhMCl9KTtcbmZ1bmN0aW9uIHFhKGEsYixjLGQpe3ZhciBlPUQuaGFzT3duUHJvcGVydHkoYik/RFtiXTpudWxsO3ZhciBmPW51bGwhPT1lPzA9PT1lLnR5cGU6ZD8hMTohKDI8Yi5sZW5ndGgpfHxcIm9cIiE9PWJbMF0mJlwiT1wiIT09YlswXXx8XCJuXCIhPT1iWzFdJiZcIk5cIiE9PWJbMV0/ITE6ITA7Znx8KG5hKGIsYyxlLGQpJiYoYz1udWxsKSxkfHxudWxsPT09ZT9sYShiKSYmKG51bGw9PT1jP2EucmVtb3ZlQXR0cmlidXRlKGIpOmEuc2V0QXR0cmlidXRlKGIsXCJcIitjKSk6ZS5tdXN0VXNlUHJvcGVydHk/YVtlLnByb3BlcnR5TmFtZV09bnVsbD09PWM/Mz09PWUudHlwZT8hMTpcIlwiOmM6KGI9ZS5hdHRyaWJ1dGVOYW1lLGQ9ZS5hdHRyaWJ1dGVOYW1lc3BhY2UsbnVsbD09PWM/YS5yZW1vdmVBdHRyaWJ1dGUoYik6KGU9ZS50eXBlLGM9Mz09PWV8fDQ9PT1lJiYhMD09PWM/XCJcIjpcIlwiK2MsZD9hLnNldEF0dHJpYnV0ZU5TKGQsYixjKTphLnNldEF0dHJpYnV0ZShiLGMpKSkpfVxudmFyIHJhPWFhLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVELHNhPTYwMTAzLHRhPTYwMTA2LHVhPTYwMTA3LHdhPTYwMTA4LHhhPTYwMTE0LHlhPTYwMTA5LHphPTYwMTEwLEFhPTYwMTEyLEJhPTYwMTEzLENhPTYwMTIwLERhPTYwMTE1LEVhPTYwMTE2LEZhPTYwMTIxLEdhPTYwMTI4LEhhPTYwMTI5LElhPTYwMTMwLEphPTYwMTMxO1xuaWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLmZvcil7dmFyIEU9U3ltYm9sLmZvcjtzYT1FKFwicmVhY3QuZWxlbWVudFwiKTt0YT1FKFwicmVhY3QucG9ydGFsXCIpO3VhPUUoXCJyZWFjdC5mcmFnbWVudFwiKTt3YT1FKFwicmVhY3Quc3RyaWN0X21vZGVcIik7eGE9RShcInJlYWN0LnByb2ZpbGVyXCIpO3lhPUUoXCJyZWFjdC5wcm92aWRlclwiKTt6YT1FKFwicmVhY3QuY29udGV4dFwiKTtBYT1FKFwicmVhY3QuZm9yd2FyZF9yZWZcIik7QmE9RShcInJlYWN0LnN1c3BlbnNlXCIpO0NhPUUoXCJyZWFjdC5zdXNwZW5zZV9saXN0XCIpO0RhPUUoXCJyZWFjdC5tZW1vXCIpO0VhPUUoXCJyZWFjdC5sYXp5XCIpO0ZhPUUoXCJyZWFjdC5ibG9ja1wiKTtFKFwicmVhY3Quc2NvcGVcIik7R2E9RShcInJlYWN0Lm9wYXF1ZS5pZFwiKTtIYT1FKFwicmVhY3QuZGVidWdfdHJhY2VfbW9kZVwiKTtJYT1FKFwicmVhY3Qub2Zmc2NyZWVuXCIpO0phPUUoXCJyZWFjdC5sZWdhY3lfaGlkZGVuXCIpfVxudmFyIEthPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvcjtmdW5jdGlvbiBMYShhKXtpZihudWxsPT09YXx8XCJvYmplY3RcIiE9PXR5cGVvZiBhKXJldHVybiBudWxsO2E9S2EmJmFbS2FdfHxhW1wiQEBpdGVyYXRvclwiXTtyZXR1cm5cImZ1bmN0aW9uXCI9PT10eXBlb2YgYT9hOm51bGx9dmFyIE1hO2Z1bmN0aW9uIE5hKGEpe2lmKHZvaWQgMD09PU1hKXRyeXt0aHJvdyBFcnJvcigpO31jYXRjaChjKXt2YXIgYj1jLnN0YWNrLnRyaW0oKS5tYXRjaCgvXFxuKCAqKGF0ICk/KS8pO01hPWImJmJbMV18fFwiXCJ9cmV0dXJuXCJcXG5cIitNYSthfXZhciBPYT0hMTtcbmZ1bmN0aW9uIFBhKGEsYil7aWYoIWF8fE9hKXJldHVyblwiXCI7T2E9ITA7dmFyIGM9RXJyb3IucHJlcGFyZVN0YWNrVHJhY2U7RXJyb3IucHJlcGFyZVN0YWNrVHJhY2U9dm9pZCAwO3RyeXtpZihiKWlmKGI9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigpO30sT2JqZWN0LmRlZmluZVByb3BlcnR5KGIucHJvdG90eXBlLFwicHJvcHNcIix7c2V0OmZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoKTt9fSksXCJvYmplY3RcIj09PXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmNvbnN0cnVjdCl7dHJ5e1JlZmxlY3QuY29uc3RydWN0KGIsW10pfWNhdGNoKGspe3ZhciBkPWt9UmVmbGVjdC5jb25zdHJ1Y3QoYSxbXSxiKX1lbHNle3RyeXtiLmNhbGwoKX1jYXRjaChrKXtkPWt9YS5jYWxsKGIucHJvdG90eXBlKX1lbHNle3RyeXt0aHJvdyBFcnJvcigpO31jYXRjaChrKXtkPWt9YSgpfX1jYXRjaChrKXtpZihrJiZkJiZcInN0cmluZ1wiPT09dHlwZW9mIGsuc3RhY2spe2Zvcih2YXIgZT1rLnN0YWNrLnNwbGl0KFwiXFxuXCIpLFxuZj1kLnN0YWNrLnNwbGl0KFwiXFxuXCIpLGc9ZS5sZW5ndGgtMSxoPWYubGVuZ3RoLTE7MTw9ZyYmMDw9aCYmZVtnXSE9PWZbaF07KWgtLTtmb3IoOzE8PWcmJjA8PWg7Zy0tLGgtLSlpZihlW2ddIT09ZltoXSl7aWYoMSE9PWd8fDEhPT1oKXtkbyBpZihnLS0saC0tLDA+aHx8ZVtnXSE9PWZbaF0pcmV0dXJuXCJcXG5cIitlW2ddLnJlcGxhY2UoXCIgYXQgbmV3IFwiLFwiIGF0IFwiKTt3aGlsZSgxPD1nJiYwPD1oKX1icmVha319fWZpbmFsbHl7T2E9ITEsRXJyb3IucHJlcGFyZVN0YWNrVHJhY2U9Y31yZXR1cm4oYT1hP2EuZGlzcGxheU5hbWV8fGEubmFtZTpcIlwiKT9OYShhKTpcIlwifVxuZnVuY3Rpb24gUWEoYSl7c3dpdGNoKGEudGFnKXtjYXNlIDU6cmV0dXJuIE5hKGEudHlwZSk7Y2FzZSAxNjpyZXR1cm4gTmEoXCJMYXp5XCIpO2Nhc2UgMTM6cmV0dXJuIE5hKFwiU3VzcGVuc2VcIik7Y2FzZSAxOTpyZXR1cm4gTmEoXCJTdXNwZW5zZUxpc3RcIik7Y2FzZSAwOmNhc2UgMjpjYXNlIDE1OnJldHVybiBhPVBhKGEudHlwZSwhMSksYTtjYXNlIDExOnJldHVybiBhPVBhKGEudHlwZS5yZW5kZXIsITEpLGE7Y2FzZSAyMjpyZXR1cm4gYT1QYShhLnR5cGUuX3JlbmRlciwhMSksYTtjYXNlIDE6cmV0dXJuIGE9UGEoYS50eXBlLCEwKSxhO2RlZmF1bHQ6cmV0dXJuXCJcIn19XG5mdW5jdGlvbiBSYShhKXtpZihudWxsPT1hKXJldHVybiBudWxsO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBhKXJldHVybiBhLmRpc3BsYXlOYW1lfHxhLm5hbWV8fG51bGw7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBhKXJldHVybiBhO3N3aXRjaChhKXtjYXNlIHVhOnJldHVyblwiRnJhZ21lbnRcIjtjYXNlIHRhOnJldHVyblwiUG9ydGFsXCI7Y2FzZSB4YTpyZXR1cm5cIlByb2ZpbGVyXCI7Y2FzZSB3YTpyZXR1cm5cIlN0cmljdE1vZGVcIjtjYXNlIEJhOnJldHVyblwiU3VzcGVuc2VcIjtjYXNlIENhOnJldHVyblwiU3VzcGVuc2VMaXN0XCJ9aWYoXCJvYmplY3RcIj09PXR5cGVvZiBhKXN3aXRjaChhLiQkdHlwZW9mKXtjYXNlIHphOnJldHVybihhLmRpc3BsYXlOYW1lfHxcIkNvbnRleHRcIikrXCIuQ29uc3VtZXJcIjtjYXNlIHlhOnJldHVybihhLl9jb250ZXh0LmRpc3BsYXlOYW1lfHxcIkNvbnRleHRcIikrXCIuUHJvdmlkZXJcIjtjYXNlIEFhOnZhciBiPWEucmVuZGVyO2I9Yi5kaXNwbGF5TmFtZXx8Yi5uYW1lfHxcIlwiO1xucmV0dXJuIGEuZGlzcGxheU5hbWV8fChcIlwiIT09Yj9cIkZvcndhcmRSZWYoXCIrYitcIilcIjpcIkZvcndhcmRSZWZcIik7Y2FzZSBEYTpyZXR1cm4gUmEoYS50eXBlKTtjYXNlIEZhOnJldHVybiBSYShhLl9yZW5kZXIpO2Nhc2UgRWE6Yj1hLl9wYXlsb2FkO2E9YS5faW5pdDt0cnl7cmV0dXJuIFJhKGEoYikpfWNhdGNoKGMpe319cmV0dXJuIG51bGx9ZnVuY3Rpb24gU2EoYSl7c3dpdGNoKHR5cGVvZiBhKXtjYXNlIFwiYm9vbGVhblwiOmNhc2UgXCJudW1iZXJcIjpjYXNlIFwib2JqZWN0XCI6Y2FzZSBcInN0cmluZ1wiOmNhc2UgXCJ1bmRlZmluZWRcIjpyZXR1cm4gYTtkZWZhdWx0OnJldHVyblwiXCJ9fWZ1bmN0aW9uIFRhKGEpe3ZhciBiPWEudHlwZTtyZXR1cm4oYT1hLm5vZGVOYW1lKSYmXCJpbnB1dFwiPT09YS50b0xvd2VyQ2FzZSgpJiYoXCJjaGVja2JveFwiPT09Ynx8XCJyYWRpb1wiPT09Yil9XG5mdW5jdGlvbiBVYShhKXt2YXIgYj1UYShhKT9cImNoZWNrZWRcIjpcInZhbHVlXCIsYz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEuY29uc3RydWN0b3IucHJvdG90eXBlLGIpLGQ9XCJcIithW2JdO2lmKCFhLmhhc093blByb3BlcnR5KGIpJiZcInVuZGVmaW5lZFwiIT09dHlwZW9mIGMmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBjLmdldCYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGMuc2V0KXt2YXIgZT1jLmdldCxmPWMuc2V0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLGIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZS5jYWxsKHRoaXMpfSxzZXQ6ZnVuY3Rpb24oYSl7ZD1cIlwiK2E7Zi5jYWxsKHRoaXMsYSl9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsYix7ZW51bWVyYWJsZTpjLmVudW1lcmFibGV9KTtyZXR1cm57Z2V0VmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZH0sc2V0VmFsdWU6ZnVuY3Rpb24oYSl7ZD1cIlwiK2F9LHN0b3BUcmFja2luZzpmdW5jdGlvbigpe2EuX3ZhbHVlVHJhY2tlcj1cbm51bGw7ZGVsZXRlIGFbYl19fX19ZnVuY3Rpb24gVmEoYSl7YS5fdmFsdWVUcmFja2VyfHwoYS5fdmFsdWVUcmFja2VyPVVhKGEpKX1mdW5jdGlvbiBXYShhKXtpZighYSlyZXR1cm4hMTt2YXIgYj1hLl92YWx1ZVRyYWNrZXI7aWYoIWIpcmV0dXJuITA7dmFyIGM9Yi5nZXRWYWx1ZSgpO3ZhciBkPVwiXCI7YSYmKGQ9VGEoYSk/YS5jaGVja2VkP1widHJ1ZVwiOlwiZmFsc2VcIjphLnZhbHVlKTthPWQ7cmV0dXJuIGEhPT1jPyhiLnNldFZhbHVlKGEpLCEwKTohMX1mdW5jdGlvbiBYYShhKXthPWF8fChcInVuZGVmaW5lZFwiIT09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50OnZvaWQgMCk7aWYoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBhKXJldHVybiBudWxsO3RyeXtyZXR1cm4gYS5hY3RpdmVFbGVtZW50fHxhLmJvZHl9Y2F0Y2goYil7cmV0dXJuIGEuYm9keX19XG5mdW5jdGlvbiBZYShhLGIpe3ZhciBjPWIuY2hlY2tlZDtyZXR1cm4gbSh7fSxiLHtkZWZhdWx0Q2hlY2tlZDp2b2lkIDAsZGVmYXVsdFZhbHVlOnZvaWQgMCx2YWx1ZTp2b2lkIDAsY2hlY2tlZDpudWxsIT1jP2M6YS5fd3JhcHBlclN0YXRlLmluaXRpYWxDaGVja2VkfSl9ZnVuY3Rpb24gWmEoYSxiKXt2YXIgYz1udWxsPT1iLmRlZmF1bHRWYWx1ZT9cIlwiOmIuZGVmYXVsdFZhbHVlLGQ9bnVsbCE9Yi5jaGVja2VkP2IuY2hlY2tlZDpiLmRlZmF1bHRDaGVja2VkO2M9U2EobnVsbCE9Yi52YWx1ZT9iLnZhbHVlOmMpO2EuX3dyYXBwZXJTdGF0ZT17aW5pdGlhbENoZWNrZWQ6ZCxpbml0aWFsVmFsdWU6Yyxjb250cm9sbGVkOlwiY2hlY2tib3hcIj09PWIudHlwZXx8XCJyYWRpb1wiPT09Yi50eXBlP251bGwhPWIuY2hlY2tlZDpudWxsIT1iLnZhbHVlfX1mdW5jdGlvbiAkYShhLGIpe2I9Yi5jaGVja2VkO251bGwhPWImJnFhKGEsXCJjaGVja2VkXCIsYiwhMSl9XG5mdW5jdGlvbiBhYihhLGIpeyRhKGEsYik7dmFyIGM9U2EoYi52YWx1ZSksZD1iLnR5cGU7aWYobnVsbCE9YylpZihcIm51bWJlclwiPT09ZCl7aWYoMD09PWMmJlwiXCI9PT1hLnZhbHVlfHxhLnZhbHVlIT1jKWEudmFsdWU9XCJcIitjfWVsc2UgYS52YWx1ZSE9PVwiXCIrYyYmKGEudmFsdWU9XCJcIitjKTtlbHNlIGlmKFwic3VibWl0XCI9PT1kfHxcInJlc2V0XCI9PT1kKXthLnJlbW92ZUF0dHJpYnV0ZShcInZhbHVlXCIpO3JldHVybn1iLmhhc093blByb3BlcnR5KFwidmFsdWVcIik/YmIoYSxiLnR5cGUsYyk6Yi5oYXNPd25Qcm9wZXJ0eShcImRlZmF1bHRWYWx1ZVwiKSYmYmIoYSxiLnR5cGUsU2EoYi5kZWZhdWx0VmFsdWUpKTtudWxsPT1iLmNoZWNrZWQmJm51bGwhPWIuZGVmYXVsdENoZWNrZWQmJihhLmRlZmF1bHRDaGVja2VkPSEhYi5kZWZhdWx0Q2hlY2tlZCl9XG5mdW5jdGlvbiBjYihhLGIsYyl7aWYoYi5oYXNPd25Qcm9wZXJ0eShcInZhbHVlXCIpfHxiLmhhc093blByb3BlcnR5KFwiZGVmYXVsdFZhbHVlXCIpKXt2YXIgZD1iLnR5cGU7aWYoIShcInN1Ym1pdFwiIT09ZCYmXCJyZXNldFwiIT09ZHx8dm9pZCAwIT09Yi52YWx1ZSYmbnVsbCE9PWIudmFsdWUpKXJldHVybjtiPVwiXCIrYS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZTtjfHxiPT09YS52YWx1ZXx8KGEudmFsdWU9Yik7YS5kZWZhdWx0VmFsdWU9Yn1jPWEubmFtZTtcIlwiIT09YyYmKGEubmFtZT1cIlwiKTthLmRlZmF1bHRDaGVja2VkPSEhYS5fd3JhcHBlclN0YXRlLmluaXRpYWxDaGVja2VkO1wiXCIhPT1jJiYoYS5uYW1lPWMpfVxuZnVuY3Rpb24gYmIoYSxiLGMpe2lmKFwibnVtYmVyXCIhPT1ifHxYYShhLm93bmVyRG9jdW1lbnQpIT09YSludWxsPT1jP2EuZGVmYXVsdFZhbHVlPVwiXCIrYS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZTphLmRlZmF1bHRWYWx1ZSE9PVwiXCIrYyYmKGEuZGVmYXVsdFZhbHVlPVwiXCIrYyl9ZnVuY3Rpb24gZGIoYSl7dmFyIGI9XCJcIjthYS5DaGlsZHJlbi5mb3JFYWNoKGEsZnVuY3Rpb24oYSl7bnVsbCE9YSYmKGIrPWEpfSk7cmV0dXJuIGJ9ZnVuY3Rpb24gZWIoYSxiKXthPW0oe2NoaWxkcmVuOnZvaWQgMH0sYik7aWYoYj1kYihiLmNoaWxkcmVuKSlhLmNoaWxkcmVuPWI7cmV0dXJuIGF9XG5mdW5jdGlvbiBmYihhLGIsYyxkKXthPWEub3B0aW9ucztpZihiKXtiPXt9O2Zvcih2YXIgZT0wO2U8Yy5sZW5ndGg7ZSsrKWJbXCIkXCIrY1tlXV09ITA7Zm9yKGM9MDtjPGEubGVuZ3RoO2MrKyllPWIuaGFzT3duUHJvcGVydHkoXCIkXCIrYVtjXS52YWx1ZSksYVtjXS5zZWxlY3RlZCE9PWUmJihhW2NdLnNlbGVjdGVkPWUpLGUmJmQmJihhW2NdLmRlZmF1bHRTZWxlY3RlZD0hMCl9ZWxzZXtjPVwiXCIrU2EoYyk7Yj1udWxsO2ZvcihlPTA7ZTxhLmxlbmd0aDtlKyspe2lmKGFbZV0udmFsdWU9PT1jKXthW2VdLnNlbGVjdGVkPSEwO2QmJihhW2VdLmRlZmF1bHRTZWxlY3RlZD0hMCk7cmV0dXJufW51bGwhPT1ifHxhW2VdLmRpc2FibGVkfHwoYj1hW2VdKX1udWxsIT09YiYmKGIuc2VsZWN0ZWQ9ITApfX1cbmZ1bmN0aW9uIGdiKGEsYil7aWYobnVsbCE9Yi5kYW5nZXJvdXNseVNldElubmVySFRNTCl0aHJvdyBFcnJvcih5KDkxKSk7cmV0dXJuIG0oe30sYix7dmFsdWU6dm9pZCAwLGRlZmF1bHRWYWx1ZTp2b2lkIDAsY2hpbGRyZW46XCJcIithLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlfSl9ZnVuY3Rpb24gaGIoYSxiKXt2YXIgYz1iLnZhbHVlO2lmKG51bGw9PWMpe2M9Yi5jaGlsZHJlbjtiPWIuZGVmYXVsdFZhbHVlO2lmKG51bGwhPWMpe2lmKG51bGwhPWIpdGhyb3cgRXJyb3IoeSg5MikpO2lmKEFycmF5LmlzQXJyYXkoYykpe2lmKCEoMT49Yy5sZW5ndGgpKXRocm93IEVycm9yKHkoOTMpKTtjPWNbMF19Yj1jfW51bGw9PWImJihiPVwiXCIpO2M9Yn1hLl93cmFwcGVyU3RhdGU9e2luaXRpYWxWYWx1ZTpTYShjKX19XG5mdW5jdGlvbiBpYihhLGIpe3ZhciBjPVNhKGIudmFsdWUpLGQ9U2EoYi5kZWZhdWx0VmFsdWUpO251bGwhPWMmJihjPVwiXCIrYyxjIT09YS52YWx1ZSYmKGEudmFsdWU9YyksbnVsbD09Yi5kZWZhdWx0VmFsdWUmJmEuZGVmYXVsdFZhbHVlIT09YyYmKGEuZGVmYXVsdFZhbHVlPWMpKTtudWxsIT1kJiYoYS5kZWZhdWx0VmFsdWU9XCJcIitkKX1mdW5jdGlvbiBqYihhKXt2YXIgYj1hLnRleHRDb250ZW50O2I9PT1hLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlJiZcIlwiIT09YiYmbnVsbCE9PWImJihhLnZhbHVlPWIpfXZhciBrYj17aHRtbDpcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIixtYXRobWw6XCJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MXCIsc3ZnOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn07XG5mdW5jdGlvbiBsYihhKXtzd2l0Y2goYSl7Y2FzZSBcInN2Z1wiOnJldHVyblwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIjtjYXNlIFwibWF0aFwiOnJldHVyblwiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTFwiO2RlZmF1bHQ6cmV0dXJuXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCJ9fWZ1bmN0aW9uIG1iKGEsYil7cmV0dXJuIG51bGw9PWF8fFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiPT09YT9sYihiKTpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI9PT1hJiZcImZvcmVpZ25PYmplY3RcIj09PWI/XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCI6YX1cbnZhciBuYixvYj1mdW5jdGlvbihhKXtyZXR1cm5cInVuZGVmaW5lZFwiIT09dHlwZW9mIE1TQXBwJiZNU0FwcC5leGVjVW5zYWZlTG9jYWxGdW5jdGlvbj9mdW5jdGlvbihiLGMsZCxlKXtNU0FwcC5leGVjVW5zYWZlTG9jYWxGdW5jdGlvbihmdW5jdGlvbigpe3JldHVybiBhKGIsYyxkLGUpfSl9OmF9KGZ1bmN0aW9uKGEsYil7aWYoYS5uYW1lc3BhY2VVUkkhPT1rYi5zdmd8fFwiaW5uZXJIVE1MXCJpbiBhKWEuaW5uZXJIVE1MPWI7ZWxzZXtuYj1uYnx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtuYi5pbm5lckhUTUw9XCI8c3ZnPlwiK2IudmFsdWVPZigpLnRvU3RyaW5nKCkrXCI8L3N2Zz5cIjtmb3IoYj1uYi5maXJzdENoaWxkO2EuZmlyc3RDaGlsZDspYS5yZW1vdmVDaGlsZChhLmZpcnN0Q2hpbGQpO2Zvcig7Yi5maXJzdENoaWxkOylhLmFwcGVuZENoaWxkKGIuZmlyc3RDaGlsZCl9fSk7XG5mdW5jdGlvbiBwYihhLGIpe2lmKGIpe3ZhciBjPWEuZmlyc3RDaGlsZDtpZihjJiZjPT09YS5sYXN0Q2hpbGQmJjM9PT1jLm5vZGVUeXBlKXtjLm5vZGVWYWx1ZT1iO3JldHVybn19YS50ZXh0Q29udGVudD1ifVxudmFyIHFiPXthbmltYXRpb25JdGVyYXRpb25Db3VudDohMCxib3JkZXJJbWFnZU91dHNldDohMCxib3JkZXJJbWFnZVNsaWNlOiEwLGJvcmRlckltYWdlV2lkdGg6ITAsYm94RmxleDohMCxib3hGbGV4R3JvdXA6ITAsYm94T3JkaW5hbEdyb3VwOiEwLGNvbHVtbkNvdW50OiEwLGNvbHVtbnM6ITAsZmxleDohMCxmbGV4R3JvdzohMCxmbGV4UG9zaXRpdmU6ITAsZmxleFNocmluazohMCxmbGV4TmVnYXRpdmU6ITAsZmxleE9yZGVyOiEwLGdyaWRBcmVhOiEwLGdyaWRSb3c6ITAsZ3JpZFJvd0VuZDohMCxncmlkUm93U3BhbjohMCxncmlkUm93U3RhcnQ6ITAsZ3JpZENvbHVtbjohMCxncmlkQ29sdW1uRW5kOiEwLGdyaWRDb2x1bW5TcGFuOiEwLGdyaWRDb2x1bW5TdGFydDohMCxmb250V2VpZ2h0OiEwLGxpbmVDbGFtcDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCx0YWJTaXplOiEwLHdpZG93czohMCx6SW5kZXg6ITAsem9vbTohMCxmaWxsT3BhY2l0eTohMCxcbmZsb29kT3BhY2l0eTohMCxzdG9wT3BhY2l0eTohMCxzdHJva2VEYXNoYXJyYXk6ITAsc3Ryb2tlRGFzaG9mZnNldDohMCxzdHJva2VNaXRlcmxpbWl0OiEwLHN0cm9rZU9wYWNpdHk6ITAsc3Ryb2tlV2lkdGg6ITB9LHJiPVtcIldlYmtpdFwiLFwibXNcIixcIk1velwiLFwiT1wiXTtPYmplY3Qua2V5cyhxYikuZm9yRWFjaChmdW5jdGlvbihhKXtyYi5mb3JFYWNoKGZ1bmN0aW9uKGIpe2I9YithLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Euc3Vic3RyaW5nKDEpO3FiW2JdPXFiW2FdfSl9KTtmdW5jdGlvbiBzYihhLGIsYyl7cmV0dXJuIG51bGw9PWJ8fFwiYm9vbGVhblwiPT09dHlwZW9mIGJ8fFwiXCI9PT1iP1wiXCI6Y3x8XCJudW1iZXJcIiE9PXR5cGVvZiBifHwwPT09Ynx8cWIuaGFzT3duUHJvcGVydHkoYSkmJnFiW2FdPyhcIlwiK2IpLnRyaW0oKTpiK1wicHhcIn1cbmZ1bmN0aW9uIHRiKGEsYil7YT1hLnN0eWxlO2Zvcih2YXIgYyBpbiBiKWlmKGIuaGFzT3duUHJvcGVydHkoYykpe3ZhciBkPTA9PT1jLmluZGV4T2YoXCItLVwiKSxlPXNiKGMsYltjXSxkKTtcImZsb2F0XCI9PT1jJiYoYz1cImNzc0Zsb2F0XCIpO2Q/YS5zZXRQcm9wZXJ0eShjLGUpOmFbY109ZX19dmFyIHViPW0oe21lbnVpdGVtOiEwfSx7YXJlYTohMCxiYXNlOiEwLGJyOiEwLGNvbDohMCxlbWJlZDohMCxocjohMCxpbWc6ITAsaW5wdXQ6ITAsa2V5Z2VuOiEwLGxpbms6ITAsbWV0YTohMCxwYXJhbTohMCxzb3VyY2U6ITAsdHJhY2s6ITAsd2JyOiEwfSk7XG5mdW5jdGlvbiB2YihhLGIpe2lmKGIpe2lmKHViW2FdJiYobnVsbCE9Yi5jaGlsZHJlbnx8bnVsbCE9Yi5kYW5nZXJvdXNseVNldElubmVySFRNTCkpdGhyb3cgRXJyb3IoeSgxMzcsYSkpO2lmKG51bGwhPWIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpe2lmKG51bGwhPWIuY2hpbGRyZW4pdGhyb3cgRXJyb3IoeSg2MCkpO2lmKCEoXCJvYmplY3RcIj09PXR5cGVvZiBiLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiZcIl9faHRtbFwiaW4gYi5kYW5nZXJvdXNseVNldElubmVySFRNTCkpdGhyb3cgRXJyb3IoeSg2MSkpO31pZihudWxsIT1iLnN0eWxlJiZcIm9iamVjdFwiIT09dHlwZW9mIGIuc3R5bGUpdGhyb3cgRXJyb3IoeSg2MikpO319XG5mdW5jdGlvbiB3YihhLGIpe2lmKC0xPT09YS5pbmRleE9mKFwiLVwiKSlyZXR1cm5cInN0cmluZ1wiPT09dHlwZW9mIGIuaXM7c3dpdGNoKGEpe2Nhc2UgXCJhbm5vdGF0aW9uLXhtbFwiOmNhc2UgXCJjb2xvci1wcm9maWxlXCI6Y2FzZSBcImZvbnQtZmFjZVwiOmNhc2UgXCJmb250LWZhY2Utc3JjXCI6Y2FzZSBcImZvbnQtZmFjZS11cmlcIjpjYXNlIFwiZm9udC1mYWNlLWZvcm1hdFwiOmNhc2UgXCJmb250LWZhY2UtbmFtZVwiOmNhc2UgXCJtaXNzaW5nLWdseXBoXCI6cmV0dXJuITE7ZGVmYXVsdDpyZXR1cm4hMH19ZnVuY3Rpb24geGIoYSl7YT1hLnRhcmdldHx8YS5zcmNFbGVtZW50fHx3aW5kb3c7YS5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCYmKGE9YS5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCk7cmV0dXJuIDM9PT1hLm5vZGVUeXBlP2EucGFyZW50Tm9kZTphfXZhciB5Yj1udWxsLHpiPW51bGwsQWI9bnVsbDtcbmZ1bmN0aW9uIEJiKGEpe2lmKGE9Q2IoYSkpe2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiB5Yil0aHJvdyBFcnJvcih5KDI4MCkpO3ZhciBiPWEuc3RhdGVOb2RlO2ImJihiPURiKGIpLHliKGEuc3RhdGVOb2RlLGEudHlwZSxiKSl9fWZ1bmN0aW9uIEViKGEpe3piP0FiP0FiLnB1c2goYSk6QWI9W2FdOnpiPWF9ZnVuY3Rpb24gRmIoKXtpZih6Yil7dmFyIGE9emIsYj1BYjtBYj16Yj1udWxsO0JiKGEpO2lmKGIpZm9yKGE9MDthPGIubGVuZ3RoO2ErKylCYihiW2FdKX19ZnVuY3Rpb24gR2IoYSxiKXtyZXR1cm4gYShiKX1mdW5jdGlvbiBIYihhLGIsYyxkLGUpe3JldHVybiBhKGIsYyxkLGUpfWZ1bmN0aW9uIEliKCl7fXZhciBKYj1HYixLYj0hMSxMYj0hMTtmdW5jdGlvbiBNYigpe2lmKG51bGwhPT16Ynx8bnVsbCE9PUFiKUliKCksRmIoKX1cbmZ1bmN0aW9uIE5iKGEsYixjKXtpZihMYilyZXR1cm4gYShiLGMpO0xiPSEwO3RyeXtyZXR1cm4gSmIoYSxiLGMpfWZpbmFsbHl7TGI9ITEsTWIoKX19XG5mdW5jdGlvbiBPYihhLGIpe3ZhciBjPWEuc3RhdGVOb2RlO2lmKG51bGw9PT1jKXJldHVybiBudWxsO3ZhciBkPURiKGMpO2lmKG51bGw9PT1kKXJldHVybiBudWxsO2M9ZFtiXTthOnN3aXRjaChiKXtjYXNlIFwib25DbGlja1wiOmNhc2UgXCJvbkNsaWNrQ2FwdHVyZVwiOmNhc2UgXCJvbkRvdWJsZUNsaWNrXCI6Y2FzZSBcIm9uRG91YmxlQ2xpY2tDYXB0dXJlXCI6Y2FzZSBcIm9uTW91c2VEb3duXCI6Y2FzZSBcIm9uTW91c2VEb3duQ2FwdHVyZVwiOmNhc2UgXCJvbk1vdXNlTW92ZVwiOmNhc2UgXCJvbk1vdXNlTW92ZUNhcHR1cmVcIjpjYXNlIFwib25Nb3VzZVVwXCI6Y2FzZSBcIm9uTW91c2VVcENhcHR1cmVcIjpjYXNlIFwib25Nb3VzZUVudGVyXCI6KGQ9IWQuZGlzYWJsZWQpfHwoYT1hLnR5cGUsZD0hKFwiYnV0dG9uXCI9PT1hfHxcImlucHV0XCI9PT1hfHxcInNlbGVjdFwiPT09YXx8XCJ0ZXh0YXJlYVwiPT09YSkpO2E9IWQ7YnJlYWsgYTtkZWZhdWx0OmE9ITF9aWYoYSlyZXR1cm4gbnVsbDtpZihjJiZcImZ1bmN0aW9uXCIhPT1cbnR5cGVvZiBjKXRocm93IEVycm9yKHkoMjMxLGIsdHlwZW9mIGMpKTtyZXR1cm4gY312YXIgUGI9ITE7aWYoZmEpdHJ5e3ZhciBRYj17fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUWIsXCJwYXNzaXZlXCIse2dldDpmdW5jdGlvbigpe1BiPSEwfX0pO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwidGVzdFwiLFFiLFFiKTt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRlc3RcIixRYixRYil9Y2F0Y2goYSl7UGI9ITF9ZnVuY3Rpb24gUmIoYSxiLGMsZCxlLGYsZyxoLGspe3ZhciBsPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywzKTt0cnl7Yi5hcHBseShjLGwpfWNhdGNoKG4pe3RoaXMub25FcnJvcihuKX19dmFyIFNiPSExLFRiPW51bGwsVWI9ITEsVmI9bnVsbCxXYj17b25FcnJvcjpmdW5jdGlvbihhKXtTYj0hMDtUYj1hfX07ZnVuY3Rpb24gWGIoYSxiLGMsZCxlLGYsZyxoLGspe1NiPSExO1RiPW51bGw7UmIuYXBwbHkoV2IsYXJndW1lbnRzKX1cbmZ1bmN0aW9uIFliKGEsYixjLGQsZSxmLGcsaCxrKXtYYi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7aWYoU2Ipe2lmKFNiKXt2YXIgbD1UYjtTYj0hMTtUYj1udWxsfWVsc2UgdGhyb3cgRXJyb3IoeSgxOTgpKTtVYnx8KFViPSEwLFZiPWwpfX1mdW5jdGlvbiBaYihhKXt2YXIgYj1hLGM9YTtpZihhLmFsdGVybmF0ZSlmb3IoO2IucmV0dXJuOyliPWIucmV0dXJuO2Vsc2V7YT1iO2RvIGI9YSwwIT09KGIuZmxhZ3MmMTAyNikmJihjPWIucmV0dXJuKSxhPWIucmV0dXJuO3doaWxlKGEpfXJldHVybiAzPT09Yi50YWc/YzpudWxsfWZ1bmN0aW9uICRiKGEpe2lmKDEzPT09YS50YWcpe3ZhciBiPWEubWVtb2l6ZWRTdGF0ZTtudWxsPT09YiYmKGE9YS5hbHRlcm5hdGUsbnVsbCE9PWEmJihiPWEubWVtb2l6ZWRTdGF0ZSkpO2lmKG51bGwhPT1iKXJldHVybiBiLmRlaHlkcmF0ZWR9cmV0dXJuIG51bGx9ZnVuY3Rpb24gYWMoYSl7aWYoWmIoYSkhPT1hKXRocm93IEVycm9yKHkoMTg4KSk7fVxuZnVuY3Rpb24gYmMoYSl7dmFyIGI9YS5hbHRlcm5hdGU7aWYoIWIpe2I9WmIoYSk7aWYobnVsbD09PWIpdGhyb3cgRXJyb3IoeSgxODgpKTtyZXR1cm4gYiE9PWE/bnVsbDphfWZvcih2YXIgYz1hLGQ9Yjs7KXt2YXIgZT1jLnJldHVybjtpZihudWxsPT09ZSlicmVhazt2YXIgZj1lLmFsdGVybmF0ZTtpZihudWxsPT09Zil7ZD1lLnJldHVybjtpZihudWxsIT09ZCl7Yz1kO2NvbnRpbnVlfWJyZWFrfWlmKGUuY2hpbGQ9PT1mLmNoaWxkKXtmb3IoZj1lLmNoaWxkO2Y7KXtpZihmPT09YylyZXR1cm4gYWMoZSksYTtpZihmPT09ZClyZXR1cm4gYWMoZSksYjtmPWYuc2libGluZ310aHJvdyBFcnJvcih5KDE4OCkpO31pZihjLnJldHVybiE9PWQucmV0dXJuKWM9ZSxkPWY7ZWxzZXtmb3IodmFyIGc9ITEsaD1lLmNoaWxkO2g7KXtpZihoPT09Yyl7Zz0hMDtjPWU7ZD1mO2JyZWFrfWlmKGg9PT1kKXtnPSEwO2Q9ZTtjPWY7YnJlYWt9aD1oLnNpYmxpbmd9aWYoIWcpe2ZvcihoPWYuY2hpbGQ7aDspe2lmKGg9PT1cbmMpe2c9ITA7Yz1mO2Q9ZTticmVha31pZihoPT09ZCl7Zz0hMDtkPWY7Yz1lO2JyZWFrfWg9aC5zaWJsaW5nfWlmKCFnKXRocm93IEVycm9yKHkoMTg5KSk7fX1pZihjLmFsdGVybmF0ZSE9PWQpdGhyb3cgRXJyb3IoeSgxOTApKTt9aWYoMyE9PWMudGFnKXRocm93IEVycm9yKHkoMTg4KSk7cmV0dXJuIGMuc3RhdGVOb2RlLmN1cnJlbnQ9PT1jP2E6Yn1mdW5jdGlvbiBjYyhhKXthPWJjKGEpO2lmKCFhKXJldHVybiBudWxsO2Zvcih2YXIgYj1hOzspe2lmKDU9PT1iLnRhZ3x8Nj09PWIudGFnKXJldHVybiBiO2lmKGIuY2hpbGQpYi5jaGlsZC5yZXR1cm49YixiPWIuY2hpbGQ7ZWxzZXtpZihiPT09YSlicmVhaztmb3IoOyFiLnNpYmxpbmc7KXtpZighYi5yZXR1cm58fGIucmV0dXJuPT09YSlyZXR1cm4gbnVsbDtiPWIucmV0dXJufWIuc2libGluZy5yZXR1cm49Yi5yZXR1cm47Yj1iLnNpYmxpbmd9fXJldHVybiBudWxsfVxuZnVuY3Rpb24gZGMoYSxiKXtmb3IodmFyIGM9YS5hbHRlcm5hdGU7bnVsbCE9PWI7KXtpZihiPT09YXx8Yj09PWMpcmV0dXJuITA7Yj1iLnJldHVybn1yZXR1cm4hMX12YXIgZWMsZmMsZ2MsaGMsaWM9ITEsamM9W10sa2M9bnVsbCxsYz1udWxsLG1jPW51bGwsbmM9bmV3IE1hcCxvYz1uZXcgTWFwLHBjPVtdLHFjPVwibW91c2Vkb3duIG1vdXNldXAgdG91Y2hjYW5jZWwgdG91Y2hlbmQgdG91Y2hzdGFydCBhdXhjbGljayBkYmxjbGljayBwb2ludGVyY2FuY2VsIHBvaW50ZXJkb3duIHBvaW50ZXJ1cCBkcmFnZW5kIGRyYWdzdGFydCBkcm9wIGNvbXBvc2l0aW9uZW5kIGNvbXBvc2l0aW9uc3RhcnQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBpbnB1dCB0ZXh0SW5wdXQgY29weSBjdXQgcGFzdGUgY2xpY2sgY2hhbmdlIGNvbnRleHRtZW51IHJlc2V0IHN1Ym1pdFwiLnNwbGl0KFwiIFwiKTtcbmZ1bmN0aW9uIHJjKGEsYixjLGQsZSl7cmV0dXJue2Jsb2NrZWRPbjphLGRvbUV2ZW50TmFtZTpiLGV2ZW50U3lzdGVtRmxhZ3M6Y3wxNixuYXRpdmVFdmVudDplLHRhcmdldENvbnRhaW5lcnM6W2RdfX1mdW5jdGlvbiBzYyhhLGIpe3N3aXRjaChhKXtjYXNlIFwiZm9jdXNpblwiOmNhc2UgXCJmb2N1c291dFwiOmtjPW51bGw7YnJlYWs7Y2FzZSBcImRyYWdlbnRlclwiOmNhc2UgXCJkcmFnbGVhdmVcIjpsYz1udWxsO2JyZWFrO2Nhc2UgXCJtb3VzZW92ZXJcIjpjYXNlIFwibW91c2VvdXRcIjptYz1udWxsO2JyZWFrO2Nhc2UgXCJwb2ludGVyb3ZlclwiOmNhc2UgXCJwb2ludGVyb3V0XCI6bmMuZGVsZXRlKGIucG9pbnRlcklkKTticmVhaztjYXNlIFwiZ290cG9pbnRlcmNhcHR1cmVcIjpjYXNlIFwibG9zdHBvaW50ZXJjYXB0dXJlXCI6b2MuZGVsZXRlKGIucG9pbnRlcklkKX19XG5mdW5jdGlvbiB0YyhhLGIsYyxkLGUsZil7aWYobnVsbD09PWF8fGEubmF0aXZlRXZlbnQhPT1mKXJldHVybiBhPXJjKGIsYyxkLGUsZiksbnVsbCE9PWImJihiPUNiKGIpLG51bGwhPT1iJiZmYyhiKSksYTthLmV2ZW50U3lzdGVtRmxhZ3N8PWQ7Yj1hLnRhcmdldENvbnRhaW5lcnM7bnVsbCE9PWUmJi0xPT09Yi5pbmRleE9mKGUpJiZiLnB1c2goZSk7cmV0dXJuIGF9XG5mdW5jdGlvbiB1YyhhLGIsYyxkLGUpe3N3aXRjaChiKXtjYXNlIFwiZm9jdXNpblwiOnJldHVybiBrYz10YyhrYyxhLGIsYyxkLGUpLCEwO2Nhc2UgXCJkcmFnZW50ZXJcIjpyZXR1cm4gbGM9dGMobGMsYSxiLGMsZCxlKSwhMDtjYXNlIFwibW91c2VvdmVyXCI6cmV0dXJuIG1jPXRjKG1jLGEsYixjLGQsZSksITA7Y2FzZSBcInBvaW50ZXJvdmVyXCI6dmFyIGY9ZS5wb2ludGVySWQ7bmMuc2V0KGYsdGMobmMuZ2V0KGYpfHxudWxsLGEsYixjLGQsZSkpO3JldHVybiEwO2Nhc2UgXCJnb3Rwb2ludGVyY2FwdHVyZVwiOnJldHVybiBmPWUucG9pbnRlcklkLG9jLnNldChmLHRjKG9jLmdldChmKXx8bnVsbCxhLGIsYyxkLGUpKSwhMH1yZXR1cm4hMX1cbmZ1bmN0aW9uIHZjKGEpe3ZhciBiPXdjKGEudGFyZ2V0KTtpZihudWxsIT09Yil7dmFyIGM9WmIoYik7aWYobnVsbCE9PWMpaWYoYj1jLnRhZywxMz09PWIpe2lmKGI9JGIoYyksbnVsbCE9PWIpe2EuYmxvY2tlZE9uPWI7aGMoYS5sYW5lUHJpb3JpdHksZnVuY3Rpb24oKXtyLnVuc3RhYmxlX3J1bldpdGhQcmlvcml0eShhLnByaW9yaXR5LGZ1bmN0aW9uKCl7Z2MoYyl9KX0pO3JldHVybn19ZWxzZSBpZigzPT09YiYmYy5zdGF0ZU5vZGUuaHlkcmF0ZSl7YS5ibG9ja2VkT249Mz09PWMudGFnP2Muc3RhdGVOb2RlLmNvbnRhaW5lckluZm86bnVsbDtyZXR1cm59fWEuYmxvY2tlZE9uPW51bGx9XG5mdW5jdGlvbiB4YyhhKXtpZihudWxsIT09YS5ibG9ja2VkT24pcmV0dXJuITE7Zm9yKHZhciBiPWEudGFyZ2V0Q29udGFpbmVyczswPGIubGVuZ3RoOyl7dmFyIGM9eWMoYS5kb21FdmVudE5hbWUsYS5ldmVudFN5c3RlbUZsYWdzLGJbMF0sYS5uYXRpdmVFdmVudCk7aWYobnVsbCE9PWMpcmV0dXJuIGI9Q2IoYyksbnVsbCE9PWImJmZjKGIpLGEuYmxvY2tlZE9uPWMsITE7Yi5zaGlmdCgpfXJldHVybiEwfWZ1bmN0aW9uIHpjKGEsYixjKXt4YyhhKSYmYy5kZWxldGUoYil9XG5mdW5jdGlvbiBBYygpe2ZvcihpYz0hMTswPGpjLmxlbmd0aDspe3ZhciBhPWpjWzBdO2lmKG51bGwhPT1hLmJsb2NrZWRPbil7YT1DYihhLmJsb2NrZWRPbik7bnVsbCE9PWEmJmVjKGEpO2JyZWFrfWZvcih2YXIgYj1hLnRhcmdldENvbnRhaW5lcnM7MDxiLmxlbmd0aDspe3ZhciBjPXljKGEuZG9tRXZlbnROYW1lLGEuZXZlbnRTeXN0ZW1GbGFncyxiWzBdLGEubmF0aXZlRXZlbnQpO2lmKG51bGwhPT1jKXthLmJsb2NrZWRPbj1jO2JyZWFrfWIuc2hpZnQoKX1udWxsPT09YS5ibG9ja2VkT24mJmpjLnNoaWZ0KCl9bnVsbCE9PWtjJiZ4YyhrYykmJihrYz1udWxsKTtudWxsIT09bGMmJnhjKGxjKSYmKGxjPW51bGwpO251bGwhPT1tYyYmeGMobWMpJiYobWM9bnVsbCk7bmMuZm9yRWFjaCh6Yyk7b2MuZm9yRWFjaCh6Yyl9XG5mdW5jdGlvbiBCYyhhLGIpe2EuYmxvY2tlZE9uPT09YiYmKGEuYmxvY2tlZE9uPW51bGwsaWN8fChpYz0hMCxyLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2soci51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSxBYykpKX1cbmZ1bmN0aW9uIENjKGEpe2Z1bmN0aW9uIGIoYil7cmV0dXJuIEJjKGIsYSl9aWYoMDxqYy5sZW5ndGgpe0JjKGpjWzBdLGEpO2Zvcih2YXIgYz0xO2M8amMubGVuZ3RoO2MrKyl7dmFyIGQ9amNbY107ZC5ibG9ja2VkT249PT1hJiYoZC5ibG9ja2VkT249bnVsbCl9fW51bGwhPT1rYyYmQmMoa2MsYSk7bnVsbCE9PWxjJiZCYyhsYyxhKTtudWxsIT09bWMmJkJjKG1jLGEpO25jLmZvckVhY2goYik7b2MuZm9yRWFjaChiKTtmb3IoYz0wO2M8cGMubGVuZ3RoO2MrKylkPXBjW2NdLGQuYmxvY2tlZE9uPT09YSYmKGQuYmxvY2tlZE9uPW51bGwpO2Zvcig7MDxwYy5sZW5ndGgmJihjPXBjWzBdLG51bGw9PT1jLmJsb2NrZWRPbik7KXZjKGMpLG51bGw9PT1jLmJsb2NrZWRPbiYmcGMuc2hpZnQoKX1cbmZ1bmN0aW9uIERjKGEsYil7dmFyIGM9e307Y1thLnRvTG93ZXJDYXNlKCldPWIudG9Mb3dlckNhc2UoKTtjW1wiV2Via2l0XCIrYV09XCJ3ZWJraXRcIitiO2NbXCJNb3pcIithXT1cIm1velwiK2I7cmV0dXJuIGN9dmFyIEVjPXthbmltYXRpb25lbmQ6RGMoXCJBbmltYXRpb25cIixcIkFuaW1hdGlvbkVuZFwiKSxhbmltYXRpb25pdGVyYXRpb246RGMoXCJBbmltYXRpb25cIixcIkFuaW1hdGlvbkl0ZXJhdGlvblwiKSxhbmltYXRpb25zdGFydDpEYyhcIkFuaW1hdGlvblwiLFwiQW5pbWF0aW9uU3RhcnRcIiksdHJhbnNpdGlvbmVuZDpEYyhcIlRyYW5zaXRpb25cIixcIlRyYW5zaXRpb25FbmRcIil9LEZjPXt9LEdjPXt9O1xuZmEmJihHYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLnN0eWxlLFwiQW5pbWF0aW9uRXZlbnRcImluIHdpbmRvd3x8KGRlbGV0ZSBFYy5hbmltYXRpb25lbmQuYW5pbWF0aW9uLGRlbGV0ZSBFYy5hbmltYXRpb25pdGVyYXRpb24uYW5pbWF0aW9uLGRlbGV0ZSBFYy5hbmltYXRpb25zdGFydC5hbmltYXRpb24pLFwiVHJhbnNpdGlvbkV2ZW50XCJpbiB3aW5kb3d8fGRlbGV0ZSBFYy50cmFuc2l0aW9uZW5kLnRyYW5zaXRpb24pO2Z1bmN0aW9uIEhjKGEpe2lmKEZjW2FdKXJldHVybiBGY1thXTtpZighRWNbYV0pcmV0dXJuIGE7dmFyIGI9RWNbYV0sYztmb3IoYyBpbiBiKWlmKGIuaGFzT3duUHJvcGVydHkoYykmJmMgaW4gR2MpcmV0dXJuIEZjW2FdPWJbY107cmV0dXJuIGF9XG52YXIgSWM9SGMoXCJhbmltYXRpb25lbmRcIiksSmM9SGMoXCJhbmltYXRpb25pdGVyYXRpb25cIiksS2M9SGMoXCJhbmltYXRpb25zdGFydFwiKSxMYz1IYyhcInRyYW5zaXRpb25lbmRcIiksTWM9bmV3IE1hcCxOYz1uZXcgTWFwLE9jPVtcImFib3J0XCIsXCJhYm9ydFwiLEljLFwiYW5pbWF0aW9uRW5kXCIsSmMsXCJhbmltYXRpb25JdGVyYXRpb25cIixLYyxcImFuaW1hdGlvblN0YXJ0XCIsXCJjYW5wbGF5XCIsXCJjYW5QbGF5XCIsXCJjYW5wbGF5dGhyb3VnaFwiLFwiY2FuUGxheVRocm91Z2hcIixcImR1cmF0aW9uY2hhbmdlXCIsXCJkdXJhdGlvbkNoYW5nZVwiLFwiZW1wdGllZFwiLFwiZW1wdGllZFwiLFwiZW5jcnlwdGVkXCIsXCJlbmNyeXB0ZWRcIixcImVuZGVkXCIsXCJlbmRlZFwiLFwiZXJyb3JcIixcImVycm9yXCIsXCJnb3Rwb2ludGVyY2FwdHVyZVwiLFwiZ290UG9pbnRlckNhcHR1cmVcIixcImxvYWRcIixcImxvYWRcIixcImxvYWRlZGRhdGFcIixcImxvYWRlZERhdGFcIixcImxvYWRlZG1ldGFkYXRhXCIsXCJsb2FkZWRNZXRhZGF0YVwiLFwibG9hZHN0YXJ0XCIsXCJsb2FkU3RhcnRcIixcblwibG9zdHBvaW50ZXJjYXB0dXJlXCIsXCJsb3N0UG9pbnRlckNhcHR1cmVcIixcInBsYXlpbmdcIixcInBsYXlpbmdcIixcInByb2dyZXNzXCIsXCJwcm9ncmVzc1wiLFwic2Vla2luZ1wiLFwic2Vla2luZ1wiLFwic3RhbGxlZFwiLFwic3RhbGxlZFwiLFwic3VzcGVuZFwiLFwic3VzcGVuZFwiLFwidGltZXVwZGF0ZVwiLFwidGltZVVwZGF0ZVwiLExjLFwidHJhbnNpdGlvbkVuZFwiLFwid2FpdGluZ1wiLFwid2FpdGluZ1wiXTtmdW5jdGlvbiBQYyhhLGIpe2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7Yys9Mil7dmFyIGQ9YVtjXSxlPWFbYysxXTtlPVwib25cIisoZVswXS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSkpO05jLnNldChkLGIpO01jLnNldChkLGUpO2RhKGUsW2RdKX19dmFyIFFjPXIudW5zdGFibGVfbm93O1FjKCk7dmFyIEY9ODtcbmZ1bmN0aW9uIFJjKGEpe2lmKDAhPT0oMSZhKSlyZXR1cm4gRj0xNSwxO2lmKDAhPT0oMiZhKSlyZXR1cm4gRj0xNCwyO2lmKDAhPT0oNCZhKSlyZXR1cm4gRj0xMyw0O3ZhciBiPTI0JmE7aWYoMCE9PWIpcmV0dXJuIEY9MTIsYjtpZigwIT09KGEmMzIpKXJldHVybiBGPTExLDMyO2I9MTkyJmE7aWYoMCE9PWIpcmV0dXJuIEY9MTAsYjtpZigwIT09KGEmMjU2KSlyZXR1cm4gRj05LDI1NjtiPTM1ODQmYTtpZigwIT09YilyZXR1cm4gRj04LGI7aWYoMCE9PShhJjQwOTYpKXJldHVybiBGPTcsNDA5NjtiPTQxODYxMTImYTtpZigwIT09YilyZXR1cm4gRj02LGI7Yj02MjkxNDU2MCZhO2lmKDAhPT1iKXJldHVybiBGPTUsYjtpZihhJjY3MTA4ODY0KXJldHVybiBGPTQsNjcxMDg4NjQ7aWYoMCE9PShhJjEzNDIxNzcyOCkpcmV0dXJuIEY9MywxMzQyMTc3Mjg7Yj04MDUzMDYzNjgmYTtpZigwIT09YilyZXR1cm4gRj0yLGI7aWYoMCE9PSgxMDczNzQxODI0JmEpKXJldHVybiBGPTEsMTA3Mzc0MTgyNDtcbkY9ODtyZXR1cm4gYX1mdW5jdGlvbiBTYyhhKXtzd2l0Y2goYSl7Y2FzZSA5OTpyZXR1cm4gMTU7Y2FzZSA5ODpyZXR1cm4gMTA7Y2FzZSA5NzpjYXNlIDk2OnJldHVybiA4O2Nhc2UgOTU6cmV0dXJuIDI7ZGVmYXVsdDpyZXR1cm4gMH19ZnVuY3Rpb24gVGMoYSl7c3dpdGNoKGEpe2Nhc2UgMTU6Y2FzZSAxNDpyZXR1cm4gOTk7Y2FzZSAxMzpjYXNlIDEyOmNhc2UgMTE6Y2FzZSAxMDpyZXR1cm4gOTg7Y2FzZSA5OmNhc2UgODpjYXNlIDc6Y2FzZSA2OmNhc2UgNDpjYXNlIDU6cmV0dXJuIDk3O2Nhc2UgMzpjYXNlIDI6Y2FzZSAxOnJldHVybiA5NTtjYXNlIDA6cmV0dXJuIDkwO2RlZmF1bHQ6dGhyb3cgRXJyb3IoeSgzNTgsYSkpO319XG5mdW5jdGlvbiBVYyhhLGIpe3ZhciBjPWEucGVuZGluZ0xhbmVzO2lmKDA9PT1jKXJldHVybiBGPTA7dmFyIGQ9MCxlPTAsZj1hLmV4cGlyZWRMYW5lcyxnPWEuc3VzcGVuZGVkTGFuZXMsaD1hLnBpbmdlZExhbmVzO2lmKDAhPT1mKWQ9ZixlPUY9MTU7ZWxzZSBpZihmPWMmMTM0MjE3NzI3LDAhPT1mKXt2YXIgaz1mJn5nOzAhPT1rPyhkPVJjKGspLGU9Rik6KGgmPWYsMCE9PWgmJihkPVJjKGgpLGU9RikpfWVsc2UgZj1jJn5nLDAhPT1mPyhkPVJjKGYpLGU9Rik6MCE9PWgmJihkPVJjKGgpLGU9Rik7aWYoMD09PWQpcmV0dXJuIDA7ZD0zMS1WYyhkKTtkPWMmKCgwPmQ/MDoxPDxkKTw8MSktMTtpZigwIT09YiYmYiE9PWQmJjA9PT0oYiZnKSl7UmMoYik7aWYoZTw9RilyZXR1cm4gYjtGPWV9Yj1hLmVudGFuZ2xlZExhbmVzO2lmKDAhPT1iKWZvcihhPWEuZW50YW5nbGVtZW50cyxiJj1kOzA8YjspYz0zMS1WYyhiKSxlPTE8PGMsZHw9YVtjXSxiJj1+ZTtyZXR1cm4gZH1cbmZ1bmN0aW9uIFdjKGEpe2E9YS5wZW5kaW5nTGFuZXMmLTEwNzM3NDE4MjU7cmV0dXJuIDAhPT1hP2E6YSYxMDczNzQxODI0PzEwNzM3NDE4MjQ6MH1mdW5jdGlvbiBYYyhhLGIpe3N3aXRjaChhKXtjYXNlIDE1OnJldHVybiAxO2Nhc2UgMTQ6cmV0dXJuIDI7Y2FzZSAxMjpyZXR1cm4gYT1ZYygyNCZ+YiksMD09PWE/WGMoMTAsYik6YTtjYXNlIDEwOnJldHVybiBhPVljKDE5MiZ+YiksMD09PWE/WGMoOCxiKTphO2Nhc2UgODpyZXR1cm4gYT1ZYygzNTg0Jn5iKSwwPT09YSYmKGE9WWMoNDE4NjExMiZ+YiksMD09PWEmJihhPTUxMikpLGE7Y2FzZSAyOnJldHVybiBiPVljKDgwNTMwNjM2OCZ+YiksMD09PWImJihiPTI2ODQzNTQ1NiksYn10aHJvdyBFcnJvcih5KDM1OCxhKSk7fWZ1bmN0aW9uIFljKGEpe3JldHVybiBhJi1hfWZ1bmN0aW9uIFpjKGEpe2Zvcih2YXIgYj1bXSxjPTA7MzE+YztjKyspYi5wdXNoKGEpO3JldHVybiBifVxuZnVuY3Rpb24gJGMoYSxiLGMpe2EucGVuZGluZ0xhbmVzfD1iO3ZhciBkPWItMTthLnN1c3BlbmRlZExhbmVzJj1kO2EucGluZ2VkTGFuZXMmPWQ7YT1hLmV2ZW50VGltZXM7Yj0zMS1WYyhiKTthW2JdPWN9dmFyIFZjPU1hdGguY2x6MzI/TWF0aC5jbHozMjphZCxiZD1NYXRoLmxvZyxjZD1NYXRoLkxOMjtmdW5jdGlvbiBhZChhKXtyZXR1cm4gMD09PWE/MzI6MzEtKGJkKGEpL2NkfDApfDB9dmFyIGRkPXIudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHksZWQ9ci51bnN0YWJsZV9ydW5XaXRoUHJpb3JpdHksZmQ9ITA7ZnVuY3Rpb24gZ2QoYSxiLGMsZCl7S2J8fEliKCk7dmFyIGU9aGQsZj1LYjtLYj0hMDt0cnl7SGIoZSxhLGIsYyxkKX1maW5hbGx5eyhLYj1mKXx8TWIoKX19ZnVuY3Rpb24gaWQoYSxiLGMsZCl7ZWQoZGQsaGQuYmluZChudWxsLGEsYixjLGQpKX1cbmZ1bmN0aW9uIGhkKGEsYixjLGQpe2lmKGZkKXt2YXIgZTtpZigoZT0wPT09KGImNCkpJiYwPGpjLmxlbmd0aCYmLTE8cWMuaW5kZXhPZihhKSlhPXJjKG51bGwsYSxiLGMsZCksamMucHVzaChhKTtlbHNle3ZhciBmPXljKGEsYixjLGQpO2lmKG51bGw9PT1mKWUmJnNjKGEsZCk7ZWxzZXtpZihlKXtpZigtMTxxYy5pbmRleE9mKGEpKXthPXJjKGYsYSxiLGMsZCk7amMucHVzaChhKTtyZXR1cm59aWYodWMoZixhLGIsYyxkKSlyZXR1cm47c2MoYSxkKX1qZChhLGIsZCxudWxsLGMpfX19fVxuZnVuY3Rpb24geWMoYSxiLGMsZCl7dmFyIGU9eGIoZCk7ZT13YyhlKTtpZihudWxsIT09ZSl7dmFyIGY9WmIoZSk7aWYobnVsbD09PWYpZT1udWxsO2Vsc2V7dmFyIGc9Zi50YWc7aWYoMTM9PT1nKXtlPSRiKGYpO2lmKG51bGwhPT1lKXJldHVybiBlO2U9bnVsbH1lbHNlIGlmKDM9PT1nKXtpZihmLnN0YXRlTm9kZS5oeWRyYXRlKXJldHVybiAzPT09Zi50YWc/Zi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbzpudWxsO2U9bnVsbH1lbHNlIGYhPT1lJiYoZT1udWxsKX19amQoYSxiLGQsZSxjKTtyZXR1cm4gbnVsbH12YXIga2Q9bnVsbCxsZD1udWxsLG1kPW51bGw7XG5mdW5jdGlvbiBuZCgpe2lmKG1kKXJldHVybiBtZDt2YXIgYSxiPWxkLGM9Yi5sZW5ndGgsZCxlPVwidmFsdWVcImluIGtkP2tkLnZhbHVlOmtkLnRleHRDb250ZW50LGY9ZS5sZW5ndGg7Zm9yKGE9MDthPGMmJmJbYV09PT1lW2FdO2ErKyk7dmFyIGc9Yy1hO2ZvcihkPTE7ZDw9ZyYmYltjLWRdPT09ZVtmLWRdO2QrKyk7cmV0dXJuIG1kPWUuc2xpY2UoYSwxPGQ/MS1kOnZvaWQgMCl9ZnVuY3Rpb24gb2QoYSl7dmFyIGI9YS5rZXlDb2RlO1wiY2hhckNvZGVcImluIGE/KGE9YS5jaGFyQ29kZSwwPT09YSYmMTM9PT1iJiYoYT0xMykpOmE9YjsxMD09PWEmJihhPTEzKTtyZXR1cm4gMzI8PWF8fDEzPT09YT9hOjB9ZnVuY3Rpb24gcGQoKXtyZXR1cm4hMH1mdW5jdGlvbiBxZCgpe3JldHVybiExfVxuZnVuY3Rpb24gcmQoYSl7ZnVuY3Rpb24gYihiLGQsZSxmLGcpe3RoaXMuX3JlYWN0TmFtZT1iO3RoaXMuX3RhcmdldEluc3Q9ZTt0aGlzLnR5cGU9ZDt0aGlzLm5hdGl2ZUV2ZW50PWY7dGhpcy50YXJnZXQ9Zzt0aGlzLmN1cnJlbnRUYXJnZXQ9bnVsbDtmb3IodmFyIGMgaW4gYSlhLmhhc093blByb3BlcnR5KGMpJiYoYj1hW2NdLHRoaXNbY109Yj9iKGYpOmZbY10pO3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPShudWxsIT1mLmRlZmF1bHRQcmV2ZW50ZWQ/Zi5kZWZhdWx0UHJldmVudGVkOiExPT09Zi5yZXR1cm5WYWx1ZSk/cGQ6cWQ7dGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1xZDtyZXR1cm4gdGhpc31tKGIucHJvdG90eXBlLHtwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe3RoaXMuZGVmYXVsdFByZXZlbnRlZD0hMDt2YXIgYT10aGlzLm5hdGl2ZUV2ZW50O2EmJihhLnByZXZlbnREZWZhdWx0P2EucHJldmVudERlZmF1bHQoKTpcInVua25vd25cIiE9PXR5cGVvZiBhLnJldHVyblZhbHVlJiZcbihhLnJldHVyblZhbHVlPSExKSx0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1wZCl9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBhPXRoaXMubmF0aXZlRXZlbnQ7YSYmKGEuc3RvcFByb3BhZ2F0aW9uP2Euc3RvcFByb3BhZ2F0aW9uKCk6XCJ1bmtub3duXCIhPT10eXBlb2YgYS5jYW5jZWxCdWJibGUmJihhLmNhbmNlbEJ1YmJsZT0hMCksdGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1wZCl9LHBlcnNpc3Q6ZnVuY3Rpb24oKXt9LGlzUGVyc2lzdGVudDpwZH0pO3JldHVybiBifVxudmFyIHNkPXtldmVudFBoYXNlOjAsYnViYmxlczowLGNhbmNlbGFibGU6MCx0aW1lU3RhbXA6ZnVuY3Rpb24oYSl7cmV0dXJuIGEudGltZVN0YW1wfHxEYXRlLm5vdygpfSxkZWZhdWx0UHJldmVudGVkOjAsaXNUcnVzdGVkOjB9LHRkPXJkKHNkKSx1ZD1tKHt9LHNkLHt2aWV3OjAsZGV0YWlsOjB9KSx2ZD1yZCh1ZCksd2QseGQseWQsQWQ9bSh7fSx1ZCx7c2NyZWVuWDowLHNjcmVlblk6MCxjbGllbnRYOjAsY2xpZW50WTowLHBhZ2VYOjAscGFnZVk6MCxjdHJsS2V5OjAsc2hpZnRLZXk6MCxhbHRLZXk6MCxtZXRhS2V5OjAsZ2V0TW9kaWZpZXJTdGF0ZTp6ZCxidXR0b246MCxidXR0b25zOjAscmVsYXRlZFRhcmdldDpmdW5jdGlvbihhKXtyZXR1cm4gdm9pZCAwPT09YS5yZWxhdGVkVGFyZ2V0P2EuZnJvbUVsZW1lbnQ9PT1hLnNyY0VsZW1lbnQ/YS50b0VsZW1lbnQ6YS5mcm9tRWxlbWVudDphLnJlbGF0ZWRUYXJnZXR9LG1vdmVtZW50WDpmdW5jdGlvbihhKXtpZihcIm1vdmVtZW50WFwiaW5cbmEpcmV0dXJuIGEubW92ZW1lbnRYO2EhPT15ZCYmKHlkJiZcIm1vdXNlbW92ZVwiPT09YS50eXBlPyh3ZD1hLnNjcmVlblgteWQuc2NyZWVuWCx4ZD1hLnNjcmVlblkteWQuc2NyZWVuWSk6eGQ9d2Q9MCx5ZD1hKTtyZXR1cm4gd2R9LG1vdmVtZW50WTpmdW5jdGlvbihhKXtyZXR1cm5cIm1vdmVtZW50WVwiaW4gYT9hLm1vdmVtZW50WTp4ZH19KSxCZD1yZChBZCksQ2Q9bSh7fSxBZCx7ZGF0YVRyYW5zZmVyOjB9KSxEZD1yZChDZCksRWQ9bSh7fSx1ZCx7cmVsYXRlZFRhcmdldDowfSksRmQ9cmQoRWQpLEdkPW0oe30sc2Qse2FuaW1hdGlvbk5hbWU6MCxlbGFwc2VkVGltZTowLHBzZXVkb0VsZW1lbnQ6MH0pLEhkPXJkKEdkKSxJZD1tKHt9LHNkLHtjbGlwYm9hcmREYXRhOmZ1bmN0aW9uKGEpe3JldHVyblwiY2xpcGJvYXJkRGF0YVwiaW4gYT9hLmNsaXBib2FyZERhdGE6d2luZG93LmNsaXBib2FyZERhdGF9fSksSmQ9cmQoSWQpLEtkPW0oe30sc2Qse2RhdGE6MH0pLExkPXJkKEtkKSxNZD17RXNjOlwiRXNjYXBlXCIsXG5TcGFjZWJhcjpcIiBcIixMZWZ0OlwiQXJyb3dMZWZ0XCIsVXA6XCJBcnJvd1VwXCIsUmlnaHQ6XCJBcnJvd1JpZ2h0XCIsRG93bjpcIkFycm93RG93blwiLERlbDpcIkRlbGV0ZVwiLFdpbjpcIk9TXCIsTWVudTpcIkNvbnRleHRNZW51XCIsQXBwczpcIkNvbnRleHRNZW51XCIsU2Nyb2xsOlwiU2Nyb2xsTG9ja1wiLE1velByaW50YWJsZUtleTpcIlVuaWRlbnRpZmllZFwifSxOZD17ODpcIkJhY2tzcGFjZVwiLDk6XCJUYWJcIiwxMjpcIkNsZWFyXCIsMTM6XCJFbnRlclwiLDE2OlwiU2hpZnRcIiwxNzpcIkNvbnRyb2xcIiwxODpcIkFsdFwiLDE5OlwiUGF1c2VcIiwyMDpcIkNhcHNMb2NrXCIsMjc6XCJFc2NhcGVcIiwzMjpcIiBcIiwzMzpcIlBhZ2VVcFwiLDM0OlwiUGFnZURvd25cIiwzNTpcIkVuZFwiLDM2OlwiSG9tZVwiLDM3OlwiQXJyb3dMZWZ0XCIsMzg6XCJBcnJvd1VwXCIsMzk6XCJBcnJvd1JpZ2h0XCIsNDA6XCJBcnJvd0Rvd25cIiw0NTpcIkluc2VydFwiLDQ2OlwiRGVsZXRlXCIsMTEyOlwiRjFcIiwxMTM6XCJGMlwiLDExNDpcIkYzXCIsMTE1OlwiRjRcIiwxMTY6XCJGNVwiLDExNzpcIkY2XCIsMTE4OlwiRjdcIixcbjExOTpcIkY4XCIsMTIwOlwiRjlcIiwxMjE6XCJGMTBcIiwxMjI6XCJGMTFcIiwxMjM6XCJGMTJcIiwxNDQ6XCJOdW1Mb2NrXCIsMTQ1OlwiU2Nyb2xsTG9ja1wiLDIyNDpcIk1ldGFcIn0sT2Q9e0FsdDpcImFsdEtleVwiLENvbnRyb2w6XCJjdHJsS2V5XCIsTWV0YTpcIm1ldGFLZXlcIixTaGlmdDpcInNoaWZ0S2V5XCJ9O2Z1bmN0aW9uIFBkKGEpe3ZhciBiPXRoaXMubmF0aXZlRXZlbnQ7cmV0dXJuIGIuZ2V0TW9kaWZpZXJTdGF0ZT9iLmdldE1vZGlmaWVyU3RhdGUoYSk6KGE9T2RbYV0pPyEhYlthXTohMX1mdW5jdGlvbiB6ZCgpe3JldHVybiBQZH1cbnZhciBRZD1tKHt9LHVkLHtrZXk6ZnVuY3Rpb24oYSl7aWYoYS5rZXkpe3ZhciBiPU1kW2Eua2V5XXx8YS5rZXk7aWYoXCJVbmlkZW50aWZpZWRcIiE9PWIpcmV0dXJuIGJ9cmV0dXJuXCJrZXlwcmVzc1wiPT09YS50eXBlPyhhPW9kKGEpLDEzPT09YT9cIkVudGVyXCI6U3RyaW5nLmZyb21DaGFyQ29kZShhKSk6XCJrZXlkb3duXCI9PT1hLnR5cGV8fFwia2V5dXBcIj09PWEudHlwZT9OZFthLmtleUNvZGVdfHxcIlVuaWRlbnRpZmllZFwiOlwiXCJ9LGNvZGU6MCxsb2NhdGlvbjowLGN0cmxLZXk6MCxzaGlmdEtleTowLGFsdEtleTowLG1ldGFLZXk6MCxyZXBlYXQ6MCxsb2NhbGU6MCxnZXRNb2RpZmllclN0YXRlOnpkLGNoYXJDb2RlOmZ1bmN0aW9uKGEpe3JldHVyblwia2V5cHJlc3NcIj09PWEudHlwZT9vZChhKTowfSxrZXlDb2RlOmZ1bmN0aW9uKGEpe3JldHVyblwia2V5ZG93blwiPT09YS50eXBlfHxcImtleXVwXCI9PT1hLnR5cGU/YS5rZXlDb2RlOjB9LHdoaWNoOmZ1bmN0aW9uKGEpe3JldHVyblwia2V5cHJlc3NcIj09PVxuYS50eXBlP29kKGEpOlwia2V5ZG93blwiPT09YS50eXBlfHxcImtleXVwXCI9PT1hLnR5cGU/YS5rZXlDb2RlOjB9fSksUmQ9cmQoUWQpLFNkPW0oe30sQWQse3BvaW50ZXJJZDowLHdpZHRoOjAsaGVpZ2h0OjAscHJlc3N1cmU6MCx0YW5nZW50aWFsUHJlc3N1cmU6MCx0aWx0WDowLHRpbHRZOjAsdHdpc3Q6MCxwb2ludGVyVHlwZTowLGlzUHJpbWFyeTowfSksVGQ9cmQoU2QpLFVkPW0oe30sdWQse3RvdWNoZXM6MCx0YXJnZXRUb3VjaGVzOjAsY2hhbmdlZFRvdWNoZXM6MCxhbHRLZXk6MCxtZXRhS2V5OjAsY3RybEtleTowLHNoaWZ0S2V5OjAsZ2V0TW9kaWZpZXJTdGF0ZTp6ZH0pLFZkPXJkKFVkKSxXZD1tKHt9LHNkLHtwcm9wZXJ0eU5hbWU6MCxlbGFwc2VkVGltZTowLHBzZXVkb0VsZW1lbnQ6MH0pLFhkPXJkKFdkKSxZZD1tKHt9LEFkLHtkZWx0YVg6ZnVuY3Rpb24oYSl7cmV0dXJuXCJkZWx0YVhcImluIGE/YS5kZWx0YVg6XCJ3aGVlbERlbHRhWFwiaW4gYT8tYS53aGVlbERlbHRhWDowfSxcbmRlbHRhWTpmdW5jdGlvbihhKXtyZXR1cm5cImRlbHRhWVwiaW4gYT9hLmRlbHRhWTpcIndoZWVsRGVsdGFZXCJpbiBhPy1hLndoZWVsRGVsdGFZOlwid2hlZWxEZWx0YVwiaW4gYT8tYS53aGVlbERlbHRhOjB9LGRlbHRhWjowLGRlbHRhTW9kZTowfSksWmQ9cmQoWWQpLCRkPVs5LDEzLDI3LDMyXSxhZT1mYSYmXCJDb21wb3NpdGlvbkV2ZW50XCJpbiB3aW5kb3csYmU9bnVsbDtmYSYmXCJkb2N1bWVudE1vZGVcImluIGRvY3VtZW50JiYoYmU9ZG9jdW1lbnQuZG9jdW1lbnRNb2RlKTt2YXIgY2U9ZmEmJlwiVGV4dEV2ZW50XCJpbiB3aW5kb3cmJiFiZSxkZT1mYSYmKCFhZXx8YmUmJjg8YmUmJjExPj1iZSksZWU9U3RyaW5nLmZyb21DaGFyQ29kZSgzMiksZmU9ITE7XG5mdW5jdGlvbiBnZShhLGIpe3N3aXRjaChhKXtjYXNlIFwia2V5dXBcIjpyZXR1cm4tMSE9PSRkLmluZGV4T2YoYi5rZXlDb2RlKTtjYXNlIFwia2V5ZG93blwiOnJldHVybiAyMjkhPT1iLmtleUNvZGU7Y2FzZSBcImtleXByZXNzXCI6Y2FzZSBcIm1vdXNlZG93blwiOmNhc2UgXCJmb2N1c291dFwiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIGhlKGEpe2E9YS5kZXRhaWw7cmV0dXJuXCJvYmplY3RcIj09PXR5cGVvZiBhJiZcImRhdGFcImluIGE/YS5kYXRhOm51bGx9dmFyIGllPSExO2Z1bmN0aW9uIGplKGEsYil7c3dpdGNoKGEpe2Nhc2UgXCJjb21wb3NpdGlvbmVuZFwiOnJldHVybiBoZShiKTtjYXNlIFwia2V5cHJlc3NcIjppZigzMiE9PWIud2hpY2gpcmV0dXJuIG51bGw7ZmU9ITA7cmV0dXJuIGVlO2Nhc2UgXCJ0ZXh0SW5wdXRcIjpyZXR1cm4gYT1iLmRhdGEsYT09PWVlJiZmZT9udWxsOmE7ZGVmYXVsdDpyZXR1cm4gbnVsbH19XG5mdW5jdGlvbiBrZShhLGIpe2lmKGllKXJldHVyblwiY29tcG9zaXRpb25lbmRcIj09PWF8fCFhZSYmZ2UoYSxiKT8oYT1uZCgpLG1kPWxkPWtkPW51bGwsaWU9ITEsYSk6bnVsbDtzd2l0Y2goYSl7Y2FzZSBcInBhc3RlXCI6cmV0dXJuIG51bGw7Y2FzZSBcImtleXByZXNzXCI6aWYoIShiLmN0cmxLZXl8fGIuYWx0S2V5fHxiLm1ldGFLZXkpfHxiLmN0cmxLZXkmJmIuYWx0S2V5KXtpZihiLmNoYXImJjE8Yi5jaGFyLmxlbmd0aClyZXR1cm4gYi5jaGFyO2lmKGIud2hpY2gpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoYi53aGljaCl9cmV0dXJuIG51bGw7Y2FzZSBcImNvbXBvc2l0aW9uZW5kXCI6cmV0dXJuIGRlJiZcImtvXCIhPT1iLmxvY2FsZT9udWxsOmIuZGF0YTtkZWZhdWx0OnJldHVybiBudWxsfX1cbnZhciBsZT17Y29sb3I6ITAsZGF0ZTohMCxkYXRldGltZTohMCxcImRhdGV0aW1lLWxvY2FsXCI6ITAsZW1haWw6ITAsbW9udGg6ITAsbnVtYmVyOiEwLHBhc3N3b3JkOiEwLHJhbmdlOiEwLHNlYXJjaDohMCx0ZWw6ITAsdGV4dDohMCx0aW1lOiEwLHVybDohMCx3ZWVrOiEwfTtmdW5jdGlvbiBtZShhKXt2YXIgYj1hJiZhLm5vZGVOYW1lJiZhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuXCJpbnB1dFwiPT09Yj8hIWxlW2EudHlwZV06XCJ0ZXh0YXJlYVwiPT09Yj8hMDohMX1mdW5jdGlvbiBuZShhLGIsYyxkKXtFYihkKTtiPW9lKGIsXCJvbkNoYW5nZVwiKTswPGIubGVuZ3RoJiYoYz1uZXcgdGQoXCJvbkNoYW5nZVwiLFwiY2hhbmdlXCIsbnVsbCxjLGQpLGEucHVzaCh7ZXZlbnQ6YyxsaXN0ZW5lcnM6Yn0pKX12YXIgcGU9bnVsbCxxZT1udWxsO2Z1bmN0aW9uIHJlKGEpe3NlKGEsMCl9ZnVuY3Rpb24gdGUoYSl7dmFyIGI9dWUoYSk7aWYoV2EoYikpcmV0dXJuIGF9XG5mdW5jdGlvbiB2ZShhLGIpe2lmKFwiY2hhbmdlXCI9PT1hKXJldHVybiBifXZhciB3ZT0hMTtpZihmYSl7dmFyIHhlO2lmKGZhKXt2YXIgeWU9XCJvbmlucHV0XCJpbiBkb2N1bWVudDtpZigheWUpe3ZhciB6ZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO3plLnNldEF0dHJpYnV0ZShcIm9uaW5wdXRcIixcInJldHVybjtcIik7eWU9XCJmdW5jdGlvblwiPT09dHlwZW9mIHplLm9uaW5wdXR9eGU9eWV9ZWxzZSB4ZT0hMTt3ZT14ZSYmKCFkb2N1bWVudC5kb2N1bWVudE1vZGV8fDk8ZG9jdW1lbnQuZG9jdW1lbnRNb2RlKX1mdW5jdGlvbiBBZSgpe3BlJiYocGUuZGV0YWNoRXZlbnQoXCJvbnByb3BlcnR5Y2hhbmdlXCIsQmUpLHFlPXBlPW51bGwpfWZ1bmN0aW9uIEJlKGEpe2lmKFwidmFsdWVcIj09PWEucHJvcGVydHlOYW1lJiZ0ZShxZSkpe3ZhciBiPVtdO25lKGIscWUsYSx4YihhKSk7YT1yZTtpZihLYilhKGIpO2Vsc2V7S2I9ITA7dHJ5e0diKGEsYil9ZmluYWxseXtLYj0hMSxNYigpfX19fVxuZnVuY3Rpb24gQ2UoYSxiLGMpe1wiZm9jdXNpblwiPT09YT8oQWUoKSxwZT1iLHFlPWMscGUuYXR0YWNoRXZlbnQoXCJvbnByb3BlcnR5Y2hhbmdlXCIsQmUpKTpcImZvY3Vzb3V0XCI9PT1hJiZBZSgpfWZ1bmN0aW9uIERlKGEpe2lmKFwic2VsZWN0aW9uY2hhbmdlXCI9PT1hfHxcImtleXVwXCI9PT1hfHxcImtleWRvd25cIj09PWEpcmV0dXJuIHRlKHFlKX1mdW5jdGlvbiBFZShhLGIpe2lmKFwiY2xpY2tcIj09PWEpcmV0dXJuIHRlKGIpfWZ1bmN0aW9uIEZlKGEsYil7aWYoXCJpbnB1dFwiPT09YXx8XCJjaGFuZ2VcIj09PWEpcmV0dXJuIHRlKGIpfWZ1bmN0aW9uIEdlKGEsYil7cmV0dXJuIGE9PT1iJiYoMCE9PWF8fDEvYT09PTEvYil8fGEhPT1hJiZiIT09Yn12YXIgSGU9XCJmdW5jdGlvblwiPT09dHlwZW9mIE9iamVjdC5pcz9PYmplY3QuaXM6R2UsSWU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbmZ1bmN0aW9uIEplKGEsYil7aWYoSGUoYSxiKSlyZXR1cm4hMDtpZihcIm9iamVjdFwiIT09dHlwZW9mIGF8fG51bGw9PT1hfHxcIm9iamVjdFwiIT09dHlwZW9mIGJ8fG51bGw9PT1iKXJldHVybiExO3ZhciBjPU9iamVjdC5rZXlzKGEpLGQ9T2JqZWN0LmtleXMoYik7aWYoYy5sZW5ndGghPT1kLmxlbmd0aClyZXR1cm4hMTtmb3IoZD0wO2Q8Yy5sZW5ndGg7ZCsrKWlmKCFJZS5jYWxsKGIsY1tkXSl8fCFIZShhW2NbZF1dLGJbY1tkXV0pKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIEtlKGEpe2Zvcig7YSYmYS5maXJzdENoaWxkOylhPWEuZmlyc3RDaGlsZDtyZXR1cm4gYX1cbmZ1bmN0aW9uIExlKGEsYil7dmFyIGM9S2UoYSk7YT0wO2Zvcih2YXIgZDtjOyl7aWYoMz09PWMubm9kZVR5cGUpe2Q9YStjLnRleHRDb250ZW50Lmxlbmd0aDtpZihhPD1iJiZkPj1iKXJldHVybntub2RlOmMsb2Zmc2V0OmItYX07YT1kfWE6e2Zvcig7Yzspe2lmKGMubmV4dFNpYmxpbmcpe2M9Yy5uZXh0U2libGluZzticmVhayBhfWM9Yy5wYXJlbnROb2RlfWM9dm9pZCAwfWM9S2UoYyl9fWZ1bmN0aW9uIE1lKGEsYil7cmV0dXJuIGEmJmI/YT09PWI/ITA6YSYmMz09PWEubm9kZVR5cGU/ITE6YiYmMz09PWIubm9kZVR5cGU/TWUoYSxiLnBhcmVudE5vZGUpOlwiY29udGFpbnNcImluIGE/YS5jb250YWlucyhiKTphLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uPyEhKGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYikmMTYpOiExOiExfVxuZnVuY3Rpb24gTmUoKXtmb3IodmFyIGE9d2luZG93LGI9WGEoKTtiIGluc3RhbmNlb2YgYS5IVE1MSUZyYW1lRWxlbWVudDspe3RyeXt2YXIgYz1cInN0cmluZ1wiPT09dHlwZW9mIGIuY29udGVudFdpbmRvdy5sb2NhdGlvbi5ocmVmfWNhdGNoKGQpe2M9ITF9aWYoYylhPWIuY29udGVudFdpbmRvdztlbHNlIGJyZWFrO2I9WGEoYS5kb2N1bWVudCl9cmV0dXJuIGJ9ZnVuY3Rpb24gT2UoYSl7dmFyIGI9YSYmYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiBiJiYoXCJpbnB1dFwiPT09YiYmKFwidGV4dFwiPT09YS50eXBlfHxcInNlYXJjaFwiPT09YS50eXBlfHxcInRlbFwiPT09YS50eXBlfHxcInVybFwiPT09YS50eXBlfHxcInBhc3N3b3JkXCI9PT1hLnR5cGUpfHxcInRleHRhcmVhXCI9PT1ifHxcInRydWVcIj09PWEuY29udGVudEVkaXRhYmxlKX1cbnZhciBQZT1mYSYmXCJkb2N1bWVudE1vZGVcImluIGRvY3VtZW50JiYxMT49ZG9jdW1lbnQuZG9jdW1lbnRNb2RlLFFlPW51bGwsUmU9bnVsbCxTZT1udWxsLFRlPSExO1xuZnVuY3Rpb24gVWUoYSxiLGMpe3ZhciBkPWMud2luZG93PT09Yz9jLmRvY3VtZW50Ojk9PT1jLm5vZGVUeXBlP2M6Yy5vd25lckRvY3VtZW50O1RlfHxudWxsPT1RZXx8UWUhPT1YYShkKXx8KGQ9UWUsXCJzZWxlY3Rpb25TdGFydFwiaW4gZCYmT2UoZCk/ZD17c3RhcnQ6ZC5zZWxlY3Rpb25TdGFydCxlbmQ6ZC5zZWxlY3Rpb25FbmR9OihkPShkLm93bmVyRG9jdW1lbnQmJmQub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8d2luZG93KS5nZXRTZWxlY3Rpb24oKSxkPXthbmNob3JOb2RlOmQuYW5jaG9yTm9kZSxhbmNob3JPZmZzZXQ6ZC5hbmNob3JPZmZzZXQsZm9jdXNOb2RlOmQuZm9jdXNOb2RlLGZvY3VzT2Zmc2V0OmQuZm9jdXNPZmZzZXR9KSxTZSYmSmUoU2UsZCl8fChTZT1kLGQ9b2UoUmUsXCJvblNlbGVjdFwiKSwwPGQubGVuZ3RoJiYoYj1uZXcgdGQoXCJvblNlbGVjdFwiLFwic2VsZWN0XCIsbnVsbCxiLGMpLGEucHVzaCh7ZXZlbnQ6YixsaXN0ZW5lcnM6ZH0pLGIudGFyZ2V0PVFlKSkpfVxuUGMoXCJjYW5jZWwgY2FuY2VsIGNsaWNrIGNsaWNrIGNsb3NlIGNsb3NlIGNvbnRleHRtZW51IGNvbnRleHRNZW51IGNvcHkgY29weSBjdXQgY3V0IGF1eGNsaWNrIGF1eENsaWNrIGRibGNsaWNrIGRvdWJsZUNsaWNrIGRyYWdlbmQgZHJhZ0VuZCBkcmFnc3RhcnQgZHJhZ1N0YXJ0IGRyb3AgZHJvcCBmb2N1c2luIGZvY3VzIGZvY3Vzb3V0IGJsdXIgaW5wdXQgaW5wdXQgaW52YWxpZCBpbnZhbGlkIGtleWRvd24ga2V5RG93biBrZXlwcmVzcyBrZXlQcmVzcyBrZXl1cCBrZXlVcCBtb3VzZWRvd24gbW91c2VEb3duIG1vdXNldXAgbW91c2VVcCBwYXN0ZSBwYXN0ZSBwYXVzZSBwYXVzZSBwbGF5IHBsYXkgcG9pbnRlcmNhbmNlbCBwb2ludGVyQ2FuY2VsIHBvaW50ZXJkb3duIHBvaW50ZXJEb3duIHBvaW50ZXJ1cCBwb2ludGVyVXAgcmF0ZWNoYW5nZSByYXRlQ2hhbmdlIHJlc2V0IHJlc2V0IHNlZWtlZCBzZWVrZWQgc3VibWl0IHN1Ym1pdCB0b3VjaGNhbmNlbCB0b3VjaENhbmNlbCB0b3VjaGVuZCB0b3VjaEVuZCB0b3VjaHN0YXJ0IHRvdWNoU3RhcnQgdm9sdW1lY2hhbmdlIHZvbHVtZUNoYW5nZVwiLnNwbGl0KFwiIFwiKSxcbjApO1BjKFwiZHJhZyBkcmFnIGRyYWdlbnRlciBkcmFnRW50ZXIgZHJhZ2V4aXQgZHJhZ0V4aXQgZHJhZ2xlYXZlIGRyYWdMZWF2ZSBkcmFnb3ZlciBkcmFnT3ZlciBtb3VzZW1vdmUgbW91c2VNb3ZlIG1vdXNlb3V0IG1vdXNlT3V0IG1vdXNlb3ZlciBtb3VzZU92ZXIgcG9pbnRlcm1vdmUgcG9pbnRlck1vdmUgcG9pbnRlcm91dCBwb2ludGVyT3V0IHBvaW50ZXJvdmVyIHBvaW50ZXJPdmVyIHNjcm9sbCBzY3JvbGwgdG9nZ2xlIHRvZ2dsZSB0b3VjaG1vdmUgdG91Y2hNb3ZlIHdoZWVsIHdoZWVsXCIuc3BsaXQoXCIgXCIpLDEpO1BjKE9jLDIpO2Zvcih2YXIgVmU9XCJjaGFuZ2Ugc2VsZWN0aW9uY2hhbmdlIHRleHRJbnB1dCBjb21wb3NpdGlvbnN0YXJ0IGNvbXBvc2l0aW9uZW5kIGNvbXBvc2l0aW9udXBkYXRlXCIuc3BsaXQoXCIgXCIpLFdlPTA7V2U8VmUubGVuZ3RoO1dlKyspTmMuc2V0KFZlW1dlXSwwKTtlYShcIm9uTW91c2VFbnRlclwiLFtcIm1vdXNlb3V0XCIsXCJtb3VzZW92ZXJcIl0pO1xuZWEoXCJvbk1vdXNlTGVhdmVcIixbXCJtb3VzZW91dFwiLFwibW91c2VvdmVyXCJdKTtlYShcIm9uUG9pbnRlckVudGVyXCIsW1wicG9pbnRlcm91dFwiLFwicG9pbnRlcm92ZXJcIl0pO2VhKFwib25Qb2ludGVyTGVhdmVcIixbXCJwb2ludGVyb3V0XCIsXCJwb2ludGVyb3ZlclwiXSk7ZGEoXCJvbkNoYW5nZVwiLFwiY2hhbmdlIGNsaWNrIGZvY3VzaW4gZm9jdXNvdXQgaW5wdXQga2V5ZG93biBrZXl1cCBzZWxlY3Rpb25jaGFuZ2VcIi5zcGxpdChcIiBcIikpO2RhKFwib25TZWxlY3RcIixcImZvY3Vzb3V0IGNvbnRleHRtZW51IGRyYWdlbmQgZm9jdXNpbiBrZXlkb3duIGtleXVwIG1vdXNlZG93biBtb3VzZXVwIHNlbGVjdGlvbmNoYW5nZVwiLnNwbGl0KFwiIFwiKSk7ZGEoXCJvbkJlZm9yZUlucHV0XCIsW1wiY29tcG9zaXRpb25lbmRcIixcImtleXByZXNzXCIsXCJ0ZXh0SW5wdXRcIixcInBhc3RlXCJdKTtkYShcIm9uQ29tcG9zaXRpb25FbmRcIixcImNvbXBvc2l0aW9uZW5kIGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duXCIuc3BsaXQoXCIgXCIpKTtcbmRhKFwib25Db21wb3NpdGlvblN0YXJ0XCIsXCJjb21wb3NpdGlvbnN0YXJ0IGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duXCIuc3BsaXQoXCIgXCIpKTtkYShcIm9uQ29tcG9zaXRpb25VcGRhdGVcIixcImNvbXBvc2l0aW9udXBkYXRlIGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duXCIuc3BsaXQoXCIgXCIpKTt2YXIgWGU9XCJhYm9ydCBjYW5wbGF5IGNhbnBsYXl0aHJvdWdoIGR1cmF0aW9uY2hhbmdlIGVtcHRpZWQgZW5jcnlwdGVkIGVuZGVkIGVycm9yIGxvYWRlZGRhdGEgbG9hZGVkbWV0YWRhdGEgbG9hZHN0YXJ0IHBhdXNlIHBsYXkgcGxheWluZyBwcm9ncmVzcyByYXRlY2hhbmdlIHNlZWtlZCBzZWVraW5nIHN0YWxsZWQgc3VzcGVuZCB0aW1ldXBkYXRlIHZvbHVtZWNoYW5nZSB3YWl0aW5nXCIuc3BsaXQoXCIgXCIpLFllPW5ldyBTZXQoXCJjYW5jZWwgY2xvc2UgaW52YWxpZCBsb2FkIHNjcm9sbCB0b2dnbGVcIi5zcGxpdChcIiBcIikuY29uY2F0KFhlKSk7XG5mdW5jdGlvbiBaZShhLGIsYyl7dmFyIGQ9YS50eXBlfHxcInVua25vd24tZXZlbnRcIjthLmN1cnJlbnRUYXJnZXQ9YztZYihkLGIsdm9pZCAwLGEpO2EuY3VycmVudFRhcmdldD1udWxsfVxuZnVuY3Rpb24gc2UoYSxiKXtiPTAhPT0oYiY0KTtmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKyl7dmFyIGQ9YVtjXSxlPWQuZXZlbnQ7ZD1kLmxpc3RlbmVyczthOnt2YXIgZj12b2lkIDA7aWYoYilmb3IodmFyIGc9ZC5sZW5ndGgtMTswPD1nO2ctLSl7dmFyIGg9ZFtnXSxrPWguaW5zdGFuY2UsbD1oLmN1cnJlbnRUYXJnZXQ7aD1oLmxpc3RlbmVyO2lmKGshPT1mJiZlLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYnJlYWsgYTtaZShlLGgsbCk7Zj1rfWVsc2UgZm9yKGc9MDtnPGQubGVuZ3RoO2crKyl7aD1kW2ddO2s9aC5pbnN0YW5jZTtsPWguY3VycmVudFRhcmdldDtoPWgubGlzdGVuZXI7aWYoayE9PWYmJmUuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSlicmVhayBhO1plKGUsaCxsKTtmPWt9fX1pZihVYil0aHJvdyBhPVZiLFViPSExLFZiPW51bGwsYTt9XG5mdW5jdGlvbiBHKGEsYil7dmFyIGM9JGUoYiksZD1hK1wiX19idWJibGVcIjtjLmhhcyhkKXx8KGFmKGIsYSwyLCExKSxjLmFkZChkKSl9dmFyIGJmPVwiX3JlYWN0TGlzdGVuaW5nXCIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMik7ZnVuY3Rpb24gY2YoYSl7YVtiZl18fChhW2JmXT0hMCxiYS5mb3JFYWNoKGZ1bmN0aW9uKGIpe1llLmhhcyhiKXx8ZGYoYiwhMSxhLG51bGwpO2RmKGIsITAsYSxudWxsKX0pKX1cbmZ1bmN0aW9uIGRmKGEsYixjLGQpe3ZhciBlPTQ8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzRdP2FyZ3VtZW50c1s0XTowLGY9YztcInNlbGVjdGlvbmNoYW5nZVwiPT09YSYmOSE9PWMubm9kZVR5cGUmJihmPWMub3duZXJEb2N1bWVudCk7aWYobnVsbCE9PWQmJiFiJiZZZS5oYXMoYSkpe2lmKFwic2Nyb2xsXCIhPT1hKXJldHVybjtlfD0yO2Y9ZH12YXIgZz0kZShmKSxoPWErXCJfX1wiKyhiP1wiY2FwdHVyZVwiOlwiYnViYmxlXCIpO2cuaGFzKGgpfHwoYiYmKGV8PTQpLGFmKGYsYSxlLGIpLGcuYWRkKGgpKX1cbmZ1bmN0aW9uIGFmKGEsYixjLGQpe3ZhciBlPU5jLmdldChiKTtzd2l0Y2godm9pZCAwPT09ZT8yOmUpe2Nhc2UgMDplPWdkO2JyZWFrO2Nhc2UgMTplPWlkO2JyZWFrO2RlZmF1bHQ6ZT1oZH1jPWUuYmluZChudWxsLGIsYyxhKTtlPXZvaWQgMDshUGJ8fFwidG91Y2hzdGFydFwiIT09YiYmXCJ0b3VjaG1vdmVcIiE9PWImJlwid2hlZWxcIiE9PWJ8fChlPSEwKTtkP3ZvaWQgMCE9PWU/YS5hZGRFdmVudExpc3RlbmVyKGIsYyx7Y2FwdHVyZTohMCxwYXNzaXZlOmV9KTphLmFkZEV2ZW50TGlzdGVuZXIoYixjLCEwKTp2b2lkIDAhPT1lP2EuYWRkRXZlbnRMaXN0ZW5lcihiLGMse3Bhc3NpdmU6ZX0pOmEuYWRkRXZlbnRMaXN0ZW5lcihiLGMsITEpfVxuZnVuY3Rpb24gamQoYSxiLGMsZCxlKXt2YXIgZj1kO2lmKDA9PT0oYiYxKSYmMD09PShiJjIpJiZudWxsIT09ZClhOmZvcig7Oyl7aWYobnVsbD09PWQpcmV0dXJuO3ZhciBnPWQudGFnO2lmKDM9PT1nfHw0PT09Zyl7dmFyIGg9ZC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbztpZihoPT09ZXx8OD09PWgubm9kZVR5cGUmJmgucGFyZW50Tm9kZT09PWUpYnJlYWs7aWYoND09PWcpZm9yKGc9ZC5yZXR1cm47bnVsbCE9PWc7KXt2YXIgaz1nLnRhZztpZigzPT09a3x8ND09PWspaWYoaz1nLnN0YXRlTm9kZS5jb250YWluZXJJbmZvLGs9PT1lfHw4PT09ay5ub2RlVHlwZSYmay5wYXJlbnROb2RlPT09ZSlyZXR1cm47Zz1nLnJldHVybn1mb3IoO251bGwhPT1oOyl7Zz13YyhoKTtpZihudWxsPT09ZylyZXR1cm47az1nLnRhZztpZig1PT09a3x8Nj09PWspe2Q9Zj1nO2NvbnRpbnVlIGF9aD1oLnBhcmVudE5vZGV9fWQ9ZC5yZXR1cm59TmIoZnVuY3Rpb24oKXt2YXIgZD1mLGU9eGIoYyksZz1bXTtcbmE6e3ZhciBoPU1jLmdldChhKTtpZih2b2lkIDAhPT1oKXt2YXIgaz10ZCx4PWE7c3dpdGNoKGEpe2Nhc2UgXCJrZXlwcmVzc1wiOmlmKDA9PT1vZChjKSlicmVhayBhO2Nhc2UgXCJrZXlkb3duXCI6Y2FzZSBcImtleXVwXCI6az1SZDticmVhaztjYXNlIFwiZm9jdXNpblwiOng9XCJmb2N1c1wiO2s9RmQ7YnJlYWs7Y2FzZSBcImZvY3Vzb3V0XCI6eD1cImJsdXJcIjtrPUZkO2JyZWFrO2Nhc2UgXCJiZWZvcmVibHVyXCI6Y2FzZSBcImFmdGVyYmx1clwiOms9RmQ7YnJlYWs7Y2FzZSBcImNsaWNrXCI6aWYoMj09PWMuYnV0dG9uKWJyZWFrIGE7Y2FzZSBcImF1eGNsaWNrXCI6Y2FzZSBcImRibGNsaWNrXCI6Y2FzZSBcIm1vdXNlZG93blwiOmNhc2UgXCJtb3VzZW1vdmVcIjpjYXNlIFwibW91c2V1cFwiOmNhc2UgXCJtb3VzZW91dFwiOmNhc2UgXCJtb3VzZW92ZXJcIjpjYXNlIFwiY29udGV4dG1lbnVcIjprPUJkO2JyZWFrO2Nhc2UgXCJkcmFnXCI6Y2FzZSBcImRyYWdlbmRcIjpjYXNlIFwiZHJhZ2VudGVyXCI6Y2FzZSBcImRyYWdleGl0XCI6Y2FzZSBcImRyYWdsZWF2ZVwiOmNhc2UgXCJkcmFnb3ZlclwiOmNhc2UgXCJkcmFnc3RhcnRcIjpjYXNlIFwiZHJvcFwiOms9XG5EZDticmVhaztjYXNlIFwidG91Y2hjYW5jZWxcIjpjYXNlIFwidG91Y2hlbmRcIjpjYXNlIFwidG91Y2htb3ZlXCI6Y2FzZSBcInRvdWNoc3RhcnRcIjprPVZkO2JyZWFrO2Nhc2UgSWM6Y2FzZSBKYzpjYXNlIEtjOms9SGQ7YnJlYWs7Y2FzZSBMYzprPVhkO2JyZWFrO2Nhc2UgXCJzY3JvbGxcIjprPXZkO2JyZWFrO2Nhc2UgXCJ3aGVlbFwiOms9WmQ7YnJlYWs7Y2FzZSBcImNvcHlcIjpjYXNlIFwiY3V0XCI6Y2FzZSBcInBhc3RlXCI6az1KZDticmVhaztjYXNlIFwiZ290cG9pbnRlcmNhcHR1cmVcIjpjYXNlIFwibG9zdHBvaW50ZXJjYXB0dXJlXCI6Y2FzZSBcInBvaW50ZXJjYW5jZWxcIjpjYXNlIFwicG9pbnRlcmRvd25cIjpjYXNlIFwicG9pbnRlcm1vdmVcIjpjYXNlIFwicG9pbnRlcm91dFwiOmNhc2UgXCJwb2ludGVyb3ZlclwiOmNhc2UgXCJwb2ludGVydXBcIjprPVRkfXZhciB3PTAhPT0oYiY0KSx6PSF3JiZcInNjcm9sbFwiPT09YSx1PXc/bnVsbCE9PWg/aCtcIkNhcHR1cmVcIjpudWxsOmg7dz1bXTtmb3IodmFyIHQ9ZCxxO251bGwhPT1cbnQ7KXtxPXQ7dmFyIHY9cS5zdGF0ZU5vZGU7NT09PXEudGFnJiZudWxsIT09diYmKHE9dixudWxsIT09dSYmKHY9T2IodCx1KSxudWxsIT12JiZ3LnB1c2goZWYodCx2LHEpKSkpO2lmKHopYnJlYWs7dD10LnJldHVybn0wPHcubGVuZ3RoJiYoaD1uZXcgayhoLHgsbnVsbCxjLGUpLGcucHVzaCh7ZXZlbnQ6aCxsaXN0ZW5lcnM6d30pKX19aWYoMD09PShiJjcpKXthOntoPVwibW91c2VvdmVyXCI9PT1hfHxcInBvaW50ZXJvdmVyXCI9PT1hO2s9XCJtb3VzZW91dFwiPT09YXx8XCJwb2ludGVyb3V0XCI9PT1hO2lmKGgmJjA9PT0oYiYxNikmJih4PWMucmVsYXRlZFRhcmdldHx8Yy5mcm9tRWxlbWVudCkmJih3Yyh4KXx8eFtmZl0pKWJyZWFrIGE7aWYoa3x8aCl7aD1lLndpbmRvdz09PWU/ZTooaD1lLm93bmVyRG9jdW1lbnQpP2guZGVmYXVsdFZpZXd8fGgucGFyZW50V2luZG93OndpbmRvdztpZihrKXtpZih4PWMucmVsYXRlZFRhcmdldHx8Yy50b0VsZW1lbnQsaz1kLHg9eD93Yyh4KTpudWxsLG51bGwhPT1cbngmJih6PVpiKHgpLHghPT16fHw1IT09eC50YWcmJjYhPT14LnRhZykpeD1udWxsfWVsc2Ugaz1udWxsLHg9ZDtpZihrIT09eCl7dz1CZDt2PVwib25Nb3VzZUxlYXZlXCI7dT1cIm9uTW91c2VFbnRlclwiO3Q9XCJtb3VzZVwiO2lmKFwicG9pbnRlcm91dFwiPT09YXx8XCJwb2ludGVyb3ZlclwiPT09YSl3PVRkLHY9XCJvblBvaW50ZXJMZWF2ZVwiLHU9XCJvblBvaW50ZXJFbnRlclwiLHQ9XCJwb2ludGVyXCI7ej1udWxsPT1rP2g6dWUoayk7cT1udWxsPT14P2g6dWUoeCk7aD1uZXcgdyh2LHQrXCJsZWF2ZVwiLGssYyxlKTtoLnRhcmdldD16O2gucmVsYXRlZFRhcmdldD1xO3Y9bnVsbDt3YyhlKT09PWQmJih3PW5ldyB3KHUsdCtcImVudGVyXCIseCxjLGUpLHcudGFyZ2V0PXEsdy5yZWxhdGVkVGFyZ2V0PXosdj13KTt6PXY7aWYoayYmeCliOnt3PWs7dT14O3Q9MDtmb3IocT13O3E7cT1nZihxKSl0Kys7cT0wO2Zvcih2PXU7djt2PWdmKHYpKXErKztmb3IoOzA8dC1xOyl3PWdmKHcpLHQtLTtmb3IoOzA8cS10Oyl1PVxuZ2YodSkscS0tO2Zvcig7dC0tOyl7aWYodz09PXV8fG51bGwhPT11JiZ3PT09dS5hbHRlcm5hdGUpYnJlYWsgYjt3PWdmKHcpO3U9Z2YodSl9dz1udWxsfWVsc2Ugdz1udWxsO251bGwhPT1rJiZoZihnLGgsayx3LCExKTtudWxsIT09eCYmbnVsbCE9PXomJmhmKGcseix4LHcsITApfX19YTp7aD1kP3VlKGQpOndpbmRvdztrPWgubm9kZU5hbWUmJmgubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtpZihcInNlbGVjdFwiPT09a3x8XCJpbnB1dFwiPT09ayYmXCJmaWxlXCI9PT1oLnR5cGUpdmFyIEo9dmU7ZWxzZSBpZihtZShoKSlpZih3ZSlKPUZlO2Vsc2V7Sj1EZTt2YXIgSz1DZX1lbHNlKGs9aC5ub2RlTmFtZSkmJlwiaW5wdXRcIj09PWsudG9Mb3dlckNhc2UoKSYmKFwiY2hlY2tib3hcIj09PWgudHlwZXx8XCJyYWRpb1wiPT09aC50eXBlKSYmKEo9RWUpO2lmKEomJihKPUooYSxkKSkpe25lKGcsSixjLGUpO2JyZWFrIGF9SyYmSyhhLGgsZCk7XCJmb2N1c291dFwiPT09YSYmKEs9aC5fd3JhcHBlclN0YXRlKSYmXG5LLmNvbnRyb2xsZWQmJlwibnVtYmVyXCI9PT1oLnR5cGUmJmJiKGgsXCJudW1iZXJcIixoLnZhbHVlKX1LPWQ/dWUoZCk6d2luZG93O3N3aXRjaChhKXtjYXNlIFwiZm9jdXNpblwiOmlmKG1lKEspfHxcInRydWVcIj09PUsuY29udGVudEVkaXRhYmxlKVFlPUssUmU9ZCxTZT1udWxsO2JyZWFrO2Nhc2UgXCJmb2N1c291dFwiOlNlPVJlPVFlPW51bGw7YnJlYWs7Y2FzZSBcIm1vdXNlZG93blwiOlRlPSEwO2JyZWFrO2Nhc2UgXCJjb250ZXh0bWVudVwiOmNhc2UgXCJtb3VzZXVwXCI6Y2FzZSBcImRyYWdlbmRcIjpUZT0hMTtVZShnLGMsZSk7YnJlYWs7Y2FzZSBcInNlbGVjdGlvbmNoYW5nZVwiOmlmKFBlKWJyZWFrO2Nhc2UgXCJrZXlkb3duXCI6Y2FzZSBcImtleXVwXCI6VWUoZyxjLGUpfXZhciBRO2lmKGFlKWI6e3N3aXRjaChhKXtjYXNlIFwiY29tcG9zaXRpb25zdGFydFwiOnZhciBMPVwib25Db21wb3NpdGlvblN0YXJ0XCI7YnJlYWsgYjtjYXNlIFwiY29tcG9zaXRpb25lbmRcIjpMPVwib25Db21wb3NpdGlvbkVuZFwiO2JyZWFrIGI7XG5jYXNlIFwiY29tcG9zaXRpb251cGRhdGVcIjpMPVwib25Db21wb3NpdGlvblVwZGF0ZVwiO2JyZWFrIGJ9TD12b2lkIDB9ZWxzZSBpZT9nZShhLGMpJiYoTD1cIm9uQ29tcG9zaXRpb25FbmRcIik6XCJrZXlkb3duXCI9PT1hJiYyMjk9PT1jLmtleUNvZGUmJihMPVwib25Db21wb3NpdGlvblN0YXJ0XCIpO0wmJihkZSYmXCJrb1wiIT09Yy5sb2NhbGUmJihpZXx8XCJvbkNvbXBvc2l0aW9uU3RhcnRcIiE9PUw/XCJvbkNvbXBvc2l0aW9uRW5kXCI9PT1MJiZpZSYmKFE9bmQoKSk6KGtkPWUsbGQ9XCJ2YWx1ZVwiaW4ga2Q/a2QudmFsdWU6a2QudGV4dENvbnRlbnQsaWU9ITApKSxLPW9lKGQsTCksMDxLLmxlbmd0aCYmKEw9bmV3IExkKEwsYSxudWxsLGMsZSksZy5wdXNoKHtldmVudDpMLGxpc3RlbmVyczpLfSksUT9MLmRhdGE9UTooUT1oZShjKSxudWxsIT09USYmKEwuZGF0YT1RKSkpKTtpZihRPWNlP2plKGEsYyk6a2UoYSxjKSlkPW9lKGQsXCJvbkJlZm9yZUlucHV0XCIpLDA8ZC5sZW5ndGgmJihlPW5ldyBMZChcIm9uQmVmb3JlSW5wdXRcIixcblwiYmVmb3JlaW5wdXRcIixudWxsLGMsZSksZy5wdXNoKHtldmVudDplLGxpc3RlbmVyczpkfSksZS5kYXRhPVEpfXNlKGcsYil9KX1mdW5jdGlvbiBlZihhLGIsYyl7cmV0dXJue2luc3RhbmNlOmEsbGlzdGVuZXI6YixjdXJyZW50VGFyZ2V0OmN9fWZ1bmN0aW9uIG9lKGEsYil7Zm9yKHZhciBjPWIrXCJDYXB0dXJlXCIsZD1bXTtudWxsIT09YTspe3ZhciBlPWEsZj1lLnN0YXRlTm9kZTs1PT09ZS50YWcmJm51bGwhPT1mJiYoZT1mLGY9T2IoYSxjKSxudWxsIT1mJiZkLnVuc2hpZnQoZWYoYSxmLGUpKSxmPU9iKGEsYiksbnVsbCE9ZiYmZC5wdXNoKGVmKGEsZixlKSkpO2E9YS5yZXR1cm59cmV0dXJuIGR9ZnVuY3Rpb24gZ2YoYSl7aWYobnVsbD09PWEpcmV0dXJuIG51bGw7ZG8gYT1hLnJldHVybjt3aGlsZShhJiY1IT09YS50YWcpO3JldHVybiBhP2E6bnVsbH1cbmZ1bmN0aW9uIGhmKGEsYixjLGQsZSl7Zm9yKHZhciBmPWIuX3JlYWN0TmFtZSxnPVtdO251bGwhPT1jJiZjIT09ZDspe3ZhciBoPWMsaz1oLmFsdGVybmF0ZSxsPWguc3RhdGVOb2RlO2lmKG51bGwhPT1rJiZrPT09ZClicmVhazs1PT09aC50YWcmJm51bGwhPT1sJiYoaD1sLGU/KGs9T2IoYyxmKSxudWxsIT1rJiZnLnVuc2hpZnQoZWYoYyxrLGgpKSk6ZXx8KGs9T2IoYyxmKSxudWxsIT1rJiZnLnB1c2goZWYoYyxrLGgpKSkpO2M9Yy5yZXR1cm59MCE9PWcubGVuZ3RoJiZhLnB1c2goe2V2ZW50OmIsbGlzdGVuZXJzOmd9KX1mdW5jdGlvbiBqZigpe312YXIga2Y9bnVsbCxsZj1udWxsO2Z1bmN0aW9uIG1mKGEsYil7c3dpdGNoKGEpe2Nhc2UgXCJidXR0b25cIjpjYXNlIFwiaW5wdXRcIjpjYXNlIFwic2VsZWN0XCI6Y2FzZSBcInRleHRhcmVhXCI6cmV0dXJuISFiLmF1dG9Gb2N1c31yZXR1cm4hMX1cbmZ1bmN0aW9uIG5mKGEsYil7cmV0dXJuXCJ0ZXh0YXJlYVwiPT09YXx8XCJvcHRpb25cIj09PWF8fFwibm9zY3JpcHRcIj09PWF8fFwic3RyaW5nXCI9PT10eXBlb2YgYi5jaGlsZHJlbnx8XCJudW1iZXJcIj09PXR5cGVvZiBiLmNoaWxkcmVufHxcIm9iamVjdFwiPT09dHlwZW9mIGIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwmJm51bGwhPT1iLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiZudWxsIT1iLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbH12YXIgb2Y9XCJmdW5jdGlvblwiPT09dHlwZW9mIHNldFRpbWVvdXQ/c2V0VGltZW91dDp2b2lkIDAscGY9XCJmdW5jdGlvblwiPT09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6dm9pZCAwO2Z1bmN0aW9uIHFmKGEpezE9PT1hLm5vZGVUeXBlP2EudGV4dENvbnRlbnQ9XCJcIjo5PT09YS5ub2RlVHlwZSYmKGE9YS5ib2R5LG51bGwhPWEmJihhLnRleHRDb250ZW50PVwiXCIpKX1cbmZ1bmN0aW9uIHJmKGEpe2Zvcig7bnVsbCE9YTthPWEubmV4dFNpYmxpbmcpe3ZhciBiPWEubm9kZVR5cGU7aWYoMT09PWJ8fDM9PT1iKWJyZWFrfXJldHVybiBhfWZ1bmN0aW9uIHNmKGEpe2E9YS5wcmV2aW91c1NpYmxpbmc7Zm9yKHZhciBiPTA7YTspe2lmKDg9PT1hLm5vZGVUeXBlKXt2YXIgYz1hLmRhdGE7aWYoXCIkXCI9PT1jfHxcIiQhXCI9PT1jfHxcIiQ/XCI9PT1jKXtpZigwPT09YilyZXR1cm4gYTtiLS19ZWxzZVwiLyRcIj09PWMmJmIrK31hPWEucHJldmlvdXNTaWJsaW5nfXJldHVybiBudWxsfXZhciB0Zj0wO2Z1bmN0aW9uIHVmKGEpe3JldHVybnskJHR5cGVvZjpHYSx0b1N0cmluZzphLHZhbHVlT2Y6YX19dmFyIHZmPU1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpLHdmPVwiX19yZWFjdEZpYmVyJFwiK3ZmLHhmPVwiX19yZWFjdFByb3BzJFwiK3ZmLGZmPVwiX19yZWFjdENvbnRhaW5lciRcIit2Zix5Zj1cIl9fcmVhY3RFdmVudHMkXCIrdmY7XG5mdW5jdGlvbiB3YyhhKXt2YXIgYj1hW3dmXTtpZihiKXJldHVybiBiO2Zvcih2YXIgYz1hLnBhcmVudE5vZGU7Yzspe2lmKGI9Y1tmZl18fGNbd2ZdKXtjPWIuYWx0ZXJuYXRlO2lmKG51bGwhPT1iLmNoaWxkfHxudWxsIT09YyYmbnVsbCE9PWMuY2hpbGQpZm9yKGE9c2YoYSk7bnVsbCE9PWE7KXtpZihjPWFbd2ZdKXJldHVybiBjO2E9c2YoYSl9cmV0dXJuIGJ9YT1jO2M9YS5wYXJlbnROb2RlfXJldHVybiBudWxsfWZ1bmN0aW9uIENiKGEpe2E9YVt3Zl18fGFbZmZdO3JldHVybiFhfHw1IT09YS50YWcmJjYhPT1hLnRhZyYmMTMhPT1hLnRhZyYmMyE9PWEudGFnP251bGw6YX1mdW5jdGlvbiB1ZShhKXtpZig1PT09YS50YWd8fDY9PT1hLnRhZylyZXR1cm4gYS5zdGF0ZU5vZGU7dGhyb3cgRXJyb3IoeSgzMykpO31mdW5jdGlvbiBEYihhKXtyZXR1cm4gYVt4Zl18fG51bGx9XG5mdW5jdGlvbiAkZShhKXt2YXIgYj1hW3lmXTt2b2lkIDA9PT1iJiYoYj1hW3lmXT1uZXcgU2V0KTtyZXR1cm4gYn12YXIgemY9W10sQWY9LTE7ZnVuY3Rpb24gQmYoYSl7cmV0dXJue2N1cnJlbnQ6YX19ZnVuY3Rpb24gSChhKXswPkFmfHwoYS5jdXJyZW50PXpmW0FmXSx6ZltBZl09bnVsbCxBZi0tKX1mdW5jdGlvbiBJKGEsYil7QWYrKzt6ZltBZl09YS5jdXJyZW50O2EuY3VycmVudD1ifXZhciBDZj17fSxNPUJmKENmKSxOPUJmKCExKSxEZj1DZjtcbmZ1bmN0aW9uIEVmKGEsYil7dmFyIGM9YS50eXBlLmNvbnRleHRUeXBlcztpZighYylyZXR1cm4gQ2Y7dmFyIGQ9YS5zdGF0ZU5vZGU7aWYoZCYmZC5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZFVubWFza2VkQ2hpbGRDb250ZXh0PT09YilyZXR1cm4gZC5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dDt2YXIgZT17fSxmO2ZvcihmIGluIGMpZVtmXT1iW2ZdO2QmJihhPWEuc3RhdGVOb2RlLGEuX19yZWFjdEludGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dD1iLGEuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNYXNrZWRDaGlsZENvbnRleHQ9ZSk7cmV0dXJuIGV9ZnVuY3Rpb24gRmYoYSl7YT1hLmNoaWxkQ29udGV4dFR5cGVzO3JldHVybiBudWxsIT09YSYmdm9pZCAwIT09YX1mdW5jdGlvbiBHZigpe0goTik7SChNKX1mdW5jdGlvbiBIZihhLGIsYyl7aWYoTS5jdXJyZW50IT09Q2YpdGhyb3cgRXJyb3IoeSgxNjgpKTtJKE0sYik7SShOLGMpfVxuZnVuY3Rpb24gSWYoYSxiLGMpe3ZhciBkPWEuc3RhdGVOb2RlO2E9Yi5jaGlsZENvbnRleHRUeXBlcztpZihcImZ1bmN0aW9uXCIhPT10eXBlb2YgZC5nZXRDaGlsZENvbnRleHQpcmV0dXJuIGM7ZD1kLmdldENoaWxkQ29udGV4dCgpO2Zvcih2YXIgZSBpbiBkKWlmKCEoZSBpbiBhKSl0aHJvdyBFcnJvcih5KDEwOCxSYShiKXx8XCJVbmtub3duXCIsZSkpO3JldHVybiBtKHt9LGMsZCl9ZnVuY3Rpb24gSmYoYSl7YT0oYT1hLnN0YXRlTm9kZSkmJmEuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHR8fENmO0RmPU0uY3VycmVudDtJKE0sYSk7SShOLE4uY3VycmVudCk7cmV0dXJuITB9ZnVuY3Rpb24gS2YoYSxiLGMpe3ZhciBkPWEuc3RhdGVOb2RlO2lmKCFkKXRocm93IEVycm9yKHkoMTY5KSk7Yz8oYT1JZihhLGIsRGYpLGQuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHQ9YSxIKE4pLEgoTSksSShNLGEpKTpIKE4pO0koTixjKX1cbnZhciBMZj1udWxsLE1mPW51bGwsTmY9ci51bnN0YWJsZV9ydW5XaXRoUHJpb3JpdHksT2Y9ci51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrLFBmPXIudW5zdGFibGVfY2FuY2VsQ2FsbGJhY2ssUWY9ci51bnN0YWJsZV9zaG91bGRZaWVsZCxSZj1yLnVuc3RhYmxlX3JlcXVlc3RQYWludCxTZj1yLnVuc3RhYmxlX25vdyxUZj1yLnVuc3RhYmxlX2dldEN1cnJlbnRQcmlvcml0eUxldmVsLFVmPXIudW5zdGFibGVfSW1tZWRpYXRlUHJpb3JpdHksVmY9ci51bnN0YWJsZV9Vc2VyQmxvY2tpbmdQcmlvcml0eSxXZj1yLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LFhmPXIudW5zdGFibGVfTG93UHJpb3JpdHksWWY9ci51bnN0YWJsZV9JZGxlUHJpb3JpdHksWmY9e30sJGY9dm9pZCAwIT09UmY/UmY6ZnVuY3Rpb24oKXt9LGFnPW51bGwsYmc9bnVsbCxjZz0hMSxkZz1TZigpLE89MUU0PmRnP1NmOmZ1bmN0aW9uKCl7cmV0dXJuIFNmKCktZGd9O1xuZnVuY3Rpb24gZWcoKXtzd2l0Y2goVGYoKSl7Y2FzZSBVZjpyZXR1cm4gOTk7Y2FzZSBWZjpyZXR1cm4gOTg7Y2FzZSBXZjpyZXR1cm4gOTc7Y2FzZSBYZjpyZXR1cm4gOTY7Y2FzZSBZZjpyZXR1cm4gOTU7ZGVmYXVsdDp0aHJvdyBFcnJvcih5KDMzMikpO319ZnVuY3Rpb24gZmcoYSl7c3dpdGNoKGEpe2Nhc2UgOTk6cmV0dXJuIFVmO2Nhc2UgOTg6cmV0dXJuIFZmO2Nhc2UgOTc6cmV0dXJuIFdmO2Nhc2UgOTY6cmV0dXJuIFhmO2Nhc2UgOTU6cmV0dXJuIFlmO2RlZmF1bHQ6dGhyb3cgRXJyb3IoeSgzMzIpKTt9fWZ1bmN0aW9uIGdnKGEsYil7YT1mZyhhKTtyZXR1cm4gTmYoYSxiKX1mdW5jdGlvbiBoZyhhLGIsYyl7YT1mZyhhKTtyZXR1cm4gT2YoYSxiLGMpfWZ1bmN0aW9uIGlnKCl7aWYobnVsbCE9PWJnKXt2YXIgYT1iZztiZz1udWxsO1BmKGEpfWpnKCl9XG5mdW5jdGlvbiBqZygpe2lmKCFjZyYmbnVsbCE9PWFnKXtjZz0hMDt2YXIgYT0wO3RyeXt2YXIgYj1hZztnZyg5OSxmdW5jdGlvbigpe2Zvcig7YTxiLmxlbmd0aDthKyspe3ZhciBjPWJbYV07ZG8gYz1jKCEwKTt3aGlsZShudWxsIT09Yyl9fSk7YWc9bnVsbH1jYXRjaChjKXt0aHJvdyBudWxsIT09YWcmJihhZz1hZy5zbGljZShhKzEpKSxPZihVZixpZyksYzt9ZmluYWxseXtjZz0hMX19fXZhciBrZz1yYS5SZWFjdEN1cnJlbnRCYXRjaENvbmZpZztmdW5jdGlvbiBsZyhhLGIpe2lmKGEmJmEuZGVmYXVsdFByb3BzKXtiPW0oe30sYik7YT1hLmRlZmF1bHRQcm9wcztmb3IodmFyIGMgaW4gYSl2b2lkIDA9PT1iW2NdJiYoYltjXT1hW2NdKTtyZXR1cm4gYn1yZXR1cm4gYn12YXIgbWc9QmYobnVsbCksbmc9bnVsbCxvZz1udWxsLHBnPW51bGw7ZnVuY3Rpb24gcWcoKXtwZz1vZz1uZz1udWxsfVxuZnVuY3Rpb24gcmcoYSl7dmFyIGI9bWcuY3VycmVudDtIKG1nKTthLnR5cGUuX2NvbnRleHQuX2N1cnJlbnRWYWx1ZT1ifWZ1bmN0aW9uIHNnKGEsYil7Zm9yKDtudWxsIT09YTspe3ZhciBjPWEuYWx0ZXJuYXRlO2lmKChhLmNoaWxkTGFuZXMmYik9PT1iKWlmKG51bGw9PT1jfHwoYy5jaGlsZExhbmVzJmIpPT09YilicmVhaztlbHNlIGMuY2hpbGRMYW5lc3w9YjtlbHNlIGEuY2hpbGRMYW5lc3w9YixudWxsIT09YyYmKGMuY2hpbGRMYW5lc3w9Yik7YT1hLnJldHVybn19ZnVuY3Rpb24gdGcoYSxiKXtuZz1hO3BnPW9nPW51bGw7YT1hLmRlcGVuZGVuY2llcztudWxsIT09YSYmbnVsbCE9PWEuZmlyc3RDb250ZXh0JiYoMCE9PShhLmxhbmVzJmIpJiYodWc9ITApLGEuZmlyc3RDb250ZXh0PW51bGwpfVxuZnVuY3Rpb24gdmcoYSxiKXtpZihwZyE9PWEmJiExIT09YiYmMCE9PWIpe2lmKFwibnVtYmVyXCIhPT10eXBlb2YgYnx8MTA3Mzc0MTgyMz09PWIpcGc9YSxiPTEwNzM3NDE4MjM7Yj17Y29udGV4dDphLG9ic2VydmVkQml0czpiLG5leHQ6bnVsbH07aWYobnVsbD09PW9nKXtpZihudWxsPT09bmcpdGhyb3cgRXJyb3IoeSgzMDgpKTtvZz1iO25nLmRlcGVuZGVuY2llcz17bGFuZXM6MCxmaXJzdENvbnRleHQ6YixyZXNwb25kZXJzOm51bGx9fWVsc2Ugb2c9b2cubmV4dD1ifXJldHVybiBhLl9jdXJyZW50VmFsdWV9dmFyIHdnPSExO2Z1bmN0aW9uIHhnKGEpe2EudXBkYXRlUXVldWU9e2Jhc2VTdGF0ZTphLm1lbW9pemVkU3RhdGUsZmlyc3RCYXNlVXBkYXRlOm51bGwsbGFzdEJhc2VVcGRhdGU6bnVsbCxzaGFyZWQ6e3BlbmRpbmc6bnVsbH0sZWZmZWN0czpudWxsfX1cbmZ1bmN0aW9uIHlnKGEsYil7YT1hLnVwZGF0ZVF1ZXVlO2IudXBkYXRlUXVldWU9PT1hJiYoYi51cGRhdGVRdWV1ZT17YmFzZVN0YXRlOmEuYmFzZVN0YXRlLGZpcnN0QmFzZVVwZGF0ZTphLmZpcnN0QmFzZVVwZGF0ZSxsYXN0QmFzZVVwZGF0ZTphLmxhc3RCYXNlVXBkYXRlLHNoYXJlZDphLnNoYXJlZCxlZmZlY3RzOmEuZWZmZWN0c30pfWZ1bmN0aW9uIHpnKGEsYil7cmV0dXJue2V2ZW50VGltZTphLGxhbmU6Yix0YWc6MCxwYXlsb2FkOm51bGwsY2FsbGJhY2s6bnVsbCxuZXh0Om51bGx9fWZ1bmN0aW9uIEFnKGEsYil7YT1hLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT1hKXthPWEuc2hhcmVkO3ZhciBjPWEucGVuZGluZztudWxsPT09Yz9iLm5leHQ9YjooYi5uZXh0PWMubmV4dCxjLm5leHQ9Yik7YS5wZW5kaW5nPWJ9fVxuZnVuY3Rpb24gQmcoYSxiKXt2YXIgYz1hLnVwZGF0ZVF1ZXVlLGQ9YS5hbHRlcm5hdGU7aWYobnVsbCE9PWQmJihkPWQudXBkYXRlUXVldWUsYz09PWQpKXt2YXIgZT1udWxsLGY9bnVsbDtjPWMuZmlyc3RCYXNlVXBkYXRlO2lmKG51bGwhPT1jKXtkb3t2YXIgZz17ZXZlbnRUaW1lOmMuZXZlbnRUaW1lLGxhbmU6Yy5sYW5lLHRhZzpjLnRhZyxwYXlsb2FkOmMucGF5bG9hZCxjYWxsYmFjazpjLmNhbGxiYWNrLG5leHQ6bnVsbH07bnVsbD09PWY/ZT1mPWc6Zj1mLm5leHQ9ZztjPWMubmV4dH13aGlsZShudWxsIT09Yyk7bnVsbD09PWY/ZT1mPWI6Zj1mLm5leHQ9Yn1lbHNlIGU9Zj1iO2M9e2Jhc2VTdGF0ZTpkLmJhc2VTdGF0ZSxmaXJzdEJhc2VVcGRhdGU6ZSxsYXN0QmFzZVVwZGF0ZTpmLHNoYXJlZDpkLnNoYXJlZCxlZmZlY3RzOmQuZWZmZWN0c307YS51cGRhdGVRdWV1ZT1jO3JldHVybn1hPWMubGFzdEJhc2VVcGRhdGU7bnVsbD09PWE/Yy5maXJzdEJhc2VVcGRhdGU9YjphLm5leHQ9XG5iO2MubGFzdEJhc2VVcGRhdGU9Yn1cbmZ1bmN0aW9uIENnKGEsYixjLGQpe3ZhciBlPWEudXBkYXRlUXVldWU7d2c9ITE7dmFyIGY9ZS5maXJzdEJhc2VVcGRhdGUsZz1lLmxhc3RCYXNlVXBkYXRlLGg9ZS5zaGFyZWQucGVuZGluZztpZihudWxsIT09aCl7ZS5zaGFyZWQucGVuZGluZz1udWxsO3ZhciBrPWgsbD1rLm5leHQ7ay5uZXh0PW51bGw7bnVsbD09PWc/Zj1sOmcubmV4dD1sO2c9azt2YXIgbj1hLmFsdGVybmF0ZTtpZihudWxsIT09bil7bj1uLnVwZGF0ZVF1ZXVlO3ZhciBBPW4ubGFzdEJhc2VVcGRhdGU7QSE9PWcmJihudWxsPT09QT9uLmZpcnN0QmFzZVVwZGF0ZT1sOkEubmV4dD1sLG4ubGFzdEJhc2VVcGRhdGU9ayl9fWlmKG51bGwhPT1mKXtBPWUuYmFzZVN0YXRlO2c9MDtuPWw9az1udWxsO2Rve2g9Zi5sYW5lO3ZhciBwPWYuZXZlbnRUaW1lO2lmKChkJmgpPT09aCl7bnVsbCE9PW4mJihuPW4ubmV4dD17ZXZlbnRUaW1lOnAsbGFuZTowLHRhZzpmLnRhZyxwYXlsb2FkOmYucGF5bG9hZCxjYWxsYmFjazpmLmNhbGxiYWNrLFxubmV4dDpudWxsfSk7YTp7dmFyIEM9YSx4PWY7aD1iO3A9Yztzd2l0Y2goeC50YWcpe2Nhc2UgMTpDPXgucGF5bG9hZDtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgQyl7QT1DLmNhbGwocCxBLGgpO2JyZWFrIGF9QT1DO2JyZWFrIGE7Y2FzZSAzOkMuZmxhZ3M9Qy5mbGFncyYtNDA5N3w2NDtjYXNlIDA6Qz14LnBheWxvYWQ7aD1cImZ1bmN0aW9uXCI9PT10eXBlb2YgQz9DLmNhbGwocCxBLGgpOkM7aWYobnVsbD09PWh8fHZvaWQgMD09PWgpYnJlYWsgYTtBPW0oe30sQSxoKTticmVhayBhO2Nhc2UgMjp3Zz0hMH19bnVsbCE9PWYuY2FsbGJhY2smJihhLmZsYWdzfD0zMixoPWUuZWZmZWN0cyxudWxsPT09aD9lLmVmZmVjdHM9W2ZdOmgucHVzaChmKSl9ZWxzZSBwPXtldmVudFRpbWU6cCxsYW5lOmgsdGFnOmYudGFnLHBheWxvYWQ6Zi5wYXlsb2FkLGNhbGxiYWNrOmYuY2FsbGJhY2ssbmV4dDpudWxsfSxudWxsPT09bj8obD1uPXAsaz1BKTpuPW4ubmV4dD1wLGd8PWg7Zj1mLm5leHQ7aWYobnVsbD09PVxuZilpZihoPWUuc2hhcmVkLnBlbmRpbmcsbnVsbD09PWgpYnJlYWs7ZWxzZSBmPWgubmV4dCxoLm5leHQ9bnVsbCxlLmxhc3RCYXNlVXBkYXRlPWgsZS5zaGFyZWQucGVuZGluZz1udWxsfXdoaWxlKDEpO251bGw9PT1uJiYoaz1BKTtlLmJhc2VTdGF0ZT1rO2UuZmlyc3RCYXNlVXBkYXRlPWw7ZS5sYXN0QmFzZVVwZGF0ZT1uO0RnfD1nO2EubGFuZXM9ZzthLm1lbW9pemVkU3RhdGU9QX19ZnVuY3Rpb24gRWcoYSxiLGMpe2E9Yi5lZmZlY3RzO2IuZWZmZWN0cz1udWxsO2lmKG51bGwhPT1hKWZvcihiPTA7YjxhLmxlbmd0aDtiKyspe3ZhciBkPWFbYl0sZT1kLmNhbGxiYWNrO2lmKG51bGwhPT1lKXtkLmNhbGxiYWNrPW51bGw7ZD1jO2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBlKXRocm93IEVycm9yKHkoMTkxLGUpKTtlLmNhbGwoZCl9fX12YXIgRmc9KG5ldyBhYS5Db21wb25lbnQpLnJlZnM7XG5mdW5jdGlvbiBHZyhhLGIsYyxkKXtiPWEubWVtb2l6ZWRTdGF0ZTtjPWMoZCxiKTtjPW51bGw9PT1jfHx2b2lkIDA9PT1jP2I6bSh7fSxiLGMpO2EubWVtb2l6ZWRTdGF0ZT1jOzA9PT1hLmxhbmVzJiYoYS51cGRhdGVRdWV1ZS5iYXNlU3RhdGU9Yyl9XG52YXIgS2c9e2lzTW91bnRlZDpmdW5jdGlvbihhKXtyZXR1cm4oYT1hLl9yZWFjdEludGVybmFscyk/WmIoYSk9PT1hOiExfSxlbnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24oYSxiLGMpe2E9YS5fcmVhY3RJbnRlcm5hbHM7dmFyIGQ9SGcoKSxlPUlnKGEpLGY9emcoZCxlKTtmLnBheWxvYWQ9Yjt2b2lkIDAhPT1jJiZudWxsIT09YyYmKGYuY2FsbGJhY2s9Yyk7QWcoYSxmKTtKZyhhLGUsZCl9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oYSxiLGMpe2E9YS5fcmVhY3RJbnRlcm5hbHM7dmFyIGQ9SGcoKSxlPUlnKGEpLGY9emcoZCxlKTtmLnRhZz0xO2YucGF5bG9hZD1iO3ZvaWQgMCE9PWMmJm51bGwhPT1jJiYoZi5jYWxsYmFjaz1jKTtBZyhhLGYpO0pnKGEsZSxkKX0sZW5xdWV1ZUZvcmNlVXBkYXRlOmZ1bmN0aW9uKGEsYil7YT1hLl9yZWFjdEludGVybmFsczt2YXIgYz1IZygpLGQ9SWcoYSksZT16ZyhjLGQpO2UudGFnPTI7dm9pZCAwIT09YiYmbnVsbCE9PWImJihlLmNhbGxiYWNrPVxuYik7QWcoYSxlKTtKZyhhLGQsYyl9fTtmdW5jdGlvbiBMZyhhLGIsYyxkLGUsZixnKXthPWEuc3RhdGVOb2RlO3JldHVyblwiZnVuY3Rpb25cIj09PXR5cGVvZiBhLnNob3VsZENvbXBvbmVudFVwZGF0ZT9hLnNob3VsZENvbXBvbmVudFVwZGF0ZShkLGYsZyk6Yi5wcm90b3R5cGUmJmIucHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50PyFKZShjLGQpfHwhSmUoZSxmKTohMH1cbmZ1bmN0aW9uIE1nKGEsYixjKXt2YXIgZD0hMSxlPUNmO3ZhciBmPWIuY29udGV4dFR5cGU7XCJvYmplY3RcIj09PXR5cGVvZiBmJiZudWxsIT09Zj9mPXZnKGYpOihlPUZmKGIpP0RmOk0uY3VycmVudCxkPWIuY29udGV4dFR5cGVzLGY9KGQ9bnVsbCE9PWQmJnZvaWQgMCE9PWQpP0VmKGEsZSk6Q2YpO2I9bmV3IGIoYyxmKTthLm1lbW9pemVkU3RhdGU9bnVsbCE9PWIuc3RhdGUmJnZvaWQgMCE9PWIuc3RhdGU/Yi5zdGF0ZTpudWxsO2IudXBkYXRlcj1LZzthLnN0YXRlTm9kZT1iO2IuX3JlYWN0SW50ZXJuYWxzPWE7ZCYmKGE9YS5zdGF0ZU5vZGUsYS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZFVubWFza2VkQ2hpbGRDb250ZXh0PWUsYS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dD1mKTtyZXR1cm4gYn1cbmZ1bmN0aW9uIE5nKGEsYixjLGQpe2E9Yi5zdGF0ZTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgYi5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZiLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoYyxkKTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgYi5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmYi5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhjLGQpO2Iuc3RhdGUhPT1hJiZLZy5lbnF1ZXVlUmVwbGFjZVN0YXRlKGIsYi5zdGF0ZSxudWxsKX1cbmZ1bmN0aW9uIE9nKGEsYixjLGQpe3ZhciBlPWEuc3RhdGVOb2RlO2UucHJvcHM9YztlLnN0YXRlPWEubWVtb2l6ZWRTdGF0ZTtlLnJlZnM9Rmc7eGcoYSk7dmFyIGY9Yi5jb250ZXh0VHlwZTtcIm9iamVjdFwiPT09dHlwZW9mIGYmJm51bGwhPT1mP2UuY29udGV4dD12ZyhmKTooZj1GZihiKT9EZjpNLmN1cnJlbnQsZS5jb250ZXh0PUVmKGEsZikpO0NnKGEsYyxlLGQpO2Uuc3RhdGU9YS5tZW1vaXplZFN0YXRlO2Y9Yi5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM7XCJmdW5jdGlvblwiPT09dHlwZW9mIGYmJihHZyhhLGIsZixjKSxlLnN0YXRlPWEubWVtb2l6ZWRTdGF0ZSk7XCJmdW5jdGlvblwiPT09dHlwZW9mIGIuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzfHxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZXx8XCJmdW5jdGlvblwiIT09dHlwZW9mIGUuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGUuY29tcG9uZW50V2lsbE1vdW50fHxcbihiPWUuc3RhdGUsXCJmdW5jdGlvblwiPT09dHlwZW9mIGUuY29tcG9uZW50V2lsbE1vdW50JiZlLmNvbXBvbmVudFdpbGxNb3VudCgpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJmUuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpLGIhPT1lLnN0YXRlJiZLZy5lbnF1ZXVlUmVwbGFjZVN0YXRlKGUsZS5zdGF0ZSxudWxsKSxDZyhhLGMsZSxkKSxlLnN0YXRlPWEubWVtb2l6ZWRTdGF0ZSk7XCJmdW5jdGlvblwiPT09dHlwZW9mIGUuY29tcG9uZW50RGlkTW91bnQmJihhLmZsYWdzfD00KX12YXIgUGc9QXJyYXkuaXNBcnJheTtcbmZ1bmN0aW9uIFFnKGEsYixjKXthPWMucmVmO2lmKG51bGwhPT1hJiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgYSYmXCJvYmplY3RcIiE9PXR5cGVvZiBhKXtpZihjLl9vd25lcil7Yz1jLl9vd25lcjtpZihjKXtpZigxIT09Yy50YWcpdGhyb3cgRXJyb3IoeSgzMDkpKTt2YXIgZD1jLnN0YXRlTm9kZX1pZighZCl0aHJvdyBFcnJvcih5KDE0NyxhKSk7dmFyIGU9XCJcIithO2lmKG51bGwhPT1iJiZudWxsIT09Yi5yZWYmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBiLnJlZiYmYi5yZWYuX3N0cmluZ1JlZj09PWUpcmV0dXJuIGIucmVmO2I9ZnVuY3Rpb24oYSl7dmFyIGI9ZC5yZWZzO2I9PT1GZyYmKGI9ZC5yZWZzPXt9KTtudWxsPT09YT9kZWxldGUgYltlXTpiW2VdPWF9O2IuX3N0cmluZ1JlZj1lO3JldHVybiBifWlmKFwic3RyaW5nXCIhPT10eXBlb2YgYSl0aHJvdyBFcnJvcih5KDI4NCkpO2lmKCFjLl9vd25lcil0aHJvdyBFcnJvcih5KDI5MCxhKSk7fXJldHVybiBhfVxuZnVuY3Rpb24gUmcoYSxiKXtpZihcInRleHRhcmVhXCIhPT1hLnR5cGUpdGhyb3cgRXJyb3IoeSgzMSxcIltvYmplY3QgT2JqZWN0XVwiPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGIpP1wib2JqZWN0IHdpdGgga2V5cyB7XCIrT2JqZWN0LmtleXMoYikuam9pbihcIiwgXCIpK1wifVwiOmIpKTt9XG5mdW5jdGlvbiBTZyhhKXtmdW5jdGlvbiBiKGIsYyl7aWYoYSl7dmFyIGQ9Yi5sYXN0RWZmZWN0O251bGwhPT1kPyhkLm5leHRFZmZlY3Q9YyxiLmxhc3RFZmZlY3Q9Yyk6Yi5maXJzdEVmZmVjdD1iLmxhc3RFZmZlY3Q9YztjLm5leHRFZmZlY3Q9bnVsbDtjLmZsYWdzPTh9fWZ1bmN0aW9uIGMoYyxkKXtpZighYSlyZXR1cm4gbnVsbDtmb3IoO251bGwhPT1kOyliKGMsZCksZD1kLnNpYmxpbmc7cmV0dXJuIG51bGx9ZnVuY3Rpb24gZChhLGIpe2ZvcihhPW5ldyBNYXA7bnVsbCE9PWI7KW51bGwhPT1iLmtleT9hLnNldChiLmtleSxiKTphLnNldChiLmluZGV4LGIpLGI9Yi5zaWJsaW5nO3JldHVybiBhfWZ1bmN0aW9uIGUoYSxiKXthPVRnKGEsYik7YS5pbmRleD0wO2Euc2libGluZz1udWxsO3JldHVybiBhfWZ1bmN0aW9uIGYoYixjLGQpe2IuaW5kZXg9ZDtpZighYSlyZXR1cm4gYztkPWIuYWx0ZXJuYXRlO2lmKG51bGwhPT1kKXJldHVybiBkPWQuaW5kZXgsZDxjPyhiLmZsYWdzPTIsXG5jKTpkO2IuZmxhZ3M9MjtyZXR1cm4gY31mdW5jdGlvbiBnKGIpe2EmJm51bGw9PT1iLmFsdGVybmF0ZSYmKGIuZmxhZ3M9Mik7cmV0dXJuIGJ9ZnVuY3Rpb24gaChhLGIsYyxkKXtpZihudWxsPT09Ynx8NiE9PWIudGFnKXJldHVybiBiPVVnKGMsYS5tb2RlLGQpLGIucmV0dXJuPWEsYjtiPWUoYixjKTtiLnJldHVybj1hO3JldHVybiBifWZ1bmN0aW9uIGsoYSxiLGMsZCl7aWYobnVsbCE9PWImJmIuZWxlbWVudFR5cGU9PT1jLnR5cGUpcmV0dXJuIGQ9ZShiLGMucHJvcHMpLGQucmVmPVFnKGEsYixjKSxkLnJldHVybj1hLGQ7ZD1WZyhjLnR5cGUsYy5rZXksYy5wcm9wcyxudWxsLGEubW9kZSxkKTtkLnJlZj1RZyhhLGIsYyk7ZC5yZXR1cm49YTtyZXR1cm4gZH1mdW5jdGlvbiBsKGEsYixjLGQpe2lmKG51bGw9PT1ifHw0IT09Yi50YWd8fGIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8hPT1jLmNvbnRhaW5lckluZm98fGIuc3RhdGVOb2RlLmltcGxlbWVudGF0aW9uIT09Yy5pbXBsZW1lbnRhdGlvbilyZXR1cm4gYj1cbldnKGMsYS5tb2RlLGQpLGIucmV0dXJuPWEsYjtiPWUoYixjLmNoaWxkcmVufHxbXSk7Yi5yZXR1cm49YTtyZXR1cm4gYn1mdW5jdGlvbiBuKGEsYixjLGQsZil7aWYobnVsbD09PWJ8fDchPT1iLnRhZylyZXR1cm4gYj1YZyhjLGEubW9kZSxkLGYpLGIucmV0dXJuPWEsYjtiPWUoYixjKTtiLnJldHVybj1hO3JldHVybiBifWZ1bmN0aW9uIEEoYSxiLGMpe2lmKFwic3RyaW5nXCI9PT10eXBlb2YgYnx8XCJudW1iZXJcIj09PXR5cGVvZiBiKXJldHVybiBiPVVnKFwiXCIrYixhLm1vZGUsYyksYi5yZXR1cm49YSxiO2lmKFwib2JqZWN0XCI9PT10eXBlb2YgYiYmbnVsbCE9PWIpe3N3aXRjaChiLiQkdHlwZW9mKXtjYXNlIHNhOnJldHVybiBjPVZnKGIudHlwZSxiLmtleSxiLnByb3BzLG51bGwsYS5tb2RlLGMpLGMucmVmPVFnKGEsbnVsbCxiKSxjLnJldHVybj1hLGM7Y2FzZSB0YTpyZXR1cm4gYj1XZyhiLGEubW9kZSxjKSxiLnJldHVybj1hLGJ9aWYoUGcoYil8fExhKGIpKXJldHVybiBiPVhnKGIsXG5hLm1vZGUsYyxudWxsKSxiLnJldHVybj1hLGI7UmcoYSxiKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBwKGEsYixjLGQpe3ZhciBlPW51bGwhPT1iP2Iua2V5Om51bGw7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBjfHxcIm51bWJlclwiPT09dHlwZW9mIGMpcmV0dXJuIG51bGwhPT1lP251bGw6aChhLGIsXCJcIitjLGQpO2lmKFwib2JqZWN0XCI9PT10eXBlb2YgYyYmbnVsbCE9PWMpe3N3aXRjaChjLiQkdHlwZW9mKXtjYXNlIHNhOnJldHVybiBjLmtleT09PWU/Yy50eXBlPT09dWE/bihhLGIsYy5wcm9wcy5jaGlsZHJlbixkLGUpOmsoYSxiLGMsZCk6bnVsbDtjYXNlIHRhOnJldHVybiBjLmtleT09PWU/bChhLGIsYyxkKTpudWxsfWlmKFBnKGMpfHxMYShjKSlyZXR1cm4gbnVsbCE9PWU/bnVsbDpuKGEsYixjLGQsbnVsbCk7UmcoYSxjKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBDKGEsYixjLGQsZSl7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBkfHxcIm51bWJlclwiPT09dHlwZW9mIGQpcmV0dXJuIGE9YS5nZXQoYyl8fFxubnVsbCxoKGIsYSxcIlwiK2QsZSk7aWYoXCJvYmplY3RcIj09PXR5cGVvZiBkJiZudWxsIT09ZCl7c3dpdGNoKGQuJCR0eXBlb2Ype2Nhc2Ugc2E6cmV0dXJuIGE9YS5nZXQobnVsbD09PWQua2V5P2M6ZC5rZXkpfHxudWxsLGQudHlwZT09PXVhP24oYixhLGQucHJvcHMuY2hpbGRyZW4sZSxkLmtleSk6ayhiLGEsZCxlKTtjYXNlIHRhOnJldHVybiBhPWEuZ2V0KG51bGw9PT1kLmtleT9jOmQua2V5KXx8bnVsbCxsKGIsYSxkLGUpfWlmKFBnKGQpfHxMYShkKSlyZXR1cm4gYT1hLmdldChjKXx8bnVsbCxuKGIsYSxkLGUsbnVsbCk7UmcoYixkKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiB4KGUsZyxoLGspe2Zvcih2YXIgbD1udWxsLHQ9bnVsbCx1PWcsej1nPTAscT1udWxsO251bGwhPT11JiZ6PGgubGVuZ3RoO3orKyl7dS5pbmRleD56PyhxPXUsdT1udWxsKTpxPXUuc2libGluZzt2YXIgbj1wKGUsdSxoW3pdLGspO2lmKG51bGw9PT1uKXtudWxsPT09dSYmKHU9cSk7YnJlYWt9YSYmdSYmbnVsbD09PVxubi5hbHRlcm5hdGUmJmIoZSx1KTtnPWYobixnLHopO251bGw9PT10P2w9bjp0LnNpYmxpbmc9bjt0PW47dT1xfWlmKHo9PT1oLmxlbmd0aClyZXR1cm4gYyhlLHUpLGw7aWYobnVsbD09PXUpe2Zvcig7ejxoLmxlbmd0aDt6KyspdT1BKGUsaFt6XSxrKSxudWxsIT09dSYmKGc9Zih1LGcseiksbnVsbD09PXQ/bD11OnQuc2libGluZz11LHQ9dSk7cmV0dXJuIGx9Zm9yKHU9ZChlLHUpO3o8aC5sZW5ndGg7eisrKXE9Qyh1LGUseixoW3pdLGspLG51bGwhPT1xJiYoYSYmbnVsbCE9PXEuYWx0ZXJuYXRlJiZ1LmRlbGV0ZShudWxsPT09cS5rZXk/ejpxLmtleSksZz1mKHEsZyx6KSxudWxsPT09dD9sPXE6dC5zaWJsaW5nPXEsdD1xKTthJiZ1LmZvckVhY2goZnVuY3Rpb24oYSl7cmV0dXJuIGIoZSxhKX0pO3JldHVybiBsfWZ1bmN0aW9uIHcoZSxnLGgsayl7dmFyIGw9TGEoaCk7aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIGwpdGhyb3cgRXJyb3IoeSgxNTApKTtoPWwuY2FsbChoKTtpZihudWxsPT1cbmgpdGhyb3cgRXJyb3IoeSgxNTEpKTtmb3IodmFyIHQ9bD1udWxsLHU9Zyx6PWc9MCxxPW51bGwsbj1oLm5leHQoKTtudWxsIT09dSYmIW4uZG9uZTt6Kyssbj1oLm5leHQoKSl7dS5pbmRleD56PyhxPXUsdT1udWxsKTpxPXUuc2libGluZzt2YXIgdz1wKGUsdSxuLnZhbHVlLGspO2lmKG51bGw9PT13KXtudWxsPT09dSYmKHU9cSk7YnJlYWt9YSYmdSYmbnVsbD09PXcuYWx0ZXJuYXRlJiZiKGUsdSk7Zz1mKHcsZyx6KTtudWxsPT09dD9sPXc6dC5zaWJsaW5nPXc7dD13O3U9cX1pZihuLmRvbmUpcmV0dXJuIGMoZSx1KSxsO2lmKG51bGw9PT11KXtmb3IoOyFuLmRvbmU7eisrLG49aC5uZXh0KCkpbj1BKGUsbi52YWx1ZSxrKSxudWxsIT09biYmKGc9ZihuLGcseiksbnVsbD09PXQ/bD1uOnQuc2libGluZz1uLHQ9bik7cmV0dXJuIGx9Zm9yKHU9ZChlLHUpOyFuLmRvbmU7eisrLG49aC5uZXh0KCkpbj1DKHUsZSx6LG4udmFsdWUsayksbnVsbCE9PW4mJihhJiZudWxsIT09bi5hbHRlcm5hdGUmJlxudS5kZWxldGUobnVsbD09PW4ua2V5P3o6bi5rZXkpLGc9ZihuLGcseiksbnVsbD09PXQ/bD1uOnQuc2libGluZz1uLHQ9bik7YSYmdS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiBiKGUsYSl9KTtyZXR1cm4gbH1yZXR1cm4gZnVuY3Rpb24oYSxkLGYsaCl7dmFyIGs9XCJvYmplY3RcIj09PXR5cGVvZiBmJiZudWxsIT09ZiYmZi50eXBlPT09dWEmJm51bGw9PT1mLmtleTtrJiYoZj1mLnByb3BzLmNoaWxkcmVuKTt2YXIgbD1cIm9iamVjdFwiPT09dHlwZW9mIGYmJm51bGwhPT1mO2lmKGwpc3dpdGNoKGYuJCR0eXBlb2Ype2Nhc2Ugc2E6YTp7bD1mLmtleTtmb3Ioaz1kO251bGwhPT1rOyl7aWYoay5rZXk9PT1sKXtzd2l0Y2goay50YWcpe2Nhc2UgNzppZihmLnR5cGU9PT11YSl7YyhhLGsuc2libGluZyk7ZD1lKGssZi5wcm9wcy5jaGlsZHJlbik7ZC5yZXR1cm49YTthPWQ7YnJlYWsgYX1icmVhaztkZWZhdWx0OmlmKGsuZWxlbWVudFR5cGU9PT1mLnR5cGUpe2MoYSxrLnNpYmxpbmcpO1xuZD1lKGssZi5wcm9wcyk7ZC5yZWY9UWcoYSxrLGYpO2QucmV0dXJuPWE7YT1kO2JyZWFrIGF9fWMoYSxrKTticmVha31lbHNlIGIoYSxrKTtrPWsuc2libGluZ31mLnR5cGU9PT11YT8oZD1YZyhmLnByb3BzLmNoaWxkcmVuLGEubW9kZSxoLGYua2V5KSxkLnJldHVybj1hLGE9ZCk6KGg9VmcoZi50eXBlLGYua2V5LGYucHJvcHMsbnVsbCxhLm1vZGUsaCksaC5yZWY9UWcoYSxkLGYpLGgucmV0dXJuPWEsYT1oKX1yZXR1cm4gZyhhKTtjYXNlIHRhOmE6e2ZvcihrPWYua2V5O251bGwhPT1kOyl7aWYoZC5rZXk9PT1rKWlmKDQ9PT1kLnRhZyYmZC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbz09PWYuY29udGFpbmVySW5mbyYmZC5zdGF0ZU5vZGUuaW1wbGVtZW50YXRpb249PT1mLmltcGxlbWVudGF0aW9uKXtjKGEsZC5zaWJsaW5nKTtkPWUoZCxmLmNoaWxkcmVufHxbXSk7ZC5yZXR1cm49YTthPWQ7YnJlYWsgYX1lbHNle2MoYSxkKTticmVha31lbHNlIGIoYSxkKTtkPWQuc2libGluZ31kPVxuV2coZixhLm1vZGUsaCk7ZC5yZXR1cm49YTthPWR9cmV0dXJuIGcoYSl9aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBmfHxcIm51bWJlclwiPT09dHlwZW9mIGYpcmV0dXJuIGY9XCJcIitmLG51bGwhPT1kJiY2PT09ZC50YWc/KGMoYSxkLnNpYmxpbmcpLGQ9ZShkLGYpLGQucmV0dXJuPWEsYT1kKTooYyhhLGQpLGQ9VWcoZixhLm1vZGUsaCksZC5yZXR1cm49YSxhPWQpLGcoYSk7aWYoUGcoZikpcmV0dXJuIHgoYSxkLGYsaCk7aWYoTGEoZikpcmV0dXJuIHcoYSxkLGYsaCk7bCYmUmcoYSxmKTtpZihcInVuZGVmaW5lZFwiPT09dHlwZW9mIGYmJiFrKXN3aXRjaChhLnRhZyl7Y2FzZSAxOmNhc2UgMjI6Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTp0aHJvdyBFcnJvcih5KDE1MixSYShhLnR5cGUpfHxcIkNvbXBvbmVudFwiKSk7fXJldHVybiBjKGEsZCl9fXZhciBZZz1TZyghMCksWmc9U2coITEpLCRnPXt9LGFoPUJmKCRnKSxiaD1CZigkZyksY2g9QmYoJGcpO1xuZnVuY3Rpb24gZGgoYSl7aWYoYT09PSRnKXRocm93IEVycm9yKHkoMTc0KSk7cmV0dXJuIGF9ZnVuY3Rpb24gZWgoYSxiKXtJKGNoLGIpO0koYmgsYSk7SShhaCwkZyk7YT1iLm5vZGVUeXBlO3N3aXRjaChhKXtjYXNlIDk6Y2FzZSAxMTpiPShiPWIuZG9jdW1lbnRFbGVtZW50KT9iLm5hbWVzcGFjZVVSSTptYihudWxsLFwiXCIpO2JyZWFrO2RlZmF1bHQ6YT04PT09YT9iLnBhcmVudE5vZGU6YixiPWEubmFtZXNwYWNlVVJJfHxudWxsLGE9YS50YWdOYW1lLGI9bWIoYixhKX1IKGFoKTtJKGFoLGIpfWZ1bmN0aW9uIGZoKCl7SChhaCk7SChiaCk7SChjaCl9ZnVuY3Rpb24gZ2goYSl7ZGgoY2guY3VycmVudCk7dmFyIGI9ZGgoYWguY3VycmVudCk7dmFyIGM9bWIoYixhLnR5cGUpO2IhPT1jJiYoSShiaCxhKSxJKGFoLGMpKX1mdW5jdGlvbiBoaChhKXtiaC5jdXJyZW50PT09YSYmKEgoYWgpLEgoYmgpKX12YXIgUD1CZigwKTtcbmZ1bmN0aW9uIGloKGEpe2Zvcih2YXIgYj1hO251bGwhPT1iOyl7aWYoMTM9PT1iLnRhZyl7dmFyIGM9Yi5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1jJiYoYz1jLmRlaHlkcmF0ZWQsbnVsbD09PWN8fFwiJD9cIj09PWMuZGF0YXx8XCIkIVwiPT09Yy5kYXRhKSlyZXR1cm4gYn1lbHNlIGlmKDE5PT09Yi50YWcmJnZvaWQgMCE9PWIubWVtb2l6ZWRQcm9wcy5yZXZlYWxPcmRlcil7aWYoMCE9PShiLmZsYWdzJjY0KSlyZXR1cm4gYn1lbHNlIGlmKG51bGwhPT1iLmNoaWxkKXtiLmNoaWxkLnJldHVybj1iO2I9Yi5jaGlsZDtjb250aW51ZX1pZihiPT09YSlicmVhaztmb3IoO251bGw9PT1iLnNpYmxpbmc7KXtpZihudWxsPT09Yi5yZXR1cm58fGIucmV0dXJuPT09YSlyZXR1cm4gbnVsbDtiPWIucmV0dXJufWIuc2libGluZy5yZXR1cm49Yi5yZXR1cm47Yj1iLnNpYmxpbmd9cmV0dXJuIG51bGx9dmFyIGpoPW51bGwsa2g9bnVsbCxsaD0hMTtcbmZ1bmN0aW9uIG1oKGEsYil7dmFyIGM9bmgoNSxudWxsLG51bGwsMCk7Yy5lbGVtZW50VHlwZT1cIkRFTEVURURcIjtjLnR5cGU9XCJERUxFVEVEXCI7Yy5zdGF0ZU5vZGU9YjtjLnJldHVybj1hO2MuZmxhZ3M9ODtudWxsIT09YS5sYXN0RWZmZWN0PyhhLmxhc3RFZmZlY3QubmV4dEVmZmVjdD1jLGEubGFzdEVmZmVjdD1jKTphLmZpcnN0RWZmZWN0PWEubGFzdEVmZmVjdD1jfWZ1bmN0aW9uIG9oKGEsYil7c3dpdGNoKGEudGFnKXtjYXNlIDU6dmFyIGM9YS50eXBlO2I9MSE9PWIubm9kZVR5cGV8fGMudG9Mb3dlckNhc2UoKSE9PWIubm9kZU5hbWUudG9Mb3dlckNhc2UoKT9udWxsOmI7cmV0dXJuIG51bGwhPT1iPyhhLnN0YXRlTm9kZT1iLCEwKTohMTtjYXNlIDY6cmV0dXJuIGI9XCJcIj09PWEucGVuZGluZ1Byb3BzfHwzIT09Yi5ub2RlVHlwZT9udWxsOmIsbnVsbCE9PWI/KGEuc3RhdGVOb2RlPWIsITApOiExO2Nhc2UgMTM6cmV0dXJuITE7ZGVmYXVsdDpyZXR1cm4hMX19XG5mdW5jdGlvbiBwaChhKXtpZihsaCl7dmFyIGI9a2g7aWYoYil7dmFyIGM9YjtpZighb2goYSxiKSl7Yj1yZihjLm5leHRTaWJsaW5nKTtpZighYnx8IW9oKGEsYikpe2EuZmxhZ3M9YS5mbGFncyYtMTAyNXwyO2xoPSExO2poPWE7cmV0dXJufW1oKGpoLGMpfWpoPWE7a2g9cmYoYi5maXJzdENoaWxkKX1lbHNlIGEuZmxhZ3M9YS5mbGFncyYtMTAyNXwyLGxoPSExLGpoPWF9fWZ1bmN0aW9uIHFoKGEpe2ZvcihhPWEucmV0dXJuO251bGwhPT1hJiY1IT09YS50YWcmJjMhPT1hLnRhZyYmMTMhPT1hLnRhZzspYT1hLnJldHVybjtqaD1hfVxuZnVuY3Rpb24gcmgoYSl7aWYoYSE9PWpoKXJldHVybiExO2lmKCFsaClyZXR1cm4gcWgoYSksbGg9ITAsITE7dmFyIGI9YS50eXBlO2lmKDUhPT1hLnRhZ3x8XCJoZWFkXCIhPT1iJiZcImJvZHlcIiE9PWImJiFuZihiLGEubWVtb2l6ZWRQcm9wcykpZm9yKGI9a2g7YjspbWgoYSxiKSxiPXJmKGIubmV4dFNpYmxpbmcpO3FoKGEpO2lmKDEzPT09YS50YWcpe2E9YS5tZW1vaXplZFN0YXRlO2E9bnVsbCE9PWE/YS5kZWh5ZHJhdGVkOm51bGw7aWYoIWEpdGhyb3cgRXJyb3IoeSgzMTcpKTthOnthPWEubmV4dFNpYmxpbmc7Zm9yKGI9MDthOyl7aWYoOD09PWEubm9kZVR5cGUpe3ZhciBjPWEuZGF0YTtpZihcIi8kXCI9PT1jKXtpZigwPT09Yil7a2g9cmYoYS5uZXh0U2libGluZyk7YnJlYWsgYX1iLS19ZWxzZVwiJFwiIT09YyYmXCIkIVwiIT09YyYmXCIkP1wiIT09Y3x8YisrfWE9YS5uZXh0U2libGluZ31raD1udWxsfX1lbHNlIGtoPWpoP3JmKGEuc3RhdGVOb2RlLm5leHRTaWJsaW5nKTpudWxsO3JldHVybiEwfVxuZnVuY3Rpb24gc2goKXtraD1qaD1udWxsO2xoPSExfXZhciB0aD1bXTtmdW5jdGlvbiB1aCgpe2Zvcih2YXIgYT0wO2E8dGgubGVuZ3RoO2ErKyl0aFthXS5fd29ya0luUHJvZ3Jlc3NWZXJzaW9uUHJpbWFyeT1udWxsO3RoLmxlbmd0aD0wfXZhciB2aD1yYS5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLHdoPXJhLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLHhoPTAsUj1udWxsLFM9bnVsbCxUPW51bGwseWg9ITEsemg9ITE7ZnVuY3Rpb24gQWgoKXt0aHJvdyBFcnJvcih5KDMyMSkpO31mdW5jdGlvbiBCaChhLGIpe2lmKG51bGw9PT1iKXJldHVybiExO2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGgmJmM8YS5sZW5ndGg7YysrKWlmKCFIZShhW2NdLGJbY10pKXJldHVybiExO3JldHVybiEwfVxuZnVuY3Rpb24gQ2goYSxiLGMsZCxlLGYpe3hoPWY7Uj1iO2IubWVtb2l6ZWRTdGF0ZT1udWxsO2IudXBkYXRlUXVldWU9bnVsbDtiLmxhbmVzPTA7dmguY3VycmVudD1udWxsPT09YXx8bnVsbD09PWEubWVtb2l6ZWRTdGF0ZT9EaDpFaDthPWMoZCxlKTtpZih6aCl7Zj0wO2Rve3poPSExO2lmKCEoMjU+ZikpdGhyb3cgRXJyb3IoeSgzMDEpKTtmKz0xO1Q9Uz1udWxsO2IudXBkYXRlUXVldWU9bnVsbDt2aC5jdXJyZW50PUZoO2E9YyhkLGUpfXdoaWxlKHpoKX12aC5jdXJyZW50PUdoO2I9bnVsbCE9PVMmJm51bGwhPT1TLm5leHQ7eGg9MDtUPVM9Uj1udWxsO3loPSExO2lmKGIpdGhyb3cgRXJyb3IoeSgzMDApKTtyZXR1cm4gYX1mdW5jdGlvbiBIaCgpe3ZhciBhPXttZW1vaXplZFN0YXRlOm51bGwsYmFzZVN0YXRlOm51bGwsYmFzZVF1ZXVlOm51bGwscXVldWU6bnVsbCxuZXh0Om51bGx9O251bGw9PT1UP1IubWVtb2l6ZWRTdGF0ZT1UPWE6VD1ULm5leHQ9YTtyZXR1cm4gVH1cbmZ1bmN0aW9uIEloKCl7aWYobnVsbD09PVMpe3ZhciBhPVIuYWx0ZXJuYXRlO2E9bnVsbCE9PWE/YS5tZW1vaXplZFN0YXRlOm51bGx9ZWxzZSBhPVMubmV4dDt2YXIgYj1udWxsPT09VD9SLm1lbW9pemVkU3RhdGU6VC5uZXh0O2lmKG51bGwhPT1iKVQ9YixTPWE7ZWxzZXtpZihudWxsPT09YSl0aHJvdyBFcnJvcih5KDMxMCkpO1M9YTthPXttZW1vaXplZFN0YXRlOlMubWVtb2l6ZWRTdGF0ZSxiYXNlU3RhdGU6Uy5iYXNlU3RhdGUsYmFzZVF1ZXVlOlMuYmFzZVF1ZXVlLHF1ZXVlOlMucXVldWUsbmV4dDpudWxsfTtudWxsPT09VD9SLm1lbW9pemVkU3RhdGU9VD1hOlQ9VC5uZXh0PWF9cmV0dXJuIFR9ZnVuY3Rpb24gSmgoYSxiKXtyZXR1cm5cImZ1bmN0aW9uXCI9PT10eXBlb2YgYj9iKGEpOmJ9XG5mdW5jdGlvbiBLaChhKXt2YXIgYj1JaCgpLGM9Yi5xdWV1ZTtpZihudWxsPT09Yyl0aHJvdyBFcnJvcih5KDMxMSkpO2MubGFzdFJlbmRlcmVkUmVkdWNlcj1hO3ZhciBkPVMsZT1kLmJhc2VRdWV1ZSxmPWMucGVuZGluZztpZihudWxsIT09Zil7aWYobnVsbCE9PWUpe3ZhciBnPWUubmV4dDtlLm5leHQ9Zi5uZXh0O2YubmV4dD1nfWQuYmFzZVF1ZXVlPWU9ZjtjLnBlbmRpbmc9bnVsbH1pZihudWxsIT09ZSl7ZT1lLm5leHQ7ZD1kLmJhc2VTdGF0ZTt2YXIgaD1nPWY9bnVsbCxrPWU7ZG97dmFyIGw9ay5sYW5lO2lmKCh4aCZsKT09PWwpbnVsbCE9PWgmJihoPWgubmV4dD17bGFuZTowLGFjdGlvbjprLmFjdGlvbixlYWdlclJlZHVjZXI6ay5lYWdlclJlZHVjZXIsZWFnZXJTdGF0ZTprLmVhZ2VyU3RhdGUsbmV4dDpudWxsfSksZD1rLmVhZ2VyUmVkdWNlcj09PWE/ay5lYWdlclN0YXRlOmEoZCxrLmFjdGlvbik7ZWxzZXt2YXIgbj17bGFuZTpsLGFjdGlvbjprLmFjdGlvbixlYWdlclJlZHVjZXI6ay5lYWdlclJlZHVjZXIsXG5lYWdlclN0YXRlOmsuZWFnZXJTdGF0ZSxuZXh0Om51bGx9O251bGw9PT1oPyhnPWg9bixmPWQpOmg9aC5uZXh0PW47Ui5sYW5lc3w9bDtEZ3w9bH1rPWsubmV4dH13aGlsZShudWxsIT09ayYmayE9PWUpO251bGw9PT1oP2Y9ZDpoLm5leHQ9ZztIZShkLGIubWVtb2l6ZWRTdGF0ZSl8fCh1Zz0hMCk7Yi5tZW1vaXplZFN0YXRlPWQ7Yi5iYXNlU3RhdGU9ZjtiLmJhc2VRdWV1ZT1oO2MubGFzdFJlbmRlcmVkU3RhdGU9ZH1yZXR1cm5bYi5tZW1vaXplZFN0YXRlLGMuZGlzcGF0Y2hdfVxuZnVuY3Rpb24gTGgoYSl7dmFyIGI9SWgoKSxjPWIucXVldWU7aWYobnVsbD09PWMpdGhyb3cgRXJyb3IoeSgzMTEpKTtjLmxhc3RSZW5kZXJlZFJlZHVjZXI9YTt2YXIgZD1jLmRpc3BhdGNoLGU9Yy5wZW5kaW5nLGY9Yi5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1lKXtjLnBlbmRpbmc9bnVsbDt2YXIgZz1lPWUubmV4dDtkbyBmPWEoZixnLmFjdGlvbiksZz1nLm5leHQ7d2hpbGUoZyE9PWUpO0hlKGYsYi5tZW1vaXplZFN0YXRlKXx8KHVnPSEwKTtiLm1lbW9pemVkU3RhdGU9ZjtudWxsPT09Yi5iYXNlUXVldWUmJihiLmJhc2VTdGF0ZT1mKTtjLmxhc3RSZW5kZXJlZFN0YXRlPWZ9cmV0dXJuW2YsZF19XG5mdW5jdGlvbiBNaChhLGIsYyl7dmFyIGQ9Yi5fZ2V0VmVyc2lvbjtkPWQoYi5fc291cmNlKTt2YXIgZT1iLl93b3JrSW5Qcm9ncmVzc1ZlcnNpb25QcmltYXJ5O2lmKG51bGwhPT1lKWE9ZT09PWQ7ZWxzZSBpZihhPWEubXV0YWJsZVJlYWRMYW5lcyxhPSh4aCZhKT09PWEpYi5fd29ya0luUHJvZ3Jlc3NWZXJzaW9uUHJpbWFyeT1kLHRoLnB1c2goYik7aWYoYSlyZXR1cm4gYyhiLl9zb3VyY2UpO3RoLnB1c2goYik7dGhyb3cgRXJyb3IoeSgzNTApKTt9XG5mdW5jdGlvbiBOaChhLGIsYyxkKXt2YXIgZT1VO2lmKG51bGw9PT1lKXRocm93IEVycm9yKHkoMzQ5KSk7dmFyIGY9Yi5fZ2V0VmVyc2lvbixnPWYoYi5fc291cmNlKSxoPXZoLmN1cnJlbnQsaz1oLnVzZVN0YXRlKGZ1bmN0aW9uKCl7cmV0dXJuIE1oKGUsYixjKX0pLGw9a1sxXSxuPWtbMF07az1UO3ZhciBBPWEubWVtb2l6ZWRTdGF0ZSxwPUEucmVmcyxDPXAuZ2V0U25hcHNob3QseD1BLnNvdXJjZTtBPUEuc3Vic2NyaWJlO3ZhciB3PVI7YS5tZW1vaXplZFN0YXRlPXtyZWZzOnAsc291cmNlOmIsc3Vic2NyaWJlOmR9O2gudXNlRWZmZWN0KGZ1bmN0aW9uKCl7cC5nZXRTbmFwc2hvdD1jO3Auc2V0U25hcHNob3Q9bDt2YXIgYT1mKGIuX3NvdXJjZSk7aWYoIUhlKGcsYSkpe2E9YyhiLl9zb3VyY2UpO0hlKG4sYSl8fChsKGEpLGE9SWcodyksZS5tdXRhYmxlUmVhZExhbmVzfD1hJmUucGVuZGluZ0xhbmVzKTthPWUubXV0YWJsZVJlYWRMYW5lcztlLmVudGFuZ2xlZExhbmVzfD1hO2Zvcih2YXIgZD1cbmUuZW50YW5nbGVtZW50cyxoPWE7MDxoOyl7dmFyIGs9MzEtVmMoaCksdj0xPDxrO2Rba118PWE7aCY9fnZ9fX0sW2MsYixkXSk7aC51c2VFZmZlY3QoZnVuY3Rpb24oKXtyZXR1cm4gZChiLl9zb3VyY2UsZnVuY3Rpb24oKXt2YXIgYT1wLmdldFNuYXBzaG90LGM9cC5zZXRTbmFwc2hvdDt0cnl7YyhhKGIuX3NvdXJjZSkpO3ZhciBkPUlnKHcpO2UubXV0YWJsZVJlYWRMYW5lc3w9ZCZlLnBlbmRpbmdMYW5lc31jYXRjaChxKXtjKGZ1bmN0aW9uKCl7dGhyb3cgcTt9KX19KX0sW2IsZF0pO0hlKEMsYykmJkhlKHgsYikmJkhlKEEsZCl8fChhPXtwZW5kaW5nOm51bGwsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOkpoLGxhc3RSZW5kZXJlZFN0YXRlOm59LGEuZGlzcGF0Y2g9bD1PaC5iaW5kKG51bGwsUixhKSxrLnF1ZXVlPWEsay5iYXNlUXVldWU9bnVsbCxuPU1oKGUsYixjKSxrLm1lbW9pemVkU3RhdGU9ay5iYXNlU3RhdGU9bik7cmV0dXJuIG59XG5mdW5jdGlvbiBQaChhLGIsYyl7dmFyIGQ9SWgoKTtyZXR1cm4gTmgoZCxhLGIsYyl9ZnVuY3Rpb24gUWgoYSl7dmFyIGI9SGgoKTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgYSYmKGE9YSgpKTtiLm1lbW9pemVkU3RhdGU9Yi5iYXNlU3RhdGU9YTthPWIucXVldWU9e3BlbmRpbmc6bnVsbCxkaXNwYXRjaDpudWxsLGxhc3RSZW5kZXJlZFJlZHVjZXI6SmgsbGFzdFJlbmRlcmVkU3RhdGU6YX07YT1hLmRpc3BhdGNoPU9oLmJpbmQobnVsbCxSLGEpO3JldHVybltiLm1lbW9pemVkU3RhdGUsYV19XG5mdW5jdGlvbiBSaChhLGIsYyxkKXthPXt0YWc6YSxjcmVhdGU6YixkZXN0cm95OmMsZGVwczpkLG5leHQ6bnVsbH07Yj1SLnVwZGF0ZVF1ZXVlO251bGw9PT1iPyhiPXtsYXN0RWZmZWN0Om51bGx9LFIudXBkYXRlUXVldWU9YixiLmxhc3RFZmZlY3Q9YS5uZXh0PWEpOihjPWIubGFzdEVmZmVjdCxudWxsPT09Yz9iLmxhc3RFZmZlY3Q9YS5uZXh0PWE6KGQ9Yy5uZXh0LGMubmV4dD1hLGEubmV4dD1kLGIubGFzdEVmZmVjdD1hKSk7cmV0dXJuIGF9ZnVuY3Rpb24gU2goYSl7dmFyIGI9SGgoKTthPXtjdXJyZW50OmF9O3JldHVybiBiLm1lbW9pemVkU3RhdGU9YX1mdW5jdGlvbiBUaCgpe3JldHVybiBJaCgpLm1lbW9pemVkU3RhdGV9ZnVuY3Rpb24gVWgoYSxiLGMsZCl7dmFyIGU9SGgoKTtSLmZsYWdzfD1hO2UubWVtb2l6ZWRTdGF0ZT1SaCgxfGIsYyx2b2lkIDAsdm9pZCAwPT09ZD9udWxsOmQpfVxuZnVuY3Rpb24gVmgoYSxiLGMsZCl7dmFyIGU9SWgoKTtkPXZvaWQgMD09PWQ/bnVsbDpkO3ZhciBmPXZvaWQgMDtpZihudWxsIT09Uyl7dmFyIGc9Uy5tZW1vaXplZFN0YXRlO2Y9Zy5kZXN0cm95O2lmKG51bGwhPT1kJiZCaChkLGcuZGVwcykpe1JoKGIsYyxmLGQpO3JldHVybn19Ui5mbGFnc3w9YTtlLm1lbW9pemVkU3RhdGU9UmgoMXxiLGMsZixkKX1mdW5jdGlvbiBXaChhLGIpe3JldHVybiBVaCg1MTYsNCxhLGIpfWZ1bmN0aW9uIFhoKGEsYil7cmV0dXJuIFZoKDUxNiw0LGEsYil9ZnVuY3Rpb24gWWgoYSxiKXtyZXR1cm4gVmgoNCwyLGEsYil9ZnVuY3Rpb24gWmgoYSxiKXtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYilyZXR1cm4gYT1hKCksYihhKSxmdW5jdGlvbigpe2IobnVsbCl9O2lmKG51bGwhPT1iJiZ2b2lkIDAhPT1iKXJldHVybiBhPWEoKSxiLmN1cnJlbnQ9YSxmdW5jdGlvbigpe2IuY3VycmVudD1udWxsfX1cbmZ1bmN0aW9uICRoKGEsYixjKXtjPW51bGwhPT1jJiZ2b2lkIDAhPT1jP2MuY29uY2F0KFthXSk6bnVsbDtyZXR1cm4gVmgoNCwyLFpoLmJpbmQobnVsbCxiLGEpLGMpfWZ1bmN0aW9uIGFpKCl7fWZ1bmN0aW9uIGJpKGEsYil7dmFyIGM9SWgoKTtiPXZvaWQgMD09PWI/bnVsbDpiO3ZhciBkPWMubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09ZCYmbnVsbCE9PWImJkJoKGIsZFsxXSkpcmV0dXJuIGRbMF07Yy5tZW1vaXplZFN0YXRlPVthLGJdO3JldHVybiBhfWZ1bmN0aW9uIGNpKGEsYil7dmFyIGM9SWgoKTtiPXZvaWQgMD09PWI/bnVsbDpiO3ZhciBkPWMubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09ZCYmbnVsbCE9PWImJkJoKGIsZFsxXSkpcmV0dXJuIGRbMF07YT1hKCk7Yy5tZW1vaXplZFN0YXRlPVthLGJdO3JldHVybiBhfVxuZnVuY3Rpb24gZGkoYSxiKXt2YXIgYz1lZygpO2dnKDk4PmM/OTg6YyxmdW5jdGlvbigpe2EoITApfSk7Z2coOTc8Yz85NzpjLGZ1bmN0aW9uKCl7dmFyIGM9d2gudHJhbnNpdGlvbjt3aC50cmFuc2l0aW9uPTE7dHJ5e2EoITEpLGIoKX1maW5hbGx5e3doLnRyYW5zaXRpb249Y319KX1cbmZ1bmN0aW9uIE9oKGEsYixjKXt2YXIgZD1IZygpLGU9SWcoYSksZj17bGFuZTplLGFjdGlvbjpjLGVhZ2VyUmVkdWNlcjpudWxsLGVhZ2VyU3RhdGU6bnVsbCxuZXh0Om51bGx9LGc9Yi5wZW5kaW5nO251bGw9PT1nP2YubmV4dD1mOihmLm5leHQ9Zy5uZXh0LGcubmV4dD1mKTtiLnBlbmRpbmc9ZjtnPWEuYWx0ZXJuYXRlO2lmKGE9PT1SfHxudWxsIT09ZyYmZz09PVIpemg9eWg9ITA7ZWxzZXtpZigwPT09YS5sYW5lcyYmKG51bGw9PT1nfHwwPT09Zy5sYW5lcykmJihnPWIubGFzdFJlbmRlcmVkUmVkdWNlcixudWxsIT09ZykpdHJ5e3ZhciBoPWIubGFzdFJlbmRlcmVkU3RhdGUsaz1nKGgsYyk7Zi5lYWdlclJlZHVjZXI9ZztmLmVhZ2VyU3RhdGU9aztpZihIZShrLGgpKXJldHVybn1jYXRjaChsKXt9ZmluYWxseXt9SmcoYSxlLGQpfX1cbnZhciBHaD17cmVhZENvbnRleHQ6dmcsdXNlQ2FsbGJhY2s6QWgsdXNlQ29udGV4dDpBaCx1c2VFZmZlY3Q6QWgsdXNlSW1wZXJhdGl2ZUhhbmRsZTpBaCx1c2VMYXlvdXRFZmZlY3Q6QWgsdXNlTWVtbzpBaCx1c2VSZWR1Y2VyOkFoLHVzZVJlZjpBaCx1c2VTdGF0ZTpBaCx1c2VEZWJ1Z1ZhbHVlOkFoLHVzZURlZmVycmVkVmFsdWU6QWgsdXNlVHJhbnNpdGlvbjpBaCx1c2VNdXRhYmxlU291cmNlOkFoLHVzZU9wYXF1ZUlkZW50aWZpZXI6QWgsdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiExfSxEaD17cmVhZENvbnRleHQ6dmcsdXNlQ2FsbGJhY2s6ZnVuY3Rpb24oYSxiKXtIaCgpLm1lbW9pemVkU3RhdGU9W2Esdm9pZCAwPT09Yj9udWxsOmJdO3JldHVybiBhfSx1c2VDb250ZXh0OnZnLHVzZUVmZmVjdDpXaCx1c2VJbXBlcmF0aXZlSGFuZGxlOmZ1bmN0aW9uKGEsYixjKXtjPW51bGwhPT1jJiZ2b2lkIDAhPT1jP2MuY29uY2F0KFthXSk6bnVsbDtyZXR1cm4gVWgoNCwyLFpoLmJpbmQobnVsbCxcbmIsYSksYyl9LHVzZUxheW91dEVmZmVjdDpmdW5jdGlvbihhLGIpe3JldHVybiBVaCg0LDIsYSxiKX0sdXNlTWVtbzpmdW5jdGlvbihhLGIpe3ZhciBjPUhoKCk7Yj12b2lkIDA9PT1iP251bGw6YjthPWEoKTtjLm1lbW9pemVkU3RhdGU9W2EsYl07cmV0dXJuIGF9LHVzZVJlZHVjZXI6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPUhoKCk7Yj12b2lkIDAhPT1jP2MoYik6YjtkLm1lbW9pemVkU3RhdGU9ZC5iYXNlU3RhdGU9YjthPWQucXVldWU9e3BlbmRpbmc6bnVsbCxkaXNwYXRjaDpudWxsLGxhc3RSZW5kZXJlZFJlZHVjZXI6YSxsYXN0UmVuZGVyZWRTdGF0ZTpifTthPWEuZGlzcGF0Y2g9T2guYmluZChudWxsLFIsYSk7cmV0dXJuW2QubWVtb2l6ZWRTdGF0ZSxhXX0sdXNlUmVmOlNoLHVzZVN0YXRlOlFoLHVzZURlYnVnVmFsdWU6YWksdXNlRGVmZXJyZWRWYWx1ZTpmdW5jdGlvbihhKXt2YXIgYj1RaChhKSxjPWJbMF0sZD1iWzFdO1doKGZ1bmN0aW9uKCl7dmFyIGI9d2gudHJhbnNpdGlvbjtcbndoLnRyYW5zaXRpb249MTt0cnl7ZChhKX1maW5hbGx5e3doLnRyYW5zaXRpb249Yn19LFthXSk7cmV0dXJuIGN9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgYT1RaCghMSksYj1hWzBdO2E9ZGkuYmluZChudWxsLGFbMV0pO1NoKGEpO3JldHVyblthLGJdfSx1c2VNdXRhYmxlU291cmNlOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1IaCgpO2QubWVtb2l6ZWRTdGF0ZT17cmVmczp7Z2V0U25hcHNob3Q6YixzZXRTbmFwc2hvdDpudWxsfSxzb3VyY2U6YSxzdWJzY3JpYmU6Y307cmV0dXJuIE5oKGQsYSxiLGMpfSx1c2VPcGFxdWVJZGVudGlmaWVyOmZ1bmN0aW9uKCl7aWYobGgpe3ZhciBhPSExLGI9dWYoZnVuY3Rpb24oKXthfHwoYT0hMCxjKFwicjpcIisodGYrKykudG9TdHJpbmcoMzYpKSk7dGhyb3cgRXJyb3IoeSgzNTUpKTt9KSxjPVFoKGIpWzFdOzA9PT0oUi5tb2RlJjIpJiYoUi5mbGFnc3w9NTE2LFJoKDUsZnVuY3Rpb24oKXtjKFwicjpcIisodGYrKykudG9TdHJpbmcoMzYpKX0sXG52b2lkIDAsbnVsbCkpO3JldHVybiBifWI9XCJyOlwiKyh0ZisrKS50b1N0cmluZygzNik7UWgoYik7cmV0dXJuIGJ9LHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjohMX0sRWg9e3JlYWRDb250ZXh0OnZnLHVzZUNhbGxiYWNrOmJpLHVzZUNvbnRleHQ6dmcsdXNlRWZmZWN0OlhoLHVzZUltcGVyYXRpdmVIYW5kbGU6JGgsdXNlTGF5b3V0RWZmZWN0OlloLHVzZU1lbW86Y2ksdXNlUmVkdWNlcjpLaCx1c2VSZWY6VGgsdXNlU3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gS2goSmgpfSx1c2VEZWJ1Z1ZhbHVlOmFpLHVzZURlZmVycmVkVmFsdWU6ZnVuY3Rpb24oYSl7dmFyIGI9S2goSmgpLGM9YlswXSxkPWJbMV07WGgoZnVuY3Rpb24oKXt2YXIgYj13aC50cmFuc2l0aW9uO3doLnRyYW5zaXRpb249MTt0cnl7ZChhKX1maW5hbGx5e3doLnRyYW5zaXRpb249Yn19LFthXSk7cmV0dXJuIGN9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgYT1LaChKaClbMF07cmV0dXJuW1RoKCkuY3VycmVudCxcbmFdfSx1c2VNdXRhYmxlU291cmNlOlBoLHVzZU9wYXF1ZUlkZW50aWZpZXI6ZnVuY3Rpb24oKXtyZXR1cm4gS2goSmgpWzBdfSx1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6ITF9LEZoPXtyZWFkQ29udGV4dDp2Zyx1c2VDYWxsYmFjazpiaSx1c2VDb250ZXh0OnZnLHVzZUVmZmVjdDpYaCx1c2VJbXBlcmF0aXZlSGFuZGxlOiRoLHVzZUxheW91dEVmZmVjdDpZaCx1c2VNZW1vOmNpLHVzZVJlZHVjZXI6TGgsdXNlUmVmOlRoLHVzZVN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIExoKEpoKX0sdXNlRGVidWdWYWx1ZTphaSx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKGEpe3ZhciBiPUxoKEpoKSxjPWJbMF0sZD1iWzFdO1hoKGZ1bmN0aW9uKCl7dmFyIGI9d2gudHJhbnNpdGlvbjt3aC50cmFuc2l0aW9uPTE7dHJ5e2QoYSl9ZmluYWxseXt3aC50cmFuc2l0aW9uPWJ9fSxbYV0pO3JldHVybiBjfSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9TGgoSmgpWzBdO3JldHVybltUaCgpLmN1cnJlbnQsXG5hXX0sdXNlTXV0YWJsZVNvdXJjZTpQaCx1c2VPcGFxdWVJZGVudGlmaWVyOmZ1bmN0aW9uKCl7cmV0dXJuIExoKEpoKVswXX0sdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiExfSxlaT1yYS5SZWFjdEN1cnJlbnRPd25lcix1Zz0hMTtmdW5jdGlvbiBmaShhLGIsYyxkKXtiLmNoaWxkPW51bGw9PT1hP1pnKGIsbnVsbCxjLGQpOllnKGIsYS5jaGlsZCxjLGQpfWZ1bmN0aW9uIGdpKGEsYixjLGQsZSl7Yz1jLnJlbmRlcjt2YXIgZj1iLnJlZjt0ZyhiLGUpO2Q9Q2goYSxiLGMsZCxmLGUpO2lmKG51bGwhPT1hJiYhdWcpcmV0dXJuIGIudXBkYXRlUXVldWU9YS51cGRhdGVRdWV1ZSxiLmZsYWdzJj0tNTE3LGEubGFuZXMmPX5lLGhpKGEsYixlKTtiLmZsYWdzfD0xO2ZpKGEsYixkLGUpO3JldHVybiBiLmNoaWxkfVxuZnVuY3Rpb24gaWkoYSxiLGMsZCxlLGYpe2lmKG51bGw9PT1hKXt2YXIgZz1jLnR5cGU7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGcmJiFqaShnKSYmdm9pZCAwPT09Zy5kZWZhdWx0UHJvcHMmJm51bGw9PT1jLmNvbXBhcmUmJnZvaWQgMD09PWMuZGVmYXVsdFByb3BzKXJldHVybiBiLnRhZz0xNSxiLnR5cGU9ZyxraShhLGIsZyxkLGUsZik7YT1WZyhjLnR5cGUsbnVsbCxkLGIsYi5tb2RlLGYpO2EucmVmPWIucmVmO2EucmV0dXJuPWI7cmV0dXJuIGIuY2hpbGQ9YX1nPWEuY2hpbGQ7aWYoMD09PShlJmYpJiYoZT1nLm1lbW9pemVkUHJvcHMsYz1jLmNvbXBhcmUsYz1udWxsIT09Yz9jOkplLGMoZSxkKSYmYS5yZWY9PT1iLnJlZikpcmV0dXJuIGhpKGEsYixmKTtiLmZsYWdzfD0xO2E9VGcoZyxkKTthLnJlZj1iLnJlZjthLnJldHVybj1iO3JldHVybiBiLmNoaWxkPWF9XG5mdW5jdGlvbiBraShhLGIsYyxkLGUsZil7aWYobnVsbCE9PWEmJkplKGEubWVtb2l6ZWRQcm9wcyxkKSYmYS5yZWY9PT1iLnJlZilpZih1Zz0hMSwwIT09KGYmZSkpMCE9PShhLmZsYWdzJjE2Mzg0KSYmKHVnPSEwKTtlbHNlIHJldHVybiBiLmxhbmVzPWEubGFuZXMsaGkoYSxiLGYpO3JldHVybiBsaShhLGIsYyxkLGYpfVxuZnVuY3Rpb24gbWkoYSxiLGMpe3ZhciBkPWIucGVuZGluZ1Byb3BzLGU9ZC5jaGlsZHJlbixmPW51bGwhPT1hP2EubWVtb2l6ZWRTdGF0ZTpudWxsO2lmKFwiaGlkZGVuXCI9PT1kLm1vZGV8fFwidW5zdGFibGUtZGVmZXItd2l0aG91dC1oaWRpbmdcIj09PWQubW9kZSlpZigwPT09KGIubW9kZSY0KSliLm1lbW9pemVkU3RhdGU9e2Jhc2VMYW5lczowfSxuaShiLGMpO2Vsc2UgaWYoMCE9PShjJjEwNzM3NDE4MjQpKWIubWVtb2l6ZWRTdGF0ZT17YmFzZUxhbmVzOjB9LG5pKGIsbnVsbCE9PWY/Zi5iYXNlTGFuZXM6Yyk7ZWxzZSByZXR1cm4gYT1udWxsIT09Zj9mLmJhc2VMYW5lc3xjOmMsYi5sYW5lcz1iLmNoaWxkTGFuZXM9MTA3Mzc0MTgyNCxiLm1lbW9pemVkU3RhdGU9e2Jhc2VMYW5lczphfSxuaShiLGEpLG51bGw7ZWxzZSBudWxsIT09Zj8oZD1mLmJhc2VMYW5lc3xjLGIubWVtb2l6ZWRTdGF0ZT1udWxsKTpkPWMsbmkoYixkKTtmaShhLGIsZSxjKTtyZXR1cm4gYi5jaGlsZH1cbmZ1bmN0aW9uIG9pKGEsYil7dmFyIGM9Yi5yZWY7aWYobnVsbD09PWEmJm51bGwhPT1jfHxudWxsIT09YSYmYS5yZWYhPT1jKWIuZmxhZ3N8PTEyOH1mdW5jdGlvbiBsaShhLGIsYyxkLGUpe3ZhciBmPUZmKGMpP0RmOk0uY3VycmVudDtmPUVmKGIsZik7dGcoYixlKTtjPUNoKGEsYixjLGQsZixlKTtpZihudWxsIT09YSYmIXVnKXJldHVybiBiLnVwZGF0ZVF1ZXVlPWEudXBkYXRlUXVldWUsYi5mbGFncyY9LTUxNyxhLmxhbmVzJj1+ZSxoaShhLGIsZSk7Yi5mbGFnc3w9MTtmaShhLGIsYyxlKTtyZXR1cm4gYi5jaGlsZH1cbmZ1bmN0aW9uIHBpKGEsYixjLGQsZSl7aWYoRmYoYykpe3ZhciBmPSEwO0pmKGIpfWVsc2UgZj0hMTt0ZyhiLGUpO2lmKG51bGw9PT1iLnN0YXRlTm9kZSludWxsIT09YSYmKGEuYWx0ZXJuYXRlPW51bGwsYi5hbHRlcm5hdGU9bnVsbCxiLmZsYWdzfD0yKSxNZyhiLGMsZCksT2coYixjLGQsZSksZD0hMDtlbHNlIGlmKG51bGw9PT1hKXt2YXIgZz1iLnN0YXRlTm9kZSxoPWIubWVtb2l6ZWRQcm9wcztnLnByb3BzPWg7dmFyIGs9Zy5jb250ZXh0LGw9Yy5jb250ZXh0VHlwZTtcIm9iamVjdFwiPT09dHlwZW9mIGwmJm51bGwhPT1sP2w9dmcobCk6KGw9RmYoYyk/RGY6TS5jdXJyZW50LGw9RWYoYixsKSk7dmFyIG49Yy5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMsQT1cImZ1bmN0aW9uXCI9PT10eXBlb2Ygbnx8XCJmdW5jdGlvblwiPT09dHlwZW9mIGcuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGU7QXx8XCJmdW5jdGlvblwiIT09dHlwZW9mIGcuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJlxuXCJmdW5jdGlvblwiIT09dHlwZW9mIGcuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc3x8KGghPT1kfHxrIT09bCkmJk5nKGIsZyxkLGwpO3dnPSExO3ZhciBwPWIubWVtb2l6ZWRTdGF0ZTtnLnN0YXRlPXA7Q2coYixkLGcsZSk7az1iLm1lbW9pemVkU3RhdGU7aCE9PWR8fHAhPT1rfHxOLmN1cnJlbnR8fHdnPyhcImZ1bmN0aW9uXCI9PT10eXBlb2YgbiYmKEdnKGIsYyxuLGQpLGs9Yi5tZW1vaXplZFN0YXRlKSwoaD13Z3x8TGcoYixjLGgsZCxwLGssbCkpPyhBfHxcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5jb21wb25lbnRXaWxsTW91bnR8fChcImZ1bmN0aW9uXCI9PT10eXBlb2YgZy5jb21wb25lbnRXaWxsTW91bnQmJmcuY29tcG9uZW50V2lsbE1vdW50KCksXCJmdW5jdGlvblwiPT09dHlwZW9mIGcuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmZy5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50KCkpLFwiZnVuY3Rpb25cIj09PVxudHlwZW9mIGcuY29tcG9uZW50RGlkTW91bnQmJihiLmZsYWdzfD00KSk6KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmNvbXBvbmVudERpZE1vdW50JiYoYi5mbGFnc3w9NCksYi5tZW1vaXplZFByb3BzPWQsYi5tZW1vaXplZFN0YXRlPWspLGcucHJvcHM9ZCxnLnN0YXRlPWssZy5jb250ZXh0PWwsZD1oKTooXCJmdW5jdGlvblwiPT09dHlwZW9mIGcuY29tcG9uZW50RGlkTW91bnQmJihiLmZsYWdzfD00KSxkPSExKX1lbHNle2c9Yi5zdGF0ZU5vZGU7eWcoYSxiKTtoPWIubWVtb2l6ZWRQcm9wcztsPWIudHlwZT09PWIuZWxlbWVudFR5cGU/aDpsZyhiLnR5cGUsaCk7Zy5wcm9wcz1sO0E9Yi5wZW5kaW5nUHJvcHM7cD1nLmNvbnRleHQ7az1jLmNvbnRleHRUeXBlO1wib2JqZWN0XCI9PT10eXBlb2YgayYmbnVsbCE9PWs/az12ZyhrKTooaz1GZihjKT9EZjpNLmN1cnJlbnQsaz1FZihiLGspKTt2YXIgQz1jLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wczsobj1cImZ1bmN0aW9uXCI9PT10eXBlb2YgQ3x8XG5cImZ1bmN0aW9uXCI9PT10eXBlb2YgZy5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSl8fFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzfHwoaCE9PUF8fHAhPT1rKSYmTmcoYixnLGQsayk7d2c9ITE7cD1iLm1lbW9pemVkU3RhdGU7Zy5zdGF0ZT1wO0NnKGIsZCxnLGUpO3ZhciB4PWIubWVtb2l6ZWRTdGF0ZTtoIT09QXx8cCE9PXh8fE4uY3VycmVudHx8d2c/KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBDJiYoR2coYixjLEMsZCkseD1iLm1lbW9pemVkU3RhdGUpLChsPXdnfHxMZyhiLGMsbCxkLHAseCxrKSk/KG58fFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlJiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5jb21wb25lbnRXaWxsVXBkYXRlfHwoXCJmdW5jdGlvblwiPT09dHlwZW9mIGcuY29tcG9uZW50V2lsbFVwZGF0ZSYmZy5jb21wb25lbnRXaWxsVXBkYXRlKGQsXG54LGspLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlJiZnLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlKGQseCxrKSksXCJmdW5jdGlvblwiPT09dHlwZW9mIGcuY29tcG9uZW50RGlkVXBkYXRlJiYoYi5mbGFnc3w9NCksXCJmdW5jdGlvblwiPT09dHlwZW9mIGcuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUmJihiLmZsYWdzfD0yNTYpKTooXCJmdW5jdGlvblwiIT09dHlwZW9mIGcuY29tcG9uZW50RGlkVXBkYXRlfHxoPT09YS5tZW1vaXplZFByb3BzJiZwPT09YS5tZW1vaXplZFN0YXRlfHwoYi5mbGFnc3w9NCksXCJmdW5jdGlvblwiIT09dHlwZW9mIGcuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGV8fGg9PT1hLm1lbW9pemVkUHJvcHMmJnA9PT1hLm1lbW9pemVkU3RhdGV8fChiLmZsYWdzfD0yNTYpLGIubWVtb2l6ZWRQcm9wcz1kLGIubWVtb2l6ZWRTdGF0ZT14KSxnLnByb3BzPWQsZy5zdGF0ZT14LGcuY29udGV4dD1rLGQ9bCk6KFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLmNvbXBvbmVudERpZFVwZGF0ZXx8XG5oPT09YS5tZW1vaXplZFByb3BzJiZwPT09YS5tZW1vaXplZFN0YXRlfHwoYi5mbGFnc3w9NCksXCJmdW5jdGlvblwiIT09dHlwZW9mIGcuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGV8fGg9PT1hLm1lbW9pemVkUHJvcHMmJnA9PT1hLm1lbW9pemVkU3RhdGV8fChiLmZsYWdzfD0yNTYpLGQ9ITEpfXJldHVybiBxaShhLGIsYyxkLGYsZSl9XG5mdW5jdGlvbiBxaShhLGIsYyxkLGUsZil7b2koYSxiKTt2YXIgZz0wIT09KGIuZmxhZ3MmNjQpO2lmKCFkJiYhZylyZXR1cm4gZSYmS2YoYixjLCExKSxoaShhLGIsZik7ZD1iLnN0YXRlTm9kZTtlaS5jdXJyZW50PWI7dmFyIGg9ZyYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGMuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yP251bGw6ZC5yZW5kZXIoKTtiLmZsYWdzfD0xO251bGwhPT1hJiZnPyhiLmNoaWxkPVlnKGIsYS5jaGlsZCxudWxsLGYpLGIuY2hpbGQ9WWcoYixudWxsLGgsZikpOmZpKGEsYixoLGYpO2IubWVtb2l6ZWRTdGF0ZT1kLnN0YXRlO2UmJktmKGIsYywhMCk7cmV0dXJuIGIuY2hpbGR9ZnVuY3Rpb24gcmkoYSl7dmFyIGI9YS5zdGF0ZU5vZGU7Yi5wZW5kaW5nQ29udGV4dD9IZihhLGIucGVuZGluZ0NvbnRleHQsYi5wZW5kaW5nQ29udGV4dCE9PWIuY29udGV4dCk6Yi5jb250ZXh0JiZIZihhLGIuY29udGV4dCwhMSk7ZWgoYSxiLmNvbnRhaW5lckluZm8pfVxudmFyIHNpPXtkZWh5ZHJhdGVkOm51bGwscmV0cnlMYW5lOjB9O1xuZnVuY3Rpb24gdGkoYSxiLGMpe3ZhciBkPWIucGVuZGluZ1Byb3BzLGU9UC5jdXJyZW50LGY9ITEsZzsoZz0wIT09KGIuZmxhZ3MmNjQpKXx8KGc9bnVsbCE9PWEmJm51bGw9PT1hLm1lbW9pemVkU3RhdGU/ITE6MCE9PShlJjIpKTtnPyhmPSEwLGIuZmxhZ3MmPS02NSk6bnVsbCE9PWEmJm51bGw9PT1hLm1lbW9pemVkU3RhdGV8fHZvaWQgMD09PWQuZmFsbGJhY2t8fCEwPT09ZC51bnN0YWJsZV9hdm9pZFRoaXNGYWxsYmFja3x8KGV8PTEpO0koUCxlJjEpO2lmKG51bGw9PT1hKXt2b2lkIDAhPT1kLmZhbGxiYWNrJiZwaChiKTthPWQuY2hpbGRyZW47ZT1kLmZhbGxiYWNrO2lmKGYpcmV0dXJuIGE9dWkoYixhLGUsYyksYi5jaGlsZC5tZW1vaXplZFN0YXRlPXtiYXNlTGFuZXM6Y30sYi5tZW1vaXplZFN0YXRlPXNpLGE7aWYoXCJudW1iZXJcIj09PXR5cGVvZiBkLnVuc3RhYmxlX2V4cGVjdGVkTG9hZFRpbWUpcmV0dXJuIGE9dWkoYixhLGUsYyksYi5jaGlsZC5tZW1vaXplZFN0YXRlPXtiYXNlTGFuZXM6Y30sXG5iLm1lbW9pemVkU3RhdGU9c2ksYi5sYW5lcz0zMzU1NDQzMixhO2M9dmkoe21vZGU6XCJ2aXNpYmxlXCIsY2hpbGRyZW46YX0sYi5tb2RlLGMsbnVsbCk7Yy5yZXR1cm49YjtyZXR1cm4gYi5jaGlsZD1jfWlmKG51bGwhPT1hLm1lbW9pemVkU3RhdGUpe2lmKGYpcmV0dXJuIGQ9d2koYSxiLGQuY2hpbGRyZW4sZC5mYWxsYmFjayxjKSxmPWIuY2hpbGQsZT1hLmNoaWxkLm1lbW9pemVkU3RhdGUsZi5tZW1vaXplZFN0YXRlPW51bGw9PT1lP3tiYXNlTGFuZXM6Y306e2Jhc2VMYW5lczplLmJhc2VMYW5lc3xjfSxmLmNoaWxkTGFuZXM9YS5jaGlsZExhbmVzJn5jLGIubWVtb2l6ZWRTdGF0ZT1zaSxkO2M9eGkoYSxiLGQuY2hpbGRyZW4sYyk7Yi5tZW1vaXplZFN0YXRlPW51bGw7cmV0dXJuIGN9aWYoZilyZXR1cm4gZD13aShhLGIsZC5jaGlsZHJlbixkLmZhbGxiYWNrLGMpLGY9Yi5jaGlsZCxlPWEuY2hpbGQubWVtb2l6ZWRTdGF0ZSxmLm1lbW9pemVkU3RhdGU9bnVsbD09PWU/e2Jhc2VMYW5lczpjfTpcbntiYXNlTGFuZXM6ZS5iYXNlTGFuZXN8Y30sZi5jaGlsZExhbmVzPWEuY2hpbGRMYW5lcyZ+YyxiLm1lbW9pemVkU3RhdGU9c2ksZDtjPXhpKGEsYixkLmNoaWxkcmVuLGMpO2IubWVtb2l6ZWRTdGF0ZT1udWxsO3JldHVybiBjfWZ1bmN0aW9uIHVpKGEsYixjLGQpe3ZhciBlPWEubW9kZSxmPWEuY2hpbGQ7Yj17bW9kZTpcImhpZGRlblwiLGNoaWxkcmVuOmJ9OzA9PT0oZSYyKSYmbnVsbCE9PWY/KGYuY2hpbGRMYW5lcz0wLGYucGVuZGluZ1Byb3BzPWIpOmY9dmkoYixlLDAsbnVsbCk7Yz1YZyhjLGUsZCxudWxsKTtmLnJldHVybj1hO2MucmV0dXJuPWE7Zi5zaWJsaW5nPWM7YS5jaGlsZD1mO3JldHVybiBjfVxuZnVuY3Rpb24geGkoYSxiLGMsZCl7dmFyIGU9YS5jaGlsZDthPWUuc2libGluZztjPVRnKGUse21vZGU6XCJ2aXNpYmxlXCIsY2hpbGRyZW46Y30pOzA9PT0oYi5tb2RlJjIpJiYoYy5sYW5lcz1kKTtjLnJldHVybj1iO2Muc2libGluZz1udWxsO251bGwhPT1hJiYoYS5uZXh0RWZmZWN0PW51bGwsYS5mbGFncz04LGIuZmlyc3RFZmZlY3Q9Yi5sYXN0RWZmZWN0PWEpO3JldHVybiBiLmNoaWxkPWN9XG5mdW5jdGlvbiB3aShhLGIsYyxkLGUpe3ZhciBmPWIubW9kZSxnPWEuY2hpbGQ7YT1nLnNpYmxpbmc7dmFyIGg9e21vZGU6XCJoaWRkZW5cIixjaGlsZHJlbjpjfTswPT09KGYmMikmJmIuY2hpbGQhPT1nPyhjPWIuY2hpbGQsYy5jaGlsZExhbmVzPTAsYy5wZW5kaW5nUHJvcHM9aCxnPWMubGFzdEVmZmVjdCxudWxsIT09Zz8oYi5maXJzdEVmZmVjdD1jLmZpcnN0RWZmZWN0LGIubGFzdEVmZmVjdD1nLGcubmV4dEVmZmVjdD1udWxsKTpiLmZpcnN0RWZmZWN0PWIubGFzdEVmZmVjdD1udWxsKTpjPVRnKGcsaCk7bnVsbCE9PWE/ZD1UZyhhLGQpOihkPVhnKGQsZixlLG51bGwpLGQuZmxhZ3N8PTIpO2QucmV0dXJuPWI7Yy5yZXR1cm49YjtjLnNpYmxpbmc9ZDtiLmNoaWxkPWM7cmV0dXJuIGR9ZnVuY3Rpb24geWkoYSxiKXthLmxhbmVzfD1iO3ZhciBjPWEuYWx0ZXJuYXRlO251bGwhPT1jJiYoYy5sYW5lc3w9Yik7c2coYS5yZXR1cm4sYil9XG5mdW5jdGlvbiB6aShhLGIsYyxkLGUsZil7dmFyIGc9YS5tZW1vaXplZFN0YXRlO251bGw9PT1nP2EubWVtb2l6ZWRTdGF0ZT17aXNCYWNrd2FyZHM6YixyZW5kZXJpbmc6bnVsbCxyZW5kZXJpbmdTdGFydFRpbWU6MCxsYXN0OmQsdGFpbDpjLHRhaWxNb2RlOmUsbGFzdEVmZmVjdDpmfTooZy5pc0JhY2t3YXJkcz1iLGcucmVuZGVyaW5nPW51bGwsZy5yZW5kZXJpbmdTdGFydFRpbWU9MCxnLmxhc3Q9ZCxnLnRhaWw9YyxnLnRhaWxNb2RlPWUsZy5sYXN0RWZmZWN0PWYpfVxuZnVuY3Rpb24gQWkoYSxiLGMpe3ZhciBkPWIucGVuZGluZ1Byb3BzLGU9ZC5yZXZlYWxPcmRlcixmPWQudGFpbDtmaShhLGIsZC5jaGlsZHJlbixjKTtkPVAuY3VycmVudDtpZigwIT09KGQmMikpZD1kJjF8MixiLmZsYWdzfD02NDtlbHNle2lmKG51bGwhPT1hJiYwIT09KGEuZmxhZ3MmNjQpKWE6Zm9yKGE9Yi5jaGlsZDtudWxsIT09YTspe2lmKDEzPT09YS50YWcpbnVsbCE9PWEubWVtb2l6ZWRTdGF0ZSYmeWkoYSxjKTtlbHNlIGlmKDE5PT09YS50YWcpeWkoYSxjKTtlbHNlIGlmKG51bGwhPT1hLmNoaWxkKXthLmNoaWxkLnJldHVybj1hO2E9YS5jaGlsZDtjb250aW51ZX1pZihhPT09YilicmVhayBhO2Zvcig7bnVsbD09PWEuc2libGluZzspe2lmKG51bGw9PT1hLnJldHVybnx8YS5yZXR1cm49PT1iKWJyZWFrIGE7YT1hLnJldHVybn1hLnNpYmxpbmcucmV0dXJuPWEucmV0dXJuO2E9YS5zaWJsaW5nfWQmPTF9SShQLGQpO2lmKDA9PT0oYi5tb2RlJjIpKWIubWVtb2l6ZWRTdGF0ZT1cbm51bGw7ZWxzZSBzd2l0Y2goZSl7Y2FzZSBcImZvcndhcmRzXCI6Yz1iLmNoaWxkO2ZvcihlPW51bGw7bnVsbCE9PWM7KWE9Yy5hbHRlcm5hdGUsbnVsbCE9PWEmJm51bGw9PT1paChhKSYmKGU9YyksYz1jLnNpYmxpbmc7Yz1lO251bGw9PT1jPyhlPWIuY2hpbGQsYi5jaGlsZD1udWxsKTooZT1jLnNpYmxpbmcsYy5zaWJsaW5nPW51bGwpO3ppKGIsITEsZSxjLGYsYi5sYXN0RWZmZWN0KTticmVhaztjYXNlIFwiYmFja3dhcmRzXCI6Yz1udWxsO2U9Yi5jaGlsZDtmb3IoYi5jaGlsZD1udWxsO251bGwhPT1lOyl7YT1lLmFsdGVybmF0ZTtpZihudWxsIT09YSYmbnVsbD09PWloKGEpKXtiLmNoaWxkPWU7YnJlYWt9YT1lLnNpYmxpbmc7ZS5zaWJsaW5nPWM7Yz1lO2U9YX16aShiLCEwLGMsbnVsbCxmLGIubGFzdEVmZmVjdCk7YnJlYWs7Y2FzZSBcInRvZ2V0aGVyXCI6emkoYiwhMSxudWxsLG51bGwsdm9pZCAwLGIubGFzdEVmZmVjdCk7YnJlYWs7ZGVmYXVsdDpiLm1lbW9pemVkU3RhdGU9bnVsbH1yZXR1cm4gYi5jaGlsZH1cbmZ1bmN0aW9uIGhpKGEsYixjKXtudWxsIT09YSYmKGIuZGVwZW5kZW5jaWVzPWEuZGVwZW5kZW5jaWVzKTtEZ3w9Yi5sYW5lcztpZigwIT09KGMmYi5jaGlsZExhbmVzKSl7aWYobnVsbCE9PWEmJmIuY2hpbGQhPT1hLmNoaWxkKXRocm93IEVycm9yKHkoMTUzKSk7aWYobnVsbCE9PWIuY2hpbGQpe2E9Yi5jaGlsZDtjPVRnKGEsYS5wZW5kaW5nUHJvcHMpO2IuY2hpbGQ9Yztmb3IoYy5yZXR1cm49YjtudWxsIT09YS5zaWJsaW5nOylhPWEuc2libGluZyxjPWMuc2libGluZz1UZyhhLGEucGVuZGluZ1Byb3BzKSxjLnJldHVybj1iO2Muc2libGluZz1udWxsfXJldHVybiBiLmNoaWxkfXJldHVybiBudWxsfXZhciBCaSxDaSxEaSxFaTtcbkJpPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPWIuY2hpbGQ7bnVsbCE9PWM7KXtpZig1PT09Yy50YWd8fDY9PT1jLnRhZylhLmFwcGVuZENoaWxkKGMuc3RhdGVOb2RlKTtlbHNlIGlmKDQhPT1jLnRhZyYmbnVsbCE9PWMuY2hpbGQpe2MuY2hpbGQucmV0dXJuPWM7Yz1jLmNoaWxkO2NvbnRpbnVlfWlmKGM9PT1iKWJyZWFrO2Zvcig7bnVsbD09PWMuc2libGluZzspe2lmKG51bGw9PT1jLnJldHVybnx8Yy5yZXR1cm49PT1iKXJldHVybjtjPWMucmV0dXJufWMuc2libGluZy5yZXR1cm49Yy5yZXR1cm47Yz1jLnNpYmxpbmd9fTtDaT1mdW5jdGlvbigpe307XG5EaT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1hLm1lbW9pemVkUHJvcHM7aWYoZSE9PWQpe2E9Yi5zdGF0ZU5vZGU7ZGgoYWguY3VycmVudCk7dmFyIGY9bnVsbDtzd2l0Y2goYyl7Y2FzZSBcImlucHV0XCI6ZT1ZYShhLGUpO2Q9WWEoYSxkKTtmPVtdO2JyZWFrO2Nhc2UgXCJvcHRpb25cIjplPWViKGEsZSk7ZD1lYihhLGQpO2Y9W107YnJlYWs7Y2FzZSBcInNlbGVjdFwiOmU9bSh7fSxlLHt2YWx1ZTp2b2lkIDB9KTtkPW0oe30sZCx7dmFsdWU6dm9pZCAwfSk7Zj1bXTticmVhaztjYXNlIFwidGV4dGFyZWFcIjplPWdiKGEsZSk7ZD1nYihhLGQpO2Y9W107YnJlYWs7ZGVmYXVsdDpcImZ1bmN0aW9uXCIhPT10eXBlb2YgZS5vbkNsaWNrJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgZC5vbkNsaWNrJiYoYS5vbmNsaWNrPWpmKX12YihjLGQpO3ZhciBnO2M9bnVsbDtmb3IobCBpbiBlKWlmKCFkLmhhc093blByb3BlcnR5KGwpJiZlLmhhc093blByb3BlcnR5KGwpJiZudWxsIT1lW2xdKWlmKFwic3R5bGVcIj09PVxubCl7dmFyIGg9ZVtsXTtmb3IoZyBpbiBoKWguaGFzT3duUHJvcGVydHkoZykmJihjfHwoYz17fSksY1tnXT1cIlwiKX1lbHNlXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiIT09bCYmXCJjaGlsZHJlblwiIT09bCYmXCJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmdcIiE9PWwmJlwic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nXCIhPT1sJiZcImF1dG9Gb2N1c1wiIT09bCYmKGNhLmhhc093blByb3BlcnR5KGwpP2Z8fChmPVtdKTooZj1mfHxbXSkucHVzaChsLG51bGwpKTtmb3IobCBpbiBkKXt2YXIgaz1kW2xdO2g9bnVsbCE9ZT9lW2xdOnZvaWQgMDtpZihkLmhhc093blByb3BlcnR5KGwpJiZrIT09aCYmKG51bGwhPWt8fG51bGwhPWgpKWlmKFwic3R5bGVcIj09PWwpaWYoaCl7Zm9yKGcgaW4gaCkhaC5oYXNPd25Qcm9wZXJ0eShnKXx8ayYmay5oYXNPd25Qcm9wZXJ0eShnKXx8KGN8fChjPXt9KSxjW2ddPVwiXCIpO2ZvcihnIGluIGspay5oYXNPd25Qcm9wZXJ0eShnKSYmaFtnXSE9PWtbZ10mJihjfHxcbihjPXt9KSxjW2ddPWtbZ10pfWVsc2UgY3x8KGZ8fChmPVtdKSxmLnB1c2gobCxjKSksYz1rO2Vsc2VcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI9PT1sPyhrPWs/ay5fX2h0bWw6dm9pZCAwLGg9aD9oLl9faHRtbDp2b2lkIDAsbnVsbCE9ayYmaCE9PWsmJihmPWZ8fFtdKS5wdXNoKGwsaykpOlwiY2hpbGRyZW5cIj09PWw/XCJzdHJpbmdcIiE9PXR5cGVvZiBrJiZcIm51bWJlclwiIT09dHlwZW9mIGt8fChmPWZ8fFtdKS5wdXNoKGwsXCJcIitrKTpcInN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZ1wiIT09bCYmXCJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmdcIiE9PWwmJihjYS5oYXNPd25Qcm9wZXJ0eShsKT8obnVsbCE9ayYmXCJvblNjcm9sbFwiPT09bCYmRyhcInNjcm9sbFwiLGEpLGZ8fGg9PT1rfHwoZj1bXSkpOlwib2JqZWN0XCI9PT10eXBlb2YgayYmbnVsbCE9PWsmJmsuJCR0eXBlb2Y9PT1HYT9rLnRvU3RyaW5nKCk6KGY9Znx8W10pLnB1c2gobCxrKSl9YyYmKGY9Znx8W10pLnB1c2goXCJzdHlsZVwiLFxuYyk7dmFyIGw9ZjtpZihiLnVwZGF0ZVF1ZXVlPWwpYi5mbGFnc3w9NH19O0VpPWZ1bmN0aW9uKGEsYixjLGQpe2MhPT1kJiYoYi5mbGFnc3w9NCl9O2Z1bmN0aW9uIEZpKGEsYil7aWYoIWxoKXN3aXRjaChhLnRhaWxNb2RlKXtjYXNlIFwiaGlkZGVuXCI6Yj1hLnRhaWw7Zm9yKHZhciBjPW51bGw7bnVsbCE9PWI7KW51bGwhPT1iLmFsdGVybmF0ZSYmKGM9YiksYj1iLnNpYmxpbmc7bnVsbD09PWM/YS50YWlsPW51bGw6Yy5zaWJsaW5nPW51bGw7YnJlYWs7Y2FzZSBcImNvbGxhcHNlZFwiOmM9YS50YWlsO2Zvcih2YXIgZD1udWxsO251bGwhPT1jOyludWxsIT09Yy5hbHRlcm5hdGUmJihkPWMpLGM9Yy5zaWJsaW5nO251bGw9PT1kP2J8fG51bGw9PT1hLnRhaWw/YS50YWlsPW51bGw6YS50YWlsLnNpYmxpbmc9bnVsbDpkLnNpYmxpbmc9bnVsbH19XG5mdW5jdGlvbiBHaShhLGIsYyl7dmFyIGQ9Yi5wZW5kaW5nUHJvcHM7c3dpdGNoKGIudGFnKXtjYXNlIDI6Y2FzZSAxNjpjYXNlIDE1OmNhc2UgMDpjYXNlIDExOmNhc2UgNzpjYXNlIDg6Y2FzZSAxMjpjYXNlIDk6Y2FzZSAxNDpyZXR1cm4gbnVsbDtjYXNlIDE6cmV0dXJuIEZmKGIudHlwZSkmJkdmKCksbnVsbDtjYXNlIDM6ZmgoKTtIKE4pO0goTSk7dWgoKTtkPWIuc3RhdGVOb2RlO2QucGVuZGluZ0NvbnRleHQmJihkLmNvbnRleHQ9ZC5wZW5kaW5nQ29udGV4dCxkLnBlbmRpbmdDb250ZXh0PW51bGwpO2lmKG51bGw9PT1hfHxudWxsPT09YS5jaGlsZClyaChiKT9iLmZsYWdzfD00OmQuaHlkcmF0ZXx8KGIuZmxhZ3N8PTI1Nik7Q2koYik7cmV0dXJuIG51bGw7Y2FzZSA1OmhoKGIpO3ZhciBlPWRoKGNoLmN1cnJlbnQpO2M9Yi50eXBlO2lmKG51bGwhPT1hJiZudWxsIT1iLnN0YXRlTm9kZSlEaShhLGIsYyxkLGUpLGEucmVmIT09Yi5yZWYmJihiLmZsYWdzfD0xMjgpO2Vsc2V7aWYoIWQpe2lmKG51bGw9PT1cbmIuc3RhdGVOb2RlKXRocm93IEVycm9yKHkoMTY2KSk7cmV0dXJuIG51bGx9YT1kaChhaC5jdXJyZW50KTtpZihyaChiKSl7ZD1iLnN0YXRlTm9kZTtjPWIudHlwZTt2YXIgZj1iLm1lbW9pemVkUHJvcHM7ZFt3Zl09YjtkW3hmXT1mO3N3aXRjaChjKXtjYXNlIFwiZGlhbG9nXCI6RyhcImNhbmNlbFwiLGQpO0coXCJjbG9zZVwiLGQpO2JyZWFrO2Nhc2UgXCJpZnJhbWVcIjpjYXNlIFwib2JqZWN0XCI6Y2FzZSBcImVtYmVkXCI6RyhcImxvYWRcIixkKTticmVhaztjYXNlIFwidmlkZW9cIjpjYXNlIFwiYXVkaW9cIjpmb3IoYT0wO2E8WGUubGVuZ3RoO2ErKylHKFhlW2FdLGQpO2JyZWFrO2Nhc2UgXCJzb3VyY2VcIjpHKFwiZXJyb3JcIixkKTticmVhaztjYXNlIFwiaW1nXCI6Y2FzZSBcImltYWdlXCI6Y2FzZSBcImxpbmtcIjpHKFwiZXJyb3JcIixkKTtHKFwibG9hZFwiLGQpO2JyZWFrO2Nhc2UgXCJkZXRhaWxzXCI6RyhcInRvZ2dsZVwiLGQpO2JyZWFrO2Nhc2UgXCJpbnB1dFwiOlphKGQsZik7RyhcImludmFsaWRcIixkKTticmVhaztjYXNlIFwic2VsZWN0XCI6ZC5fd3JhcHBlclN0YXRlPVxue3dhc011bHRpcGxlOiEhZi5tdWx0aXBsZX07RyhcImludmFsaWRcIixkKTticmVhaztjYXNlIFwidGV4dGFyZWFcIjpoYihkLGYpLEcoXCJpbnZhbGlkXCIsZCl9dmIoYyxmKTthPW51bGw7Zm9yKHZhciBnIGluIGYpZi5oYXNPd25Qcm9wZXJ0eShnKSYmKGU9ZltnXSxcImNoaWxkcmVuXCI9PT1nP1wic3RyaW5nXCI9PT10eXBlb2YgZT9kLnRleHRDb250ZW50IT09ZSYmKGE9W1wiY2hpbGRyZW5cIixlXSk6XCJudW1iZXJcIj09PXR5cGVvZiBlJiZkLnRleHRDb250ZW50IT09XCJcIitlJiYoYT1bXCJjaGlsZHJlblwiLFwiXCIrZV0pOmNhLmhhc093blByb3BlcnR5KGcpJiZudWxsIT1lJiZcIm9uU2Nyb2xsXCI9PT1nJiZHKFwic2Nyb2xsXCIsZCkpO3N3aXRjaChjKXtjYXNlIFwiaW5wdXRcIjpWYShkKTtjYihkLGYsITApO2JyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOlZhKGQpO2piKGQpO2JyZWFrO2Nhc2UgXCJzZWxlY3RcIjpjYXNlIFwib3B0aW9uXCI6YnJlYWs7ZGVmYXVsdDpcImZ1bmN0aW9uXCI9PT10eXBlb2YgZi5vbkNsaWNrJiYoZC5vbmNsaWNrPVxuamYpfWQ9YTtiLnVwZGF0ZVF1ZXVlPWQ7bnVsbCE9PWQmJihiLmZsYWdzfD00KX1lbHNle2c9OT09PWUubm9kZVR5cGU/ZTplLm93bmVyRG9jdW1lbnQ7YT09PWtiLmh0bWwmJihhPWxiKGMpKTthPT09a2IuaHRtbD9cInNjcmlwdFwiPT09Yz8oYT1nLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiksYS5pbm5lckhUTUw9XCI8c2NyaXB0PlxceDNjL3NjcmlwdD5cIixhPWEucmVtb3ZlQ2hpbGQoYS5maXJzdENoaWxkKSk6XCJzdHJpbmdcIj09PXR5cGVvZiBkLmlzP2E9Zy5jcmVhdGVFbGVtZW50KGMse2lzOmQuaXN9KTooYT1nLmNyZWF0ZUVsZW1lbnQoYyksXCJzZWxlY3RcIj09PWMmJihnPWEsZC5tdWx0aXBsZT9nLm11bHRpcGxlPSEwOmQuc2l6ZSYmKGcuc2l6ZT1kLnNpemUpKSk6YT1nLmNyZWF0ZUVsZW1lbnROUyhhLGMpO2Fbd2ZdPWI7YVt4Zl09ZDtCaShhLGIsITEsITEpO2Iuc3RhdGVOb2RlPWE7Zz13YihjLGQpO3N3aXRjaChjKXtjYXNlIFwiZGlhbG9nXCI6RyhcImNhbmNlbFwiLGEpO0coXCJjbG9zZVwiLGEpO1xuZT1kO2JyZWFrO2Nhc2UgXCJpZnJhbWVcIjpjYXNlIFwib2JqZWN0XCI6Y2FzZSBcImVtYmVkXCI6RyhcImxvYWRcIixhKTtlPWQ7YnJlYWs7Y2FzZSBcInZpZGVvXCI6Y2FzZSBcImF1ZGlvXCI6Zm9yKGU9MDtlPFhlLmxlbmd0aDtlKyspRyhYZVtlXSxhKTtlPWQ7YnJlYWs7Y2FzZSBcInNvdXJjZVwiOkcoXCJlcnJvclwiLGEpO2U9ZDticmVhaztjYXNlIFwiaW1nXCI6Y2FzZSBcImltYWdlXCI6Y2FzZSBcImxpbmtcIjpHKFwiZXJyb3JcIixhKTtHKFwibG9hZFwiLGEpO2U9ZDticmVhaztjYXNlIFwiZGV0YWlsc1wiOkcoXCJ0b2dnbGVcIixhKTtlPWQ7YnJlYWs7Y2FzZSBcImlucHV0XCI6WmEoYSxkKTtlPVlhKGEsZCk7RyhcImludmFsaWRcIixhKTticmVhaztjYXNlIFwib3B0aW9uXCI6ZT1lYihhLGQpO2JyZWFrO2Nhc2UgXCJzZWxlY3RcIjphLl93cmFwcGVyU3RhdGU9e3dhc011bHRpcGxlOiEhZC5tdWx0aXBsZX07ZT1tKHt9LGQse3ZhbHVlOnZvaWQgMH0pO0coXCJpbnZhbGlkXCIsYSk7YnJlYWs7Y2FzZSBcInRleHRhcmVhXCI6aGIoYSxkKTtlPVxuZ2IoYSxkKTtHKFwiaW52YWxpZFwiLGEpO2JyZWFrO2RlZmF1bHQ6ZT1kfXZiKGMsZSk7dmFyIGg9ZTtmb3IoZiBpbiBoKWlmKGguaGFzT3duUHJvcGVydHkoZikpe3ZhciBrPWhbZl07XCJzdHlsZVwiPT09Zj90YihhLGspOlwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIj09PWY/KGs9az9rLl9faHRtbDp2b2lkIDAsbnVsbCE9ayYmb2IoYSxrKSk6XCJjaGlsZHJlblwiPT09Zj9cInN0cmluZ1wiPT09dHlwZW9mIGs/KFwidGV4dGFyZWFcIiE9PWN8fFwiXCIhPT1rKSYmcGIoYSxrKTpcIm51bWJlclwiPT09dHlwZW9mIGsmJnBiKGEsXCJcIitrKTpcInN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZ1wiIT09ZiYmXCJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmdcIiE9PWYmJlwiYXV0b0ZvY3VzXCIhPT1mJiYoY2EuaGFzT3duUHJvcGVydHkoZik/bnVsbCE9ayYmXCJvblNjcm9sbFwiPT09ZiYmRyhcInNjcm9sbFwiLGEpOm51bGwhPWsmJnFhKGEsZixrLGcpKX1zd2l0Y2goYyl7Y2FzZSBcImlucHV0XCI6VmEoYSk7Y2IoYSxkLCExKTtcbmJyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOlZhKGEpO2piKGEpO2JyZWFrO2Nhc2UgXCJvcHRpb25cIjpudWxsIT1kLnZhbHVlJiZhLnNldEF0dHJpYnV0ZShcInZhbHVlXCIsXCJcIitTYShkLnZhbHVlKSk7YnJlYWs7Y2FzZSBcInNlbGVjdFwiOmEubXVsdGlwbGU9ISFkLm11bHRpcGxlO2Y9ZC52YWx1ZTtudWxsIT1mP2ZiKGEsISFkLm11bHRpcGxlLGYsITEpOm51bGwhPWQuZGVmYXVsdFZhbHVlJiZmYihhLCEhZC5tdWx0aXBsZSxkLmRlZmF1bHRWYWx1ZSwhMCk7YnJlYWs7ZGVmYXVsdDpcImZ1bmN0aW9uXCI9PT10eXBlb2YgZS5vbkNsaWNrJiYoYS5vbmNsaWNrPWpmKX1tZihjLGQpJiYoYi5mbGFnc3w9NCl9bnVsbCE9PWIucmVmJiYoYi5mbGFnc3w9MTI4KX1yZXR1cm4gbnVsbDtjYXNlIDY6aWYoYSYmbnVsbCE9Yi5zdGF0ZU5vZGUpRWkoYSxiLGEubWVtb2l6ZWRQcm9wcyxkKTtlbHNle2lmKFwic3RyaW5nXCIhPT10eXBlb2YgZCYmbnVsbD09PWIuc3RhdGVOb2RlKXRocm93IEVycm9yKHkoMTY2KSk7XG5jPWRoKGNoLmN1cnJlbnQpO2RoKGFoLmN1cnJlbnQpO3JoKGIpPyhkPWIuc3RhdGVOb2RlLGM9Yi5tZW1vaXplZFByb3BzLGRbd2ZdPWIsZC5ub2RlVmFsdWUhPT1jJiYoYi5mbGFnc3w9NCkpOihkPSg5PT09Yy5ub2RlVHlwZT9jOmMub3duZXJEb2N1bWVudCkuY3JlYXRlVGV4dE5vZGUoZCksZFt3Zl09YixiLnN0YXRlTm9kZT1kKX1yZXR1cm4gbnVsbDtjYXNlIDEzOkgoUCk7ZD1iLm1lbW9pemVkU3RhdGU7aWYoMCE9PShiLmZsYWdzJjY0KSlyZXR1cm4gYi5sYW5lcz1jLGI7ZD1udWxsIT09ZDtjPSExO251bGw9PT1hP3ZvaWQgMCE9PWIubWVtb2l6ZWRQcm9wcy5mYWxsYmFjayYmcmgoYik6Yz1udWxsIT09YS5tZW1vaXplZFN0YXRlO2lmKGQmJiFjJiYwIT09KGIubW9kZSYyKSlpZihudWxsPT09YSYmITAhPT1iLm1lbW9pemVkUHJvcHMudW5zdGFibGVfYXZvaWRUaGlzRmFsbGJhY2t8fDAhPT0oUC5jdXJyZW50JjEpKTA9PT1WJiYoVj0zKTtlbHNle2lmKDA9PT1WfHwzPT09VilWPVxuNDtudWxsPT09VXx8MD09PShEZyYxMzQyMTc3MjcpJiYwPT09KEhpJjEzNDIxNzcyNyl8fElpKFUsVyl9aWYoZHx8YyliLmZsYWdzfD00O3JldHVybiBudWxsO2Nhc2UgNDpyZXR1cm4gZmgoKSxDaShiKSxudWxsPT09YSYmY2YoYi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksbnVsbDtjYXNlIDEwOnJldHVybiByZyhiKSxudWxsO2Nhc2UgMTc6cmV0dXJuIEZmKGIudHlwZSkmJkdmKCksbnVsbDtjYXNlIDE5OkgoUCk7ZD1iLm1lbW9pemVkU3RhdGU7aWYobnVsbD09PWQpcmV0dXJuIG51bGw7Zj0wIT09KGIuZmxhZ3MmNjQpO2c9ZC5yZW5kZXJpbmc7aWYobnVsbD09PWcpaWYoZilGaShkLCExKTtlbHNle2lmKDAhPT1WfHxudWxsIT09YSYmMCE9PShhLmZsYWdzJjY0KSlmb3IoYT1iLmNoaWxkO251bGwhPT1hOyl7Zz1paChhKTtpZihudWxsIT09Zyl7Yi5mbGFnc3w9NjQ7RmkoZCwhMSk7Zj1nLnVwZGF0ZVF1ZXVlO251bGwhPT1mJiYoYi51cGRhdGVRdWV1ZT1mLGIuZmxhZ3N8PTQpO1xubnVsbD09PWQubGFzdEVmZmVjdCYmKGIuZmlyc3RFZmZlY3Q9bnVsbCk7Yi5sYXN0RWZmZWN0PWQubGFzdEVmZmVjdDtkPWM7Zm9yKGM9Yi5jaGlsZDtudWxsIT09YzspZj1jLGE9ZCxmLmZsYWdzJj0yLGYubmV4dEVmZmVjdD1udWxsLGYuZmlyc3RFZmZlY3Q9bnVsbCxmLmxhc3RFZmZlY3Q9bnVsbCxnPWYuYWx0ZXJuYXRlLG51bGw9PT1nPyhmLmNoaWxkTGFuZXM9MCxmLmxhbmVzPWEsZi5jaGlsZD1udWxsLGYubWVtb2l6ZWRQcm9wcz1udWxsLGYubWVtb2l6ZWRTdGF0ZT1udWxsLGYudXBkYXRlUXVldWU9bnVsbCxmLmRlcGVuZGVuY2llcz1udWxsLGYuc3RhdGVOb2RlPW51bGwpOihmLmNoaWxkTGFuZXM9Zy5jaGlsZExhbmVzLGYubGFuZXM9Zy5sYW5lcyxmLmNoaWxkPWcuY2hpbGQsZi5tZW1vaXplZFByb3BzPWcubWVtb2l6ZWRQcm9wcyxmLm1lbW9pemVkU3RhdGU9Zy5tZW1vaXplZFN0YXRlLGYudXBkYXRlUXVldWU9Zy51cGRhdGVRdWV1ZSxmLnR5cGU9Zy50eXBlLGE9Zy5kZXBlbmRlbmNpZXMsXG5mLmRlcGVuZGVuY2llcz1udWxsPT09YT9udWxsOntsYW5lczphLmxhbmVzLGZpcnN0Q29udGV4dDphLmZpcnN0Q29udGV4dH0pLGM9Yy5zaWJsaW5nO0koUCxQLmN1cnJlbnQmMXwyKTtyZXR1cm4gYi5jaGlsZH1hPWEuc2libGluZ31udWxsIT09ZC50YWlsJiZPKCk+SmkmJihiLmZsYWdzfD02NCxmPSEwLEZpKGQsITEpLGIubGFuZXM9MzM1NTQ0MzIpfWVsc2V7aWYoIWYpaWYoYT1paChnKSxudWxsIT09YSl7aWYoYi5mbGFnc3w9NjQsZj0hMCxjPWEudXBkYXRlUXVldWUsbnVsbCE9PWMmJihiLnVwZGF0ZVF1ZXVlPWMsYi5mbGFnc3w9NCksRmkoZCwhMCksbnVsbD09PWQudGFpbCYmXCJoaWRkZW5cIj09PWQudGFpbE1vZGUmJiFnLmFsdGVybmF0ZSYmIWxoKXJldHVybiBiPWIubGFzdEVmZmVjdD1kLmxhc3RFZmZlY3QsbnVsbCE9PWImJihiLm5leHRFZmZlY3Q9bnVsbCksbnVsbH1lbHNlIDIqTygpLWQucmVuZGVyaW5nU3RhcnRUaW1lPkppJiYxMDczNzQxODI0IT09YyYmKGIuZmxhZ3N8PVxuNjQsZj0hMCxGaShkLCExKSxiLmxhbmVzPTMzNTU0NDMyKTtkLmlzQmFja3dhcmRzPyhnLnNpYmxpbmc9Yi5jaGlsZCxiLmNoaWxkPWcpOihjPWQubGFzdCxudWxsIT09Yz9jLnNpYmxpbmc9ZzpiLmNoaWxkPWcsZC5sYXN0PWcpfXJldHVybiBudWxsIT09ZC50YWlsPyhjPWQudGFpbCxkLnJlbmRlcmluZz1jLGQudGFpbD1jLnNpYmxpbmcsZC5sYXN0RWZmZWN0PWIubGFzdEVmZmVjdCxkLnJlbmRlcmluZ1N0YXJ0VGltZT1PKCksYy5zaWJsaW5nPW51bGwsYj1QLmN1cnJlbnQsSShQLGY/YiYxfDI6YiYxKSxjKTpudWxsO2Nhc2UgMjM6Y2FzZSAyNDpyZXR1cm4gS2koKSxudWxsIT09YSYmbnVsbCE9PWEubWVtb2l6ZWRTdGF0ZSE9PShudWxsIT09Yi5tZW1vaXplZFN0YXRlKSYmXCJ1bnN0YWJsZS1kZWZlci13aXRob3V0LWhpZGluZ1wiIT09ZC5tb2RlJiYoYi5mbGFnc3w9NCksbnVsbH10aHJvdyBFcnJvcih5KDE1NixiLnRhZykpO31cbmZ1bmN0aW9uIExpKGEpe3N3aXRjaChhLnRhZyl7Y2FzZSAxOkZmKGEudHlwZSkmJkdmKCk7dmFyIGI9YS5mbGFncztyZXR1cm4gYiY0MDk2PyhhLmZsYWdzPWImLTQwOTd8NjQsYSk6bnVsbDtjYXNlIDM6ZmgoKTtIKE4pO0goTSk7dWgoKTtiPWEuZmxhZ3M7aWYoMCE9PShiJjY0KSl0aHJvdyBFcnJvcih5KDI4NSkpO2EuZmxhZ3M9YiYtNDA5N3w2NDtyZXR1cm4gYTtjYXNlIDU6cmV0dXJuIGhoKGEpLG51bGw7Y2FzZSAxMzpyZXR1cm4gSChQKSxiPWEuZmxhZ3MsYiY0MDk2PyhhLmZsYWdzPWImLTQwOTd8NjQsYSk6bnVsbDtjYXNlIDE5OnJldHVybiBIKFApLG51bGw7Y2FzZSA0OnJldHVybiBmaCgpLG51bGw7Y2FzZSAxMDpyZXR1cm4gcmcoYSksbnVsbDtjYXNlIDIzOmNhc2UgMjQ6cmV0dXJuIEtpKCksbnVsbDtkZWZhdWx0OnJldHVybiBudWxsfX1cbmZ1bmN0aW9uIE1pKGEsYil7dHJ5e3ZhciBjPVwiXCIsZD1iO2RvIGMrPVFhKGQpLGQ9ZC5yZXR1cm47d2hpbGUoZCk7dmFyIGU9Y31jYXRjaChmKXtlPVwiXFxuRXJyb3IgZ2VuZXJhdGluZyBzdGFjazogXCIrZi5tZXNzYWdlK1wiXFxuXCIrZi5zdGFja31yZXR1cm57dmFsdWU6YSxzb3VyY2U6YixzdGFjazplfX1mdW5jdGlvbiBOaShhLGIpe3RyeXtjb25zb2xlLmVycm9yKGIudmFsdWUpfWNhdGNoKGMpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBjO30pfX12YXIgT2k9XCJmdW5jdGlvblwiPT09dHlwZW9mIFdlYWtNYXA/V2Vha01hcDpNYXA7ZnVuY3Rpb24gUGkoYSxiLGMpe2M9emcoLTEsYyk7Yy50YWc9MztjLnBheWxvYWQ9e2VsZW1lbnQ6bnVsbH07dmFyIGQ9Yi52YWx1ZTtjLmNhbGxiYWNrPWZ1bmN0aW9uKCl7UWl8fChRaT0hMCxSaT1kKTtOaShhLGIpfTtyZXR1cm4gY31cbmZ1bmN0aW9uIFNpKGEsYixjKXtjPXpnKC0xLGMpO2MudGFnPTM7dmFyIGQ9YS50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcjtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZCl7dmFyIGU9Yi52YWx1ZTtjLnBheWxvYWQ9ZnVuY3Rpb24oKXtOaShhLGIpO3JldHVybiBkKGUpfX12YXIgZj1hLnN0YXRlTm9kZTtudWxsIT09ZiYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGYuY29tcG9uZW50RGlkQ2F0Y2gmJihjLmNhbGxiYWNrPWZ1bmN0aW9uKCl7XCJmdW5jdGlvblwiIT09dHlwZW9mIGQmJihudWxsPT09VGk/VGk9bmV3IFNldChbdGhpc10pOlRpLmFkZCh0aGlzKSxOaShhLGIpKTt2YXIgYz1iLnN0YWNrO3RoaXMuY29tcG9uZW50RGlkQ2F0Y2goYi52YWx1ZSx7Y29tcG9uZW50U3RhY2s6bnVsbCE9PWM/YzpcIlwifSl9KTtyZXR1cm4gY312YXIgVWk9XCJmdW5jdGlvblwiPT09dHlwZW9mIFdlYWtTZXQ/V2Vha1NldDpTZXQ7XG5mdW5jdGlvbiBWaShhKXt2YXIgYj1hLnJlZjtpZihudWxsIT09YilpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYil0cnl7YihudWxsKX1jYXRjaChjKXtXaShhLGMpfWVsc2UgYi5jdXJyZW50PW51bGx9ZnVuY3Rpb24gWGkoYSxiKXtzd2l0Y2goYi50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6Y2FzZSAyMjpyZXR1cm47Y2FzZSAxOmlmKGIuZmxhZ3MmMjU2JiZudWxsIT09YSl7dmFyIGM9YS5tZW1vaXplZFByb3BzLGQ9YS5tZW1vaXplZFN0YXRlO2E9Yi5zdGF0ZU5vZGU7Yj1hLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKGIuZWxlbWVudFR5cGU9PT1iLnR5cGU/YzpsZyhiLnR5cGUsYyksZCk7YS5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZT1ifXJldHVybjtjYXNlIDM6Yi5mbGFncyYyNTYmJnFmKGIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pO3JldHVybjtjYXNlIDU6Y2FzZSA2OmNhc2UgNDpjYXNlIDE3OnJldHVybn10aHJvdyBFcnJvcih5KDE2MykpO31cbmZ1bmN0aW9uIFlpKGEsYixjKXtzd2l0Y2goYy50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6Y2FzZSAyMjpiPWMudXBkYXRlUXVldWU7Yj1udWxsIT09Yj9iLmxhc3RFZmZlY3Q6bnVsbDtpZihudWxsIT09Yil7YT1iPWIubmV4dDtkb3tpZigzPT09KGEudGFnJjMpKXt2YXIgZD1hLmNyZWF0ZTthLmRlc3Ryb3k9ZCgpfWE9YS5uZXh0fXdoaWxlKGEhPT1iKX1iPWMudXBkYXRlUXVldWU7Yj1udWxsIT09Yj9iLmxhc3RFZmZlY3Q6bnVsbDtpZihudWxsIT09Yil7YT1iPWIubmV4dDtkb3t2YXIgZT1hO2Q9ZS5uZXh0O2U9ZS50YWc7MCE9PShlJjQpJiYwIT09KGUmMSkmJihaaShjLGEpLCRpKGMsYSkpO2E9ZH13aGlsZShhIT09Yil9cmV0dXJuO2Nhc2UgMTphPWMuc3RhdGVOb2RlO2MuZmxhZ3MmNCYmKG51bGw9PT1iP2EuY29tcG9uZW50RGlkTW91bnQoKTooZD1jLmVsZW1lbnRUeXBlPT09Yy50eXBlP2IubWVtb2l6ZWRQcm9wczpsZyhjLnR5cGUsYi5tZW1vaXplZFByb3BzKSxhLmNvbXBvbmVudERpZFVwZGF0ZShkLFxuYi5tZW1vaXplZFN0YXRlLGEuX19yZWFjdEludGVybmFsU25hcHNob3RCZWZvcmVVcGRhdGUpKSk7Yj1jLnVwZGF0ZVF1ZXVlO251bGwhPT1iJiZFZyhjLGIsYSk7cmV0dXJuO2Nhc2UgMzpiPWMudXBkYXRlUXVldWU7aWYobnVsbCE9PWIpe2E9bnVsbDtpZihudWxsIT09Yy5jaGlsZClzd2l0Y2goYy5jaGlsZC50YWcpe2Nhc2UgNTphPWMuY2hpbGQuc3RhdGVOb2RlO2JyZWFrO2Nhc2UgMTphPWMuY2hpbGQuc3RhdGVOb2RlfUVnKGMsYixhKX1yZXR1cm47Y2FzZSA1OmE9Yy5zdGF0ZU5vZGU7bnVsbD09PWImJmMuZmxhZ3MmNCYmbWYoYy50eXBlLGMubWVtb2l6ZWRQcm9wcykmJmEuZm9jdXMoKTtyZXR1cm47Y2FzZSA2OnJldHVybjtjYXNlIDQ6cmV0dXJuO2Nhc2UgMTI6cmV0dXJuO2Nhc2UgMTM6bnVsbD09PWMubWVtb2l6ZWRTdGF0ZSYmKGM9Yy5hbHRlcm5hdGUsbnVsbCE9PWMmJihjPWMubWVtb2l6ZWRTdGF0ZSxudWxsIT09YyYmKGM9Yy5kZWh5ZHJhdGVkLG51bGwhPT1jJiZDYyhjKSkpKTtcbnJldHVybjtjYXNlIDE5OmNhc2UgMTc6Y2FzZSAyMDpjYXNlIDIxOmNhc2UgMjM6Y2FzZSAyNDpyZXR1cm59dGhyb3cgRXJyb3IoeSgxNjMpKTt9XG5mdW5jdGlvbiBhaihhLGIpe2Zvcih2YXIgYz1hOzspe2lmKDU9PT1jLnRhZyl7dmFyIGQ9Yy5zdGF0ZU5vZGU7aWYoYilkPWQuc3R5bGUsXCJmdW5jdGlvblwiPT09dHlwZW9mIGQuc2V0UHJvcGVydHk/ZC5zZXRQcm9wZXJ0eShcImRpc3BsYXlcIixcIm5vbmVcIixcImltcG9ydGFudFwiKTpkLmRpc3BsYXk9XCJub25lXCI7ZWxzZXtkPWMuc3RhdGVOb2RlO3ZhciBlPWMubWVtb2l6ZWRQcm9wcy5zdHlsZTtlPXZvaWQgMCE9PWUmJm51bGwhPT1lJiZlLmhhc093blByb3BlcnR5KFwiZGlzcGxheVwiKT9lLmRpc3BsYXk6bnVsbDtkLnN0eWxlLmRpc3BsYXk9c2IoXCJkaXNwbGF5XCIsZSl9fWVsc2UgaWYoNj09PWMudGFnKWMuc3RhdGVOb2RlLm5vZGVWYWx1ZT1iP1wiXCI6Yy5tZW1vaXplZFByb3BzO2Vsc2UgaWYoKDIzIT09Yy50YWcmJjI0IT09Yy50YWd8fG51bGw9PT1jLm1lbW9pemVkU3RhdGV8fGM9PT1hKSYmbnVsbCE9PWMuY2hpbGQpe2MuY2hpbGQucmV0dXJuPWM7Yz1jLmNoaWxkO2NvbnRpbnVlfWlmKGM9PT1cbmEpYnJlYWs7Zm9yKDtudWxsPT09Yy5zaWJsaW5nOyl7aWYobnVsbD09PWMucmV0dXJufHxjLnJldHVybj09PWEpcmV0dXJuO2M9Yy5yZXR1cm59Yy5zaWJsaW5nLnJldHVybj1jLnJldHVybjtjPWMuc2libGluZ319XG5mdW5jdGlvbiBiaihhLGIpe2lmKE1mJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgTWYub25Db21taXRGaWJlclVubW91bnQpdHJ5e01mLm9uQ29tbWl0RmliZXJVbm1vdW50KExmLGIpfWNhdGNoKGYpe31zd2l0Y2goYi50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTQ6Y2FzZSAxNTpjYXNlIDIyOmE9Yi51cGRhdGVRdWV1ZTtpZihudWxsIT09YSYmKGE9YS5sYXN0RWZmZWN0LG51bGwhPT1hKSl7dmFyIGM9YT1hLm5leHQ7ZG97dmFyIGQ9YyxlPWQuZGVzdHJveTtkPWQudGFnO2lmKHZvaWQgMCE9PWUpaWYoMCE9PShkJjQpKVppKGIsYyk7ZWxzZXtkPWI7dHJ5e2UoKX1jYXRjaChmKXtXaShkLGYpfX1jPWMubmV4dH13aGlsZShjIT09YSl9YnJlYWs7Y2FzZSAxOlZpKGIpO2E9Yi5zdGF0ZU5vZGU7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGEuY29tcG9uZW50V2lsbFVubW91bnQpdHJ5e2EucHJvcHM9Yi5tZW1vaXplZFByb3BzLGEuc3RhdGU9Yi5tZW1vaXplZFN0YXRlLGEuY29tcG9uZW50V2lsbFVubW91bnQoKX1jYXRjaChmKXtXaShiLFxuZil9YnJlYWs7Y2FzZSA1OlZpKGIpO2JyZWFrO2Nhc2UgNDpjaihhLGIpfX1mdW5jdGlvbiBkaihhKXthLmFsdGVybmF0ZT1udWxsO2EuY2hpbGQ9bnVsbDthLmRlcGVuZGVuY2llcz1udWxsO2EuZmlyc3RFZmZlY3Q9bnVsbDthLmxhc3RFZmZlY3Q9bnVsbDthLm1lbW9pemVkUHJvcHM9bnVsbDthLm1lbW9pemVkU3RhdGU9bnVsbDthLnBlbmRpbmdQcm9wcz1udWxsO2EucmV0dXJuPW51bGw7YS51cGRhdGVRdWV1ZT1udWxsfWZ1bmN0aW9uIGVqKGEpe3JldHVybiA1PT09YS50YWd8fDM9PT1hLnRhZ3x8ND09PWEudGFnfVxuZnVuY3Rpb24gZmooYSl7YTp7Zm9yKHZhciBiPWEucmV0dXJuO251bGwhPT1iOyl7aWYoZWooYikpYnJlYWsgYTtiPWIucmV0dXJufXRocm93IEVycm9yKHkoMTYwKSk7fXZhciBjPWI7Yj1jLnN0YXRlTm9kZTtzd2l0Y2goYy50YWcpe2Nhc2UgNTp2YXIgZD0hMTticmVhaztjYXNlIDM6Yj1iLmNvbnRhaW5lckluZm87ZD0hMDticmVhaztjYXNlIDQ6Yj1iLmNvbnRhaW5lckluZm87ZD0hMDticmVhaztkZWZhdWx0OnRocm93IEVycm9yKHkoMTYxKSk7fWMuZmxhZ3MmMTYmJihwYihiLFwiXCIpLGMuZmxhZ3MmPS0xNyk7YTpiOmZvcihjPWE7Oyl7Zm9yKDtudWxsPT09Yy5zaWJsaW5nOyl7aWYobnVsbD09PWMucmV0dXJufHxlaihjLnJldHVybikpe2M9bnVsbDticmVhayBhfWM9Yy5yZXR1cm59Yy5zaWJsaW5nLnJldHVybj1jLnJldHVybjtmb3IoYz1jLnNpYmxpbmc7NSE9PWMudGFnJiY2IT09Yy50YWcmJjE4IT09Yy50YWc7KXtpZihjLmZsYWdzJjIpY29udGludWUgYjtpZihudWxsPT09XG5jLmNoaWxkfHw0PT09Yy50YWcpY29udGludWUgYjtlbHNlIGMuY2hpbGQucmV0dXJuPWMsYz1jLmNoaWxkfWlmKCEoYy5mbGFncyYyKSl7Yz1jLnN0YXRlTm9kZTticmVhayBhfX1kP2dqKGEsYyxiKTpoaihhLGMsYil9XG5mdW5jdGlvbiBnaihhLGIsYyl7dmFyIGQ9YS50YWcsZT01PT09ZHx8Nj09PWQ7aWYoZSlhPWU/YS5zdGF0ZU5vZGU6YS5zdGF0ZU5vZGUuaW5zdGFuY2UsYj84PT09Yy5ub2RlVHlwZT9jLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsYik6Yy5pbnNlcnRCZWZvcmUoYSxiKTooOD09PWMubm9kZVR5cGU/KGI9Yy5wYXJlbnROb2RlLGIuaW5zZXJ0QmVmb3JlKGEsYykpOihiPWMsYi5hcHBlbmRDaGlsZChhKSksYz1jLl9yZWFjdFJvb3RDb250YWluZXIsbnVsbCE9PWMmJnZvaWQgMCE9PWN8fG51bGwhPT1iLm9uY2xpY2t8fChiLm9uY2xpY2s9amYpKTtlbHNlIGlmKDQhPT1kJiYoYT1hLmNoaWxkLG51bGwhPT1hKSlmb3IoZ2ooYSxiLGMpLGE9YS5zaWJsaW5nO251bGwhPT1hOylnaihhLGIsYyksYT1hLnNpYmxpbmd9XG5mdW5jdGlvbiBoaihhLGIsYyl7dmFyIGQ9YS50YWcsZT01PT09ZHx8Nj09PWQ7aWYoZSlhPWU/YS5zdGF0ZU5vZGU6YS5zdGF0ZU5vZGUuaW5zdGFuY2UsYj9jLmluc2VydEJlZm9yZShhLGIpOmMuYXBwZW5kQ2hpbGQoYSk7ZWxzZSBpZig0IT09ZCYmKGE9YS5jaGlsZCxudWxsIT09YSkpZm9yKGhqKGEsYixjKSxhPWEuc2libGluZztudWxsIT09YTspaGooYSxiLGMpLGE9YS5zaWJsaW5nfVxuZnVuY3Rpb24gY2ooYSxiKXtmb3IodmFyIGM9YixkPSExLGUsZjs7KXtpZighZCl7ZD1jLnJldHVybjthOmZvcig7Oyl7aWYobnVsbD09PWQpdGhyb3cgRXJyb3IoeSgxNjApKTtlPWQuc3RhdGVOb2RlO3N3aXRjaChkLnRhZyl7Y2FzZSA1OmY9ITE7YnJlYWsgYTtjYXNlIDM6ZT1lLmNvbnRhaW5lckluZm87Zj0hMDticmVhayBhO2Nhc2UgNDplPWUuY29udGFpbmVySW5mbztmPSEwO2JyZWFrIGF9ZD1kLnJldHVybn1kPSEwfWlmKDU9PT1jLnRhZ3x8Nj09PWMudGFnKXthOmZvcih2YXIgZz1hLGg9YyxrPWg7OylpZihiaihnLGspLG51bGwhPT1rLmNoaWxkJiY0IT09ay50YWcpay5jaGlsZC5yZXR1cm49ayxrPWsuY2hpbGQ7ZWxzZXtpZihrPT09aClicmVhayBhO2Zvcig7bnVsbD09PWsuc2libGluZzspe2lmKG51bGw9PT1rLnJldHVybnx8ay5yZXR1cm49PT1oKWJyZWFrIGE7az1rLnJldHVybn1rLnNpYmxpbmcucmV0dXJuPWsucmV0dXJuO2s9ay5zaWJsaW5nfWY/KGc9ZSxoPWMuc3RhdGVOb2RlLFxuOD09PWcubm9kZVR5cGU/Zy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGgpOmcucmVtb3ZlQ2hpbGQoaCkpOmUucmVtb3ZlQ2hpbGQoYy5zdGF0ZU5vZGUpfWVsc2UgaWYoND09PWMudGFnKXtpZihudWxsIT09Yy5jaGlsZCl7ZT1jLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO2Y9ITA7Yy5jaGlsZC5yZXR1cm49YztjPWMuY2hpbGQ7Y29udGludWV9fWVsc2UgaWYoYmooYSxjKSxudWxsIT09Yy5jaGlsZCl7Yy5jaGlsZC5yZXR1cm49YztjPWMuY2hpbGQ7Y29udGludWV9aWYoYz09PWIpYnJlYWs7Zm9yKDtudWxsPT09Yy5zaWJsaW5nOyl7aWYobnVsbD09PWMucmV0dXJufHxjLnJldHVybj09PWIpcmV0dXJuO2M9Yy5yZXR1cm47ND09PWMudGFnJiYoZD0hMSl9Yy5zaWJsaW5nLnJldHVybj1jLnJldHVybjtjPWMuc2libGluZ319XG5mdW5jdGlvbiBpaihhLGIpe3N3aXRjaChiLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OmNhc2UgMjI6dmFyIGM9Yi51cGRhdGVRdWV1ZTtjPW51bGwhPT1jP2MubGFzdEVmZmVjdDpudWxsO2lmKG51bGwhPT1jKXt2YXIgZD1jPWMubmV4dDtkbyAzPT09KGQudGFnJjMpJiYoYT1kLmRlc3Ryb3ksZC5kZXN0cm95PXZvaWQgMCx2b2lkIDAhPT1hJiZhKCkpLGQ9ZC5uZXh0O3doaWxlKGQhPT1jKX1yZXR1cm47Y2FzZSAxOnJldHVybjtjYXNlIDU6Yz1iLnN0YXRlTm9kZTtpZihudWxsIT1jKXtkPWIubWVtb2l6ZWRQcm9wczt2YXIgZT1udWxsIT09YT9hLm1lbW9pemVkUHJvcHM6ZDthPWIudHlwZTt2YXIgZj1iLnVwZGF0ZVF1ZXVlO2IudXBkYXRlUXVldWU9bnVsbDtpZihudWxsIT09Zil7Y1t4Zl09ZDtcImlucHV0XCI9PT1hJiZcInJhZGlvXCI9PT1kLnR5cGUmJm51bGwhPWQubmFtZSYmJGEoYyxkKTt3YihhLGUpO2I9d2IoYSxkKTtmb3IoZT0wO2U8Zi5sZW5ndGg7ZSs9XG4yKXt2YXIgZz1mW2VdLGg9ZltlKzFdO1wic3R5bGVcIj09PWc/dGIoYyxoKTpcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI9PT1nP29iKGMsaCk6XCJjaGlsZHJlblwiPT09Zz9wYihjLGgpOnFhKGMsZyxoLGIpfXN3aXRjaChhKXtjYXNlIFwiaW5wdXRcIjphYihjLGQpO2JyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOmliKGMsZCk7YnJlYWs7Y2FzZSBcInNlbGVjdFwiOmE9Yy5fd3JhcHBlclN0YXRlLndhc011bHRpcGxlLGMuX3dyYXBwZXJTdGF0ZS53YXNNdWx0aXBsZT0hIWQubXVsdGlwbGUsZj1kLnZhbHVlLG51bGwhPWY/ZmIoYywhIWQubXVsdGlwbGUsZiwhMSk6YSE9PSEhZC5tdWx0aXBsZSYmKG51bGwhPWQuZGVmYXVsdFZhbHVlP2ZiKGMsISFkLm11bHRpcGxlLGQuZGVmYXVsdFZhbHVlLCEwKTpmYihjLCEhZC5tdWx0aXBsZSxkLm11bHRpcGxlP1tdOlwiXCIsITEpKX19fXJldHVybjtjYXNlIDY6aWYobnVsbD09PWIuc3RhdGVOb2RlKXRocm93IEVycm9yKHkoMTYyKSk7Yi5zdGF0ZU5vZGUubm9kZVZhbHVlPVxuYi5tZW1vaXplZFByb3BzO3JldHVybjtjYXNlIDM6Yz1iLnN0YXRlTm9kZTtjLmh5ZHJhdGUmJihjLmh5ZHJhdGU9ITEsQ2MoYy5jb250YWluZXJJbmZvKSk7cmV0dXJuO2Nhc2UgMTI6cmV0dXJuO2Nhc2UgMTM6bnVsbCE9PWIubWVtb2l6ZWRTdGF0ZSYmKGpqPU8oKSxhaihiLmNoaWxkLCEwKSk7a2ooYik7cmV0dXJuO2Nhc2UgMTk6a2ooYik7cmV0dXJuO2Nhc2UgMTc6cmV0dXJuO2Nhc2UgMjM6Y2FzZSAyNDphaihiLG51bGwhPT1iLm1lbW9pemVkU3RhdGUpO3JldHVybn10aHJvdyBFcnJvcih5KDE2MykpO31mdW5jdGlvbiBraihhKXt2YXIgYj1hLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT1iKXthLnVwZGF0ZVF1ZXVlPW51bGw7dmFyIGM9YS5zdGF0ZU5vZGU7bnVsbD09PWMmJihjPWEuc3RhdGVOb2RlPW5ldyBVaSk7Yi5mb3JFYWNoKGZ1bmN0aW9uKGIpe3ZhciBkPWxqLmJpbmQobnVsbCxhLGIpO2MuaGFzKGIpfHwoYy5hZGQoYiksYi50aGVuKGQsZCkpfSl9fVxuZnVuY3Rpb24gbWooYSxiKXtyZXR1cm4gbnVsbCE9PWEmJihhPWEubWVtb2l6ZWRTdGF0ZSxudWxsPT09YXx8bnVsbCE9PWEuZGVoeWRyYXRlZCk/KGI9Yi5tZW1vaXplZFN0YXRlLG51bGwhPT1iJiZudWxsPT09Yi5kZWh5ZHJhdGVkKTohMX12YXIgbmo9TWF0aC5jZWlsLG9qPXJhLlJlYWN0Q3VycmVudERpc3BhdGNoZXIscGo9cmEuUmVhY3RDdXJyZW50T3duZXIsWD0wLFU9bnVsbCxZPW51bGwsVz0wLHFqPTAscmo9QmYoMCksVj0wLHNqPW51bGwsdGo9MCxEZz0wLEhpPTAsdWo9MCx2aj1udWxsLGpqPTAsSmk9SW5maW5pdHk7ZnVuY3Rpb24gd2ooKXtKaT1PKCkrNTAwfXZhciBaPW51bGwsUWk9ITEsUmk9bnVsbCxUaT1udWxsLHhqPSExLHlqPW51bGwsemo9OTAsQWo9W10sQmo9W10sQ2o9bnVsbCxEaj0wLEVqPW51bGwsRmo9LTEsR2o9MCxIaj0wLElqPW51bGwsSmo9ITE7ZnVuY3Rpb24gSGcoKXtyZXR1cm4gMCE9PShYJjQ4KT9PKCk6LTEhPT1Gaj9GajpGaj1PKCl9XG5mdW5jdGlvbiBJZyhhKXthPWEubW9kZTtpZigwPT09KGEmMikpcmV0dXJuIDE7aWYoMD09PShhJjQpKXJldHVybiA5OT09PWVnKCk/MToyOzA9PT1HaiYmKEdqPXRqKTtpZigwIT09a2cudHJhbnNpdGlvbil7MCE9PUhqJiYoSGo9bnVsbCE9PXZqP3ZqLnBlbmRpbmdMYW5lczowKTthPUdqO3ZhciBiPTQxODYxMTImfkhqO2ImPS1iOzA9PT1iJiYoYT00MTg2MTEyJn5hLGI9YSYtYSwwPT09YiYmKGI9ODE5MikpO3JldHVybiBifWE9ZWcoKTswIT09KFgmNCkmJjk4PT09YT9hPVhjKDEyLEdqKTooYT1TYyhhKSxhPVhjKGEsR2opKTtyZXR1cm4gYX1cbmZ1bmN0aW9uIEpnKGEsYixjKXtpZig1MDxEail0aHJvdyBEaj0wLEVqPW51bGwsRXJyb3IoeSgxODUpKTthPUtqKGEsYik7aWYobnVsbD09PWEpcmV0dXJuIG51bGw7JGMoYSxiLGMpO2E9PT1VJiYoSGl8PWIsND09PVYmJklpKGEsVykpO3ZhciBkPWVnKCk7MT09PWI/MCE9PShYJjgpJiYwPT09KFgmNDgpP0xqKGEpOihNaihhLGMpLDA9PT1YJiYod2ooKSxpZygpKSk6KDA9PT0oWCY0KXx8OTghPT1kJiY5OSE9PWR8fChudWxsPT09Q2o/Q2o9bmV3IFNldChbYV0pOkNqLmFkZChhKSksTWooYSxjKSk7dmo9YX1mdW5jdGlvbiBLaihhLGIpe2EubGFuZXN8PWI7dmFyIGM9YS5hbHRlcm5hdGU7bnVsbCE9PWMmJihjLmxhbmVzfD1iKTtjPWE7Zm9yKGE9YS5yZXR1cm47bnVsbCE9PWE7KWEuY2hpbGRMYW5lc3w9YixjPWEuYWx0ZXJuYXRlLG51bGwhPT1jJiYoYy5jaGlsZExhbmVzfD1iKSxjPWEsYT1hLnJldHVybjtyZXR1cm4gMz09PWMudGFnP2Muc3RhdGVOb2RlOm51bGx9XG5mdW5jdGlvbiBNaihhLGIpe2Zvcih2YXIgYz1hLmNhbGxiYWNrTm9kZSxkPWEuc3VzcGVuZGVkTGFuZXMsZT1hLnBpbmdlZExhbmVzLGY9YS5leHBpcmF0aW9uVGltZXMsZz1hLnBlbmRpbmdMYW5lczswPGc7KXt2YXIgaD0zMS1WYyhnKSxrPTE8PGgsbD1mW2hdO2lmKC0xPT09bCl7aWYoMD09PShrJmQpfHwwIT09KGsmZSkpe2w9YjtSYyhrKTt2YXIgbj1GO2ZbaF09MTA8PW4/bCsyNTA6Njw9bj9sKzVFMzotMX19ZWxzZSBsPD1iJiYoYS5leHBpcmVkTGFuZXN8PWspO2cmPX5rfWQ9VWMoYSxhPT09VT9XOjApO2I9RjtpZigwPT09ZCludWxsIT09YyYmKGMhPT1aZiYmUGYoYyksYS5jYWxsYmFja05vZGU9bnVsbCxhLmNhbGxiYWNrUHJpb3JpdHk9MCk7ZWxzZXtpZihudWxsIT09Yyl7aWYoYS5jYWxsYmFja1ByaW9yaXR5PT09YilyZXR1cm47YyE9PVpmJiZQZihjKX0xNT09PWI/KGM9TGouYmluZChudWxsLGEpLG51bGw9PT1hZz8oYWc9W2NdLGJnPU9mKFVmLGpnKSk6YWcucHVzaChjKSxcbmM9WmYpOjE0PT09Yj9jPWhnKDk5LExqLmJpbmQobnVsbCxhKSk6KGM9VGMoYiksYz1oZyhjLE5qLmJpbmQobnVsbCxhKSkpO2EuY2FsbGJhY2tQcmlvcml0eT1iO2EuY2FsbGJhY2tOb2RlPWN9fVxuZnVuY3Rpb24gTmooYSl7Rmo9LTE7SGo9R2o9MDtpZigwIT09KFgmNDgpKXRocm93IEVycm9yKHkoMzI3KSk7dmFyIGI9YS5jYWxsYmFja05vZGU7aWYoT2ooKSYmYS5jYWxsYmFja05vZGUhPT1iKXJldHVybiBudWxsO3ZhciBjPVVjKGEsYT09PVU/VzowKTtpZigwPT09YylyZXR1cm4gbnVsbDt2YXIgZD1jO3ZhciBlPVg7WHw9MTY7dmFyIGY9UGooKTtpZihVIT09YXx8VyE9PWQpd2ooKSxRaihhLGQpO2RvIHRyeXtSaigpO2JyZWFrfWNhdGNoKGgpe1NqKGEsaCl9d2hpbGUoMSk7cWcoKTtvai5jdXJyZW50PWY7WD1lO251bGwhPT1ZP2Q9MDooVT1udWxsLFc9MCxkPVYpO2lmKDAhPT0odGomSGkpKVFqKGEsMCk7ZWxzZSBpZigwIT09ZCl7Mj09PWQmJihYfD02NCxhLmh5ZHJhdGUmJihhLmh5ZHJhdGU9ITEscWYoYS5jb250YWluZXJJbmZvKSksYz1XYyhhKSwwIT09YyYmKGQ9VGooYSxjKSkpO2lmKDE9PT1kKXRocm93IGI9c2osUWooYSwwKSxJaShhLGMpLE1qKGEsTygpKSxiO2EuZmluaXNoZWRXb3JrPVxuYS5jdXJyZW50LmFsdGVybmF0ZTthLmZpbmlzaGVkTGFuZXM9Yztzd2l0Y2goZCl7Y2FzZSAwOmNhc2UgMTp0aHJvdyBFcnJvcih5KDM0NSkpO2Nhc2UgMjpVaihhKTticmVhaztjYXNlIDM6SWkoYSxjKTtpZigoYyY2MjkxNDU2MCk9PT1jJiYoZD1qais1MDAtTygpLDEwPGQpKXtpZigwIT09VWMoYSwwKSlicmVhaztlPWEuc3VzcGVuZGVkTGFuZXM7aWYoKGUmYykhPT1jKXtIZygpO2EucGluZ2VkTGFuZXN8PWEuc3VzcGVuZGVkTGFuZXMmZTticmVha31hLnRpbWVvdXRIYW5kbGU9b2YoVWouYmluZChudWxsLGEpLGQpO2JyZWFrfVVqKGEpO2JyZWFrO2Nhc2UgNDpJaShhLGMpO2lmKChjJjQxODYxMTIpPT09YylicmVhaztkPWEuZXZlbnRUaW1lcztmb3IoZT0tMTswPGM7KXt2YXIgZz0zMS1WYyhjKTtmPTE8PGc7Zz1kW2ddO2c+ZSYmKGU9Zyk7YyY9fmZ9Yz1lO2M9TygpLWM7Yz0oMTIwPmM/MTIwOjQ4MD5jPzQ4MDoxMDgwPmM/MTA4MDoxOTIwPmM/MTkyMDozRTM+Yz8zRTM6NDMyMD5cbmM/NDMyMDoxOTYwKm5qKGMvMTk2MCkpLWM7aWYoMTA8Yyl7YS50aW1lb3V0SGFuZGxlPW9mKFVqLmJpbmQobnVsbCxhKSxjKTticmVha31VaihhKTticmVhaztjYXNlIDU6VWooYSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcih5KDMyOSkpO319TWooYSxPKCkpO3JldHVybiBhLmNhbGxiYWNrTm9kZT09PWI/TmouYmluZChudWxsLGEpOm51bGx9ZnVuY3Rpb24gSWkoYSxiKXtiJj1+dWo7YiY9fkhpO2Euc3VzcGVuZGVkTGFuZXN8PWI7YS5waW5nZWRMYW5lcyY9fmI7Zm9yKGE9YS5leHBpcmF0aW9uVGltZXM7MDxiOyl7dmFyIGM9MzEtVmMoYiksZD0xPDxjO2FbY109LTE7YiY9fmR9fVxuZnVuY3Rpb24gTGooYSl7aWYoMCE9PShYJjQ4KSl0aHJvdyBFcnJvcih5KDMyNykpO09qKCk7aWYoYT09PVUmJjAhPT0oYS5leHBpcmVkTGFuZXMmVykpe3ZhciBiPVc7dmFyIGM9VGooYSxiKTswIT09KHRqJkhpKSYmKGI9VWMoYSxiKSxjPVRqKGEsYikpfWVsc2UgYj1VYyhhLDApLGM9VGooYSxiKTswIT09YS50YWcmJjI9PT1jJiYoWHw9NjQsYS5oeWRyYXRlJiYoYS5oeWRyYXRlPSExLHFmKGEuY29udGFpbmVySW5mbykpLGI9V2MoYSksMCE9PWImJihjPVRqKGEsYikpKTtpZigxPT09Yyl0aHJvdyBjPXNqLFFqKGEsMCksSWkoYSxiKSxNaihhLE8oKSksYzthLmZpbmlzaGVkV29yaz1hLmN1cnJlbnQuYWx0ZXJuYXRlO2EuZmluaXNoZWRMYW5lcz1iO1VqKGEpO01qKGEsTygpKTtyZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIFZqKCl7aWYobnVsbCE9PUNqKXt2YXIgYT1DajtDaj1udWxsO2EuZm9yRWFjaChmdW5jdGlvbihhKXthLmV4cGlyZWRMYW5lc3w9MjQmYS5wZW5kaW5nTGFuZXM7TWooYSxPKCkpfSl9aWcoKX1mdW5jdGlvbiBXaihhLGIpe3ZhciBjPVg7WHw9MTt0cnl7cmV0dXJuIGEoYil9ZmluYWxseXtYPWMsMD09PVgmJih3aigpLGlnKCkpfX1mdW5jdGlvbiBYaihhLGIpe3ZhciBjPVg7WCY9LTI7WHw9ODt0cnl7cmV0dXJuIGEoYil9ZmluYWxseXtYPWMsMD09PVgmJih3aigpLGlnKCkpfX1mdW5jdGlvbiBuaShhLGIpe0kocmoscWopO3FqfD1iO3RqfD1ifWZ1bmN0aW9uIEtpKCl7cWo9cmouY3VycmVudDtIKHJqKX1cbmZ1bmN0aW9uIFFqKGEsYil7YS5maW5pc2hlZFdvcms9bnVsbDthLmZpbmlzaGVkTGFuZXM9MDt2YXIgYz1hLnRpbWVvdXRIYW5kbGU7LTEhPT1jJiYoYS50aW1lb3V0SGFuZGxlPS0xLHBmKGMpKTtpZihudWxsIT09WSlmb3IoYz1ZLnJldHVybjtudWxsIT09Yzspe3ZhciBkPWM7c3dpdGNoKGQudGFnKXtjYXNlIDE6ZD1kLnR5cGUuY2hpbGRDb250ZXh0VHlwZXM7bnVsbCE9PWQmJnZvaWQgMCE9PWQmJkdmKCk7YnJlYWs7Y2FzZSAzOmZoKCk7SChOKTtIKE0pO3VoKCk7YnJlYWs7Y2FzZSA1OmhoKGQpO2JyZWFrO2Nhc2UgNDpmaCgpO2JyZWFrO2Nhc2UgMTM6SChQKTticmVhaztjYXNlIDE5OkgoUCk7YnJlYWs7Y2FzZSAxMDpyZyhkKTticmVhaztjYXNlIDIzOmNhc2UgMjQ6S2koKX1jPWMucmV0dXJufVU9YTtZPVRnKGEuY3VycmVudCxudWxsKTtXPXFqPXRqPWI7Vj0wO3NqPW51bGw7dWo9SGk9RGc9MH1cbmZ1bmN0aW9uIFNqKGEsYil7ZG97dmFyIGM9WTt0cnl7cWcoKTt2aC5jdXJyZW50PUdoO2lmKHloKXtmb3IodmFyIGQ9Ui5tZW1vaXplZFN0YXRlO251bGwhPT1kOyl7dmFyIGU9ZC5xdWV1ZTtudWxsIT09ZSYmKGUucGVuZGluZz1udWxsKTtkPWQubmV4dH15aD0hMX14aD0wO1Q9Uz1SPW51bGw7emg9ITE7cGouY3VycmVudD1udWxsO2lmKG51bGw9PT1jfHxudWxsPT09Yy5yZXR1cm4pe1Y9MTtzaj1iO1k9bnVsbDticmVha31hOnt2YXIgZj1hLGc9Yy5yZXR1cm4saD1jLGs9YjtiPVc7aC5mbGFnc3w9MjA0ODtoLmZpcnN0RWZmZWN0PWgubGFzdEVmZmVjdD1udWxsO2lmKG51bGwhPT1rJiZcIm9iamVjdFwiPT09dHlwZW9mIGsmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBrLnRoZW4pe3ZhciBsPWs7aWYoMD09PShoLm1vZGUmMikpe3ZhciBuPWguYWx0ZXJuYXRlO24/KGgudXBkYXRlUXVldWU9bi51cGRhdGVRdWV1ZSxoLm1lbW9pemVkU3RhdGU9bi5tZW1vaXplZFN0YXRlLGgubGFuZXM9bi5sYW5lcyk6XG4oaC51cGRhdGVRdWV1ZT1udWxsLGgubWVtb2l6ZWRTdGF0ZT1udWxsKX12YXIgQT0wIT09KFAuY3VycmVudCYxKSxwPWc7ZG97dmFyIEM7aWYoQz0xMz09PXAudGFnKXt2YXIgeD1wLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PXgpQz1udWxsIT09eC5kZWh5ZHJhdGVkPyEwOiExO2Vsc2V7dmFyIHc9cC5tZW1vaXplZFByb3BzO0M9dm9pZCAwPT09dy5mYWxsYmFjaz8hMTohMCE9PXcudW5zdGFibGVfYXZvaWRUaGlzRmFsbGJhY2s/ITA6QT8hMTohMH19aWYoQyl7dmFyIHo9cC51cGRhdGVRdWV1ZTtpZihudWxsPT09eil7dmFyIHU9bmV3IFNldDt1LmFkZChsKTtwLnVwZGF0ZVF1ZXVlPXV9ZWxzZSB6LmFkZChsKTtpZigwPT09KHAubW9kZSYyKSl7cC5mbGFnc3w9NjQ7aC5mbGFnc3w9MTYzODQ7aC5mbGFncyY9LTI5ODE7aWYoMT09PWgudGFnKWlmKG51bGw9PT1oLmFsdGVybmF0ZSloLnRhZz0xNztlbHNle3ZhciB0PXpnKC0xLDEpO3QudGFnPTI7QWcoaCx0KX1oLmxhbmVzfD0xO2JyZWFrIGF9az1cbnZvaWQgMDtoPWI7dmFyIHE9Zi5waW5nQ2FjaGU7bnVsbD09PXE/KHE9Zi5waW5nQ2FjaGU9bmV3IE9pLGs9bmV3IFNldCxxLnNldChsLGspKTooaz1xLmdldChsKSx2b2lkIDA9PT1rJiYoaz1uZXcgU2V0LHEuc2V0KGwsaykpKTtpZighay5oYXMoaCkpe2suYWRkKGgpO3ZhciB2PVlqLmJpbmQobnVsbCxmLGwsaCk7bC50aGVuKHYsdil9cC5mbGFnc3w9NDA5NjtwLmxhbmVzPWI7YnJlYWsgYX1wPXAucmV0dXJufXdoaWxlKG51bGwhPT1wKTtrPUVycm9yKChSYShoLnR5cGUpfHxcIkEgUmVhY3QgY29tcG9uZW50XCIpK1wiIHN1c3BlbmRlZCB3aGlsZSByZW5kZXJpbmcsIGJ1dCBubyBmYWxsYmFjayBVSSB3YXMgc3BlY2lmaWVkLlxcblxcbkFkZCBhIDxTdXNwZW5zZSBmYWxsYmFjaz0uLi4+IGNvbXBvbmVudCBoaWdoZXIgaW4gdGhlIHRyZWUgdG8gcHJvdmlkZSBhIGxvYWRpbmcgaW5kaWNhdG9yIG9yIHBsYWNlaG9sZGVyIHRvIGRpc3BsYXkuXCIpfTUhPT1WJiYoVj0yKTtrPU1pKGssaCk7cD1cbmc7ZG97c3dpdGNoKHAudGFnKXtjYXNlIDM6Zj1rO3AuZmxhZ3N8PTQwOTY7YiY9LWI7cC5sYW5lc3w9Yjt2YXIgSj1QaShwLGYsYik7QmcocCxKKTticmVhayBhO2Nhc2UgMTpmPWs7dmFyIEs9cC50eXBlLFE9cC5zdGF0ZU5vZGU7aWYoMD09PShwLmZsYWdzJjY0KSYmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBLLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcnx8bnVsbCE9PVEmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBRLmNvbXBvbmVudERpZENhdGNoJiYobnVsbD09PVRpfHwhVGkuaGFzKFEpKSkpe3AuZmxhZ3N8PTQwOTY7YiY9LWI7cC5sYW5lc3w9Yjt2YXIgTD1TaShwLGYsYik7QmcocCxMKTticmVhayBhfX1wPXAucmV0dXJufXdoaWxlKG51bGwhPT1wKX1aaihjKX1jYXRjaCh2YSl7Yj12YTtZPT09YyYmbnVsbCE9PWMmJihZPWM9Yy5yZXR1cm4pO2NvbnRpbnVlfWJyZWFrfXdoaWxlKDEpfVxuZnVuY3Rpb24gUGooKXt2YXIgYT1vai5jdXJyZW50O29qLmN1cnJlbnQ9R2g7cmV0dXJuIG51bGw9PT1hP0doOmF9ZnVuY3Rpb24gVGooYSxiKXt2YXIgYz1YO1h8PTE2O3ZhciBkPVBqKCk7VT09PWEmJlc9PT1ifHxRaihhLGIpO2RvIHRyeXthaygpO2JyZWFrfWNhdGNoKGUpe1NqKGEsZSl9d2hpbGUoMSk7cWcoKTtYPWM7b2ouY3VycmVudD1kO2lmKG51bGwhPT1ZKXRocm93IEVycm9yKHkoMjYxKSk7VT1udWxsO1c9MDtyZXR1cm4gVn1mdW5jdGlvbiBhaygpe2Zvcig7bnVsbCE9PVk7KWJrKFkpfWZ1bmN0aW9uIFJqKCl7Zm9yKDtudWxsIT09WSYmIVFmKCk7KWJrKFkpfWZ1bmN0aW9uIGJrKGEpe3ZhciBiPWNrKGEuYWx0ZXJuYXRlLGEscWopO2EubWVtb2l6ZWRQcm9wcz1hLnBlbmRpbmdQcm9wcztudWxsPT09Yj9aaihhKTpZPWI7cGouY3VycmVudD1udWxsfVxuZnVuY3Rpb24gWmooYSl7dmFyIGI9YTtkb3t2YXIgYz1iLmFsdGVybmF0ZTthPWIucmV0dXJuO2lmKDA9PT0oYi5mbGFncyYyMDQ4KSl7Yz1HaShjLGIscWopO2lmKG51bGwhPT1jKXtZPWM7cmV0dXJufWM9YjtpZigyNCE9PWMudGFnJiYyMyE9PWMudGFnfHxudWxsPT09Yy5tZW1vaXplZFN0YXRlfHwwIT09KHFqJjEwNzM3NDE4MjQpfHwwPT09KGMubW9kZSY0KSl7Zm9yKHZhciBkPTAsZT1jLmNoaWxkO251bGwhPT1lOylkfD1lLmxhbmVzfGUuY2hpbGRMYW5lcyxlPWUuc2libGluZztjLmNoaWxkTGFuZXM9ZH1udWxsIT09YSYmMD09PShhLmZsYWdzJjIwNDgpJiYobnVsbD09PWEuZmlyc3RFZmZlY3QmJihhLmZpcnN0RWZmZWN0PWIuZmlyc3RFZmZlY3QpLG51bGwhPT1iLmxhc3RFZmZlY3QmJihudWxsIT09YS5sYXN0RWZmZWN0JiYoYS5sYXN0RWZmZWN0Lm5leHRFZmZlY3Q9Yi5maXJzdEVmZmVjdCksYS5sYXN0RWZmZWN0PWIubGFzdEVmZmVjdCksMTxiLmZsYWdzJiYobnVsbCE9PVxuYS5sYXN0RWZmZWN0P2EubGFzdEVmZmVjdC5uZXh0RWZmZWN0PWI6YS5maXJzdEVmZmVjdD1iLGEubGFzdEVmZmVjdD1iKSl9ZWxzZXtjPUxpKGIpO2lmKG51bGwhPT1jKXtjLmZsYWdzJj0yMDQ3O1k9YztyZXR1cm59bnVsbCE9PWEmJihhLmZpcnN0RWZmZWN0PWEubGFzdEVmZmVjdD1udWxsLGEuZmxhZ3N8PTIwNDgpfWI9Yi5zaWJsaW5nO2lmKG51bGwhPT1iKXtZPWI7cmV0dXJufVk9Yj1hfXdoaWxlKG51bGwhPT1iKTswPT09ViYmKFY9NSl9ZnVuY3Rpb24gVWooYSl7dmFyIGI9ZWcoKTtnZyg5OSxkay5iaW5kKG51bGwsYSxiKSk7cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBkayhhLGIpe2RvIE9qKCk7d2hpbGUobnVsbCE9PXlqKTtpZigwIT09KFgmNDgpKXRocm93IEVycm9yKHkoMzI3KSk7dmFyIGM9YS5maW5pc2hlZFdvcms7aWYobnVsbD09PWMpcmV0dXJuIG51bGw7YS5maW5pc2hlZFdvcms9bnVsbDthLmZpbmlzaGVkTGFuZXM9MDtpZihjPT09YS5jdXJyZW50KXRocm93IEVycm9yKHkoMTc3KSk7YS5jYWxsYmFja05vZGU9bnVsbDt2YXIgZD1jLmxhbmVzfGMuY2hpbGRMYW5lcyxlPWQsZj1hLnBlbmRpbmdMYW5lcyZ+ZTthLnBlbmRpbmdMYW5lcz1lO2Euc3VzcGVuZGVkTGFuZXM9MDthLnBpbmdlZExhbmVzPTA7YS5leHBpcmVkTGFuZXMmPWU7YS5tdXRhYmxlUmVhZExhbmVzJj1lO2EuZW50YW5nbGVkTGFuZXMmPWU7ZT1hLmVudGFuZ2xlbWVudHM7Zm9yKHZhciBnPWEuZXZlbnRUaW1lcyxoPWEuZXhwaXJhdGlvblRpbWVzOzA8Zjspe3ZhciBrPTMxLVZjKGYpLGw9MTw8aztlW2tdPTA7Z1trXT0tMTtoW2tdPS0xO2YmPX5sfW51bGwhPT1cbkNqJiYwPT09KGQmMjQpJiZDai5oYXMoYSkmJkNqLmRlbGV0ZShhKTthPT09VSYmKFk9VT1udWxsLFc9MCk7MTxjLmZsYWdzP251bGwhPT1jLmxhc3RFZmZlY3Q/KGMubGFzdEVmZmVjdC5uZXh0RWZmZWN0PWMsZD1jLmZpcnN0RWZmZWN0KTpkPWM6ZD1jLmZpcnN0RWZmZWN0O2lmKG51bGwhPT1kKXtlPVg7WHw9MzI7cGouY3VycmVudD1udWxsO2tmPWZkO2c9TmUoKTtpZihPZShnKSl7aWYoXCJzZWxlY3Rpb25TdGFydFwiaW4gZyloPXtzdGFydDpnLnNlbGVjdGlvblN0YXJ0LGVuZDpnLnNlbGVjdGlvbkVuZH07ZWxzZSBhOmlmKGg9KGg9Zy5vd25lckRvY3VtZW50KSYmaC5kZWZhdWx0Vmlld3x8d2luZG93LChsPWguZ2V0U2VsZWN0aW9uJiZoLmdldFNlbGVjdGlvbigpKSYmMCE9PWwucmFuZ2VDb3VudCl7aD1sLmFuY2hvck5vZGU7Zj1sLmFuY2hvck9mZnNldDtrPWwuZm9jdXNOb2RlO2w9bC5mb2N1c09mZnNldDt0cnl7aC5ub2RlVHlwZSxrLm5vZGVUeXBlfWNhdGNoKHZhKXtoPW51bGw7XG5icmVhayBhfXZhciBuPTAsQT0tMSxwPS0xLEM9MCx4PTAsdz1nLHo9bnVsbDtiOmZvcig7Oyl7Zm9yKHZhciB1Ozspe3chPT1ofHwwIT09ZiYmMyE9PXcubm9kZVR5cGV8fChBPW4rZik7dyE9PWt8fDAhPT1sJiYzIT09dy5ub2RlVHlwZXx8KHA9bitsKTszPT09dy5ub2RlVHlwZSYmKG4rPXcubm9kZVZhbHVlLmxlbmd0aCk7aWYobnVsbD09PSh1PXcuZmlyc3RDaGlsZCkpYnJlYWs7ej13O3c9dX1mb3IoOzspe2lmKHc9PT1nKWJyZWFrIGI7ej09PWgmJisrQz09PWYmJihBPW4pO3o9PT1rJiYrK3g9PT1sJiYocD1uKTtpZihudWxsIT09KHU9dy5uZXh0U2libGluZykpYnJlYWs7dz16O3o9dy5wYXJlbnROb2RlfXc9dX1oPS0xPT09QXx8LTE9PT1wP251bGw6e3N0YXJ0OkEsZW5kOnB9fWVsc2UgaD1udWxsO2g9aHx8e3N0YXJ0OjAsZW5kOjB9fWVsc2UgaD1udWxsO2xmPXtmb2N1c2VkRWxlbTpnLHNlbGVjdGlvblJhbmdlOmh9O2ZkPSExO0lqPW51bGw7Smo9ITE7Wj1kO2RvIHRyeXtlaygpfWNhdGNoKHZhKXtpZihudWxsPT09XG5aKXRocm93IEVycm9yKHkoMzMwKSk7V2koWix2YSk7Wj1aLm5leHRFZmZlY3R9d2hpbGUobnVsbCE9PVopO0lqPW51bGw7Wj1kO2RvIHRyeXtmb3IoZz1hO251bGwhPT1aOyl7dmFyIHQ9Wi5mbGFnczt0JjE2JiZwYihaLnN0YXRlTm9kZSxcIlwiKTtpZih0JjEyOCl7dmFyIHE9Wi5hbHRlcm5hdGU7aWYobnVsbCE9PXEpe3ZhciB2PXEucmVmO251bGwhPT12JiYoXCJmdW5jdGlvblwiPT09dHlwZW9mIHY/dihudWxsKTp2LmN1cnJlbnQ9bnVsbCl9fXN3aXRjaCh0JjEwMzgpe2Nhc2UgMjpmaihaKTtaLmZsYWdzJj0tMzticmVhaztjYXNlIDY6ZmooWik7Wi5mbGFncyY9LTM7aWooWi5hbHRlcm5hdGUsWik7YnJlYWs7Y2FzZSAxMDI0OlouZmxhZ3MmPS0xMDI1O2JyZWFrO2Nhc2UgMTAyODpaLmZsYWdzJj0tMTAyNTtpaihaLmFsdGVybmF0ZSxaKTticmVhaztjYXNlIDQ6aWooWi5hbHRlcm5hdGUsWik7YnJlYWs7Y2FzZSA4Omg9WjtjaihnLGgpO3ZhciBKPWguYWx0ZXJuYXRlO2RqKGgpO251bGwhPT1cbkomJmRqKEopfVo9Wi5uZXh0RWZmZWN0fX1jYXRjaCh2YSl7aWYobnVsbD09PVopdGhyb3cgRXJyb3IoeSgzMzApKTtXaShaLHZhKTtaPVoubmV4dEVmZmVjdH13aGlsZShudWxsIT09Wik7dj1sZjtxPU5lKCk7dD12LmZvY3VzZWRFbGVtO2c9di5zZWxlY3Rpb25SYW5nZTtpZihxIT09dCYmdCYmdC5vd25lckRvY3VtZW50JiZNZSh0Lm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHQpKXtudWxsIT09ZyYmT2UodCkmJihxPWcuc3RhcnQsdj1nLmVuZCx2b2lkIDA9PT12JiYodj1xKSxcInNlbGVjdGlvblN0YXJ0XCJpbiB0Pyh0LnNlbGVjdGlvblN0YXJ0PXEsdC5zZWxlY3Rpb25FbmQ9TWF0aC5taW4odix0LnZhbHVlLmxlbmd0aCkpOih2PShxPXQub3duZXJEb2N1bWVudHx8ZG9jdW1lbnQpJiZxLmRlZmF1bHRWaWV3fHx3aW5kb3csdi5nZXRTZWxlY3Rpb24mJih2PXYuZ2V0U2VsZWN0aW9uKCksaD10LnRleHRDb250ZW50Lmxlbmd0aCxKPU1hdGgubWluKGcuc3RhcnQsaCksZz12b2lkIDA9PT1cbmcuZW5kP0o6TWF0aC5taW4oZy5lbmQsaCksIXYuZXh0ZW5kJiZKPmcmJihoPWcsZz1KLEo9aCksaD1MZSh0LEopLGY9TGUodCxnKSxoJiZmJiYoMSE9PXYucmFuZ2VDb3VudHx8di5hbmNob3JOb2RlIT09aC5ub2RlfHx2LmFuY2hvck9mZnNldCE9PWgub2Zmc2V0fHx2LmZvY3VzTm9kZSE9PWYubm9kZXx8di5mb2N1c09mZnNldCE9PWYub2Zmc2V0KSYmKHE9cS5jcmVhdGVSYW5nZSgpLHEuc2V0U3RhcnQoaC5ub2RlLGgub2Zmc2V0KSx2LnJlbW92ZUFsbFJhbmdlcygpLEo+Zz8odi5hZGRSYW5nZShxKSx2LmV4dGVuZChmLm5vZGUsZi5vZmZzZXQpKToocS5zZXRFbmQoZi5ub2RlLGYub2Zmc2V0KSx2LmFkZFJhbmdlKHEpKSkpKSk7cT1bXTtmb3Iodj10O3Y9di5wYXJlbnROb2RlOykxPT09di5ub2RlVHlwZSYmcS5wdXNoKHtlbGVtZW50OnYsbGVmdDp2LnNjcm9sbExlZnQsdG9wOnYuc2Nyb2xsVG9wfSk7XCJmdW5jdGlvblwiPT09dHlwZW9mIHQuZm9jdXMmJnQuZm9jdXMoKTtmb3IodD1cbjA7dDxxLmxlbmd0aDt0Kyspdj1xW3RdLHYuZWxlbWVudC5zY3JvbGxMZWZ0PXYubGVmdCx2LmVsZW1lbnQuc2Nyb2xsVG9wPXYudG9wfWZkPSEha2Y7bGY9a2Y9bnVsbDthLmN1cnJlbnQ9YztaPWQ7ZG8gdHJ5e2Zvcih0PWE7bnVsbCE9PVo7KXt2YXIgSz1aLmZsYWdzO0smMzYmJllpKHQsWi5hbHRlcm5hdGUsWik7aWYoSyYxMjgpe3E9dm9pZCAwO3ZhciBRPVoucmVmO2lmKG51bGwhPT1RKXt2YXIgTD1aLnN0YXRlTm9kZTtzd2l0Y2goWi50YWcpe2Nhc2UgNTpxPUw7YnJlYWs7ZGVmYXVsdDpxPUx9XCJmdW5jdGlvblwiPT09dHlwZW9mIFE/UShxKTpRLmN1cnJlbnQ9cX19Wj1aLm5leHRFZmZlY3R9fWNhdGNoKHZhKXtpZihudWxsPT09Wil0aHJvdyBFcnJvcih5KDMzMCkpO1dpKFosdmEpO1o9Wi5uZXh0RWZmZWN0fXdoaWxlKG51bGwhPT1aKTtaPW51bGw7JGYoKTtYPWV9ZWxzZSBhLmN1cnJlbnQ9YztpZih4ail4aj0hMSx5aj1hLHpqPWI7ZWxzZSBmb3IoWj1kO251bGwhPT1aOyliPVxuWi5uZXh0RWZmZWN0LFoubmV4dEVmZmVjdD1udWxsLFouZmxhZ3MmOCYmKEs9WixLLnNpYmxpbmc9bnVsbCxLLnN0YXRlTm9kZT1udWxsKSxaPWI7ZD1hLnBlbmRpbmdMYW5lczswPT09ZCYmKFRpPW51bGwpOzE9PT1kP2E9PT1Faj9EaisrOihEaj0wLEVqPWEpOkRqPTA7Yz1jLnN0YXRlTm9kZTtpZihNZiYmXCJmdW5jdGlvblwiPT09dHlwZW9mIE1mLm9uQ29tbWl0RmliZXJSb290KXRyeXtNZi5vbkNvbW1pdEZpYmVyUm9vdChMZixjLHZvaWQgMCw2ND09PShjLmN1cnJlbnQuZmxhZ3MmNjQpKX1jYXRjaCh2YSl7fU1qKGEsTygpKTtpZihRaSl0aHJvdyBRaT0hMSxhPVJpLFJpPW51bGwsYTtpZigwIT09KFgmOCkpcmV0dXJuIG51bGw7aWcoKTtyZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIGVrKCl7Zm9yKDtudWxsIT09Wjspe3ZhciBhPVouYWx0ZXJuYXRlO0pqfHxudWxsPT09SWp8fCgwIT09KFouZmxhZ3MmOCk/ZGMoWixJaikmJihKaj0hMCk6MTM9PT1aLnRhZyYmbWooYSxaKSYmZGMoWixJaikmJihKaj0hMCkpO3ZhciBiPVouZmxhZ3M7MCE9PShiJjI1NikmJlhpKGEsWik7MD09PShiJjUxMil8fHhqfHwoeGo9ITAsaGcoOTcsZnVuY3Rpb24oKXtPaigpO3JldHVybiBudWxsfSkpO1o9Wi5uZXh0RWZmZWN0fX1mdW5jdGlvbiBPaigpe2lmKDkwIT09emope3ZhciBhPTk3PHpqPzk3OnpqO3pqPTkwO3JldHVybiBnZyhhLGZrKX1yZXR1cm4hMX1mdW5jdGlvbiAkaShhLGIpe0FqLnB1c2goYixhKTt4anx8KHhqPSEwLGhnKDk3LGZ1bmN0aW9uKCl7T2ooKTtyZXR1cm4gbnVsbH0pKX1mdW5jdGlvbiBaaShhLGIpe0JqLnB1c2goYixhKTt4anx8KHhqPSEwLGhnKDk3LGZ1bmN0aW9uKCl7T2ooKTtyZXR1cm4gbnVsbH0pKX1cbmZ1bmN0aW9uIGZrKCl7aWYobnVsbD09PXlqKXJldHVybiExO3ZhciBhPXlqO3lqPW51bGw7aWYoMCE9PShYJjQ4KSl0aHJvdyBFcnJvcih5KDMzMSkpO3ZhciBiPVg7WHw9MzI7dmFyIGM9Qmo7Qmo9W107Zm9yKHZhciBkPTA7ZDxjLmxlbmd0aDtkKz0yKXt2YXIgZT1jW2RdLGY9Y1tkKzFdLGc9ZS5kZXN0cm95O2UuZGVzdHJveT12b2lkIDA7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGcpdHJ5e2coKX1jYXRjaChrKXtpZihudWxsPT09Zil0aHJvdyBFcnJvcih5KDMzMCkpO1dpKGYsayl9fWM9QWo7QWo9W107Zm9yKGQ9MDtkPGMubGVuZ3RoO2QrPTIpe2U9Y1tkXTtmPWNbZCsxXTt0cnl7dmFyIGg9ZS5jcmVhdGU7ZS5kZXN0cm95PWgoKX1jYXRjaChrKXtpZihudWxsPT09Zil0aHJvdyBFcnJvcih5KDMzMCkpO1dpKGYsayl9fWZvcihoPWEuY3VycmVudC5maXJzdEVmZmVjdDtudWxsIT09aDspYT1oLm5leHRFZmZlY3QsaC5uZXh0RWZmZWN0PW51bGwsaC5mbGFncyY4JiYoaC5zaWJsaW5nPVxubnVsbCxoLnN0YXRlTm9kZT1udWxsKSxoPWE7WD1iO2lnKCk7cmV0dXJuITB9ZnVuY3Rpb24gZ2soYSxiLGMpe2I9TWkoYyxiKTtiPVBpKGEsYiwxKTtBZyhhLGIpO2I9SGcoKTthPUtqKGEsMSk7bnVsbCE9PWEmJigkYyhhLDEsYiksTWooYSxiKSl9XG5mdW5jdGlvbiBXaShhLGIpe2lmKDM9PT1hLnRhZylnayhhLGEsYik7ZWxzZSBmb3IodmFyIGM9YS5yZXR1cm47bnVsbCE9PWM7KXtpZigzPT09Yy50YWcpe2drKGMsYSxiKTticmVha31lbHNlIGlmKDE9PT1jLnRhZyl7dmFyIGQ9Yy5zdGF0ZU5vZGU7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGMudHlwZS5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3J8fFwiZnVuY3Rpb25cIj09PXR5cGVvZiBkLmNvbXBvbmVudERpZENhdGNoJiYobnVsbD09PVRpfHwhVGkuaGFzKGQpKSl7YT1NaShiLGEpO3ZhciBlPVNpKGMsYSwxKTtBZyhjLGUpO2U9SGcoKTtjPUtqKGMsMSk7aWYobnVsbCE9PWMpJGMoYywxLGUpLE1qKGMsZSk7ZWxzZSBpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZC5jb21wb25lbnREaWRDYXRjaCYmKG51bGw9PT1UaXx8IVRpLmhhcyhkKSkpdHJ5e2QuY29tcG9uZW50RGlkQ2F0Y2goYixhKX1jYXRjaChmKXt9YnJlYWt9fWM9Yy5yZXR1cm59fVxuZnVuY3Rpb24gWWooYSxiLGMpe3ZhciBkPWEucGluZ0NhY2hlO251bGwhPT1kJiZkLmRlbGV0ZShiKTtiPUhnKCk7YS5waW5nZWRMYW5lc3w9YS5zdXNwZW5kZWRMYW5lcyZjO1U9PT1hJiYoVyZjKT09PWMmJig0PT09Vnx8Mz09PVYmJihXJjYyOTE0NTYwKT09PVcmJjUwMD5PKCktamo/UWooYSwwKTp1anw9Yyk7TWooYSxiKX1mdW5jdGlvbiBsaihhLGIpe3ZhciBjPWEuc3RhdGVOb2RlO251bGwhPT1jJiZjLmRlbGV0ZShiKTtiPTA7MD09PWImJihiPWEubW9kZSwwPT09KGImMik/Yj0xOjA9PT0oYiY0KT9iPTk5PT09ZWcoKT8xOjI6KDA9PT1HaiYmKEdqPXRqKSxiPVljKDYyOTE0NTYwJn5HaiksMD09PWImJihiPTQxOTQzMDQpKSk7Yz1IZygpO2E9S2ooYSxiKTtudWxsIT09YSYmKCRjKGEsYixjKSxNaihhLGMpKX12YXIgY2s7XG5jaz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Yi5sYW5lcztpZihudWxsIT09YSlpZihhLm1lbW9pemVkUHJvcHMhPT1iLnBlbmRpbmdQcm9wc3x8Ti5jdXJyZW50KXVnPSEwO2Vsc2UgaWYoMCE9PShjJmQpKXVnPTAhPT0oYS5mbGFncyYxNjM4NCk/ITA6ITE7ZWxzZXt1Zz0hMTtzd2l0Y2goYi50YWcpe2Nhc2UgMzpyaShiKTtzaCgpO2JyZWFrO2Nhc2UgNTpnaChiKTticmVhaztjYXNlIDE6RmYoYi50eXBlKSYmSmYoYik7YnJlYWs7Y2FzZSA0OmVoKGIsYi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyk7YnJlYWs7Y2FzZSAxMDpkPWIubWVtb2l6ZWRQcm9wcy52YWx1ZTt2YXIgZT1iLnR5cGUuX2NvbnRleHQ7SShtZyxlLl9jdXJyZW50VmFsdWUpO2UuX2N1cnJlbnRWYWx1ZT1kO2JyZWFrO2Nhc2UgMTM6aWYobnVsbCE9PWIubWVtb2l6ZWRTdGF0ZSl7aWYoMCE9PShjJmIuY2hpbGQuY2hpbGRMYW5lcykpcmV0dXJuIHRpKGEsYixjKTtJKFAsUC5jdXJyZW50JjEpO2I9aGkoYSxiLGMpO3JldHVybiBudWxsIT09XG5iP2Iuc2libGluZzpudWxsfUkoUCxQLmN1cnJlbnQmMSk7YnJlYWs7Y2FzZSAxOTpkPTAhPT0oYyZiLmNoaWxkTGFuZXMpO2lmKDAhPT0oYS5mbGFncyY2NCkpe2lmKGQpcmV0dXJuIEFpKGEsYixjKTtiLmZsYWdzfD02NH1lPWIubWVtb2l6ZWRTdGF0ZTtudWxsIT09ZSYmKGUucmVuZGVyaW5nPW51bGwsZS50YWlsPW51bGwsZS5sYXN0RWZmZWN0PW51bGwpO0koUCxQLmN1cnJlbnQpO2lmKGQpYnJlYWs7ZWxzZSByZXR1cm4gbnVsbDtjYXNlIDIzOmNhc2UgMjQ6cmV0dXJuIGIubGFuZXM9MCxtaShhLGIsYyl9cmV0dXJuIGhpKGEsYixjKX1lbHNlIHVnPSExO2IubGFuZXM9MDtzd2l0Y2goYi50YWcpe2Nhc2UgMjpkPWIudHlwZTtudWxsIT09YSYmKGEuYWx0ZXJuYXRlPW51bGwsYi5hbHRlcm5hdGU9bnVsbCxiLmZsYWdzfD0yKTthPWIucGVuZGluZ1Byb3BzO2U9RWYoYixNLmN1cnJlbnQpO3RnKGIsYyk7ZT1DaChudWxsLGIsZCxhLGUsYyk7Yi5mbGFnc3w9MTtpZihcIm9iamVjdFwiPT09XG50eXBlb2YgZSYmbnVsbCE9PWUmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBlLnJlbmRlciYmdm9pZCAwPT09ZS4kJHR5cGVvZil7Yi50YWc9MTtiLm1lbW9pemVkU3RhdGU9bnVsbDtiLnVwZGF0ZVF1ZXVlPW51bGw7aWYoRmYoZCkpe3ZhciBmPSEwO0pmKGIpfWVsc2UgZj0hMTtiLm1lbW9pemVkU3RhdGU9bnVsbCE9PWUuc3RhdGUmJnZvaWQgMCE9PWUuc3RhdGU/ZS5zdGF0ZTpudWxsO3hnKGIpO3ZhciBnPWQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBnJiZHZyhiLGQsZyxhKTtlLnVwZGF0ZXI9S2c7Yi5zdGF0ZU5vZGU9ZTtlLl9yZWFjdEludGVybmFscz1iO09nKGIsZCxhLGMpO2I9cWkobnVsbCxiLGQsITAsZixjKX1lbHNlIGIudGFnPTAsZmkobnVsbCxiLGUsYyksYj1iLmNoaWxkO3JldHVybiBiO2Nhc2UgMTY6ZT1iLmVsZW1lbnRUeXBlO2E6e251bGwhPT1hJiYoYS5hbHRlcm5hdGU9bnVsbCxiLmFsdGVybmF0ZT1udWxsLGIuZmxhZ3N8PTIpO1xuYT1iLnBlbmRpbmdQcm9wcztmPWUuX2luaXQ7ZT1mKGUuX3BheWxvYWQpO2IudHlwZT1lO2Y9Yi50YWc9aGsoZSk7YT1sZyhlLGEpO3N3aXRjaChmKXtjYXNlIDA6Yj1saShudWxsLGIsZSxhLGMpO2JyZWFrIGE7Y2FzZSAxOmI9cGkobnVsbCxiLGUsYSxjKTticmVhayBhO2Nhc2UgMTE6Yj1naShudWxsLGIsZSxhLGMpO2JyZWFrIGE7Y2FzZSAxNDpiPWlpKG51bGwsYixlLGxnKGUudHlwZSxhKSxkLGMpO2JyZWFrIGF9dGhyb3cgRXJyb3IoeSgzMDYsZSxcIlwiKSk7fXJldHVybiBiO2Nhc2UgMDpyZXR1cm4gZD1iLnR5cGUsZT1iLnBlbmRpbmdQcm9wcyxlPWIuZWxlbWVudFR5cGU9PT1kP2U6bGcoZCxlKSxsaShhLGIsZCxlLGMpO2Nhc2UgMTpyZXR1cm4gZD1iLnR5cGUsZT1iLnBlbmRpbmdQcm9wcyxlPWIuZWxlbWVudFR5cGU9PT1kP2U6bGcoZCxlKSxwaShhLGIsZCxlLGMpO2Nhc2UgMzpyaShiKTtkPWIudXBkYXRlUXVldWU7aWYobnVsbD09PWF8fG51bGw9PT1kKXRocm93IEVycm9yKHkoMjgyKSk7XG5kPWIucGVuZGluZ1Byb3BzO2U9Yi5tZW1vaXplZFN0YXRlO2U9bnVsbCE9PWU/ZS5lbGVtZW50Om51bGw7eWcoYSxiKTtDZyhiLGQsbnVsbCxjKTtkPWIubWVtb2l6ZWRTdGF0ZS5lbGVtZW50O2lmKGQ9PT1lKXNoKCksYj1oaShhLGIsYyk7ZWxzZXtlPWIuc3RhdGVOb2RlO2lmKGY9ZS5oeWRyYXRlKWtoPXJmKGIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8uZmlyc3RDaGlsZCksamg9YixmPWxoPSEwO2lmKGYpe2E9ZS5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhO2lmKG51bGwhPWEpZm9yKGU9MDtlPGEubGVuZ3RoO2UrPTIpZj1hW2VdLGYuX3dvcmtJblByb2dyZXNzVmVyc2lvblByaW1hcnk9YVtlKzFdLHRoLnB1c2goZik7Yz1aZyhiLG51bGwsZCxjKTtmb3IoYi5jaGlsZD1jO2M7KWMuZmxhZ3M9Yy5mbGFncyYtM3wxMDI0LGM9Yy5zaWJsaW5nfWVsc2UgZmkoYSxiLGQsYyksc2goKTtiPWIuY2hpbGR9cmV0dXJuIGI7Y2FzZSA1OnJldHVybiBnaChiKSxudWxsPT09YSYmXG5waChiKSxkPWIudHlwZSxlPWIucGVuZGluZ1Byb3BzLGY9bnVsbCE9PWE/YS5tZW1vaXplZFByb3BzOm51bGwsZz1lLmNoaWxkcmVuLG5mKGQsZSk/Zz1udWxsOm51bGwhPT1mJiZuZihkLGYpJiYoYi5mbGFnc3w9MTYpLG9pKGEsYiksZmkoYSxiLGcsYyksYi5jaGlsZDtjYXNlIDY6cmV0dXJuIG51bGw9PT1hJiZwaChiKSxudWxsO2Nhc2UgMTM6cmV0dXJuIHRpKGEsYixjKTtjYXNlIDQ6cmV0dXJuIGVoKGIsYi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksZD1iLnBlbmRpbmdQcm9wcyxudWxsPT09YT9iLmNoaWxkPVlnKGIsbnVsbCxkLGMpOmZpKGEsYixkLGMpLGIuY2hpbGQ7Y2FzZSAxMTpyZXR1cm4gZD1iLnR5cGUsZT1iLnBlbmRpbmdQcm9wcyxlPWIuZWxlbWVudFR5cGU9PT1kP2U6bGcoZCxlKSxnaShhLGIsZCxlLGMpO2Nhc2UgNzpyZXR1cm4gZmkoYSxiLGIucGVuZGluZ1Byb3BzLGMpLGIuY2hpbGQ7Y2FzZSA4OnJldHVybiBmaShhLGIsYi5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sXG5jKSxiLmNoaWxkO2Nhc2UgMTI6cmV0dXJuIGZpKGEsYixiLnBlbmRpbmdQcm9wcy5jaGlsZHJlbixjKSxiLmNoaWxkO2Nhc2UgMTA6YTp7ZD1iLnR5cGUuX2NvbnRleHQ7ZT1iLnBlbmRpbmdQcm9wcztnPWIubWVtb2l6ZWRQcm9wcztmPWUudmFsdWU7dmFyIGg9Yi50eXBlLl9jb250ZXh0O0kobWcsaC5fY3VycmVudFZhbHVlKTtoLl9jdXJyZW50VmFsdWU9ZjtpZihudWxsIT09ZylpZihoPWcudmFsdWUsZj1IZShoLGYpPzA6KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBkLl9jYWxjdWxhdGVDaGFuZ2VkQml0cz9kLl9jYWxjdWxhdGVDaGFuZ2VkQml0cyhoLGYpOjEwNzM3NDE4MjMpfDAsMD09PWYpe2lmKGcuY2hpbGRyZW49PT1lLmNoaWxkcmVuJiYhTi5jdXJyZW50KXtiPWhpKGEsYixjKTticmVhayBhfX1lbHNlIGZvcihoPWIuY2hpbGQsbnVsbCE9PWgmJihoLnJldHVybj1iKTtudWxsIT09aDspe3ZhciBrPWguZGVwZW5kZW5jaWVzO2lmKG51bGwhPT1rKXtnPWguY2hpbGQ7Zm9yKHZhciBsPVxuay5maXJzdENvbnRleHQ7bnVsbCE9PWw7KXtpZihsLmNvbnRleHQ9PT1kJiYwIT09KGwub2JzZXJ2ZWRCaXRzJmYpKXsxPT09aC50YWcmJihsPXpnKC0xLGMmLWMpLGwudGFnPTIsQWcoaCxsKSk7aC5sYW5lc3w9YztsPWguYWx0ZXJuYXRlO251bGwhPT1sJiYobC5sYW5lc3w9Yyk7c2coaC5yZXR1cm4sYyk7ay5sYW5lc3w9YzticmVha31sPWwubmV4dH19ZWxzZSBnPTEwPT09aC50YWc/aC50eXBlPT09Yi50eXBlP251bGw6aC5jaGlsZDpoLmNoaWxkO2lmKG51bGwhPT1nKWcucmV0dXJuPWg7ZWxzZSBmb3IoZz1oO251bGwhPT1nOyl7aWYoZz09PWIpe2c9bnVsbDticmVha31oPWcuc2libGluZztpZihudWxsIT09aCl7aC5yZXR1cm49Zy5yZXR1cm47Zz1oO2JyZWFrfWc9Zy5yZXR1cm59aD1nfWZpKGEsYixlLmNoaWxkcmVuLGMpO2I9Yi5jaGlsZH1yZXR1cm4gYjtjYXNlIDk6cmV0dXJuIGU9Yi50eXBlLGY9Yi5wZW5kaW5nUHJvcHMsZD1mLmNoaWxkcmVuLHRnKGIsYyksZT12ZyhlLFxuZi51bnN0YWJsZV9vYnNlcnZlZEJpdHMpLGQ9ZChlKSxiLmZsYWdzfD0xLGZpKGEsYixkLGMpLGIuY2hpbGQ7Y2FzZSAxNDpyZXR1cm4gZT1iLnR5cGUsZj1sZyhlLGIucGVuZGluZ1Byb3BzKSxmPWxnKGUudHlwZSxmKSxpaShhLGIsZSxmLGQsYyk7Y2FzZSAxNTpyZXR1cm4ga2koYSxiLGIudHlwZSxiLnBlbmRpbmdQcm9wcyxkLGMpO2Nhc2UgMTc6cmV0dXJuIGQ9Yi50eXBlLGU9Yi5wZW5kaW5nUHJvcHMsZT1iLmVsZW1lbnRUeXBlPT09ZD9lOmxnKGQsZSksbnVsbCE9PWEmJihhLmFsdGVybmF0ZT1udWxsLGIuYWx0ZXJuYXRlPW51bGwsYi5mbGFnc3w9MiksYi50YWc9MSxGZihkKT8oYT0hMCxKZihiKSk6YT0hMSx0ZyhiLGMpLE1nKGIsZCxlKSxPZyhiLGQsZSxjKSxxaShudWxsLGIsZCwhMCxhLGMpO2Nhc2UgMTk6cmV0dXJuIEFpKGEsYixjKTtjYXNlIDIzOnJldHVybiBtaShhLGIsYyk7Y2FzZSAyNDpyZXR1cm4gbWkoYSxiLGMpfXRocm93IEVycm9yKHkoMTU2LGIudGFnKSk7XG59O2Z1bmN0aW9uIGlrKGEsYixjLGQpe3RoaXMudGFnPWE7dGhpcy5rZXk9Yzt0aGlzLnNpYmxpbmc9dGhpcy5jaGlsZD10aGlzLnJldHVybj10aGlzLnN0YXRlTm9kZT10aGlzLnR5cGU9dGhpcy5lbGVtZW50VHlwZT1udWxsO3RoaXMuaW5kZXg9MDt0aGlzLnJlZj1udWxsO3RoaXMucGVuZGluZ1Byb3BzPWI7dGhpcy5kZXBlbmRlbmNpZXM9dGhpcy5tZW1vaXplZFN0YXRlPXRoaXMudXBkYXRlUXVldWU9dGhpcy5tZW1vaXplZFByb3BzPW51bGw7dGhpcy5tb2RlPWQ7dGhpcy5mbGFncz0wO3RoaXMubGFzdEVmZmVjdD10aGlzLmZpcnN0RWZmZWN0PXRoaXMubmV4dEVmZmVjdD1udWxsO3RoaXMuY2hpbGRMYW5lcz10aGlzLmxhbmVzPTA7dGhpcy5hbHRlcm5hdGU9bnVsbH1mdW5jdGlvbiBuaChhLGIsYyxkKXtyZXR1cm4gbmV3IGlrKGEsYixjLGQpfWZ1bmN0aW9uIGppKGEpe2E9YS5wcm90b3R5cGU7cmV0dXJuISghYXx8IWEuaXNSZWFjdENvbXBvbmVudCl9XG5mdW5jdGlvbiBoayhhKXtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYSlyZXR1cm4gamkoYSk/MTowO2lmKHZvaWQgMCE9PWEmJm51bGwhPT1hKXthPWEuJCR0eXBlb2Y7aWYoYT09PUFhKXJldHVybiAxMTtpZihhPT09RGEpcmV0dXJuIDE0fXJldHVybiAyfVxuZnVuY3Rpb24gVGcoYSxiKXt2YXIgYz1hLmFsdGVybmF0ZTtudWxsPT09Yz8oYz1uaChhLnRhZyxiLGEua2V5LGEubW9kZSksYy5lbGVtZW50VHlwZT1hLmVsZW1lbnRUeXBlLGMudHlwZT1hLnR5cGUsYy5zdGF0ZU5vZGU9YS5zdGF0ZU5vZGUsYy5hbHRlcm5hdGU9YSxhLmFsdGVybmF0ZT1jKTooYy5wZW5kaW5nUHJvcHM9YixjLnR5cGU9YS50eXBlLGMuZmxhZ3M9MCxjLm5leHRFZmZlY3Q9bnVsbCxjLmZpcnN0RWZmZWN0PW51bGwsYy5sYXN0RWZmZWN0PW51bGwpO2MuY2hpbGRMYW5lcz1hLmNoaWxkTGFuZXM7Yy5sYW5lcz1hLmxhbmVzO2MuY2hpbGQ9YS5jaGlsZDtjLm1lbW9pemVkUHJvcHM9YS5tZW1vaXplZFByb3BzO2MubWVtb2l6ZWRTdGF0ZT1hLm1lbW9pemVkU3RhdGU7Yy51cGRhdGVRdWV1ZT1hLnVwZGF0ZVF1ZXVlO2I9YS5kZXBlbmRlbmNpZXM7Yy5kZXBlbmRlbmNpZXM9bnVsbD09PWI/bnVsbDp7bGFuZXM6Yi5sYW5lcyxmaXJzdENvbnRleHQ6Yi5maXJzdENvbnRleHR9O1xuYy5zaWJsaW5nPWEuc2libGluZztjLmluZGV4PWEuaW5kZXg7Yy5yZWY9YS5yZWY7cmV0dXJuIGN9XG5mdW5jdGlvbiBWZyhhLGIsYyxkLGUsZil7dmFyIGc9MjtkPWE7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGEpamkoYSkmJihnPTEpO2Vsc2UgaWYoXCJzdHJpbmdcIj09PXR5cGVvZiBhKWc9NTtlbHNlIGE6c3dpdGNoKGEpe2Nhc2UgdWE6cmV0dXJuIFhnKGMuY2hpbGRyZW4sZSxmLGIpO2Nhc2UgSGE6Zz04O2V8PTE2O2JyZWFrO2Nhc2Ugd2E6Zz04O2V8PTE7YnJlYWs7Y2FzZSB4YTpyZXR1cm4gYT1uaCgxMixjLGIsZXw4KSxhLmVsZW1lbnRUeXBlPXhhLGEudHlwZT14YSxhLmxhbmVzPWYsYTtjYXNlIEJhOnJldHVybiBhPW5oKDEzLGMsYixlKSxhLnR5cGU9QmEsYS5lbGVtZW50VHlwZT1CYSxhLmxhbmVzPWYsYTtjYXNlIENhOnJldHVybiBhPW5oKDE5LGMsYixlKSxhLmVsZW1lbnRUeXBlPUNhLGEubGFuZXM9ZixhO2Nhc2UgSWE6cmV0dXJuIHZpKGMsZSxmLGIpO2Nhc2UgSmE6cmV0dXJuIGE9bmgoMjQsYyxiLGUpLGEuZWxlbWVudFR5cGU9SmEsYS5sYW5lcz1mLGE7ZGVmYXVsdDppZihcIm9iamVjdFwiPT09XG50eXBlb2YgYSYmbnVsbCE9PWEpc3dpdGNoKGEuJCR0eXBlb2Ype2Nhc2UgeWE6Zz0xMDticmVhayBhO2Nhc2UgemE6Zz05O2JyZWFrIGE7Y2FzZSBBYTpnPTExO2JyZWFrIGE7Y2FzZSBEYTpnPTE0O2JyZWFrIGE7Y2FzZSBFYTpnPTE2O2Q9bnVsbDticmVhayBhO2Nhc2UgRmE6Zz0yMjticmVhayBhfXRocm93IEVycm9yKHkoMTMwLG51bGw9PWE/YTp0eXBlb2YgYSxcIlwiKSk7fWI9bmgoZyxjLGIsZSk7Yi5lbGVtZW50VHlwZT1hO2IudHlwZT1kO2IubGFuZXM9ZjtyZXR1cm4gYn1mdW5jdGlvbiBYZyhhLGIsYyxkKXthPW5oKDcsYSxkLGIpO2EubGFuZXM9YztyZXR1cm4gYX1mdW5jdGlvbiB2aShhLGIsYyxkKXthPW5oKDIzLGEsZCxiKTthLmVsZW1lbnRUeXBlPUlhO2EubGFuZXM9YztyZXR1cm4gYX1mdW5jdGlvbiBVZyhhLGIsYyl7YT1uaCg2LGEsbnVsbCxiKTthLmxhbmVzPWM7cmV0dXJuIGF9XG5mdW5jdGlvbiBXZyhhLGIsYyl7Yj1uaCg0LG51bGwhPT1hLmNoaWxkcmVuP2EuY2hpbGRyZW46W10sYS5rZXksYik7Yi5sYW5lcz1jO2Iuc3RhdGVOb2RlPXtjb250YWluZXJJbmZvOmEuY29udGFpbmVySW5mbyxwZW5kaW5nQ2hpbGRyZW46bnVsbCxpbXBsZW1lbnRhdGlvbjphLmltcGxlbWVudGF0aW9ufTtyZXR1cm4gYn1cbmZ1bmN0aW9uIGprKGEsYixjKXt0aGlzLnRhZz1iO3RoaXMuY29udGFpbmVySW5mbz1hO3RoaXMuZmluaXNoZWRXb3JrPXRoaXMucGluZ0NhY2hlPXRoaXMuY3VycmVudD10aGlzLnBlbmRpbmdDaGlsZHJlbj1udWxsO3RoaXMudGltZW91dEhhbmRsZT0tMTt0aGlzLnBlbmRpbmdDb250ZXh0PXRoaXMuY29udGV4dD1udWxsO3RoaXMuaHlkcmF0ZT1jO3RoaXMuY2FsbGJhY2tOb2RlPW51bGw7dGhpcy5jYWxsYmFja1ByaW9yaXR5PTA7dGhpcy5ldmVudFRpbWVzPVpjKDApO3RoaXMuZXhwaXJhdGlvblRpbWVzPVpjKC0xKTt0aGlzLmVudGFuZ2xlZExhbmVzPXRoaXMuZmluaXNoZWRMYW5lcz10aGlzLm11dGFibGVSZWFkTGFuZXM9dGhpcy5leHBpcmVkTGFuZXM9dGhpcy5waW5nZWRMYW5lcz10aGlzLnN1c3BlbmRlZExhbmVzPXRoaXMucGVuZGluZ0xhbmVzPTA7dGhpcy5lbnRhbmdsZW1lbnRzPVpjKDApO3RoaXMubXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YT1udWxsfVxuZnVuY3Rpb24ga2soYSxiLGMpe3ZhciBkPTM8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTpudWxsO3JldHVybnskJHR5cGVvZjp0YSxrZXk6bnVsbD09ZD9udWxsOlwiXCIrZCxjaGlsZHJlbjphLGNvbnRhaW5lckluZm86YixpbXBsZW1lbnRhdGlvbjpjfX1cbmZ1bmN0aW9uIGxrKGEsYixjLGQpe3ZhciBlPWIuY3VycmVudCxmPUhnKCksZz1JZyhlKTthOmlmKGMpe2M9Yy5fcmVhY3RJbnRlcm5hbHM7Yjp7aWYoWmIoYykhPT1jfHwxIT09Yy50YWcpdGhyb3cgRXJyb3IoeSgxNzApKTt2YXIgaD1jO2Rve3N3aXRjaChoLnRhZyl7Y2FzZSAzOmg9aC5zdGF0ZU5vZGUuY29udGV4dDticmVhayBiO2Nhc2UgMTppZihGZihoLnR5cGUpKXtoPWguc3RhdGVOb2RlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0O2JyZWFrIGJ9fWg9aC5yZXR1cm59d2hpbGUobnVsbCE9PWgpO3Rocm93IEVycm9yKHkoMTcxKSk7fWlmKDE9PT1jLnRhZyl7dmFyIGs9Yy50eXBlO2lmKEZmKGspKXtjPUlmKGMsayxoKTticmVhayBhfX1jPWh9ZWxzZSBjPUNmO251bGw9PT1iLmNvbnRleHQ/Yi5jb250ZXh0PWM6Yi5wZW5kaW5nQ29udGV4dD1jO2I9emcoZixnKTtiLnBheWxvYWQ9e2VsZW1lbnQ6YX07ZD12b2lkIDA9PT1kP251bGw6ZDtudWxsIT09XG5kJiYoYi5jYWxsYmFjaz1kKTtBZyhlLGIpO0pnKGUsZyxmKTtyZXR1cm4gZ31mdW5jdGlvbiBtayhhKXthPWEuY3VycmVudDtpZighYS5jaGlsZClyZXR1cm4gbnVsbDtzd2l0Y2goYS5jaGlsZC50YWcpe2Nhc2UgNTpyZXR1cm4gYS5jaGlsZC5zdGF0ZU5vZGU7ZGVmYXVsdDpyZXR1cm4gYS5jaGlsZC5zdGF0ZU5vZGV9fWZ1bmN0aW9uIG5rKGEsYil7YT1hLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PWEmJm51bGwhPT1hLmRlaHlkcmF0ZWQpe3ZhciBjPWEucmV0cnlMYW5lO2EucmV0cnlMYW5lPTAhPT1jJiZjPGI/YzpifX1mdW5jdGlvbiBvayhhLGIpe25rKGEsYik7KGE9YS5hbHRlcm5hdGUpJiZuayhhLGIpfWZ1bmN0aW9uIHBrKCl7cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBxayhhLGIsYyl7dmFyIGQ9bnVsbCE9YyYmbnVsbCE9Yy5oeWRyYXRpb25PcHRpb25zJiZjLmh5ZHJhdGlvbk9wdGlvbnMubXV0YWJsZVNvdXJjZXN8fG51bGw7Yz1uZXcgamsoYSxiLG51bGwhPWMmJiEwPT09Yy5oeWRyYXRlKTtiPW5oKDMsbnVsbCxudWxsLDI9PT1iPzc6MT09PWI/MzowKTtjLmN1cnJlbnQ9YjtiLnN0YXRlTm9kZT1jO3hnKGIpO2FbZmZdPWMuY3VycmVudDtjZig4PT09YS5ub2RlVHlwZT9hLnBhcmVudE5vZGU6YSk7aWYoZClmb3IoYT0wO2E8ZC5sZW5ndGg7YSsrKXtiPWRbYV07dmFyIGU9Yi5fZ2V0VmVyc2lvbjtlPWUoYi5fc291cmNlKTtudWxsPT1jLm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGE/Yy5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhPVtiLGVdOmMubXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YS5wdXNoKGIsZSl9dGhpcy5faW50ZXJuYWxSb290PWN9XG5xay5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKGEpe2xrKGEsdGhpcy5faW50ZXJuYWxSb290LG51bGwsbnVsbCl9O3FrLnByb3RvdHlwZS51bm1vdW50PWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5faW50ZXJuYWxSb290LGI9YS5jb250YWluZXJJbmZvO2xrKG51bGwsYSxudWxsLGZ1bmN0aW9uKCl7YltmZl09bnVsbH0pfTtmdW5jdGlvbiByayhhKXtyZXR1cm4hKCFhfHwxIT09YS5ub2RlVHlwZSYmOSE9PWEubm9kZVR5cGUmJjExIT09YS5ub2RlVHlwZSYmKDghPT1hLm5vZGVUeXBlfHxcIiByZWFjdC1tb3VudC1wb2ludC11bnN0YWJsZSBcIiE9PWEubm9kZVZhbHVlKSl9XG5mdW5jdGlvbiBzayhhLGIpe2J8fChiPWE/OT09PWEubm9kZVR5cGU/YS5kb2N1bWVudEVsZW1lbnQ6YS5maXJzdENoaWxkOm51bGwsYj0hKCFifHwxIT09Yi5ub2RlVHlwZXx8IWIuaGFzQXR0cmlidXRlKFwiZGF0YS1yZWFjdHJvb3RcIikpKTtpZighYilmb3IodmFyIGM7Yz1hLmxhc3RDaGlsZDspYS5yZW1vdmVDaGlsZChjKTtyZXR1cm4gbmV3IHFrKGEsMCxiP3toeWRyYXRlOiEwfTp2b2lkIDApfVxuZnVuY3Rpb24gdGsoYSxiLGMsZCxlKXt2YXIgZj1jLl9yZWFjdFJvb3RDb250YWluZXI7aWYoZil7dmFyIGc9Zi5faW50ZXJuYWxSb290O2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBlKXt2YXIgaD1lO2U9ZnVuY3Rpb24oKXt2YXIgYT1tayhnKTtoLmNhbGwoYSl9fWxrKGIsZyxhLGUpfWVsc2V7Zj1jLl9yZWFjdFJvb3RDb250YWluZXI9c2soYyxkKTtnPWYuX2ludGVybmFsUm9vdDtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZSl7dmFyIGs9ZTtlPWZ1bmN0aW9uKCl7dmFyIGE9bWsoZyk7ay5jYWxsKGEpfX1YaihmdW5jdGlvbigpe2xrKGIsZyxhLGUpfSl9cmV0dXJuIG1rKGcpfWVjPWZ1bmN0aW9uKGEpe2lmKDEzPT09YS50YWcpe3ZhciBiPUhnKCk7SmcoYSw0LGIpO29rKGEsNCl9fTtmYz1mdW5jdGlvbihhKXtpZigxMz09PWEudGFnKXt2YXIgYj1IZygpO0pnKGEsNjcxMDg4NjQsYik7b2soYSw2NzEwODg2NCl9fTtcbmdjPWZ1bmN0aW9uKGEpe2lmKDEzPT09YS50YWcpe3ZhciBiPUhnKCksYz1JZyhhKTtKZyhhLGMsYik7b2soYSxjKX19O2hjPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGIoKX07XG55Yj1mdW5jdGlvbihhLGIsYyl7c3dpdGNoKGIpe2Nhc2UgXCJpbnB1dFwiOmFiKGEsYyk7Yj1jLm5hbWU7aWYoXCJyYWRpb1wiPT09Yy50eXBlJiZudWxsIT1iKXtmb3IoYz1hO2MucGFyZW50Tm9kZTspYz1jLnBhcmVudE5vZGU7Yz1jLnF1ZXJ5U2VsZWN0b3JBbGwoXCJpbnB1dFtuYW1lPVwiK0pTT04uc3RyaW5naWZ5KFwiXCIrYikrJ11bdHlwZT1cInJhZGlvXCJdJyk7Zm9yKGI9MDtiPGMubGVuZ3RoO2IrKyl7dmFyIGQ9Y1tiXTtpZihkIT09YSYmZC5mb3JtPT09YS5mb3JtKXt2YXIgZT1EYihkKTtpZighZSl0aHJvdyBFcnJvcih5KDkwKSk7V2EoZCk7YWIoZCxlKX19fWJyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOmliKGEsYyk7YnJlYWs7Y2FzZSBcInNlbGVjdFwiOmI9Yy52YWx1ZSxudWxsIT1iJiZmYihhLCEhYy5tdWx0aXBsZSxiLCExKX19O0diPVdqO1xuSGI9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj1YO1h8PTQ7dHJ5e3JldHVybiBnZyg5OCxhLmJpbmQobnVsbCxiLGMsZCxlKSl9ZmluYWxseXtYPWYsMD09PVgmJih3aigpLGlnKCkpfX07SWI9ZnVuY3Rpb24oKXswPT09KFgmNDkpJiYoVmooKSxPaigpKX07SmI9ZnVuY3Rpb24oYSxiKXt2YXIgYz1YO1h8PTI7dHJ5e3JldHVybiBhKGIpfWZpbmFsbHl7WD1jLDA9PT1YJiYod2ooKSxpZygpKX19O2Z1bmN0aW9uIHVrKGEsYil7dmFyIGM9Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOm51bGw7aWYoIXJrKGIpKXRocm93IEVycm9yKHkoMjAwKSk7cmV0dXJuIGtrKGEsYixudWxsLGMpfXZhciB2az17RXZlbnRzOltDYix1ZSxEYixFYixGYixPaix7Y3VycmVudDohMX1dfSx3az17ZmluZEZpYmVyQnlIb3N0SW5zdGFuY2U6d2MsYnVuZGxlVHlwZTowLHZlcnNpb246XCIxNy4wLjJcIixyZW5kZXJlclBhY2thZ2VOYW1lOlwicmVhY3QtZG9tXCJ9O1xudmFyIHhrPXtidW5kbGVUeXBlOndrLmJ1bmRsZVR5cGUsdmVyc2lvbjp3ay52ZXJzaW9uLHJlbmRlcmVyUGFja2FnZU5hbWU6d2sucmVuZGVyZXJQYWNrYWdlTmFtZSxyZW5kZXJlckNvbmZpZzp3ay5yZW5kZXJlckNvbmZpZyxvdmVycmlkZUhvb2tTdGF0ZTpudWxsLG92ZXJyaWRlSG9va1N0YXRlRGVsZXRlUGF0aDpudWxsLG92ZXJyaWRlSG9va1N0YXRlUmVuYW1lUGF0aDpudWxsLG92ZXJyaWRlUHJvcHM6bnVsbCxvdmVycmlkZVByb3BzRGVsZXRlUGF0aDpudWxsLG92ZXJyaWRlUHJvcHNSZW5hbWVQYXRoOm51bGwsc2V0U3VzcGVuc2VIYW5kbGVyOm51bGwsc2NoZWR1bGVVcGRhdGU6bnVsbCxjdXJyZW50RGlzcGF0Y2hlclJlZjpyYS5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLGZpbmRIb3N0SW5zdGFuY2VCeUZpYmVyOmZ1bmN0aW9uKGEpe2E9Y2MoYSk7cmV0dXJuIG51bGw9PT1hP251bGw6YS5zdGF0ZU5vZGV9LGZpbmRGaWJlckJ5SG9zdEluc3RhbmNlOndrLmZpbmRGaWJlckJ5SG9zdEluc3RhbmNlfHxcbnBrLGZpbmRIb3N0SW5zdGFuY2VzRm9yUmVmcmVzaDpudWxsLHNjaGVkdWxlUmVmcmVzaDpudWxsLHNjaGVkdWxlUm9vdDpudWxsLHNldFJlZnJlc2hIYW5kbGVyOm51bGwsZ2V0Q3VycmVudEZpYmVyOm51bGx9O2lmKFwidW5kZWZpbmVkXCIhPT10eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fKXt2YXIgeWs9X19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fO2lmKCF5ay5pc0Rpc2FibGVkJiZ5ay5zdXBwb3J0c0ZpYmVyKXRyeXtMZj15ay5pbmplY3QoeGspLE1mPXlrfWNhdGNoKGEpe319ZXhwb3J0cy5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRD12aztleHBvcnRzLmNyZWF0ZVBvcnRhbD11aztcbmV4cG9ydHMuZmluZERPTU5vZGU9ZnVuY3Rpb24oYSl7aWYobnVsbD09YSlyZXR1cm4gbnVsbDtpZigxPT09YS5ub2RlVHlwZSlyZXR1cm4gYTt2YXIgYj1hLl9yZWFjdEludGVybmFscztpZih2b2lkIDA9PT1iKXtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYS5yZW5kZXIpdGhyb3cgRXJyb3IoeSgxODgpKTt0aHJvdyBFcnJvcih5KDI2OCxPYmplY3Qua2V5cyhhKSkpO31hPWNjKGIpO2E9bnVsbD09PWE/bnVsbDphLnN0YXRlTm9kZTtyZXR1cm4gYX07ZXhwb3J0cy5mbHVzaFN5bmM9ZnVuY3Rpb24oYSxiKXt2YXIgYz1YO2lmKDAhPT0oYyY0OCkpcmV0dXJuIGEoYik7WHw9MTt0cnl7aWYoYSlyZXR1cm4gZ2coOTksYS5iaW5kKG51bGwsYikpfWZpbmFsbHl7WD1jLGlnKCl9fTtleHBvcnRzLmh5ZHJhdGU9ZnVuY3Rpb24oYSxiLGMpe2lmKCFyayhiKSl0aHJvdyBFcnJvcih5KDIwMCkpO3JldHVybiB0ayhudWxsLGEsYiwhMCxjKX07XG5leHBvcnRzLnJlbmRlcj1mdW5jdGlvbihhLGIsYyl7aWYoIXJrKGIpKXRocm93IEVycm9yKHkoMjAwKSk7cmV0dXJuIHRrKG51bGwsYSxiLCExLGMpfTtleHBvcnRzLnVubW91bnRDb21wb25lbnRBdE5vZGU9ZnVuY3Rpb24oYSl7aWYoIXJrKGEpKXRocm93IEVycm9yKHkoNDApKTtyZXR1cm4gYS5fcmVhY3RSb290Q29udGFpbmVyPyhYaihmdW5jdGlvbigpe3RrKG51bGwsbnVsbCxhLCExLGZ1bmN0aW9uKCl7YS5fcmVhY3RSb290Q29udGFpbmVyPW51bGw7YVtmZl09bnVsbH0pfSksITApOiExfTtleHBvcnRzLnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzPVdqO2V4cG9ydHMudW5zdGFibGVfY3JlYXRlUG9ydGFsPWZ1bmN0aW9uKGEsYil7cmV0dXJuIHVrKGEsYiwyPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06bnVsbCl9O1xuZXhwb3J0cy51bnN0YWJsZV9yZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcj1mdW5jdGlvbihhLGIsYyxkKXtpZighcmsoYykpdGhyb3cgRXJyb3IoeSgyMDApKTtpZihudWxsPT1hfHx2b2lkIDA9PT1hLl9yZWFjdEludGVybmFscyl0aHJvdyBFcnJvcih5KDM4KSk7cmV0dXJuIHRrKGEsYixjLCExLGQpfTtleHBvcnRzLnZlcnNpb249XCIxNy4wLjJcIjtcbiIsIid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gY2hlY2tEQ0UoKSB7XG4gIC8qIGdsb2JhbCBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gKi9cbiAgaWYgKFxuICAgIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gPT09ICd1bmRlZmluZWQnIHx8XG4gICAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRSAhPT0gJ2Z1bmN0aW9uJ1xuICApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAvLyBUaGlzIGJyYW5jaCBpcyB1bnJlYWNoYWJsZSBiZWNhdXNlIHRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWRcbiAgICAvLyBpbiBwcm9kdWN0aW9uLCBidXQgdGhlIGNvbmRpdGlvbiBpcyB0cnVlIG9ubHkgaW4gZGV2ZWxvcG1lbnQuXG4gICAgLy8gVGhlcmVmb3JlIGlmIHRoZSBicmFuY2ggaXMgc3RpbGwgaGVyZSwgZGVhZCBjb2RlIGVsaW1pbmF0aW9uIHdhc24ndFxuICAgIC8vIHByb3Blcmx5IGFwcGxpZWQuXG4gICAgLy8gRG9uJ3QgY2hhbmdlIHRoZSBtZXNzYWdlLiBSZWFjdCBEZXZUb29scyByZWxpZXMgb24gaXQuIEFsc28gbWFrZSBzdXJlXG4gICAgLy8gdGhpcyBtZXNzYWdlIGRvZXNuJ3Qgb2NjdXIgZWxzZXdoZXJlIGluIHRoaXMgZnVuY3Rpb24sIG9yIGl0IHdpbGwgY2F1c2VcbiAgICAvLyBhIGZhbHNlIHBvc2l0aXZlLlxuICAgIHRocm93IG5ldyBFcnJvcignXl9eJyk7XG4gIH1cbiAgdHJ5IHtcbiAgICAvLyBWZXJpZnkgdGhhdCB0aGUgY29kZSBhYm92ZSBoYXMgYmVlbiBkZWFkIGNvZGUgZWxpbWluYXRlZCAoRENFJ2QpLlxuICAgIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRShjaGVja0RDRSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIC8vIERldlRvb2xzIHNob3VsZG4ndCBjcmFzaCBSZWFjdCwgbm8gbWF0dGVyIHdoYXQuXG4gICAgLy8gV2Ugc2hvdWxkIHN0aWxsIHJlcG9ydCBpbiBjYXNlIHdlIGJyZWFrIHRoaXMgY29kZS5cbiAgICBjb25zb2xlLmVycm9yKGVycik7XG4gIH1cbn1cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgLy8gRENFIGNoZWNrIHNob3VsZCBoYXBwZW4gYmVmb3JlIFJlYWN0RE9NIGJ1bmRsZSBleGVjdXRlcyBzbyB0aGF0XG4gIC8vIERldlRvb2xzIGNhbiByZXBvcnQgYmFkIG1pbmlmaWNhdGlvbiBkdXJpbmcgaW5qZWN0aW9uLlxuICBjaGVja0RDRSgpO1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWRvbS5wcm9kdWN0aW9uLm1pbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1kb20uZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiIsIi8qKiBAbGljZW5zZSBSZWFjdCB2MC4yMC4yXG4gKiBzY2hlZHVsZXIucHJvZHVjdGlvbi5taW4uanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuJ3VzZSBzdHJpY3QnO3ZhciBmLGcsaCxrO2lmKFwib2JqZWN0XCI9PT10eXBlb2YgcGVyZm9ybWFuY2UmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBwZXJmb3JtYW5jZS5ub3cpe3ZhciBsPXBlcmZvcm1hbmNlO2V4cG9ydHMudW5zdGFibGVfbm93PWZ1bmN0aW9uKCl7cmV0dXJuIGwubm93KCl9fWVsc2V7dmFyIHA9RGF0ZSxxPXAubm93KCk7ZXhwb3J0cy51bnN0YWJsZV9ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gcC5ub3coKS1xfX1cbmlmKFwidW5kZWZpbmVkXCI9PT10eXBlb2Ygd2luZG93fHxcImZ1bmN0aW9uXCIhPT10eXBlb2YgTWVzc2FnZUNoYW5uZWwpe3ZhciB0PW51bGwsdT1udWxsLHc9ZnVuY3Rpb24oKXtpZihudWxsIT09dCl0cnl7dmFyIGE9ZXhwb3J0cy51bnN0YWJsZV9ub3coKTt0KCEwLGEpO3Q9bnVsbH1jYXRjaChiKXt0aHJvdyBzZXRUaW1lb3V0KHcsMCksYjt9fTtmPWZ1bmN0aW9uKGEpe251bGwhPT10P3NldFRpbWVvdXQoZiwwLGEpOih0PWEsc2V0VGltZW91dCh3LDApKX07Zz1mdW5jdGlvbihhLGIpe3U9c2V0VGltZW91dChhLGIpfTtoPWZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHUpfTtleHBvcnRzLnVuc3RhYmxlX3Nob3VsZFlpZWxkPWZ1bmN0aW9uKCl7cmV0dXJuITF9O2s9ZXhwb3J0cy51bnN0YWJsZV9mb3JjZUZyYW1lUmF0ZT1mdW5jdGlvbigpe319ZWxzZXt2YXIgeD13aW5kb3cuc2V0VGltZW91dCx5PXdpbmRvdy5jbGVhclRpbWVvdXQ7aWYoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBjb25zb2xlKXt2YXIgej1cbndpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZTtcImZ1bmN0aW9uXCIhPT10eXBlb2Ygd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSYmY29uc29sZS5lcnJvcihcIlRoaXMgYnJvd3NlciBkb2Vzbid0IHN1cHBvcnQgcmVxdWVzdEFuaW1hdGlvbkZyYW1lLiBNYWtlIHN1cmUgdGhhdCB5b3UgbG9hZCBhIHBvbHlmaWxsIGluIG9sZGVyIGJyb3dzZXJzLiBodHRwczovL3JlYWN0anMub3JnL2xpbmsvcmVhY3QtcG9seWZpbGxzXCIpO1wiZnVuY3Rpb25cIiE9PXR5cGVvZiB6JiZjb25zb2xlLmVycm9yKFwiVGhpcyBicm93c2VyIGRvZXNuJ3Qgc3VwcG9ydCBjYW5jZWxBbmltYXRpb25GcmFtZS4gTWFrZSBzdXJlIHRoYXQgeW91IGxvYWQgYSBwb2x5ZmlsbCBpbiBvbGRlciBicm93c2Vycy4gaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3JlYWN0LXBvbHlmaWxsc1wiKX12YXIgQT0hMSxCPW51bGwsQz0tMSxEPTUsRT0wO2V4cG9ydHMudW5zdGFibGVfc2hvdWxkWWllbGQ9ZnVuY3Rpb24oKXtyZXR1cm4gZXhwb3J0cy51bnN0YWJsZV9ub3coKT49XG5FfTtrPWZ1bmN0aW9uKCl7fTtleHBvcnRzLnVuc3RhYmxlX2ZvcmNlRnJhbWVSYXRlPWZ1bmN0aW9uKGEpezA+YXx8MTI1PGE/Y29uc29sZS5lcnJvcihcImZvcmNlRnJhbWVSYXRlIHRha2VzIGEgcG9zaXRpdmUgaW50IGJldHdlZW4gMCBhbmQgMTI1LCBmb3JjaW5nIGZyYW1lIHJhdGVzIGhpZ2hlciB0aGFuIDEyNSBmcHMgaXMgbm90IHN1cHBvcnRlZFwiKTpEPTA8YT9NYXRoLmZsb29yKDFFMy9hKTo1fTt2YXIgRj1uZXcgTWVzc2FnZUNoYW5uZWwsRz1GLnBvcnQyO0YucG9ydDEub25tZXNzYWdlPWZ1bmN0aW9uKCl7aWYobnVsbCE9PUIpe3ZhciBhPWV4cG9ydHMudW5zdGFibGVfbm93KCk7RT1hK0Q7dHJ5e0IoITAsYSk/Ry5wb3N0TWVzc2FnZShudWxsKTooQT0hMSxCPW51bGwpfWNhdGNoKGIpe3Rocm93IEcucG9zdE1lc3NhZ2UobnVsbCksYjt9fWVsc2UgQT0hMX07Zj1mdW5jdGlvbihhKXtCPWE7QXx8KEE9ITAsRy5wb3N0TWVzc2FnZShudWxsKSl9O2c9ZnVuY3Rpb24oYSxiKXtDPVxueChmdW5jdGlvbigpe2EoZXhwb3J0cy51bnN0YWJsZV9ub3coKSl9LGIpfTtoPWZ1bmN0aW9uKCl7eShDKTtDPS0xfX1mdW5jdGlvbiBIKGEsYil7dmFyIGM9YS5sZW5ndGg7YS5wdXNoKGIpO2E6Zm9yKDs7KXt2YXIgZD1jLTE+Pj4xLGU9YVtkXTtpZih2b2lkIDAhPT1lJiYwPEkoZSxiKSlhW2RdPWIsYVtjXT1lLGM9ZDtlbHNlIGJyZWFrIGF9fWZ1bmN0aW9uIEooYSl7YT1hWzBdO3JldHVybiB2b2lkIDA9PT1hP251bGw6YX1cbmZ1bmN0aW9uIEsoYSl7dmFyIGI9YVswXTtpZih2b2lkIDAhPT1iKXt2YXIgYz1hLnBvcCgpO2lmKGMhPT1iKXthWzBdPWM7YTpmb3IodmFyIGQ9MCxlPWEubGVuZ3RoO2Q8ZTspe3ZhciBtPTIqKGQrMSktMSxuPWFbbV0sdj1tKzEscj1hW3ZdO2lmKHZvaWQgMCE9PW4mJjA+SShuLGMpKXZvaWQgMCE9PXImJjA+SShyLG4pPyhhW2RdPXIsYVt2XT1jLGQ9dik6KGFbZF09bixhW21dPWMsZD1tKTtlbHNlIGlmKHZvaWQgMCE9PXImJjA+SShyLGMpKWFbZF09cixhW3ZdPWMsZD12O2Vsc2UgYnJlYWsgYX19cmV0dXJuIGJ9cmV0dXJuIG51bGx9ZnVuY3Rpb24gSShhLGIpe3ZhciBjPWEuc29ydEluZGV4LWIuc29ydEluZGV4O3JldHVybiAwIT09Yz9jOmEuaWQtYi5pZH12YXIgTD1bXSxNPVtdLE49MSxPPW51bGwsUD0zLFE9ITEsUj0hMSxTPSExO1xuZnVuY3Rpb24gVChhKXtmb3IodmFyIGI9SihNKTtudWxsIT09Yjspe2lmKG51bGw9PT1iLmNhbGxiYWNrKUsoTSk7ZWxzZSBpZihiLnN0YXJ0VGltZTw9YSlLKE0pLGIuc29ydEluZGV4PWIuZXhwaXJhdGlvblRpbWUsSChMLGIpO2Vsc2UgYnJlYWs7Yj1KKE0pfX1mdW5jdGlvbiBVKGEpe1M9ITE7VChhKTtpZighUilpZihudWxsIT09SihMKSlSPSEwLGYoVik7ZWxzZXt2YXIgYj1KKE0pO251bGwhPT1iJiZnKFUsYi5zdGFydFRpbWUtYSl9fVxuZnVuY3Rpb24gVihhLGIpe1I9ITE7UyYmKFM9ITEsaCgpKTtRPSEwO3ZhciBjPVA7dHJ5e1QoYik7Zm9yKE89SihMKTtudWxsIT09TyYmKCEoTy5leHBpcmF0aW9uVGltZT5iKXx8YSYmIWV4cG9ydHMudW5zdGFibGVfc2hvdWxkWWllbGQoKSk7KXt2YXIgZD1PLmNhbGxiYWNrO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBkKXtPLmNhbGxiYWNrPW51bGw7UD1PLnByaW9yaXR5TGV2ZWw7dmFyIGU9ZChPLmV4cGlyYXRpb25UaW1lPD1iKTtiPWV4cG9ydHMudW5zdGFibGVfbm93KCk7XCJmdW5jdGlvblwiPT09dHlwZW9mIGU/Ty5jYWxsYmFjaz1lOk89PT1KKEwpJiZLKEwpO1QoYil9ZWxzZSBLKEwpO089SihMKX1pZihudWxsIT09Tyl2YXIgbT0hMDtlbHNle3ZhciBuPUooTSk7bnVsbCE9PW4mJmcoVSxuLnN0YXJ0VGltZS1iKTttPSExfXJldHVybiBtfWZpbmFsbHl7Tz1udWxsLFA9YyxRPSExfX12YXIgVz1rO2V4cG9ydHMudW5zdGFibGVfSWRsZVByaW9yaXR5PTU7XG5leHBvcnRzLnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5PTE7ZXhwb3J0cy51bnN0YWJsZV9Mb3dQcmlvcml0eT00O2V4cG9ydHMudW5zdGFibGVfTm9ybWFsUHJpb3JpdHk9MztleHBvcnRzLnVuc3RhYmxlX1Byb2ZpbGluZz1udWxsO2V4cG9ydHMudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHk9MjtleHBvcnRzLnVuc3RhYmxlX2NhbmNlbENhbGxiYWNrPWZ1bmN0aW9uKGEpe2EuY2FsbGJhY2s9bnVsbH07ZXhwb3J0cy51bnN0YWJsZV9jb250aW51ZUV4ZWN1dGlvbj1mdW5jdGlvbigpe1J8fFF8fChSPSEwLGYoVikpfTtleHBvcnRzLnVuc3RhYmxlX2dldEN1cnJlbnRQcmlvcml0eUxldmVsPWZ1bmN0aW9uKCl7cmV0dXJuIFB9O2V4cG9ydHMudW5zdGFibGVfZ2V0Rmlyc3RDYWxsYmFja05vZGU9ZnVuY3Rpb24oKXtyZXR1cm4gSihMKX07XG5leHBvcnRzLnVuc3RhYmxlX25leHQ9ZnVuY3Rpb24oYSl7c3dpdGNoKFApe2Nhc2UgMTpjYXNlIDI6Y2FzZSAzOnZhciBiPTM7YnJlYWs7ZGVmYXVsdDpiPVB9dmFyIGM9UDtQPWI7dHJ5e3JldHVybiBhKCl9ZmluYWxseXtQPWN9fTtleHBvcnRzLnVuc3RhYmxlX3BhdXNlRXhlY3V0aW9uPWZ1bmN0aW9uKCl7fTtleHBvcnRzLnVuc3RhYmxlX3JlcXVlc3RQYWludD1XO2V4cG9ydHMudW5zdGFibGVfcnVuV2l0aFByaW9yaXR5PWZ1bmN0aW9uKGEsYil7c3dpdGNoKGEpe2Nhc2UgMTpjYXNlIDI6Y2FzZSAzOmNhc2UgNDpjYXNlIDU6YnJlYWs7ZGVmYXVsdDphPTN9dmFyIGM9UDtQPWE7dHJ5e3JldHVybiBiKCl9ZmluYWxseXtQPWN9fTtcbmV4cG9ydHMudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjaz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9ZXhwb3J0cy51bnN0YWJsZV9ub3coKTtcIm9iamVjdFwiPT09dHlwZW9mIGMmJm51bGwhPT1jPyhjPWMuZGVsYXksYz1cIm51bWJlclwiPT09dHlwZW9mIGMmJjA8Yz9kK2M6ZCk6Yz1kO3N3aXRjaChhKXtjYXNlIDE6dmFyIGU9LTE7YnJlYWs7Y2FzZSAyOmU9MjUwO2JyZWFrO2Nhc2UgNTplPTEwNzM3NDE4MjM7YnJlYWs7Y2FzZSA0OmU9MUU0O2JyZWFrO2RlZmF1bHQ6ZT01RTN9ZT1jK2U7YT17aWQ6TisrLGNhbGxiYWNrOmIscHJpb3JpdHlMZXZlbDphLHN0YXJ0VGltZTpjLGV4cGlyYXRpb25UaW1lOmUsc29ydEluZGV4Oi0xfTtjPmQ/KGEuc29ydEluZGV4PWMsSChNLGEpLG51bGw9PT1KKEwpJiZhPT09SihNKSYmKFM/aCgpOlM9ITAsZyhVLGMtZCkpKTooYS5zb3J0SW5kZXg9ZSxIKEwsYSksUnx8UXx8KFI9ITAsZihWKSkpO3JldHVybiBhfTtcbmV4cG9ydHMudW5zdGFibGVfd3JhcENhbGxiYWNrPWZ1bmN0aW9uKGEpe3ZhciBiPVA7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGM9UDtQPWI7dHJ5e3JldHVybiBhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1maW5hbGx5e1A9Y319fTtcbiIsIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9zY2hlZHVsZXIucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvc2NoZWR1bGVyLmRldmVsb3BtZW50LmpzJyk7XG59XG4iLCIvKiogQGxpY2Vuc2UgUmVhY3QgdjE3LjAuMlxuICogcmVhY3QucHJvZHVjdGlvbi5taW4uanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuJ3VzZSBzdHJpY3QnO3ZhciBsPXJlcXVpcmUoXCJvYmplY3QtYXNzaWduXCIpLG49NjAxMDMscD02MDEwNjtleHBvcnRzLkZyYWdtZW50PTYwMTA3O2V4cG9ydHMuU3RyaWN0TW9kZT02MDEwODtleHBvcnRzLlByb2ZpbGVyPTYwMTE0O3ZhciBxPTYwMTA5LHI9NjAxMTAsdD02MDExMjtleHBvcnRzLlN1c3BlbnNlPTYwMTEzO3ZhciB1PTYwMTE1LHY9NjAxMTY7XG5pZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuZm9yKXt2YXIgdz1TeW1ib2wuZm9yO249dyhcInJlYWN0LmVsZW1lbnRcIik7cD13KFwicmVhY3QucG9ydGFsXCIpO2V4cG9ydHMuRnJhZ21lbnQ9dyhcInJlYWN0LmZyYWdtZW50XCIpO2V4cG9ydHMuU3RyaWN0TW9kZT13KFwicmVhY3Quc3RyaWN0X21vZGVcIik7ZXhwb3J0cy5Qcm9maWxlcj13KFwicmVhY3QucHJvZmlsZXJcIik7cT13KFwicmVhY3QucHJvdmlkZXJcIik7cj13KFwicmVhY3QuY29udGV4dFwiKTt0PXcoXCJyZWFjdC5mb3J3YXJkX3JlZlwiKTtleHBvcnRzLlN1c3BlbnNlPXcoXCJyZWFjdC5zdXNwZW5zZVwiKTt1PXcoXCJyZWFjdC5tZW1vXCIpO3Y9dyhcInJlYWN0LmxhenlcIil9dmFyIHg9XCJmdW5jdGlvblwiPT09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yO1xuZnVuY3Rpb24geShhKXtpZihudWxsPT09YXx8XCJvYmplY3RcIiE9PXR5cGVvZiBhKXJldHVybiBudWxsO2E9eCYmYVt4XXx8YVtcIkBAaXRlcmF0b3JcIl07cmV0dXJuXCJmdW5jdGlvblwiPT09dHlwZW9mIGE/YTpudWxsfWZ1bmN0aW9uIHooYSl7Zm9yKHZhciBiPVwiaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL2Vycm9yLWRlY29kZXIuaHRtbD9pbnZhcmlhbnQ9XCIrYSxjPTE7Yzxhcmd1bWVudHMubGVuZ3RoO2MrKyliKz1cIiZhcmdzW109XCIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1tjXSk7cmV0dXJuXCJNaW5pZmllZCBSZWFjdCBlcnJvciAjXCIrYStcIjsgdmlzaXQgXCIrYitcIiBmb3IgdGhlIGZ1bGwgbWVzc2FnZSBvciB1c2UgdGhlIG5vbi1taW5pZmllZCBkZXYgZW52aXJvbm1lbnQgZm9yIGZ1bGwgZXJyb3JzIGFuZCBhZGRpdGlvbmFsIGhlbHBmdWwgd2FybmluZ3MuXCJ9XG52YXIgQT17aXNNb3VudGVkOmZ1bmN0aW9uKCl7cmV0dXJuITF9LGVucXVldWVGb3JjZVVwZGF0ZTpmdW5jdGlvbigpe30sZW5xdWV1ZVJlcGxhY2VTdGF0ZTpmdW5jdGlvbigpe30sZW5xdWV1ZVNldFN0YXRlOmZ1bmN0aW9uKCl7fX0sQj17fTtmdW5jdGlvbiBDKGEsYixjKXt0aGlzLnByb3BzPWE7dGhpcy5jb250ZXh0PWI7dGhpcy5yZWZzPUI7dGhpcy51cGRhdGVyPWN8fEF9Qy5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudD17fTtDLnByb3RvdHlwZS5zZXRTdGF0ZT1mdW5jdGlvbihhLGIpe2lmKFwib2JqZWN0XCIhPT10eXBlb2YgYSYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGEmJm51bGwhPWEpdGhyb3cgRXJyb3Ioeig4NSkpO3RoaXMudXBkYXRlci5lbnF1ZXVlU2V0U3RhdGUodGhpcyxhLGIsXCJzZXRTdGF0ZVwiKX07Qy5wcm90b3R5cGUuZm9yY2VVcGRhdGU9ZnVuY3Rpb24oYSl7dGhpcy51cGRhdGVyLmVucXVldWVGb3JjZVVwZGF0ZSh0aGlzLGEsXCJmb3JjZVVwZGF0ZVwiKX07XG5mdW5jdGlvbiBEKCl7fUQucHJvdG90eXBlPUMucHJvdG90eXBlO2Z1bmN0aW9uIEUoYSxiLGMpe3RoaXMucHJvcHM9YTt0aGlzLmNvbnRleHQ9Yjt0aGlzLnJlZnM9Qjt0aGlzLnVwZGF0ZXI9Y3x8QX12YXIgRj1FLnByb3RvdHlwZT1uZXcgRDtGLmNvbnN0cnVjdG9yPUU7bChGLEMucHJvdG90eXBlKTtGLmlzUHVyZVJlYWN0Q29tcG9uZW50PSEwO3ZhciBHPXtjdXJyZW50Om51bGx9LEg9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxJPXtrZXk6ITAscmVmOiEwLF9fc2VsZjohMCxfX3NvdXJjZTohMH07XG5mdW5jdGlvbiBKKGEsYixjKXt2YXIgZSxkPXt9LGs9bnVsbCxoPW51bGw7aWYobnVsbCE9Yilmb3IoZSBpbiB2b2lkIDAhPT1iLnJlZiYmKGg9Yi5yZWYpLHZvaWQgMCE9PWIua2V5JiYoaz1cIlwiK2Iua2V5KSxiKUguY2FsbChiLGUpJiYhSS5oYXNPd25Qcm9wZXJ0eShlKSYmKGRbZV09YltlXSk7dmFyIGc9YXJndW1lbnRzLmxlbmd0aC0yO2lmKDE9PT1nKWQuY2hpbGRyZW49YztlbHNlIGlmKDE8Zyl7Zm9yKHZhciBmPUFycmF5KGcpLG09MDttPGc7bSsrKWZbbV09YXJndW1lbnRzW20rMl07ZC5jaGlsZHJlbj1mfWlmKGEmJmEuZGVmYXVsdFByb3BzKWZvcihlIGluIGc9YS5kZWZhdWx0UHJvcHMsZyl2b2lkIDA9PT1kW2VdJiYoZFtlXT1nW2VdKTtyZXR1cm57JCR0eXBlb2Y6bix0eXBlOmEsa2V5OmsscmVmOmgscHJvcHM6ZCxfb3duZXI6Ry5jdXJyZW50fX1cbmZ1bmN0aW9uIEsoYSxiKXtyZXR1cm57JCR0eXBlb2Y6bix0eXBlOmEudHlwZSxrZXk6YixyZWY6YS5yZWYscHJvcHM6YS5wcm9wcyxfb3duZXI6YS5fb3duZXJ9fWZ1bmN0aW9uIEwoYSl7cmV0dXJuXCJvYmplY3RcIj09PXR5cGVvZiBhJiZudWxsIT09YSYmYS4kJHR5cGVvZj09PW59ZnVuY3Rpb24gZXNjYXBlKGEpe3ZhciBiPXtcIj1cIjpcIj0wXCIsXCI6XCI6XCI9MlwifTtyZXR1cm5cIiRcIithLnJlcGxhY2UoL1s9Ol0vZyxmdW5jdGlvbihhKXtyZXR1cm4gYlthXX0pfXZhciBNPS9cXC8rL2c7ZnVuY3Rpb24gTihhLGIpe3JldHVyblwib2JqZWN0XCI9PT10eXBlb2YgYSYmbnVsbCE9PWEmJm51bGwhPWEua2V5P2VzY2FwZShcIlwiK2Eua2V5KTpiLnRvU3RyaW5nKDM2KX1cbmZ1bmN0aW9uIE8oYSxiLGMsZSxkKXt2YXIgaz10eXBlb2YgYTtpZihcInVuZGVmaW5lZFwiPT09a3x8XCJib29sZWFuXCI9PT1rKWE9bnVsbDt2YXIgaD0hMTtpZihudWxsPT09YSloPSEwO2Vsc2Ugc3dpdGNoKGspe2Nhc2UgXCJzdHJpbmdcIjpjYXNlIFwibnVtYmVyXCI6aD0hMDticmVhaztjYXNlIFwib2JqZWN0XCI6c3dpdGNoKGEuJCR0eXBlb2Ype2Nhc2UgbjpjYXNlIHA6aD0hMH19aWYoaClyZXR1cm4gaD1hLGQ9ZChoKSxhPVwiXCI9PT1lP1wiLlwiK04oaCwwKTplLEFycmF5LmlzQXJyYXkoZCk/KGM9XCJcIixudWxsIT1hJiYoYz1hLnJlcGxhY2UoTSxcIiQmL1wiKStcIi9cIiksTyhkLGIsYyxcIlwiLGZ1bmN0aW9uKGEpe3JldHVybiBhfSkpOm51bGwhPWQmJihMKGQpJiYoZD1LKGQsYysoIWQua2V5fHxoJiZoLmtleT09PWQua2V5P1wiXCI6KFwiXCIrZC5rZXkpLnJlcGxhY2UoTSxcIiQmL1wiKStcIi9cIikrYSkpLGIucHVzaChkKSksMTtoPTA7ZT1cIlwiPT09ZT9cIi5cIjplK1wiOlwiO2lmKEFycmF5LmlzQXJyYXkoYSkpZm9yKHZhciBnPVxuMDtnPGEubGVuZ3RoO2crKyl7az1hW2ddO3ZhciBmPWUrTihrLGcpO2grPU8oayxiLGMsZixkKX1lbHNlIGlmKGY9eShhKSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZilmb3IoYT1mLmNhbGwoYSksZz0wOyEoaz1hLm5leHQoKSkuZG9uZTspaz1rLnZhbHVlLGY9ZStOKGssZysrKSxoKz1PKGssYixjLGYsZCk7ZWxzZSBpZihcIm9iamVjdFwiPT09ayl0aHJvdyBiPVwiXCIrYSxFcnJvcih6KDMxLFwiW29iamVjdCBPYmplY3RdXCI9PT1iP1wib2JqZWN0IHdpdGgga2V5cyB7XCIrT2JqZWN0LmtleXMoYSkuam9pbihcIiwgXCIpK1wifVwiOmIpKTtyZXR1cm4gaH1mdW5jdGlvbiBQKGEsYixjKXtpZihudWxsPT1hKXJldHVybiBhO3ZhciBlPVtdLGQ9MDtPKGEsZSxcIlwiLFwiXCIsZnVuY3Rpb24oYSl7cmV0dXJuIGIuY2FsbChjLGEsZCsrKX0pO3JldHVybiBlfVxuZnVuY3Rpb24gUShhKXtpZigtMT09PWEuX3N0YXR1cyl7dmFyIGI9YS5fcmVzdWx0O2I9YigpO2EuX3N0YXR1cz0wO2EuX3Jlc3VsdD1iO2IudGhlbihmdW5jdGlvbihiKXswPT09YS5fc3RhdHVzJiYoYj1iLmRlZmF1bHQsYS5fc3RhdHVzPTEsYS5fcmVzdWx0PWIpfSxmdW5jdGlvbihiKXswPT09YS5fc3RhdHVzJiYoYS5fc3RhdHVzPTIsYS5fcmVzdWx0PWIpfSl9aWYoMT09PWEuX3N0YXR1cylyZXR1cm4gYS5fcmVzdWx0O3Rocm93IGEuX3Jlc3VsdDt9dmFyIFI9e2N1cnJlbnQ6bnVsbH07ZnVuY3Rpb24gUygpe3ZhciBhPVIuY3VycmVudDtpZihudWxsPT09YSl0aHJvdyBFcnJvcih6KDMyMSkpO3JldHVybiBhfXZhciBUPXtSZWFjdEN1cnJlbnREaXNwYXRjaGVyOlIsUmVhY3RDdXJyZW50QmF0Y2hDb25maWc6e3RyYW5zaXRpb246MH0sUmVhY3RDdXJyZW50T3duZXI6RyxJc1NvbWVSZW5kZXJlckFjdGluZzp7Y3VycmVudDohMX0sYXNzaWduOmx9O1xuZXhwb3J0cy5DaGlsZHJlbj17bWFwOlAsZm9yRWFjaDpmdW5jdGlvbihhLGIsYyl7UChhLGZ1bmN0aW9uKCl7Yi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGMpfSxjb3VudDpmdW5jdGlvbihhKXt2YXIgYj0wO1AoYSxmdW5jdGlvbigpe2IrK30pO3JldHVybiBifSx0b0FycmF5OmZ1bmN0aW9uKGEpe3JldHVybiBQKGEsZnVuY3Rpb24oYSl7cmV0dXJuIGF9KXx8W119LG9ubHk6ZnVuY3Rpb24oYSl7aWYoIUwoYSkpdGhyb3cgRXJyb3IoeigxNDMpKTtyZXR1cm4gYX19O2V4cG9ydHMuQ29tcG9uZW50PUM7ZXhwb3J0cy5QdXJlQ29tcG9uZW50PUU7ZXhwb3J0cy5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRD1UO1xuZXhwb3J0cy5jbG9uZUVsZW1lbnQ9ZnVuY3Rpb24oYSxiLGMpe2lmKG51bGw9PT1hfHx2b2lkIDA9PT1hKXRocm93IEVycm9yKHooMjY3LGEpKTt2YXIgZT1sKHt9LGEucHJvcHMpLGQ9YS5rZXksaz1hLnJlZixoPWEuX293bmVyO2lmKG51bGwhPWIpe3ZvaWQgMCE9PWIucmVmJiYoaz1iLnJlZixoPUcuY3VycmVudCk7dm9pZCAwIT09Yi5rZXkmJihkPVwiXCIrYi5rZXkpO2lmKGEudHlwZSYmYS50eXBlLmRlZmF1bHRQcm9wcyl2YXIgZz1hLnR5cGUuZGVmYXVsdFByb3BzO2ZvcihmIGluIGIpSC5jYWxsKGIsZikmJiFJLmhhc093blByb3BlcnR5KGYpJiYoZVtmXT12b2lkIDA9PT1iW2ZdJiZ2b2lkIDAhPT1nP2dbZl06YltmXSl9dmFyIGY9YXJndW1lbnRzLmxlbmd0aC0yO2lmKDE9PT1mKWUuY2hpbGRyZW49YztlbHNlIGlmKDE8Zil7Zz1BcnJheShmKTtmb3IodmFyIG09MDttPGY7bSsrKWdbbV09YXJndW1lbnRzW20rMl07ZS5jaGlsZHJlbj1nfXJldHVybnskJHR5cGVvZjpuLHR5cGU6YS50eXBlLFxua2V5OmQscmVmOmsscHJvcHM6ZSxfb3duZXI6aH19O2V4cG9ydHMuY3JlYXRlQ29udGV4dD1mdW5jdGlvbihhLGIpe3ZvaWQgMD09PWImJihiPW51bGwpO2E9eyQkdHlwZW9mOnIsX2NhbGN1bGF0ZUNoYW5nZWRCaXRzOmIsX2N1cnJlbnRWYWx1ZTphLF9jdXJyZW50VmFsdWUyOmEsX3RocmVhZENvdW50OjAsUHJvdmlkZXI6bnVsbCxDb25zdW1lcjpudWxsfTthLlByb3ZpZGVyPXskJHR5cGVvZjpxLF9jb250ZXh0OmF9O3JldHVybiBhLkNvbnN1bWVyPWF9O2V4cG9ydHMuY3JlYXRlRWxlbWVudD1KO2V4cG9ydHMuY3JlYXRlRmFjdG9yeT1mdW5jdGlvbihhKXt2YXIgYj1KLmJpbmQobnVsbCxhKTtiLnR5cGU9YTtyZXR1cm4gYn07ZXhwb3J0cy5jcmVhdGVSZWY9ZnVuY3Rpb24oKXtyZXR1cm57Y3VycmVudDpudWxsfX07ZXhwb3J0cy5mb3J3YXJkUmVmPWZ1bmN0aW9uKGEpe3JldHVybnskJHR5cGVvZjp0LHJlbmRlcjphfX07ZXhwb3J0cy5pc1ZhbGlkRWxlbWVudD1MO1xuZXhwb3J0cy5sYXp5PWZ1bmN0aW9uKGEpe3JldHVybnskJHR5cGVvZjp2LF9wYXlsb2FkOntfc3RhdHVzOi0xLF9yZXN1bHQ6YX0sX2luaXQ6UX19O2V4cG9ydHMubWVtbz1mdW5jdGlvbihhLGIpe3JldHVybnskJHR5cGVvZjp1LHR5cGU6YSxjb21wYXJlOnZvaWQgMD09PWI/bnVsbDpifX07ZXhwb3J0cy51c2VDYWxsYmFjaz1mdW5jdGlvbihhLGIpe3JldHVybiBTKCkudXNlQ2FsbGJhY2soYSxiKX07ZXhwb3J0cy51c2VDb250ZXh0PWZ1bmN0aW9uKGEsYil7cmV0dXJuIFMoKS51c2VDb250ZXh0KGEsYil9O2V4cG9ydHMudXNlRGVidWdWYWx1ZT1mdW5jdGlvbigpe307ZXhwb3J0cy51c2VFZmZlY3Q9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gUygpLnVzZUVmZmVjdChhLGIpfTtleHBvcnRzLnVzZUltcGVyYXRpdmVIYW5kbGU9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBTKCkudXNlSW1wZXJhdGl2ZUhhbmRsZShhLGIsYyl9O1xuZXhwb3J0cy51c2VMYXlvdXRFZmZlY3Q9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gUygpLnVzZUxheW91dEVmZmVjdChhLGIpfTtleHBvcnRzLnVzZU1lbW89ZnVuY3Rpb24oYSxiKXtyZXR1cm4gUygpLnVzZU1lbW8oYSxiKX07ZXhwb3J0cy51c2VSZWR1Y2VyPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gUygpLnVzZVJlZHVjZXIoYSxiLGMpfTtleHBvcnRzLnVzZVJlZj1mdW5jdGlvbihhKXtyZXR1cm4gUygpLnVzZVJlZihhKX07ZXhwb3J0cy51c2VTdGF0ZT1mdW5jdGlvbihhKXtyZXR1cm4gUygpLnVzZVN0YXRlKGEpfTtleHBvcnRzLnZlcnNpb249XCIxNy4wLjJcIjtcbiIsIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC5wcm9kdWN0aW9uLm1pbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC5kZXZlbG9wbWVudC5qcycpO1xufVxuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBzdHlsZXNJbkRvbSA9IFtdO1xuXG5mdW5jdGlvbiBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKSB7XG4gIHZhciByZXN1bHQgPSAtMTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0eWxlc0luRG9tLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHN0eWxlc0luRG9tW2ldLmlkZW50aWZpZXIgPT09IGlkZW50aWZpZXIpIHtcbiAgICAgIHJlc3VsdCA9IGk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBtb2R1bGVzVG9Eb20obGlzdCwgb3B0aW9ucykge1xuICB2YXIgaWRDb3VudE1hcCA9IHt9O1xuICB2YXIgaWRlbnRpZmllcnMgPSBbXTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaXRlbSA9IGxpc3RbaV07XG4gICAgdmFyIGlkID0gb3B0aW9ucy5iYXNlID8gaXRlbVswXSArIG9wdGlvbnMuYmFzZSA6IGl0ZW1bMF07XG4gICAgdmFyIGNvdW50ID0gaWRDb3VudE1hcFtpZF0gfHwgMDtcbiAgICB2YXIgaWRlbnRpZmllciA9IFwiXCIuY29uY2F0KGlkLCBcIiBcIikuY29uY2F0KGNvdW50KTtcbiAgICBpZENvdW50TWFwW2lkXSA9IGNvdW50ICsgMTtcbiAgICB2YXIgaW5kZXggPSBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKTtcbiAgICB2YXIgb2JqID0ge1xuICAgICAgY3NzOiBpdGVtWzFdLFxuICAgICAgbWVkaWE6IGl0ZW1bMl0sXG4gICAgICBzb3VyY2VNYXA6IGl0ZW1bM11cbiAgICB9O1xuXG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgc3R5bGVzSW5Eb21baW5kZXhdLnJlZmVyZW5jZXMrKztcbiAgICAgIHN0eWxlc0luRG9tW2luZGV4XS51cGRhdGVyKG9iaik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0eWxlc0luRG9tLnB1c2goe1xuICAgICAgICBpZGVudGlmaWVyOiBpZGVudGlmaWVyLFxuICAgICAgICB1cGRhdGVyOiBhZGRTdHlsZShvYmosIG9wdGlvbnMpLFxuICAgICAgICByZWZlcmVuY2VzOiAxXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZGVudGlmaWVycy5wdXNoKGlkZW50aWZpZXIpO1xuICB9XG5cbiAgcmV0dXJuIGlkZW50aWZpZXJzO1xufVxuXG5mdW5jdGlvbiBhZGRTdHlsZShvYmosIG9wdGlvbnMpIHtcbiAgdmFyIGFwaSA9IG9wdGlvbnMuZG9tQVBJKG9wdGlvbnMpO1xuICBhcGkudXBkYXRlKG9iaik7XG4gIHJldHVybiBmdW5jdGlvbiB1cGRhdGVTdHlsZShuZXdPYmopIHtcbiAgICBpZiAobmV3T2JqKSB7XG4gICAgICBpZiAobmV3T2JqLmNzcyA9PT0gb2JqLmNzcyAmJiBuZXdPYmoubWVkaWEgPT09IG9iai5tZWRpYSAmJiBuZXdPYmouc291cmNlTWFwID09PSBvYmouc291cmNlTWFwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgYXBpLnVwZGF0ZShvYmogPSBuZXdPYmopO1xuICAgIH0gZWxzZSB7XG4gICAgICBhcGkucmVtb3ZlKCk7XG4gICAgfVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChsaXN0LCBvcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICBsaXN0ID0gbGlzdCB8fCBbXTtcbiAgdmFyIGxhc3RJZGVudGlmaWVycyA9IG1vZHVsZXNUb0RvbShsaXN0LCBvcHRpb25zKTtcbiAgcmV0dXJuIGZ1bmN0aW9uIHVwZGF0ZShuZXdMaXN0KSB7XG4gICAgbmV3TGlzdCA9IG5ld0xpc3QgfHwgW107XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxhc3RJZGVudGlmaWVycy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGlkZW50aWZpZXIgPSBsYXN0SWRlbnRpZmllcnNbaV07XG4gICAgICB2YXIgaW5kZXggPSBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKTtcbiAgICAgIHN0eWxlc0luRG9tW2luZGV4XS5yZWZlcmVuY2VzLS07XG4gICAgfVxuXG4gICAgdmFyIG5ld0xhc3RJZGVudGlmaWVycyA9IG1vZHVsZXNUb0RvbShuZXdMaXN0LCBvcHRpb25zKTtcblxuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBsYXN0SWRlbnRpZmllcnMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICB2YXIgX2lkZW50aWZpZXIgPSBsYXN0SWRlbnRpZmllcnNbX2ldO1xuXG4gICAgICB2YXIgX2luZGV4ID0gZ2V0SW5kZXhCeUlkZW50aWZpZXIoX2lkZW50aWZpZXIpO1xuXG4gICAgICBpZiAoc3R5bGVzSW5Eb21bX2luZGV4XS5yZWZlcmVuY2VzID09PSAwKSB7XG4gICAgICAgIHN0eWxlc0luRG9tW19pbmRleF0udXBkYXRlcigpO1xuXG4gICAgICAgIHN0eWxlc0luRG9tLnNwbGljZShfaW5kZXgsIDEpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxhc3RJZGVudGlmaWVycyA9IG5ld0xhc3RJZGVudGlmaWVycztcbiAgfTtcbn07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBtZW1vID0ge307XG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cblxuZnVuY3Rpb24gZ2V0VGFyZ2V0KHRhcmdldCkge1xuICBpZiAodHlwZW9mIG1lbW9bdGFyZ2V0XSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIHZhciBzdHlsZVRhcmdldCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGFyZ2V0KTsgLy8gU3BlY2lhbCBjYXNlIHRvIHJldHVybiBoZWFkIG9mIGlmcmFtZSBpbnN0ZWFkIG9mIGlmcmFtZSBpdHNlbGZcblxuICAgIGlmICh3aW5kb3cuSFRNTElGcmFtZUVsZW1lbnQgJiYgc3R5bGVUYXJnZXQgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTElGcmFtZUVsZW1lbnQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIFRoaXMgd2lsbCB0aHJvdyBhbiBleGNlcHRpb24gaWYgYWNjZXNzIHRvIGlmcmFtZSBpcyBibG9ja2VkXG4gICAgICAgIC8vIGR1ZSB0byBjcm9zcy1vcmlnaW4gcmVzdHJpY3Rpb25zXG4gICAgICAgIHN0eWxlVGFyZ2V0ID0gc3R5bGVUYXJnZXQuY29udGVudERvY3VtZW50LmhlYWQ7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gICAgICAgIHN0eWxlVGFyZ2V0ID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBtZW1vW3RhcmdldF0gPSBzdHlsZVRhcmdldDtcbiAgfVxuXG4gIHJldHVybiBtZW1vW3RhcmdldF07XG59XG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cblxuXG5mdW5jdGlvbiBpbnNlcnRCeVNlbGVjdG9yKGluc2VydCwgc3R5bGUpIHtcbiAgdmFyIHRhcmdldCA9IGdldFRhcmdldChpbnNlcnQpO1xuXG4gIGlmICghdGFyZ2V0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQ291bGRuJ3QgZmluZCBhIHN0eWxlIHRhcmdldC4gVGhpcyBwcm9iYWJseSBtZWFucyB0aGF0IHRoZSB2YWx1ZSBmb3IgdGhlICdpbnNlcnQnIHBhcmFtZXRlciBpcyBpbnZhbGlkLlwiKTtcbiAgfVxuXG4gIHRhcmdldC5hcHBlbmRDaGlsZChzdHlsZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaW5zZXJ0QnlTZWxlY3RvcjsiLCJcInVzZSBzdHJpY3RcIjtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBpbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucykge1xuICB2YXIgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIik7XG4gIG9wdGlvbnMuc2V0QXR0cmlidXRlcyhzdHlsZSwgb3B0aW9ucy5hdHRyaWJ1dGVzKTtcbiAgb3B0aW9ucy5pbnNlcnQoc3R5bGUpO1xuICByZXR1cm4gc3R5bGU7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaW5zZXJ0U3R5bGVFbGVtZW50OyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIHNldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcyhzdHlsZSkge1xuICB2YXIgbm9uY2UgPSB0eXBlb2YgX193ZWJwYWNrX25vbmNlX18gIT09IFwidW5kZWZpbmVkXCIgPyBfX3dlYnBhY2tfbm9uY2VfXyA6IG51bGw7XG5cbiAgaWYgKG5vbmNlKSB7XG4gICAgc3R5bGUuc2V0QXR0cmlidXRlKFwibm9uY2VcIiwgbm9uY2UpO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzOyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIGFwcGx5KHN0eWxlLCBvcHRpb25zLCBvYmopIHtcbiAgdmFyIGNzcyA9IG9iai5jc3M7XG4gIHZhciBtZWRpYSA9IG9iai5tZWRpYTtcbiAgdmFyIHNvdXJjZU1hcCA9IG9iai5zb3VyY2VNYXA7XG5cbiAgaWYgKG1lZGlhKSB7XG4gICAgc3R5bGUuc2V0QXR0cmlidXRlKFwibWVkaWFcIiwgbWVkaWEpO1xuICB9IGVsc2Uge1xuICAgIHN0eWxlLnJlbW92ZUF0dHJpYnV0ZShcIm1lZGlhXCIpO1xuICB9XG5cbiAgaWYgKHNvdXJjZU1hcCAmJiB0eXBlb2YgYnRvYSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgIGNzcyArPSBcIlxcbi8qIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsXCIuY29uY2F0KGJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHNvdXJjZU1hcCkpKSksIFwiICovXCIpO1xuICB9IC8vIEZvciBvbGQgSUVcblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgICovXG5cblxuICBvcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtKGNzcywgc3R5bGUpO1xufVxuXG5mdW5jdGlvbiByZW1vdmVTdHlsZUVsZW1lbnQoc3R5bGUpIHtcbiAgLy8gaXN0YW5idWwgaWdub3JlIGlmXG4gIGlmIChzdHlsZS5wYXJlbnROb2RlID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgc3R5bGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzdHlsZSk7XG59XG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cblxuXG5mdW5jdGlvbiBkb21BUEkob3B0aW9ucykge1xuICB2YXIgc3R5bGUgPSBvcHRpb25zLmluc2VydFN0eWxlRWxlbWVudChvcHRpb25zKTtcbiAgcmV0dXJuIHtcbiAgICB1cGRhdGU6IGZ1bmN0aW9uIHVwZGF0ZShvYmopIHtcbiAgICAgIGFwcGx5KHN0eWxlLCBvcHRpb25zLCBvYmopO1xuICAgIH0sXG4gICAgcmVtb3ZlOiBmdW5jdGlvbiByZW1vdmUoKSB7XG4gICAgICByZW1vdmVTdHlsZUVsZW1lbnQoc3R5bGUpO1xuICAgIH1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBkb21BUEk7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gc3R5bGVUYWdUcmFuc2Zvcm0oY3NzLCBzdHlsZSkge1xuICBpZiAoc3R5bGUuc3R5bGVTaGVldCkge1xuICAgIHN0eWxlLnN0eWxlU2hlZXQuY3NzVGV4dCA9IGNzcztcbiAgfSBlbHNlIHtcbiAgICB3aGlsZSAoc3R5bGUuZmlyc3RDaGlsZCkge1xuICAgICAgc3R5bGUucmVtb3ZlQ2hpbGQoc3R5bGUuZmlyc3RDaGlsZCk7XG4gICAgfVxuXG4gICAgc3R5bGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKSk7XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzdHlsZVRhZ1RyYW5zZm9ybTsiLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL0Nvbm5lY3RCdXR0b24uc2Nzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xuXG4gICAgICBvcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xuICAgIFxub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL0Nvbm5lY3RCdXR0b24uc2Nzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENvcHlyaWdodCAoYykgSW50ZWwgQ29ycG9yYXRpb24gMjAxOVxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgJy4vQ29ubmVjdEJ1dHRvbi5zY3NzJ1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3RQcm9wcyB7XG4gIGt2bXN0YXRlOiBudW1iZXJcbiAgaGFuZGxlQ29ubmVjdENsaWNrOiAoZTogYW55KSA9PiB2b2lkXG59XG5cbmV4cG9ydCBjbGFzcyBDb25uZWN0QnV0dG9uIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PENvbm5lY3RQcm9wcywge30+IHtcbiAgcmVuZGVyICgpOiBSZWFjdC5SZWFjdE5vZGUge1xuICAgIHJldHVybiAoXG4gICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImJ1dHRvblwiIG9uQ2xpY2s9e3RoaXMucHJvcHMuaGFuZGxlQ29ubmVjdENsaWNrfT5cbiAgICAgICAge3RoaXMucHJvcHMua3Ztc3RhdGUgPT09IDEgPyAnQ29ubmVjdGluZyBLVk0nIDogKHRoaXMucHJvcHMua3Ztc3RhdGUgPT09IDIgPyAnRGlzY29ubmVjdCBLVk0nIDogJ0Nvbm5lY3QgS1ZNJyl9XG4gICAgICA8L2J1dHRvbj5cbiAgICApXG4gIH1cbn1cbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vRW5jb2RpbmdPcHRpb25zLnNjc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcblxuICAgICAgb3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbiAgICBcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi9FbmNvZGluZ09wdGlvbnMuc2Nzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENvcHlyaWdodCAoYykgSW50ZWwgQ29ycG9yYXRpb24gMjAxOVxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgJy4vRW5jb2RpbmdPcHRpb25zLnNjc3MnXG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVuY29kaW5nT3B0aW9ucyB7XG4gIGNoYW5nZUVuY29kaW5nOiAoZW5jb2Rpbmc6IG51bWJlcikgPT4gdm9pZFxuICBnZXRDb25uZWN0U3RhdGU6ICgpID0+IG51bWJlclxufVxuXG5leHBvcnQgY2xhc3MgRW5jb2RpbmdPcHRpb25zIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PElFbmNvZGluZ09wdGlvbnMsIHsgdmFsdWU6IG51bWJlciB9PiB7XG4gIGNvbnN0cnVjdG9yIChwcm9wczogSUVuY29kaW5nT3B0aW9ucykge1xuICAgIHN1cGVyKHByb3BzKVxuICAgIHRoaXMuc3RhdGUgPSB7IHZhbHVlOiAxIH1cbiAgICB0aGlzLm9uRW5jb2RpbmdDaGFuZ2UgPSB0aGlzLm9uRW5jb2RpbmdDaGFuZ2UuYmluZCh0aGlzKVxuICB9XG5cbiAgb25FbmNvZGluZ0NoYW5nZSAoZSk6IHZvaWQge1xuICAgIC8vIGUucGVyc2lzdCgpO1xuICAgIHRoaXMuc2V0U3RhdGUoeyB2YWx1ZTogZS50YXJnZXQudmFsdWUgfSlcbiAgICB0aGlzLnByb3BzLmNoYW5nZUVuY29kaW5nKGUudGFyZ2V0LnZhbHVlKVxuICB9XG5cbiAgcmVuZGVyICgpOiBSZWFjdC5SZWFjdE5vZGUge1xuICAgIHJldHVybiAoXG4gICAgICA8c3BhbiBjbGFzc05hbWU9XCJlbmNvZGluZ1wiPlxuICAgICAgICA8bGFiZWwgPkVuY29kaW5nOjwvbGFiZWw+XG4gICAgICAgIDxzZWxlY3QgdmFsdWU9e3RoaXMuc3RhdGUudmFsdWV9IGNsYXNzTmFtZT0ge3RoaXMucHJvcHMuZ2V0Q29ubmVjdFN0YXRlKCkgPT09IDIgPyAncmVsZGlzYWJsZWQnIDogJyd9IG9uQ2hhbmdlPXt0aGlzLm9uRW5jb2RpbmdDaGFuZ2V9IGRpc2FibGVkPXt0aGlzLnByb3BzLmdldENvbm5lY3RTdGF0ZSgpID09PSAyfT5cbiAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMVwiPlJMRSA4PC9vcHRpb24+XG4gICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjJcIj5STEUgMTY8L29wdGlvbj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgICA8L3NwYW4+XG4gICAgKVxuICB9XG59XG4iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBDb3B5cmlnaHQgKGMpIEludGVsIENvcnBvcmF0aW9uIDIwMTlcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgRW5jb2RpbmdPcHRpb25zIH0gZnJvbSAnLi9FbmNvZGluZ09wdGlvbnMnXG5cbmV4cG9ydCBpbnRlcmZhY2UgSURlc2t0b3BTZXR0aW5ncyB7XG4gIGNoYW5nZURlc2t0b3BTZXR0aW5nczogKHNldHRpbmdzOiBhbnkpID0+IHZvaWRcbiAgZ2V0Q29ubmVjdFN0YXRlOiAoKSA9PiBudW1iZXJcbn1cblxuZXhwb3J0IGNsYXNzIERlc2t0b3BTZXR0aW5ncyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJRGVza3RvcFNldHRpbmdzPiB7XG4gIGRlc2t0b3BzZXR0aW5ncyA9IHtcbiAgICBlbmNvZGluZzogMVxuICB9XG5cbiAgY29uc3RydWN0b3IgKHByb3BzOiBJRGVza3RvcFNldHRpbmdzKSB7XG4gICAgc3VwZXIocHJvcHMpXG4gICAgdGhpcy5jaGFuZ2VFbmNvZGluZyA9IHRoaXMuY2hhbmdlRW5jb2RpbmcuYmluZCh0aGlzKVxuICB9XG5cbiAgY2hhbmdlRW5jb2RpbmcgKGVuY29kaW5nOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmRlc2t0b3BzZXR0aW5ncy5lbmNvZGluZyA9IGVuY29kaW5nXG4gICAgdGhpcy5wcm9wcy5jaGFuZ2VEZXNrdG9wU2V0dGluZ3ModGhpcy5kZXNrdG9wc2V0dGluZ3MpXG4gIH1cblxuICByZW5kZXIgKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxFbmNvZGluZ09wdGlvbnMgY2hhbmdlRW5jb2Rpbmc9e3RoaXMuY2hhbmdlRW5jb2Rpbmd9IGdldENvbm5lY3RTdGF0ZT17dGhpcy5wcm9wcy5nZXRDb25uZWN0U3RhdGV9Lz5cbiAgICApXG4gIH1cbn1cbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vSGVhZGVyLnNjc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcblxuICAgICAgb3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbiAgICBcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi9IZWFkZXIuc2Nzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENvcHlyaWdodCAoYykgSW50ZWwgQ29ycG9yYXRpb24gMjAxOVxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBDb25uZWN0QnV0dG9uIH0gZnJvbSAnLi9Db25uZWN0QnV0dG9uJ1xuaW1wb3J0IHsgRGVza3RvcFNldHRpbmdzIH0gZnJvbSAnLi9EZXNrdG9wU2V0dGluZ3MnXG5pbXBvcnQgJy4vSGVhZGVyLnNjc3MnXG5cbmV4cG9ydCBpbnRlcmZhY2UgSUhlYWRlclByb3BzIHtcbiAga3Ztc3RhdGU6IG51bWJlclxuICBkZXZpY2VJZDogc3RyaW5nIHwgbnVsbFxuICBzZXJ2ZXI6IHN0cmluZyB8IG51bGxcbiAgaGFuZGxlQ29ubmVjdENsaWNrOiAoZTogYW55KSA9PiB2b2lkXG4gIGNoYW5nZURlc2t0b3BTZXR0aW5nczogKHNldHRpbmdzOiBhbnkpID0+IHZvaWRcbiAgZ2V0Q29ubmVjdFN0YXRlOiAoKSA9PiBudW1iZXJcbn1cblxuZXhwb3J0IGNsYXNzIEhlYWRlciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJSGVhZGVyUHJvcHM+IHtcbiAgcmVuZGVyICgpOiBKU1guRWxlbWVudCB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoZWFkZXJcIj5cbiAgICAgICAgICA8Q29ubmVjdEJ1dHRvblxuICAgICAgICAgICAgaGFuZGxlQ29ubmVjdENsaWNrPXt0aGlzLnByb3BzLmhhbmRsZUNvbm5lY3RDbGlja31cbiAgICAgICAgICAgIGt2bXN0YXRlPXt0aGlzLnByb3BzLmt2bXN0YXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPERlc2t0b3BTZXR0aW5nc1xuICAgICAgICAgICAgY2hhbmdlRGVza3RvcFNldHRpbmdzPXt0aGlzLnByb3BzLmNoYW5nZURlc2t0b3BTZXR0aW5nc31cbiAgICAgICAgICAgIGdldENvbm5lY3RTdGF0ZT17dGhpcy5wcm9wcy5nZXRDb25uZWN0U3RhdGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgIClcbiAgfVxufVxuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogQ29weXJpZ2h0IChjKSBJbnRlbCBDb3Jwb3JhdGlvbiAyMDE5XG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qKiB1dGlsaXR5IGZ1bmN0aW9uIHRvIGpvaW4gdGhlIGNzcyBjbGFzcyBuYW1lcyAqL1xuZXhwb3J0IGNvbnN0IGpvaW5DbGFzc2VzID0gKC4uLmNsYXNzTmFtZXMpOiBhbnkgPT5cbiAgY2xhc3NOYW1lc1xuICAgIC5maWx0ZXIoKG5hbWUpID0+ICEhaXNGYWxzeShuYW1lKSlcbiAgICAuam9pbignICcpXG4gICAgLnRyaW0oKVxuXG5leHBvcnQgY29uc3QgcHJlcGFyZUhlYWRlcnMgPSAoKTogYW55ID0+IHtcbiAgY29uc3QgaGVhZGVycyA9IHtcbiAgICBBY2NlcHQ6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXG4gIH1cbiAgcmV0dXJuIGhlYWRlcnNcbn1cblxuZXhwb3J0IGNvbnN0IGlzRmFsc3kgPSAodmFsdWU6IGFueSk6IGJvb2xlYW4gPT4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gJycgJiYgdmFsdWUgIT09IGZhbHNlICYmIHZhbHVlICE9PSAwXG4iLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL1B1cmVDYW52YXMuc2Nzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xuXG4gICAgICBvcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xuICAgIFxub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL1B1cmVDYW52YXMuc2Nzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENvcHlyaWdodCAoYykgSW50ZWwgQ29ycG9yYXRpb24gMjAxOVxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiAqIEF1dGhvciA6IFJhbXUgQmFjaGFsYVxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGlzRmFsc3kgfSBmcm9tICcuLi9zaGFyZWQvVXRpbGl0aWVzJ1xuaW1wb3J0ICcuL1B1cmVDYW52YXMuc2NzcydcblxuZXhwb3J0IGludGVyZmFjZSBQdXJlQ2FudmFzUHJvcHMge1xuICBjb250ZXh0UmVmOiAoY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQpID0+IHZvaWRcbiAgbW91c2VEb3duOiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHZvaWRcbiAgbW91c2VVcDogKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB2b2lkXG4gIG1vdXNlTW92ZTogKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB2b2lkXG4gIGNhbnZhc0hlaWdodDogc3RyaW5nXG4gIGNhbnZhc1dpZHRoOiBzdHJpbmdcbn1cblxuZXhwb3J0IGNsYXNzIFB1cmVDYW52YXMgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8UHVyZUNhbnZhc1Byb3BzLCB7fT4ge1xuICBzaG91bGRDb21wb25lbnRVcGRhdGUgKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmVuZGVyICgpOiBSZWFjdC5SZWFjdE5vZGUge1xuICAgIGNvbnN0IGNhbnZhc0F0dHJpYnV0ZXM6IFJlYWN0LkNhbnZhc0hUTUxBdHRyaWJ1dGVzPEhUTUxDYW52YXNFbGVtZW50PiA9IHtcbiAgICAgIHdpZHRoOiAnMTM2NicsXG4gICAgICBoZWlnaHQ6ICc3NjgnLFxuICAgICAgb25Db250ZXh0TWVudTogKGUpID0+IHsgZS5wcmV2ZW50RGVmYXVsdCgpOyByZXR1cm4gZmFsc2UgfSxcbiAgICAgIG9uTW91c2VEb3duOiB0aGlzLnByb3BzLm1vdXNlRG93bixcbiAgICAgIG9uTW91c2VVcDogdGhpcy5wcm9wcy5tb3VzZVVwLFxuICAgICAgb25Nb3VzZU1vdmU6IHRoaXMucHJvcHMubW91c2VNb3ZlXG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICA8Y2FudmFzIHsuLi5jYW52YXNBdHRyaWJ1dGVzfSBjbGFzc05hbWU9XCJjYW52YXNcIiByZWY9eyhjOiBhbnkpID0+IGlzRmFsc3koYykgPyB0aGlzLnByb3BzLmNvbnRleHRSZWYoYy5nZXRDb250ZXh0KCcyZCcpKSA6IG51bGx9Lz5cbiAgICApXG4gIH1cbn1cbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vVUkuc2Nzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xuXG4gICAgICBvcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xuICAgIFxub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL1VJLnNjc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBDb3B5cmlnaHQgKGMpIEludGVsIENvcnBvcmF0aW9uIDIwMTlcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4gKiBBdXRob3IgOiBSYW11IEJhY2hhbGFcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5pbXBvcnQgeyBJRGF0YVByb2Nlc3NvciwgSUt2bURhdGFDb21tdW5pY2F0b3IsIElMb2dnZXIsIExvZ0xldmVsLCBEYXRhUHJvY2Vzc29yLCBEZXNrdG9wLCBBTVRLdm1EYXRhUmVkaXJlY3RvciwgQU1URGVza3RvcCwgUHJvdG9jb2wsIENvbnNvbGVMb2dnZXIgfSBmcm9tICdAb3Blbi1hbXQtY2xvdWQtdG9vbGtpdC91aS10b29sa2l0L2NvcmUnXG5pbXBvcnQgeyBNb3VzZUhlbHBlciwgS2V5Qm9hcmRIZWxwZXIgfSBmcm9tICdAb3Blbi1hbXQtY2xvdWQtdG9vbGtpdC91aS10b29sa2l0L2NvcmUnXG5pbXBvcnQgeyBIZWFkZXIgfSBmcm9tICcuL0hlYWRlcidcbmltcG9ydCB7IFB1cmVDYW52YXMgfSBmcm9tICcuL1B1cmVDYW52YXMnXG5pbXBvcnQgeyBpc0ZhbHN5IH0gZnJvbSAnLi4vc2hhcmVkL1V0aWxpdGllcydcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcblxuaW1wb3J0ICcuL1VJLnNjc3MnXG5cbmV4cG9ydCBpbnRlcmZhY2UgS1ZNUHJvcHMge1xuICBkZXZpY2VJZDogc3RyaW5nIHwgbnVsbFxuICBtcHNTZXJ2ZXI6IHN0cmluZyB8IG51bGxcbiAgbW91c2VEZWJvdW5jZVRpbWU6IG51bWJlclxuICBjYW52YXNIZWlnaHQ6IHN0cmluZ1xuICBjYW52YXNXaWR0aDogc3RyaW5nXG4gIGF1dG9Db25uZWN0PzogYm9vbGVhblxuICBhdXRoVG9rZW46IHN0cmluZ1xufVxuXG5leHBvcnQgY2xhc3MgS1ZNIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PEtWTVByb3BzLCB7IGt2bXN0YXRlOiBudW1iZXIsIGVuY29kaW5nT3B0aW9uOiBudW1iZXIgfT4ge1xuICBtb2R1bGU6IERlc2t0b3AgfCBhbnlcbiAgZGF0YVByb2Nlc3NvcjogSURhdGFQcm9jZXNzb3IgfCBhbnlcbiAgcmVkaXJlY3RvcjogSUt2bURhdGFDb21tdW5pY2F0b3IgfCBhbnlcbiAgbW91c2VIZWxwZXI6IE1vdXNlSGVscGVyIHwgYW55XG4gIGxvZ2dlcjogSUxvZ2dlclxuICBrZXlib2FyZDogS2V5Qm9hcmRIZWxwZXIgfCBhbnlcbiAgZGVza3RvcFNldHRpbmdzQ2hhbmdlID0gZmFsc2VcbiAgY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRcbiAgZnI6IEZpbGVSZWFkZXJcbiAgY29uc3RydWN0b3IgKHByb3BzOiBLVk1Qcm9wcykge1xuICAgIHN1cGVyKHByb3BzKVxuICAgIHRoaXMuc3RhdGUgPSB7IGt2bXN0YXRlOiAwLCBlbmNvZGluZ09wdGlvbjogMSB9XG4gICAgdGhpcy5sb2dnZXIgPSBuZXcgQ29uc29sZUxvZ2dlcihMb2dMZXZlbC5FUlJPUilcbiAgICB0aGlzLnNhdmVDb250ZXh0ID0gdGhpcy5zYXZlQ29udGV4dC5iaW5kKHRoaXMpXG4gICAgdGhpcy5zdGFydEtWTSA9IHRoaXMuc3RhcnRLVk0uYmluZCh0aGlzKVxuICAgIHRoaXMuc3RvcEtWTSA9IHRoaXMuc3RvcEtWTS5iaW5kKHRoaXMpXG4gICAgdGhpcy5oYW5kbGVDb25uZWN0Q2xpY2sgPSB0aGlzLmhhbmRsZUNvbm5lY3RDbGljay5iaW5kKHRoaXMpXG4gICAgdGhpcy5nZXRSZW5kZXJTdGF0dXMgPSB0aGlzLmdldFJlbmRlclN0YXR1cy5iaW5kKHRoaXMpXG4gICAgdGhpcy5PbkNvbm5lY3Rpb25TdGF0ZUNoYW5nZSA9IHRoaXMuT25Db25uZWN0aW9uU3RhdGVDaGFuZ2UuYmluZCh0aGlzKVxuICAgIHRoaXMuY2hhbmdlRGVza3RvcFNldHRpbmdzID0gdGhpcy5jaGFuZ2VEZXNrdG9wU2V0dGluZ3MuYmluZCh0aGlzKVxuICB9XG5cbiAgc2F2ZUNvbnRleHQgKGN0eDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKTogdm9pZCB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ3NhdmUgY29udGV4dCBjYWxsZWQnKVxuICAgIHRoaXMuY3R4ID0gY3R4XG4gICAgdGhpcy5pbml0KClcbiAgfVxuXG4gIGluaXQgKCk6IHZvaWQge1xuICAgIGNvbnN0IGRldmljZVV1aWQ6IHN0cmluZyA9IHRoaXMucHJvcHMuZGV2aWNlSWQgIT0gbnVsbCA/IHRoaXMucHJvcHMuZGV2aWNlSWQgOiAnJ1xuICAgIGNvbnN0IHNlcnZlcjogc3RyaW5nID0gdGhpcy5wcm9wcy5tcHNTZXJ2ZXIgIT0gbnVsbCA/IHRoaXMucHJvcHMubXBzU2VydmVyLnJlcGxhY2UoJ2h0dHAnLCAnd3MnKSA6ICcnXG4gICAgdGhpcy5tb2R1bGUgPSBuZXcgQU1URGVza3RvcCh0aGlzLmxvZ2dlciwgdGhpcy5jdHgpXG4gICAgdGhpcy5yZWRpcmVjdG9yID0gbmV3IEFNVEt2bURhdGFSZWRpcmVjdG9yKHRoaXMubG9nZ2VyLCBQcm90b2NvbC5LVk0sIG5ldyBGaWxlUmVhZGVyKCksIGRldmljZVV1aWQsIDE2OTk0LCAnJywgJycsIDAsIDAsIHRoaXMucHJvcHMuYXV0aFRva2VuLCBzZXJ2ZXIpXG4gICAgdGhpcy5kYXRhUHJvY2Vzc29yID0gbmV3IERhdGFQcm9jZXNzb3IodGhpcy5sb2dnZXIsIHRoaXMucmVkaXJlY3RvciwgdGhpcy5tb2R1bGUpXG4gICAgdGhpcy5tb3VzZUhlbHBlciA9IG5ldyBNb3VzZUhlbHBlcih0aGlzLm1vZHVsZSwgdGhpcy5yZWRpcmVjdG9yLCB0aGlzLnByb3BzLm1vdXNlRGVib3VuY2VUaW1lIDwgMjAwID8gMjAwIDogdGhpcy5wcm9wcy5tb3VzZURlYm91bmNlVGltZSkgLy8gYW55dGhpbmcgbGVzcyB0aGFuIDIwMCBtcyBjYXVzZXMgdGltZW91dFxuICAgIHRoaXMua2V5Ym9hcmQgPSBuZXcgS2V5Qm9hcmRIZWxwZXIodGhpcy5tb2R1bGUsIHRoaXMucmVkaXJlY3RvcilcblxuICAgIHRoaXMucmVkaXJlY3Rvci5vblByb2Nlc3NEYXRhID0gdGhpcy5tb2R1bGUucHJvY2Vzc0RhdGEuYmluZCh0aGlzLm1vZHVsZSlcbiAgICB0aGlzLnJlZGlyZWN0b3Iub25TdGFydCA9IHRoaXMubW9kdWxlLnN0YXJ0LmJpbmQodGhpcy5tb2R1bGUpXG4gICAgdGhpcy5yZWRpcmVjdG9yLm9uTmV3U3RhdGUgPSB0aGlzLm1vZHVsZS5vblN0YXRlQ2hhbmdlLmJpbmQodGhpcy5tb2R1bGUpXG4gICAgdGhpcy5yZWRpcmVjdG9yLm9uU2VuZEt2bURhdGEgPSB0aGlzLm1vZHVsZS5vblNlbmRLdm1EYXRhLmJpbmQodGhpcy5tb2R1bGUpXG4gICAgdGhpcy5yZWRpcmVjdG9yLm9uU3RhdGVDaGFuZ2VkID0gdGhpcy5PbkNvbm5lY3Rpb25TdGF0ZUNoYW5nZS5iaW5kKHRoaXMpXG4gICAgdGhpcy5yZWRpcmVjdG9yLm9uRXJyb3IgPSB0aGlzLm9uUmVkaXJlY3RvckVycm9yLmJpbmQodGhpcylcbiAgICB0aGlzLm1vZHVsZS5vblNlbmQgPSB0aGlzLnJlZGlyZWN0b3Iuc2VuZC5iaW5kKHRoaXMucmVkaXJlY3RvcilcbiAgICB0aGlzLm1vZHVsZS5vblByb2Nlc3NEYXRhID0gdGhpcy5kYXRhUHJvY2Vzc29yLnByb2Nlc3NEYXRhLmJpbmQodGhpcy5kYXRhUHJvY2Vzc29yKVxuICAgIHRoaXMubW9kdWxlLmJwcCA9IHRoaXMuc3RhdGUuZW5jb2RpbmdPcHRpb25cbiAgfVxuXG4gIGNsZWFuVXAgKCk6IHZvaWQge1xuICAgIHRoaXMubW9kdWxlID0gbnVsbFxuICAgIHRoaXMucmVkaXJlY3RvciA9IG51bGxcbiAgICB0aGlzLmRhdGFQcm9jZXNzb3IgPSBudWxsXG4gICAgdGhpcy5tb3VzZUhlbHBlciA9IG51bGxcbiAgICB0aGlzLmtleWJvYXJkID0gbnVsbFxuICAgIHRoaXMuY3R4LmNsZWFyUmVjdCgwLCAwLCB0aGlzLmN0eC5jYW52YXMuaGVpZ2h0LCB0aGlzLmN0eC5jYW52YXMud2lkdGgpXG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCAoKTogdm9pZCB7XG4gICAgdGhpcy5zdG9wS1ZNKClcbiAgfVxuXG4gIG9uUmVkaXJlY3RvckVycm9yICgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc2V0KClcbiAgfVxuXG4gIHJlc2V0ICgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFuVXAoKVxuICAgIHRoaXMuaW5pdCgpXG4gIH1cblxuICBPbkNvbm5lY3Rpb25TdGF0ZUNoYW5nZSAocmVkaXJlY3RvcjogYW55LCBzdGF0ZTogbnVtYmVyKTogYW55IHtcbiAgICB0aGlzLnNldFN0YXRlKHsga3Ztc3RhdGU6IHN0YXRlIH0pXG4gICAgaWYgKHRoaXMuZGVza3RvcFNldHRpbmdzQ2hhbmdlICYmIHN0YXRlID09PSAwKSB7XG4gICAgICB0aGlzLmRlc2t0b3BTZXR0aW5nc0NoYW5nZSA9IGZhbHNlXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc3RhcnRLVk0oKSwgMjAwMCkgLy8gSW50cm9kdWNlZCBkZWxheSB0byBzdGFydCBLVk1cbiAgICB9XG4gIH1cblxuICBjaGFuZ2VEZXNrdG9wU2V0dGluZ3MgKHNldHRpbmdzOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZS5rdm1zdGF0ZSA9PT0gMikge1xuICAgICAgdGhpcy5kZXNrdG9wU2V0dGluZ3NDaGFuZ2UgPSB0cnVlXG4gICAgICB0aGlzLm1vZHVsZS5icHAgPSBzZXR0aW5ncy5lbmNvZGluZ1xuICAgICAgdGhpcy5zdG9wS1ZNKClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGVuY29kaW5nT3B0aW9uOiBwYXJzZUludChzZXR0aW5ncy5lbmNvZGluZylcbiAgICAgIH0pXG4gICAgICB0aGlzLm1vZHVsZS5icHAgPSBwYXJzZUludChzZXR0aW5ncy5lbmNvZGluZylcbiAgICB9XG4gIH1cblxuICBzdGFydEtWTSAoKTogdm9pZCB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnJlZGlyZWN0b3IgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAvLyBjb25zb2xlLmxvZyhcInN0YXJ0S1ZNXCIpXG4gICAgICB0aGlzLnJlZGlyZWN0b3Iuc3RhcnQoV2ViU29ja2V0KVxuICAgIH1cbiAgICBpZiAodHlwZW9mIHRoaXMua2V5Ym9hcmQgIT09ICd1bmRlZmluZWQnKSB0aGlzLmtleWJvYXJkLkdyYWJLZXlJbnB1dCgpXG4gIH1cblxuICBzdG9wS1ZNICgpOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIHRoaXMucmVkaXJlY3RvciAhPT0gJ3VuZGVmaW5lZCcpIHRoaXMucmVkaXJlY3Rvci5zdG9wKClcbiAgICBpZiAodHlwZW9mIHRoaXMua2V5Ym9hcmQgIT09ICd1bmRlZmluZWQnKSB0aGlzLmtleWJvYXJkLlVuR3JhYktleUlucHV0KClcbiAgICB0aGlzLnJlc2V0KClcbiAgfVxuXG4gIGdldFJlbmRlclN0YXR1cyAoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5tb2R1bGUuc3RhdGUgLy8gdXNlZCB0byBjaGVjayBpZiBjYW52YXMgaXMgaW4gdGhlIG1pZGRsZSBvZiByZW5kZXJpbmcgYSBjb21wbGV0ZSBmcmFtZS5cbiAgfVxuXG4gIGhhbmRsZUNvbm5lY3RDbGljayAoZSk6IHZvaWQge1xuICAgIGUucGVyc2lzdCgpXG4gICAgaWYgKHRoaXMuc3RhdGUua3Ztc3RhdGUgPT09IDApIHtcbiAgICAgIHRoaXMuc3RhcnRLVk0oKVxuICAgIH0gZWxzZSBpZiAodGhpcy5zdGF0ZS5rdm1zdGF0ZSA9PT0gMSkge1xuICAgICAgLy8gVGFrZSBBY3Rpb25cbiAgICB9IGVsc2UgaWYgKHRoaXMuc3RhdGUua3Ztc3RhdGUgPT09IDIpIHtcbiAgICAgIHRoaXMuc3RvcEtWTSgpXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRha2UgQWN0aW9uXG4gICAgfVxuICB9XG5cbiAgY29tcG9uZW50RGlkVXBkYXRlIChwcmV2UHJvcHMpOiB2b2lkIHtcbiAgICBpZiAocHJldlByb3BzLmRldmljZUlkICE9PSB0aGlzLnByb3BzLmRldmljZUlkKSB7XG4gICAgICB0aGlzLnN0b3BLVk0oKVxuICAgIH1cbiAgfVxuXG4gIHJlbmRlciAoKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgICByZXR1cm4gKFxuICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FudmFzLWNvbnRhaW5lclwiPlxuICAgICAgICAgeyFpc0ZhbHN5KHRoaXMucHJvcHMuYXV0b0Nvbm5lY3QpXG4gICAgICAgICAgID8gPEhlYWRlciBrZXk9XCJrdm1faGVhZGVyXCIgaGFuZGxlQ29ubmVjdENsaWNrPXt0aGlzLmhhbmRsZUNvbm5lY3RDbGlja30gZ2V0Q29ubmVjdFN0YXRlPXsoKSA9PiB0aGlzLnN0YXRlLmt2bXN0YXRlfSBrdm1zdGF0ZT17dGhpcy5zdGF0ZS5rdm1zdGF0ZX0gY2hhbmdlRGVza3RvcFNldHRpbmdzPXt0aGlzLmNoYW5nZURlc2t0b3BTZXR0aW5nc30gZGV2aWNlSWQ9e3RoaXMucHJvcHMuZGV2aWNlSWR9IHNlcnZlcj17dGhpcy5wcm9wcy5tcHNTZXJ2ZXJ9XG4gICAgICAgICAvPlxuICAgICAgICAgICA6ICcnfVxuICAgICAgICAgPFB1cmVDYW52YXMga2V5PVwia3ZtX2NvbXBcIiBjb250ZXh0UmVmPXtjdHggPT4gdGhpcy5zYXZlQ29udGV4dChjdHgpfSBjYW52YXNIZWlnaHQ9e3RoaXMucHJvcHMuY2FudmFzSGVpZ2h0fSBjYW52YXNXaWR0aD17dGhpcy5wcm9wcy5jYW52YXNXaWR0aH1cbiAgICAgICAgICAgbW91c2VNb3ZlPXtldmVudCA9PiB7IGlmICh0eXBlb2YgdGhpcy5tb3VzZUhlbHBlciAhPT0gJ3VuZGVmaW5lZCcpIHRoaXMubW91c2VIZWxwZXIubW91c2Vtb3ZlKGV2ZW50KSB9fVxuICAgICAgICAgICBtb3VzZURvd249e2V2ZW50ID0+IHsgaWYgKHR5cGVvZiB0aGlzLm1vdXNlSGVscGVyICE9PSAndW5kZWZpbmVkJykgdGhpcy5tb3VzZUhlbHBlci5tb3VzZWRvd24oZXZlbnQpIH19XG4gICAgICAgICAgIG1vdXNlVXA9e2V2ZW50ID0+IHsgaWYgKHR5cGVvZiB0aGlzLm1vdXNlSGVscGVyICE9PSAndW5kZWZpbmVkJykgdGhpcy5tb3VzZUhlbHBlci5tb3VzZXVwKGV2ZW50KSB9fVxuICAgICAgICAgLz5cbiAgICAgICA8L2Rpdj5cbiAgICApXG4gIH1cbn1cbiIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gIFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjtcblxuICBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHtcbiAgICBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgICAgIHJldHVybiB0eXBlb2Ygb2JqO1xuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gICAgICByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIF90eXBlb2Yob2JqKTtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7XG4gIGlmIChrZXkgaW4gb2JqKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgd3JpdGFibGU6IHRydWVcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBvYmpba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn0iLCJpbXBvcnQgZGVmaW5lUHJvcGVydHkgZnJvbSBcIi4vZGVmaW5lUHJvcGVydHkuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9vYmplY3RTcHJlYWQodGFyZ2V0KSB7XG4gIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXSAhPSBudWxsID8gT2JqZWN0KGFyZ3VtZW50c1tpXSkgOiB7fTtcbiAgICB2YXIgb3duS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG5cbiAgICBpZiAodHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIG93bktleXMgPSBvd25LZXlzLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHNvdXJjZSkuZmlsdGVyKGZ1bmN0aW9uIChzeW0pIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc291cmNlLCBzeW0pLmVudW1lcmFibGU7XG4gICAgICB9KSk7XG4gICAgfVxuXG4gICAgb3duS2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIGRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBzb3VyY2Vba2V5XSk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHtcbiAgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpO1xuICB9XG59IiwiZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTtcbiAgICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7XG4gICAgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlO1xuICAgIGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHtcbiAgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7XG4gIGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTtcbiAgcmV0dXJuIENvbnN0cnVjdG9yO1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikge1xuICBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7XG4gICAgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO1xuICB9XG5cbiAgcmV0dXJuIHNlbGY7XG59IiwiaW1wb3J0IF90eXBlb2YgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvdHlwZW9mXCI7XG5pbXBvcnQgYXNzZXJ0VGhpc0luaXRpYWxpemVkIGZyb20gXCIuL2Fzc2VydFRoaXNJbml0aWFsaXplZC5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkge1xuICBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkge1xuICAgIHJldHVybiBjYWxsO1xuICB9IGVsc2UgaWYgKGNhbGwgIT09IHZvaWQgMCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZFwiKTtcbiAgfVxuXG4gIHJldHVybiBhc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZik7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHtcbiAgX2dldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LmdldFByb3RvdHlwZU9mIDogZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHtcbiAgICByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pO1xuICB9O1xuICByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pO1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7XG4gIF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkge1xuICAgIG8uX19wcm90b19fID0gcDtcbiAgICByZXR1cm4gbztcbiAgfTtcblxuICByZXR1cm4gX3NldFByb3RvdHlwZU9mKG8sIHApO1xufSIsImltcG9ydCBzZXRQcm90b3R5cGVPZiBmcm9tIFwiLi9zZXRQcm90b3R5cGVPZi5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7XG4gIGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7XG4gIH1cblxuICBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHtcbiAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgdmFsdWU6IHN1YkNsYXNzLFxuICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9XG4gIH0pO1xuICBpZiAoc3VwZXJDbGFzcykgc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpO1xufSIsImltcG9ydCBfdHlwZW9mIGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3R5cGVvZic7XG5pbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQnO1xuaW1wb3J0IF9jbGFzc0NhbGxDaGVjayBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jbGFzc0NhbGxDaGVjayc7XG5pbXBvcnQgX2NyZWF0ZUNsYXNzIGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NyZWF0ZUNsYXNzJztcbmltcG9ydCBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuJztcbmltcG9ydCBfZ2V0UHJvdG90eXBlT2YgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZ2V0UHJvdG90eXBlT2YnO1xuaW1wb3J0IF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXNzZXJ0VGhpc0luaXRpYWxpemVkJztcbmltcG9ydCBfaW5oZXJpdHMgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaW5oZXJpdHMnO1xuXG52YXIgY29uc29sZUxvZ2dlciA9IHtcbiAgdHlwZTogJ2xvZ2dlcicsXG4gIGxvZzogZnVuY3Rpb24gbG9nKGFyZ3MpIHtcbiAgICB0aGlzLm91dHB1dCgnbG9nJywgYXJncyk7XG4gIH0sXG4gIHdhcm46IGZ1bmN0aW9uIHdhcm4oYXJncykge1xuICAgIHRoaXMub3V0cHV0KCd3YXJuJywgYXJncyk7XG4gIH0sXG4gIGVycm9yOiBmdW5jdGlvbiBlcnJvcihhcmdzKSB7XG4gICAgdGhpcy5vdXRwdXQoJ2Vycm9yJywgYXJncyk7XG4gIH0sXG4gIG91dHB1dDogZnVuY3Rpb24gb3V0cHV0KHR5cGUsIGFyZ3MpIHtcbiAgICBpZiAoY29uc29sZSAmJiBjb25zb2xlW3R5cGVdKSBjb25zb2xlW3R5cGVdLmFwcGx5KGNvbnNvbGUsIGFyZ3MpO1xuICB9XG59O1xuXG52YXIgTG9nZ2VyID0gZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBMb2dnZXIoY29uY3JldGVMb2dnZXIpIHtcbiAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTG9nZ2VyKTtcblxuICAgIHRoaXMuaW5pdChjb25jcmV0ZUxvZ2dlciwgb3B0aW9ucyk7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoTG9nZ2VyLCBbe1xuICAgIGtleTogXCJpbml0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGluaXQoY29uY3JldGVMb2dnZXIpIHtcbiAgICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcbiAgICAgIHRoaXMucHJlZml4ID0gb3B0aW9ucy5wcmVmaXggfHwgJ2kxOG5leHQ6JztcbiAgICAgIHRoaXMubG9nZ2VyID0gY29uY3JldGVMb2dnZXIgfHwgY29uc29sZUxvZ2dlcjtcbiAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICB0aGlzLmRlYnVnID0gb3B0aW9ucy5kZWJ1ZztcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwic2V0RGVidWdcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gc2V0RGVidWcoYm9vbCkge1xuICAgICAgdGhpcy5kZWJ1ZyA9IGJvb2w7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImxvZ1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBsb2coKSB7XG4gICAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMuZm9yd2FyZChhcmdzLCAnbG9nJywgJycsIHRydWUpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJ3YXJuXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHdhcm4oKSB7XG4gICAgICBmb3IgKHZhciBfbGVuMiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbjIpLCBfa2V5MiA9IDA7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICAgICAgYXJnc1tfa2V5Ml0gPSBhcmd1bWVudHNbX2tleTJdO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5mb3J3YXJkKGFyZ3MsICd3YXJuJywgJycsIHRydWUpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJlcnJvclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBlcnJvcigpIHtcbiAgICAgIGZvciAodmFyIF9sZW4zID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMyksIF9rZXkzID0gMDsgX2tleTMgPCBfbGVuMzsgX2tleTMrKykge1xuICAgICAgICBhcmdzW19rZXkzXSA9IGFyZ3VtZW50c1tfa2V5M107XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLmZvcndhcmQoYXJncywgJ2Vycm9yJywgJycpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJkZXByZWNhdGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZGVwcmVjYXRlKCkge1xuICAgICAgZm9yICh2YXIgX2xlbjQgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW40KSwgX2tleTQgPSAwOyBfa2V5NCA8IF9sZW40OyBfa2V5NCsrKSB7XG4gICAgICAgIGFyZ3NbX2tleTRdID0gYXJndW1lbnRzW19rZXk0XTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMuZm9yd2FyZChhcmdzLCAnd2FybicsICdXQVJOSU5HIERFUFJFQ0FURUQ6ICcsIHRydWUpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJmb3J3YXJkXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGZvcndhcmQoYXJncywgbHZsLCBwcmVmaXgsIGRlYnVnT25seSkge1xuICAgICAgaWYgKGRlYnVnT25seSAmJiAhdGhpcy5kZWJ1ZykgcmV0dXJuIG51bGw7XG4gICAgICBpZiAodHlwZW9mIGFyZ3NbMF0gPT09ICdzdHJpbmcnKSBhcmdzWzBdID0gXCJcIi5jb25jYXQocHJlZml4KS5jb25jYXQodGhpcy5wcmVmaXgsIFwiIFwiKS5jb25jYXQoYXJnc1swXSk7XG4gICAgICByZXR1cm4gdGhpcy5sb2dnZXJbbHZsXShhcmdzKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY3JlYXRlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNyZWF0ZShtb2R1bGVOYW1lKSB7XG4gICAgICByZXR1cm4gbmV3IExvZ2dlcih0aGlzLmxvZ2dlciwgX29iamVjdFNwcmVhZCh7fSwge1xuICAgICAgICBwcmVmaXg6IFwiXCIuY29uY2F0KHRoaXMucHJlZml4LCBcIjpcIikuY29uY2F0KG1vZHVsZU5hbWUsIFwiOlwiKVxuICAgICAgfSwgdGhpcy5vcHRpb25zKSk7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIExvZ2dlcjtcbn0oKTtcblxudmFyIGJhc2VMb2dnZXIgPSBuZXcgTG9nZ2VyKCk7XG5cbnZhciBFdmVudEVtaXR0ZXIgPSBmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIEV2ZW50RW1pdHRlcigpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgRXZlbnRFbWl0dGVyKTtcblxuICAgIHRoaXMub2JzZXJ2ZXJzID0ge307XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoRXZlbnRFbWl0dGVyLCBbe1xuICAgIGtleTogXCJvblwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBvbihldmVudHMsIGxpc3RlbmVyKSB7XG4gICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICBldmVudHMuc3BsaXQoJyAnKS5mb3JFYWNoKGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICBfdGhpcy5vYnNlcnZlcnNbZXZlbnRdID0gX3RoaXMub2JzZXJ2ZXJzW2V2ZW50XSB8fCBbXTtcblxuICAgICAgICBfdGhpcy5vYnNlcnZlcnNbZXZlbnRdLnB1c2gobGlzdGVuZXIpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwib2ZmXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIG9mZihldmVudCwgbGlzdGVuZXIpIHtcbiAgICAgIGlmICghdGhpcy5vYnNlcnZlcnNbZXZlbnRdKSByZXR1cm47XG5cbiAgICAgIGlmICghbGlzdGVuZXIpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMub2JzZXJ2ZXJzW2V2ZW50XTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLm9ic2VydmVyc1tldmVudF0gPSB0aGlzLm9ic2VydmVyc1tldmVudF0uZmlsdGVyKGZ1bmN0aW9uIChsKSB7XG4gICAgICAgIHJldHVybiBsICE9PSBsaXN0ZW5lcjtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJlbWl0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGVtaXQoZXZlbnQpIHtcbiAgICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4gPiAxID8gX2xlbiAtIDEgOiAwKSwgX2tleSA9IDE7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgICAgYXJnc1tfa2V5IC0gMV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLm9ic2VydmVyc1tldmVudF0pIHtcbiAgICAgICAgdmFyIGNsb25lZCA9IFtdLmNvbmNhdCh0aGlzLm9ic2VydmVyc1tldmVudF0pO1xuICAgICAgICBjbG9uZWQuZm9yRWFjaChmdW5jdGlvbiAob2JzZXJ2ZXIpIHtcbiAgICAgICAgICBvYnNlcnZlci5hcHBseSh2b2lkIDAsIGFyZ3MpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMub2JzZXJ2ZXJzWycqJ10pIHtcbiAgICAgICAgdmFyIF9jbG9uZWQgPSBbXS5jb25jYXQodGhpcy5vYnNlcnZlcnNbJyonXSk7XG5cbiAgICAgICAgX2Nsb25lZC5mb3JFYWNoKGZ1bmN0aW9uIChvYnNlcnZlcikge1xuICAgICAgICAgIG9ic2VydmVyLmFwcGx5KG9ic2VydmVyLCBbZXZlbnRdLmNvbmNhdChhcmdzKSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBFdmVudEVtaXR0ZXI7XG59KCk7XG5cbmZ1bmN0aW9uIGRlZmVyKCkge1xuICB2YXIgcmVzO1xuICB2YXIgcmVqO1xuICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICByZXMgPSByZXNvbHZlO1xuICAgIHJlaiA9IHJlamVjdDtcbiAgfSk7XG4gIHByb21pc2UucmVzb2x2ZSA9IHJlcztcbiAgcHJvbWlzZS5yZWplY3QgPSByZWo7XG4gIHJldHVybiBwcm9taXNlO1xufVxuZnVuY3Rpb24gbWFrZVN0cmluZyhvYmplY3QpIHtcbiAgaWYgKG9iamVjdCA9PSBudWxsKSByZXR1cm4gJyc7XG4gIHJldHVybiAnJyArIG9iamVjdDtcbn1cbmZ1bmN0aW9uIGNvcHkoYSwgcywgdCkge1xuICBhLmZvckVhY2goZnVuY3Rpb24gKG0pIHtcbiAgICBpZiAoc1ttXSkgdFttXSA9IHNbbV07XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBnZXRMYXN0T2ZQYXRoKG9iamVjdCwgcGF0aCwgRW1wdHkpIHtcbiAgZnVuY3Rpb24gY2xlYW5LZXkoa2V5KSB7XG4gICAgcmV0dXJuIGtleSAmJiBrZXkuaW5kZXhPZignIyMjJykgPiAtMSA/IGtleS5yZXBsYWNlKC8jIyMvZywgJy4nKSA6IGtleTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNhbk5vdFRyYXZlcnNlRGVlcGVyKCkge1xuICAgIHJldHVybiAhb2JqZWN0IHx8IHR5cGVvZiBvYmplY3QgPT09ICdzdHJpbmcnO1xuICB9XG5cbiAgdmFyIHN0YWNrID0gdHlwZW9mIHBhdGggIT09ICdzdHJpbmcnID8gW10uY29uY2F0KHBhdGgpIDogcGF0aC5zcGxpdCgnLicpO1xuXG4gIHdoaWxlIChzdGFjay5sZW5ndGggPiAxKSB7XG4gICAgaWYgKGNhbk5vdFRyYXZlcnNlRGVlcGVyKCkpIHJldHVybiB7fTtcbiAgICB2YXIga2V5ID0gY2xlYW5LZXkoc3RhY2suc2hpZnQoKSk7XG4gICAgaWYgKCFvYmplY3Rba2V5XSAmJiBFbXB0eSkgb2JqZWN0W2tleV0gPSBuZXcgRW1wdHkoKTtcblxuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpKSB7XG4gICAgICBvYmplY3QgPSBvYmplY3Rba2V5XTtcbiAgICB9IGVsc2Uge1xuICAgICAgb2JqZWN0ID0ge307XG4gICAgfVxuICB9XG5cbiAgaWYgKGNhbk5vdFRyYXZlcnNlRGVlcGVyKCkpIHJldHVybiB7fTtcbiAgcmV0dXJuIHtcbiAgICBvYmo6IG9iamVjdCxcbiAgICBrOiBjbGVhbktleShzdGFjay5zaGlmdCgpKVxuICB9O1xufVxuXG5mdW5jdGlvbiBzZXRQYXRoKG9iamVjdCwgcGF0aCwgbmV3VmFsdWUpIHtcbiAgdmFyIF9nZXRMYXN0T2ZQYXRoID0gZ2V0TGFzdE9mUGF0aChvYmplY3QsIHBhdGgsIE9iamVjdCksXG4gICAgICBvYmogPSBfZ2V0TGFzdE9mUGF0aC5vYmosXG4gICAgICBrID0gX2dldExhc3RPZlBhdGguaztcblxuICBvYmpba10gPSBuZXdWYWx1ZTtcbn1cbmZ1bmN0aW9uIHB1c2hQYXRoKG9iamVjdCwgcGF0aCwgbmV3VmFsdWUsIGNvbmNhdCkge1xuICB2YXIgX2dldExhc3RPZlBhdGgyID0gZ2V0TGFzdE9mUGF0aChvYmplY3QsIHBhdGgsIE9iamVjdCksXG4gICAgICBvYmogPSBfZ2V0TGFzdE9mUGF0aDIub2JqLFxuICAgICAgayA9IF9nZXRMYXN0T2ZQYXRoMi5rO1xuXG4gIG9ialtrXSA9IG9ialtrXSB8fCBbXTtcbiAgaWYgKGNvbmNhdCkgb2JqW2tdID0gb2JqW2tdLmNvbmNhdChuZXdWYWx1ZSk7XG4gIGlmICghY29uY2F0KSBvYmpba10ucHVzaChuZXdWYWx1ZSk7XG59XG5mdW5jdGlvbiBnZXRQYXRoKG9iamVjdCwgcGF0aCkge1xuICB2YXIgX2dldExhc3RPZlBhdGgzID0gZ2V0TGFzdE9mUGF0aChvYmplY3QsIHBhdGgpLFxuICAgICAgb2JqID0gX2dldExhc3RPZlBhdGgzLm9iaixcbiAgICAgIGsgPSBfZ2V0TGFzdE9mUGF0aDMuaztcblxuICBpZiAoIW9iaikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgcmV0dXJuIG9ialtrXTtcbn1cbmZ1bmN0aW9uIGdldFBhdGhXaXRoRGVmYXVsdHMoZGF0YSwgZGVmYXVsdERhdGEsIGtleSkge1xuICB2YXIgdmFsdWUgPSBnZXRQYXRoKGRhdGEsIGtleSk7XG5cbiAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICByZXR1cm4gZ2V0UGF0aChkZWZhdWx0RGF0YSwga2V5KTtcbn1cbmZ1bmN0aW9uIGRlZXBFeHRlbmQodGFyZ2V0LCBzb3VyY2UsIG92ZXJ3cml0ZSkge1xuICBmb3IgKHZhciBwcm9wIGluIHNvdXJjZSkge1xuICAgIGlmIChwcm9wICE9PSAnX19wcm90b19fJyAmJiBwcm9wICE9PSAnY29uc3RydWN0b3InKSB7XG4gICAgICBpZiAocHJvcCBpbiB0YXJnZXQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB0YXJnZXRbcHJvcF0gPT09ICdzdHJpbmcnIHx8IHRhcmdldFtwcm9wXSBpbnN0YW5jZW9mIFN0cmluZyB8fCB0eXBlb2Ygc291cmNlW3Byb3BdID09PSAnc3RyaW5nJyB8fCBzb3VyY2VbcHJvcF0gaW5zdGFuY2VvZiBTdHJpbmcpIHtcbiAgICAgICAgICBpZiAob3ZlcndyaXRlKSB0YXJnZXRbcHJvcF0gPSBzb3VyY2VbcHJvcF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGVlcEV4dGVuZCh0YXJnZXRbcHJvcF0sIHNvdXJjZVtwcm9wXSwgb3ZlcndyaXRlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5mdW5jdGlvbiByZWdleEVzY2FwZShzdHIpIHtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKC9bXFwtXFxbXFxdXFwvXFx7XFx9XFwoXFwpXFwqXFwrXFw/XFwuXFxcXFxcXlxcJFxcfF0vZywgJ1xcXFwkJicpO1xufVxudmFyIF9lbnRpdHlNYXAgPSB7XG4gICcmJzogJyZhbXA7JyxcbiAgJzwnOiAnJmx0OycsXG4gICc+JzogJyZndDsnLFxuICAnXCInOiAnJnF1b3Q7JyxcbiAgXCInXCI6ICcmIzM5OycsXG4gICcvJzogJyYjeDJGOydcbn07XG5mdW5jdGlvbiBlc2NhcGUoZGF0YSkge1xuICBpZiAodHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGRhdGEucmVwbGFjZSgvWyY8PlwiJ1xcL10vZywgZnVuY3Rpb24gKHMpIHtcbiAgICAgIHJldHVybiBfZW50aXR5TWFwW3NdO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGRhdGE7XG59XG52YXIgaXNJRTEwID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Lm5hdmlnYXRvciAmJiB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudCAmJiB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdNU0lFJykgPiAtMTtcblxuZnVuY3Rpb24gZGVlcEZpbmQob2JqLCBwYXRoKSB7XG4gIHZhciBrZXlTZXBhcmF0b3IgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6ICcuJztcbiAgaWYgKCFvYmopIHJldHVybiB1bmRlZmluZWQ7XG4gIGlmIChvYmpbcGF0aF0pIHJldHVybiBvYmpbcGF0aF07XG4gIHZhciBwYXRocyA9IHBhdGguc3BsaXQoa2V5U2VwYXJhdG9yKTtcbiAgdmFyIGN1cnJlbnQgPSBvYmo7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXRocy5sZW5ndGg7ICsraSkge1xuICAgIGlmICghY3VycmVudCkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIGlmICh0eXBlb2YgY3VycmVudFtwYXRoc1tpXV0gPT09ICdzdHJpbmcnICYmIGkgKyAxIDwgcGF0aHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmIChjdXJyZW50W3BhdGhzW2ldXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB2YXIgaiA9IDI7XG4gICAgICB2YXIgcCA9IHBhdGhzLnNsaWNlKGksIGkgKyBqKS5qb2luKGtleVNlcGFyYXRvcik7XG4gICAgICB2YXIgbWl4ID0gY3VycmVudFtwXTtcblxuICAgICAgd2hpbGUgKG1peCA9PT0gdW5kZWZpbmVkICYmIHBhdGhzLmxlbmd0aCA+IGkgKyBqKSB7XG4gICAgICAgIGorKztcbiAgICAgICAgcCA9IHBhdGhzLnNsaWNlKGksIGkgKyBqKS5qb2luKGtleVNlcGFyYXRvcik7XG4gICAgICAgIG1peCA9IGN1cnJlbnRbcF07XG4gICAgICB9XG5cbiAgICAgIGlmIChtaXggPT09IHVuZGVmaW5lZCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIGlmICh0eXBlb2YgbWl4ID09PSAnc3RyaW5nJykgcmV0dXJuIG1peDtcbiAgICAgIGlmIChwICYmIHR5cGVvZiBtaXhbcF0gPT09ICdzdHJpbmcnKSByZXR1cm4gbWl4W3BdO1xuICAgICAgdmFyIGpvaW5lZFBhdGggPSBwYXRocy5zbGljZShpICsgaikuam9pbihrZXlTZXBhcmF0b3IpO1xuICAgICAgaWYgKGpvaW5lZFBhdGgpIHJldHVybiBkZWVwRmluZChtaXgsIGpvaW5lZFBhdGgsIGtleVNlcGFyYXRvcik7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGN1cnJlbnQgPSBjdXJyZW50W3BhdGhzW2ldXTtcbiAgfVxuXG4gIHJldHVybiBjdXJyZW50O1xufVxuXG52YXIgUmVzb3VyY2VTdG9yZSA9IGZ1bmN0aW9uIChfRXZlbnRFbWl0dGVyKSB7XG4gIF9pbmhlcml0cyhSZXNvdXJjZVN0b3JlLCBfRXZlbnRFbWl0dGVyKTtcblxuICBmdW5jdGlvbiBSZXNvdXJjZVN0b3JlKGRhdGEpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge1xuICAgICAgbnM6IFsndHJhbnNsYXRpb24nXSxcbiAgICAgIGRlZmF1bHROUzogJ3RyYW5zbGF0aW9uJ1xuICAgIH07XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzb3VyY2VTdG9yZSk7XG5cbiAgICBfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIF9nZXRQcm90b3R5cGVPZihSZXNvdXJjZVN0b3JlKS5jYWxsKHRoaXMpKTtcblxuICAgIGlmIChpc0lFMTApIHtcbiAgICAgIEV2ZW50RW1pdHRlci5jYWxsKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtcbiAgICB9XG5cbiAgICBfdGhpcy5kYXRhID0gZGF0YSB8fCB7fTtcbiAgICBfdGhpcy5vcHRpb25zID0gb3B0aW9ucztcblxuICAgIGlmIChfdGhpcy5vcHRpb25zLmtleVNlcGFyYXRvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBfdGhpcy5vcHRpb25zLmtleVNlcGFyYXRvciA9ICcuJztcbiAgICB9XG5cbiAgICBpZiAoX3RoaXMub3B0aW9ucy5pZ25vcmVKU09OU3RydWN0dXJlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIF90aGlzLm9wdGlvbnMuaWdub3JlSlNPTlN0cnVjdHVyZSA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFJlc291cmNlU3RvcmUsIFt7XG4gICAga2V5OiBcImFkZE5hbWVzcGFjZXNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gYWRkTmFtZXNwYWNlcyhucykge1xuICAgICAgaWYgKHRoaXMub3B0aW9ucy5ucy5pbmRleE9mKG5zKSA8IDApIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLm5zLnB1c2gobnMpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW1vdmVOYW1lc3BhY2VzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbW92ZU5hbWVzcGFjZXMobnMpIHtcbiAgICAgIHZhciBpbmRleCA9IHRoaXMub3B0aW9ucy5ucy5pbmRleE9mKG5zKTtcblxuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLm5zLnNwbGljZShpbmRleCwgMSk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldFJlc291cmNlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFJlc291cmNlKGxuZywgbnMsIGtleSkge1xuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMyAmJiBhcmd1bWVudHNbM10gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1szXSA6IHt9O1xuICAgICAgdmFyIGtleVNlcGFyYXRvciA9IG9wdGlvbnMua2V5U2VwYXJhdG9yICE9PSB1bmRlZmluZWQgPyBvcHRpb25zLmtleVNlcGFyYXRvciA6IHRoaXMub3B0aW9ucy5rZXlTZXBhcmF0b3I7XG4gICAgICB2YXIgaWdub3JlSlNPTlN0cnVjdHVyZSA9IG9wdGlvbnMuaWdub3JlSlNPTlN0cnVjdHVyZSAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5pZ25vcmVKU09OU3RydWN0dXJlIDogdGhpcy5vcHRpb25zLmlnbm9yZUpTT05TdHJ1Y3R1cmU7XG4gICAgICB2YXIgcGF0aCA9IFtsbmcsIG5zXTtcbiAgICAgIGlmIChrZXkgJiYgdHlwZW9mIGtleSAhPT0gJ3N0cmluZycpIHBhdGggPSBwYXRoLmNvbmNhdChrZXkpO1xuICAgICAgaWYgKGtleSAmJiB0eXBlb2Yga2V5ID09PSAnc3RyaW5nJykgcGF0aCA9IHBhdGguY29uY2F0KGtleVNlcGFyYXRvciA/IGtleS5zcGxpdChrZXlTZXBhcmF0b3IpIDoga2V5KTtcblxuICAgICAgaWYgKGxuZy5pbmRleE9mKCcuJykgPiAtMSkge1xuICAgICAgICBwYXRoID0gbG5nLnNwbGl0KCcuJyk7XG4gICAgICB9XG5cbiAgICAgIHZhciByZXN1bHQgPSBnZXRQYXRoKHRoaXMuZGF0YSwgcGF0aCk7XG4gICAgICBpZiAocmVzdWx0IHx8ICFpZ25vcmVKU09OU3RydWN0dXJlIHx8IHR5cGVvZiBrZXkgIT09ICdzdHJpbmcnKSByZXR1cm4gcmVzdWx0O1xuICAgICAgcmV0dXJuIGRlZXBGaW5kKHRoaXMuZGF0YSAmJiB0aGlzLmRhdGFbbG5nXSAmJiB0aGlzLmRhdGFbbG5nXVtuc10sIGtleSwga2V5U2VwYXJhdG9yKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiYWRkUmVzb3VyY2VcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gYWRkUmVzb3VyY2UobG5nLCBucywga2V5LCB2YWx1ZSkge1xuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IHtcbiAgICAgICAgc2lsZW50OiBmYWxzZVxuICAgICAgfTtcbiAgICAgIHZhciBrZXlTZXBhcmF0b3IgPSB0aGlzLm9wdGlvbnMua2V5U2VwYXJhdG9yO1xuICAgICAgaWYgKGtleVNlcGFyYXRvciA9PT0gdW5kZWZpbmVkKSBrZXlTZXBhcmF0b3IgPSAnLic7XG4gICAgICB2YXIgcGF0aCA9IFtsbmcsIG5zXTtcbiAgICAgIGlmIChrZXkpIHBhdGggPSBwYXRoLmNvbmNhdChrZXlTZXBhcmF0b3IgPyBrZXkuc3BsaXQoa2V5U2VwYXJhdG9yKSA6IGtleSk7XG5cbiAgICAgIGlmIChsbmcuaW5kZXhPZignLicpID4gLTEpIHtcbiAgICAgICAgcGF0aCA9IGxuZy5zcGxpdCgnLicpO1xuICAgICAgICB2YWx1ZSA9IG5zO1xuICAgICAgICBucyA9IHBhdGhbMV07XG4gICAgICB9XG5cbiAgICAgIHRoaXMuYWRkTmFtZXNwYWNlcyhucyk7XG4gICAgICBzZXRQYXRoKHRoaXMuZGF0YSwgcGF0aCwgdmFsdWUpO1xuICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkgdGhpcy5lbWl0KCdhZGRlZCcsIGxuZywgbnMsIGtleSwgdmFsdWUpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJhZGRSZXNvdXJjZXNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gYWRkUmVzb3VyY2VzKGxuZywgbnMsIHJlc291cmNlcykge1xuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMyAmJiBhcmd1bWVudHNbM10gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1szXSA6IHtcbiAgICAgICAgc2lsZW50OiBmYWxzZVxuICAgICAgfTtcblxuICAgICAgZm9yICh2YXIgbSBpbiByZXNvdXJjZXMpIHtcbiAgICAgICAgaWYgKHR5cGVvZiByZXNvdXJjZXNbbV0gPT09ICdzdHJpbmcnIHx8IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuYXBwbHkocmVzb3VyY2VzW21dKSA9PT0gJ1tvYmplY3QgQXJyYXldJykgdGhpcy5hZGRSZXNvdXJjZShsbmcsIG5zLCBtLCByZXNvdXJjZXNbbV0sIHtcbiAgICAgICAgICBzaWxlbnQ6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHRoaXMuZW1pdCgnYWRkZWQnLCBsbmcsIG5zLCByZXNvdXJjZXMpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJhZGRSZXNvdXJjZUJ1bmRsZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBhZGRSZXNvdXJjZUJ1bmRsZShsbmcsIG5zLCByZXNvdXJjZXMsIGRlZXAsIG92ZXJ3cml0ZSkge1xuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gNSAmJiBhcmd1bWVudHNbNV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s1XSA6IHtcbiAgICAgICAgc2lsZW50OiBmYWxzZVxuICAgICAgfTtcbiAgICAgIHZhciBwYXRoID0gW2xuZywgbnNdO1xuXG4gICAgICBpZiAobG5nLmluZGV4T2YoJy4nKSA+IC0xKSB7XG4gICAgICAgIHBhdGggPSBsbmcuc3BsaXQoJy4nKTtcbiAgICAgICAgZGVlcCA9IHJlc291cmNlcztcbiAgICAgICAgcmVzb3VyY2VzID0gbnM7XG4gICAgICAgIG5zID0gcGF0aFsxXTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5hZGROYW1lc3BhY2VzKG5zKTtcbiAgICAgIHZhciBwYWNrID0gZ2V0UGF0aCh0aGlzLmRhdGEsIHBhdGgpIHx8IHt9O1xuXG4gICAgICBpZiAoZGVlcCkge1xuICAgICAgICBkZWVwRXh0ZW5kKHBhY2ssIHJlc291cmNlcywgb3ZlcndyaXRlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBhY2sgPSBfb2JqZWN0U3ByZWFkKHt9LCBwYWNrLCByZXNvdXJjZXMpO1xuICAgICAgfVxuXG4gICAgICBzZXRQYXRoKHRoaXMuZGF0YSwgcGF0aCwgcGFjayk7XG4gICAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB0aGlzLmVtaXQoJ2FkZGVkJywgbG5nLCBucywgcmVzb3VyY2VzKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVtb3ZlUmVzb3VyY2VCdW5kbGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVtb3ZlUmVzb3VyY2VCdW5kbGUobG5nLCBucykge1xuICAgICAgaWYgKHRoaXMuaGFzUmVzb3VyY2VCdW5kbGUobG5nLCBucykpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMuZGF0YVtsbmddW25zXTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5yZW1vdmVOYW1lc3BhY2VzKG5zKTtcbiAgICAgIHRoaXMuZW1pdCgncmVtb3ZlZCcsIGxuZywgbnMpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJoYXNSZXNvdXJjZUJ1bmRsZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBoYXNSZXNvdXJjZUJ1bmRsZShsbmcsIG5zKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRSZXNvdXJjZShsbmcsIG5zKSAhPT0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRSZXNvdXJjZUJ1bmRsZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRSZXNvdXJjZUJ1bmRsZShsbmcsIG5zKSB7XG4gICAgICBpZiAoIW5zKSBucyA9IHRoaXMub3B0aW9ucy5kZWZhdWx0TlM7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLmNvbXBhdGliaWxpdHlBUEkgPT09ICd2MScpIHJldHVybiBfb2JqZWN0U3ByZWFkKHt9LCB7fSwgdGhpcy5nZXRSZXNvdXJjZShsbmcsIG5zKSk7XG4gICAgICByZXR1cm4gdGhpcy5nZXRSZXNvdXJjZShsbmcsIG5zKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0RGF0YUJ5TGFuZ3VhZ2VcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0RGF0YUJ5TGFuZ3VhZ2UobG5nKSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhW2xuZ107XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInRvSlNPTlwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiB0b0pTT04oKSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBSZXNvdXJjZVN0b3JlO1xufShFdmVudEVtaXR0ZXIpO1xuXG52YXIgcG9zdFByb2Nlc3NvciA9IHtcbiAgcHJvY2Vzc29yczoge30sXG4gIGFkZFBvc3RQcm9jZXNzb3I6IGZ1bmN0aW9uIGFkZFBvc3RQcm9jZXNzb3IobW9kdWxlKSB7XG4gICAgdGhpcy5wcm9jZXNzb3JzW21vZHVsZS5uYW1lXSA9IG1vZHVsZTtcbiAgfSxcbiAgaGFuZGxlOiBmdW5jdGlvbiBoYW5kbGUocHJvY2Vzc29ycywgdmFsdWUsIGtleSwgb3B0aW9ucywgdHJhbnNsYXRvcikge1xuICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICBwcm9jZXNzb3JzLmZvckVhY2goZnVuY3Rpb24gKHByb2Nlc3Nvcikge1xuICAgICAgaWYgKF90aGlzLnByb2Nlc3NvcnNbcHJvY2Vzc29yXSkgdmFsdWUgPSBfdGhpcy5wcm9jZXNzb3JzW3Byb2Nlc3Nvcl0ucHJvY2Vzcyh2YWx1ZSwga2V5LCBvcHRpb25zLCB0cmFuc2xhdG9yKTtcbiAgICB9KTtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn07XG5cbnZhciBjaGVja2VkTG9hZGVkRm9yID0ge307XG5cbnZhciBUcmFuc2xhdG9yID0gZnVuY3Rpb24gKF9FdmVudEVtaXR0ZXIpIHtcbiAgX2luaGVyaXRzKFRyYW5zbGF0b3IsIF9FdmVudEVtaXR0ZXIpO1xuXG4gIGZ1bmN0aW9uIFRyYW5zbGF0b3Ioc2VydmljZXMpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVHJhbnNsYXRvcik7XG5cbiAgICBfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIF9nZXRQcm90b3R5cGVPZihUcmFuc2xhdG9yKS5jYWxsKHRoaXMpKTtcblxuICAgIGlmIChpc0lFMTApIHtcbiAgICAgIEV2ZW50RW1pdHRlci5jYWxsKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtcbiAgICB9XG5cbiAgICBjb3B5KFsncmVzb3VyY2VTdG9yZScsICdsYW5ndWFnZVV0aWxzJywgJ3BsdXJhbFJlc29sdmVyJywgJ2ludGVycG9sYXRvcicsICdiYWNrZW5kQ29ubmVjdG9yJywgJ2kxOG5Gb3JtYXQnLCAndXRpbHMnXSwgc2VydmljZXMsIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtcbiAgICBfdGhpcy5vcHRpb25zID0gb3B0aW9ucztcblxuICAgIGlmIChfdGhpcy5vcHRpb25zLmtleVNlcGFyYXRvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBfdGhpcy5vcHRpb25zLmtleVNlcGFyYXRvciA9ICcuJztcbiAgICB9XG5cbiAgICBfdGhpcy5sb2dnZXIgPSBiYXNlTG9nZ2VyLmNyZWF0ZSgndHJhbnNsYXRvcicpO1xuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhUcmFuc2xhdG9yLCBbe1xuICAgIGtleTogXCJjaGFuZ2VMYW5ndWFnZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjaGFuZ2VMYW5ndWFnZShsbmcpIHtcbiAgICAgIGlmIChsbmcpIHRoaXMubGFuZ3VhZ2UgPSBsbmc7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImV4aXN0c1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBleGlzdHMoa2V5KSB7XG4gICAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge1xuICAgICAgICBpbnRlcnBvbGF0aW9uOiB7fVxuICAgICAgfTtcblxuICAgICAgaWYgKGtleSA9PT0gdW5kZWZpbmVkIHx8IGtleSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIHZhciByZXNvbHZlZCA9IHRoaXMucmVzb2x2ZShrZXksIG9wdGlvbnMpO1xuICAgICAgcmV0dXJuIHJlc29sdmVkICYmIHJlc29sdmVkLnJlcyAhPT0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJleHRyYWN0RnJvbUtleVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBleHRyYWN0RnJvbUtleShrZXksIG9wdGlvbnMpIHtcbiAgICAgIHZhciBuc1NlcGFyYXRvciA9IG9wdGlvbnMubnNTZXBhcmF0b3IgIT09IHVuZGVmaW5lZCA/IG9wdGlvbnMubnNTZXBhcmF0b3IgOiB0aGlzLm9wdGlvbnMubnNTZXBhcmF0b3I7XG4gICAgICBpZiAobnNTZXBhcmF0b3IgPT09IHVuZGVmaW5lZCkgbnNTZXBhcmF0b3IgPSAnOic7XG4gICAgICB2YXIga2V5U2VwYXJhdG9yID0gb3B0aW9ucy5rZXlTZXBhcmF0b3IgIT09IHVuZGVmaW5lZCA/IG9wdGlvbnMua2V5U2VwYXJhdG9yIDogdGhpcy5vcHRpb25zLmtleVNlcGFyYXRvcjtcbiAgICAgIHZhciBuYW1lc3BhY2VzID0gb3B0aW9ucy5ucyB8fCB0aGlzLm9wdGlvbnMuZGVmYXVsdE5TO1xuXG4gICAgICBpZiAobnNTZXBhcmF0b3IgJiYga2V5LmluZGV4T2YobnNTZXBhcmF0b3IpID4gLTEpIHtcbiAgICAgICAgdmFyIG0gPSBrZXkubWF0Y2godGhpcy5pbnRlcnBvbGF0b3IubmVzdGluZ1JlZ2V4cCk7XG5cbiAgICAgICAgaWYgKG0gJiYgbS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGtleToga2V5LFxuICAgICAgICAgICAgbmFtZXNwYWNlczogbmFtZXNwYWNlc1xuICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgcGFydHMgPSBrZXkuc3BsaXQobnNTZXBhcmF0b3IpO1xuICAgICAgICBpZiAobnNTZXBhcmF0b3IgIT09IGtleVNlcGFyYXRvciB8fCBuc1NlcGFyYXRvciA9PT0ga2V5U2VwYXJhdG9yICYmIHRoaXMub3B0aW9ucy5ucy5pbmRleE9mKHBhcnRzWzBdKSA+IC0xKSBuYW1lc3BhY2VzID0gcGFydHMuc2hpZnQoKTtcbiAgICAgICAga2V5ID0gcGFydHMuam9pbihrZXlTZXBhcmF0b3IpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIG5hbWVzcGFjZXMgPT09ICdzdHJpbmcnKSBuYW1lc3BhY2VzID0gW25hbWVzcGFjZXNdO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAga2V5OiBrZXksXG4gICAgICAgIG5hbWVzcGFjZXM6IG5hbWVzcGFjZXNcbiAgICAgIH07XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInRyYW5zbGF0ZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiB0cmFuc2xhdGUoa2V5cywgb3B0aW9ucywgbGFzdEtleSkge1xuICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgIGlmIChfdHlwZW9mKG9wdGlvbnMpICE9PSAnb2JqZWN0JyAmJiB0aGlzLm9wdGlvbnMub3ZlcmxvYWRUcmFuc2xhdGlvbk9wdGlvbkhhbmRsZXIpIHtcbiAgICAgICAgb3B0aW9ucyA9IHRoaXMub3B0aW9ucy5vdmVybG9hZFRyYW5zbGF0aW9uT3B0aW9uSGFuZGxlcihhcmd1bWVudHMpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIW9wdGlvbnMpIG9wdGlvbnMgPSB7fTtcbiAgICAgIGlmIChrZXlzID09PSB1bmRlZmluZWQgfHwga2V5cyA9PT0gbnVsbCkgcmV0dXJuICcnO1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGtleXMpKSBrZXlzID0gW1N0cmluZyhrZXlzKV07XG4gICAgICB2YXIga2V5U2VwYXJhdG9yID0gb3B0aW9ucy5rZXlTZXBhcmF0b3IgIT09IHVuZGVmaW5lZCA/IG9wdGlvbnMua2V5U2VwYXJhdG9yIDogdGhpcy5vcHRpb25zLmtleVNlcGFyYXRvcjtcblxuICAgICAgdmFyIF90aGlzJGV4dHJhY3RGcm9tS2V5ID0gdGhpcy5leHRyYWN0RnJvbUtleShrZXlzW2tleXMubGVuZ3RoIC0gMV0sIG9wdGlvbnMpLFxuICAgICAgICAgIGtleSA9IF90aGlzJGV4dHJhY3RGcm9tS2V5LmtleSxcbiAgICAgICAgICBuYW1lc3BhY2VzID0gX3RoaXMkZXh0cmFjdEZyb21LZXkubmFtZXNwYWNlcztcblxuICAgICAgdmFyIG5hbWVzcGFjZSA9IG5hbWVzcGFjZXNbbmFtZXNwYWNlcy5sZW5ndGggLSAxXTtcbiAgICAgIHZhciBsbmcgPSBvcHRpb25zLmxuZyB8fCB0aGlzLmxhbmd1YWdlO1xuICAgICAgdmFyIGFwcGVuZE5hbWVzcGFjZVRvQ0lNb2RlID0gb3B0aW9ucy5hcHBlbmROYW1lc3BhY2VUb0NJTW9kZSB8fCB0aGlzLm9wdGlvbnMuYXBwZW5kTmFtZXNwYWNlVG9DSU1vZGU7XG5cbiAgICAgIGlmIChsbmcgJiYgbG5nLnRvTG93ZXJDYXNlKCkgPT09ICdjaW1vZGUnKSB7XG4gICAgICAgIGlmIChhcHBlbmROYW1lc3BhY2VUb0NJTW9kZSkge1xuICAgICAgICAgIHZhciBuc1NlcGFyYXRvciA9IG9wdGlvbnMubnNTZXBhcmF0b3IgfHwgdGhpcy5vcHRpb25zLm5zU2VwYXJhdG9yO1xuICAgICAgICAgIHJldHVybiBuYW1lc3BhY2UgKyBuc1NlcGFyYXRvciArIGtleTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBrZXk7XG4gICAgICB9XG5cbiAgICAgIHZhciByZXNvbHZlZCA9IHRoaXMucmVzb2x2ZShrZXlzLCBvcHRpb25zKTtcbiAgICAgIHZhciByZXMgPSByZXNvbHZlZCAmJiByZXNvbHZlZC5yZXM7XG4gICAgICB2YXIgcmVzVXNlZEtleSA9IHJlc29sdmVkICYmIHJlc29sdmVkLnVzZWRLZXkgfHwga2V5O1xuICAgICAgdmFyIHJlc0V4YWN0VXNlZEtleSA9IHJlc29sdmVkICYmIHJlc29sdmVkLmV4YWN0VXNlZEtleSB8fCBrZXk7XG4gICAgICB2YXIgcmVzVHlwZSA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuYXBwbHkocmVzKTtcbiAgICAgIHZhciBub09iamVjdCA9IFsnW29iamVjdCBOdW1iZXJdJywgJ1tvYmplY3QgRnVuY3Rpb25dJywgJ1tvYmplY3QgUmVnRXhwXSddO1xuICAgICAgdmFyIGpvaW5BcnJheXMgPSBvcHRpb25zLmpvaW5BcnJheXMgIT09IHVuZGVmaW5lZCA/IG9wdGlvbnMuam9pbkFycmF5cyA6IHRoaXMub3B0aW9ucy5qb2luQXJyYXlzO1xuICAgICAgdmFyIGhhbmRsZUFzT2JqZWN0SW5JMThuRm9ybWF0ID0gIXRoaXMuaTE4bkZvcm1hdCB8fCB0aGlzLmkxOG5Gb3JtYXQuaGFuZGxlQXNPYmplY3Q7XG4gICAgICB2YXIgaGFuZGxlQXNPYmplY3QgPSB0eXBlb2YgcmVzICE9PSAnc3RyaW5nJyAmJiB0eXBlb2YgcmVzICE9PSAnYm9vbGVhbicgJiYgdHlwZW9mIHJlcyAhPT0gJ251bWJlcic7XG5cbiAgICAgIGlmIChoYW5kbGVBc09iamVjdEluSTE4bkZvcm1hdCAmJiByZXMgJiYgaGFuZGxlQXNPYmplY3QgJiYgbm9PYmplY3QuaW5kZXhPZihyZXNUeXBlKSA8IDAgJiYgISh0eXBlb2Ygam9pbkFycmF5cyA9PT0gJ3N0cmluZycgJiYgcmVzVHlwZSA9PT0gJ1tvYmplY3QgQXJyYXldJykpIHtcbiAgICAgICAgaWYgKCFvcHRpb25zLnJldHVybk9iamVjdHMgJiYgIXRoaXMub3B0aW9ucy5yZXR1cm5PYmplY3RzKSB7XG4gICAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMucmV0dXJuZWRPYmplY3RIYW5kbGVyKSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKCdhY2Nlc3NpbmcgYW4gb2JqZWN0IC0gYnV0IHJldHVybk9iamVjdHMgb3B0aW9ucyBpcyBub3QgZW5hYmxlZCEnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLnJldHVybmVkT2JqZWN0SGFuZGxlciA/IHRoaXMub3B0aW9ucy5yZXR1cm5lZE9iamVjdEhhbmRsZXIocmVzVXNlZEtleSwgcmVzLCBfb2JqZWN0U3ByZWFkKHt9LCBvcHRpb25zLCB7XG4gICAgICAgICAgICBuczogbmFtZXNwYWNlc1xuICAgICAgICAgIH0pKSA6IFwia2V5ICdcIi5jb25jYXQoa2V5LCBcIiAoXCIpLmNvbmNhdCh0aGlzLmxhbmd1YWdlLCBcIiknIHJldHVybmVkIGFuIG9iamVjdCBpbnN0ZWFkIG9mIHN0cmluZy5cIik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoa2V5U2VwYXJhdG9yKSB7XG4gICAgICAgICAgdmFyIHJlc1R5cGVJc0FycmF5ID0gcmVzVHlwZSA9PT0gJ1tvYmplY3QgQXJyYXldJztcbiAgICAgICAgICB2YXIgY29weSA9IHJlc1R5cGVJc0FycmF5ID8gW10gOiB7fTtcbiAgICAgICAgICB2YXIgbmV3S2V5VG9Vc2UgPSByZXNUeXBlSXNBcnJheSA/IHJlc0V4YWN0VXNlZEtleSA6IHJlc1VzZWRLZXk7XG5cbiAgICAgICAgICBmb3IgKHZhciBtIGluIHJlcykge1xuICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyZXMsIG0pKSB7XG4gICAgICAgICAgICAgIHZhciBkZWVwS2V5ID0gXCJcIi5jb25jYXQobmV3S2V5VG9Vc2UpLmNvbmNhdChrZXlTZXBhcmF0b3IpLmNvbmNhdChtKTtcbiAgICAgICAgICAgICAgY29weVttXSA9IHRoaXMudHJhbnNsYXRlKGRlZXBLZXksIF9vYmplY3RTcHJlYWQoe30sIG9wdGlvbnMsIHtcbiAgICAgICAgICAgICAgICBqb2luQXJyYXlzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBuczogbmFtZXNwYWNlc1xuICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgIGlmIChjb3B5W21dID09PSBkZWVwS2V5KSBjb3B5W21dID0gcmVzW21dO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJlcyA9IGNvcHk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaGFuZGxlQXNPYmplY3RJbkkxOG5Gb3JtYXQgJiYgdHlwZW9mIGpvaW5BcnJheXMgPT09ICdzdHJpbmcnICYmIHJlc1R5cGUgPT09ICdbb2JqZWN0IEFycmF5XScpIHtcbiAgICAgICAgcmVzID0gcmVzLmpvaW4oam9pbkFycmF5cyk7XG4gICAgICAgIGlmIChyZXMpIHJlcyA9IHRoaXMuZXh0ZW5kVHJhbnNsYXRpb24ocmVzLCBrZXlzLCBvcHRpb25zLCBsYXN0S2V5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciB1c2VkRGVmYXVsdCA9IGZhbHNlO1xuICAgICAgICB2YXIgdXNlZEtleSA9IGZhbHNlO1xuICAgICAgICB2YXIgbmVlZHNQbHVyYWxIYW5kbGluZyA9IG9wdGlvbnMuY291bnQgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2Ygb3B0aW9ucy5jb3VudCAhPT0gJ3N0cmluZyc7XG4gICAgICAgIHZhciBoYXNEZWZhdWx0VmFsdWUgPSBUcmFuc2xhdG9yLmhhc0RlZmF1bHRWYWx1ZShvcHRpb25zKTtcbiAgICAgICAgdmFyIGRlZmF1bHRWYWx1ZVN1ZmZpeCA9IG5lZWRzUGx1cmFsSGFuZGxpbmcgPyB0aGlzLnBsdXJhbFJlc29sdmVyLmdldFN1ZmZpeChsbmcsIG9wdGlvbnMuY291bnQpIDogJyc7XG4gICAgICAgIHZhciBkZWZhdWx0VmFsdWUgPSBvcHRpb25zW1wiZGVmYXVsdFZhbHVlXCIuY29uY2F0KGRlZmF1bHRWYWx1ZVN1ZmZpeCldIHx8IG9wdGlvbnMuZGVmYXVsdFZhbHVlO1xuXG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkTG9va3VwKHJlcykgJiYgaGFzRGVmYXVsdFZhbHVlKSB7XG4gICAgICAgICAgdXNlZERlZmF1bHQgPSB0cnVlO1xuICAgICAgICAgIHJlcyA9IGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkTG9va3VwKHJlcykpIHtcbiAgICAgICAgICB1c2VkS2V5ID0gdHJ1ZTtcbiAgICAgICAgICByZXMgPSBrZXk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgbWlzc2luZ0tleU5vVmFsdWVGYWxsYmFja1RvS2V5ID0gb3B0aW9ucy5taXNzaW5nS2V5Tm9WYWx1ZUZhbGxiYWNrVG9LZXkgfHwgdGhpcy5vcHRpb25zLm1pc3NpbmdLZXlOb1ZhbHVlRmFsbGJhY2tUb0tleTtcbiAgICAgICAgdmFyIHJlc0Zvck1pc3NpbmcgPSBtaXNzaW5nS2V5Tm9WYWx1ZUZhbGxiYWNrVG9LZXkgJiYgdXNlZEtleSA/IHVuZGVmaW5lZCA6IHJlcztcbiAgICAgICAgdmFyIHVwZGF0ZU1pc3NpbmcgPSBoYXNEZWZhdWx0VmFsdWUgJiYgZGVmYXVsdFZhbHVlICE9PSByZXMgJiYgdGhpcy5vcHRpb25zLnVwZGF0ZU1pc3Npbmc7XG5cbiAgICAgICAgaWYgKHVzZWRLZXkgfHwgdXNlZERlZmF1bHQgfHwgdXBkYXRlTWlzc2luZykge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmxvZyh1cGRhdGVNaXNzaW5nID8gJ3VwZGF0ZUtleScgOiAnbWlzc2luZ0tleScsIGxuZywgbmFtZXNwYWNlLCBrZXksIHVwZGF0ZU1pc3NpbmcgPyBkZWZhdWx0VmFsdWUgOiByZXMpO1xuXG4gICAgICAgICAgaWYgKGtleVNlcGFyYXRvcikge1xuICAgICAgICAgICAgdmFyIGZrID0gdGhpcy5yZXNvbHZlKGtleSwgX29iamVjdFNwcmVhZCh7fSwgb3B0aW9ucywge1xuICAgICAgICAgICAgICBrZXlTZXBhcmF0b3I6IGZhbHNlXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICBpZiAoZmsgJiYgZmsucmVzKSB0aGlzLmxvZ2dlci53YXJuKCdTZWVtcyB0aGUgbG9hZGVkIHRyYW5zbGF0aW9ucyB3ZXJlIGluIGZsYXQgSlNPTiBmb3JtYXQgaW5zdGVhZCBvZiBuZXN0ZWQuIEVpdGhlciBzZXQga2V5U2VwYXJhdG9yOiBmYWxzZSBvbiBpbml0IG9yIG1ha2Ugc3VyZSB5b3VyIHRyYW5zbGF0aW9ucyBhcmUgcHVibGlzaGVkIGluIG5lc3RlZCBmb3JtYXQuJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIGxuZ3MgPSBbXTtcbiAgICAgICAgICB2YXIgZmFsbGJhY2tMbmdzID0gdGhpcy5sYW5ndWFnZVV0aWxzLmdldEZhbGxiYWNrQ29kZXModGhpcy5vcHRpb25zLmZhbGxiYWNrTG5nLCBvcHRpb25zLmxuZyB8fCB0aGlzLmxhbmd1YWdlKTtcblxuICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuc2F2ZU1pc3NpbmdUbyA9PT0gJ2ZhbGxiYWNrJyAmJiBmYWxsYmFja0xuZ3MgJiYgZmFsbGJhY2tMbmdzWzBdKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZhbGxiYWNrTG5ncy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICBsbmdzLnB1c2goZmFsbGJhY2tMbmdzW2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9ucy5zYXZlTWlzc2luZ1RvID09PSAnYWxsJykge1xuICAgICAgICAgICAgbG5ncyA9IHRoaXMubGFuZ3VhZ2VVdGlscy50b1Jlc29sdmVIaWVyYXJjaHkob3B0aW9ucy5sbmcgfHwgdGhpcy5sYW5ndWFnZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxuZ3MucHVzaChvcHRpb25zLmxuZyB8fCB0aGlzLmxhbmd1YWdlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgc2VuZCA9IGZ1bmN0aW9uIHNlbmQobCwgaywgZmFsbGJhY2tWYWx1ZSkge1xuICAgICAgICAgICAgaWYgKF90aGlzMi5vcHRpb25zLm1pc3NpbmdLZXlIYW5kbGVyKSB7XG4gICAgICAgICAgICAgIF90aGlzMi5vcHRpb25zLm1pc3NpbmdLZXlIYW5kbGVyKGwsIG5hbWVzcGFjZSwgaywgdXBkYXRlTWlzc2luZyA/IGZhbGxiYWNrVmFsdWUgOiByZXNGb3JNaXNzaW5nLCB1cGRhdGVNaXNzaW5nLCBvcHRpb25zKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoX3RoaXMyLmJhY2tlbmRDb25uZWN0b3IgJiYgX3RoaXMyLmJhY2tlbmRDb25uZWN0b3Iuc2F2ZU1pc3NpbmcpIHtcbiAgICAgICAgICAgICAgX3RoaXMyLmJhY2tlbmRDb25uZWN0b3Iuc2F2ZU1pc3NpbmcobCwgbmFtZXNwYWNlLCBrLCB1cGRhdGVNaXNzaW5nID8gZmFsbGJhY2tWYWx1ZSA6IHJlc0Zvck1pc3NpbmcsIHVwZGF0ZU1pc3NpbmcsIG9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBfdGhpczIuZW1pdCgnbWlzc2luZ0tleScsIGwsIG5hbWVzcGFjZSwgaywgcmVzKTtcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zYXZlTWlzc2luZykge1xuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zYXZlTWlzc2luZ1BsdXJhbHMgJiYgbmVlZHNQbHVyYWxIYW5kbGluZykge1xuICAgICAgICAgICAgICBsbmdzLmZvckVhY2goZnVuY3Rpb24gKGxhbmd1YWdlKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMyLnBsdXJhbFJlc29sdmVyLmdldFN1ZmZpeGVzKGxhbmd1YWdlKS5mb3JFYWNoKGZ1bmN0aW9uIChzdWZmaXgpIHtcbiAgICAgICAgICAgICAgICAgIHNlbmQoW2xhbmd1YWdlXSwga2V5ICsgc3VmZml4LCBvcHRpb25zW1wiZGVmYXVsdFZhbHVlXCIuY29uY2F0KHN1ZmZpeCldIHx8IGRlZmF1bHRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgc2VuZChsbmdzLCBrZXksIGRlZmF1bHRWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmVzID0gdGhpcy5leHRlbmRUcmFuc2xhdGlvbihyZXMsIGtleXMsIG9wdGlvbnMsIHJlc29sdmVkLCBsYXN0S2V5KTtcbiAgICAgICAgaWYgKHVzZWRLZXkgJiYgcmVzID09PSBrZXkgJiYgdGhpcy5vcHRpb25zLmFwcGVuZE5hbWVzcGFjZVRvTWlzc2luZ0tleSkgcmVzID0gXCJcIi5jb25jYXQobmFtZXNwYWNlLCBcIjpcIikuY29uY2F0KGtleSk7XG4gICAgICAgIGlmICgodXNlZEtleSB8fCB1c2VkRGVmYXVsdCkgJiYgdGhpcy5vcHRpb25zLnBhcnNlTWlzc2luZ0tleUhhbmRsZXIpIHJlcyA9IHRoaXMub3B0aW9ucy5wYXJzZU1pc3NpbmdLZXlIYW5kbGVyKHJlcyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImV4dGVuZFRyYW5zbGF0aW9uXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGV4dGVuZFRyYW5zbGF0aW9uKHJlcywga2V5LCBvcHRpb25zLCByZXNvbHZlZCwgbGFzdEtleSkge1xuICAgICAgdmFyIF90aGlzMyA9IHRoaXM7XG5cbiAgICAgIGlmICh0aGlzLmkxOG5Gb3JtYXQgJiYgdGhpcy5pMThuRm9ybWF0LnBhcnNlKSB7XG4gICAgICAgIHJlcyA9IHRoaXMuaTE4bkZvcm1hdC5wYXJzZShyZXMsIG9wdGlvbnMsIHJlc29sdmVkLnVzZWRMbmcsIHJlc29sdmVkLnVzZWROUywgcmVzb2x2ZWQudXNlZEtleSwge1xuICAgICAgICAgIHJlc29sdmVkOiByZXNvbHZlZFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoIW9wdGlvbnMuc2tpcEludGVycG9sYXRpb24pIHtcbiAgICAgICAgaWYgKG9wdGlvbnMuaW50ZXJwb2xhdGlvbikgdGhpcy5pbnRlcnBvbGF0b3IuaW5pdChfb2JqZWN0U3ByZWFkKHt9LCBvcHRpb25zLCB7XG4gICAgICAgICAgaW50ZXJwb2xhdGlvbjogX29iamVjdFNwcmVhZCh7fSwgdGhpcy5vcHRpb25zLmludGVycG9sYXRpb24sIG9wdGlvbnMuaW50ZXJwb2xhdGlvbilcbiAgICAgICAgfSkpO1xuICAgICAgICB2YXIgc2tpcE9uVmFyaWFibGVzID0gb3B0aW9ucy5pbnRlcnBvbGF0aW9uICYmIG9wdGlvbnMuaW50ZXJwb2xhdGlvbi5za2lwT25WYXJpYWJsZXMgfHwgdGhpcy5vcHRpb25zLmludGVycG9sYXRpb24uc2tpcE9uVmFyaWFibGVzO1xuICAgICAgICB2YXIgbmVzdEJlZjtcblxuICAgICAgICBpZiAoc2tpcE9uVmFyaWFibGVzKSB7XG4gICAgICAgICAgdmFyIG5iID0gcmVzLm1hdGNoKHRoaXMuaW50ZXJwb2xhdG9yLm5lc3RpbmdSZWdleHApO1xuICAgICAgICAgIG5lc3RCZWYgPSBuYiAmJiBuYi5sZW5ndGg7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgZGF0YSA9IG9wdGlvbnMucmVwbGFjZSAmJiB0eXBlb2Ygb3B0aW9ucy5yZXBsYWNlICE9PSAnc3RyaW5nJyA/IG9wdGlvbnMucmVwbGFjZSA6IG9wdGlvbnM7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuaW50ZXJwb2xhdGlvbi5kZWZhdWx0VmFyaWFibGVzKSBkYXRhID0gX29iamVjdFNwcmVhZCh7fSwgdGhpcy5vcHRpb25zLmludGVycG9sYXRpb24uZGVmYXVsdFZhcmlhYmxlcywgZGF0YSk7XG4gICAgICAgIHJlcyA9IHRoaXMuaW50ZXJwb2xhdG9yLmludGVycG9sYXRlKHJlcywgZGF0YSwgb3B0aW9ucy5sbmcgfHwgdGhpcy5sYW5ndWFnZSwgb3B0aW9ucyk7XG5cbiAgICAgICAgaWYgKHNraXBPblZhcmlhYmxlcykge1xuICAgICAgICAgIHZhciBuYSA9IHJlcy5tYXRjaCh0aGlzLmludGVycG9sYXRvci5uZXN0aW5nUmVnZXhwKTtcbiAgICAgICAgICB2YXIgbmVzdEFmdCA9IG5hICYmIG5hLmxlbmd0aDtcbiAgICAgICAgICBpZiAobmVzdEJlZiA8IG5lc3RBZnQpIG9wdGlvbnMubmVzdCA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdGlvbnMubmVzdCAhPT0gZmFsc2UpIHJlcyA9IHRoaXMuaW50ZXJwb2xhdG9yLm5lc3QocmVzLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICAgICAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChsYXN0S2V5ICYmIGxhc3RLZXlbMF0gPT09IGFyZ3NbMF0gJiYgIW9wdGlvbnMuY29udGV4dCkge1xuICAgICAgICAgICAgX3RoaXMzLmxvZ2dlci53YXJuKFwiSXQgc2VlbXMgeW91IGFyZSBuZXN0aW5nIHJlY3Vyc2l2ZWx5IGtleTogXCIuY29uY2F0KGFyZ3NbMF0sIFwiIGluIGtleTogXCIpLmNvbmNhdChrZXlbMF0pKTtcblxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIF90aGlzMy50cmFuc2xhdGUuYXBwbHkoX3RoaXMzLCBhcmdzLmNvbmNhdChba2V5XSkpO1xuICAgICAgICB9LCBvcHRpb25zKTtcbiAgICAgICAgaWYgKG9wdGlvbnMuaW50ZXJwb2xhdGlvbikgdGhpcy5pbnRlcnBvbGF0b3IucmVzZXQoKTtcbiAgICAgIH1cblxuICAgICAgdmFyIHBvc3RQcm9jZXNzID0gb3B0aW9ucy5wb3N0UHJvY2VzcyB8fCB0aGlzLm9wdGlvbnMucG9zdFByb2Nlc3M7XG4gICAgICB2YXIgcG9zdFByb2Nlc3Nvck5hbWVzID0gdHlwZW9mIHBvc3RQcm9jZXNzID09PSAnc3RyaW5nJyA/IFtwb3N0UHJvY2Vzc10gOiBwb3N0UHJvY2VzcztcblxuICAgICAgaWYgKHJlcyAhPT0gdW5kZWZpbmVkICYmIHJlcyAhPT0gbnVsbCAmJiBwb3N0UHJvY2Vzc29yTmFtZXMgJiYgcG9zdFByb2Nlc3Nvck5hbWVzLmxlbmd0aCAmJiBvcHRpb25zLmFwcGx5UG9zdFByb2Nlc3NvciAhPT0gZmFsc2UpIHtcbiAgICAgICAgcmVzID0gcG9zdFByb2Nlc3Nvci5oYW5kbGUocG9zdFByb2Nlc3Nvck5hbWVzLCByZXMsIGtleSwgdGhpcy5vcHRpb25zICYmIHRoaXMub3B0aW9ucy5wb3N0UHJvY2Vzc1Bhc3NSZXNvbHZlZCA/IF9vYmplY3RTcHJlYWQoe1xuICAgICAgICAgIGkxOG5SZXNvbHZlZDogcmVzb2x2ZWRcbiAgICAgICAgfSwgb3B0aW9ucykgOiBvcHRpb25zLCB0aGlzKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVzb2x2ZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZXNvbHZlKGtleXMpIHtcbiAgICAgIHZhciBfdGhpczQgPSB0aGlzO1xuXG4gICAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG4gICAgICB2YXIgZm91bmQ7XG4gICAgICB2YXIgdXNlZEtleTtcbiAgICAgIHZhciBleGFjdFVzZWRLZXk7XG4gICAgICB2YXIgdXNlZExuZztcbiAgICAgIHZhciB1c2VkTlM7XG4gICAgICBpZiAodHlwZW9mIGtleXMgPT09ICdzdHJpbmcnKSBrZXlzID0gW2tleXNdO1xuICAgICAga2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChrKSB7XG4gICAgICAgIGlmIChfdGhpczQuaXNWYWxpZExvb2t1cChmb3VuZCkpIHJldHVybjtcblxuICAgICAgICB2YXIgZXh0cmFjdGVkID0gX3RoaXM0LmV4dHJhY3RGcm9tS2V5KGssIG9wdGlvbnMpO1xuXG4gICAgICAgIHZhciBrZXkgPSBleHRyYWN0ZWQua2V5O1xuICAgICAgICB1c2VkS2V5ID0ga2V5O1xuICAgICAgICB2YXIgbmFtZXNwYWNlcyA9IGV4dHJhY3RlZC5uYW1lc3BhY2VzO1xuICAgICAgICBpZiAoX3RoaXM0Lm9wdGlvbnMuZmFsbGJhY2tOUykgbmFtZXNwYWNlcyA9IG5hbWVzcGFjZXMuY29uY2F0KF90aGlzNC5vcHRpb25zLmZhbGxiYWNrTlMpO1xuICAgICAgICB2YXIgbmVlZHNQbHVyYWxIYW5kbGluZyA9IG9wdGlvbnMuY291bnQgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2Ygb3B0aW9ucy5jb3VudCAhPT0gJ3N0cmluZyc7XG4gICAgICAgIHZhciBuZWVkc0NvbnRleHRIYW5kbGluZyA9IG9wdGlvbnMuY29udGV4dCAhPT0gdW5kZWZpbmVkICYmICh0eXBlb2Ygb3B0aW9ucy5jb250ZXh0ID09PSAnc3RyaW5nJyB8fCB0eXBlb2Ygb3B0aW9ucy5jb250ZXh0ID09PSAnbnVtYmVyJykgJiYgb3B0aW9ucy5jb250ZXh0ICE9PSAnJztcbiAgICAgICAgdmFyIGNvZGVzID0gb3B0aW9ucy5sbmdzID8gb3B0aW9ucy5sbmdzIDogX3RoaXM0Lmxhbmd1YWdlVXRpbHMudG9SZXNvbHZlSGllcmFyY2h5KG9wdGlvbnMubG5nIHx8IF90aGlzNC5sYW5ndWFnZSwgb3B0aW9ucy5mYWxsYmFja0xuZyk7XG4gICAgICAgIG5hbWVzcGFjZXMuZm9yRWFjaChmdW5jdGlvbiAobnMpIHtcbiAgICAgICAgICBpZiAoX3RoaXM0LmlzVmFsaWRMb29rdXAoZm91bmQpKSByZXR1cm47XG4gICAgICAgICAgdXNlZE5TID0gbnM7XG5cbiAgICAgICAgICBpZiAoIWNoZWNrZWRMb2FkZWRGb3JbXCJcIi5jb25jYXQoY29kZXNbMF0sIFwiLVwiKS5jb25jYXQobnMpXSAmJiBfdGhpczQudXRpbHMgJiYgX3RoaXM0LnV0aWxzLmhhc0xvYWRlZE5hbWVzcGFjZSAmJiAhX3RoaXM0LnV0aWxzLmhhc0xvYWRlZE5hbWVzcGFjZSh1c2VkTlMpKSB7XG4gICAgICAgICAgICBjaGVja2VkTG9hZGVkRm9yW1wiXCIuY29uY2F0KGNvZGVzWzBdLCBcIi1cIikuY29uY2F0KG5zKV0gPSB0cnVlO1xuXG4gICAgICAgICAgICBfdGhpczQubG9nZ2VyLndhcm4oXCJrZXkgXFxcIlwiLmNvbmNhdCh1c2VkS2V5LCBcIlxcXCIgZm9yIGxhbmd1YWdlcyBcXFwiXCIpLmNvbmNhdChjb2Rlcy5qb2luKCcsICcpLCBcIlxcXCIgd29uJ3QgZ2V0IHJlc29sdmVkIGFzIG5hbWVzcGFjZSBcXFwiXCIpLmNvbmNhdCh1c2VkTlMsIFwiXFxcIiB3YXMgbm90IHlldCBsb2FkZWRcIiksICdUaGlzIG1lYW5zIHNvbWV0aGluZyBJUyBXUk9ORyBpbiB5b3VyIHNldHVwLiBZb3UgYWNjZXNzIHRoZSB0IGZ1bmN0aW9uIGJlZm9yZSBpMThuZXh0LmluaXQgLyBpMThuZXh0LmxvYWROYW1lc3BhY2UgLyBpMThuZXh0LmNoYW5nZUxhbmd1YWdlIHdhcyBkb25lLiBXYWl0IGZvciB0aGUgY2FsbGJhY2sgb3IgUHJvbWlzZSB0byByZXNvbHZlIGJlZm9yZSBhY2Nlc3NpbmcgaXQhISEnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb2Rlcy5mb3JFYWNoKGZ1bmN0aW9uIChjb2RlKSB7XG4gICAgICAgICAgICBpZiAoX3RoaXM0LmlzVmFsaWRMb29rdXAoZm91bmQpKSByZXR1cm47XG4gICAgICAgICAgICB1c2VkTG5nID0gY29kZTtcbiAgICAgICAgICAgIHZhciBmaW5hbEtleSA9IGtleTtcbiAgICAgICAgICAgIHZhciBmaW5hbEtleXMgPSBbZmluYWxLZXldO1xuXG4gICAgICAgICAgICBpZiAoX3RoaXM0LmkxOG5Gb3JtYXQgJiYgX3RoaXM0LmkxOG5Gb3JtYXQuYWRkTG9va3VwS2V5cykge1xuICAgICAgICAgICAgICBfdGhpczQuaTE4bkZvcm1hdC5hZGRMb29rdXBLZXlzKGZpbmFsS2V5cywga2V5LCBjb2RlLCBucywgb3B0aW9ucyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB2YXIgcGx1cmFsU3VmZml4O1xuICAgICAgICAgICAgICBpZiAobmVlZHNQbHVyYWxIYW5kbGluZykgcGx1cmFsU3VmZml4ID0gX3RoaXM0LnBsdXJhbFJlc29sdmVyLmdldFN1ZmZpeChjb2RlLCBvcHRpb25zLmNvdW50KTtcbiAgICAgICAgICAgICAgaWYgKG5lZWRzUGx1cmFsSGFuZGxpbmcgJiYgbmVlZHNDb250ZXh0SGFuZGxpbmcpIGZpbmFsS2V5cy5wdXNoKGZpbmFsS2V5ICsgcGx1cmFsU3VmZml4KTtcbiAgICAgICAgICAgICAgaWYgKG5lZWRzQ29udGV4dEhhbmRsaW5nKSBmaW5hbEtleXMucHVzaChmaW5hbEtleSArPSBcIlwiLmNvbmNhdChfdGhpczQub3B0aW9ucy5jb250ZXh0U2VwYXJhdG9yKS5jb25jYXQob3B0aW9ucy5jb250ZXh0KSk7XG4gICAgICAgICAgICAgIGlmIChuZWVkc1BsdXJhbEhhbmRsaW5nKSBmaW5hbEtleXMucHVzaChmaW5hbEtleSArPSBwbHVyYWxTdWZmaXgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgcG9zc2libGVLZXk7XG5cbiAgICAgICAgICAgIHdoaWxlIChwb3NzaWJsZUtleSA9IGZpbmFsS2V5cy5wb3AoKSkge1xuICAgICAgICAgICAgICBpZiAoIV90aGlzNC5pc1ZhbGlkTG9va3VwKGZvdW5kKSkge1xuICAgICAgICAgICAgICAgIGV4YWN0VXNlZEtleSA9IHBvc3NpYmxlS2V5O1xuICAgICAgICAgICAgICAgIGZvdW5kID0gX3RoaXM0LmdldFJlc291cmNlKGNvZGUsIG5zLCBwb3NzaWJsZUtleSwgb3B0aW9ucyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJlczogZm91bmQsXG4gICAgICAgIHVzZWRLZXk6IHVzZWRLZXksXG4gICAgICAgIGV4YWN0VXNlZEtleTogZXhhY3RVc2VkS2V5LFxuICAgICAgICB1c2VkTG5nOiB1c2VkTG5nLFxuICAgICAgICB1c2VkTlM6IHVzZWROU1xuICAgICAgfTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiaXNWYWxpZExvb2t1cFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBpc1ZhbGlkTG9va3VwKHJlcykge1xuICAgICAgcmV0dXJuIHJlcyAhPT0gdW5kZWZpbmVkICYmICEoIXRoaXMub3B0aW9ucy5yZXR1cm5OdWxsICYmIHJlcyA9PT0gbnVsbCkgJiYgISghdGhpcy5vcHRpb25zLnJldHVybkVtcHR5U3RyaW5nICYmIHJlcyA9PT0gJycpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRSZXNvdXJjZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRSZXNvdXJjZShjb2RlLCBucywga2V5KSB7XG4gICAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAzICYmIGFyZ3VtZW50c1szXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzNdIDoge307XG4gICAgICBpZiAodGhpcy5pMThuRm9ybWF0ICYmIHRoaXMuaTE4bkZvcm1hdC5nZXRSZXNvdXJjZSkgcmV0dXJuIHRoaXMuaTE4bkZvcm1hdC5nZXRSZXNvdXJjZShjb2RlLCBucywga2V5LCBvcHRpb25zKTtcbiAgICAgIHJldHVybiB0aGlzLnJlc291cmNlU3RvcmUuZ2V0UmVzb3VyY2UoY29kZSwgbnMsIGtleSwgb3B0aW9ucyk7XG4gICAgfVxuICB9XSwgW3tcbiAgICBrZXk6IFwiaGFzRGVmYXVsdFZhbHVlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGhhc0RlZmF1bHRWYWx1ZShvcHRpb25zKSB7XG4gICAgICB2YXIgcHJlZml4ID0gJ2RlZmF1bHRWYWx1ZSc7XG5cbiAgICAgIGZvciAodmFyIG9wdGlvbiBpbiBvcHRpb25zKSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob3B0aW9ucywgb3B0aW9uKSAmJiBwcmVmaXggPT09IG9wdGlvbi5zdWJzdHJpbmcoMCwgcHJlZml4Lmxlbmd0aCkgJiYgdW5kZWZpbmVkICE9PSBvcHRpb25zW29wdGlvbl0pIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIFRyYW5zbGF0b3I7XG59KEV2ZW50RW1pdHRlcik7XG5cbmZ1bmN0aW9uIGNhcGl0YWxpemUoc3RyaW5nKSB7XG4gIHJldHVybiBzdHJpbmcuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzdHJpbmcuc2xpY2UoMSk7XG59XG5cbnZhciBMYW5ndWFnZVV0aWwgPSBmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIExhbmd1YWdlVXRpbChvcHRpb25zKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIExhbmd1YWdlVXRpbCk7XG5cbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMud2hpdGVsaXN0ID0gdGhpcy5vcHRpb25zLnN1cHBvcnRlZExuZ3MgfHwgZmFsc2U7XG4gICAgdGhpcy5zdXBwb3J0ZWRMbmdzID0gdGhpcy5vcHRpb25zLnN1cHBvcnRlZExuZ3MgfHwgZmFsc2U7XG4gICAgdGhpcy5sb2dnZXIgPSBiYXNlTG9nZ2VyLmNyZWF0ZSgnbGFuZ3VhZ2VVdGlscycpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKExhbmd1YWdlVXRpbCwgW3tcbiAgICBrZXk6IFwiZ2V0U2NyaXB0UGFydEZyb21Db2RlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFNjcmlwdFBhcnRGcm9tQ29kZShjb2RlKSB7XG4gICAgICBpZiAoIWNvZGUgfHwgY29kZS5pbmRleE9mKCctJykgPCAwKSByZXR1cm4gbnVsbDtcbiAgICAgIHZhciBwID0gY29kZS5zcGxpdCgnLScpO1xuICAgICAgaWYgKHAubGVuZ3RoID09PSAyKSByZXR1cm4gbnVsbDtcbiAgICAgIHAucG9wKCk7XG4gICAgICBpZiAocFtwLmxlbmd0aCAtIDFdLnRvTG93ZXJDYXNlKCkgPT09ICd4JykgcmV0dXJuIG51bGw7XG4gICAgICByZXR1cm4gdGhpcy5mb3JtYXRMYW5ndWFnZUNvZGUocC5qb2luKCctJykpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRMYW5ndWFnZVBhcnRGcm9tQ29kZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRMYW5ndWFnZVBhcnRGcm9tQ29kZShjb2RlKSB7XG4gICAgICBpZiAoIWNvZGUgfHwgY29kZS5pbmRleE9mKCctJykgPCAwKSByZXR1cm4gY29kZTtcbiAgICAgIHZhciBwID0gY29kZS5zcGxpdCgnLScpO1xuICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0TGFuZ3VhZ2VDb2RlKHBbMF0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJmb3JtYXRMYW5ndWFnZUNvZGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZm9ybWF0TGFuZ3VhZ2VDb2RlKGNvZGUpIHtcbiAgICAgIGlmICh0eXBlb2YgY29kZSA9PT0gJ3N0cmluZycgJiYgY29kZS5pbmRleE9mKCctJykgPiAtMSkge1xuICAgICAgICB2YXIgc3BlY2lhbENhc2VzID0gWydoYW5zJywgJ2hhbnQnLCAnbGF0bicsICdjeXJsJywgJ2NhbnMnLCAnbW9uZycsICdhcmFiJ107XG4gICAgICAgIHZhciBwID0gY29kZS5zcGxpdCgnLScpO1xuXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMubG93ZXJDYXNlTG5nKSB7XG4gICAgICAgICAgcCA9IHAubWFwKGZ1bmN0aW9uIChwYXJ0KSB7XG4gICAgICAgICAgICByZXR1cm4gcGFydC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHAubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgcFswXSA9IHBbMF0udG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICBwWzFdID0gcFsxXS50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgIGlmIChzcGVjaWFsQ2FzZXMuaW5kZXhPZihwWzFdLnRvTG93ZXJDYXNlKCkpID4gLTEpIHBbMV0gPSBjYXBpdGFsaXplKHBbMV0udG9Mb3dlckNhc2UoKSk7XG4gICAgICAgIH0gZWxzZSBpZiAocC5sZW5ndGggPT09IDMpIHtcbiAgICAgICAgICBwWzBdID0gcFswXS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgIGlmIChwWzFdLmxlbmd0aCA9PT0gMikgcFsxXSA9IHBbMV0udG9VcHBlckNhc2UoKTtcbiAgICAgICAgICBpZiAocFswXSAhPT0gJ3NnbicgJiYgcFsyXS5sZW5ndGggPT09IDIpIHBbMl0gPSBwWzJdLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgaWYgKHNwZWNpYWxDYXNlcy5pbmRleE9mKHBbMV0udG9Mb3dlckNhc2UoKSkgPiAtMSkgcFsxXSA9IGNhcGl0YWxpemUocFsxXS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgICBpZiAoc3BlY2lhbENhc2VzLmluZGV4T2YocFsyXS50b0xvd2VyQ2FzZSgpKSA+IC0xKSBwWzJdID0gY2FwaXRhbGl6ZShwWzJdLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHAuam9pbignLScpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmNsZWFuQ29kZSB8fCB0aGlzLm9wdGlvbnMubG93ZXJDYXNlTG5nID8gY29kZS50b0xvd2VyQ2FzZSgpIDogY29kZTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiaXNXaGl0ZWxpc3RlZFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBpc1doaXRlbGlzdGVkKGNvZGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlcHJlY2F0ZSgnbGFuZ3VhZ2VVdGlscy5pc1doaXRlbGlzdGVkJywgJ2Z1bmN0aW9uIFwiaXNXaGl0ZWxpc3RlZFwiIHdpbGwgYmUgcmVuYW1lZCB0byBcImlzU3VwcG9ydGVkQ29kZVwiIGluIHRoZSBuZXh0IG1ham9yIC0gcGxlYXNlIG1ha2Ugc3VyZSB0byByZW5hbWUgaXRcXCdzIHVzYWdlIGFzYXAuJyk7XG4gICAgICByZXR1cm4gdGhpcy5pc1N1cHBvcnRlZENvZGUoY29kZSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImlzU3VwcG9ydGVkQ29kZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBpc1N1cHBvcnRlZENvZGUoY29kZSkge1xuICAgICAgaWYgKHRoaXMub3B0aW9ucy5sb2FkID09PSAnbGFuZ3VhZ2VPbmx5JyB8fCB0aGlzLm9wdGlvbnMubm9uRXhwbGljaXRTdXBwb3J0ZWRMbmdzKSB7XG4gICAgICAgIGNvZGUgPSB0aGlzLmdldExhbmd1YWdlUGFydEZyb21Db2RlKGNvZGUpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gIXRoaXMuc3VwcG9ydGVkTG5ncyB8fCAhdGhpcy5zdXBwb3J0ZWRMbmdzLmxlbmd0aCB8fCB0aGlzLnN1cHBvcnRlZExuZ3MuaW5kZXhPZihjb2RlKSA+IC0xO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRCZXN0TWF0Y2hGcm9tQ29kZXNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0QmVzdE1hdGNoRnJvbUNvZGVzKGNvZGVzKSB7XG4gICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICBpZiAoIWNvZGVzKSByZXR1cm4gbnVsbDtcbiAgICAgIHZhciBmb3VuZDtcbiAgICAgIGNvZGVzLmZvckVhY2goZnVuY3Rpb24gKGNvZGUpIHtcbiAgICAgICAgaWYgKGZvdW5kKSByZXR1cm47XG5cbiAgICAgICAgdmFyIGNsZWFuZWRMbmcgPSBfdGhpcy5mb3JtYXRMYW5ndWFnZUNvZGUoY29kZSk7XG5cbiAgICAgICAgaWYgKCFfdGhpcy5vcHRpb25zLnN1cHBvcnRlZExuZ3MgfHwgX3RoaXMuaXNTdXBwb3J0ZWRDb2RlKGNsZWFuZWRMbmcpKSBmb3VuZCA9IGNsZWFuZWRMbmc7XG4gICAgICB9KTtcblxuICAgICAgaWYgKCFmb3VuZCAmJiB0aGlzLm9wdGlvbnMuc3VwcG9ydGVkTG5ncykge1xuICAgICAgICBjb2Rlcy5mb3JFYWNoKGZ1bmN0aW9uIChjb2RlKSB7XG4gICAgICAgICAgaWYgKGZvdW5kKSByZXR1cm47XG5cbiAgICAgICAgICB2YXIgbG5nT25seSA9IF90aGlzLmdldExhbmd1YWdlUGFydEZyb21Db2RlKGNvZGUpO1xuXG4gICAgICAgICAgaWYgKF90aGlzLmlzU3VwcG9ydGVkQ29kZShsbmdPbmx5KSkgcmV0dXJuIGZvdW5kID0gbG5nT25seTtcbiAgICAgICAgICBmb3VuZCA9IF90aGlzLm9wdGlvbnMuc3VwcG9ydGVkTG5ncy5maW5kKGZ1bmN0aW9uIChzdXBwb3J0ZWRMbmcpIHtcbiAgICAgICAgICAgIGlmIChzdXBwb3J0ZWRMbmcuaW5kZXhPZihsbmdPbmx5KSA9PT0gMCkgcmV0dXJuIHN1cHBvcnRlZExuZztcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghZm91bmQpIGZvdW5kID0gdGhpcy5nZXRGYWxsYmFja0NvZGVzKHRoaXMub3B0aW9ucy5mYWxsYmFja0xuZylbMF07XG4gICAgICByZXR1cm4gZm91bmQ7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldEZhbGxiYWNrQ29kZXNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0RmFsbGJhY2tDb2RlcyhmYWxsYmFja3MsIGNvZGUpIHtcbiAgICAgIGlmICghZmFsbGJhY2tzKSByZXR1cm4gW107XG4gICAgICBpZiAodHlwZW9mIGZhbGxiYWNrcyA9PT0gJ2Z1bmN0aW9uJykgZmFsbGJhY2tzID0gZmFsbGJhY2tzKGNvZGUpO1xuICAgICAgaWYgKHR5cGVvZiBmYWxsYmFja3MgPT09ICdzdHJpbmcnKSBmYWxsYmFja3MgPSBbZmFsbGJhY2tzXTtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmFwcGx5KGZhbGxiYWNrcykgPT09ICdbb2JqZWN0IEFycmF5XScpIHJldHVybiBmYWxsYmFja3M7XG4gICAgICBpZiAoIWNvZGUpIHJldHVybiBmYWxsYmFja3NbXCJkZWZhdWx0XCJdIHx8IFtdO1xuICAgICAgdmFyIGZvdW5kID0gZmFsbGJhY2tzW2NvZGVdO1xuICAgICAgaWYgKCFmb3VuZCkgZm91bmQgPSBmYWxsYmFja3NbdGhpcy5nZXRTY3JpcHRQYXJ0RnJvbUNvZGUoY29kZSldO1xuICAgICAgaWYgKCFmb3VuZCkgZm91bmQgPSBmYWxsYmFja3NbdGhpcy5mb3JtYXRMYW5ndWFnZUNvZGUoY29kZSldO1xuICAgICAgaWYgKCFmb3VuZCkgZm91bmQgPSBmYWxsYmFja3NbdGhpcy5nZXRMYW5ndWFnZVBhcnRGcm9tQ29kZShjb2RlKV07XG4gICAgICBpZiAoIWZvdW5kKSBmb3VuZCA9IGZhbGxiYWNrc1tcImRlZmF1bHRcIl07XG4gICAgICByZXR1cm4gZm91bmQgfHwgW107XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInRvUmVzb2x2ZUhpZXJhcmNoeVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiB0b1Jlc29sdmVIaWVyYXJjaHkoY29kZSwgZmFsbGJhY2tDb2RlKSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgdmFyIGZhbGxiYWNrQ29kZXMgPSB0aGlzLmdldEZhbGxiYWNrQ29kZXMoZmFsbGJhY2tDb2RlIHx8IHRoaXMub3B0aW9ucy5mYWxsYmFja0xuZyB8fCBbXSwgY29kZSk7XG4gICAgICB2YXIgY29kZXMgPSBbXTtcblxuICAgICAgdmFyIGFkZENvZGUgPSBmdW5jdGlvbiBhZGRDb2RlKGMpIHtcbiAgICAgICAgaWYgKCFjKSByZXR1cm47XG5cbiAgICAgICAgaWYgKF90aGlzMi5pc1N1cHBvcnRlZENvZGUoYykpIHtcbiAgICAgICAgICBjb2Rlcy5wdXNoKGMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIF90aGlzMi5sb2dnZXIud2FybihcInJlamVjdGluZyBsYW5ndWFnZSBjb2RlIG5vdCBmb3VuZCBpbiBzdXBwb3J0ZWRMbmdzOiBcIi5jb25jYXQoYykpO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBpZiAodHlwZW9mIGNvZGUgPT09ICdzdHJpbmcnICYmIGNvZGUuaW5kZXhPZignLScpID4gLTEpIHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5sb2FkICE9PSAnbGFuZ3VhZ2VPbmx5JykgYWRkQ29kZSh0aGlzLmZvcm1hdExhbmd1YWdlQ29kZShjb2RlKSk7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMubG9hZCAhPT0gJ2xhbmd1YWdlT25seScgJiYgdGhpcy5vcHRpb25zLmxvYWQgIT09ICdjdXJyZW50T25seScpIGFkZENvZGUodGhpcy5nZXRTY3JpcHRQYXJ0RnJvbUNvZGUoY29kZSkpO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmxvYWQgIT09ICdjdXJyZW50T25seScpIGFkZENvZGUodGhpcy5nZXRMYW5ndWFnZVBhcnRGcm9tQ29kZShjb2RlKSk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBjb2RlID09PSAnc3RyaW5nJykge1xuICAgICAgICBhZGRDb2RlKHRoaXMuZm9ybWF0TGFuZ3VhZ2VDb2RlKGNvZGUpKTtcbiAgICAgIH1cblxuICAgICAgZmFsbGJhY2tDb2Rlcy5mb3JFYWNoKGZ1bmN0aW9uIChmYykge1xuICAgICAgICBpZiAoY29kZXMuaW5kZXhPZihmYykgPCAwKSBhZGRDb2RlKF90aGlzMi5mb3JtYXRMYW5ndWFnZUNvZGUoZmMpKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGNvZGVzO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBMYW5ndWFnZVV0aWw7XG59KCk7XG5cbnZhciBzZXRzID0gW3tcbiAgbG5nczogWydhY2gnLCAnYWsnLCAnYW0nLCAnYXJuJywgJ2JyJywgJ2ZpbCcsICdndW4nLCAnbG4nLCAnbWZlJywgJ21nJywgJ21pJywgJ29jJywgJ3B0JywgJ3B0LUJSJywgJ3RnJywgJ3RsJywgJ3RpJywgJ3RyJywgJ3V6JywgJ3dhJ10sXG4gIG5yOiBbMSwgMl0sXG4gIGZjOiAxXG59LCB7XG4gIGxuZ3M6IFsnYWYnLCAnYW4nLCAnYXN0JywgJ2F6JywgJ2JnJywgJ2JuJywgJ2NhJywgJ2RhJywgJ2RlJywgJ2RldicsICdlbCcsICdlbicsICdlbycsICdlcycsICdldCcsICdldScsICdmaScsICdmbycsICdmdXInLCAnZnknLCAnZ2wnLCAnZ3UnLCAnaGEnLCAnaGknLCAnaHUnLCAnaHknLCAnaWEnLCAnaXQnLCAna2snLCAna24nLCAna3UnLCAnbGInLCAnbWFpJywgJ21sJywgJ21uJywgJ21yJywgJ25haCcsICduYXAnLCAnbmInLCAnbmUnLCAnbmwnLCAnbm4nLCAnbm8nLCAnbnNvJywgJ3BhJywgJ3BhcCcsICdwbXMnLCAncHMnLCAncHQtUFQnLCAncm0nLCAnc2NvJywgJ3NlJywgJ3NpJywgJ3NvJywgJ3NvbicsICdzcScsICdzdicsICdzdycsICd0YScsICd0ZScsICd0aycsICd1cicsICd5byddLFxuICBucjogWzEsIDJdLFxuICBmYzogMlxufSwge1xuICBsbmdzOiBbJ2F5JywgJ2JvJywgJ2NnZycsICdmYScsICdodCcsICdpZCcsICdqYScsICdqYm8nLCAna2EnLCAna20nLCAna28nLCAna3knLCAnbG8nLCAnbXMnLCAnc2FoJywgJ3N1JywgJ3RoJywgJ3R0JywgJ3VnJywgJ3ZpJywgJ3dvJywgJ3poJ10sXG4gIG5yOiBbMV0sXG4gIGZjOiAzXG59LCB7XG4gIGxuZ3M6IFsnYmUnLCAnYnMnLCAnY25yJywgJ2R6JywgJ2hyJywgJ3J1JywgJ3NyJywgJ3VrJ10sXG4gIG5yOiBbMSwgMiwgNV0sXG4gIGZjOiA0XG59LCB7XG4gIGxuZ3M6IFsnYXInXSxcbiAgbnI6IFswLCAxLCAyLCAzLCAxMSwgMTAwXSxcbiAgZmM6IDVcbn0sIHtcbiAgbG5nczogWydjcycsICdzayddLFxuICBucjogWzEsIDIsIDVdLFxuICBmYzogNlxufSwge1xuICBsbmdzOiBbJ2NzYicsICdwbCddLFxuICBucjogWzEsIDIsIDVdLFxuICBmYzogN1xufSwge1xuICBsbmdzOiBbJ2N5J10sXG4gIG5yOiBbMSwgMiwgMywgOF0sXG4gIGZjOiA4XG59LCB7XG4gIGxuZ3M6IFsnZnInXSxcbiAgbnI6IFsxLCAyXSxcbiAgZmM6IDlcbn0sIHtcbiAgbG5nczogWydnYSddLFxuICBucjogWzEsIDIsIDMsIDcsIDExXSxcbiAgZmM6IDEwXG59LCB7XG4gIGxuZ3M6IFsnZ2QnXSxcbiAgbnI6IFsxLCAyLCAzLCAyMF0sXG4gIGZjOiAxMVxufSwge1xuICBsbmdzOiBbJ2lzJ10sXG4gIG5yOiBbMSwgMl0sXG4gIGZjOiAxMlxufSwge1xuICBsbmdzOiBbJ2p2J10sXG4gIG5yOiBbMCwgMV0sXG4gIGZjOiAxM1xufSwge1xuICBsbmdzOiBbJ2t3J10sXG4gIG5yOiBbMSwgMiwgMywgNF0sXG4gIGZjOiAxNFxufSwge1xuICBsbmdzOiBbJ2x0J10sXG4gIG5yOiBbMSwgMiwgMTBdLFxuICBmYzogMTVcbn0sIHtcbiAgbG5nczogWydsdiddLFxuICBucjogWzEsIDIsIDBdLFxuICBmYzogMTZcbn0sIHtcbiAgbG5nczogWydtayddLFxuICBucjogWzEsIDJdLFxuICBmYzogMTdcbn0sIHtcbiAgbG5nczogWydtbmsnXSxcbiAgbnI6IFswLCAxLCAyXSxcbiAgZmM6IDE4XG59LCB7XG4gIGxuZ3M6IFsnbXQnXSxcbiAgbnI6IFsxLCAyLCAxMSwgMjBdLFxuICBmYzogMTlcbn0sIHtcbiAgbG5nczogWydvciddLFxuICBucjogWzIsIDFdLFxuICBmYzogMlxufSwge1xuICBsbmdzOiBbJ3JvJ10sXG4gIG5yOiBbMSwgMiwgMjBdLFxuICBmYzogMjBcbn0sIHtcbiAgbG5nczogWydzbCddLFxuICBucjogWzUsIDEsIDIsIDNdLFxuICBmYzogMjFcbn0sIHtcbiAgbG5nczogWydoZScsICdpdyddLFxuICBucjogWzEsIDIsIDIwLCAyMV0sXG4gIGZjOiAyMlxufV07XG52YXIgX3J1bGVzUGx1cmFsc1R5cGVzID0ge1xuICAxOiBmdW5jdGlvbiBfKG4pIHtcbiAgICByZXR1cm4gTnVtYmVyKG4gPiAxKTtcbiAgfSxcbiAgMjogZnVuY3Rpb24gXyhuKSB7XG4gICAgcmV0dXJuIE51bWJlcihuICE9IDEpO1xuICB9LFxuICAzOiBmdW5jdGlvbiBfKG4pIHtcbiAgICByZXR1cm4gMDtcbiAgfSxcbiAgNDogZnVuY3Rpb24gXyhuKSB7XG4gICAgcmV0dXJuIE51bWJlcihuICUgMTAgPT0gMSAmJiBuICUgMTAwICE9IDExID8gMCA6IG4gJSAxMCA+PSAyICYmIG4gJSAxMCA8PSA0ICYmIChuICUgMTAwIDwgMTAgfHwgbiAlIDEwMCA+PSAyMCkgPyAxIDogMik7XG4gIH0sXG4gIDU6IGZ1bmN0aW9uIF8obikge1xuICAgIHJldHVybiBOdW1iZXIobiA9PSAwID8gMCA6IG4gPT0gMSA/IDEgOiBuID09IDIgPyAyIDogbiAlIDEwMCA+PSAzICYmIG4gJSAxMDAgPD0gMTAgPyAzIDogbiAlIDEwMCA+PSAxMSA/IDQgOiA1KTtcbiAgfSxcbiAgNjogZnVuY3Rpb24gXyhuKSB7XG4gICAgcmV0dXJuIE51bWJlcihuID09IDEgPyAwIDogbiA+PSAyICYmIG4gPD0gNCA/IDEgOiAyKTtcbiAgfSxcbiAgNzogZnVuY3Rpb24gXyhuKSB7XG4gICAgcmV0dXJuIE51bWJlcihuID09IDEgPyAwIDogbiAlIDEwID49IDIgJiYgbiAlIDEwIDw9IDQgJiYgKG4gJSAxMDAgPCAxMCB8fCBuICUgMTAwID49IDIwKSA/IDEgOiAyKTtcbiAgfSxcbiAgODogZnVuY3Rpb24gXyhuKSB7XG4gICAgcmV0dXJuIE51bWJlcihuID09IDEgPyAwIDogbiA9PSAyID8gMSA6IG4gIT0gOCAmJiBuICE9IDExID8gMiA6IDMpO1xuICB9LFxuICA5OiBmdW5jdGlvbiBfKG4pIHtcbiAgICByZXR1cm4gTnVtYmVyKG4gPj0gMik7XG4gIH0sXG4gIDEwOiBmdW5jdGlvbiBfKG4pIHtcbiAgICByZXR1cm4gTnVtYmVyKG4gPT0gMSA/IDAgOiBuID09IDIgPyAxIDogbiA8IDcgPyAyIDogbiA8IDExID8gMyA6IDQpO1xuICB9LFxuICAxMTogZnVuY3Rpb24gXyhuKSB7XG4gICAgcmV0dXJuIE51bWJlcihuID09IDEgfHwgbiA9PSAxMSA/IDAgOiBuID09IDIgfHwgbiA9PSAxMiA/IDEgOiBuID4gMiAmJiBuIDwgMjAgPyAyIDogMyk7XG4gIH0sXG4gIDEyOiBmdW5jdGlvbiBfKG4pIHtcbiAgICByZXR1cm4gTnVtYmVyKG4gJSAxMCAhPSAxIHx8IG4gJSAxMDAgPT0gMTEpO1xuICB9LFxuICAxMzogZnVuY3Rpb24gXyhuKSB7XG4gICAgcmV0dXJuIE51bWJlcihuICE9PSAwKTtcbiAgfSxcbiAgMTQ6IGZ1bmN0aW9uIF8obikge1xuICAgIHJldHVybiBOdW1iZXIobiA9PSAxID8gMCA6IG4gPT0gMiA/IDEgOiBuID09IDMgPyAyIDogMyk7XG4gIH0sXG4gIDE1OiBmdW5jdGlvbiBfKG4pIHtcbiAgICByZXR1cm4gTnVtYmVyKG4gJSAxMCA9PSAxICYmIG4gJSAxMDAgIT0gMTEgPyAwIDogbiAlIDEwID49IDIgJiYgKG4gJSAxMDAgPCAxMCB8fCBuICUgMTAwID49IDIwKSA/IDEgOiAyKTtcbiAgfSxcbiAgMTY6IGZ1bmN0aW9uIF8obikge1xuICAgIHJldHVybiBOdW1iZXIobiAlIDEwID09IDEgJiYgbiAlIDEwMCAhPSAxMSA/IDAgOiBuICE9PSAwID8gMSA6IDIpO1xuICB9LFxuICAxNzogZnVuY3Rpb24gXyhuKSB7XG4gICAgcmV0dXJuIE51bWJlcihuID09IDEgfHwgbiAlIDEwID09IDEgJiYgbiAlIDEwMCAhPSAxMSA/IDAgOiAxKTtcbiAgfSxcbiAgMTg6IGZ1bmN0aW9uIF8obikge1xuICAgIHJldHVybiBOdW1iZXIobiA9PSAwID8gMCA6IG4gPT0gMSA/IDEgOiAyKTtcbiAgfSxcbiAgMTk6IGZ1bmN0aW9uIF8obikge1xuICAgIHJldHVybiBOdW1iZXIobiA9PSAxID8gMCA6IG4gPT0gMCB8fCBuICUgMTAwID4gMSAmJiBuICUgMTAwIDwgMTEgPyAxIDogbiAlIDEwMCA+IDEwICYmIG4gJSAxMDAgPCAyMCA/IDIgOiAzKTtcbiAgfSxcbiAgMjA6IGZ1bmN0aW9uIF8obikge1xuICAgIHJldHVybiBOdW1iZXIobiA9PSAxID8gMCA6IG4gPT0gMCB8fCBuICUgMTAwID4gMCAmJiBuICUgMTAwIDwgMjAgPyAxIDogMik7XG4gIH0sXG4gIDIxOiBmdW5jdGlvbiBfKG4pIHtcbiAgICByZXR1cm4gTnVtYmVyKG4gJSAxMDAgPT0gMSA/IDEgOiBuICUgMTAwID09IDIgPyAyIDogbiAlIDEwMCA9PSAzIHx8IG4gJSAxMDAgPT0gNCA/IDMgOiAwKTtcbiAgfSxcbiAgMjI6IGZ1bmN0aW9uIF8obikge1xuICAgIHJldHVybiBOdW1iZXIobiA9PSAxID8gMCA6IG4gPT0gMiA/IDEgOiAobiA8IDAgfHwgbiA+IDEwKSAmJiBuICUgMTAgPT0gMCA/IDIgOiAzKTtcbiAgfVxufTtcblxuZnVuY3Rpb24gY3JlYXRlUnVsZXMoKSB7XG4gIHZhciBydWxlcyA9IHt9O1xuICBzZXRzLmZvckVhY2goZnVuY3Rpb24gKHNldCkge1xuICAgIHNldC5sbmdzLmZvckVhY2goZnVuY3Rpb24gKGwpIHtcbiAgICAgIHJ1bGVzW2xdID0ge1xuICAgICAgICBudW1iZXJzOiBzZXQubnIsXG4gICAgICAgIHBsdXJhbHM6IF9ydWxlc1BsdXJhbHNUeXBlc1tzZXQuZmNdXG4gICAgICB9O1xuICAgIH0pO1xuICB9KTtcbiAgcmV0dXJuIHJ1bGVzO1xufVxuXG52YXIgUGx1cmFsUmVzb2x2ZXIgPSBmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIFBsdXJhbFJlc29sdmVyKGxhbmd1YWdlVXRpbHMpIHtcbiAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUGx1cmFsUmVzb2x2ZXIpO1xuXG4gICAgdGhpcy5sYW5ndWFnZVV0aWxzID0gbGFuZ3VhZ2VVdGlscztcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMubG9nZ2VyID0gYmFzZUxvZ2dlci5jcmVhdGUoJ3BsdXJhbFJlc29sdmVyJyk7XG4gICAgdGhpcy5ydWxlcyA9IGNyZWF0ZVJ1bGVzKCk7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoUGx1cmFsUmVzb2x2ZXIsIFt7XG4gICAga2V5OiBcImFkZFJ1bGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gYWRkUnVsZShsbmcsIG9iaikge1xuICAgICAgdGhpcy5ydWxlc1tsbmddID0gb2JqO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRSdWxlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFJ1bGUoY29kZSkge1xuICAgICAgcmV0dXJuIHRoaXMucnVsZXNbY29kZV0gfHwgdGhpcy5ydWxlc1t0aGlzLmxhbmd1YWdlVXRpbHMuZ2V0TGFuZ3VhZ2VQYXJ0RnJvbUNvZGUoY29kZSldO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJuZWVkc1BsdXJhbFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBuZWVkc1BsdXJhbChjb2RlKSB7XG4gICAgICB2YXIgcnVsZSA9IHRoaXMuZ2V0UnVsZShjb2RlKTtcbiAgICAgIHJldHVybiBydWxlICYmIHJ1bGUubnVtYmVycy5sZW5ndGggPiAxO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRQbHVyYWxGb3Jtc09mS2V5XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFBsdXJhbEZvcm1zT2ZLZXkoY29kZSwga2V5KSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRTdWZmaXhlcyhjb2RlKS5tYXAoZnVuY3Rpb24gKHN1ZmZpeCkge1xuICAgICAgICByZXR1cm4ga2V5ICsgc3VmZml4O1xuICAgICAgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldFN1ZmZpeGVzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFN1ZmZpeGVzKGNvZGUpIHtcbiAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgIHZhciBydWxlID0gdGhpcy5nZXRSdWxlKGNvZGUpO1xuXG4gICAgICBpZiAoIXJ1bGUpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcnVsZS5udW1iZXJzLm1hcChmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgIHJldHVybiBfdGhpcy5nZXRTdWZmaXgoY29kZSwgbnVtYmVyKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRTdWZmaXhcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0U3VmZml4KGNvZGUsIGNvdW50KSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgdmFyIHJ1bGUgPSB0aGlzLmdldFJ1bGUoY29kZSk7XG5cbiAgICAgIGlmIChydWxlKSB7XG4gICAgICAgIHZhciBpZHggPSBydWxlLm5vQWJzID8gcnVsZS5wbHVyYWxzKGNvdW50KSA6IHJ1bGUucGx1cmFscyhNYXRoLmFicyhjb3VudCkpO1xuICAgICAgICB2YXIgc3VmZml4ID0gcnVsZS5udW1iZXJzW2lkeF07XG5cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zaW1wbGlmeVBsdXJhbFN1ZmZpeCAmJiBydWxlLm51bWJlcnMubGVuZ3RoID09PSAyICYmIHJ1bGUubnVtYmVyc1swXSA9PT0gMSkge1xuICAgICAgICAgIGlmIChzdWZmaXggPT09IDIpIHtcbiAgICAgICAgICAgIHN1ZmZpeCA9ICdwbHVyYWwnO1xuICAgICAgICAgIH0gZWxzZSBpZiAoc3VmZml4ID09PSAxKSB7XG4gICAgICAgICAgICBzdWZmaXggPSAnJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgcmV0dXJuU3VmZml4ID0gZnVuY3Rpb24gcmV0dXJuU3VmZml4KCkge1xuICAgICAgICAgIHJldHVybiBfdGhpczIub3B0aW9ucy5wcmVwZW5kICYmIHN1ZmZpeC50b1N0cmluZygpID8gX3RoaXMyLm9wdGlvbnMucHJlcGVuZCArIHN1ZmZpeC50b1N0cmluZygpIDogc3VmZml4LnRvU3RyaW5nKCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5jb21wYXRpYmlsaXR5SlNPTiA9PT0gJ3YxJykge1xuICAgICAgICAgIGlmIChzdWZmaXggPT09IDEpIHJldHVybiAnJztcbiAgICAgICAgICBpZiAodHlwZW9mIHN1ZmZpeCA9PT0gJ251bWJlcicpIHJldHVybiBcIl9wbHVyYWxfXCIuY29uY2F0KHN1ZmZpeC50b1N0cmluZygpKTtcbiAgICAgICAgICByZXR1cm4gcmV0dXJuU3VmZml4KCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5vcHRpb25zLmNvbXBhdGliaWxpdHlKU09OID09PSAndjInKSB7XG4gICAgICAgICAgcmV0dXJuIHJldHVyblN1ZmZpeCgpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9ucy5zaW1wbGlmeVBsdXJhbFN1ZmZpeCAmJiBydWxlLm51bWJlcnMubGVuZ3RoID09PSAyICYmIHJ1bGUubnVtYmVyc1swXSA9PT0gMSkge1xuICAgICAgICAgIHJldHVybiByZXR1cm5TdWZmaXgoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMucHJlcGVuZCAmJiBpZHgudG9TdHJpbmcoKSA/IHRoaXMub3B0aW9ucy5wcmVwZW5kICsgaWR4LnRvU3RyaW5nKCkgOiBpZHgudG9TdHJpbmcoKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5sb2dnZXIud2FybihcIm5vIHBsdXJhbCBydWxlIGZvdW5kIGZvcjogXCIuY29uY2F0KGNvZGUpKTtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gUGx1cmFsUmVzb2x2ZXI7XG59KCk7XG5cbnZhciBJbnRlcnBvbGF0b3IgPSBmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIEludGVycG9sYXRvcigpIHtcbiAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge307XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSW50ZXJwb2xhdG9yKTtcblxuICAgIHRoaXMubG9nZ2VyID0gYmFzZUxvZ2dlci5jcmVhdGUoJ2ludGVycG9sYXRvcicpO1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG5cbiAgICB0aGlzLmZvcm1hdCA9IG9wdGlvbnMuaW50ZXJwb2xhdGlvbiAmJiBvcHRpb25zLmludGVycG9sYXRpb24uZm9ybWF0IHx8IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH07XG5cbiAgICB0aGlzLmluaXQob3B0aW9ucyk7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoSW50ZXJwb2xhdG9yLCBbe1xuICAgIGtleTogXCJpbml0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGluaXQoKSB7XG4gICAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge307XG4gICAgICBpZiAoIW9wdGlvbnMuaW50ZXJwb2xhdGlvbikgb3B0aW9ucy5pbnRlcnBvbGF0aW9uID0ge1xuICAgICAgICBlc2NhcGVWYWx1ZTogdHJ1ZVxuICAgICAgfTtcbiAgICAgIHZhciBpT3B0cyA9IG9wdGlvbnMuaW50ZXJwb2xhdGlvbjtcbiAgICAgIHRoaXMuZXNjYXBlID0gaU9wdHMuZXNjYXBlICE9PSB1bmRlZmluZWQgPyBpT3B0cy5lc2NhcGUgOiBlc2NhcGU7XG4gICAgICB0aGlzLmVzY2FwZVZhbHVlID0gaU9wdHMuZXNjYXBlVmFsdWUgIT09IHVuZGVmaW5lZCA/IGlPcHRzLmVzY2FwZVZhbHVlIDogdHJ1ZTtcbiAgICAgIHRoaXMudXNlUmF3VmFsdWVUb0VzY2FwZSA9IGlPcHRzLnVzZVJhd1ZhbHVlVG9Fc2NhcGUgIT09IHVuZGVmaW5lZCA/IGlPcHRzLnVzZVJhd1ZhbHVlVG9Fc2NhcGUgOiBmYWxzZTtcbiAgICAgIHRoaXMucHJlZml4ID0gaU9wdHMucHJlZml4ID8gcmVnZXhFc2NhcGUoaU9wdHMucHJlZml4KSA6IGlPcHRzLnByZWZpeEVzY2FwZWQgfHwgJ3t7JztcbiAgICAgIHRoaXMuc3VmZml4ID0gaU9wdHMuc3VmZml4ID8gcmVnZXhFc2NhcGUoaU9wdHMuc3VmZml4KSA6IGlPcHRzLnN1ZmZpeEVzY2FwZWQgfHwgJ319JztcbiAgICAgIHRoaXMuZm9ybWF0U2VwYXJhdG9yID0gaU9wdHMuZm9ybWF0U2VwYXJhdG9yID8gaU9wdHMuZm9ybWF0U2VwYXJhdG9yIDogaU9wdHMuZm9ybWF0U2VwYXJhdG9yIHx8ICcsJztcbiAgICAgIHRoaXMudW5lc2NhcGVQcmVmaXggPSBpT3B0cy51bmVzY2FwZVN1ZmZpeCA/ICcnIDogaU9wdHMudW5lc2NhcGVQcmVmaXggfHwgJy0nO1xuICAgICAgdGhpcy51bmVzY2FwZVN1ZmZpeCA9IHRoaXMudW5lc2NhcGVQcmVmaXggPyAnJyA6IGlPcHRzLnVuZXNjYXBlU3VmZml4IHx8ICcnO1xuICAgICAgdGhpcy5uZXN0aW5nUHJlZml4ID0gaU9wdHMubmVzdGluZ1ByZWZpeCA/IHJlZ2V4RXNjYXBlKGlPcHRzLm5lc3RpbmdQcmVmaXgpIDogaU9wdHMubmVzdGluZ1ByZWZpeEVzY2FwZWQgfHwgcmVnZXhFc2NhcGUoJyR0KCcpO1xuICAgICAgdGhpcy5uZXN0aW5nU3VmZml4ID0gaU9wdHMubmVzdGluZ1N1ZmZpeCA/IHJlZ2V4RXNjYXBlKGlPcHRzLm5lc3RpbmdTdWZmaXgpIDogaU9wdHMubmVzdGluZ1N1ZmZpeEVzY2FwZWQgfHwgcmVnZXhFc2NhcGUoJyknKTtcbiAgICAgIHRoaXMubmVzdGluZ09wdGlvbnNTZXBhcmF0b3IgPSBpT3B0cy5uZXN0aW5nT3B0aW9uc1NlcGFyYXRvciA/IGlPcHRzLm5lc3RpbmdPcHRpb25zU2VwYXJhdG9yIDogaU9wdHMubmVzdGluZ09wdGlvbnNTZXBhcmF0b3IgfHwgJywnO1xuICAgICAgdGhpcy5tYXhSZXBsYWNlcyA9IGlPcHRzLm1heFJlcGxhY2VzID8gaU9wdHMubWF4UmVwbGFjZXMgOiAxMDAwO1xuICAgICAgdGhpcy5hbHdheXNGb3JtYXQgPSBpT3B0cy5hbHdheXNGb3JtYXQgIT09IHVuZGVmaW5lZCA/IGlPcHRzLmFsd2F5c0Zvcm1hdCA6IGZhbHNlO1xuICAgICAgdGhpcy5yZXNldFJlZ0V4cCgpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZXNldFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZXNldCgpIHtcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMpIHRoaXMuaW5pdCh0aGlzLm9wdGlvbnMpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZXNldFJlZ0V4cFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZXNldFJlZ0V4cCgpIHtcbiAgICAgIHZhciByZWdleHBTdHIgPSBcIlwiLmNvbmNhdCh0aGlzLnByZWZpeCwgXCIoLis/KVwiKS5jb25jYXQodGhpcy5zdWZmaXgpO1xuICAgICAgdGhpcy5yZWdleHAgPSBuZXcgUmVnRXhwKHJlZ2V4cFN0ciwgJ2cnKTtcbiAgICAgIHZhciByZWdleHBVbmVzY2FwZVN0ciA9IFwiXCIuY29uY2F0KHRoaXMucHJlZml4KS5jb25jYXQodGhpcy51bmVzY2FwZVByZWZpeCwgXCIoLis/KVwiKS5jb25jYXQodGhpcy51bmVzY2FwZVN1ZmZpeCkuY29uY2F0KHRoaXMuc3VmZml4KTtcbiAgICAgIHRoaXMucmVnZXhwVW5lc2NhcGUgPSBuZXcgUmVnRXhwKHJlZ2V4cFVuZXNjYXBlU3RyLCAnZycpO1xuICAgICAgdmFyIG5lc3RpbmdSZWdleHBTdHIgPSBcIlwiLmNvbmNhdCh0aGlzLm5lc3RpbmdQcmVmaXgsIFwiKC4rPylcIikuY29uY2F0KHRoaXMubmVzdGluZ1N1ZmZpeCk7XG4gICAgICB0aGlzLm5lc3RpbmdSZWdleHAgPSBuZXcgUmVnRXhwKG5lc3RpbmdSZWdleHBTdHIsICdnJyk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImludGVycG9sYXRlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGludGVycG9sYXRlKHN0ciwgZGF0YSwgbG5nLCBvcHRpb25zKSB7XG4gICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICB2YXIgbWF0Y2g7XG4gICAgICB2YXIgdmFsdWU7XG4gICAgICB2YXIgcmVwbGFjZXM7XG4gICAgICB2YXIgZGVmYXVsdERhdGEgPSB0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLmludGVycG9sYXRpb24gJiYgdGhpcy5vcHRpb25zLmludGVycG9sYXRpb24uZGVmYXVsdFZhcmlhYmxlcyB8fCB7fTtcblxuICAgICAgZnVuY3Rpb24gcmVnZXhTYWZlKHZhbCkge1xuICAgICAgICByZXR1cm4gdmFsLnJlcGxhY2UoL1xcJC9nLCAnJCQkJCcpO1xuICAgICAgfVxuXG4gICAgICB2YXIgaGFuZGxlRm9ybWF0ID0gZnVuY3Rpb24gaGFuZGxlRm9ybWF0KGtleSkge1xuICAgICAgICBpZiAoa2V5LmluZGV4T2YoX3RoaXMuZm9ybWF0U2VwYXJhdG9yKSA8IDApIHtcbiAgICAgICAgICB2YXIgcGF0aCA9IGdldFBhdGhXaXRoRGVmYXVsdHMoZGF0YSwgZGVmYXVsdERhdGEsIGtleSk7XG4gICAgICAgICAgcmV0dXJuIF90aGlzLmFsd2F5c0Zvcm1hdCA/IF90aGlzLmZvcm1hdChwYXRoLCB1bmRlZmluZWQsIGxuZywgX29iamVjdFNwcmVhZCh7fSwgb3B0aW9ucywgZGF0YSwge1xuICAgICAgICAgICAgaW50ZXJwb2xhdGlvbmtleToga2V5XG4gICAgICAgICAgfSkpIDogcGF0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBwID0ga2V5LnNwbGl0KF90aGlzLmZvcm1hdFNlcGFyYXRvcik7XG4gICAgICAgIHZhciBrID0gcC5zaGlmdCgpLnRyaW0oKTtcbiAgICAgICAgdmFyIGYgPSBwLmpvaW4oX3RoaXMuZm9ybWF0U2VwYXJhdG9yKS50cmltKCk7XG4gICAgICAgIHJldHVybiBfdGhpcy5mb3JtYXQoZ2V0UGF0aFdpdGhEZWZhdWx0cyhkYXRhLCBkZWZhdWx0RGF0YSwgayksIGYsIGxuZywgX29iamVjdFNwcmVhZCh7fSwgb3B0aW9ucywgZGF0YSwge1xuICAgICAgICAgIGludGVycG9sYXRpb25rZXk6IGtcbiAgICAgICAgfSkpO1xuICAgICAgfTtcblxuICAgICAgdGhpcy5yZXNldFJlZ0V4cCgpO1xuICAgICAgdmFyIG1pc3NpbmdJbnRlcnBvbGF0aW9uSGFuZGxlciA9IG9wdGlvbnMgJiYgb3B0aW9ucy5taXNzaW5nSW50ZXJwb2xhdGlvbkhhbmRsZXIgfHwgdGhpcy5vcHRpb25zLm1pc3NpbmdJbnRlcnBvbGF0aW9uSGFuZGxlcjtcbiAgICAgIHZhciBza2lwT25WYXJpYWJsZXMgPSBvcHRpb25zICYmIG9wdGlvbnMuaW50ZXJwb2xhdGlvbiAmJiBvcHRpb25zLmludGVycG9sYXRpb24uc2tpcE9uVmFyaWFibGVzIHx8IHRoaXMub3B0aW9ucy5pbnRlcnBvbGF0aW9uLnNraXBPblZhcmlhYmxlcztcbiAgICAgIHZhciB0b2RvcyA9IFt7XG4gICAgICAgIHJlZ2V4OiB0aGlzLnJlZ2V4cFVuZXNjYXBlLFxuICAgICAgICBzYWZlVmFsdWU6IGZ1bmN0aW9uIHNhZmVWYWx1ZSh2YWwpIHtcbiAgICAgICAgICByZXR1cm4gcmVnZXhTYWZlKHZhbCk7XG4gICAgICAgIH1cbiAgICAgIH0sIHtcbiAgICAgICAgcmVnZXg6IHRoaXMucmVnZXhwLFxuICAgICAgICBzYWZlVmFsdWU6IGZ1bmN0aW9uIHNhZmVWYWx1ZSh2YWwpIHtcbiAgICAgICAgICByZXR1cm4gX3RoaXMuZXNjYXBlVmFsdWUgPyByZWdleFNhZmUoX3RoaXMuZXNjYXBlKHZhbCkpIDogcmVnZXhTYWZlKHZhbCk7XG4gICAgICAgIH1cbiAgICAgIH1dO1xuICAgICAgdG9kb3MuZm9yRWFjaChmdW5jdGlvbiAodG9kbykge1xuICAgICAgICByZXBsYWNlcyA9IDA7XG5cbiAgICAgICAgd2hpbGUgKG1hdGNoID0gdG9kby5yZWdleC5leGVjKHN0cikpIHtcbiAgICAgICAgICB2YWx1ZSA9IGhhbmRsZUZvcm1hdChtYXRjaFsxXS50cmltKCkpO1xuXG4gICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgbWlzc2luZ0ludGVycG9sYXRpb25IYW5kbGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgIHZhciB0ZW1wID0gbWlzc2luZ0ludGVycG9sYXRpb25IYW5kbGVyKHN0ciwgbWF0Y2gsIG9wdGlvbnMpO1xuICAgICAgICAgICAgICB2YWx1ZSA9IHR5cGVvZiB0ZW1wID09PSAnc3RyaW5nJyA/IHRlbXAgOiAnJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc2tpcE9uVmFyaWFibGVzKSB7XG4gICAgICAgICAgICAgIHZhbHVlID0gbWF0Y2hbMF07XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgX3RoaXMubG9nZ2VyLndhcm4oXCJtaXNzZWQgdG8gcGFzcyBpbiB2YXJpYWJsZSBcIi5jb25jYXQobWF0Y2hbMV0sIFwiIGZvciBpbnRlcnBvbGF0aW5nIFwiKS5jb25jYXQoc3RyKSk7XG5cbiAgICAgICAgICAgICAgdmFsdWUgPSAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycgJiYgIV90aGlzLnVzZVJhd1ZhbHVlVG9Fc2NhcGUpIHtcbiAgICAgICAgICAgIHZhbHVlID0gbWFrZVN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIHNhZmVWYWx1ZSA9IHRvZG8uc2FmZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgICBzdHIgPSBzdHIucmVwbGFjZShtYXRjaFswXSwgc2FmZVZhbHVlKTtcblxuICAgICAgICAgIGlmIChza2lwT25WYXJpYWJsZXMpIHtcbiAgICAgICAgICAgIHRvZG8ucmVnZXgubGFzdEluZGV4ICs9IHNhZmVWYWx1ZS5sZW5ndGg7XG4gICAgICAgICAgICB0b2RvLnJlZ2V4Lmxhc3RJbmRleCAtPSBtYXRjaFswXS5sZW5ndGg7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRvZG8ucmVnZXgubGFzdEluZGV4ID0gMDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXBsYWNlcysrO1xuXG4gICAgICAgICAgaWYgKHJlcGxhY2VzID49IF90aGlzLm1heFJlcGxhY2VzKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwibmVzdFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBuZXN0KHN0ciwgZmMpIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDoge307XG4gICAgICB2YXIgbWF0Y2g7XG4gICAgICB2YXIgdmFsdWU7XG5cbiAgICAgIHZhciBjbG9uZWRPcHRpb25zID0gX29iamVjdFNwcmVhZCh7fSwgb3B0aW9ucyk7XG5cbiAgICAgIGNsb25lZE9wdGlvbnMuYXBwbHlQb3N0UHJvY2Vzc29yID0gZmFsc2U7XG4gICAgICBkZWxldGUgY2xvbmVkT3B0aW9ucy5kZWZhdWx0VmFsdWU7XG5cbiAgICAgIGZ1bmN0aW9uIGhhbmRsZUhhc09wdGlvbnMoa2V5LCBpbmhlcml0ZWRPcHRpb25zKSB7XG4gICAgICAgIHZhciBzZXAgPSB0aGlzLm5lc3RpbmdPcHRpb25zU2VwYXJhdG9yO1xuICAgICAgICBpZiAoa2V5LmluZGV4T2Yoc2VwKSA8IDApIHJldHVybiBrZXk7XG4gICAgICAgIHZhciBjID0ga2V5LnNwbGl0KG5ldyBSZWdFeHAoXCJcIi5jb25jYXQoc2VwLCBcIlsgXSp7XCIpKSk7XG4gICAgICAgIHZhciBvcHRpb25zU3RyaW5nID0gXCJ7XCIuY29uY2F0KGNbMV0pO1xuICAgICAgICBrZXkgPSBjWzBdO1xuICAgICAgICBvcHRpb25zU3RyaW5nID0gdGhpcy5pbnRlcnBvbGF0ZShvcHRpb25zU3RyaW5nLCBjbG9uZWRPcHRpb25zKTtcbiAgICAgICAgb3B0aW9uc1N0cmluZyA9IG9wdGlvbnNTdHJpbmcucmVwbGFjZSgvJy9nLCAnXCInKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIGNsb25lZE9wdGlvbnMgPSBKU09OLnBhcnNlKG9wdGlvbnNTdHJpbmcpO1xuICAgICAgICAgIGlmIChpbmhlcml0ZWRPcHRpb25zKSBjbG9uZWRPcHRpb25zID0gX29iamVjdFNwcmVhZCh7fSwgaW5oZXJpdGVkT3B0aW9ucywgY2xvbmVkT3B0aW9ucyk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKFwiZmFpbGVkIHBhcnNpbmcgb3B0aW9ucyBzdHJpbmcgaW4gbmVzdGluZyBmb3Iga2V5IFwiLmNvbmNhdChrZXkpLCBlKTtcbiAgICAgICAgICByZXR1cm4gXCJcIi5jb25jYXQoa2V5KS5jb25jYXQoc2VwKS5jb25jYXQob3B0aW9uc1N0cmluZyk7XG4gICAgICAgIH1cblxuICAgICAgICBkZWxldGUgY2xvbmVkT3B0aW9ucy5kZWZhdWx0VmFsdWU7XG4gICAgICAgIHJldHVybiBrZXk7XG4gICAgICB9XG5cbiAgICAgIHdoaWxlIChtYXRjaCA9IHRoaXMubmVzdGluZ1JlZ2V4cC5leGVjKHN0cikpIHtcbiAgICAgICAgdmFyIGZvcm1hdHRlcnMgPSBbXTtcbiAgICAgICAgdmFyIGRvUmVkdWNlID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKG1hdGNoWzBdLmluZGV4T2YodGhpcy5mb3JtYXRTZXBhcmF0b3IpICE9PSAtMSAmJiAhL3suKn0vLnRlc3QobWF0Y2hbMV0pKSB7XG4gICAgICAgICAgdmFyIHIgPSBtYXRjaFsxXS5zcGxpdCh0aGlzLmZvcm1hdFNlcGFyYXRvcikubWFwKGZ1bmN0aW9uIChlbGVtKSB7XG4gICAgICAgICAgICByZXR1cm4gZWxlbS50cmltKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgbWF0Y2hbMV0gPSByLnNoaWZ0KCk7XG4gICAgICAgICAgZm9ybWF0dGVycyA9IHI7XG4gICAgICAgICAgZG9SZWR1Y2UgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFsdWUgPSBmYyhoYW5kbGVIYXNPcHRpb25zLmNhbGwodGhpcywgbWF0Y2hbMV0udHJpbSgpLCBjbG9uZWRPcHRpb25zKSwgY2xvbmVkT3B0aW9ucyk7XG4gICAgICAgIGlmICh2YWx1ZSAmJiBtYXRjaFswXSA9PT0gc3RyICYmIHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHJldHVybiB2YWx1ZTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHZhbHVlID0gbWFrZVN0cmluZyh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLndhcm4oXCJtaXNzZWQgdG8gcmVzb2x2ZSBcIi5jb25jYXQobWF0Y2hbMV0sIFwiIGZvciBuZXN0aW5nIFwiKS5jb25jYXQoc3RyKSk7XG4gICAgICAgICAgdmFsdWUgPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkb1JlZHVjZSkge1xuICAgICAgICAgIHZhbHVlID0gZm9ybWF0dGVycy5yZWR1Y2UoZnVuY3Rpb24gKHYsIGYpIHtcbiAgICAgICAgICAgIHJldHVybiBfdGhpczIuZm9ybWF0KHYsIGYsIG9wdGlvbnMubG5nLCBfb2JqZWN0U3ByZWFkKHt9LCBvcHRpb25zLCB7XG4gICAgICAgICAgICAgIGludGVycG9sYXRpb25rZXk6IG1hdGNoWzFdLnRyaW0oKVxuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgIH0sIHZhbHVlLnRyaW0oKSk7XG4gICAgICAgIH1cblxuICAgICAgICBzdHIgPSBzdHIucmVwbGFjZShtYXRjaFswXSwgdmFsdWUpO1xuICAgICAgICB0aGlzLnJlZ2V4cC5sYXN0SW5kZXggPSAwO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gc3RyO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBJbnRlcnBvbGF0b3I7XG59KCk7XG5cbmZ1bmN0aW9uIHJlbW92ZShhcnIsIHdoYXQpIHtcbiAgdmFyIGZvdW5kID0gYXJyLmluZGV4T2Yod2hhdCk7XG5cbiAgd2hpbGUgKGZvdW5kICE9PSAtMSkge1xuICAgIGFyci5zcGxpY2UoZm91bmQsIDEpO1xuICAgIGZvdW5kID0gYXJyLmluZGV4T2Yod2hhdCk7XG4gIH1cbn1cblxudmFyIENvbm5lY3RvciA9IGZ1bmN0aW9uIChfRXZlbnRFbWl0dGVyKSB7XG4gIF9pbmhlcml0cyhDb25uZWN0b3IsIF9FdmVudEVtaXR0ZXIpO1xuXG4gIGZ1bmN0aW9uIENvbm5lY3RvcihiYWNrZW5kLCBzdG9yZSwgc2VydmljZXMpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAzICYmIGFyZ3VtZW50c1szXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzNdIDoge307XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQ29ubmVjdG9yKTtcblxuICAgIF90aGlzID0gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgX2dldFByb3RvdHlwZU9mKENvbm5lY3RvcikuY2FsbCh0aGlzKSk7XG5cbiAgICBpZiAoaXNJRTEwKSB7XG4gICAgICBFdmVudEVtaXR0ZXIuY2FsbChfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSk7XG4gICAgfVxuXG4gICAgX3RoaXMuYmFja2VuZCA9IGJhY2tlbmQ7XG4gICAgX3RoaXMuc3RvcmUgPSBzdG9yZTtcbiAgICBfdGhpcy5zZXJ2aWNlcyA9IHNlcnZpY2VzO1xuICAgIF90aGlzLmxhbmd1YWdlVXRpbHMgPSBzZXJ2aWNlcy5sYW5ndWFnZVV0aWxzO1xuICAgIF90aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIF90aGlzLmxvZ2dlciA9IGJhc2VMb2dnZXIuY3JlYXRlKCdiYWNrZW5kQ29ubmVjdG9yJyk7XG4gICAgX3RoaXMuc3RhdGUgPSB7fTtcbiAgICBfdGhpcy5xdWV1ZSA9IFtdO1xuXG4gICAgaWYgKF90aGlzLmJhY2tlbmQgJiYgX3RoaXMuYmFja2VuZC5pbml0KSB7XG4gICAgICBfdGhpcy5iYWNrZW5kLmluaXQoc2VydmljZXMsIG9wdGlvbnMuYmFja2VuZCwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKENvbm5lY3RvciwgW3tcbiAgICBrZXk6IFwicXVldWVMb2FkXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHF1ZXVlTG9hZChsYW5ndWFnZXMsIG5hbWVzcGFjZXMsIG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgdmFyIHRvTG9hZCA9IFtdO1xuICAgICAgdmFyIHBlbmRpbmcgPSBbXTtcbiAgICAgIHZhciB0b0xvYWRMYW5ndWFnZXMgPSBbXTtcbiAgICAgIHZhciB0b0xvYWROYW1lc3BhY2VzID0gW107XG4gICAgICBsYW5ndWFnZXMuZm9yRWFjaChmdW5jdGlvbiAobG5nKSB7XG4gICAgICAgIHZhciBoYXNBbGxOYW1lc3BhY2VzID0gdHJ1ZTtcbiAgICAgICAgbmFtZXNwYWNlcy5mb3JFYWNoKGZ1bmN0aW9uIChucykge1xuICAgICAgICAgIHZhciBuYW1lID0gXCJcIi5jb25jYXQobG5nLCBcInxcIikuY29uY2F0KG5zKTtcblxuICAgICAgICAgIGlmICghb3B0aW9ucy5yZWxvYWQgJiYgX3RoaXMyLnN0b3JlLmhhc1Jlc291cmNlQnVuZGxlKGxuZywgbnMpKSB7XG4gICAgICAgICAgICBfdGhpczIuc3RhdGVbbmFtZV0gPSAyO1xuICAgICAgICAgIH0gZWxzZSBpZiAoX3RoaXMyLnN0YXRlW25hbWVdIDwgMCkgOyBlbHNlIGlmIChfdGhpczIuc3RhdGVbbmFtZV0gPT09IDEpIHtcbiAgICAgICAgICAgIGlmIChwZW5kaW5nLmluZGV4T2YobmFtZSkgPCAwKSBwZW5kaW5nLnB1c2gobmFtZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIF90aGlzMi5zdGF0ZVtuYW1lXSA9IDE7XG4gICAgICAgICAgICBoYXNBbGxOYW1lc3BhY2VzID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAocGVuZGluZy5pbmRleE9mKG5hbWUpIDwgMCkgcGVuZGluZy5wdXNoKG5hbWUpO1xuICAgICAgICAgICAgaWYgKHRvTG9hZC5pbmRleE9mKG5hbWUpIDwgMCkgdG9Mb2FkLnB1c2gobmFtZSk7XG4gICAgICAgICAgICBpZiAodG9Mb2FkTmFtZXNwYWNlcy5pbmRleE9mKG5zKSA8IDApIHRvTG9hZE5hbWVzcGFjZXMucHVzaChucyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFoYXNBbGxOYW1lc3BhY2VzKSB0b0xvYWRMYW5ndWFnZXMucHVzaChsbmcpO1xuICAgICAgfSk7XG5cbiAgICAgIGlmICh0b0xvYWQubGVuZ3RoIHx8IHBlbmRpbmcubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMucXVldWUucHVzaCh7XG4gICAgICAgICAgcGVuZGluZzogcGVuZGluZyxcbiAgICAgICAgICBsb2FkZWQ6IHt9LFxuICAgICAgICAgIGVycm9yczogW10sXG4gICAgICAgICAgY2FsbGJhY2s6IGNhbGxiYWNrXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICB0b0xvYWQ6IHRvTG9hZCxcbiAgICAgICAgcGVuZGluZzogcGVuZGluZyxcbiAgICAgICAgdG9Mb2FkTGFuZ3VhZ2VzOiB0b0xvYWRMYW5ndWFnZXMsXG4gICAgICAgIHRvTG9hZE5hbWVzcGFjZXM6IHRvTG9hZE5hbWVzcGFjZXNcbiAgICAgIH07XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImxvYWRlZFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBsb2FkZWQobmFtZSwgZXJyLCBkYXRhKSB7XG4gICAgICB2YXIgcyA9IG5hbWUuc3BsaXQoJ3wnKTtcbiAgICAgIHZhciBsbmcgPSBzWzBdO1xuICAgICAgdmFyIG5zID0gc1sxXTtcbiAgICAgIGlmIChlcnIpIHRoaXMuZW1pdCgnZmFpbGVkTG9hZGluZycsIGxuZywgbnMsIGVycik7XG5cbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIHRoaXMuc3RvcmUuYWRkUmVzb3VyY2VCdW5kbGUobG5nLCBucywgZGF0YSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc3RhdGVbbmFtZV0gPSBlcnIgPyAtMSA6IDI7XG4gICAgICB2YXIgbG9hZGVkID0ge307XG4gICAgICB0aGlzLnF1ZXVlLmZvckVhY2goZnVuY3Rpb24gKHEpIHtcbiAgICAgICAgcHVzaFBhdGgocS5sb2FkZWQsIFtsbmddLCBucyk7XG4gICAgICAgIHJlbW92ZShxLnBlbmRpbmcsIG5hbWUpO1xuICAgICAgICBpZiAoZXJyKSBxLmVycm9ycy5wdXNoKGVycik7XG5cbiAgICAgICAgaWYgKHEucGVuZGluZy5sZW5ndGggPT09IDAgJiYgIXEuZG9uZSkge1xuICAgICAgICAgIE9iamVjdC5rZXlzKHEubG9hZGVkKS5mb3JFYWNoKGZ1bmN0aW9uIChsKSB7XG4gICAgICAgICAgICBpZiAoIWxvYWRlZFtsXSkgbG9hZGVkW2xdID0gW107XG5cbiAgICAgICAgICAgIGlmIChxLmxvYWRlZFtsXS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgcS5sb2FkZWRbbF0uZm9yRWFjaChmdW5jdGlvbiAobnMpIHtcbiAgICAgICAgICAgICAgICBpZiAobG9hZGVkW2xdLmluZGV4T2YobnMpIDwgMCkgbG9hZGVkW2xdLnB1c2gobnMpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICBxLmRvbmUgPSB0cnVlO1xuXG4gICAgICAgICAgaWYgKHEuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgICAgICAgcS5jYWxsYmFjayhxLmVycm9ycyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHEuY2FsbGJhY2soKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5lbWl0KCdsb2FkZWQnLCBsb2FkZWQpO1xuICAgICAgdGhpcy5xdWV1ZSA9IHRoaXMucXVldWUuZmlsdGVyKGZ1bmN0aW9uIChxKSB7XG4gICAgICAgIHJldHVybiAhcS5kb25lO1xuICAgICAgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlYWRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVhZChsbmcsIG5zLCBmY05hbWUpIHtcbiAgICAgIHZhciBfdGhpczMgPSB0aGlzO1xuXG4gICAgICB2YXIgdHJpZWQgPSBhcmd1bWVudHMubGVuZ3RoID4gMyAmJiBhcmd1bWVudHNbM10gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1szXSA6IDA7XG4gICAgICB2YXIgd2FpdCA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMzUwO1xuICAgICAgdmFyIGNhbGxiYWNrID0gYXJndW1lbnRzLmxlbmd0aCA+IDUgPyBhcmd1bWVudHNbNV0gOiB1bmRlZmluZWQ7XG4gICAgICBpZiAoIWxuZy5sZW5ndGgpIHJldHVybiBjYWxsYmFjayhudWxsLCB7fSk7XG4gICAgICByZXR1cm4gdGhpcy5iYWNrZW5kW2ZjTmFtZV0obG5nLCBucywgZnVuY3Rpb24gKGVyciwgZGF0YSkge1xuICAgICAgICBpZiAoZXJyICYmIGRhdGEgJiYgdHJpZWQgPCA1KSB7XG4gICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBfdGhpczMucmVhZC5jYWxsKF90aGlzMywgbG5nLCBucywgZmNOYW1lLCB0cmllZCArIDEsIHdhaXQgKiAyLCBjYWxsYmFjayk7XG4gICAgICAgICAgfSwgd2FpdCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY2FsbGJhY2soZXJyLCBkYXRhKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJwcmVwYXJlTG9hZGluZ1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBwcmVwYXJlTG9hZGluZyhsYW5ndWFnZXMsIG5hbWVzcGFjZXMpIHtcbiAgICAgIHZhciBfdGhpczQgPSB0aGlzO1xuXG4gICAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDoge307XG4gICAgICB2YXIgY2FsbGJhY2sgPSBhcmd1bWVudHMubGVuZ3RoID4gMyA/IGFyZ3VtZW50c1szXSA6IHVuZGVmaW5lZDtcblxuICAgICAgaWYgKCF0aGlzLmJhY2tlbmQpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIud2FybignTm8gYmFja2VuZCB3YXMgYWRkZWQgdmlhIGkxOG5leHQudXNlLiBXaWxsIG5vdCBsb2FkIHJlc291cmNlcy4nKTtcbiAgICAgICAgcmV0dXJuIGNhbGxiYWNrICYmIGNhbGxiYWNrKCk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgbGFuZ3VhZ2VzID09PSAnc3RyaW5nJykgbGFuZ3VhZ2VzID0gdGhpcy5sYW5ndWFnZVV0aWxzLnRvUmVzb2x2ZUhpZXJhcmNoeShsYW5ndWFnZXMpO1xuICAgICAgaWYgKHR5cGVvZiBuYW1lc3BhY2VzID09PSAnc3RyaW5nJykgbmFtZXNwYWNlcyA9IFtuYW1lc3BhY2VzXTtcbiAgICAgIHZhciB0b0xvYWQgPSB0aGlzLnF1ZXVlTG9hZChsYW5ndWFnZXMsIG5hbWVzcGFjZXMsIG9wdGlvbnMsIGNhbGxiYWNrKTtcblxuICAgICAgaWYgKCF0b0xvYWQudG9Mb2FkLmxlbmd0aCkge1xuICAgICAgICBpZiAoIXRvTG9hZC5wZW5kaW5nLmxlbmd0aCkgY2FsbGJhY2soKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIHRvTG9hZC50b0xvYWQuZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xuICAgICAgICBfdGhpczQubG9hZE9uZShuYW1lKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJsb2FkXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGxvYWQobGFuZ3VhZ2VzLCBuYW1lc3BhY2VzLCBjYWxsYmFjaykge1xuICAgICAgdGhpcy5wcmVwYXJlTG9hZGluZyhsYW5ndWFnZXMsIG5hbWVzcGFjZXMsIHt9LCBjYWxsYmFjayk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbG9hZFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZWxvYWQobGFuZ3VhZ2VzLCBuYW1lc3BhY2VzLCBjYWxsYmFjaykge1xuICAgICAgdGhpcy5wcmVwYXJlTG9hZGluZyhsYW5ndWFnZXMsIG5hbWVzcGFjZXMsIHtcbiAgICAgICAgcmVsb2FkOiB0cnVlXG4gICAgICB9LCBjYWxsYmFjayk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImxvYWRPbmVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gbG9hZE9uZShuYW1lKSB7XG4gICAgICB2YXIgX3RoaXM1ID0gdGhpcztcblxuICAgICAgdmFyIHByZWZpeCA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogJyc7XG4gICAgICB2YXIgcyA9IG5hbWUuc3BsaXQoJ3wnKTtcbiAgICAgIHZhciBsbmcgPSBzWzBdO1xuICAgICAgdmFyIG5zID0gc1sxXTtcbiAgICAgIHRoaXMucmVhZChsbmcsIG5zLCAncmVhZCcsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBmdW5jdGlvbiAoZXJyLCBkYXRhKSB7XG4gICAgICAgIGlmIChlcnIpIF90aGlzNS5sb2dnZXIud2FybihcIlwiLmNvbmNhdChwcmVmaXgsIFwibG9hZGluZyBuYW1lc3BhY2UgXCIpLmNvbmNhdChucywgXCIgZm9yIGxhbmd1YWdlIFwiKS5jb25jYXQobG5nLCBcIiBmYWlsZWRcIiksIGVycik7XG4gICAgICAgIGlmICghZXJyICYmIGRhdGEpIF90aGlzNS5sb2dnZXIubG9nKFwiXCIuY29uY2F0KHByZWZpeCwgXCJsb2FkZWQgbmFtZXNwYWNlIFwiKS5jb25jYXQobnMsIFwiIGZvciBsYW5ndWFnZSBcIikuY29uY2F0KGxuZyksIGRhdGEpO1xuXG4gICAgICAgIF90aGlzNS5sb2FkZWQobmFtZSwgZXJyLCBkYXRhKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJzYXZlTWlzc2luZ1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBzYXZlTWlzc2luZyhsYW5ndWFnZXMsIG5hbWVzcGFjZSwga2V5LCBmYWxsYmFja1ZhbHVlLCBpc1VwZGF0ZSkge1xuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gNSAmJiBhcmd1bWVudHNbNV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s1XSA6IHt9O1xuXG4gICAgICBpZiAodGhpcy5zZXJ2aWNlcy51dGlscyAmJiB0aGlzLnNlcnZpY2VzLnV0aWxzLmhhc0xvYWRlZE5hbWVzcGFjZSAmJiAhdGhpcy5zZXJ2aWNlcy51dGlscy5oYXNMb2FkZWROYW1lc3BhY2UobmFtZXNwYWNlKSkge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKFwiZGlkIG5vdCBzYXZlIGtleSBcXFwiXCIuY29uY2F0KGtleSwgXCJcXFwiIGFzIHRoZSBuYW1lc3BhY2UgXFxcIlwiKS5jb25jYXQobmFtZXNwYWNlLCBcIlxcXCIgd2FzIG5vdCB5ZXQgbG9hZGVkXCIpLCAnVGhpcyBtZWFucyBzb21ldGhpbmcgSVMgV1JPTkcgaW4geW91ciBzZXR1cC4gWW91IGFjY2VzcyB0aGUgdCBmdW5jdGlvbiBiZWZvcmUgaTE4bmV4dC5pbml0IC8gaTE4bmV4dC5sb2FkTmFtZXNwYWNlIC8gaTE4bmV4dC5jaGFuZ2VMYW5ndWFnZSB3YXMgZG9uZS4gV2FpdCBmb3IgdGhlIGNhbGxiYWNrIG9yIFByb21pc2UgdG8gcmVzb2x2ZSBiZWZvcmUgYWNjZXNzaW5nIGl0ISEhJyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGtleSA9PT0gdW5kZWZpbmVkIHx8IGtleSA9PT0gbnVsbCB8fCBrZXkgPT09ICcnKSByZXR1cm47XG5cbiAgICAgIGlmICh0aGlzLmJhY2tlbmQgJiYgdGhpcy5iYWNrZW5kLmNyZWF0ZSkge1xuICAgICAgICB0aGlzLmJhY2tlbmQuY3JlYXRlKGxhbmd1YWdlcywgbmFtZXNwYWNlLCBrZXksIGZhbGxiYWNrVmFsdWUsIG51bGwsIF9vYmplY3RTcHJlYWQoe30sIG9wdGlvbnMsIHtcbiAgICAgICAgICBpc1VwZGF0ZTogaXNVcGRhdGVcbiAgICAgICAgfSkpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWxhbmd1YWdlcyB8fCAhbGFuZ3VhZ2VzWzBdKSByZXR1cm47XG4gICAgICB0aGlzLnN0b3JlLmFkZFJlc291cmNlKGxhbmd1YWdlc1swXSwgbmFtZXNwYWNlLCBrZXksIGZhbGxiYWNrVmFsdWUpO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBDb25uZWN0b3I7XG59KEV2ZW50RW1pdHRlcik7XG5cbmZ1bmN0aW9uIGdldCgpIHtcbiAgcmV0dXJuIHtcbiAgICBkZWJ1ZzogZmFsc2UsXG4gICAgaW5pdEltbWVkaWF0ZTogdHJ1ZSxcbiAgICBuczogWyd0cmFuc2xhdGlvbiddLFxuICAgIGRlZmF1bHROUzogWyd0cmFuc2xhdGlvbiddLFxuICAgIGZhbGxiYWNrTG5nOiBbJ2RldiddLFxuICAgIGZhbGxiYWNrTlM6IGZhbHNlLFxuICAgIHdoaXRlbGlzdDogZmFsc2UsXG4gICAgbm9uRXhwbGljaXRXaGl0ZWxpc3Q6IGZhbHNlLFxuICAgIHN1cHBvcnRlZExuZ3M6IGZhbHNlLFxuICAgIG5vbkV4cGxpY2l0U3VwcG9ydGVkTG5nczogZmFsc2UsXG4gICAgbG9hZDogJ2FsbCcsXG4gICAgcHJlbG9hZDogZmFsc2UsXG4gICAgc2ltcGxpZnlQbHVyYWxTdWZmaXg6IHRydWUsXG4gICAga2V5U2VwYXJhdG9yOiAnLicsXG4gICAgbnNTZXBhcmF0b3I6ICc6JyxcbiAgICBwbHVyYWxTZXBhcmF0b3I6ICdfJyxcbiAgICBjb250ZXh0U2VwYXJhdG9yOiAnXycsXG4gICAgcGFydGlhbEJ1bmRsZWRMYW5ndWFnZXM6IGZhbHNlLFxuICAgIHNhdmVNaXNzaW5nOiBmYWxzZSxcbiAgICB1cGRhdGVNaXNzaW5nOiBmYWxzZSxcbiAgICBzYXZlTWlzc2luZ1RvOiAnZmFsbGJhY2snLFxuICAgIHNhdmVNaXNzaW5nUGx1cmFsczogdHJ1ZSxcbiAgICBtaXNzaW5nS2V5SGFuZGxlcjogZmFsc2UsXG4gICAgbWlzc2luZ0ludGVycG9sYXRpb25IYW5kbGVyOiBmYWxzZSxcbiAgICBwb3N0UHJvY2VzczogZmFsc2UsXG4gICAgcG9zdFByb2Nlc3NQYXNzUmVzb2x2ZWQ6IGZhbHNlLFxuICAgIHJldHVybk51bGw6IHRydWUsXG4gICAgcmV0dXJuRW1wdHlTdHJpbmc6IHRydWUsXG4gICAgcmV0dXJuT2JqZWN0czogZmFsc2UsXG4gICAgam9pbkFycmF5czogZmFsc2UsXG4gICAgcmV0dXJuZWRPYmplY3RIYW5kbGVyOiBmYWxzZSxcbiAgICBwYXJzZU1pc3NpbmdLZXlIYW5kbGVyOiBmYWxzZSxcbiAgICBhcHBlbmROYW1lc3BhY2VUb01pc3NpbmdLZXk6IGZhbHNlLFxuICAgIGFwcGVuZE5hbWVzcGFjZVRvQ0lNb2RlOiBmYWxzZSxcbiAgICBvdmVybG9hZFRyYW5zbGF0aW9uT3B0aW9uSGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlKGFyZ3MpIHtcbiAgICAgIHZhciByZXQgPSB7fTtcbiAgICAgIGlmIChfdHlwZW9mKGFyZ3NbMV0pID09PSAnb2JqZWN0JykgcmV0ID0gYXJnc1sxXTtcbiAgICAgIGlmICh0eXBlb2YgYXJnc1sxXSA9PT0gJ3N0cmluZycpIHJldC5kZWZhdWx0VmFsdWUgPSBhcmdzWzFdO1xuICAgICAgaWYgKHR5cGVvZiBhcmdzWzJdID09PSAnc3RyaW5nJykgcmV0LnREZXNjcmlwdGlvbiA9IGFyZ3NbMl07XG5cbiAgICAgIGlmIChfdHlwZW9mKGFyZ3NbMl0pID09PSAnb2JqZWN0JyB8fCBfdHlwZW9mKGFyZ3NbM10pID09PSAnb2JqZWN0Jykge1xuICAgICAgICB2YXIgb3B0aW9ucyA9IGFyZ3NbM10gfHwgYXJnc1syXTtcbiAgICAgICAgT2JqZWN0LmtleXMob3B0aW9ucykuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgcmV0W2tleV0gPSBvcHRpb25zW2tleV07XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmV0O1xuICAgIH0sXG4gICAgaW50ZXJwb2xhdGlvbjoge1xuICAgICAgZXNjYXBlVmFsdWU6IHRydWUsXG4gICAgICBmb3JtYXQ6IGZ1bmN0aW9uIGZvcm1hdCh2YWx1ZSwgX2Zvcm1hdCwgbG5nLCBvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH0sXG4gICAgICBwcmVmaXg6ICd7eycsXG4gICAgICBzdWZmaXg6ICd9fScsXG4gICAgICBmb3JtYXRTZXBhcmF0b3I6ICcsJyxcbiAgICAgIHVuZXNjYXBlUHJlZml4OiAnLScsXG4gICAgICBuZXN0aW5nUHJlZml4OiAnJHQoJyxcbiAgICAgIG5lc3RpbmdTdWZmaXg6ICcpJyxcbiAgICAgIG5lc3RpbmdPcHRpb25zU2VwYXJhdG9yOiAnLCcsXG4gICAgICBtYXhSZXBsYWNlczogMTAwMCxcbiAgICAgIHNraXBPblZhcmlhYmxlczogZmFsc2VcbiAgICB9XG4gIH07XG59XG5mdW5jdGlvbiB0cmFuc2Zvcm1PcHRpb25zKG9wdGlvbnMpIHtcbiAgaWYgKHR5cGVvZiBvcHRpb25zLm5zID09PSAnc3RyaW5nJykgb3B0aW9ucy5ucyA9IFtvcHRpb25zLm5zXTtcbiAgaWYgKHR5cGVvZiBvcHRpb25zLmZhbGxiYWNrTG5nID09PSAnc3RyaW5nJykgb3B0aW9ucy5mYWxsYmFja0xuZyA9IFtvcHRpb25zLmZhbGxiYWNrTG5nXTtcbiAgaWYgKHR5cGVvZiBvcHRpb25zLmZhbGxiYWNrTlMgPT09ICdzdHJpbmcnKSBvcHRpb25zLmZhbGxiYWNrTlMgPSBbb3B0aW9ucy5mYWxsYmFja05TXTtcblxuICBpZiAob3B0aW9ucy53aGl0ZWxpc3QpIHtcbiAgICBpZiAob3B0aW9ucy53aGl0ZWxpc3QgJiYgb3B0aW9ucy53aGl0ZWxpc3QuaW5kZXhPZignY2ltb2RlJykgPCAwKSB7XG4gICAgICBvcHRpb25zLndoaXRlbGlzdCA9IG9wdGlvbnMud2hpdGVsaXN0LmNvbmNhdChbJ2NpbW9kZSddKTtcbiAgICB9XG5cbiAgICBvcHRpb25zLnN1cHBvcnRlZExuZ3MgPSBvcHRpb25zLndoaXRlbGlzdDtcbiAgfVxuXG4gIGlmIChvcHRpb25zLm5vbkV4cGxpY2l0V2hpdGVsaXN0KSB7XG4gICAgb3B0aW9ucy5ub25FeHBsaWNpdFN1cHBvcnRlZExuZ3MgPSBvcHRpb25zLm5vbkV4cGxpY2l0V2hpdGVsaXN0O1xuICB9XG5cbiAgaWYgKG9wdGlvbnMuc3VwcG9ydGVkTG5ncyAmJiBvcHRpb25zLnN1cHBvcnRlZExuZ3MuaW5kZXhPZignY2ltb2RlJykgPCAwKSB7XG4gICAgb3B0aW9ucy5zdXBwb3J0ZWRMbmdzID0gb3B0aW9ucy5zdXBwb3J0ZWRMbmdzLmNvbmNhdChbJ2NpbW9kZSddKTtcbiAgfVxuXG4gIHJldHVybiBvcHRpb25zO1xufVxuXG5mdW5jdGlvbiBub29wKCkge31cblxudmFyIEkxOG4gPSBmdW5jdGlvbiAoX0V2ZW50RW1pdHRlcikge1xuICBfaW5oZXJpdHMoSTE4biwgX0V2ZW50RW1pdHRlcik7XG5cbiAgZnVuY3Rpb24gSTE4bigpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge307XG4gICAgdmFyIGNhbGxiYWNrID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQ7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSTE4bik7XG5cbiAgICBfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIF9nZXRQcm90b3R5cGVPZihJMThuKS5jYWxsKHRoaXMpKTtcblxuICAgIGlmIChpc0lFMTApIHtcbiAgICAgIEV2ZW50RW1pdHRlci5jYWxsKF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpKTtcbiAgICB9XG5cbiAgICBfdGhpcy5vcHRpb25zID0gdHJhbnNmb3JtT3B0aW9ucyhvcHRpb25zKTtcbiAgICBfdGhpcy5zZXJ2aWNlcyA9IHt9O1xuICAgIF90aGlzLmxvZ2dlciA9IGJhc2VMb2dnZXI7XG4gICAgX3RoaXMubW9kdWxlcyA9IHtcbiAgICAgIGV4dGVybmFsOiBbXVxuICAgIH07XG5cbiAgICBpZiAoY2FsbGJhY2sgJiYgIV90aGlzLmlzSW5pdGlhbGl6ZWQgJiYgIW9wdGlvbnMuaXNDbG9uZSkge1xuICAgICAgaWYgKCFfdGhpcy5vcHRpb25zLmluaXRJbW1lZGlhdGUpIHtcbiAgICAgICAgX3RoaXMuaW5pdChvcHRpb25zLCBjYWxsYmFjayk7XG5cbiAgICAgICAgcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKF90aGlzLCBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSk7XG4gICAgICB9XG5cbiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICBfdGhpcy5pbml0KG9wdGlvbnMsIGNhbGxiYWNrKTtcbiAgICAgIH0sIDApO1xuICAgIH1cblxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhJMThuLCBbe1xuICAgIGtleTogXCJpbml0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGluaXQoKSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuICAgICAgdmFyIGNhbGxiYWNrID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQ7XG5cbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBjYWxsYmFjayA9IG9wdGlvbnM7XG4gICAgICAgIG9wdGlvbnMgPSB7fTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9wdGlvbnMud2hpdGVsaXN0ICYmICFvcHRpb25zLnN1cHBvcnRlZExuZ3MpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVwcmVjYXRlKCd3aGl0ZWxpc3QnLCAnb3B0aW9uIFwid2hpdGVsaXN0XCIgd2lsbCBiZSByZW5hbWVkIHRvIFwic3VwcG9ydGVkTG5nc1wiIGluIHRoZSBuZXh0IG1ham9yIC0gcGxlYXNlIG1ha2Ugc3VyZSB0byByZW5hbWUgdGhpcyBvcHRpb24gYXNhcC4nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9wdGlvbnMubm9uRXhwbGljaXRXaGl0ZWxpc3QgJiYgIW9wdGlvbnMubm9uRXhwbGljaXRTdXBwb3J0ZWRMbmdzKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlcHJlY2F0ZSgnd2hpdGVsaXN0JywgJ29wdGlvbnMgXCJub25FeHBsaWNpdFdoaXRlbGlzdFwiIHdpbGwgYmUgcmVuYW1lZCB0byBcIm5vbkV4cGxpY2l0U3VwcG9ydGVkTG5nc1wiIGluIHRoZSBuZXh0IG1ham9yIC0gcGxlYXNlIG1ha2Ugc3VyZSB0byByZW5hbWUgdGhpcyBvcHRpb24gYXNhcC4nKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5vcHRpb25zID0gX29iamVjdFNwcmVhZCh7fSwgZ2V0KCksIHRoaXMub3B0aW9ucywgdHJhbnNmb3JtT3B0aW9ucyhvcHRpb25zKSk7XG4gICAgICB0aGlzLmZvcm1hdCA9IHRoaXMub3B0aW9ucy5pbnRlcnBvbGF0aW9uLmZvcm1hdDtcbiAgICAgIGlmICghY2FsbGJhY2spIGNhbGxiYWNrID0gbm9vcDtcblxuICAgICAgZnVuY3Rpb24gY3JlYXRlQ2xhc3NPbkRlbWFuZChDbGFzc09yT2JqZWN0KSB7XG4gICAgICAgIGlmICghQ2xhc3NPck9iamVjdCkgcmV0dXJuIG51bGw7XG4gICAgICAgIGlmICh0eXBlb2YgQ2xhc3NPck9iamVjdCA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIG5ldyBDbGFzc09yT2JqZWN0KCk7XG4gICAgICAgIHJldHVybiBDbGFzc09yT2JqZWN0O1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMub3B0aW9ucy5pc0Nsb25lKSB7XG4gICAgICAgIGlmICh0aGlzLm1vZHVsZXMubG9nZ2VyKSB7XG4gICAgICAgICAgYmFzZUxvZ2dlci5pbml0KGNyZWF0ZUNsYXNzT25EZW1hbmQodGhpcy5tb2R1bGVzLmxvZ2dlciksIHRoaXMub3B0aW9ucyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYmFzZUxvZ2dlci5pbml0KG51bGwsIHRoaXMub3B0aW9ucyk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgbHUgPSBuZXcgTGFuZ3VhZ2VVdGlsKHRoaXMub3B0aW9ucyk7XG4gICAgICAgIHRoaXMuc3RvcmUgPSBuZXcgUmVzb3VyY2VTdG9yZSh0aGlzLm9wdGlvbnMucmVzb3VyY2VzLCB0aGlzLm9wdGlvbnMpO1xuICAgICAgICB2YXIgcyA9IHRoaXMuc2VydmljZXM7XG4gICAgICAgIHMubG9nZ2VyID0gYmFzZUxvZ2dlcjtcbiAgICAgICAgcy5yZXNvdXJjZVN0b3JlID0gdGhpcy5zdG9yZTtcbiAgICAgICAgcy5sYW5ndWFnZVV0aWxzID0gbHU7XG4gICAgICAgIHMucGx1cmFsUmVzb2x2ZXIgPSBuZXcgUGx1cmFsUmVzb2x2ZXIobHUsIHtcbiAgICAgICAgICBwcmVwZW5kOiB0aGlzLm9wdGlvbnMucGx1cmFsU2VwYXJhdG9yLFxuICAgICAgICAgIGNvbXBhdGliaWxpdHlKU09OOiB0aGlzLm9wdGlvbnMuY29tcGF0aWJpbGl0eUpTT04sXG4gICAgICAgICAgc2ltcGxpZnlQbHVyYWxTdWZmaXg6IHRoaXMub3B0aW9ucy5zaW1wbGlmeVBsdXJhbFN1ZmZpeFxuICAgICAgICB9KTtcbiAgICAgICAgcy5pbnRlcnBvbGF0b3IgPSBuZXcgSW50ZXJwb2xhdG9yKHRoaXMub3B0aW9ucyk7XG4gICAgICAgIHMudXRpbHMgPSB7XG4gICAgICAgICAgaGFzTG9hZGVkTmFtZXNwYWNlOiB0aGlzLmhhc0xvYWRlZE5hbWVzcGFjZS5iaW5kKHRoaXMpXG4gICAgICAgIH07XG4gICAgICAgIHMuYmFja2VuZENvbm5lY3RvciA9IG5ldyBDb25uZWN0b3IoY3JlYXRlQ2xhc3NPbkRlbWFuZCh0aGlzLm1vZHVsZXMuYmFja2VuZCksIHMucmVzb3VyY2VTdG9yZSwgcywgdGhpcy5vcHRpb25zKTtcbiAgICAgICAgcy5iYWNrZW5kQ29ubmVjdG9yLm9uKCcqJywgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiA+IDEgPyBfbGVuIC0gMSA6IDApLCBfa2V5ID0gMTsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgICAgICAgYXJnc1tfa2V5IC0gMV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgX3RoaXMyLmVtaXQuYXBwbHkoX3RoaXMyLCBbZXZlbnRdLmNvbmNhdChhcmdzKSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLm1vZHVsZXMubGFuZ3VhZ2VEZXRlY3Rvcikge1xuICAgICAgICAgIHMubGFuZ3VhZ2VEZXRlY3RvciA9IGNyZWF0ZUNsYXNzT25EZW1hbmQodGhpcy5tb2R1bGVzLmxhbmd1YWdlRGV0ZWN0b3IpO1xuICAgICAgICAgIHMubGFuZ3VhZ2VEZXRlY3Rvci5pbml0KHMsIHRoaXMub3B0aW9ucy5kZXRlY3Rpb24sIHRoaXMub3B0aW9ucyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5tb2R1bGVzLmkxOG5Gb3JtYXQpIHtcbiAgICAgICAgICBzLmkxOG5Gb3JtYXQgPSBjcmVhdGVDbGFzc09uRGVtYW5kKHRoaXMubW9kdWxlcy5pMThuRm9ybWF0KTtcbiAgICAgICAgICBpZiAocy5pMThuRm9ybWF0LmluaXQpIHMuaTE4bkZvcm1hdC5pbml0KHRoaXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50cmFuc2xhdG9yID0gbmV3IFRyYW5zbGF0b3IodGhpcy5zZXJ2aWNlcywgdGhpcy5vcHRpb25zKTtcbiAgICAgICAgdGhpcy50cmFuc2xhdG9yLm9uKCcqJywgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4yID4gMSA/IF9sZW4yIC0gMSA6IDApLCBfa2V5MiA9IDE7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICAgICAgICAgIGFyZ3NbX2tleTIgLSAxXSA9IGFyZ3VtZW50c1tfa2V5Ml07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgX3RoaXMyLmVtaXQuYXBwbHkoX3RoaXMyLCBbZXZlbnRdLmNvbmNhdChhcmdzKSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm1vZHVsZXMuZXh0ZXJuYWwuZm9yRWFjaChmdW5jdGlvbiAobSkge1xuICAgICAgICAgIGlmIChtLmluaXQpIG0uaW5pdChfdGhpczIpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMub3B0aW9ucy5mYWxsYmFja0xuZyAmJiAhdGhpcy5zZXJ2aWNlcy5sYW5ndWFnZURldGVjdG9yICYmICF0aGlzLm9wdGlvbnMubG5nKSB7XG4gICAgICAgIHZhciBjb2RlcyA9IHRoaXMuc2VydmljZXMubGFuZ3VhZ2VVdGlscy5nZXRGYWxsYmFja0NvZGVzKHRoaXMub3B0aW9ucy5mYWxsYmFja0xuZyk7XG4gICAgICAgIGlmIChjb2Rlcy5sZW5ndGggPiAwICYmIGNvZGVzWzBdICE9PSAnZGV2JykgdGhpcy5vcHRpb25zLmxuZyA9IGNvZGVzWzBdO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuc2VydmljZXMubGFuZ3VhZ2VEZXRlY3RvciAmJiAhdGhpcy5vcHRpb25zLmxuZykge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKCdpbml0OiBubyBsYW5ndWFnZURldGVjdG9yIGlzIHVzZWQgYW5kIG5vIGxuZyBpcyBkZWZpbmVkJyk7XG4gICAgICB9XG5cbiAgICAgIHZhciBzdG9yZUFwaSA9IFsnZ2V0UmVzb3VyY2UnLCAnaGFzUmVzb3VyY2VCdW5kbGUnLCAnZ2V0UmVzb3VyY2VCdW5kbGUnLCAnZ2V0RGF0YUJ5TGFuZ3VhZ2UnXTtcbiAgICAgIHN0b3JlQXBpLmZvckVhY2goZnVuY3Rpb24gKGZjTmFtZSkge1xuICAgICAgICBfdGhpczJbZmNOYW1lXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB2YXIgX3RoaXMyJHN0b3JlO1xuXG4gICAgICAgICAgcmV0dXJuIChfdGhpczIkc3RvcmUgPSBfdGhpczIuc3RvcmUpW2ZjTmFtZV0uYXBwbHkoX3RoaXMyJHN0b3JlLCBhcmd1bWVudHMpO1xuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgICB2YXIgc3RvcmVBcGlDaGFpbmVkID0gWydhZGRSZXNvdXJjZScsICdhZGRSZXNvdXJjZXMnLCAnYWRkUmVzb3VyY2VCdW5kbGUnLCAncmVtb3ZlUmVzb3VyY2VCdW5kbGUnXTtcbiAgICAgIHN0b3JlQXBpQ2hhaW5lZC5mb3JFYWNoKGZ1bmN0aW9uIChmY05hbWUpIHtcbiAgICAgICAgX3RoaXMyW2ZjTmFtZV0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgdmFyIF90aGlzMiRzdG9yZTI7XG5cbiAgICAgICAgICAoX3RoaXMyJHN0b3JlMiA9IF90aGlzMi5zdG9yZSlbZmNOYW1lXS5hcHBseShfdGhpczIkc3RvcmUyLCBhcmd1bWVudHMpO1xuXG4gICAgICAgICAgcmV0dXJuIF90aGlzMjtcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgICAgdmFyIGRlZmVycmVkID0gZGVmZXIoKTtcblxuICAgICAgdmFyIGxvYWQgPSBmdW5jdGlvbiBsb2FkKCkge1xuICAgICAgICB2YXIgZmluaXNoID0gZnVuY3Rpb24gZmluaXNoKGVyciwgdCkge1xuICAgICAgICAgIGlmIChfdGhpczIuaXNJbml0aWFsaXplZCAmJiAhX3RoaXMyLmluaXRpYWxpemVkU3RvcmVPbmNlKSBfdGhpczIubG9nZ2VyLndhcm4oJ2luaXQ6IGkxOG5leHQgaXMgYWxyZWFkeSBpbml0aWFsaXplZC4gWW91IHNob3VsZCBjYWxsIGluaXQganVzdCBvbmNlIScpO1xuICAgICAgICAgIF90aGlzMi5pc0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgICBpZiAoIV90aGlzMi5vcHRpb25zLmlzQ2xvbmUpIF90aGlzMi5sb2dnZXIubG9nKCdpbml0aWFsaXplZCcsIF90aGlzMi5vcHRpb25zKTtcblxuICAgICAgICAgIF90aGlzMi5lbWl0KCdpbml0aWFsaXplZCcsIF90aGlzMi5vcHRpb25zKTtcblxuICAgICAgICAgIGRlZmVycmVkLnJlc29sdmUodCk7XG4gICAgICAgICAgY2FsbGJhY2soZXJyLCB0KTtcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoX3RoaXMyLmxhbmd1YWdlcyAmJiBfdGhpczIub3B0aW9ucy5jb21wYXRpYmlsaXR5QVBJICE9PSAndjEnICYmICFfdGhpczIuaXNJbml0aWFsaXplZCkgcmV0dXJuIGZpbmlzaChudWxsLCBfdGhpczIudC5iaW5kKF90aGlzMikpO1xuXG4gICAgICAgIF90aGlzMi5jaGFuZ2VMYW5ndWFnZShfdGhpczIub3B0aW9ucy5sbmcsIGZpbmlzaCk7XG4gICAgICB9O1xuXG4gICAgICBpZiAodGhpcy5vcHRpb25zLnJlc291cmNlcyB8fCAhdGhpcy5vcHRpb25zLmluaXRJbW1lZGlhdGUpIHtcbiAgICAgICAgbG9hZCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0VGltZW91dChsb2FkLCAwKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGRlZmVycmVkO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJsb2FkUmVzb3VyY2VzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGxvYWRSZXNvdXJjZXMobGFuZ3VhZ2UpIHtcbiAgICAgIHZhciBfdGhpczMgPSB0aGlzO1xuXG4gICAgICB2YXIgY2FsbGJhY2sgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IG5vb3A7XG4gICAgICB2YXIgdXNlZENhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgICB2YXIgdXNlZExuZyA9IHR5cGVvZiBsYW5ndWFnZSA9PT0gJ3N0cmluZycgPyBsYW5ndWFnZSA6IHRoaXMubGFuZ3VhZ2U7XG4gICAgICBpZiAodHlwZW9mIGxhbmd1YWdlID09PSAnZnVuY3Rpb24nKSB1c2VkQ2FsbGJhY2sgPSBsYW5ndWFnZTtcblxuICAgICAgaWYgKCF0aGlzLm9wdGlvbnMucmVzb3VyY2VzIHx8IHRoaXMub3B0aW9ucy5wYXJ0aWFsQnVuZGxlZExhbmd1YWdlcykge1xuICAgICAgICBpZiAodXNlZExuZyAmJiB1c2VkTG5nLnRvTG93ZXJDYXNlKCkgPT09ICdjaW1vZGUnKSByZXR1cm4gdXNlZENhbGxiYWNrKCk7XG4gICAgICAgIHZhciB0b0xvYWQgPSBbXTtcblxuICAgICAgICB2YXIgYXBwZW5kID0gZnVuY3Rpb24gYXBwZW5kKGxuZykge1xuICAgICAgICAgIGlmICghbG5nKSByZXR1cm47XG5cbiAgICAgICAgICB2YXIgbG5ncyA9IF90aGlzMy5zZXJ2aWNlcy5sYW5ndWFnZVV0aWxzLnRvUmVzb2x2ZUhpZXJhcmNoeShsbmcpO1xuXG4gICAgICAgICAgbG5ncy5mb3JFYWNoKGZ1bmN0aW9uIChsKSB7XG4gICAgICAgICAgICBpZiAodG9Mb2FkLmluZGV4T2YobCkgPCAwKSB0b0xvYWQucHVzaChsKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoIXVzZWRMbmcpIHtcbiAgICAgICAgICB2YXIgZmFsbGJhY2tzID0gdGhpcy5zZXJ2aWNlcy5sYW5ndWFnZVV0aWxzLmdldEZhbGxiYWNrQ29kZXModGhpcy5vcHRpb25zLmZhbGxiYWNrTG5nKTtcbiAgICAgICAgICBmYWxsYmFja3MuZm9yRWFjaChmdW5jdGlvbiAobCkge1xuICAgICAgICAgICAgcmV0dXJuIGFwcGVuZChsKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhcHBlbmQodXNlZExuZyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnByZWxvYWQpIHtcbiAgICAgICAgICB0aGlzLm9wdGlvbnMucHJlbG9hZC5mb3JFYWNoKGZ1bmN0aW9uIChsKSB7XG4gICAgICAgICAgICByZXR1cm4gYXBwZW5kKGwpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXJ2aWNlcy5iYWNrZW5kQ29ubmVjdG9yLmxvYWQodG9Mb2FkLCB0aGlzLm9wdGlvbnMubnMsIHVzZWRDYWxsYmFjayk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB1c2VkQ2FsbGJhY2sobnVsbCk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbG9hZFJlc291cmNlc1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZWxvYWRSZXNvdXJjZXMobG5ncywgbnMsIGNhbGxiYWNrKSB7XG4gICAgICB2YXIgZGVmZXJyZWQgPSBkZWZlcigpO1xuICAgICAgaWYgKCFsbmdzKSBsbmdzID0gdGhpcy5sYW5ndWFnZXM7XG4gICAgICBpZiAoIW5zKSBucyA9IHRoaXMub3B0aW9ucy5ucztcbiAgICAgIGlmICghY2FsbGJhY2spIGNhbGxiYWNrID0gbm9vcDtcbiAgICAgIHRoaXMuc2VydmljZXMuYmFja2VuZENvbm5lY3Rvci5yZWxvYWQobG5ncywgbnMsIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgZGVmZXJyZWQucmVzb2x2ZSgpO1xuICAgICAgICBjYWxsYmFjayhlcnIpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gZGVmZXJyZWQ7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInVzZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiB1c2UobW9kdWxlKSB7XG4gICAgICBpZiAoIW1vZHVsZSkgdGhyb3cgbmV3IEVycm9yKCdZb3UgYXJlIHBhc3NpbmcgYW4gdW5kZWZpbmVkIG1vZHVsZSEgUGxlYXNlIGNoZWNrIHRoZSBvYmplY3QgeW91IGFyZSBwYXNzaW5nIHRvIGkxOG5leHQudXNlKCknKTtcbiAgICAgIGlmICghbW9kdWxlLnR5cGUpIHRocm93IG5ldyBFcnJvcignWW91IGFyZSBwYXNzaW5nIGEgd3JvbmcgbW9kdWxlISBQbGVhc2UgY2hlY2sgdGhlIG9iamVjdCB5b3UgYXJlIHBhc3NpbmcgdG8gaTE4bmV4dC51c2UoKScpO1xuXG4gICAgICBpZiAobW9kdWxlLnR5cGUgPT09ICdiYWNrZW5kJykge1xuICAgICAgICB0aGlzLm1vZHVsZXMuYmFja2VuZCA9IG1vZHVsZTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1vZHVsZS50eXBlID09PSAnbG9nZ2VyJyB8fCBtb2R1bGUubG9nICYmIG1vZHVsZS53YXJuICYmIG1vZHVsZS5lcnJvcikge1xuICAgICAgICB0aGlzLm1vZHVsZXMubG9nZ2VyID0gbW9kdWxlO1xuICAgICAgfVxuXG4gICAgICBpZiAobW9kdWxlLnR5cGUgPT09ICdsYW5ndWFnZURldGVjdG9yJykge1xuICAgICAgICB0aGlzLm1vZHVsZXMubGFuZ3VhZ2VEZXRlY3RvciA9IG1vZHVsZTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1vZHVsZS50eXBlID09PSAnaTE4bkZvcm1hdCcpIHtcbiAgICAgICAgdGhpcy5tb2R1bGVzLmkxOG5Gb3JtYXQgPSBtb2R1bGU7XG4gICAgICB9XG5cbiAgICAgIGlmIChtb2R1bGUudHlwZSA9PT0gJ3Bvc3RQcm9jZXNzb3InKSB7XG4gICAgICAgIHBvc3RQcm9jZXNzb3IuYWRkUG9zdFByb2Nlc3Nvcihtb2R1bGUpO1xuICAgICAgfVxuXG4gICAgICBpZiAobW9kdWxlLnR5cGUgPT09ICczcmRQYXJ0eScpIHtcbiAgICAgICAgdGhpcy5tb2R1bGVzLmV4dGVybmFsLnB1c2gobW9kdWxlKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNoYW5nZUxhbmd1YWdlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNoYW5nZUxhbmd1YWdlKGxuZywgY2FsbGJhY2spIHtcbiAgICAgIHZhciBfdGhpczQgPSB0aGlzO1xuXG4gICAgICB0aGlzLmlzTGFuZ3VhZ2VDaGFuZ2luZ1RvID0gbG5nO1xuICAgICAgdmFyIGRlZmVycmVkID0gZGVmZXIoKTtcbiAgICAgIHRoaXMuZW1pdCgnbGFuZ3VhZ2VDaGFuZ2luZycsIGxuZyk7XG5cbiAgICAgIHZhciBkb25lID0gZnVuY3Rpb24gZG9uZShlcnIsIGwpIHtcbiAgICAgICAgaWYgKGwpIHtcbiAgICAgICAgICBfdGhpczQubGFuZ3VhZ2UgPSBsO1xuICAgICAgICAgIF90aGlzNC5sYW5ndWFnZXMgPSBfdGhpczQuc2VydmljZXMubGFuZ3VhZ2VVdGlscy50b1Jlc29sdmVIaWVyYXJjaHkobCk7XG5cbiAgICAgICAgICBfdGhpczQudHJhbnNsYXRvci5jaGFuZ2VMYW5ndWFnZShsKTtcblxuICAgICAgICAgIF90aGlzNC5pc0xhbmd1YWdlQ2hhbmdpbmdUbyA9IHVuZGVmaW5lZDtcblxuICAgICAgICAgIF90aGlzNC5lbWl0KCdsYW5ndWFnZUNoYW5nZWQnLCBsKTtcblxuICAgICAgICAgIF90aGlzNC5sb2dnZXIubG9nKCdsYW5ndWFnZUNoYW5nZWQnLCBsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBfdGhpczQuaXNMYW5ndWFnZUNoYW5naW5nVG8gPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBkZWZlcnJlZC5yZXNvbHZlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gX3RoaXM0LnQuYXBwbHkoX3RoaXM0LCBhcmd1bWVudHMpO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGNhbGxiYWNrKSBjYWxsYmFjayhlcnIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gX3RoaXM0LnQuYXBwbHkoX3RoaXM0LCBhcmd1bWVudHMpO1xuICAgICAgICB9KTtcbiAgICAgIH07XG5cbiAgICAgIHZhciBzZXRMbmcgPSBmdW5jdGlvbiBzZXRMbmcobG5ncykge1xuICAgICAgICBpZiAoIWxuZyAmJiAhbG5ncyAmJiBfdGhpczQuc2VydmljZXMubGFuZ3VhZ2VEZXRlY3RvcikgbG5ncyA9IFtdO1xuICAgICAgICB2YXIgbCA9IHR5cGVvZiBsbmdzID09PSAnc3RyaW5nJyA/IGxuZ3MgOiBfdGhpczQuc2VydmljZXMubGFuZ3VhZ2VVdGlscy5nZXRCZXN0TWF0Y2hGcm9tQ29kZXMobG5ncyk7XG5cbiAgICAgICAgaWYgKGwpIHtcbiAgICAgICAgICBpZiAoIV90aGlzNC5sYW5ndWFnZSkge1xuICAgICAgICAgICAgX3RoaXM0Lmxhbmd1YWdlID0gbDtcbiAgICAgICAgICAgIF90aGlzNC5sYW5ndWFnZXMgPSBfdGhpczQuc2VydmljZXMubGFuZ3VhZ2VVdGlscy50b1Jlc29sdmVIaWVyYXJjaHkobCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCFfdGhpczQudHJhbnNsYXRvci5sYW5ndWFnZSkgX3RoaXM0LnRyYW5zbGF0b3IuY2hhbmdlTGFuZ3VhZ2UobCk7XG4gICAgICAgICAgaWYgKF90aGlzNC5zZXJ2aWNlcy5sYW5ndWFnZURldGVjdG9yKSBfdGhpczQuc2VydmljZXMubGFuZ3VhZ2VEZXRlY3Rvci5jYWNoZVVzZXJMYW5ndWFnZShsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIF90aGlzNC5sb2FkUmVzb3VyY2VzKGwsIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgICBkb25lKGVyciwgbCk7XG4gICAgICAgIH0pO1xuICAgICAgfTtcblxuICAgICAgaWYgKCFsbmcgJiYgdGhpcy5zZXJ2aWNlcy5sYW5ndWFnZURldGVjdG9yICYmICF0aGlzLnNlcnZpY2VzLmxhbmd1YWdlRGV0ZWN0b3IuYXN5bmMpIHtcbiAgICAgICAgc2V0TG5nKHRoaXMuc2VydmljZXMubGFuZ3VhZ2VEZXRlY3Rvci5kZXRlY3QoKSk7XG4gICAgICB9IGVsc2UgaWYgKCFsbmcgJiYgdGhpcy5zZXJ2aWNlcy5sYW5ndWFnZURldGVjdG9yICYmIHRoaXMuc2VydmljZXMubGFuZ3VhZ2VEZXRlY3Rvci5hc3luYykge1xuICAgICAgICB0aGlzLnNlcnZpY2VzLmxhbmd1YWdlRGV0ZWN0b3IuZGV0ZWN0KHNldExuZyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRMbmcobG5nKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGRlZmVycmVkO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRGaXhlZFRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0Rml4ZWRUKGxuZywgbnMsIGtleVByZWZpeCkge1xuICAgICAgdmFyIF90aGlzNSA9IHRoaXM7XG5cbiAgICAgIHZhciBmaXhlZFQgPSBmdW5jdGlvbiBmaXhlZFQoa2V5LCBvcHRzKSB7XG4gICAgICAgIHZhciBvcHRpb25zO1xuXG4gICAgICAgIGlmIChfdHlwZW9mKG9wdHMpICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgIGZvciAodmFyIF9sZW4zID0gYXJndW1lbnRzLmxlbmd0aCwgcmVzdCA9IG5ldyBBcnJheShfbGVuMyA+IDIgPyBfbGVuMyAtIDIgOiAwKSwgX2tleTMgPSAyOyBfa2V5MyA8IF9sZW4zOyBfa2V5MysrKSB7XG4gICAgICAgICAgICByZXN0W19rZXkzIC0gMl0gPSBhcmd1bWVudHNbX2tleTNdO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG9wdGlvbnMgPSBfdGhpczUub3B0aW9ucy5vdmVybG9hZFRyYW5zbGF0aW9uT3B0aW9uSGFuZGxlcihba2V5LCBvcHRzXS5jb25jYXQocmVzdCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9wdGlvbnMgPSBfb2JqZWN0U3ByZWFkKHt9LCBvcHRzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIG9wdGlvbnMubG5nID0gb3B0aW9ucy5sbmcgfHwgZml4ZWRULmxuZztcbiAgICAgICAgb3B0aW9ucy5sbmdzID0gb3B0aW9ucy5sbmdzIHx8IGZpeGVkVC5sbmdzO1xuICAgICAgICBvcHRpb25zLm5zID0gb3B0aW9ucy5ucyB8fCBmaXhlZFQubnM7XG4gICAgICAgIHZhciBrZXlTZXBhcmF0b3IgPSBfdGhpczUub3B0aW9ucy5rZXlTZXBhcmF0b3IgfHwgJy4nO1xuICAgICAgICB2YXIgcmVzdWx0S2V5ID0ga2V5UHJlZml4ID8gXCJcIi5jb25jYXQoa2V5UHJlZml4KS5jb25jYXQoa2V5U2VwYXJhdG9yKS5jb25jYXQoa2V5KSA6IGtleTtcbiAgICAgICAgcmV0dXJuIF90aGlzNS50KHJlc3VsdEtleSwgb3B0aW9ucyk7XG4gICAgICB9O1xuXG4gICAgICBpZiAodHlwZW9mIGxuZyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgZml4ZWRULmxuZyA9IGxuZztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZpeGVkVC5sbmdzID0gbG5nO1xuICAgICAgfVxuXG4gICAgICBmaXhlZFQubnMgPSBucztcbiAgICAgIGZpeGVkVC5rZXlQcmVmaXggPSBrZXlQcmVmaXg7XG4gICAgICByZXR1cm4gZml4ZWRUO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJ0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHQoKSB7XG4gICAgICB2YXIgX3RoaXMkdHJhbnNsYXRvcjtcblxuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRvciAmJiAoX3RoaXMkdHJhbnNsYXRvciA9IHRoaXMudHJhbnNsYXRvcikudHJhbnNsYXRlLmFwcGx5KF90aGlzJHRyYW5zbGF0b3IsIGFyZ3VtZW50cyk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImV4aXN0c1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBleGlzdHMoKSB7XG4gICAgICB2YXIgX3RoaXMkdHJhbnNsYXRvcjI7XG5cbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0b3IgJiYgKF90aGlzJHRyYW5zbGF0b3IyID0gdGhpcy50cmFuc2xhdG9yKS5leGlzdHMuYXBwbHkoX3RoaXMkdHJhbnNsYXRvcjIsIGFyZ3VtZW50cyk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInNldERlZmF1bHROYW1lc3BhY2VcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gc2V0RGVmYXVsdE5hbWVzcGFjZShucykge1xuICAgICAgdGhpcy5vcHRpb25zLmRlZmF1bHROUyA9IG5zO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJoYXNMb2FkZWROYW1lc3BhY2VcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gaGFzTG9hZGVkTmFtZXNwYWNlKG5zKSB7XG4gICAgICB2YXIgX3RoaXM2ID0gdGhpcztcblxuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuXG4gICAgICBpZiAoIXRoaXMuaXNJbml0aWFsaXplZCkge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKCdoYXNMb2FkZWROYW1lc3BhY2U6IGkxOG5leHQgd2FzIG5vdCBpbml0aWFsaXplZCcsIHRoaXMubGFuZ3VhZ2VzKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMubGFuZ3VhZ2VzIHx8ICF0aGlzLmxhbmd1YWdlcy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIud2FybignaGFzTG9hZGVkTmFtZXNwYWNlOiBpMThuLmxhbmd1YWdlcyB3ZXJlIHVuZGVmaW5lZCBvciBlbXB0eScsIHRoaXMubGFuZ3VhZ2VzKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICB2YXIgbG5nID0gdGhpcy5sYW5ndWFnZXNbMF07XG4gICAgICB2YXIgZmFsbGJhY2tMbmcgPSB0aGlzLm9wdGlvbnMgPyB0aGlzLm9wdGlvbnMuZmFsbGJhY2tMbmcgOiBmYWxzZTtcbiAgICAgIHZhciBsYXN0TG5nID0gdGhpcy5sYW5ndWFnZXNbdGhpcy5sYW5ndWFnZXMubGVuZ3RoIC0gMV07XG4gICAgICBpZiAobG5nLnRvTG93ZXJDYXNlKCkgPT09ICdjaW1vZGUnKSByZXR1cm4gdHJ1ZTtcblxuICAgICAgdmFyIGxvYWROb3RQZW5kaW5nID0gZnVuY3Rpb24gbG9hZE5vdFBlbmRpbmcobCwgbikge1xuICAgICAgICB2YXIgbG9hZFN0YXRlID0gX3RoaXM2LnNlcnZpY2VzLmJhY2tlbmRDb25uZWN0b3Iuc3RhdGVbXCJcIi5jb25jYXQobCwgXCJ8XCIpLmNvbmNhdChuKV07XG5cbiAgICAgICAgcmV0dXJuIGxvYWRTdGF0ZSA9PT0gLTEgfHwgbG9hZFN0YXRlID09PSAyO1xuICAgICAgfTtcblxuICAgICAgaWYgKG9wdGlvbnMucHJlY2hlY2spIHtcbiAgICAgICAgdmFyIHByZVJlc3VsdCA9IG9wdGlvbnMucHJlY2hlY2sodGhpcywgbG9hZE5vdFBlbmRpbmcpO1xuICAgICAgICBpZiAocHJlUmVzdWx0ICE9PSB1bmRlZmluZWQpIHJldHVybiBwcmVSZXN1bHQ7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmhhc1Jlc291cmNlQnVuZGxlKGxuZywgbnMpKSByZXR1cm4gdHJ1ZTtcbiAgICAgIGlmICghdGhpcy5zZXJ2aWNlcy5iYWNrZW5kQ29ubmVjdG9yLmJhY2tlbmQpIHJldHVybiB0cnVlO1xuICAgICAgaWYgKGxvYWROb3RQZW5kaW5nKGxuZywgbnMpICYmICghZmFsbGJhY2tMbmcgfHwgbG9hZE5vdFBlbmRpbmcobGFzdExuZywgbnMpKSkgcmV0dXJuIHRydWU7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImxvYWROYW1lc3BhY2VzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGxvYWROYW1lc3BhY2VzKG5zLCBjYWxsYmFjaykge1xuICAgICAgdmFyIF90aGlzNyA9IHRoaXM7XG5cbiAgICAgIHZhciBkZWZlcnJlZCA9IGRlZmVyKCk7XG5cbiAgICAgIGlmICghdGhpcy5vcHRpb25zLm5zKSB7XG4gICAgICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKCk7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBucyA9PT0gJ3N0cmluZycpIG5zID0gW25zXTtcbiAgICAgIG5zLmZvckVhY2goZnVuY3Rpb24gKG4pIHtcbiAgICAgICAgaWYgKF90aGlzNy5vcHRpb25zLm5zLmluZGV4T2YobikgPCAwKSBfdGhpczcub3B0aW9ucy5ucy5wdXNoKG4pO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmxvYWRSZXNvdXJjZXMoZnVuY3Rpb24gKGVycikge1xuICAgICAgICBkZWZlcnJlZC5yZXNvbHZlKCk7XG4gICAgICAgIGlmIChjYWxsYmFjaykgY2FsbGJhY2soZXJyKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGRlZmVycmVkO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJsb2FkTGFuZ3VhZ2VzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGxvYWRMYW5ndWFnZXMobG5ncywgY2FsbGJhY2spIHtcbiAgICAgIHZhciBkZWZlcnJlZCA9IGRlZmVyKCk7XG4gICAgICBpZiAodHlwZW9mIGxuZ3MgPT09ICdzdHJpbmcnKSBsbmdzID0gW2xuZ3NdO1xuICAgICAgdmFyIHByZWxvYWRlZCA9IHRoaXMub3B0aW9ucy5wcmVsb2FkIHx8IFtdO1xuICAgICAgdmFyIG5ld0xuZ3MgPSBsbmdzLmZpbHRlcihmdW5jdGlvbiAobG5nKSB7XG4gICAgICAgIHJldHVybiBwcmVsb2FkZWQuaW5kZXhPZihsbmcpIDwgMDtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoIW5ld0xuZ3MubGVuZ3RoKSB7XG4gICAgICAgIGlmIChjYWxsYmFjaykgY2FsbGJhY2soKTtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLm9wdGlvbnMucHJlbG9hZCA9IHByZWxvYWRlZC5jb25jYXQobmV3TG5ncyk7XG4gICAgICB0aGlzLmxvYWRSZXNvdXJjZXMoZnVuY3Rpb24gKGVycikge1xuICAgICAgICBkZWZlcnJlZC5yZXNvbHZlKCk7XG4gICAgICAgIGlmIChjYWxsYmFjaykgY2FsbGJhY2soZXJyKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGRlZmVycmVkO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJkaXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZGlyKGxuZykge1xuICAgICAgaWYgKCFsbmcpIGxuZyA9IHRoaXMubGFuZ3VhZ2VzICYmIHRoaXMubGFuZ3VhZ2VzLmxlbmd0aCA+IDAgPyB0aGlzLmxhbmd1YWdlc1swXSA6IHRoaXMubGFuZ3VhZ2U7XG4gICAgICBpZiAoIWxuZykgcmV0dXJuICdydGwnO1xuICAgICAgdmFyIHJ0bExuZ3MgPSBbJ2FyJywgJ3NodScsICdzcXInLCAnc3NoJywgJ3hhYScsICd5aGQnLCAneXVkJywgJ2FhbycsICdhYmgnLCAnYWJ2JywgJ2FjbScsICdhY3EnLCAnYWN3JywgJ2FjeCcsICdhY3knLCAnYWRmJywgJ2FkcycsICdhZWInLCAnYWVjJywgJ2FmYicsICdhanAnLCAnYXBjJywgJ2FwZCcsICdhcmInLCAnYXJxJywgJ2FycycsICdhcnknLCAnYXJ6JywgJ2F1eicsICdhdmwnLCAnYXloJywgJ2F5bCcsICdheW4nLCAnYXlwJywgJ2JieicsICdwZ2EnLCAnaGUnLCAnaXcnLCAncHMnLCAncGJ0JywgJ3BidScsICdwc3QnLCAncHJwJywgJ3ByZCcsICd1ZycsICd1cicsICd5ZGQnLCAneWRzJywgJ3lpaCcsICdqaScsICd5aScsICdoYm8nLCAnbWVuJywgJ3htbicsICdmYScsICdqcHInLCAncGVvJywgJ3BlcycsICdwcnMnLCAnZHYnLCAnc2FtJ107XG4gICAgICByZXR1cm4gcnRsTG5ncy5pbmRleE9mKHRoaXMuc2VydmljZXMubGFuZ3VhZ2VVdGlscy5nZXRMYW5ndWFnZVBhcnRGcm9tQ29kZShsbmcpKSA+PSAwID8gJ3J0bCcgOiAnbHRyJztcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY3JlYXRlSW5zdGFuY2VcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY3JlYXRlSW5zdGFuY2UoKSB7XG4gICAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge307XG4gICAgICB2YXIgY2FsbGJhY2sgPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiBuZXcgSTE4bihvcHRpb25zLCBjYWxsYmFjayk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNsb25lSW5zdGFuY2VcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY2xvbmVJbnN0YW5jZSgpIHtcbiAgICAgIHZhciBfdGhpczggPSB0aGlzO1xuXG4gICAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge307XG4gICAgICB2YXIgY2FsbGJhY2sgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IG5vb3A7XG5cbiAgICAgIHZhciBtZXJnZWRPcHRpb25zID0gX29iamVjdFNwcmVhZCh7fSwgdGhpcy5vcHRpb25zLCBvcHRpb25zLCB7XG4gICAgICAgIGlzQ2xvbmU6IHRydWVcbiAgICAgIH0pO1xuXG4gICAgICB2YXIgY2xvbmUgPSBuZXcgSTE4bihtZXJnZWRPcHRpb25zKTtcbiAgICAgIHZhciBtZW1iZXJzVG9Db3B5ID0gWydzdG9yZScsICdzZXJ2aWNlcycsICdsYW5ndWFnZSddO1xuICAgICAgbWVtYmVyc1RvQ29weS5mb3JFYWNoKGZ1bmN0aW9uIChtKSB7XG4gICAgICAgIGNsb25lW21dID0gX3RoaXM4W21dO1xuICAgICAgfSk7XG4gICAgICBjbG9uZS5zZXJ2aWNlcyA9IF9vYmplY3RTcHJlYWQoe30sIHRoaXMuc2VydmljZXMpO1xuICAgICAgY2xvbmUuc2VydmljZXMudXRpbHMgPSB7XG4gICAgICAgIGhhc0xvYWRlZE5hbWVzcGFjZTogY2xvbmUuaGFzTG9hZGVkTmFtZXNwYWNlLmJpbmQoY2xvbmUpXG4gICAgICB9O1xuICAgICAgY2xvbmUudHJhbnNsYXRvciA9IG5ldyBUcmFuc2xhdG9yKGNsb25lLnNlcnZpY2VzLCBjbG9uZS5vcHRpb25zKTtcbiAgICAgIGNsb25lLnRyYW5zbGF0b3Iub24oJyonLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgZm9yICh2YXIgX2xlbjQgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW40ID4gMSA/IF9sZW40IC0gMSA6IDApLCBfa2V5NCA9IDE7IF9rZXk0IDwgX2xlbjQ7IF9rZXk0KyspIHtcbiAgICAgICAgICBhcmdzW19rZXk0IC0gMV0gPSBhcmd1bWVudHNbX2tleTRdO1xuICAgICAgICB9XG5cbiAgICAgICAgY2xvbmUuZW1pdC5hcHBseShjbG9uZSwgW2V2ZW50XS5jb25jYXQoYXJncykpO1xuICAgICAgfSk7XG4gICAgICBjbG9uZS5pbml0KG1lcmdlZE9wdGlvbnMsIGNhbGxiYWNrKTtcbiAgICAgIGNsb25lLnRyYW5zbGF0b3Iub3B0aW9ucyA9IGNsb25lLm9wdGlvbnM7XG4gICAgICBjbG9uZS50cmFuc2xhdG9yLmJhY2tlbmRDb25uZWN0b3Iuc2VydmljZXMudXRpbHMgPSB7XG4gICAgICAgIGhhc0xvYWRlZE5hbWVzcGFjZTogY2xvbmUuaGFzTG9hZGVkTmFtZXNwYWNlLmJpbmQoY2xvbmUpXG4gICAgICB9O1xuICAgICAgcmV0dXJuIGNsb25lO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJ0b0pTT05cIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gdG9KU09OKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zLFxuICAgICAgICBzdG9yZTogdGhpcy5zdG9yZSxcbiAgICAgICAgbGFuZ3VhZ2U6IHRoaXMubGFuZ3VhZ2UsXG4gICAgICAgIGxhbmd1YWdlczogdGhpcy5sYW5ndWFnZXNcbiAgICAgIH07XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIEkxOG47XG59KEV2ZW50RW1pdHRlcik7XG5cbnZhciBpMThuZXh0ID0gbmV3IEkxOG4oKTtcblxuZXhwb3J0IGRlZmF1bHQgaTE4bmV4dDtcbiIsImltcG9ydCBfY2xhc3NDYWxsQ2hlY2sgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY2xhc3NDYWxsQ2hlY2snO1xuaW1wb3J0IF9jcmVhdGVDbGFzcyBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVDbGFzcyc7XG5cbnZhciBhcnIgPSBbXTtcbnZhciBlYWNoID0gYXJyLmZvckVhY2g7XG52YXIgc2xpY2UgPSBhcnIuc2xpY2U7XG5mdW5jdGlvbiBkZWZhdWx0cyhvYmopIHtcbiAgZWFjaC5jYWxsKHNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKSwgZnVuY3Rpb24gKHNvdXJjZSkge1xuICAgIGlmIChzb3VyY2UpIHtcbiAgICAgIGZvciAodmFyIHByb3AgaW4gc291cmNlKSB7XG4gICAgICAgIGlmIChvYmpbcHJvcF0gPT09IHVuZGVmaW5lZCkgb2JqW3Byb3BdID0gc291cmNlW3Byb3BdO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG4gIHJldHVybiBvYmo7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb250cm9sLXJlZ2V4XG52YXIgZmllbGRDb250ZW50UmVnRXhwID0gL15bXFx1MDAwOVxcdTAwMjAtXFx1MDA3ZVxcdTAwODAtXFx1MDBmZl0rJC87XG5cbnZhciBzZXJpYWxpemVDb29raWUgPSBmdW5jdGlvbiBzZXJpYWxpemVDb29raWUobmFtZSwgdmFsLCBvcHRpb25zKSB7XG4gIHZhciBvcHQgPSBvcHRpb25zIHx8IHt9O1xuICBvcHQucGF0aCA9IG9wdC5wYXRoIHx8ICcvJztcbiAgdmFyIHZhbHVlID0gZW5jb2RlVVJJQ29tcG9uZW50KHZhbCk7XG4gIHZhciBzdHIgPSBuYW1lICsgJz0nICsgdmFsdWU7XG5cbiAgaWYgKG9wdC5tYXhBZ2UgPiAwKSB7XG4gICAgdmFyIG1heEFnZSA9IG9wdC5tYXhBZ2UgLSAwO1xuICAgIGlmIChpc05hTihtYXhBZ2UpKSB0aHJvdyBuZXcgRXJyb3IoJ21heEFnZSBzaG91bGQgYmUgYSBOdW1iZXInKTtcbiAgICBzdHIgKz0gJzsgTWF4LUFnZT0nICsgTWF0aC5mbG9vcihtYXhBZ2UpO1xuICB9XG5cbiAgaWYgKG9wdC5kb21haW4pIHtcbiAgICBpZiAoIWZpZWxkQ29udGVudFJlZ0V4cC50ZXN0KG9wdC5kb21haW4pKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb24gZG9tYWluIGlzIGludmFsaWQnKTtcbiAgICB9XG5cbiAgICBzdHIgKz0gJzsgRG9tYWluPScgKyBvcHQuZG9tYWluO1xuICB9XG5cbiAgaWYgKG9wdC5wYXRoKSB7XG4gICAgaWYgKCFmaWVsZENvbnRlbnRSZWdFeHAudGVzdChvcHQucGF0aCkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ29wdGlvbiBwYXRoIGlzIGludmFsaWQnKTtcbiAgICB9XG5cbiAgICBzdHIgKz0gJzsgUGF0aD0nICsgb3B0LnBhdGg7XG4gIH1cblxuICBpZiAob3B0LmV4cGlyZXMpIHtcbiAgICBpZiAodHlwZW9mIG9wdC5leHBpcmVzLnRvVVRDU3RyaW5nICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb24gZXhwaXJlcyBpcyBpbnZhbGlkJyk7XG4gICAgfVxuXG4gICAgc3RyICs9ICc7IEV4cGlyZXM9JyArIG9wdC5leHBpcmVzLnRvVVRDU3RyaW5nKCk7XG4gIH1cblxuICBpZiAob3B0Lmh0dHBPbmx5KSBzdHIgKz0gJzsgSHR0cE9ubHknO1xuICBpZiAob3B0LnNlY3VyZSkgc3RyICs9ICc7IFNlY3VyZSc7XG5cbiAgaWYgKG9wdC5zYW1lU2l0ZSkge1xuICAgIHZhciBzYW1lU2l0ZSA9IHR5cGVvZiBvcHQuc2FtZVNpdGUgPT09ICdzdHJpbmcnID8gb3B0LnNhbWVTaXRlLnRvTG93ZXJDYXNlKCkgOiBvcHQuc2FtZVNpdGU7XG5cbiAgICBzd2l0Y2ggKHNhbWVTaXRlKSB7XG4gICAgICBjYXNlIHRydWU6XG4gICAgICAgIHN0ciArPSAnOyBTYW1lU2l0ZT1TdHJpY3QnO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnbGF4JzpcbiAgICAgICAgc3RyICs9ICc7IFNhbWVTaXRlPUxheCc7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdzdHJpY3QnOlxuICAgICAgICBzdHIgKz0gJzsgU2FtZVNpdGU9U3RyaWN0JztcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ25vbmUnOlxuICAgICAgICBzdHIgKz0gJzsgU2FtZVNpdGU9Tm9uZSc7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb24gc2FtZVNpdGUgaXMgaW52YWxpZCcpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdHI7XG59O1xuXG52YXIgY29va2llID0ge1xuICBjcmVhdGU6IGZ1bmN0aW9uIGNyZWF0ZShuYW1lLCB2YWx1ZSwgbWludXRlcywgZG9tYWluKSB7XG4gICAgdmFyIGNvb2tpZU9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IHtcbiAgICAgIHBhdGg6ICcvJyxcbiAgICAgIHNhbWVTaXRlOiAnc3RyaWN0J1xuICAgIH07XG5cbiAgICBpZiAobWludXRlcykge1xuICAgICAgY29va2llT3B0aW9ucy5leHBpcmVzID0gbmV3IERhdGUoKTtcbiAgICAgIGNvb2tpZU9wdGlvbnMuZXhwaXJlcy5zZXRUaW1lKGNvb2tpZU9wdGlvbnMuZXhwaXJlcy5nZXRUaW1lKCkgKyBtaW51dGVzICogNjAgKiAxMDAwKTtcbiAgICB9XG5cbiAgICBpZiAoZG9tYWluKSBjb29raWVPcHRpb25zLmRvbWFpbiA9IGRvbWFpbjtcbiAgICBkb2N1bWVudC5jb29raWUgPSBzZXJpYWxpemVDb29raWUobmFtZSwgZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKSwgY29va2llT3B0aW9ucyk7XG4gIH0sXG4gIHJlYWQ6IGZ1bmN0aW9uIHJlYWQobmFtZSkge1xuICAgIHZhciBuYW1lRVEgPSBuYW1lICsgJz0nO1xuICAgIHZhciBjYSA9IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOycpO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjYS5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGMgPSBjYVtpXTtcblxuICAgICAgd2hpbGUgKGMuY2hhckF0KDApID09PSAnICcpIHtcbiAgICAgICAgYyA9IGMuc3Vic3RyaW5nKDEsIGMubGVuZ3RoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGMuaW5kZXhPZihuYW1lRVEpID09PSAwKSByZXR1cm4gYy5zdWJzdHJpbmcobmFtZUVRLmxlbmd0aCwgYy5sZW5ndGgpO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9LFxuICByZW1vdmU6IGZ1bmN0aW9uIHJlbW92ZShuYW1lKSB7XG4gICAgdGhpcy5jcmVhdGUobmFtZSwgJycsIC0xKTtcbiAgfVxufTtcbnZhciBjb29raWUkMSA9IHtcbiAgbmFtZTogJ2Nvb2tpZScsXG4gIGxvb2t1cDogZnVuY3Rpb24gbG9va3VwKG9wdGlvbnMpIHtcbiAgICB2YXIgZm91bmQ7XG5cbiAgICBpZiAob3B0aW9ucy5sb29rdXBDb29raWUgJiYgdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgdmFyIGMgPSBjb29raWUucmVhZChvcHRpb25zLmxvb2t1cENvb2tpZSk7XG4gICAgICBpZiAoYykgZm91bmQgPSBjO1xuICAgIH1cblxuICAgIHJldHVybiBmb3VuZDtcbiAgfSxcbiAgY2FjaGVVc2VyTGFuZ3VhZ2U6IGZ1bmN0aW9uIGNhY2hlVXNlckxhbmd1YWdlKGxuZywgb3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zLmxvb2t1cENvb2tpZSAmJiB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb29raWUuY3JlYXRlKG9wdGlvbnMubG9va3VwQ29va2llLCBsbmcsIG9wdGlvbnMuY29va2llTWludXRlcywgb3B0aW9ucy5jb29raWVEb21haW4sIG9wdGlvbnMuY29va2llT3B0aW9ucyk7XG4gICAgfVxuICB9XG59O1xuXG52YXIgcXVlcnlzdHJpbmcgPSB7XG4gIG5hbWU6ICdxdWVyeXN0cmluZycsXG4gIGxvb2t1cDogZnVuY3Rpb24gbG9va3VwKG9wdGlvbnMpIHtcbiAgICB2YXIgZm91bmQ7XG5cbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHZhciBxdWVyeSA9IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDEpO1xuICAgICAgdmFyIHBhcmFtcyA9IHF1ZXJ5LnNwbGl0KCcmJyk7XG5cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFyYW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBwb3MgPSBwYXJhbXNbaV0uaW5kZXhPZignPScpO1xuXG4gICAgICAgIGlmIChwb3MgPiAwKSB7XG4gICAgICAgICAgdmFyIGtleSA9IHBhcmFtc1tpXS5zdWJzdHJpbmcoMCwgcG9zKTtcblxuICAgICAgICAgIGlmIChrZXkgPT09IG9wdGlvbnMubG9va3VwUXVlcnlzdHJpbmcpIHtcbiAgICAgICAgICAgIGZvdW5kID0gcGFyYW1zW2ldLnN1YnN0cmluZyhwb3MgKyAxKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZm91bmQ7XG4gIH1cbn07XG5cbnZhciBoYXNMb2NhbFN0b3JhZ2VTdXBwb3J0ID0gbnVsbDtcblxudmFyIGxvY2FsU3RvcmFnZUF2YWlsYWJsZSA9IGZ1bmN0aW9uIGxvY2FsU3RvcmFnZUF2YWlsYWJsZSgpIHtcbiAgaWYgKGhhc0xvY2FsU3RvcmFnZVN1cHBvcnQgIT09IG51bGwpIHJldHVybiBoYXNMb2NhbFN0b3JhZ2VTdXBwb3J0O1xuXG4gIHRyeSB7XG4gICAgaGFzTG9jYWxTdG9yYWdlU3VwcG9ydCA9IHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmxvY2FsU3RvcmFnZSAhPT0gbnVsbDtcbiAgICB2YXIgdGVzdEtleSA9ICdpMThuZXh0LnRyYW5zbGF0ZS5ib28nO1xuICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0ZXN0S2V5LCAnZm9vJyk7XG4gICAgd2luZG93LmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRlc3RLZXkpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgaGFzTG9jYWxTdG9yYWdlU3VwcG9ydCA9IGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIGhhc0xvY2FsU3RvcmFnZVN1cHBvcnQ7XG59O1xuXG52YXIgbG9jYWxTdG9yYWdlID0ge1xuICBuYW1lOiAnbG9jYWxTdG9yYWdlJyxcbiAgbG9va3VwOiBmdW5jdGlvbiBsb29rdXAob3B0aW9ucykge1xuICAgIHZhciBmb3VuZDtcblxuICAgIGlmIChvcHRpb25zLmxvb2t1cExvY2FsU3RvcmFnZSAmJiBsb2NhbFN0b3JhZ2VBdmFpbGFibGUoKSkge1xuICAgICAgdmFyIGxuZyA9IHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShvcHRpb25zLmxvb2t1cExvY2FsU3RvcmFnZSk7XG4gICAgICBpZiAobG5nKSBmb3VuZCA9IGxuZztcbiAgICB9XG5cbiAgICByZXR1cm4gZm91bmQ7XG4gIH0sXG4gIGNhY2hlVXNlckxhbmd1YWdlOiBmdW5jdGlvbiBjYWNoZVVzZXJMYW5ndWFnZShsbmcsIG9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucy5sb29rdXBMb2NhbFN0b3JhZ2UgJiYgbG9jYWxTdG9yYWdlQXZhaWxhYmxlKCkpIHtcbiAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShvcHRpb25zLmxvb2t1cExvY2FsU3RvcmFnZSwgbG5nKTtcbiAgICB9XG4gIH1cbn07XG5cbnZhciBoYXNTZXNzaW9uU3RvcmFnZVN1cHBvcnQgPSBudWxsO1xuXG52YXIgc2Vzc2lvblN0b3JhZ2VBdmFpbGFibGUgPSBmdW5jdGlvbiBzZXNzaW9uU3RvcmFnZUF2YWlsYWJsZSgpIHtcbiAgaWYgKGhhc1Nlc3Npb25TdG9yYWdlU3VwcG9ydCAhPT0gbnVsbCkgcmV0dXJuIGhhc1Nlc3Npb25TdG9yYWdlU3VwcG9ydDtcblxuICB0cnkge1xuICAgIGhhc1Nlc3Npb25TdG9yYWdlU3VwcG9ydCA9IHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LnNlc3Npb25TdG9yYWdlICE9PSBudWxsO1xuICAgIHZhciB0ZXN0S2V5ID0gJ2kxOG5leHQudHJhbnNsYXRlLmJvbyc7XG4gICAgd2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGVzdEtleSwgJ2ZvbycpO1xuICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKHRlc3RLZXkpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgaGFzU2Vzc2lvblN0b3JhZ2VTdXBwb3J0ID0gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gaGFzU2Vzc2lvblN0b3JhZ2VTdXBwb3J0O1xufTtcblxudmFyIHNlc3Npb25TdG9yYWdlID0ge1xuICBuYW1lOiAnc2Vzc2lvblN0b3JhZ2UnLFxuICBsb29rdXA6IGZ1bmN0aW9uIGxvb2t1cChvcHRpb25zKSB7XG4gICAgdmFyIGZvdW5kO1xuXG4gICAgaWYgKG9wdGlvbnMubG9va3VwU2Vzc2lvblN0b3JhZ2UgJiYgc2Vzc2lvblN0b3JhZ2VBdmFpbGFibGUoKSkge1xuICAgICAgdmFyIGxuZyA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKG9wdGlvbnMubG9va3VwU2Vzc2lvblN0b3JhZ2UpO1xuICAgICAgaWYgKGxuZykgZm91bmQgPSBsbmc7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvdW5kO1xuICB9LFxuICBjYWNoZVVzZXJMYW5ndWFnZTogZnVuY3Rpb24gY2FjaGVVc2VyTGFuZ3VhZ2UobG5nLCBvcHRpb25zKSB7XG4gICAgaWYgKG9wdGlvbnMubG9va3VwU2Vzc2lvblN0b3JhZ2UgJiYgc2Vzc2lvblN0b3JhZ2VBdmFpbGFibGUoKSkge1xuICAgICAgd2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0ob3B0aW9ucy5sb29rdXBTZXNzaW9uU3RvcmFnZSwgbG5nKTtcbiAgICB9XG4gIH1cbn07XG5cbnZhciBuYXZpZ2F0b3IkMSA9IHtcbiAgbmFtZTogJ25hdmlnYXRvcicsXG4gIGxvb2t1cDogZnVuY3Rpb24gbG9va3VwKG9wdGlvbnMpIHtcbiAgICB2YXIgZm91bmQgPSBbXTtcblxuICAgIGlmICh0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgaWYgKG5hdmlnYXRvci5sYW5ndWFnZXMpIHtcbiAgICAgICAgLy8gY2hyb21lIG9ubHk7IG5vdCBhbiBhcnJheSwgc28gY2FuJ3QgdXNlIC5wdXNoLmFwcGx5IGluc3RlYWQgb2YgaXRlcmF0aW5nXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmF2aWdhdG9yLmxhbmd1YWdlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGZvdW5kLnB1c2gobmF2aWdhdG9yLmxhbmd1YWdlc1tpXSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKG5hdmlnYXRvci51c2VyTGFuZ3VhZ2UpIHtcbiAgICAgICAgZm91bmQucHVzaChuYXZpZ2F0b3IudXNlckxhbmd1YWdlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG5hdmlnYXRvci5sYW5ndWFnZSkge1xuICAgICAgICBmb3VuZC5wdXNoKG5hdmlnYXRvci5sYW5ndWFnZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvdW5kLmxlbmd0aCA+IDAgPyBmb3VuZCA6IHVuZGVmaW5lZDtcbiAgfVxufTtcblxudmFyIGh0bWxUYWcgPSB7XG4gIG5hbWU6ICdodG1sVGFnJyxcbiAgbG9va3VwOiBmdW5jdGlvbiBsb29rdXAob3B0aW9ucykge1xuICAgIHZhciBmb3VuZDtcbiAgICB2YXIgaHRtbFRhZyA9IG9wdGlvbnMuaHRtbFRhZyB8fCAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJyA/IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCA6IG51bGwpO1xuXG4gICAgaWYgKGh0bWxUYWcgJiYgdHlwZW9mIGh0bWxUYWcuZ2V0QXR0cmlidXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBmb3VuZCA9IGh0bWxUYWcuZ2V0QXR0cmlidXRlKCdsYW5nJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvdW5kO1xuICB9XG59O1xuXG52YXIgcGF0aCA9IHtcbiAgbmFtZTogJ3BhdGgnLFxuICBsb29rdXA6IGZ1bmN0aW9uIGxvb2t1cChvcHRpb25zKSB7XG4gICAgdmFyIGZvdW5kO1xuXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUubWF0Y2goL1xcLyhbYS16QS1aLV0qKS9nKTtcblxuICAgICAgaWYgKGxhbmd1YWdlIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmxvb2t1cEZyb21QYXRoSW5kZXggPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBsYW5ndWFnZVtvcHRpb25zLmxvb2t1cEZyb21QYXRoSW5kZXhdICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBmb3VuZCA9IGxhbmd1YWdlW29wdGlvbnMubG9va3VwRnJvbVBhdGhJbmRleF0ucmVwbGFjZSgnLycsICcnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmb3VuZCA9IGxhbmd1YWdlWzBdLnJlcGxhY2UoJy8nLCAnJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZm91bmQ7XG4gIH1cbn07XG5cbnZhciBzdWJkb21haW4gPSB7XG4gIG5hbWU6ICdzdWJkb21haW4nLFxuICBsb29rdXA6IGZ1bmN0aW9uIGxvb2t1cChvcHRpb25zKSB7XG4gICAgdmFyIGZvdW5kO1xuXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB2YXIgbGFuZ3VhZ2UgPSB3aW5kb3cubG9jYXRpb24uaHJlZi5tYXRjaCgvKD86aHR0cFtzXSpcXDpcXC9cXC8pKiguKj8pXFwuKD89W15cXC9dKlxcLi57Miw1fSkvZ2kpO1xuXG4gICAgICBpZiAobGFuZ3VhZ2UgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMubG9va3VwRnJvbVN1YmRvbWFpbkluZGV4ID09PSAnbnVtYmVyJykge1xuICAgICAgICAgIGZvdW5kID0gbGFuZ3VhZ2Vbb3B0aW9ucy5sb29rdXBGcm9tU3ViZG9tYWluSW5kZXhdLnJlcGxhY2UoJ2h0dHA6Ly8nLCAnJykucmVwbGFjZSgnaHR0cHM6Ly8nLCAnJykucmVwbGFjZSgnLicsICcnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmb3VuZCA9IGxhbmd1YWdlWzBdLnJlcGxhY2UoJ2h0dHA6Ly8nLCAnJykucmVwbGFjZSgnaHR0cHM6Ly8nLCAnJykucmVwbGFjZSgnLicsICcnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmb3VuZDtcbiAgfVxufTtcblxuZnVuY3Rpb24gZ2V0RGVmYXVsdHMoKSB7XG4gIHJldHVybiB7XG4gICAgb3JkZXI6IFsncXVlcnlzdHJpbmcnLCAnY29va2llJywgJ2xvY2FsU3RvcmFnZScsICdzZXNzaW9uU3RvcmFnZScsICduYXZpZ2F0b3InLCAnaHRtbFRhZyddLFxuICAgIGxvb2t1cFF1ZXJ5c3RyaW5nOiAnbG5nJyxcbiAgICBsb29rdXBDb29raWU6ICdpMThuZXh0JyxcbiAgICBsb29rdXBMb2NhbFN0b3JhZ2U6ICdpMThuZXh0TG5nJyxcbiAgICBsb29rdXBTZXNzaW9uU3RvcmFnZTogJ2kxOG5leHRMbmcnLFxuICAgIC8vIGNhY2hlIHVzZXIgbGFuZ3VhZ2VcbiAgICBjYWNoZXM6IFsnbG9jYWxTdG9yYWdlJ10sXG4gICAgZXhjbHVkZUNhY2hlRm9yOiBbJ2NpbW9kZSddIC8vY29va2llTWludXRlczogMTAsXG4gICAgLy9jb29raWVEb21haW46ICdteURvbWFpbidcblxuICB9O1xufVxuXG52YXIgQnJvd3NlciA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIEJyb3dzZXIoc2VydmljZXMpIHtcbiAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQnJvd3Nlcik7XG5cbiAgICB0aGlzLnR5cGUgPSAnbGFuZ3VhZ2VEZXRlY3Rvcic7XG4gICAgdGhpcy5kZXRlY3RvcnMgPSB7fTtcbiAgICB0aGlzLmluaXQoc2VydmljZXMsIG9wdGlvbnMpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKEJyb3dzZXIsIFt7XG4gICAga2V5OiBcImluaXRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gaW5pdChzZXJ2aWNlcykge1xuICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuICAgICAgdmFyIGkxOG5PcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgYXJndW1lbnRzWzJdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMl0gOiB7fTtcbiAgICAgIHRoaXMuc2VydmljZXMgPSBzZXJ2aWNlcztcbiAgICAgIHRoaXMub3B0aW9ucyA9IGRlZmF1bHRzKG9wdGlvbnMsIHRoaXMub3B0aW9ucyB8fCB7fSwgZ2V0RGVmYXVsdHMoKSk7IC8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG5cbiAgICAgIGlmICh0aGlzLm9wdGlvbnMubG9va3VwRnJvbVVybEluZGV4KSB0aGlzLm9wdGlvbnMubG9va3VwRnJvbVBhdGhJbmRleCA9IHRoaXMub3B0aW9ucy5sb29rdXBGcm9tVXJsSW5kZXg7XG4gICAgICB0aGlzLmkxOG5PcHRpb25zID0gaTE4bk9wdGlvbnM7XG4gICAgICB0aGlzLmFkZERldGVjdG9yKGNvb2tpZSQxKTtcbiAgICAgIHRoaXMuYWRkRGV0ZWN0b3IocXVlcnlzdHJpbmcpO1xuICAgICAgdGhpcy5hZGREZXRlY3Rvcihsb2NhbFN0b3JhZ2UpO1xuICAgICAgdGhpcy5hZGREZXRlY3RvcihzZXNzaW9uU3RvcmFnZSk7XG4gICAgICB0aGlzLmFkZERldGVjdG9yKG5hdmlnYXRvciQxKTtcbiAgICAgIHRoaXMuYWRkRGV0ZWN0b3IoaHRtbFRhZyk7XG4gICAgICB0aGlzLmFkZERldGVjdG9yKHBhdGgpO1xuICAgICAgdGhpcy5hZGREZXRlY3RvcihzdWJkb21haW4pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJhZGREZXRlY3RvclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBhZGREZXRlY3RvcihkZXRlY3Rvcikge1xuICAgICAgdGhpcy5kZXRlY3RvcnNbZGV0ZWN0b3IubmFtZV0gPSBkZXRlY3RvcjtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZGV0ZWN0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGRldGVjdChkZXRlY3Rpb25PcmRlcikge1xuICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgaWYgKCFkZXRlY3Rpb25PcmRlcikgZGV0ZWN0aW9uT3JkZXIgPSB0aGlzLm9wdGlvbnMub3JkZXI7XG4gICAgICB2YXIgZGV0ZWN0ZWQgPSBbXTtcbiAgICAgIGRldGVjdGlvbk9yZGVyLmZvckVhY2goZnVuY3Rpb24gKGRldGVjdG9yTmFtZSkge1xuICAgICAgICBpZiAoX3RoaXMuZGV0ZWN0b3JzW2RldGVjdG9yTmFtZV0pIHtcbiAgICAgICAgICB2YXIgbG9va3VwID0gX3RoaXMuZGV0ZWN0b3JzW2RldGVjdG9yTmFtZV0ubG9va3VwKF90aGlzLm9wdGlvbnMpO1xuXG4gICAgICAgICAgaWYgKGxvb2t1cCAmJiB0eXBlb2YgbG9va3VwID09PSAnc3RyaW5nJykgbG9va3VwID0gW2xvb2t1cF07XG4gICAgICAgICAgaWYgKGxvb2t1cCkgZGV0ZWN0ZWQgPSBkZXRlY3RlZC5jb25jYXQobG9va3VwKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBpZiAodGhpcy5zZXJ2aWNlcy5sYW5ndWFnZVV0aWxzLmdldEJlc3RNYXRjaEZyb21Db2RlcykgcmV0dXJuIGRldGVjdGVkOyAvLyBuZXcgaTE4bmV4dCB2MTkuNS4wXG5cbiAgICAgIHJldHVybiBkZXRlY3RlZC5sZW5ndGggPiAwID8gZGV0ZWN0ZWRbMF0gOiBudWxsOyAvLyBhIGxpdHRsZSBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNhY2hlVXNlckxhbmd1YWdlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNhY2hlVXNlckxhbmd1YWdlKGxuZywgY2FjaGVzKSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgaWYgKCFjYWNoZXMpIGNhY2hlcyA9IHRoaXMub3B0aW9ucy5jYWNoZXM7XG4gICAgICBpZiAoIWNhY2hlcykgcmV0dXJuO1xuICAgICAgaWYgKHRoaXMub3B0aW9ucy5leGNsdWRlQ2FjaGVGb3IgJiYgdGhpcy5vcHRpb25zLmV4Y2x1ZGVDYWNoZUZvci5pbmRleE9mKGxuZykgPiAtMSkgcmV0dXJuO1xuICAgICAgY2FjaGVzLmZvckVhY2goZnVuY3Rpb24gKGNhY2hlTmFtZSkge1xuICAgICAgICBpZiAoX3RoaXMyLmRldGVjdG9yc1tjYWNoZU5hbWVdKSBfdGhpczIuZGV0ZWN0b3JzW2NhY2hlTmFtZV0uY2FjaGVVc2VyTGFuZ3VhZ2UobG5nLCBfdGhpczIub3B0aW9ucyk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gQnJvd3Nlcjtcbn0oKTtcblxuQnJvd3Nlci50eXBlID0gJ2xhbmd1YWdlRGV0ZWN0b3InO1xuXG5leHBvcnQgZGVmYXVsdCBCcm93c2VyO1xuIiwiaW1wb3J0IF9jbGFzc0NhbGxDaGVjayBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jbGFzc0NhbGxDaGVja1wiO1xuaW1wb3J0IF9jcmVhdGVDbGFzcyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzc1wiO1xuaW1wb3J0IF9kZWZpbmVQcm9wZXJ0eSBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9kZWZpbmVQcm9wZXJ0eVwiO1xuXG5mdW5jdGlvbiBvd25LZXlzKG9iamVjdCwgZW51bWVyYWJsZU9ubHkpIHsgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpOyBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykgeyB2YXIgc3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMob2JqZWN0KTsgaWYgKGVudW1lcmFibGVPbmx5KSB7IHN5bWJvbHMgPSBzeW1ib2xzLmZpbHRlcihmdW5jdGlvbiAoc3ltKSB7IHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgc3ltKS5lbnVtZXJhYmxlOyB9KTsgfSBrZXlzLnB1c2guYXBwbHkoa2V5cywgc3ltYm9scyk7IH0gcmV0dXJuIGtleXM7IH1cblxuZnVuY3Rpb24gX29iamVjdFNwcmVhZCh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXSAhPSBudWxsID8gYXJndW1lbnRzW2ldIDoge307IGlmIChpICUgMikgeyBvd25LZXlzKE9iamVjdChzb3VyY2UpLCB0cnVlKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgX2RlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBzb3VyY2Vba2V5XSk7IH0pOyB9IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoc291cmNlKSk7IH0gZWxzZSB7IG93bktleXMoT2JqZWN0KHNvdXJjZSkpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc291cmNlLCBrZXkpKTsgfSk7IH0gfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG52YXIgZGVmYXVsdE9wdGlvbnMgPSB7XG4gIGJpbmRJMThuOiAnbGFuZ3VhZ2VDaGFuZ2VkJyxcbiAgYmluZEkxOG5TdG9yZTogJycsXG4gIHRyYW5zRW1wdHlOb2RlVmFsdWU6ICcnLFxuICB0cmFuc1N1cHBvcnRCYXNpY0h0bWxOb2RlczogdHJ1ZSxcbiAgdHJhbnNXcmFwVGV4dE5vZGVzOiAnJyxcbiAgdHJhbnNLZWVwQmFzaWNIdG1sTm9kZXNGb3I6IFsnYnInLCAnc3Ryb25nJywgJ2knLCAncCddLFxuICB1c2VTdXNwZW5zZTogdHJ1ZVxufTtcbnZhciBpMThuSW5zdGFuY2U7XG5leHBvcnQgdmFyIEkxOG5Db250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCgpO1xuZXhwb3J0IGZ1bmN0aW9uIHNldERlZmF1bHRzKCkge1xuICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge307XG4gIGRlZmF1bHRPcHRpb25zID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBkZWZhdWx0T3B0aW9ucyksIG9wdGlvbnMpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRzKCkge1xuICByZXR1cm4gZGVmYXVsdE9wdGlvbnM7XG59XG5leHBvcnQgdmFyIFJlcG9ydE5hbWVzcGFjZXMgPSBmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIFJlcG9ydE5hbWVzcGFjZXMoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlcG9ydE5hbWVzcGFjZXMpO1xuXG4gICAgdGhpcy51c2VkTmFtZXNwYWNlcyA9IHt9O1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFJlcG9ydE5hbWVzcGFjZXMsIFt7XG4gICAga2V5OiBcImFkZFVzZWROYW1lc3BhY2VzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGFkZFVzZWROYW1lc3BhY2VzKG5hbWVzcGFjZXMpIHtcbiAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgIG5hbWVzcGFjZXMuZm9yRWFjaChmdW5jdGlvbiAobnMpIHtcbiAgICAgICAgaWYgKCFfdGhpcy51c2VkTmFtZXNwYWNlc1tuc10pIF90aGlzLnVzZWROYW1lc3BhY2VzW25zXSA9IHRydWU7XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0VXNlZE5hbWVzcGFjZXNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0VXNlZE5hbWVzcGFjZXMoKSB7XG4gICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy51c2VkTmFtZXNwYWNlcyk7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIFJlcG9ydE5hbWVzcGFjZXM7XG59KCk7XG5leHBvcnQgZnVuY3Rpb24gc2V0STE4bihpbnN0YW5jZSkge1xuICBpMThuSW5zdGFuY2UgPSBpbnN0YW5jZTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRJMThuKCkge1xuICByZXR1cm4gaTE4bkluc3RhbmNlO1xufVxuZXhwb3J0IHZhciBpbml0UmVhY3RJMThuZXh0ID0ge1xuICB0eXBlOiAnM3JkUGFydHknLFxuICBpbml0OiBmdW5jdGlvbiBpbml0KGluc3RhbmNlKSB7XG4gICAgc2V0RGVmYXVsdHMoaW5zdGFuY2Uub3B0aW9ucy5yZWFjdCk7XG4gICAgc2V0STE4bihpbnN0YW5jZSk7XG4gIH1cbn07XG5leHBvcnQgZnVuY3Rpb24gY29tcG9zZUluaXRpYWxQcm9wcyhGb3JDb21wb25lbnQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChjdHgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHtcbiAgICAgIHZhciBpMThuSW5pdGlhbFByb3BzID0gZ2V0SW5pdGlhbFByb3BzKCk7XG5cbiAgICAgIGlmIChGb3JDb21wb25lbnQuZ2V0SW5pdGlhbFByb3BzKSB7XG4gICAgICAgIEZvckNvbXBvbmVudC5nZXRJbml0aWFsUHJvcHMoY3R4KS50aGVuKGZ1bmN0aW9uIChjb21wb25lbnRzSW5pdGlhbFByb3BzKSB7XG4gICAgICAgICAgcmVzb2x2ZShfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIGNvbXBvbmVudHNJbml0aWFsUHJvcHMpLCBpMThuSW5pdGlhbFByb3BzKSk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzb2x2ZShpMThuSW5pdGlhbFByb3BzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbml0aWFsUHJvcHMoKSB7XG4gIHZhciBpMThuID0gZ2V0STE4bigpO1xuICB2YXIgbmFtZXNwYWNlcyA9IGkxOG4ucmVwb3J0TmFtZXNwYWNlcyA/IGkxOG4ucmVwb3J0TmFtZXNwYWNlcy5nZXRVc2VkTmFtZXNwYWNlcygpIDogW107XG4gIHZhciByZXQgPSB7fTtcbiAgdmFyIGluaXRpYWxJMThuU3RvcmUgPSB7fTtcbiAgaTE4bi5sYW5ndWFnZXMuZm9yRWFjaChmdW5jdGlvbiAobCkge1xuICAgIGluaXRpYWxJMThuU3RvcmVbbF0gPSB7fTtcbiAgICBuYW1lc3BhY2VzLmZvckVhY2goZnVuY3Rpb24gKG5zKSB7XG4gICAgICBpbml0aWFsSTE4blN0b3JlW2xdW25zXSA9IGkxOG4uZ2V0UmVzb3VyY2VCdW5kbGUobCwgbnMpIHx8IHt9O1xuICAgIH0pO1xuICB9KTtcbiAgcmV0LmluaXRpYWxJMThuU3RvcmUgPSBpbml0aWFsSTE4blN0b3JlO1xuICByZXQuaW5pdGlhbExhbmd1YWdlID0gaTE4bi5sYW5ndWFnZTtcbiAgcmV0dXJuIHJldDtcbn0iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qIENvcHlyaWdodCAoYykgSW50ZWwgQ29ycG9yYXRpb24gMjAxOVxuKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuaW1wb3J0IGkxOG4gZnJvbSAnaTE4bmV4dCdcbmltcG9ydCBMYW5ndWFnZURldGVjdG9yIGZyb20gJ2kxOG5leHQtYnJvd3Nlci1sYW5ndWFnZWRldGVjdG9yJ1xuaW1wb3J0IHsgaW5pdFJlYWN0STE4bmV4dCB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5cbmltcG9ydCB0cmFuc2xhdGlvbkVOIGZyb20gJy4vcHVibGljL2xvY2FsZXMvZW4vdHJhbnNsYXRpb24uanNvbidcbmltcG9ydCB0cmFuc2xhdGlvblRFIGZyb20gJy4vcHVibGljL2xvY2FsZXMvdGUvdHJhbnNsYXRpb24uanNvbidcbmltcG9ydCB0cmFuc2xhdGlvbkZSIGZyb20gJy4vcHVibGljL2xvY2FsZXMvZnIvdHJhbnNsYXRpb24uanNvbidcbmltcG9ydCB0cmFuc2xhdGlvbkVTIGZyb20gJy4vcHVibGljL2xvY2FsZXMvZXMvdHJhbnNsYXRpb24uanNvbidcblxuY29uc3QgcmVzb3VyY2VzID0ge1xuICBlbjoge1xuICAgIHRyYW5zbGF0aW9uczogdHJhbnNsYXRpb25FTlxuICB9LFxuICB0ZToge1xuICAgIHRyYW5zbGF0aW9uczogdHJhbnNsYXRpb25URVxuICB9LFxuICBmcjoge1xuICAgIHRyYW5zbGF0aW9uczogdHJhbnNsYXRpb25GUlxuICB9LFxuICBlczoge1xuICAgIHRyYW5zbGF0aW9uczogdHJhbnNsYXRpb25FU1xuICB9XG59XG5cbmkxOG5cbiAgLnVzZShpbml0UmVhY3RJMThuZXh0KVxuICAudXNlKExhbmd1YWdlRGV0ZWN0b3IpXG4gIC5pbml0KHtcbiAgICByZXNvdXJjZXMsXG4gICAgbnM6IFsndHJhbnNsYXRpb25zJ10sXG4gICAgZGVmYXVsdE5TOiAndHJhbnNsYXRpb25zJyxcbiAgICBkZWJ1ZzogZmFsc2UsXG4gICAgZmFsbGJhY2tMbmc6ICdlbicsXG5cbiAgICBpbnRlcnBvbGF0aW9uOiB7XG4gICAgICBlc2NhcGVWYWx1ZTogZmFsc2UsXG4gICAgICBmb3JtYXRTZXBhcmF0b3I6ICcsJ1xuICAgIH0sXG4gICAgcmVhY3Q6XG4gICAge1xuICAgICAgd2FpdDogZmFsc2VcbiAgICB9XG4gIH0pLmNhdGNoKCgpID0+IGNvbnNvbGUuaW5mbygnZXJyb3Igb2NjdXJlZCcpKVxuXG5leHBvcnQgZGVmYXVsdCBpMThuXG4iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qIENvcHlyaWdodCAoYykgSW50ZWwgQ29ycG9yYXRpb24gMjAxOVxuKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHJlbmRlciB9IGZyb20gJ3JlYWN0LWRvbSdcbmltcG9ydCB7IEtWTSB9IGZyb20gJy4vVUknXG5pbXBvcnQgaTE4biBmcm9tICcuLi8uLi9pMThuJ1xuLy8gR2V0IGJyb3dzZXIgbGFuZ3VhZ2VcbmkxOG4uY2hhbmdlTGFuZ3VhZ2UobmF2aWdhdG9yLmxhbmd1YWdlKS5jYXRjaCgoKSA9PiBjb25zb2xlLmluZm8oJ2Vycm9yIG9jY3VyZWQnKSlcblxuY29uc3QgdXJsID0gbmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZilcbmNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXModXJsLnNlYXJjaClcblxucmVuZGVyKDxLVk0gYXV0b0Nvbm5lY3Q9e2ZhbHNlfSBkZXZpY2VJZD17cGFyYW1zLmdldCgnZGV2aWNlSWQnKX0gbXBzU2VydmVyPXtwYXJhbXMuZ2V0KCdtcHNTZXJ2ZXInKSArICcvcmVsYXknfSBhdXRoVG9rZW49XCJhdXRob3JpemF0aW9uXCIgbW91c2VEZWJvdW5jZVRpbWU9ezIwMH0gY2FudmFzSGVpZ2h0PXsnMTAwJSd9IGNhbnZhc1dpZHRoPXsnMTAwJSd9IC8+LCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcja3ZtJykpXG4iLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdGlkOiBtb2R1bGVJZCxcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuIiwiLy8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbl9fd2VicGFja19yZXF1aXJlX18ubiA9IChtb2R1bGUpID0+IHtcblx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG5cdFx0KCkgPT4gKG1vZHVsZVsnZGVmYXVsdCddKSA6XG5cdFx0KCkgPT4gKG1vZHVsZSk7XG5cdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsIHsgYTogZ2V0dGVyIH0pO1xuXHRyZXR1cm4gZ2V0dGVyO1xufTsiLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwiLy8gc3RhcnR1cFxuLy8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4vLyBUaGlzIGVudHJ5IG1vZHVsZSBkb2Vzbid0IHRlbGwgYWJvdXQgaXQncyB0b3AtbGV2ZWwgZGVjbGFyYXRpb25zIHNvIGl0IGNhbid0IGJlIGlubGluZWRcbnZhciBfX3dlYnBhY2tfZXhwb3J0c19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygzMDcpO1xuIl0sIm5hbWVzIjpbInJvb3QiLCJmYWN0b3J5IiwiZXhwb3J0cyIsIm1vZHVsZSIsImRlZmluZSIsImFtZCIsInNlbGYiLCJlIiwiX193ZWJwYWNrX21vZHVsZXNfXyIsInQiLCJ1dGY4Iiwic3RyaW5nVG9CeXRlcyIsImJpbiIsInVuZXNjYXBlIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiYnl0ZXNUb1N0cmluZyIsImRlY29kZVVSSUNvbXBvbmVudCIsImVzY2FwZSIsImEiLCJsZW5ndGgiLCJwdXNoIiwiY2hhckNvZGVBdCIsIlN0cmluZyIsImZyb21DaGFyQ29kZSIsImpvaW4iLCJyb3RsIiwicm90ciIsImVuZGlhbiIsImNvbnN0cnVjdG9yIiwiTnVtYmVyIiwicmFuZG9tQnl0ZXMiLCJNYXRoIiwiZmxvb3IiLCJyYW5kb20iLCJieXRlc1RvV29yZHMiLCJzIiwid29yZHNUb0J5dGVzIiwiYnl0ZXNUb0hleCIsInRvU3RyaW5nIiwiaGV4VG9CeXRlcyIsInBhcnNlSW50Iiwic3Vic3RyIiwiYnl0ZXNUb0Jhc2U2NCIsIm8iLCJpIiwiY2hhckF0IiwiYmFzZTY0VG9CeXRlcyIsInJlcGxhY2UiLCJpbmRleE9mIiwicG93IiwiaXNCdWZmZXIiLCJyZWFkRmxvYXRMRSIsInNsaWNlIiwiX2lzQnVmZmVyIiwiciIsIm4iLCJlbmNvZGluZyIsIkFycmF5IiwicHJvdG90eXBlIiwiY2FsbCIsImlzQXJyYXkiLCJVaW50OEFycmF5IiwibCIsImgiLCJjIiwicCIsImQiLCJ2IiwiYiIsIl9mZiIsInUiLCJfZ2ciLCJmIiwiX2hoIiwiZyIsIl9paSIsIlMiLCJtIiwiXyIsIkMiLCJfYmxvY2tzaXplIiwiX2RpZ2VzdHNpemUiLCJFcnJvciIsImFzQnl0ZXMiLCJhc1N0cmluZyIsIkgiLCJzdXBlciIsInRoaXMiLCJwcm90b2NvbCIsImluZmxhdGUiLCJpbmZsYXRlSW5pdCIsImJwcCIsInN0YXRlIiwiZm9jdXNNb2RlIiwidXNlWlJMRSIsImZyYW1lUmF0ZURlbGF5IiwiY2FudmFzQ3R4Iiwic3BhcmVjYWNoZSIsImJ1dHRvbm1hc2siLCJjYW52YXNDb250cm9sIiwiY2FudmFzIiwibGFzdE1vdXNlTW92ZVRpbWUiLCJEYXRlIiwiZ2V0VGltZSIsImxvZ2dlciIsInNldERlc2tGb2N1cyIsImdldERlc2tGb2N1cyIsInByb2Nlc3NEYXRhIiwib25Qcm9jZXNzRGF0YSIsIm9uU3RhdGVDaGFuZ2UiLCJ2ZXJib3NlIiwiZmlsbFN0eWxlIiwiZmlsbFJlY3QiLCJ3aWR0aCIsInN0YXJ0IiwiaW5mbGF0ZVJlc2V0Iiwib25Ldm1EYXRhUGVuZGluZyIsIm9uS3ZtRGF0YUFjayIsImt2bURhdGFTdXBwb3J0ZWQiLCJvblNlbmRLdm1EYXRhIiwidXJsdmFycyIsImt2bWRhdGF0cmFjZSIsImNvbnNvbGUiLCJsb2ciLCJvblNlbmQiLCJJbnRUb1N0ciIsIk4iLCJLIiwiU09MIiwiS1ZNIiwiSURFUiIsImZpbGVSZWFkZXIiLCJyYW5kb21Ob25jZUNoYXJzIiwiaG9zdCIsInBvcnQiLCJ1c2VyIiwicGFzcyIsInRscyIsInRsc3Yxb25seSIsIlJlZGlyZWN0U3RhcnRTb2wiLCJSZWRpcmVjdFN0YXJ0S3ZtIiwiUmVkaXJlY3RTdGFydElkZXIiLCJzZXJ2ZXIiLCJhbXRBY2N1bXVsYXRvciIsImF1dGhVcmkiLCJhdXRoVG9rZW4iLCJnZXRXc0xvY2F0aW9uIiwiaXNCcm93c2VyIiwid2luZG93IiwibG9jYXRpb24iLCJwYXRobmFtZSIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwiZGVidWciLCJjb25uZWN0U3RhdGUiLCJzb2NrZXQiLCJvbm9wZW4iLCJvblNvY2tldENvbm5lY3RlZCIsImJpbmQiLCJvbm1lc3NhZ2UiLCJvbk1lc3NhZ2UiLCJvbmNsb3NlIiwib25Tb2NrZXRDbG9zZWQiLCJyZWFkQXNCaW5hcnlTdHJpbmciLCJvbmxvYWQiLCJvblNvY2tldERhdGEiLCJ0YXJnZXQiLCJyZXN1bHQiLCJmaWxlUmVhZGVyQWNjIiwiZmlsZVJlYWRlckluVXNlIiwiQmxvYiIsInNoaWZ0IiwicmVhZEFzQXJyYXlCdWZmZXIiLCJvbmxvYWRlbmQiLCJyZWRpcnRyYWNlIiwiaW5mbyIsInNvY2tldFNlbmQiLCJpbkRhdGFDb3VudCIsImRhdGEiLCJieXRlTGVuZ3RoIiwiZXJyb3IiLCJzdG9wIiwib25FcnJvciIsIlJlYWRJbnRYIiwiaW5jbHVkZXMiLCJJbnRUb1N0clgiLCJ3YXJuIiwiYW10U2VxdWVuY2UiLCJTaG9ydFRvU3RyWCIsImdlbmVyYXRlUmFuZG9tTm9uY2UiLCJoZXhfbWQ1IiwiYW10S2VlcEFsaXZlVGltZXIiLCJzZXRJbnRlcnZhbCIsInNlbmRBbXRLZWVwQWxpdmUiLCJvblN0YXJ0IiwicnN0cjJoZXgiLCJyZWFkeVN0YXRlIiwic2VuZCIsImJ1ZmZlciIsIm9uTmV3U3RhdGUiLCJvblN0YXRlQ2hhbmdlZCIsImNsb3NlIiwiY2xlYXJJbnRlcnZhbCIsInRlcm1pbmFsRW11bGF0aW9uIiwiZnhFbXVsYXRpb24iLCJmeExpbmVCcmVhayIsIkFzY2lpVG9Vbmljb2RlIiwiQXNjaWlUb1VuaWNvZGVJbnRlbCIsIlN0YXRlQ2hhbmdlIiwiVGVybVNlbmRLZXlzIiwiayIsIm1pbkxldmVsIiwiVkVSQk9TRSIsIklORk8iLCJERUJVRyIsIldBUk5JTkciLCJFUlJPUiIsIlJlYWRTaG9ydCIsIlJlYWRTaG9ydFgiLCJSZWFkSW50IiwiUmVhZFNJbnQiLCJTaG9ydFRvU3RyIiwiU3BsaXRBcnJheSIsInNwbGl0IiwiQ2xvbmUiLCJKU09OIiwicGFyc2UiLCJzdHJpbmdpZnkiLCJFc2NhcGVIdG1sIiwiQXJyYXlFbGVtZW50TW92ZSIsInNwbGljZSIsIk9iamVjdFRvU3RyaW5nRXgiLCJnYXAiLCJPYmplY3QiLCJPYmplY3RUb1N0cmluZ0V4MiIsImdhcDIiLCJPYmplY3RUb1N0cmluZyIsIk9iamVjdFRvU3RyaW5nMiIsImNoYXIyaGV4IiwidG9VcHBlckNhc2UiLCJlbmNvZGVfdXRmOCIsImRlY29kZV91dGY4IiwiZGF0YTJibG9iIiwidHJhZGVtYXJrcyIsIiQiLCJhY2MiLCJzdGF0ZVByb2Nlc3NvckZhYyIsInVwZGF0ZVJGQlN0YXRlIiwicGFyZW50IiwiZ2V0UHJvY2Vzc29yIiwicHJvY2Vzc1N0YXRlIiwiWCIsIkRlY29kZSIsImoiLCJzZXRQaXhlbCIsInB1dEltYWdlIiwiZml4Q29sb3IiLCJyb3RYIiwicm90WSIsIndzU29ja2V0IiwicmxlRGVjb2RlciIsInNwYXJldyIsInNwYXJlaCIsInNwYXJldzIiLCJzcGFyZWgyIiwicm90YXRpb24iLCJzcGFyZSIsImZRIiwiY3JlYXRlSW1hZ2VEYXRhIiwiU2NyZWVuV2lkdGgiLCJyd2lkdGgiLCJoZWlnaHQiLCJTY3JlZW5IZWlnaHQiLCJyaGVpZ2h0Iiwib25TY3JlZW5TaXplQ2hhbmdlIiwianciLCJYbiIsInNlbmRSZWZyZXNoIiwic2V0VGltZW91dCIsIlUiLCJzZXJ2ZXJDdXRUZXh0SGFuZGxlciIsImhhbmRsZVNlcnZlckN1dFRleHQiLCJ3IiwiSSIsIm9uS3ZtRGF0YSIsInVwZGF0ZVNjcmVlbkRpbWVuc2lvbnMiLCJvbGRNb3VzZVgiLCJleiIsIndXIiwiVXQiLCJsbCIsIm1DIiwiQ3UiLCJzdGF0ZVByb2Nlc3NvcnMiLCJRIiwidGVybWluYWwiLCJjYXB0dXJlIiwiY2xlYXJUZXJtaW5hbCIsInByb2Nlc3NEYXRhVG9YdGVybSIsInEiLCJjb252ZXJ0QU1US2V5Q29kZSIsImNvZGUiLCJzdGFydHNXaXRoIiwic2hpZnRLZXkiLCJaIiwiUGF1c2UiLCJDYXBzTG9jayIsIlNwYWNlIiwiUXVvdGUiLCJNaW51cyIsIk51bXBhZE11bHRpcGx5IiwiTnVtcGFkQWRkIiwiUHJpbnRTY3JlZW4iLCJDb21tYSIsIk51bXBhZFN1YnRyYWN0IiwiTnVtcGFkRGVjaW1hbCIsIlBlcmlvZCIsIlNsYXNoIiwiTnVtcGFkRGl2aWRlIiwiU2VtaWNvbG9uIiwiRXF1YWwiLCJPU0xlZnQiLCJCcmFja2V0TGVmdCIsIk9TUmlnaHQiLCJCYWNrc2xhc2giLCJCcmFja2V0UmlnaHQiLCJDb250ZXh0TWVudSIsIkJhY2txdW90ZSIsIk51bUxvY2siLCJTY3JvbGxMb2NrIiwiQmFja3NwYWNlIiwiVGFiIiwiRW50ZXIiLCJOdW1wYWRFbnRlciIsIkVzY2FwZSIsIkRlbGV0ZSIsIkhvbWUiLCJQYWdlVXAiLCJQYWdlRG93biIsIkFycm93TGVmdCIsIkFycm93VXAiLCJBcnJvd1JpZ2h0IiwiQXJyb3dEb3duIiwiRW5kIiwiSW5zZXJ0IiwiRjEiLCJGMiIsIkYzIiwiRjQiLCJGNSIsIkY2IiwiRjciLCJGOCIsIkY5IiwiRjEwIiwiRjExIiwiRjEyIiwiU2hpZnRMZWZ0IiwiU2hpZnRSaWdodCIsIkNvbnRyb2xMZWZ0IiwiQ29udHJvbFJpZ2h0IiwiQWx0TGVmdCIsIkFsdFJpZ2h0IiwiTWV0YUxlZnQiLCJNZXRhUmlnaHQiLCJob2xkaW5nIiwibWF4IiwibWluIiwibGFzdE1vdXNlWCIsIm9sZE1vdXNlWSIsImxhc3RNb3VzZVkiLCJhYnMiLCJzZW5kS2V5Iiwic2VuZEt2bURhdGEiLCJzZW5kS2VlcEFsaXZlIiwibGFzdEtlZXBBbGl2ZSIsIm5vdyIsInNlbmRDdHJsQWx0RGVsTXNnIiwic2VuZENhZCIsImFyb3RYIiwiYXJvdFkiLCJwdXRJbWFnZURhdGEiLCJjcm90WCIsImNyb3RZIiwic2V0Um90YXRpb24iLCJ0Y2FudmFzIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiZ2V0Q29udGV4dCIsInNldFRyYW5zZm9ybSIsInJvdGF0ZSIsIlBJIiwiZHJhd0ltYWdlIiwib25TY3JlZW5SZXNpemUiLCJjYW52YXNJZCIsIkUiLCJVcCIsIkRvd24iLCJDb21tcyIsIkdyYWJLZXlJbnB1dCIsIktleUlucHV0R3JhYiIsIm9ua2V5dXAiLCJoYW5kbGVLZXlVcCIsIm9ua2V5ZG93biIsImhhbmRsZUtleURvd24iLCJvbmtleXByZXNzIiwiaGFuZGxlS2V5cyIsIlVuR3JhYktleUlucHV0IiwiaGFsdEV2ZW50IiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJoYW5kbGVLZXlFdmVudCIsImV2ZW50Iiwia2V5Q29kZSIsIngiLCJjb21tIiwiZGVib3VuY2VUaW1lIiwibW91c2VDbGlja0NvbXBsZXRlZCIsImxhc3RFdmVudCIsIkdyYWJNb3VzZUlucHV0IiwiTW91c2VJbnB1dEdyYWIiLCJVbkdyYWJNb3VzZUlucHV0Iiwib25tb3VzZW1vdmUiLCJvbm1vdXNldXAiLCJvbm1vdXNlZG93biIsIm1vdXNlZG93biIsImJ1dHRvbiIsIm1vdXNlbW92ZSIsIm1vdXNldXAiLCJnZXRQb3NpdGlvbk9mQ29udHJvbCIsInBhZ2VYIiwib2Zmc2V0SGVpZ2h0IiwicGFnZVkiLCJzY3JvbGxkaXYiLCJzY3JvbGxUb3AiLCJvZmZzZXRXaWR0aCIsIm5vTW91c2VSb3RhdGUiLCJsYXN0TW91c2VYMiIsInBhcmVudEVsZW1lbnQiLCJsZWZ0IiwidG9wIiwib2Zmc2V0TGVmdCIsIm9mZnNldFRvcCIsIm9mZnNldFBhcmVudCIsInFEIiwiRUIiLCJ4eCIsIlpMSUIiLCJCQVNFIiwiTk1BWCIsImNvbW1vbl9pbml0aWFsaXplZCIsIlpfTk9fRkxVU0giLCJaX1BBUlRJQUxfRkxVU0giLCJaX1NZTkNfRkxVU0giLCJaX0ZVTExfRkxVU0giLCJaX0ZJTklTSCIsIlpfQkxPQ0siLCJaX1RSRUVTIiwiWl9PSyIsIlpfU1RSRUFNX0VORCIsIlpfTkVFRF9ESUNUIiwiWl9FUlJOTyIsIlpfU1RSRUFNX0VSUk9SIiwiWl9EQVRBX0VSUk9SIiwiWl9NRU1fRVJST1IiLCJaX0JVRl9FUlJPUiIsIlpfVkVSU0lPTl9FUlJPUiIsIlpfREVGTEFURUQiLCJ6X3N0cmVhbSIsIm5leHRfaW4iLCJhdmFpbF9pbiIsInRvdGFsX2luIiwibmV4dF9vdXQiLCJhdmFpbF9vdXQiLCJ0b3RhbF9vdXQiLCJtc2ciLCJkYXRhX3R5cGUiLCJhZGxlciIsImlucHV0X2RhdGEiLCJvdXRwdXRfZGF0YSIsImNoZWNrc3VtX2Z1bmN0aW9uIiwiZ3pfaGVhZGVyIiwidGV4dCIsInRpbWUiLCJ4ZmxhZ3MiLCJvcyIsImV4dHJhIiwiZXh0cmFfbGVuIiwiZXh0cmFfbWF4IiwibmFtZSIsIm5hbWVfbWF4IiwiY29tbWVudCIsImNvbW1fbWF4IiwiaGNyYyIsImRvbmUiLCJhbGVydCIsIkRFRl9XQklUUyIsIkhFQUQiLCJGTEFHUyIsIlRJTUUiLCJPUyIsIkVYTEVOIiwiRVhUUkEiLCJOQU1FIiwiQ09NTUVOVCIsIkhDUkMiLCJESUNUSUQiLCJESUNUIiwiVFlQRSIsIlRZUEVETyIsIlNUT1JFRCIsIkNPUFlfIiwiQ09QWSIsIlRBQkxFIiwiTEVOTEVOUyIsIkNPREVMRU5TIiwiTEVOXyIsIkxFTiIsIkxFTkVYVCIsIkRJU1QiLCJESVNURVhUIiwiTUFUQ0giLCJMSVQiLCJDSEVDSyIsIkxFTkdUSCIsIkRPTkUiLCJCQUQiLCJNRU0iLCJTWU5DIiwiRU5PVUdIX0xFTlMiLCJFTk9VR0hfRElTVFMiLCJFTk9VR0giLCJDT0RFUyIsIkxFTlMiLCJESVNUUyIsImluZmxhdGVfdGFibGVfbGJhc2UiLCJpbmZsYXRlX3RhYmxlX2xleHQiLCJpbmZsYXRlX3RhYmxlX2RiYXNlIiwiaW5mbGF0ZV90YWJsZV9kZXh0IiwiaW5mbGF0ZV90YWJsZSIsIkEiLCJuZXh0IiwiZGlzdGJpdHMiLCJsZW5iaXRzIiwiVCIsIndvcmsiLCJsZW5zIiwiQiIsIm5sZW4iLCJSIiwiY29kZXMiLCJuZGlzdCIsIkQiLCJvcCIsImJpdHMiLCJ2YWwiLCJpbmZsYXRlX2Zhc3QiLCJ3c2l6ZSIsIndoYXZlIiwid25leHQiLCJob2xkIiwibGVuY29kZSIsImRpc3Rjb2RlIiwibW9kZSIsInNhbmUiLCJuZXdfYXJyYXkiLCJnZXRhcmciLCJjaGVja3N1bV9ub25lIiwiaW5mbGF0ZV9zdGF0ZSIsImxhc3QiLCJ3cmFwIiwiaGF2ZWRpY3QiLCJmbGFncyIsImRtYXgiLCJjaGVjayIsInRvdGFsIiwiaGVhZCIsIndiaXRzIiwib2Zmc2V0IiwibmNvZGUiLCJoYXZlIiwiYmFjayIsIndhcyIsImluZmxhdGVfY29weXJpZ2h0IiwiaW5mbGF0ZVJlc2V0S2VlcCIsImFkbGVyMzIiLCJjcmMzMiIsImluZmxhdGVQcmltZSIsImxlbmZpeF9hcnkiLCJsZW5maXhfZGVmIiwiZGlzdGZpeF9hcnkiLCJkaXN0Zml4X2RlZiIsImZpeGVkdGFibGVzIiwiZXZhbCIsInVwZGF0ZXdpbmRvdyIsIkNSQzIiLCJDUkM0IiwiTE9BRCIsInN0cm0iLCJSRVNUT1JFIiwiSU5JVEJJVFMiLCJQVUxMQllURSIsIk5FRURCSVRTIiwiQklUUyIsIkRST1BCSVRTIiwiQllURUJJVFMiLCJSRVZFUlNFIiwiaW5mbGF0ZV9vcmRlciIsImluZmxhdGVFbmQiLCJhZGxlcjMyX2NvbWJpbmUiLCJjcmMzMl9jb21iaW5lIiwiX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJoYXNPd25Qcm9wZXJ0eSIsIlN5bWJvbCIsInRvU3RyaW5nVGFnIiwidmFsdWUiLCJfX3dlYnBhY2tfZXhwb3J0c19fIiwiQU1URGVza3RvcCIsIkFNVEt2bURhdGFSZWRpcmVjdG9yIiwiQU1UUmVkaXJlY3RvciIsIlByb3RvY29sIiwiQW10VGVybWluYWwiLCJDb25zb2xlTG9nZ2VyIiwiVHlwZUNvbnZlcnRlciIsIkRlc2t0b3AiLCJTdGF0ZVByb2Nlc3NvckZhY3RvcnkiLCJUZXJtaW5hbERhdGFQcm9jZXNzb3IiLCJMb2dMZXZlbCIsIkRhdGFQcm9jZXNzb3IiLCJSTEVEZWNvZGVyIiwiRW5jb2RpbmciLCJGcmFtZUJ1ZmZlckJlbGxTZXJ2ZXJDdXRUZXh0IiwiSGFuZHNoYWtlU3RhdGUiLCJTZWN1cml0eU9wdGlvbnMiLCJTZWN1cml0eVJlc3BvbnNlIiwiU2VydmVySW5pdCIsIkFNVEtleUNvZGVDb252ZXJ0ZXIiLCJDb21tc0hlbHBlciIsIkltYWdlSGVscGVyIiwiS2V5Qm9hcmRIZWxwZXIiLCJNb3VzZUhlbHBlciIsImlzVHJ1dGh5IiwiX19fQ1NTX0xPQURFUl9FWFBPUlRfX18iLCJpZCIsImNzc1dpdGhNYXBwaW5nVG9TdHJpbmciLCJsaXN0IiwibWFwIiwiaXRlbSIsImNvbnRlbnQiLCJjb25jYXQiLCJtb2R1bGVzIiwibWVkaWFRdWVyeSIsImRlZHVwZSIsImFscmVhZHlJbXBvcnRlZE1vZHVsZXMiLCJfaSIsIl9hcnJheUxpa2VUb0FycmF5IiwiYXJyIiwibGVuIiwiYXJyMiIsIl9pdGVtIiwiX2FycmF5V2l0aEhvbGVzIiwiaXRlcmF0b3IiLCJfcyIsIl9lIiwiX2FyciIsIl9uIiwiX2QiLCJlcnIiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJtaW5MZW4iLCJmcm9tIiwidGVzdCIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIlR5cGVFcnJvciIsIl9ub25JdGVyYWJsZVJlc3QiLCJjc3NNYXBwaW5nIiwiYnRvYSIsImJhc2U2NCIsInNvdXJjZU1hcHBpbmciLCJzb3VyY2VVUkxzIiwic291cmNlcyIsInNvdXJjZSIsInNvdXJjZVJvb3QiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJwcm9wSXNFbnVtZXJhYmxlIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJ0b09iamVjdCIsImFzc2lnbiIsInRlc3QxIiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsInRlc3QyIiwidGVzdDMiLCJmb3JFYWNoIiwibGV0dGVyIiwia2V5cyIsInNob3VsZFVzZU5hdGl2ZSIsInN5bWJvbHMiLCJ0byIsImFyZ3VtZW50cyIsImtleSIsImFhIiwieSIsImJhIiwiU2V0IiwiY2EiLCJkYSIsImVhIiwiYWRkIiwiZmEiLCJoYSIsImlhIiwiamEiLCJrYSIsImFjY2VwdHNCb29sZWFucyIsImF0dHJpYnV0ZU5hbWUiLCJhdHRyaWJ1dGVOYW1lc3BhY2UiLCJtdXN0VXNlUHJvcGVydHkiLCJwcm9wZXJ0eU5hbWUiLCJ0eXBlIiwic2FuaXRpemVVUkwiLCJyZW1vdmVFbXB0eVN0cmluZyIsInRvTG93ZXJDYXNlIiwib2EiLCJwYSIsInFhIiwibWEiLCJpc05hTiIsIm5hIiwibGEiLCJyZW1vdmVBdHRyaWJ1dGUiLCJzZXRBdHRyaWJ1dGUiLCJzZXRBdHRyaWJ1dGVOUyIsInhsaW5rSHJlZiIsInJhIiwiX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQiLCJzYSIsInRhIiwidWEiLCJ3YSIsInhhIiwieWEiLCJ6YSIsIkFhIiwiQmEiLCJDYSIsIkRhIiwiRWEiLCJGYSIsIkdhIiwiSGEiLCJJYSIsIkphIiwiZm9yIiwiTWEiLCJLYSIsIkxhIiwiTmEiLCJzdGFjayIsInRyaW0iLCJtYXRjaCIsIk9hIiwiUGEiLCJwcmVwYXJlU3RhY2tUcmFjZSIsInNldCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJkaXNwbGF5TmFtZSIsIlFhIiwidGFnIiwicmVuZGVyIiwiX3JlbmRlciIsIlJhIiwiJCR0eXBlb2YiLCJfY29udGV4dCIsIl9wYXlsb2FkIiwiX2luaXQiLCJTYSIsIlRhIiwibm9kZU5hbWUiLCJWYSIsIl92YWx1ZVRyYWNrZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJnZXRWYWx1ZSIsInNldFZhbHVlIiwic3RvcFRyYWNraW5nIiwiVWEiLCJXYSIsImNoZWNrZWQiLCJYYSIsImFjdGl2ZUVsZW1lbnQiLCJib2R5IiwiWWEiLCJkZWZhdWx0Q2hlY2tlZCIsImRlZmF1bHRWYWx1ZSIsIl93cmFwcGVyU3RhdGUiLCJpbml0aWFsQ2hlY2tlZCIsIlphIiwiaW5pdGlhbFZhbHVlIiwiY29udHJvbGxlZCIsIiRhIiwiYWIiLCJiYiIsImNiIiwib3duZXJEb2N1bWVudCIsImViIiwiY2hpbGRyZW4iLCJDaGlsZHJlbiIsImRiIiwiZmIiLCJvcHRpb25zIiwic2VsZWN0ZWQiLCJkZWZhdWx0U2VsZWN0ZWQiLCJkaXNhYmxlZCIsImdiIiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJoYiIsImliIiwiamIiLCJ0ZXh0Q29udGVudCIsImtiIiwibGIiLCJtYiIsIm5iIiwib2IiLCJuYW1lc3BhY2VVUkkiLCJpbm5lckhUTUwiLCJ2YWx1ZU9mIiwiZmlyc3RDaGlsZCIsInJlbW92ZUNoaWxkIiwiYXBwZW5kQ2hpbGQiLCJNU0FwcCIsImV4ZWNVbnNhZmVMb2NhbEZ1bmN0aW9uIiwicGIiLCJsYXN0Q2hpbGQiLCJub2RlVHlwZSIsIm5vZGVWYWx1ZSIsInFiIiwiYW5pbWF0aW9uSXRlcmF0aW9uQ291bnQiLCJib3JkZXJJbWFnZU91dHNldCIsImJvcmRlckltYWdlU2xpY2UiLCJib3JkZXJJbWFnZVdpZHRoIiwiYm94RmxleCIsImJveEZsZXhHcm91cCIsImJveE9yZGluYWxHcm91cCIsImNvbHVtbkNvdW50IiwiY29sdW1ucyIsImZsZXgiLCJmbGV4R3JvdyIsImZsZXhQb3NpdGl2ZSIsImZsZXhTaHJpbmsiLCJmbGV4TmVnYXRpdmUiLCJmbGV4T3JkZXIiLCJncmlkQXJlYSIsImdyaWRSb3ciLCJncmlkUm93RW5kIiwiZ3JpZFJvd1NwYW4iLCJncmlkUm93U3RhcnQiLCJncmlkQ29sdW1uIiwiZ3JpZENvbHVtbkVuZCIsImdyaWRDb2x1bW5TcGFuIiwiZ3JpZENvbHVtblN0YXJ0IiwiZm9udFdlaWdodCIsImxpbmVDbGFtcCIsImxpbmVIZWlnaHQiLCJvcGFjaXR5Iiwib3JkZXIiLCJvcnBoYW5zIiwidGFiU2l6ZSIsIndpZG93cyIsInpJbmRleCIsInpvb20iLCJmaWxsT3BhY2l0eSIsImZsb29kT3BhY2l0eSIsInN0b3BPcGFjaXR5Iiwic3Ryb2tlRGFzaGFycmF5Iiwic3Ryb2tlRGFzaG9mZnNldCIsInN0cm9rZU1pdGVybGltaXQiLCJzdHJva2VPcGFjaXR5Iiwic3Ryb2tlV2lkdGgiLCJyYiIsInNiIiwidGIiLCJzdHlsZSIsInNldFByb3BlcnR5IiwidWIiLCJtZW51aXRlbSIsImFyZWEiLCJiYXNlIiwiYnIiLCJjb2wiLCJlbWJlZCIsImhyIiwiaW1nIiwiaW5wdXQiLCJrZXlnZW4iLCJsaW5rIiwibWV0YSIsInBhcmFtIiwidHJhY2siLCJ3YnIiLCJ2YiIsIndiIiwiaXMiLCJ4YiIsInNyY0VsZW1lbnQiLCJjb3JyZXNwb25kaW5nVXNlRWxlbWVudCIsInBhcmVudE5vZGUiLCJ5YiIsInpiIiwiQWIiLCJCYiIsIkNiIiwic3RhdGVOb2RlIiwiRGIiLCJFYiIsIkZiIiwiR2IiLCJIYiIsIkliIiwiSmIiLCJLYiIsIkxiIiwiTWIiLCJPYiIsIlBiIiwiUWIiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIlJiIiwiYXBwbHkiLCJTYiIsIlRiIiwiVWIiLCJWYiIsIldiIiwiWGIiLCJaYiIsImFsdGVybmF0ZSIsInJldHVybiIsIiRiIiwibWVtb2l6ZWRTdGF0ZSIsImRlaHlkcmF0ZWQiLCJhYyIsImRjIiwiZWMiLCJmYyIsImdjIiwiaGMiLCJpYyIsImpjIiwia2MiLCJsYyIsIm1jIiwibmMiLCJNYXAiLCJvYyIsInBjIiwicWMiLCJyYyIsImJsb2NrZWRPbiIsImRvbUV2ZW50TmFtZSIsImV2ZW50U3lzdGVtRmxhZ3MiLCJuYXRpdmVFdmVudCIsInRhcmdldENvbnRhaW5lcnMiLCJzYyIsImRlbGV0ZSIsInBvaW50ZXJJZCIsInRjIiwidmMiLCJ3YyIsImxhbmVQcmlvcml0eSIsInVuc3RhYmxlX3J1bldpdGhQcmlvcml0eSIsInByaW9yaXR5IiwiaHlkcmF0ZSIsImNvbnRhaW5lckluZm8iLCJ4YyIsInljIiwiemMiLCJBYyIsIkJjIiwidW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayIsInVuc3RhYmxlX05vcm1hbFByaW9yaXR5IiwiQ2MiLCJEYyIsIkVjIiwiYW5pbWF0aW9uZW5kIiwiYW5pbWF0aW9uaXRlcmF0aW9uIiwiYW5pbWF0aW9uc3RhcnQiLCJ0cmFuc2l0aW9uZW5kIiwiRmMiLCJHYyIsIkhjIiwiYW5pbWF0aW9uIiwidHJhbnNpdGlvbiIsIkljIiwiSmMiLCJLYyIsIkxjIiwiTWMiLCJOYyIsIk9jIiwiUGMiLCJRYyIsInVuc3RhYmxlX25vdyIsIkYiLCJSYyIsIlVjIiwicGVuZGluZ0xhbmVzIiwiZXhwaXJlZExhbmVzIiwic3VzcGVuZGVkTGFuZXMiLCJwaW5nZWRMYW5lcyIsIlZjIiwiZW50YW5nbGVkTGFuZXMiLCJlbnRhbmdsZW1lbnRzIiwiV2MiLCJYYyIsIlljIiwiWmMiLCIkYyIsImV2ZW50VGltZXMiLCJjbHozMiIsImJkIiwiY2QiLCJMTjIiLCJkZCIsInVuc3RhYmxlX1VzZXJCbG9ja2luZ1ByaW9yaXR5IiwiZWQiLCJmZCIsImdkIiwiaGQiLCJ1YyIsImpkIiwia2QiLCJsZCIsIm1kIiwibmQiLCJvZCIsImNoYXJDb2RlIiwicGQiLCJxZCIsInJkIiwiX3JlYWN0TmFtZSIsIl90YXJnZXRJbnN0IiwiY3VycmVudFRhcmdldCIsImlzRGVmYXVsdFByZXZlbnRlZCIsImRlZmF1bHRQcmV2ZW50ZWQiLCJyZXR1cm5WYWx1ZSIsImlzUHJvcGFnYXRpb25TdG9wcGVkIiwiY2FuY2VsQnViYmxlIiwicGVyc2lzdCIsImlzUGVyc2lzdGVudCIsIndkIiwieGQiLCJ5ZCIsInNkIiwiZXZlbnRQaGFzZSIsImJ1YmJsZXMiLCJjYW5jZWxhYmxlIiwidGltZVN0YW1wIiwiaXNUcnVzdGVkIiwidGQiLCJ1ZCIsInZpZXciLCJkZXRhaWwiLCJ2ZCIsIkFkIiwic2NyZWVuWCIsInNjcmVlblkiLCJjbGllbnRYIiwiY2xpZW50WSIsImN0cmxLZXkiLCJhbHRLZXkiLCJtZXRhS2V5IiwiZ2V0TW9kaWZpZXJTdGF0ZSIsInpkIiwiYnV0dG9ucyIsInJlbGF0ZWRUYXJnZXQiLCJmcm9tRWxlbWVudCIsInRvRWxlbWVudCIsIm1vdmVtZW50WCIsIm1vdmVtZW50WSIsIkJkIiwiRGQiLCJkYXRhVHJhbnNmZXIiLCJGZCIsIkhkIiwiYW5pbWF0aW9uTmFtZSIsImVsYXBzZWRUaW1lIiwicHNldWRvRWxlbWVudCIsIkpkIiwiY2xpcGJvYXJkRGF0YSIsIkxkIiwiTWQiLCJFc2MiLCJTcGFjZWJhciIsIkxlZnQiLCJSaWdodCIsIkRlbCIsIldpbiIsIk1lbnUiLCJBcHBzIiwiU2Nyb2xsIiwiTW96UHJpbnRhYmxlS2V5IiwiTmQiLCJPZCIsIkFsdCIsIkNvbnRyb2wiLCJNZXRhIiwiU2hpZnQiLCJQZCIsIlJkIiwicmVwZWF0IiwibG9jYWxlIiwid2hpY2giLCJUZCIsInByZXNzdXJlIiwidGFuZ2VudGlhbFByZXNzdXJlIiwidGlsdFgiLCJ0aWx0WSIsInR3aXN0IiwicG9pbnRlclR5cGUiLCJpc1ByaW1hcnkiLCJWZCIsInRvdWNoZXMiLCJ0YXJnZXRUb3VjaGVzIiwiY2hhbmdlZFRvdWNoZXMiLCJYZCIsIlpkIiwiZGVsdGFYIiwid2hlZWxEZWx0YVgiLCJkZWx0YVkiLCJ3aGVlbERlbHRhWSIsIndoZWVsRGVsdGEiLCJkZWx0YVoiLCJkZWx0YU1vZGUiLCIkZCIsImFlIiwiYmUiLCJkb2N1bWVudE1vZGUiLCJjZSIsImRlIiwiZWUiLCJmZSIsImdlIiwiaGUiLCJpZSIsImxlIiwiY29sb3IiLCJkYXRlIiwiZGF0ZXRpbWUiLCJlbWFpbCIsIm1vbnRoIiwibnVtYmVyIiwicGFzc3dvcmQiLCJyYW5nZSIsInNlYXJjaCIsInRlbCIsInVybCIsIndlZWsiLCJtZSIsIm5lIiwib2UiLCJsaXN0ZW5lcnMiLCJwZSIsInFlIiwicmUiLCJzZSIsInRlIiwidWUiLCJ2ZSIsIndlIiwieGUiLCJ5ZSIsInplIiwib25pbnB1dCIsIkFlIiwiZGV0YWNoRXZlbnQiLCJCZSIsIkNlIiwiYXR0YWNoRXZlbnQiLCJEZSIsIkVlIiwiRmUiLCJIZSIsIkllIiwiSmUiLCJLZSIsIkxlIiwibm9kZSIsIm5leHRTaWJsaW5nIiwiTWUiLCJjb250YWlucyIsImNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIiwiTmUiLCJIVE1MSUZyYW1lRWxlbWVudCIsImNvbnRlbnRXaW5kb3ciLCJocmVmIiwiT2UiLCJjb250ZW50RWRpdGFibGUiLCJQZSIsIlFlIiwiUmUiLCJTZSIsIlRlIiwiVWUiLCJzZWxlY3Rpb25TdGFydCIsImVuZCIsInNlbGVjdGlvbkVuZCIsImFuY2hvck5vZGUiLCJkZWZhdWx0VmlldyIsImdldFNlbGVjdGlvbiIsImFuY2hvck9mZnNldCIsImZvY3VzTm9kZSIsImZvY3VzT2Zmc2V0IiwiVmUiLCJXZSIsIlhlIiwiWWUiLCJaZSIsIlliIiwiaW5zdGFuY2UiLCJsaXN0ZW5lciIsIkciLCIkZSIsImhhcyIsImFmIiwiYmYiLCJjZiIsImRmIiwicGFzc2l2ZSIsIk5iIiwieiIsImVmIiwiZmYiLCJwYXJlbnRXaW5kb3ciLCJnZiIsImhmIiwiSiIsIkwiLCJqZSIsImNoYXIiLCJrZSIsInVuc2hpZnQiLCJqZiIsImtmIiwibGYiLCJtZiIsImF1dG9Gb2N1cyIsIm5mIiwiX19odG1sIiwib2YiLCJwZiIsImNsZWFyVGltZW91dCIsInFmIiwicmYiLCJzZiIsInByZXZpb3VzU2libGluZyIsInRmIiwidmYiLCJ3ZiIsInhmIiwieWYiLCJjaGlsZCIsInpmIiwiQWYiLCJCZiIsImN1cnJlbnQiLCJDZiIsIk0iLCJEZiIsIkVmIiwiY29udGV4dFR5cGVzIiwiX19yZWFjdEludGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dCIsIl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWFza2VkQ2hpbGRDb250ZXh0IiwiRmYiLCJjaGlsZENvbnRleHRUeXBlcyIsIkdmIiwiSGYiLCJJZiIsImdldENoaWxkQ29udGV4dCIsIkpmIiwiX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHQiLCJLZiIsIkxmIiwiTWYiLCJOZiIsIk9mIiwiUGYiLCJ1bnN0YWJsZV9jYW5jZWxDYWxsYmFjayIsIlFmIiwidW5zdGFibGVfc2hvdWxkWWllbGQiLCJSZiIsInVuc3RhYmxlX3JlcXVlc3RQYWludCIsIlNmIiwiVGYiLCJ1bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbCIsIlVmIiwidW5zdGFibGVfSW1tZWRpYXRlUHJpb3JpdHkiLCJWZiIsIldmIiwiWGYiLCJ1bnN0YWJsZV9Mb3dQcmlvcml0eSIsIllmIiwidW5zdGFibGVfSWRsZVByaW9yaXR5IiwiWmYiLCIkZiIsImFnIiwiYmciLCJjZyIsImRnIiwiTyIsImVnIiwiZmciLCJnZyIsImhnIiwiaWciLCJqZyIsImtnIiwiUmVhY3RDdXJyZW50QmF0Y2hDb25maWciLCJsZyIsImRlZmF1bHRQcm9wcyIsIm1nIiwibmciLCJvZyIsInBnIiwicWciLCJyZyIsIl9jdXJyZW50VmFsdWUiLCJzZyIsImNoaWxkTGFuZXMiLCJ0ZyIsImRlcGVuZGVuY2llcyIsImZpcnN0Q29udGV4dCIsImxhbmVzIiwidWciLCJ2ZyIsImNvbnRleHQiLCJvYnNlcnZlZEJpdHMiLCJyZXNwb25kZXJzIiwid2ciLCJ4ZyIsInVwZGF0ZVF1ZXVlIiwiYmFzZVN0YXRlIiwiZmlyc3RCYXNlVXBkYXRlIiwibGFzdEJhc2VVcGRhdGUiLCJzaGFyZWQiLCJwZW5kaW5nIiwiZWZmZWN0cyIsInlnIiwiemciLCJldmVudFRpbWUiLCJsYW5lIiwicGF5bG9hZCIsImNhbGxiYWNrIiwiQWciLCJCZyIsIkNnIiwiRGciLCJFZyIsIkZnIiwiQ29tcG9uZW50IiwicmVmcyIsIkdnIiwiS2ciLCJpc01vdW50ZWQiLCJfcmVhY3RJbnRlcm5hbHMiLCJlbnF1ZXVlU2V0U3RhdGUiLCJIZyIsIklnIiwiSmciLCJlbnF1ZXVlUmVwbGFjZVN0YXRlIiwiZW5xdWV1ZUZvcmNlVXBkYXRlIiwiTGciLCJzaG91bGRDb21wb25lbnRVcGRhdGUiLCJpc1B1cmVSZWFjdENvbXBvbmVudCIsIk1nIiwiY29udGV4dFR5cGUiLCJ1cGRhdGVyIiwiTmciLCJjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIiwiVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMiLCJPZyIsInByb3BzIiwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzIiwiZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUiLCJVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50IiwiY29tcG9uZW50V2lsbE1vdW50IiwiY29tcG9uZW50RGlkTW91bnQiLCJQZyIsIlFnIiwicmVmIiwiX293bmVyIiwiX3N0cmluZ1JlZiIsIlJnIiwiU2ciLCJsYXN0RWZmZWN0IiwibmV4dEVmZmVjdCIsImZpcnN0RWZmZWN0Iiwic2libGluZyIsImluZGV4IiwiVGciLCJVZyIsImVsZW1lbnRUeXBlIiwiVmciLCJpbXBsZW1lbnRhdGlvbiIsIldnIiwiWGciLCJZZyIsIlpnIiwiJGciLCJhaCIsImJoIiwiY2giLCJkaCIsImVoIiwiZG9jdW1lbnRFbGVtZW50IiwidGFnTmFtZSIsImZoIiwiZ2giLCJoaCIsIlAiLCJpaCIsIm1lbW9pemVkUHJvcHMiLCJyZXZlYWxPcmRlciIsImpoIiwia2giLCJsaCIsIm1oIiwibmgiLCJvaCIsInBlbmRpbmdQcm9wcyIsInBoIiwicWgiLCJyaCIsInNoIiwidGgiLCJ1aCIsIl93b3JrSW5Qcm9ncmVzc1ZlcnNpb25QcmltYXJ5IiwidmgiLCJSZWFjdEN1cnJlbnREaXNwYXRjaGVyIiwid2giLCJ4aCIsInloIiwiemgiLCJBaCIsIkJoIiwiQ2giLCJEaCIsIkVoIiwiRmgiLCJHaCIsIkhoIiwiYmFzZVF1ZXVlIiwicXVldWUiLCJJaCIsIkpoIiwiS2giLCJsYXN0UmVuZGVyZWRSZWR1Y2VyIiwiYWN0aW9uIiwiZWFnZXJSZWR1Y2VyIiwiZWFnZXJTdGF0ZSIsImxhc3RSZW5kZXJlZFN0YXRlIiwiZGlzcGF0Y2giLCJMaCIsIk1oIiwiX2dldFZlcnNpb24iLCJfc291cmNlIiwibXV0YWJsZVJlYWRMYW5lcyIsIk5oIiwidXNlU3RhdGUiLCJnZXRTbmFwc2hvdCIsInN1YnNjcmliZSIsInVzZUVmZmVjdCIsInNldFNuYXBzaG90IiwiT2giLCJQaCIsIlFoIiwiUmgiLCJjcmVhdGUiLCJkZXN0cm95IiwiZGVwcyIsIlNoIiwiVGgiLCJVaCIsIlZoIiwiV2giLCJYaCIsIlloIiwiWmgiLCIkaCIsImFpIiwiYmkiLCJjaSIsImRpIiwicmVhZENvbnRleHQiLCJ1c2VDYWxsYmFjayIsInVzZUNvbnRleHQiLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwidXNlTGF5b3V0RWZmZWN0IiwidXNlTWVtbyIsInVzZVJlZHVjZXIiLCJ1c2VSZWYiLCJ1c2VEZWJ1Z1ZhbHVlIiwidXNlRGVmZXJyZWRWYWx1ZSIsInVzZVRyYW5zaXRpb24iLCJ1c2VNdXRhYmxlU291cmNlIiwidXNlT3BhcXVlSWRlbnRpZmllciIsInVuc3RhYmxlX2lzTmV3UmVjb25jaWxlciIsInVmIiwiZWkiLCJSZWFjdEN1cnJlbnRPd25lciIsImZpIiwiZ2kiLCJoaSIsImlpIiwiamkiLCJjb21wYXJlIiwia2kiLCJsaSIsIm1pIiwiYmFzZUxhbmVzIiwibmkiLCJvaSIsInBpIiwiVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUiLCJjb21wb25lbnRXaWxsVXBkYXRlIiwiY29tcG9uZW50RGlkVXBkYXRlIiwicWkiLCJnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IiLCJyaSIsInBlbmRpbmdDb250ZXh0IiwiQmkiLCJEaSIsIkVpIiwic2kiLCJyZXRyeUxhbmUiLCJ0aSIsImZhbGxiYWNrIiwidW5zdGFibGVfYXZvaWRUaGlzRmFsbGJhY2siLCJ1aSIsInVuc3RhYmxlX2V4cGVjdGVkTG9hZFRpbWUiLCJ2aSIsIndpIiwieGkiLCJ5aSIsInppIiwiaXNCYWNrd2FyZHMiLCJyZW5kZXJpbmciLCJyZW5kZXJpbmdTdGFydFRpbWUiLCJ0YWlsIiwidGFpbE1vZGUiLCJBaSIsIkZpIiwiR2kiLCJ3YXNNdWx0aXBsZSIsIm11bHRpcGxlIiwib25DbGljayIsIm9uY2xpY2siLCJzaXplIiwiY3JlYXRlRWxlbWVudE5TIiwiY3JlYXRlVGV4dE5vZGUiLCJWIiwiSGkiLCJJaSIsIlciLCJKaSIsIktpIiwiTGkiLCJNaSIsIm1lc3NhZ2UiLCJOaSIsIk9pIiwiV2Vha01hcCIsIlBpIiwiZWxlbWVudCIsIlFpIiwiUmkiLCJTaSIsImNvbXBvbmVudERpZENhdGNoIiwiVGkiLCJjb21wb25lbnRTdGFjayIsIlVpIiwiV2Vha1NldCIsIlZpIiwiV2kiLCJYaSIsIl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlIiwiWWkiLCJaaSIsIiRpIiwiZm9jdXMiLCJhaiIsImRpc3BsYXkiLCJiaiIsIm9uQ29tbWl0RmliZXJVbm1vdW50IiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJjaiIsImRqIiwiZWoiLCJmaiIsImdqIiwiaGoiLCJpbnNlcnRCZWZvcmUiLCJfcmVhY3RSb290Q29udGFpbmVyIiwiaWoiLCJqaiIsImtqIiwibGoiLCJ0aGVuIiwibWoiLCJuaiIsImNlaWwiLCJvaiIsInBqIiwiWSIsInFqIiwicmoiLCJzaiIsInRqIiwidWoiLCJ2aiIsIkluZmluaXR5Iiwid2oiLCJjayIsInhqIiwieWoiLCJ6aiIsIkFqIiwiQmoiLCJDaiIsIkRqIiwiRWoiLCJGaiIsIkdqIiwiSGoiLCJJaiIsIkpqIiwiU2MiLCJLaiIsIkxqIiwiTWoiLCJjYWxsYmFja05vZGUiLCJleHBpcmF0aW9uVGltZXMiLCJjYWxsYmFja1ByaW9yaXR5IiwiVGMiLCJOaiIsIk9qIiwiUGoiLCJRaiIsIlJqIiwiU2oiLCJUaiIsImZpbmlzaGVkV29yayIsImZpbmlzaGVkTGFuZXMiLCJVaiIsInRpbWVvdXRIYW5kbGUiLCJwaW5nQ2FjaGUiLCJZaiIsIlpqIiwidmEiLCJhayIsImJrIiwiZGsiLCJyYW5nZUNvdW50IiwiZm9jdXNlZEVsZW0iLCJzZWxlY3Rpb25SYW5nZSIsImVrIiwiZXh0ZW5kIiwiY3JlYXRlUmFuZ2UiLCJzZXRTdGFydCIsInJlbW92ZUFsbFJhbmdlcyIsImFkZFJhbmdlIiwic2V0RW5kIiwic2Nyb2xsTGVmdCIsIm9uQ29tbWl0RmliZXJSb290IiwiZmsiLCJnayIsImlrIiwiaXNSZWFjdENvbXBvbmVudCIsInBlbmRpbmdDaGlsZHJlbiIsImprIiwibXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YSIsImxrIiwibWsiLCJuayIsIm9rIiwicWsiLCJoeWRyYXRpb25PcHRpb25zIiwibXV0YWJsZVNvdXJjZXMiLCJfaW50ZXJuYWxSb290IiwicmsiLCJ0ayIsImhhc0F0dHJpYnV0ZSIsInNrIiwiWGoiLCJoayIsIl9jYWxjdWxhdGVDaGFuZ2VkQml0cyIsInVuc3RhYmxlX29ic2VydmVkQml0cyIsInVubW91bnQiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZm9ybSIsIlZqIiwid2siLCJmaW5kRmliZXJCeUhvc3RJbnN0YW5jZSIsImJ1bmRsZVR5cGUiLCJ2ZXJzaW9uIiwicmVuZGVyZXJQYWNrYWdlTmFtZSIsInhrIiwicmVuZGVyZXJDb25maWciLCJvdmVycmlkZUhvb2tTdGF0ZSIsIm92ZXJyaWRlSG9va1N0YXRlRGVsZXRlUGF0aCIsIm92ZXJyaWRlSG9va1N0YXRlUmVuYW1lUGF0aCIsIm92ZXJyaWRlUHJvcHMiLCJvdmVycmlkZVByb3BzRGVsZXRlUGF0aCIsIm92ZXJyaWRlUHJvcHNSZW5hbWVQYXRoIiwic2V0U3VzcGVuc2VIYW5kbGVyIiwic2NoZWR1bGVVcGRhdGUiLCJjdXJyZW50RGlzcGF0Y2hlclJlZiIsImZpbmRIb3N0SW5zdGFuY2VCeUZpYmVyIiwiYmMiLCJjYyIsImZpbmRIb3N0SW5zdGFuY2VzRm9yUmVmcmVzaCIsInNjaGVkdWxlUmVmcmVzaCIsInNjaGVkdWxlUm9vdCIsInNldFJlZnJlc2hIYW5kbGVyIiwiZ2V0Q3VycmVudEZpYmVyIiwiX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fIiwieWsiLCJpc0Rpc2FibGVkIiwic3VwcG9ydHNGaWJlciIsImluamVjdCIsImNoZWNrRENFIiwicGVyZm9ybWFuY2UiLCJNZXNzYWdlQ2hhbm5lbCIsInVuc3RhYmxlX2ZvcmNlRnJhbWVSYXRlIiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJwb3J0MiIsInBvcnQxIiwicG9zdE1lc3NhZ2UiLCJwb3AiLCJzb3J0SW5kZXgiLCJzdGFydFRpbWUiLCJleHBpcmF0aW9uVGltZSIsInByaW9yaXR5TGV2ZWwiLCJ1bnN0YWJsZV9Qcm9maWxpbmciLCJ1bnN0YWJsZV9jb250aW51ZUV4ZWN1dGlvbiIsInVuc3RhYmxlX2dldEZpcnN0Q2FsbGJhY2tOb2RlIiwidW5zdGFibGVfbmV4dCIsInVuc3RhYmxlX3BhdXNlRXhlY3V0aW9uIiwiZGVsYXkiLCJ1bnN0YWJsZV93cmFwQ2FsbGJhY2siLCJGcmFnbWVudCIsIlN0cmljdE1vZGUiLCJQcm9maWxlciIsIlN1c3BlbnNlIiwic2V0U3RhdGUiLCJmb3JjZVVwZGF0ZSIsIl9fc2VsZiIsIl9fc291cmNlIiwiX3N0YXR1cyIsIl9yZXN1bHQiLCJJc1NvbWVSZW5kZXJlckFjdGluZyIsImNvdW50IiwidG9BcnJheSIsIm9ubHkiLCJQdXJlQ29tcG9uZW50IiwiY2xvbmVFbGVtZW50IiwiY3JlYXRlQ29udGV4dCIsIl9jdXJyZW50VmFsdWUyIiwiX3RocmVhZENvdW50IiwiUHJvdmlkZXIiLCJDb25zdW1lciIsImNyZWF0ZUZhY3RvcnkiLCJjcmVhdGVSZWYiLCJmb3J3YXJkUmVmIiwiaXNWYWxpZEVsZW1lbnQiLCJsYXp5IiwibWVtbyIsInN0eWxlc0luRG9tIiwiZ2V0SW5kZXhCeUlkZW50aWZpZXIiLCJpZGVudGlmaWVyIiwibW9kdWxlc1RvRG9tIiwiaWRDb3VudE1hcCIsImlkZW50aWZpZXJzIiwib2JqIiwiY3NzIiwibWVkaWEiLCJzb3VyY2VNYXAiLCJyZWZlcmVuY2VzIiwiYWRkU3R5bGUiLCJhcGkiLCJkb21BUEkiLCJ1cGRhdGUiLCJuZXdPYmoiLCJyZW1vdmUiLCJsYXN0SWRlbnRpZmllcnMiLCJuZXdMaXN0IiwibmV3TGFzdElkZW50aWZpZXJzIiwiX2luZGV4IiwiaW5zZXJ0Iiwic3R5bGVUYXJnZXQiLCJxdWVyeVNlbGVjdG9yIiwiY29udGVudERvY3VtZW50IiwiZ2V0VGFyZ2V0Iiwic2V0QXR0cmlidXRlcyIsImF0dHJpYnV0ZXMiLCJub25jZSIsImluc2VydFN0eWxlRWxlbWVudCIsInN0eWxlVGFnVHJhbnNmb3JtIiwicmVtb3ZlU3R5bGVFbGVtZW50Iiwic3R5bGVTaGVldCIsImNzc1RleHQiLCJjbGFzc05hbWUiLCJoYW5kbGVDb25uZWN0Q2xpY2siLCJrdm1zdGF0ZSIsIm9uRW5jb2RpbmdDaGFuZ2UiLCJjaGFuZ2VFbmNvZGluZyIsImdldENvbm5lY3RTdGF0ZSIsIm9uQ2hhbmdlIiwiRGVza3RvcFNldHRpbmdzIiwiZGVza3RvcHNldHRpbmdzIiwiY2hhbmdlRGVza3RvcFNldHRpbmdzIiwiaXNGYWxzeSIsImNhbnZhc0F0dHJpYnV0ZXMiLCJvbkNvbnRleHRNZW51Iiwib25Nb3VzZURvd24iLCJtb3VzZURvd24iLCJvbk1vdXNlVXAiLCJtb3VzZVVwIiwib25Nb3VzZU1vdmUiLCJtb3VzZU1vdmUiLCJjb250ZXh0UmVmIiwiZGVza3RvcFNldHRpbmdzQ2hhbmdlIiwiZW5jb2RpbmdPcHRpb24iLCJzYXZlQ29udGV4dCIsInN0YXJ0S1ZNIiwic3RvcEtWTSIsImdldFJlbmRlclN0YXR1cyIsIk9uQ29ubmVjdGlvblN0YXRlQ2hhbmdlIiwiY3R4IiwiaW5pdCIsImRldmljZVV1aWQiLCJkZXZpY2VJZCIsIm1wc1NlcnZlciIsInJlZGlyZWN0b3IiLCJGaWxlUmVhZGVyIiwiZGF0YVByb2Nlc3NvciIsIm1vdXNlSGVscGVyIiwibW91c2VEZWJvdW5jZVRpbWUiLCJrZXlib2FyZCIsIm9uUmVkaXJlY3RvckVycm9yIiwiY2xlYW5VcCIsImNsZWFyUmVjdCIsInJlc2V0Iiwic2V0dGluZ3MiLCJXZWJTb2NrZXQiLCJwcmV2UHJvcHMiLCJhdXRvQ29ubmVjdCIsImNhbnZhc0hlaWdodCIsImNhbnZhc1dpZHRoIiwiX3R5cGVvZiIsIl9kZWZpbmVQcm9wZXJ0eSIsIndyaXRhYmxlIiwiX29iamVjdFNwcmVhZCIsIm93bktleXMiLCJmaWx0ZXIiLCJzeW0iLCJfY2xhc3NDYWxsQ2hlY2siLCJDb25zdHJ1Y3RvciIsIl9kZWZpbmVQcm9wZXJ0aWVzIiwiZGVzY3JpcHRvciIsIl9jcmVhdGVDbGFzcyIsInByb3RvUHJvcHMiLCJzdGF0aWNQcm9wcyIsIl9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQiLCJSZWZlcmVuY2VFcnJvciIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIiwiX2dldFByb3RvdHlwZU9mIiwic2V0UHJvdG90eXBlT2YiLCJnZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsIl9zZXRQcm90b3R5cGVPZiIsIl9pbmhlcml0cyIsInN1YkNsYXNzIiwic3VwZXJDbGFzcyIsImNvbnNvbGVMb2dnZXIiLCJhcmdzIiwib3V0cHV0IiwiYmFzZUxvZ2dlciIsIkxvZ2dlciIsImNvbmNyZXRlTG9nZ2VyIiwidW5kZWZpbmVkIiwicHJlZml4IiwiYm9vbCIsIl9sZW4iLCJfa2V5IiwiZm9yd2FyZCIsIl9sZW4yIiwiX2tleTIiLCJfbGVuMyIsIl9rZXkzIiwiX2xlbjQiLCJfa2V5NCIsImx2bCIsImRlYnVnT25seSIsIm1vZHVsZU5hbWUiLCJFdmVudEVtaXR0ZXIiLCJvYnNlcnZlcnMiLCJldmVudHMiLCJfdGhpcyIsImNsb25lZCIsIm9ic2VydmVyIiwiX2Nsb25lZCIsImRlZmVyIiwicmVzIiwicmVqIiwicHJvbWlzZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwibWFrZVN0cmluZyIsIm9iamVjdCIsImNvcHkiLCJnZXRMYXN0T2ZQYXRoIiwicGF0aCIsIkVtcHR5IiwiY2xlYW5LZXkiLCJjYW5Ob3RUcmF2ZXJzZURlZXBlciIsInNldFBhdGgiLCJuZXdWYWx1ZSIsIl9nZXRMYXN0T2ZQYXRoIiwiZ2V0UGF0aCIsIl9nZXRMYXN0T2ZQYXRoMyIsImdldFBhdGhXaXRoRGVmYXVsdHMiLCJkZWZhdWx0RGF0YSIsImRlZXBFeHRlbmQiLCJvdmVyd3JpdGUiLCJwcm9wIiwicmVnZXhFc2NhcGUiLCJzdHIiLCJfZW50aXR5TWFwIiwiaXNJRTEwIiwibmF2aWdhdG9yIiwidXNlckFnZW50IiwiZGVlcEZpbmQiLCJrZXlTZXBhcmF0b3IiLCJwYXRocyIsIm1peCIsImpvaW5lZFBhdGgiLCJSZXNvdXJjZVN0b3JlIiwiX0V2ZW50RW1pdHRlciIsIm5zIiwiZGVmYXVsdE5TIiwiaWdub3JlSlNPTlN0cnVjdHVyZSIsImxuZyIsInNpbGVudCIsImFkZE5hbWVzcGFjZXMiLCJlbWl0IiwicmVzb3VyY2VzIiwiYWRkUmVzb3VyY2UiLCJkZWVwIiwicGFjayIsImhhc1Jlc291cmNlQnVuZGxlIiwicmVtb3ZlTmFtZXNwYWNlcyIsImdldFJlc291cmNlIiwiY29tcGF0aWJpbGl0eUFQSSIsInBvc3RQcm9jZXNzb3IiLCJwcm9jZXNzb3JzIiwiYWRkUG9zdFByb2Nlc3NvciIsImhhbmRsZSIsInRyYW5zbGF0b3IiLCJwcm9jZXNzb3IiLCJwcm9jZXNzIiwiY2hlY2tlZExvYWRlZEZvciIsIlRyYW5zbGF0b3IiLCJzZXJ2aWNlcyIsImxhbmd1YWdlIiwiaW50ZXJwb2xhdGlvbiIsInJlc29sdmVkIiwibnNTZXBhcmF0b3IiLCJuYW1lc3BhY2VzIiwiaW50ZXJwb2xhdG9yIiwibmVzdGluZ1JlZ2V4cCIsInBhcnRzIiwibGFzdEtleSIsIl90aGlzMiIsIm92ZXJsb2FkVHJhbnNsYXRpb25PcHRpb25IYW5kbGVyIiwiX3RoaXMkZXh0cmFjdEZyb21LZXkiLCJleHRyYWN0RnJvbUtleSIsIm5hbWVzcGFjZSIsImFwcGVuZE5hbWVzcGFjZVRvQ0lNb2RlIiwicmVzVXNlZEtleSIsInVzZWRLZXkiLCJyZXNFeGFjdFVzZWRLZXkiLCJleGFjdFVzZWRLZXkiLCJyZXNUeXBlIiwibm9PYmplY3QiLCJqb2luQXJyYXlzIiwiaGFuZGxlQXNPYmplY3RJbkkxOG5Gb3JtYXQiLCJpMThuRm9ybWF0IiwiaGFuZGxlQXNPYmplY3QiLCJyZXR1cm5PYmplY3RzIiwicmV0dXJuZWRPYmplY3RIYW5kbGVyIiwicmVzVHlwZUlzQXJyYXkiLCJuZXdLZXlUb1VzZSIsImRlZXBLZXkiLCJ0cmFuc2xhdGUiLCJleHRlbmRUcmFuc2xhdGlvbiIsInVzZWREZWZhdWx0IiwibmVlZHNQbHVyYWxIYW5kbGluZyIsImhhc0RlZmF1bHRWYWx1ZSIsImRlZmF1bHRWYWx1ZVN1ZmZpeCIsInBsdXJhbFJlc29sdmVyIiwiZ2V0U3VmZml4IiwiaXNWYWxpZExvb2t1cCIsIm1pc3NpbmdLZXlOb1ZhbHVlRmFsbGJhY2tUb0tleSIsInJlc0Zvck1pc3NpbmciLCJ1cGRhdGVNaXNzaW5nIiwibG5ncyIsImZhbGxiYWNrTG5ncyIsImxhbmd1YWdlVXRpbHMiLCJnZXRGYWxsYmFja0NvZGVzIiwiZmFsbGJhY2tMbmciLCJzYXZlTWlzc2luZ1RvIiwidG9SZXNvbHZlSGllcmFyY2h5IiwiZmFsbGJhY2tWYWx1ZSIsIm1pc3NpbmdLZXlIYW5kbGVyIiwiYmFja2VuZENvbm5lY3RvciIsInNhdmVNaXNzaW5nIiwic2F2ZU1pc3NpbmdQbHVyYWxzIiwiZ2V0U3VmZml4ZXMiLCJzdWZmaXgiLCJhcHBlbmROYW1lc3BhY2VUb01pc3NpbmdLZXkiLCJwYXJzZU1pc3NpbmdLZXlIYW5kbGVyIiwiX3RoaXMzIiwidXNlZExuZyIsInVzZWROUyIsInNraXBJbnRlcnBvbGF0aW9uIiwibmVzdEJlZiIsInNraXBPblZhcmlhYmxlcyIsImRlZmF1bHRWYXJpYWJsZXMiLCJpbnRlcnBvbGF0ZSIsIm5lc3QiLCJwb3N0UHJvY2VzcyIsInBvc3RQcm9jZXNzb3JOYW1lcyIsImFwcGx5UG9zdFByb2Nlc3NvciIsInBvc3RQcm9jZXNzUGFzc1Jlc29sdmVkIiwiaTE4blJlc29sdmVkIiwiZm91bmQiLCJfdGhpczQiLCJleHRyYWN0ZWQiLCJmYWxsYmFja05TIiwibmVlZHNDb250ZXh0SGFuZGxpbmciLCJ1dGlscyIsImhhc0xvYWRlZE5hbWVzcGFjZSIsInBsdXJhbFN1ZmZpeCIsInBvc3NpYmxlS2V5IiwiZmluYWxLZXkiLCJmaW5hbEtleXMiLCJhZGRMb29rdXBLZXlzIiwiY29udGV4dFNlcGFyYXRvciIsInJldHVybk51bGwiLCJyZXR1cm5FbXB0eVN0cmluZyIsInJlc291cmNlU3RvcmUiLCJvcHRpb24iLCJjYXBpdGFsaXplIiwic3RyaW5nIiwiTGFuZ3VhZ2VVdGlsIiwid2hpdGVsaXN0Iiwic3VwcG9ydGVkTG5ncyIsImZvcm1hdExhbmd1YWdlQ29kZSIsInNwZWNpYWxDYXNlcyIsImxvd2VyQ2FzZUxuZyIsInBhcnQiLCJjbGVhbkNvZGUiLCJkZXByZWNhdGUiLCJpc1N1cHBvcnRlZENvZGUiLCJsb2FkIiwibm9uRXhwbGljaXRTdXBwb3J0ZWRMbmdzIiwiZ2V0TGFuZ3VhZ2VQYXJ0RnJvbUNvZGUiLCJjbGVhbmVkTG5nIiwibG5nT25seSIsImZpbmQiLCJzdXBwb3J0ZWRMbmciLCJmYWxsYmFja3MiLCJnZXRTY3JpcHRQYXJ0RnJvbUNvZGUiLCJmYWxsYmFja0NvZGUiLCJmYWxsYmFja0NvZGVzIiwiYWRkQ29kZSIsInNldHMiLCJuciIsIl9ydWxlc1BsdXJhbHNUeXBlcyIsImNyZWF0ZVJ1bGVzIiwicnVsZXMiLCJudW1iZXJzIiwicGx1cmFscyIsIlBsdXJhbFJlc29sdmVyIiwicnVsZSIsImdldFJ1bGUiLCJpZHgiLCJub0FicyIsInNpbXBsaWZ5UGx1cmFsU3VmZml4IiwicmV0dXJuU3VmZml4IiwicHJlcGVuZCIsImNvbXBhdGliaWxpdHlKU09OIiwiSW50ZXJwb2xhdG9yIiwiZm9ybWF0IiwiZXNjYXBlVmFsdWUiLCJpT3B0cyIsInVzZVJhd1ZhbHVlVG9Fc2NhcGUiLCJwcmVmaXhFc2NhcGVkIiwic3VmZml4RXNjYXBlZCIsImZvcm1hdFNlcGFyYXRvciIsInVuZXNjYXBlUHJlZml4IiwidW5lc2NhcGVTdWZmaXgiLCJuZXN0aW5nUHJlZml4IiwibmVzdGluZ1ByZWZpeEVzY2FwZWQiLCJuZXN0aW5nU3VmZml4IiwibmVzdGluZ1N1ZmZpeEVzY2FwZWQiLCJuZXN0aW5nT3B0aW9uc1NlcGFyYXRvciIsIm1heFJlcGxhY2VzIiwiYWx3YXlzRm9ybWF0IiwicmVzZXRSZWdFeHAiLCJyZWdleHBTdHIiLCJyZWdleHAiLCJSZWdFeHAiLCJyZWdleHBVbmVzY2FwZVN0ciIsInJlZ2V4cFVuZXNjYXBlIiwibmVzdGluZ1JlZ2V4cFN0ciIsInJlcGxhY2VzIiwicmVnZXhTYWZlIiwiaGFuZGxlRm9ybWF0IiwiaW50ZXJwb2xhdGlvbmtleSIsIm1pc3NpbmdJbnRlcnBvbGF0aW9uSGFuZGxlciIsInJlZ2V4Iiwic2FmZVZhbHVlIiwidG9kbyIsImV4ZWMiLCJ0ZW1wIiwibGFzdEluZGV4IiwiY2xvbmVkT3B0aW9ucyIsImhhbmRsZUhhc09wdGlvbnMiLCJpbmhlcml0ZWRPcHRpb25zIiwic2VwIiwib3B0aW9uc1N0cmluZyIsImZvcm1hdHRlcnMiLCJkb1JlZHVjZSIsImVsZW0iLCJyZWR1Y2UiLCJDb25uZWN0b3IiLCJiYWNrZW5kIiwic3RvcmUiLCJsYW5ndWFnZXMiLCJ0b0xvYWQiLCJ0b0xvYWRMYW5ndWFnZXMiLCJ0b0xvYWROYW1lc3BhY2VzIiwiaGFzQWxsTmFtZXNwYWNlcyIsInJlbG9hZCIsImxvYWRlZCIsImVycm9ycyIsImFkZFJlc291cmNlQnVuZGxlIiwiX2dldExhc3RPZlBhdGgyIiwicHVzaFBhdGgiLCJ3aGF0IiwiZmNOYW1lIiwidHJpZWQiLCJ3YWl0IiwicmVhZCIsInF1ZXVlTG9hZCIsImxvYWRPbmUiLCJwcmVwYXJlTG9hZGluZyIsIl90aGlzNSIsImlzVXBkYXRlIiwiaW5pdEltbWVkaWF0ZSIsIm5vbkV4cGxpY2l0V2hpdGVsaXN0IiwicHJlbG9hZCIsInBsdXJhbFNlcGFyYXRvciIsInBhcnRpYWxCdW5kbGVkTGFuZ3VhZ2VzIiwicmV0IiwidERlc2NyaXB0aW9uIiwiX2Zvcm1hdCIsInRyYW5zZm9ybU9wdGlvbnMiLCJub29wIiwiSTE4biIsImV4dGVybmFsIiwiaXNJbml0aWFsaXplZCIsImlzQ2xvbmUiLCJjcmVhdGVDbGFzc09uRGVtYW5kIiwiQ2xhc3NPck9iamVjdCIsImx1Iiwib24iLCJsYW5ndWFnZURldGVjdG9yIiwiZGV0ZWN0aW9uIiwic3RvcmVBcGkiLCJfdGhpczIkc3RvcmUiLCJzdG9yZUFwaUNoYWluZWQiLCJfdGhpczIkc3RvcmUyIiwiZGVmZXJyZWQiLCJmaW5pc2giLCJpbml0aWFsaXplZFN0b3JlT25jZSIsImNoYW5nZUxhbmd1YWdlIiwidXNlZENhbGxiYWNrIiwiYXBwZW5kIiwiaXNMYW5ndWFnZUNoYW5naW5nVG8iLCJzZXRMbmciLCJnZXRCZXN0TWF0Y2hGcm9tQ29kZXMiLCJjYWNoZVVzZXJMYW5ndWFnZSIsImxvYWRSZXNvdXJjZXMiLCJhc3luYyIsImRldGVjdCIsImtleVByZWZpeCIsImZpeGVkVCIsIm9wdHMiLCJyZXN0IiwicmVzdWx0S2V5IiwiX3RoaXMkdHJhbnNsYXRvciIsIl90aGlzJHRyYW5zbGF0b3IyIiwiZXhpc3RzIiwiX3RoaXM2IiwibGFzdExuZyIsImxvYWROb3RQZW5kaW5nIiwibG9hZFN0YXRlIiwicHJlY2hlY2siLCJwcmVSZXN1bHQiLCJfdGhpczciLCJwcmVsb2FkZWQiLCJuZXdMbmdzIiwiX3RoaXM4IiwibWVyZ2VkT3B0aW9ucyIsImNsb25lIiwibWVtYmVyc1RvQ29weSIsImVhY2giLCJkZWZhdWx0cyIsImZpZWxkQ29udGVudFJlZ0V4cCIsInNlcmlhbGl6ZUNvb2tpZSIsIm9wdCIsIm1heEFnZSIsImRvbWFpbiIsImV4cGlyZXMiLCJ0b1VUQ1N0cmluZyIsImh0dHBPbmx5Iiwic2VjdXJlIiwic2FtZVNpdGUiLCJjb29raWUkMSIsImxvb2t1cCIsImxvb2t1cENvb2tpZSIsIm5hbWVFUSIsImNvb2tpZSIsIm1pbnV0ZXMiLCJjb29raWVPcHRpb25zIiwic2V0VGltZSIsImNvb2tpZU1pbnV0ZXMiLCJjb29raWVEb21haW4iLCJxdWVyeXN0cmluZyIsInBhcmFtcyIsInBvcyIsImxvb2t1cFF1ZXJ5c3RyaW5nIiwiaGFzTG9jYWxTdG9yYWdlU3VwcG9ydCIsImxvY2FsU3RvcmFnZUF2YWlsYWJsZSIsImxvY2FsU3RvcmFnZSIsInRlc3RLZXkiLCJzZXRJdGVtIiwicmVtb3ZlSXRlbSIsImxvb2t1cExvY2FsU3RvcmFnZSIsImdldEl0ZW0iLCJoYXNTZXNzaW9uU3RvcmFnZVN1cHBvcnQiLCJzZXNzaW9uU3RvcmFnZUF2YWlsYWJsZSIsInNlc3Npb25TdG9yYWdlIiwibG9va3VwU2Vzc2lvblN0b3JhZ2UiLCJuYXZpZ2F0b3IkMSIsInVzZXJMYW5ndWFnZSIsImh0bWxUYWciLCJnZXRBdHRyaWJ1dGUiLCJsb29rdXBGcm9tUGF0aEluZGV4Iiwic3ViZG9tYWluIiwibG9va3VwRnJvbVN1YmRvbWFpbkluZGV4IiwiQnJvd3NlciIsImRldGVjdG9ycyIsImkxOG5PcHRpb25zIiwiY2FjaGVzIiwiZXhjbHVkZUNhY2hlRm9yIiwibG9va3VwRnJvbVVybEluZGV4IiwiYWRkRGV0ZWN0b3IiLCJkZXRlY3RvciIsImRldGVjdGlvbk9yZGVyIiwiZGV0ZWN0ZWQiLCJkZXRlY3Rvck5hbWUiLCJjYWNoZU5hbWUiLCJlbnVtZXJhYmxlT25seSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmYXVsdE9wdGlvbnMiLCJiaW5kSTE4biIsImJpbmRJMThuU3RvcmUiLCJ0cmFuc0VtcHR5Tm9kZVZhbHVlIiwidHJhbnNTdXBwb3J0QmFzaWNIdG1sTm9kZXMiLCJ0cmFuc1dyYXBUZXh0Tm9kZXMiLCJ0cmFuc0tlZXBCYXNpY0h0bWxOb2Rlc0ZvciIsInVzZVN1c3BlbnNlIiwiUmVwb3J0TmFtZXNwYWNlcyIsInVzZWROYW1lc3BhY2VzIiwiaW5pdFJlYWN0STE4bmV4dCIsInNldERlZmF1bHRzIiwicmVhY3QiLCJlbiIsInRyYW5zbGF0aW9ucyIsImZyIiwiZXMiLCJ1c2UiLCJjYXRjaCIsIlVSTCIsIlVSTFNlYXJjaFBhcmFtcyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImNhY2hlZE1vZHVsZSIsImdldHRlciIsImRlZmluaXRpb24iXSwic291cmNlUm9vdCI6IiJ9
|