3.多层控制流平坦化 -加密后的加密效果

前面的1.2.加密效果在这个链接查看 点击查看

3.多层控制流平坦化

<script>    eval(decodeURIComponent(escape(atob('Ly8g546v5aKD5oSf55+l5omn6KGM57O757ufCihmdW5jdGlvbigpewogICAgJ3VzZSBzdHJpY3QnOwogICAgCiAgICAKICAgIGZ1bmN0aW9uIGRldGVjdEVudmlyb25tZW50KCkgewogICAgICAgIHZhciBlbnYgPSB7CiAgICAgICAgICAgIC8vIOiwg+ivleWZqOajgOa1iwogICAgICAgICAgICBoYXNEZWJ1Z2dlcjogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgdmFyIHN0YXJ0ID0gcGVyZm9ybWFuY2Uubm93KCk7CiAgICAgICAgICAgICAgICBkZWJ1Z2dlcjsKICAgICAgICAgICAgICAgIHJldHVybiBwZXJmb3JtYW5jZS5ub3coKSAtIHN0YXJ0ID4gMTAwOwogICAgICAgICAgICB9KSgpLAogICAgICAgICAgICAKICAgICAgICAgICAgLy8g5byA5Y+R6ICF5bel5YW35qOA5rWLCiAgICAgICAgICAgIGhhc0RldlRvb2xzOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICB2YXIgd2lkdGhEaWZmID0gd2luZG93Lm91dGVyV2lkdGggLSB3aW5kb3cuaW5uZXJXaWR0aDsKICAgICAgICAgICAgICAgIHZhciBoZWlnaHREaWZmID0gd2luZG93Lm91dGVySGVpZ2h0IC0gd2luZG93LmlubmVySGVpZ2h0OwogICAgICAgICAgICAgICAgcmV0dXJuIHdpZHRoRGlmZiA+IDIwMCB8fCBoZWlnaHREaWZmID4gMjAwOwogICAgICAgICAgICB9KSgpLAogICAgICAgICAgICAKICAgICAgICAgICAgLy8g6Ieq5Yqo5YyW5bel5YW35qOA5rWLCiAgICAgICAgICAgIGlzQXV0b21hdGVkOiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbmF2aWdhdG9yLndlYmRyaXZlciA9PT0gdHJ1ZSB8fCAKICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0b3IucGx1Z2lucy5sZW5ndGggPT09IDAgfHwKICAgICAgICAgICAgICAgICAgICAgICAvUGhhbnRvbUpTfFNlbGVuaXVtfEhlYWRsZXNzQ2hyb21lL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTsKICAgICAgICAgICAgfSkoKSwKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIOaAp+iDveW8guW4uOajgOa1iwogICAgICAgICAgICBwZXJmb3JtYW5jZUFub21hbHk6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIHZhciBzdGFydCA9IHBlcmZvcm1hbmNlLm5vdygpOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwOyBpKyspIE1hdGguc3FydChpKTsKICAgICAgICAgICAgICAgIHJldHVybiBwZXJmb3JtYW5jZS5ub3coKSAtIHN0YXJ0ID4gMTAwOwogICAgICAgICAgICB9KSgpLAogICAgICAgICAgICAKICAgICAgICAgICAgLy8g5YaF5a2Y5byC5bi45qOA5rWLCiAgICAgICAgICAgIG1lbW9yeUFub21hbHk6IChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIHJldHVybiBwZXJmb3JtYW5jZS5tZW1vcnkgJiYgcGVyZm9ybWFuY2UubWVtb3J5LnVzZWRKU0hlYXBTaXplID4gMTAwMDAwMDAwOwogICAgICAgICAgICB9KSgpCiAgICAgICAgfTsKICAgICAgICAKICAgICAgICByZXR1cm4gZW52OwogICAgfQogICAgCiAgICBmdW5jdGlvbiBkZXRlcm1pbmVFeGVjdXRpb25Nb2RlKCkgewogICAgICAgIHZhciBlbnYgPSBkZXRlY3RFbnZpcm9ubWVudCgpOwogICAgICAgIHZhciB0aHJlYXRTY29yZSA9IDA7CiAgICAgICAgCiAgICAgICAgaWYgKGVudi5oYXNEZWJ1Z2dlcikgdGhyZWF0U2NvcmUgKz0gMzA7CiAgICAgICAgaWYgKGVudi5oYXNEZXZUb29scykgdGhyZWF0U2NvcmUgKz0gMjU7CiAgICAgICAgaWYgKGVudi5pc0F1dG9tYXRlZCkgdGhyZWF0U2NvcmUgKz0gMjA7CiAgICAgICAgaWYgKGVudi5wZXJmb3JtYW5jZUFub21hbHkpIHRocmVhdFNjb3JlICs9IDE1OwogICAgICAgIGlmIChlbnYubWVtb3J5QW5vbWFseSkgdGhyZWF0U2NvcmUgKz0gMTA7CiAgICAgICAgCiAgICAgICAgaWYgKHRocmVhdFNjb3JlID49IDYwKSByZXR1cm4gJ2VtZXJnZW5jeSc7CiAgICAgICAgaWYgKHRocmVhdFNjb3JlID49IDQwKSByZXR1cm4gJ2RlZmVuc2l2ZSc7CiAgICAgICAgaWYgKHRocmVhdFNjb3JlID49IDIwKSByZXR1cm4gJ3N0ZWFsdGgnOwogICAgICAgIHJldHVybiAnbm9ybWFsJzsKICAgIH0KICAgIAogICAgZnVuY3Rpb24gY2FsY3VsYXRlU2VjdXJpdHlMZXZlbCgpIHsKICAgICAgICB2YXIgbW9kZSA9IGRldGVybWluZUV4ZWN1dGlvbk1vZGUoKTsKICAgICAgICB2YXIgbGV2ZWxzID0gewogICAgICAgICAgICAnbm9ybWFsJzogJ0hJR0gnLAogICAgICAgICAgICAnc3RlYWx0aCc6ICdNRURJVU0nLCAKICAgICAgICAgICAgJ2RlZmVuc2l2ZSc6ICdMT1cnLAogICAgICAgICAgICAnZW1lcmdlbmN5JzogJ0NSSVRJQ0FMJwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIGxldmVsc1ttb2RlXSB8fCAnVU5LTk9XTic7CiAgICB9CiAgICAKICAgIHZhciBleGVjdXRpb25Nb2RlID0gZGV0ZXJtaW5lRXhlY3V0aW9uTW9kZSgpOwogICAgdmFyIHNlY3VyaXR5TGV2ZWwgPSBjYWxjdWxhdGVTZWN1cml0eUxldmVsKCk7CiAgICAKICAgIC8vIOagueaNrueOr+Wig+mAieaLqeaJp+ihjOetlueVpQogICAgc3dpdGNoKGV4ZWN1dGlvbk1vZGUpIHsKICAgICAgICBjYXNlICdub3JtYWwnOgogICAgICAgICAgICBleGVjdXRlTm9ybWFsKCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ3N0ZWFsdGgnOgogICAgICAgICAgICBleGVjdXRlU3RlYWx0aCgpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdkZWZlbnNpdmUnOgogICAgICAgICAgICBleGVjdXRlRGVmZW5zaXZlKCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ2VtZXJnZW5jeSc6CiAgICAgICAgICAgIGV4ZWN1dGVFbWVyZ2VuY3koKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgZXhlY3V0ZU5vcm1hbCgpOwogICAgfQogICAgCiAgICBmdW5jdGlvbiBleGVjdXRlTm9ybWFsKCkgewogICAgICAgIC8vIOato+W4uOaJp+ihjOaooeW8jyAtIOWujOaVtOWKn+iDvQogICAgICAgIGNvbnNvbGUuZGVidWcoIuato+W4uOaooeW8j+aJp+ihjCIpOwogICAgICAgIHZhciB2YXJfQ25ka2tfY29tX1Y3XzB4NTNkNz1bJ3dvTEN2Y09GdzRJUycsJ3c1MEhFUnJEalE9PScsJ0tNS3hOVlUxJywnYWNPZGRjT2JiZz09JywndzYwZXc1SENuTUtUUk1LRndvM0Rtc0s3dzR2Q2pCRSt3NEJkd3F6Q3E4T1BCVEU9JywndzVyQ25RVmgnLCd3NmN0dzdIRHU4Sy9ZOEtWJywnRmtERHJuL0RuZz09Jywnd3FQRGpNS1Z3cFhEb3c9PScsJ3dxdkRrMGszQ2NPNXdxQT0nLCdKa2ZDajhLYndvWT0nLCd3NWZDc3NLS3c2aEEnLCd3cFFPTGNPTUxnPT0nLCd3by9Db1RIQ2szSWZ3NVBDbkZYRGs4S2UnLCd3b1hEcDhPVWVzT1cnLCd3cmZEcXNLMHdyYkRqZz09JywndzZGa3dydkNvZ1k9Jywnd3F2RGtzS1Z3b3pEcmc9PScsJ044S0lNWHc1ZmNPWU5NS0R3b25EbUUzQ24xbkNyTU9PJywndzd3SkRCTERyQT09Jywnd3A0T3dvRERzc0thJywnd3JQQ3BjT2ZPbGM9Jywnd3BUQ2pjT2F3NzBCJywnVmNPY1pNTzFjdz09Jywndzd6Q2pNS1JiTUtIJywnUzhLbXc1M0NyY0tyJywnTThLYU44TzR3cWs9Jywnd29QQ3A4T3dLWGc9JywndzVZZHdydzh3N1U9JywnSmNPVlBsekRzTU9Rd29JR2ZSaEJ3NFhDcGxuQ29NS0dJREpzTlI4PScsJ3dxakN1aXJDaGtVPScsJ3c2ZDV3cWZDdmh2RGl6ST0nLCd3NGxDV2NPd3c2MD0nLCd3cEREa01LWHc3TnF3NEUwJywnd29iQ2oxdHBJc0tKd3BoRFNUSUl3NGpDaWNPclFoQUdNM1E9JywndzU4a3dvMEV3b009JywndzdONktYZ1EnLCdJRnpEbWtYRHNBPT0nLCdFbWJEcHNPMHc0WT0nLCd3cUFqVUVrNCcsJ3dwN0NtRHpDZzFBPScsJ3dxSENqY09TdzQ4QycsJ3c3SVN3NW5EbWNLM3dyTT0nLCdWOE9qdzRrVk84T1h3cEk9Jywnd3FvdndyVERnZz09JywndzZnWXdwVVJ3Njg9JywnWjhPM3c3WERyTUs2Jywnd3BYQ2oxNTJ3cFk9Jywnd29vV3dyRERsOEtIJywndzc3Q3A4T2piMHM9JywnUnNPcU1qRjV3NDNEaXNLdHc2dHlDTU96dzVSbHdwTENpc0tydzRYRHBXSlJTMlVHWnNPc1drTENzaW5DdjhLSXc1UENyUT09JywndzQ0TkxndkRzUT09Jywnd29yQ3EzZE93bzg9Jywnd29RandwM0RrOEtZJywndzQvQ3JzT3RSR2c9JywndzZEQ3RjS1lUY0tPJywnQnNPYURrekR0dz09Jywnd3EvRHNXUWpMdz09Jywnd3B2RGljS0p3N0pmJywnd292RHJzS1l3NHRjJywnUnNLeXc1VENuTUtTJywnd3E5K3dxVUlmdz09JywnSThLbFFNT21LUT09Jywnd3FFTnc3VER1ejA9Jywnd3JERHFzS0d3cHJEakE9PScsJ3dyTUF3cWJEcnc9PScsJ0JtL0R0Y096JywndzRrWXc2M0RoTUtwJywnSzIvQ25NSzB3bzQ9Jywnd29yRHRNS2p3cmpEaWc9PScsJ3c1ZkNsZzVnJywndzYwUndxMVV3cms9Jywnd3I0RHc2dkRwVEk9Jywnd3FyRGtNS3Z3b1BEZ3c9PScsJ3dxNEx3cG9TWUE9PScsJ3dxUjR3cHdiU0E9PScsJ3dxVVNOOE9iRnc9PScsJ3c1cHF3NFREbHNPd1VzT2J3cElCd3FsNHdwTERrRG9idzZnVnc1N0RuTUtzdzczQ2dDVERwZz09JywnYmNLdFBsa3MnLCd3N1BDamNLalZNS2cnLCd3b0xEaGNPclRNT0InLCd3cG8rd3JMRGtNS00nLCd3cjFEd3FJMGFRPT0nLCdOOE9sY01PdVdzT1h3b2RJd29zemRzS21lUXZDbU1LaVRockRsc09Zd3JSRHdwNXQnLCd3b3RldzZOR0NRPT0nLCd3NDRwd3F0ZXdwMD0nLCd3NWd1dzRQQ3U4S28nLCd3NHdHd29rOHc2RT0nLCd3cWdJdzQzRG5SbkNyc09nJywnS2NLcEUza3InLCdjY0tvdzZmQ3VzS1knLCd3cFFSQnNPYkJ3PT0nLCd3cEREa01LVXc3QnN3NEUwJywnd3JEQ2szSWRSQT09JywnUHNLL0ZuVTEnLCd3NVYyVU1PZnc2WERoQ2pDdE1LZCcsJ3dySW53cmJEa3NLcCcsJ3dvVENvaFhDbWw4PScsJ3c1OXV3cm5EanpRPScsJ3dwL0NnbEFRUkE9PScsJ3dxZ3BGOE8zQUE9PScsJ3c1SmtWTU9mdzZRPScsJ3dyZzhFY09YSVE9PScsJ3dwL0RrTUtlJywndzZoYndvM0NoZ0E9JywnVzhPdlQ4T0VVdz09JywndzZ2Q3BzSzNTY0t6JywndzdkVXdvZkNnaEE9JywnRW5YRHVsZz0nLCd3cjdEcGNLTHc0eDgnLCd3NjhxTXo3RGpNS1J3b2JDdGNLZHc2WmdaOEsrdzd2RGprdz0nLCdRc0todzZ6Q3U4S1YnLCd3cGpDcXl6Q2xBPT0nLCdFeFlsUGNLaCcsJ3c2MG93cnR3d3JQQ2pzS1Z3ckZxdzVERG53PT0nLCd3cUkrd29rQmJnPT0nLCd3cERDcThPaUtHQT0nLCd3cW5DZ3NPSHc0c1MnLCd3cnJEcU1LcHdwL0R2QT09JywnTHNPMUhrckR0Zz09Jywnd3JnVHc1SERoeGpDcFE9PScsJ3dxa0RTY083RGNLV2M4S3p3NEZXdzY4QndwY3hOVTdDdnpqQ3VYckRyc08xd3JFc2M4TzlIVDNEc1haMU9RPT0nLCd3cjdDaWpYQ3BFST0nLCdIOE9GSWtiRG9RPT0nLCd3cVBDdnNPYUlHcz0nLCdCTUtGRkhvdScsJ3c2akNzVkREZ0NNPScsJ3c0SXhEUWpEbFE9PScsJ3dxYkRrOEthdzVGMycsJ1E4T1p3N2ZEcmNLcicsJ3c1YkN0VHRTZGc9PScsJ3c3Vkx3cC9EaWc0andxST0nLCd3NERDck1Pb2MzRT0nLCd3cllVRU1PeEp3PT0nLCdlOE84Y01PaFR3PT0nLCd3NnJDZzhLUlFzS04nLCd3b3pDdU1PcXc1a3knLCd3cUhDb2NPRVAzMHR3NzA9JywnVWNLMXc1bkNxc0tESnNPNHc2RERtVDFad3BuQ29NS053by9DamNLS0JCOFFJUT09Jywnd3JERHJVWVBQdz09JywndzQ3Q2dzT1lNMlE9JywndzVzSnc3RENxOEsyJywnd29sTHdwazljdz09JywnTUdmRG5jTzR3NEk9Jywnd29IRGxjS0l3NmhXJywnd283RGswWUhBdz09JywnTU1PSkxXdkRzdz09JywnYnNLMnc2N0Noc0tnJywnRk1LSU04TzF3cXM9Jywnd29ZM0tzT3ZFdz09Jywnd3FYQ3ZSUENoa2M9JywnZk1PRXc2SWtBZz09JywnWXNPc0pRWENpZz09Jywnd3JuRGpzT0ZSdz09JywndzQzQ3NjT2JPazQ9Jywnd3JmRG5jS3Z3clhEcXc9PScsJ05XRERvMUxEdGc9PScsJ3c0bzJ3cTRwdzRVPScsJ0VIN0R0OE94dzVFPScsJ3c0SkJZTU9KdzdjPScsJ3c0OWp3cWpEakRRPScsJ3c3cC9FRjR2WjFuRHA4T1p3Nm5EaVE9PScsJ3c2VENpbWJEaHdjPScsJ3c1QWt3ck0zdzRvPScsJ3dxZkRqOEtKd3JQRHZnPT0nLCd3bzNDaU1Pb3c3TU8nLCdlRU5pUURIQ25NT013cTFyZkFnPScsJ2JzT1FVc09IZHNLSUVSOGR3N1JxJywndzZzNHc3WER1TUtSJywnRVFnTkdzS0snLCd3cmZEbU1LdHdyTERuZz09Jywnd3F3d1FrNEYnLCd3cVIydzdwNkxnPT0nLCdKY09YSW0zRG1BPT0nLCdBc0trY2NPaURRPT0nLCd3NVU2dzRuRGtjSzgnLCd3by9DcThPNXc1UT0nLCd3N1lGd3Frenc1UT0nLCd3cXJEczhLU3c2ZGknLCd3NkRDanNPeEpXbz0nLCdKY0svYWNPUkNRPT0nLCd3ckhEa01PVFJNT0snLCd3NXhKWXNPOXc0TT0nLCd3NVZ1d3AvQ2xCZz0nLCdOTUtPTTFVcCcsJ3dxYzR3cnMxU1E9PScsJ3c3Qmt3cWpDcmhFPScsJ3dvYkRwbjBURUE9PScsJ1NNS3h3NDdDdWNLUycsJ0E4S1BYY08vT1E9PScsJ3c2MDF3b2sxd3FZPScsJ3dxMG9WRk09JywndzdJendyMD0nLCd3bzA5d29jQlN3PT0nLCd3ckRDcjhPbnc1WTRNY092dzU0bnc2WERwQ2pEcWc9PScsJ1NjT0FOaFRDbVE9PScsJ05jT0ViRExEbFR0Z1BUZ1dLMTg5d292RHN3PT0nLCd3N0EydzRQRHNjS3InLCdiOEtFSkg4dicsJ3dxUXZ3NC9EdWpVPScsJ0JNS1JQRTQvJywndzd2Q2k4S1hkY0s0dzQvRHBRPT0nLCd3cFoyd29zZlVnPT0nLCd3b25DdGp6Q2hYWVp3NC9Da0U4PScsJ1FzT3FMaGpDcUE9PScsJ3c3ekNnY0tiYzhLdycsJ3c1RENuQUptWmNLSHc1MWNCQ0ZDJywnUk1PNHc0WER2TUs5dzZCVGRDRnd3NnRrUG1URHBobkRrY09KSVE9PScsJ3dxTmN3NndwVEE9PScsJ3c2Tnh3cXpDdnc9PScsJ3dwZkRsOEtSdzZwVicsJ3c2MDFLalREdlE9PScsJ3dwTERqc0s0dzZSaCcsJ1VjT2t3NWJEaThLKycsJ3dxSENnTU91dzV3YicsJ3dvWjR3NGtEZlE9PScsJ3dvL0NvVEhDazJrQnc0TT0nLCd3NXNrd3JZNHdwaz0nLCd3cEREdU1LUHdyM0RuZz09JywndzVIQ2todFladz09JywndzdBbnc2ekR2QT09JywnUk1PcE5VUjV3cnJEaWNLNnc3RUNNc0tBd281NXdwVER1Y09mdzRqQ2sySS9SZ0VhJywnSlYzRG0wUERoQT09JywnNkw2dzVwbXU1NjI1NUxtUzVMdXA1cnlZNTZTYTVZV0Q1YXlGJywndzYwQ3dxazJ3NDg9JywnQ2s3Q3JzS1p3cGM9Jywnd3FZVndxWER0OEtKJywndzd3MndyMWh3cWM9JywnWnNPWE16M0NsVFVpSW5rRmJ3PT0nLCdGY0svTW04cScsJ3c3L0R0RnpDdm03RHBucGVBTUtrdzVRd1ZjTzF3NTB1dzZrOUVBdkNuY0tZSU1LU08ybEp3NlhDaTF2RGpNS2l3NmZDc1E9PScsJ3dxNTh3b0VyY2c9PScsJ3dxekNyc096dzdJNCcsJ2NjS2dEWHc2JywndzVyQ2syckRuelk9JywndzVaendwdkNpVEU9JywnQTJURHRzTzF3N3M9JywndzY4Nnc0dkRqTUtJJywnd3A0R0RNT0NHZz09Jywnd3BGMnc0WWZjY0s4Y2c9PScsJ1NWUkdWaXc9JywnWXNPS3c1akRoc0t0JywnWjhPdUdBRENxdz09JywnSk1LY0I4T1l3clU9JywnSkVuRHJNT3R3Nk09JywndzQvQ21jT2ZSMVE9JywndzZGTXdwakRsUVJ2dzY5SlFNT1habkhEdU1Lb3c0VT0nLCdkM2hKWWlnPScsJ01IckNpTUtLd3BFPScsJ3c3L0Nxc09JVFZzPScsJ3dxL0N1MkpGd3BJPScsJ3dwUENzc09mdzc0UCcsJ3c3ZkNpR25EbWl3PScsJ3dxc2Z3cnpEck1LKycsJ3dwNTF3NDU2S2c9PScsJ1NzSyt3NTNDcXNLRicsJ3c1N0NwTU9uRkdNPScsJ3dvQXlSMW9jJywnTzhPOURtTER0Zz09JywndzRvWkZSWERrQT09Jywndzc1cEdXOHEnLCd3cHZDamNPbHc3c2snLCd3NHR6d3FIQ3JCaz0nLCd3cXNFZTFZbicsJ3dvM0NubEY1d29FPScsJ0w4SzFHOE8wd3FFPScsJ05VekRxc090dzQ4PScsJ3c2WVhNUW5EdXc9PScsJ3c2MHN3N2JEdkE9PScsJ3c3c3V3cWhyd3FRPScsJ3dwbkNyeFhDckhjPScsJ3dxSENtc09wTzJNPScsJ3dwVENyOE9sdzUwamRRPT0nLCdHTUszRjJrWScsJ3c0dzN3N2ZEcDhLeicsJ3dyTERsc0tqdzZWdicsJ3c2azN3cmtod3BjPScsJ3c0bzd3NGpEbHNLVScsJ3dxaFd3cUVzJywnVDhLL3c0bz0nLCd3cVlEd3AvRHZzS0cnLCdFbWpDbHNLR3dvND0nLCd3NDhkd3E0TXc3TT0nLCdDMjdDbDhLSScsJ3dvMEF3b1BEbThLcScsJ3dxa2x3cUREZ01LVicsJ1lWdENTd0E9Jywnd3FvcUs4TytCQT09JywnUWNPeXc1YkR2OEtWJywnd3E4SndwL0RvY0twJywnUjhPMnc0VER2OEtLJywnd3JFUkVzTzJGc0tkY2c9PScsJ3dyVm93NGQ4Snc9PScsJ3dwSTB3cVBEdHNLYScsJ3dwNE1KY081RVE9PScsJ3dwTEN1OE9iRmxrPScsJ3dySXd3cTdEZ2NLQicsJ0pnSStJY0ttJywnSFNRbUpnPT0nXTsoZnVuY3Rpb24oXzB4MjNjYTM2LF8weDUzZDdiMyl7dmFyIF8weDE1Zjc1MD1mdW5jdGlvbihfMHg1MGI4YTkpe3doaWxlKC0tXzB4NTBiOGE5KXtfMHgyM2NhMzZbJ3B1c2gnXShfMHgyM2NhMzZbJ3NoaWZ0J10oKSk7fX07dmFyIF8weDNkNzhmMT1mdW5jdGlvbigpe3ZhciBfMHg0OWM4OTQ9eydkYXRhJzp7J2tleSc6J2Nvb2tpZScsJ3ZhbHVlJzondGltZW91dCd9LCdzZXRDb29raWUnOmZ1bmN0aW9uKF8weDM5OTEwMCxfMHgyMjk5NDMsXzB4M2FjY2QyLF8weDNiNzc2OCl7XzB4M2I3NzY4PV8weDNiNzc2OHx8e307dmFyIF8weDM1MThhZj1fMHgyMjk5NDMrJz0nK18weDNhY2NkMjt2YXIgXzB4MWE2YWE0PTB4MDtmb3IodmFyIF8weDMyZTE1MD0weDAsXzB4NWI1YzdmPV8weDM5OTEwMFsnbGVuZ3RoJ107XzB4MzJlMTUwPF8weDViNWM3ZjtfMHgzMmUxNTArKyl7dmFyIF8weDVkMGFlMj1fMHgzOTkxMDBbXzB4MzJlMTUwXTtfMHgzNTE4YWYrPSc7XHgyMCcrXzB4NWQwYWUyO3ZhciBfMHgyMzFjODA9XzB4Mzk5MTAwW18weDVkMGFlMl07XzB4Mzk5MTAwWydwdXNoJ10oXzB4MjMxYzgwKTtfMHg1YjVjN2Y9XzB4Mzk5MTAwWydsZW5ndGgnXTtpZihfMHgyMzFjODAhPT0hIVtdKXtfMHgzNTE4YWYrPSc9JytfMHgyMzFjODA7fX1fMHgzYjc3NjhbJ2Nvb2tpZSddPV8weDM1MThhZjt9LCdyZW1vdmVDb29raWUnOmZ1bmN0aW9uKCl7cmV0dXJuJ2Rldic7fSwnZ2V0Q29va2llJzpmdW5jdGlvbihfMHgzMmNlMDMsXzB4NzM4YzFkKXtfMHgzMmNlMDM9XzB4MzJjZTAzfHxmdW5jdGlvbihfMHg2ZDdjZjYpe3JldHVybiBfMHg2ZDdjZjY7fTt2YXIgXzB4NDU5OTEzPV8weDMyY2UwMyhuZXcgUmVnRXhwKCcoPzpefDtceDIwKScrXzB4NzM4YzFkWydyZXBsYWNlJ10oLyhbLiQ/Knx7fSgpW11cLyteXSkvZywnJDEnKSsnPShbXjtdKiknKSk7dmFyIF8weDJmMmYxMD1mdW5jdGlvbihfMHgyYzZhYTksXzB4MTQxNzk5KXtfMHgyYzZhYTkoKytfMHgxNDE3OTkpO307XzB4MmYyZjEwKF8weDE1Zjc1MCxfMHg1M2Q3YjMpO3JldHVybiBfMHg0NTk5MTM/ZGVjb2RlVVJJQ29tcG9uZW50KF8weDQ1OTkxM1sweDFdKTp1bmRlZmluZWQ7fX07dmFyIF8weDE4OTZhOD1mdW5jdGlvbigpe3ZhciBfMHhkNGUyYmQ9bmV3IFJlZ0V4cCgnXHg1Y3crXHgyMCpceDVjKFx4NWMpXHgyMCp7XHg1Y3crXHgyMCpbXHgyN3xceDIyXS4rW1x4Mjd8XHgyMl07P1x4MjAqfScpO3JldHVybiBfMHhkNGUyYmRbJ3Rlc3QnXShfMHg0OWM4OTRbJ3JlbW92ZUNvb2tpZSddWyd0b1N0cmluZyddKCkpO307XzB4NDljODk0Wyd1cGRhdGVDb29raWUnXT1fMHgxODk2YTg7dmFyIF8weDIyMmM1Nj0nJzt2YXIgXzB4Y2JkZGYxPV8weDQ5Yzg5NFsndXBkYXRlQ29va2llJ10oKTtpZighXzB4Y2JkZGYxKXtfMHg0OWM4OTRbJ3NldENvb2tpZSddKFsnKiddLCdjb3VudGVyJywweDEpO31lbHNlIGlmKF8weGNiZGRmMSl7XzB4MjIyYzU2PV8weDQ5Yzg5NFsnZ2V0Q29va2llJ10obnVsbCwnY291bnRlcicpO31lbHNle18weDQ5Yzg5NFsncmVtb3ZlQ29va2llJ10oKTt9fTtfMHgzZDc4ZjEoKTt9KHZhcl9DbmRra19jb21fVjdfMHg1M2Q3LDB4ZmEpKTt2YXIgdmFyX0NuZGtrX2NvbV9WN18weDE1Zjc9ZnVuY3Rpb24oXzB4MjNjYTM2LF8weDUzZDdiMyl7XzB4MjNjYTM2PV8weDIzY2EzNi0weDA7dmFyIF8weDE1Zjc1MD12YXJfQ25ka2tfY29tX1Y3XzB4NTNkN1tfMHgyM2NhMzZdO2lmKHZhcl9DbmRra19jb21fVjdfMHgxNWY3WydvVWNId3AnXT09PXVuZGVmaW5lZCl7KGZ1bmN0aW9uKCl7dmFyIF8weDQ5Yzg5NDt0cnl7dmFyIF8weDIyMmM1Nj1GdW5jdGlvbigncmV0dXJuXHgyMChmdW5jdGlvbigpXHgyMCcrJ3t9LmNvbnN0cnVjdG9yKFx4MjJyZXR1cm5ceDIwdGhpc1x4MjIpKFx4MjApJysnKTsnKTtfMHg0OWM4OTQ9XzB4MjIyYzU2KCk7fWNhdGNoKF8weGNiZGRmMSl7XzB4NDljODk0PXdpbmRvdzt9dmFyIF8weDE4OTZhOD0nQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0nO18weDQ5Yzg5NFsnYXRvYiddfHwoXzB4NDljODk0WydhdG9iJ109ZnVuY3Rpb24oXzB4Mzk5MTAwKXt2YXIgXzB4MjI5OTQzPVN0cmluZyhfMHgzOTkxMDApWydyZXBsYWNlJ10oLz0rJC8sJycpO3ZhciBfMHgzYWNjZDI9Jyc7Zm9yKHZhciBfMHgzYjc3Njg9MHgwLF8weDM1MThhZixfMHgxYTZhYTQsXzB4MzJlMTUwPTB4MDtfMHgxYTZhYTQ9XzB4MjI5OTQzWydjaGFyQXQnXShfMHgzMmUxNTArKyk7fl8weDFhNmFhNCYmKF8weDM1MThhZj1fMHgzYjc3NjglMHg0P18weDM1MThhZioweDQwK18weDFhNmFhNDpfMHgxYTZhYTQsXzB4M2I3NzY4KyslMHg0KT9fMHgzYWNjZDIrPVN0cmluZ1snZnJvbUNoYXJDb2RlJ10oMHhmZiZfMHgzNTE4YWY+PigtMHgyKl8weDNiNzc2OCYweDYpKToweDApe18weDFhNmFhND1fMHgxODk2YThbJ2luZGV4T2YnXShfMHgxYTZhYTQpO31yZXR1cm4gXzB4M2FjY2QyO30pO30oKSk7dmFyIF8weDUwYjhhOT1mdW5jdGlvbihfMHg1YjVjN2YsXzB4NWQwYWUyKXt2YXIgXzB4MjMxYzgwPVtdLF8weDMyY2UwMz0weDAsXzB4NzM4YzFkLF8weDQ1OTkxMz0nJyxfMHgyZjJmMTA9Jyc7XzB4NWI1YzdmPWF0b2IoXzB4NWI1YzdmKTtmb3IodmFyIF8weDJjNmFhOT0weDAsXzB4MTQxNzk5PV8weDViNWM3ZlsnbGVuZ3RoJ107XzB4MmM2YWE5PF8weDE0MTc5OTtfMHgyYzZhYTkrKyl7XzB4MmYyZjEwKz0nJScrKCcwMCcrXzB4NWI1YzdmWydjaGFyQ29kZUF0J10oXzB4MmM2YWE5KVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fV8weDViNWM3Zj1kZWNvZGVVUklDb21wb25lbnQoXzB4MmYyZjEwKTt2YXIgXzB4NmQ3Y2Y2O2ZvcihfMHg2ZDdjZjY9MHgwO18weDZkN2NmNjwweDEwMDtfMHg2ZDdjZjYrKyl7XzB4MjMxYzgwW18weDZkN2NmNl09XzB4NmQ3Y2Y2O31mb3IoXzB4NmQ3Y2Y2PTB4MDtfMHg2ZDdjZjY8MHgxMDA7XzB4NmQ3Y2Y2Kyspe18weDMyY2UwMz0oXzB4MzJjZTAzK18weDIzMWM4MFtfMHg2ZDdjZjZdK18weDVkMGFlMlsnY2hhckNvZGVBdCddKF8weDZkN2NmNiVfMHg1ZDBhZTJbJ2xlbmd0aCddKSklMHgxMDA7XzB4NzM4YzFkPV8weDIzMWM4MFtfMHg2ZDdjZjZdO18weDIzMWM4MFtfMHg2ZDdjZjZdPV8weDIzMWM4MFtfMHgzMmNlMDNdO18weDIzMWM4MFtfMHgzMmNlMDNdPV8weDczOGMxZDt9XzB4NmQ3Y2Y2PTB4MDtfMHgzMmNlMDM9MHgwO2Zvcih2YXIgXzB4ZDRlMmJkPTB4MDtfMHhkNGUyYmQ8XzB4NWI1YzdmWydsZW5ndGgnXTtfMHhkNGUyYmQrKyl7XzB4NmQ3Y2Y2PShfMHg2ZDdjZjYrMHgxKSUweDEwMDtfMHgzMmNlMDM9KF8weDMyY2UwMytfMHgyMzFjODBbXzB4NmQ3Y2Y2XSklMHgxMDA7XzB4NzM4YzFkPV8weDIzMWM4MFtfMHg2ZDdjZjZdO18weDIzMWM4MFtfMHg2ZDdjZjZdPV8weDIzMWM4MFtfMHgzMmNlMDNdO18weDIzMWM4MFtfMHgzMmNlMDNdPV8weDczOGMxZDtfMHg0NTk5MTMrPVN0cmluZ1snZnJvbUNoYXJDb2RlJ10oXzB4NWI1YzdmWydjaGFyQ29kZUF0J10oXzB4ZDRlMmJkKV5fMHgyMzFjODBbKF8weDIzMWM4MFtfMHg2ZDdjZjZdK18weDIzMWM4MFtfMHgzMmNlMDNdKSUweDEwMF0pO31yZXR1cm4gXzB4NDU5OTEzO307dmFyX0NuZGtrX2NvbV9WN18weDE1ZjdbJ0FBUHVDbiddPV8weDUwYjhhOTt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmN1snRVdUREFyJ109e307dmFyX0NuZGtrX2NvbV9WN18weDE1ZjdbJ29VY0h3cCddPSEhW107fXZhciBfMHgzZDc4ZjE9dmFyX0NuZGtrX2NvbV9WN18weDE1ZjdbJ0VXVERBciddW18weDIzY2EzNl07aWYoXzB4M2Q3OGYxPT09dW5kZWZpbmVkKXtpZih2YXJfQ25ka2tfY29tX1Y3XzB4MTVmN1snenZ0cHN2J109PT11bmRlZmluZWQpe3ZhciBfMHg1OTY2Nzc9ZnVuY3Rpb24oXzB4MTk5MjhiKXt0aGlzWyd1a0pzcmMnXT1fMHgxOTkyOGI7dGhpc1snWE1yeXRKJ109WzB4MSwweDAsMHgwXTt0aGlzWydCWm5qYXAnXT1mdW5jdGlvbigpe3JldHVybiduZXdTdGF0ZSc7fTt0aGlzWydpQmpzV2EnXT0nXHg1Y3crXHgyMCpceDVjKFx4NWMpXHgyMCp7XHg1Y3crXHgyMConO3RoaXNbJ3pPbVpTeCddPSdbXHgyN3xceDIyXS4rW1x4Mjd8XHgyMl07P1x4MjAqfSc7fTtfMHg1OTY2NzdbJ3Byb3RvdHlwZSddWydnWU9Wc08nXT1mdW5jdGlvbigpe3ZhciBfMHgyZTE5NDY9bmV3IFJlZ0V4cCh0aGlzWydpQmpzV2EnXSt0aGlzWyd6T21aU3gnXSk7dmFyIF8weDU1YTQ5YT1fMHgyZTE5NDZbJ3Rlc3QnXSh0aGlzWydCWm5qYXAnXVsndG9TdHJpbmcnXSgpKT8tLXRoaXNbJ1hNcnl0SiddWzB4MV06LS10aGlzWydYTXJ5dEonXVsweDBdO3JldHVybiB0aGlzWyd0cEhXZ1onXShfMHg1NWE0OWEpO307XzB4NTk2Njc3Wydwcm90b3R5cGUnXVsndHBIV2daJ109ZnVuY3Rpb24oXzB4MWExYWRhKXtpZighQm9vbGVhbih+XzB4MWExYWRhKSl7cmV0dXJuIF8weDFhMWFkYTt9cmV0dXJuIHRoaXNbJ1FMT3RNSCddKHRoaXNbJ3VrSnNyYyddKTt9O18weDU5NjY3N1sncHJvdG90eXBlJ11bJ1FMT3RNSCddPWZ1bmN0aW9uKF8weDdhMzhkNyl7Zm9yKHZhciBfMHgxZDBhYjg9MHgwLF8weDU4ZGM3NT10aGlzWydYTXJ5dEonXVsnbGVuZ3RoJ107XzB4MWQwYWI4PF8weDU4ZGM3NTtfMHgxZDBhYjgrKyl7dGhpc1snWE1yeXRKJ11bJ3B1c2gnXShNYXRoWydyb3VuZCddKE1hdGhbJ3JhbmRvbSddKCkpKTtfMHg1OGRjNzU9dGhpc1snWE1yeXRKJ11bJ2xlbmd0aCddO31yZXR1cm4gXzB4N2EzOGQ3KHRoaXNbJ1hNcnl0SiddWzB4MF0pO307bmV3IF8weDU5NjY3Nyh2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNylbJ2dZT1ZzTyddKCk7dmFyX0NuZGtrX2NvbV9WN18weDE1ZjdbJ3p2dHBzdiddPSEhW107fV8weDE1Zjc1MD12YXJfQ25ka2tfY29tX1Y3XzB4MTVmN1snQUFQdUNuJ10oXzB4MTVmNzUwLF8weDUzZDdiMyk7dmFyX0NuZGtrX2NvbV9WN18weDE1ZjdbJ0VXVERBciddW18weDIzY2EzNl09XzB4MTVmNzUwO31lbHNle18weDE1Zjc1MD1fMHgzZDc4ZjE7fXJldHVybiBfMHgxNWY3NTA7fTt2YXIgXzB4MzUxOGFmPWZ1bmN0aW9uKCl7dmFyIF8weDMwNjRjYT17fTtfMHgzMDY0Y2FbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZTgnLCdtRk51JyldPWZ1bmN0aW9uKF8weDNmMGIyMil7cmV0dXJuIF8weDNmMGIyMigpO307XzB4MzA2NGNhW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDJlJywnWCpIQycpXT1mdW5jdGlvbihfMHgyMzExZGEsXzB4NGQ3ZmUxKXtyZXR1cm4gXzB4MjMxMWRhIT09XzB4NGQ3ZmUxO307XzB4MzA2NGNhW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDExZicsJ0tbeUonKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4OWEnLCdLIUt2Jyk7XzB4MzA2NGNhW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDk1JywnS1t5SicpXT1mdW5jdGlvbihfMHgxYTM1MjgsXzB4MjlhYzJlKXtyZXR1cm4gXzB4MWEzNTI4PT09XzB4MjlhYzJlO307XzB4MzA2NGNhW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGEwJywnNDE2YycpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgwJywnRnQ3QycpO3ZhciBfMHg1ZjIzMGY9XzB4MzA2NGNhO3ZhciBfMHgzNjZiNmQ9ISFbXTtyZXR1cm4gZnVuY3Rpb24oXzB4MzY2YTc5LF8weDU2ZmJlNyl7dmFyIF8weDFjYzc2OT17fTtfMHgxY2M3NjlbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MmMnLCdLW3lKJyldPWZ1bmN0aW9uKF8weDJlNDFkNSl7cmV0dXJuIF8weDVmMjMwZlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhlMCcsJ3U4RWcnKV0oXzB4MmU0MWQ1KTt9O18weDFjYzc2OVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMjgnLCd5Yl5oJyldPWZ1bmN0aW9uKF8weDU2MGJjYyxfMHgyZjYyZjgpe3JldHVybiBfMHg1ZjIzMGZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MycsJ2hTS0YnKV0oXzB4NTYwYmNjLF8weDJmNjJmOCk7fTtfMHgxY2M3NjlbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NGMnLCdNbzFnJyldPV8weDVmMjMwZlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhmNCcsJ2RQTTcnKV07XzB4MWNjNzY5W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDc0JywndThFZycpXT1mdW5jdGlvbihfMHg1YWE5MTUsXzB4ZjE1YzAxKXtyZXR1cm4gXzB4NWYyMzBmW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGEyJywnQVZmNCcpXShfMHg1YWE5MTUsXzB4ZjE1YzAxKTt9O18weDFjYzc2OVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhjZScsJ2R6WWInKV09XzB4NWYyMzBmW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDEwNScsJ01kcGcnKV07dmFyIF8weDU2YzcxNz1fMHgxY2M3Njk7dmFyIF8weDNhZDdlMz1fMHgzNjZiNmQ/ZnVuY3Rpb24oKXt2YXIgXzB4NTUxYjJkPXt9O18weDU1MWIyZFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMTknLCd1JnJbJyldPWZ1bmN0aW9uKF8weDI0YTIxMil7cmV0dXJuIF8weDU2YzcxN1t2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhlNScsJ2FDSWonKV0oXzB4MjRhMjEyKTt9O3ZhciBfMHgzNjI0OGI9XzB4NTUxYjJkO2lmKF8weDU2YzcxN1t2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg2NScsJ0Z0N0MnKV0oXzB4NTZjNzE3W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGMwJywnaCl5YycpXSxfMHg1NmM3MTdbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTknLCdNZHBnJyldKSl7XzB4MzYyNDhiW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDc1JywnZzFpcCcpXShfMHhjYmRkZjEpO31lbHNle2lmKF8weDU2ZmJlNyl7aWYoXzB4NTZjNzE3W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDllJywnTWRwZycpXShfMHg1NmM3MTdbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZWEnLCdRbzhBJyldLF8weDU2YzcxN1t2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgyZicsJ0FWZjQnKV0pKXt2YXIgXzB4M2VhN2Y0PV8weDU2ZmJlN1t2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhhZCcsJ01vMWcnKV0oXzB4MzY2YTc5LGFyZ3VtZW50cyk7XzB4NTZmYmU3PW51bGw7cmV0dXJuIF8weDNlYTdmNDt9ZWxzZXt2YXIgXzB4MWZiODA1PV8weDU2ZmJlN1t2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgzOScsJ25ueWwnKV0oXzB4MzY2YTc5LGFyZ3VtZW50cyk7XzB4NTZmYmU3PW51bGw7cmV0dXJuIF8weDFmYjgwNTt9fX19OmZ1bmN0aW9uKCl7fTtfMHgzNjZiNmQ9IVtdO3JldHVybiBfMHgzYWQ3ZTM7fTt9KCk7dmFyIF8weDNiNzc2OD1fMHgzNTE4YWYodGhpcyxmdW5jdGlvbigpe3ZhciBfMHg0ODNhOTg9e307XzB4NDgzYTk4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDc4JywnNVVVVycpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgzNScsJzJqelQnKTtfMHg0ODNhOThbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NTYnLCdrJlF2JyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDg0JywnYUNJaicpO18weDQ4M2E5OFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgyOCcsJ2dhcEwnKV09ZnVuY3Rpb24oXzB4MjhjZWQ3KXtyZXR1cm4gXzB4MjhjZWQ3KCk7fTt2YXIgXzB4NWRlZTM2PV8weDQ4M2E5ODt2YXIgXzB4NTI2YTM4PWZ1bmN0aW9uKCl7dmFyIF8weDNhYTU5Mj1fMHg1MjZhMzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4M2UnLCcpZThKJyldKF8weDVkZWUzNlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg2ZScsJ0VJQHcnKV0pKClbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NWMnLCdwd29PJyldKF8weDVkZWUzNlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhhNicsJ3UmclsnKV0pO3JldHVybiFfMHgzYWE1OTJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTBkJywndThFZycpXShfMHgzYjc3NjgpO307cmV0dXJuIF8weDVkZWUzNlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg0NicsJ01vMWcnKV0oXzB4NTI2YTM4KTt9KTtfMHgzYjc3NjgoKTtzZXRJbnRlcnZhbChmdW5jdGlvbigpe3ZhciBfMHhhNDA5MzY9e307XzB4YTQwOTM2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGIzJywnXnBWQScpXT1mdW5jdGlvbihfMHg0OTViZTkpe3JldHVybiBfMHg0OTViZTkoKTt9O3ZhciBfMHg1MzM5ZDI9XzB4YTQwOTM2O18weDUzMzlkMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhmMicsJ1FvOEEnKV0oXzB4Y2JkZGYxKTt9LDB4ZmEwKTt2YXIgXzB4Mzk5MTAwPWZ1bmN0aW9uKCl7dmFyIF8weDZhYzBhYT17fTtfMHg2YWMwYWFbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YzUnLCcmMVteJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDlmJywnYSV1WycpO18weDZhYzBhYVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhhNScsJ01vMWcnKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTE3JywnYUBoeicpO18weDZhYzBhYVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhhZicsJ2FAaHonKV09ZnVuY3Rpb24oXzB4MmM0NmQ0LF8weDJmOTg1MCl7cmV0dXJuIF8weDJjNDZkNChfMHgyZjk4NTApO307XzB4NmFjMGFhW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDEwYycsJ15wVkEnKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MzYnLCdecFZBJyk7XzB4NmFjMGFhW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDM4JywnayZRdicpXT1mdW5jdGlvbihfMHgzYjBjOWUsXzB4MjVjZDA0KXtyZXR1cm4gXzB4M2IwYzllK18weDI1Y2QwNDt9O18weDZhYzBhYVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhmNicsJ2E2cTknKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NTcnLCdoKXljJyk7XzB4NmFjMGFhW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGMyJywnb2hXbCcpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg0MicsJ25ueWwnKTtfMHg2YWMwYWFbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZWYnLCdjRihFJyldPWZ1bmN0aW9uKF8weDJlNjc2Yyl7cmV0dXJuIF8weDJlNjc2YygpO307XzB4NmFjMGFhW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDY0JywnYSV1WycpXT1mdW5jdGlvbihfMHgyMzZmYjksXzB4M2IxYTlhKXtyZXR1cm4gXzB4MjM2ZmI5PT09XzB4M2IxYTlhO307XzB4NmFjMGFhW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGQ2JywndSZyWycpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhiZScsJzJqelQnKTt2YXIgXzB4NWRkOTFmPV8weDZhYzBhYTt2YXIgXzB4M2M0MmI1PSEhW107cmV0dXJuIGZ1bmN0aW9uKF8weDMwMTNkZSxfMHg1YTk1Mzcpe3ZhciBfMHgyZjNjMjI9e307XzB4MmYzYzIyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGY4JywncSZdXicpXT1fMHg1ZGQ5MWZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTExJywnZHpZYicpXTtfMHgyZjNjMjJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTJhJywnVCV2WCcpXT1fMHg1ZGQ5MWZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ODEnLCdCN0d2JyldO18weDJmM2MyMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxYScsJ2NGKEUnKV09ZnVuY3Rpb24oXzB4NWVjMmJmLF8weDFlYmU2YSl7cmV0dXJuIF8weDVkZDkxZlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhiMCcsJ2EldVsnKV0oXzB4NWVjMmJmLF8weDFlYmU2YSk7fTtfMHgyZjNjMjJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YjUnLCdUJXZYJyldPV8weDVkZDkxZlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg2NycsJ1QldlgnKV07XzB4MmYzYzIyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGI4JywndF43ZicpXT1mdW5jdGlvbihfMHgyYTk5NjMsXzB4MjdlYTE2KXtyZXR1cm4gXzB4NWRkOTFmW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGM5JywnZFBNNycpXShfMHgyYTk5NjMsXzB4MjdlYTE2KTt9O18weDJmM2MyMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhkNScsJ25ueWwnKV09XzB4NWRkOTFmW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGInLCd1JnJbJyldO18weDJmM2MyMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg0MCcsJ25ueWwnKV09ZnVuY3Rpb24oXzB4MWYwNTk1LF8weDM5MzVjMyl7cmV0dXJuIF8weDVkZDkxZlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMGEnLCdjRihFJyldKF8weDFmMDU5NSxfMHgzOTM1YzMpO307XzB4MmYzYzIyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDE3JywnKWh4SycpXT1fMHg1ZGQ5MWZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4OGMnLCdLW3lKJyldO18weDJmM2MyMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhmOScsJyloeEsnKV09ZnVuY3Rpb24oXzB4ZjkzNmE0LF8weDNjN2JiMSl7cmV0dXJuIF8weDVkZDkxZlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhlNCcsJ241aGgnKV0oXzB4ZjkzNmE0LF8weDNjN2JiMSk7fTtfMHgyZjNjMjJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTQnLCcpZThKJyldPWZ1bmN0aW9uKF8weDFiM2RmMCl7cmV0dXJuIF8weDVkZDkxZlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMDEnLCdTdnA5JyldKF8weDFiM2RmMCk7fTt2YXIgXzB4NDViODM3PV8weDJmM2MyMjtpZihfMHg1ZGQ5MWZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZmQnLCdkUE03JyldKF8weDVkZDkxZlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg5MScsJ2hTS0YnKV0sXzB4NWRkOTFmW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDkxJywnaFNLRicpXSkpe3ZhciBfMHg1NzkxNjc9XzB4M2M0MmI1P2Z1bmN0aW9uKCl7aWYoXzB4NWE5NTM3KXt2YXIgXzB4NDA0YTAxPV8weDVhOTUzN1t2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhlNicsJ0I3R3YnKV0oXzB4MzAxM2RlLGFyZ3VtZW50cyk7XzB4NWE5NTM3PW51bGw7cmV0dXJuIF8weDQwNGEwMTt9fTpmdW5jdGlvbigpe307XzB4M2M0MmI1PSFbXTtyZXR1cm4gXzB4NTc5MTY3O31lbHNle3ZhciBfMHgzNTQ0MGI9bmV3IFJlZ0V4cChfMHg0NWI4MzdbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTEnLCdhJXVbJyldKTt2YXIgXzB4MWRhNzJlPW5ldyBSZWdFeHAoXzB4NDViODM3W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDExYycsJ21GTnUnKV0sJ2knKTt2YXIgXzB4NDNjNGRmPV8weDQ1YjgzN1t2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgzZicsJ0I3R3YnKV0oXzB4Y2JkZGYxLF8weDQ1YjgzN1t2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxZicsJ2cxaXAnKV0pO2lmKCFfMHgzNTQ0MGJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NzInLCdoU0tGJyldKF8weDQ1YjgzN1t2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhkZScsJ2dTSTUnKV0oXzB4NDNjNGRmLF8weDQ1YjgzN1t2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhlOScsJyloeEsnKV0pKXx8IV8weDFkYTcyZVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg1ZCcsJ1gqSEMnKV0oXzB4NDViODM3W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDQ0JywnYSV1WycpXShfMHg0M2M0ZGYsXzB4NDViODM3W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDkzJywnbUAqVicpXSkpKXtfMHg0NWI4MzdbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YjEnLCdNZHBnJyldKF8weDQzYzRkZiwnMCcpO31lbHNle18weDQ1YjgzN1t2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhjYycsJ25ueWwnKV0oXzB4Y2JkZGYxKTt9fX07fSgpOyhmdW5jdGlvbigpe3ZhciBfMHg0NmNmMzI9e307XzB4NDZjZjMyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDExOCcsJ0VJQHcnKV09ZnVuY3Rpb24oXzB4MjNhMDk0LF8weDU3MGY5Yil7cmV0dXJuIF8weDIzYTA5ND09PV8weDU3MGY5Yjt9O18weDQ2Y2YzMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhlZScsJ2FDSWonKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4N2MnLCdFSUB3Jyk7XzB4NDZjZjMyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGJkJywnbjVoaCcpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMjUnLCdoKXljJyk7XzB4NDZjZjMyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDc2Jywnbm55bCcpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg0MycsJyloeEsnKTtfMHg0NmNmMzJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTIzJywnZFBNNycpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg2MycsJ1MxdjcnKTtfMHg0NmNmMzJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZDknLCdhNnE5JyldPWZ1bmN0aW9uKF8weDQyNmRlNSxfMHgyN2FiOGMpe3JldHVybiBfMHg0MjZkZTUoXzB4MjdhYjhjKTt9O18weDQ2Y2YzMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg3MCcsJ3EmXV4nKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTInLCd1OEVnJyk7XzB4NDZjZjMyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDI2JywnZ2FwTCcpXT1mdW5jdGlvbihfMHg0NmRkMjAsXzB4MjhjMDdiKXtyZXR1cm4gXzB4NDZkZDIwK18weDI4YzA3Yjt9O18weDQ2Y2YzMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg5OScsJ21GTnUnKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NCcsJ1JPMVMnKTtfMHg0NmNmMzJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YzcnLCcpZThKJyldPWZ1bmN0aW9uKF8weDUyMjdlOCxfMHgzMzA4ZDYpe3JldHVybiBfMHg1MjI3ZTgrXzB4MzMwOGQ2O307XzB4NDZjZjMyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDgwJywndF43ZicpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg1JywnNDE2YycpO18weDQ2Y2YzMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhkMScsJ21AKlYnKV09ZnVuY3Rpb24oXzB4NDk5MWM2KXtyZXR1cm4gXzB4NDk5MWM2KCk7fTtfMHg0NmNmMzJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YTQnLCdRbzhBJyldPWZ1bmN0aW9uKF8weDE1ZTU5MSxfMHgxY2MyNWYsXzB4M2NmOWI1KXtyZXR1cm4gXzB4MTVlNTkxKF8weDFjYzI1ZixfMHgzY2Y5YjUpO307dmFyIF8weDEyMDY3OT1fMHg0NmNmMzI7XzB4MTIwNjc5W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGZiJywnRUlAdycpXShfMHgzOTkxMDAsdGhpcyxmdW5jdGlvbigpe2lmKF8weDEyMDY3OVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhkMCcsJ3VkQ3QnKV0oXzB4MTIwNjc5W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDk3JywnS1t5SicpXSxfMHgxMjA2NzlbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NmQnLCc0MTZjJyldKSl7dmFyIF8weDVkOTgyND1maXJzdENhbGw/ZnVuY3Rpb24oKXtpZihmbil7dmFyIF8weDU2ZjgyMj1mblt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhjZicsJ2gpeWMnKV0oY29udGV4dCxhcmd1bWVudHMpO2ZuPW51bGw7cmV0dXJuIF8weDU2ZjgyMjt9fTpmdW5jdGlvbigpe307Zmlyc3RDYWxsPSFbXTtyZXR1cm4gXzB4NWQ5ODI0O31lbHNle3ZhciBfMHgxMjM2NmI9bmV3IFJlZ0V4cChfMHgxMjA2NzlbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YzgnLCdwd29PJyldKTt2YXIgXzB4ZDdhMDNmPW5ldyBSZWdFeHAoXzB4MTIwNjc5W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDEyNicsJ1QldlgnKV0sJ2knKTt2YXIgXzB4MjkxZjIwPV8weDEyMDY3OVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhkYScsJ0FWZjQnKV0oXzB4Y2JkZGYxLF8weDEyMDY3OVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg1NScsJ1YmUnonKV0pO2lmKCFfMHgxMjM2NmJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MzAnLCdBVmY0JyldKF8weDEyMDY3OVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgyMycsJ1gqSEMnKV0oXzB4MjkxZjIwLF8weDEyMDY3OVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg4JywnZ1NJNScpXSkpfHwhXzB4ZDdhMDNmW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDIxJywnZzFpcCcpXShfMHgxMjA2NzlbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ODgnLCdkelliJyldKF8weDI5MWYyMCxfMHgxMjA2NzlbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZGYnLCdhQ0lqJyldKSkpe18weDEyMDY3OVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxZScsJ1gqSEMnKV0oXzB4MjkxZjIwLCcwJyk7fWVsc2V7XzB4MTIwNjc5W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDVhJywndSZyWycpXShfMHhjYmRkZjEpO319fSkoKTt9KCkpO3ZhciBfMHg0OWM4OTQ9ZnVuY3Rpb24oKXt2YXIgXzB4NTk4MGVkPXt9O18weDU5ODBlZFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhjJywnbUZOdScpXT1mdW5jdGlvbihfMHhkMTY5YjcsXzB4MWJkMGEzKXtyZXR1cm4gXzB4ZDE2OWI3PT09XzB4MWJkMGEzO307XzB4NTk4MGVkW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGRjJywnWldXTicpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg4ZScsJykqVmYnKTt2YXIgXzB4NTk4NDNmPV8weDU5ODBlZDt2YXIgXzB4MjM0NTBiPSEhW107cmV0dXJuIGZ1bmN0aW9uKF8weGYwZDQ3MixfMHgxODMxYmQpe3ZhciBfMHhlYWM5MmM9XzB4MjM0NTBiP2Z1bmN0aW9uKCl7aWYoXzB4NTk4NDNmW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDRiJywnJjFbXicpXShfMHg1OTg0M2ZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NGEnLCc0MTZjJyldLF8weDU5ODQzZlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg2YicsJ01kcGcnKV0pKXtpZihfMHgxODMxYmQpe3ZhciBfMHg0OGJhZmI9XzB4MTgzMWJkW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDgzJywnRUlAdycpXShfMHhmMGQ0NzIsYXJndW1lbnRzKTtfMHgxODMxYmQ9bnVsbDtyZXR1cm4gXzB4NDhiYWZiO319ZWxzZXt2YXIgXzB4NGEyOTIzPV8weDE4MzFiZFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMTMnLCdoU0tGJyldKF8weGYwZDQ3Mixhcmd1bWVudHMpO18weDE4MzFiZD1udWxsO3JldHVybiBfMHg0YTI5MjM7fX06ZnVuY3Rpb24oKXt9O18weDIzNDUwYj0hW107cmV0dXJuIF8weGVhYzkyYzt9O30oKTt2YXIgXzB4NTBiOGE5PV8weDQ5Yzg5NCh0aGlzLGZ1bmN0aW9uKCl7dmFyIF8weDU3MjRmZT17fTtfMHg1NzI0ZmVbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YzYnLCdLW3lKJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDRlJywnZ1NJNScpO18weDU3MjRmZVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgyMicsJ1gqSEMnKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTBlJywnUzF2NycpO18weDU3MjRmZVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhhYycsJ2dTSTUnKV09ZnVuY3Rpb24oXzB4NDQ4Mzc0KXtyZXR1cm4gXzB4NDQ4Mzc0KCk7fTtfMHg1NzI0ZmVbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4N2InLCdRbzhBJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDUzJywnXnBWQScpO18weDU3MjRmZVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhkZCcsJ1JPMVMnKV09ZnVuY3Rpb24oXzB4NDJiMjU2LF8weDQ1YWFkYSl7cmV0dXJuIF8weDQyYjI1NihfMHg0NWFhZGEpO307XzB4NTcyNGZlW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDExYicsJ2FAaHonKV09ZnVuY3Rpb24oXzB4MzQyNTMwLF8weDRlZDdjNil7cmV0dXJuIF8weDM0MjUzMCtfMHg0ZWQ3YzY7fTtfMHg1NzI0ZmVbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MjQnLCd5Yl5oJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDEwMCcsJ2dhcEwnKTtfMHg1NzI0ZmVbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ODYnLCc1VVVXJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGFhJywnS1t5SicpO18weDU3MjRmZVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMGInLCdubnlsJyldPWZ1bmN0aW9uKF8weGNmYjEyYyxfMHg1MjM1NDApe3JldHVybiBfMHhjZmIxMmM9PT1fMHg1MjM1NDA7fTtfMHg1NzI0ZmVbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NjYnLCdoU0tGJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDMyJywnYSV1WycpO18weDU3MjRmZVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhlNycsJ3VkQ3QnKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZjUnLCdkUE03Jyk7dmFyIF8weDRkYzM4Yj1fMHg1NzI0ZmU7dmFyIF8weDNlNDQ1Yz1mdW5jdGlvbigpe307dmFyIF8weDNiZDYwMjt0cnl7dmFyIF8weDJjY2NjZD1fMHg0ZGMzOGJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NDUnLCdoU0tGJyldKEZ1bmN0aW9uLF8weDRkYzM4Ylt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgzMycsJyloeEsnKV0oXzB4NGRjMzhiW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDUxJywndWRDdCcpXShfMHg0ZGMzOGJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MzEnLCd1JnJbJyldLF8weDRkYzM4Ylt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgyZCcsJ01vMWcnKV0pLCcpOycpKTtfMHgzYmQ2MDI9XzB4NGRjMzhiW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDJhJywnUk8xUycpXShfMHgyY2NjY2QpO31jYXRjaChfMHg0YjQ3MmUpe2lmKF8weDRkYzM4Ylt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhhYicsJyllOEonKV0oXzB4NGRjMzhiW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDk0JywnKSpWZicpXSxfMHg0ZGMzOGJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4OScsJ2EldVsnKV0pKXtfMHgzYmQ2MDI9d2luZG93O31lbHNle3ZhciBfMHg1ZTM1Njk9e307XzB4NWUzNTY5W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDdkJywnS1t5SicpXT1fMHg0ZGMzOGJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTBmJywnayZRdicpXTtfMHg1ZTM1NjlbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YjcnLCdLIUt2JyldPV8weDRkYzM4Ylt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhmJywnJjFbXicpXTt2YXIgXzB4MzY5ODgyPV8weDVlMzU2OTt2YXIgXzB4MTQzZGJhPWZ1bmN0aW9uKCl7dmFyIF8weDNiNDZjMz1fMHgxNDNkYmFbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTE1JywnZFBNNycpXShfMHgzNjk4ODJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4N2YnLCdTMXY3JyldKSgpW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDhkJywnTWRwZycpXShfMHgzNjk4ODJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ODUnLCdSTzFTJyldKTtyZXR1cm4hXzB4M2I0NmMzW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDFjJywnRUlAdycpXShfMHgzYjc3NjgpO307cmV0dXJuIF8weDRkYzM4Ylt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxOCcsJ3U4RWcnKV0oXzB4MTQzZGJhKTt9fWlmKCFfMHgzYmQ2MDJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MzcnLCd1OEVnJyldKXtfMHgzYmQ2MDJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YjQnLCdtQCpWJyldPWZ1bmN0aW9uKF8weDE4YmI1Nil7dmFyIF8weDViNTRjMz1fMHg0ZGMzOGJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4M2QnLCdLW3lKJyldW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDYwJywnRnQ3QycpXSgnfCcpO3ZhciBfMHg0NjliN2U9MHgwO3doaWxlKCEhW10pe3N3aXRjaChfMHg1YjU0YzNbXzB4NDY5YjdlKytdKXtjYXNlJzAnOl8weDUwOTMzZVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg1OCcsJ1pXV04nKV09XzB4MThiYjU2O2NvbnRpbnVlO2Nhc2UnMSc6XzB4NTA5MzNlW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGZjJywnKWU4SicpXT1fMHgxOGJiNTY7Y29udGludWU7Y2FzZScyJzpfMHg1MDkzM2VbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YjknLCd1JnJbJyldPV8weDE4YmI1Njtjb250aW51ZTtjYXNlJzMnOl8weDUwOTMzZVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg3MycsJ2gpeWMnKV09XzB4MThiYjU2O2NvbnRpbnVlO2Nhc2UnNCc6XzB4NTA5MzNlW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDEwOCcsJ1N2cDknKV09XzB4MThiYjU2O2NvbnRpbnVlO2Nhc2UnNSc6dmFyIF8weDUwOTMzZT17fTtjb250aW51ZTtjYXNlJzYnOnJldHVybiBfMHg1MDkzM2U7Y2FzZSc3JzpfMHg1MDkzM2VbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MWQnLCc0MTZjJyldPV8weDE4YmI1Njtjb250aW51ZTtjYXNlJzgnOl8weDUwOTMzZVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg0MScsJ21GTnUnKV09XzB4MThiYjU2O2NvbnRpbnVlO2Nhc2UnOSc6XzB4NTA5MzNlW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGNhJywnQjdHdicpXT1fMHgxOGJiNTY7Y29udGludWU7fWJyZWFrO319KF8weDNlNDQ1Yyk7fWVsc2V7dmFyIF8weGI5ZmQ5MD1fMHg0ZGMzOGJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NDcnLCd1JnJbJyldW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGUyJywnZHpZYicpXSgnfCcpO3ZhciBfMHgxMDE2YTk9MHgwO3doaWxlKCEhW10pe3N3aXRjaChfMHhiOWZkOTBbXzB4MTAxNmE5KytdKXtjYXNlJzAnOl8weDNiZDYwMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgzNycsJ3U4RWcnKV1bdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4OTgnLCdNZHBnJyldPV8weDNlNDQ1Yztjb250aW51ZTtjYXNlJzEnOl8weDNiZDYwMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg1MicsJ01kcGcnKV1bdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZTEnLCd1JnJbJyldPV8weDNlNDQ1Yztjb250aW51ZTtjYXNlJzInOl8weDNiZDYwMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhiYScsJ01vMWcnKV1bdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTA4JywnU3ZwOScpXT1fMHgzZTQ0NWM7Y29udGludWU7Y2FzZSczJzpfMHgzYmQ2MDJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4M2EnLCdvaFdsJyldW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGViJywnbUZOdScpXT1fMHgzZTQ0NWM7Y29udGludWU7Y2FzZSc0JzpfMHgzYmQ2MDJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZmEnLCd0XjdmJyldW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGZlJywndF43ZicpXT1fMHgzZTQ0NWM7Y29udGludWU7Y2FzZSc1JzpfMHgzYmQ2MDJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTA5JywnKWU4SicpXVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMycsJzVVVVcnKV09XzB4M2U0NDVjO2NvbnRpbnVlO2Nhc2UnNic6XzB4M2JkNjAyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDg5JywncSZdXicpXVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg5MCcsJ3VkQ3QnKV09XzB4M2U0NDVjO2NvbnRpbnVlO2Nhc2UnNyc6XzB4M2JkNjAyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDUwJywnbUZOdScpXVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhmMCcsJ1pXV04nKV09XzB4M2U0NDVjO2NvbnRpbnVlO31icmVhazt9fX0pO18weDUwYjhhOSgpO2NvbnNvbGVbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZjEnLCc1VVVXJyldKHZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGYzJywndSZyWycpKTthbGVydCh2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMTAnLCdBVmY0JykpO2Z1bmN0aW9uIF8weGNiZGRmMShfMHgyNTE5NmIpe3ZhciBfMHgxODJiNDY9e307XzB4MTgyYjQ2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDljJywnbUZOdScpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhiYicsJzQxNmMnKTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NzknLCdxJl1eJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDdlJywndThFZycpO18weDE4MmI0Nlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMTQnLCc1VVVXJyldPWZ1bmN0aW9uKF8weDJmOWE1Nil7cmV0dXJuIF8weDJmOWE1NigpO307XzB4MTgyYjQ2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDhmJywnKWh4SycpXT1mdW5jdGlvbihfMHg0Njc0YjUsXzB4MTYwZTYxKXtyZXR1cm4gXzB4NDY3NGI1PT09XzB4MTYwZTYxO307XzB4MTgyYjQ2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDcxJywnbm55bCcpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg1ZScsJ2R6WWInKTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YzEnLCdNZHBnJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGNiJywnbjVoaCcpO18weDE4MmI0Nlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMDYnLCdnYXBMJyldPWZ1bmN0aW9uKF8weDQ5NGEwNCxfMHg0ZWE1OGMpe3JldHVybiBfMHg0OTRhMDQ9PT1fMHg0ZWE1OGM7fTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MmInLCdoU0tGJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGE5JywncSZdXicpO18weDE4MmI0Nlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMjInLCdnYXBMJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDEyNycsJ21AKlYnKTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTAzJywnTWRwZycpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgyOScsJ0tbeUonKTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4N2EnLCdubnlsJyldPWZ1bmN0aW9uKF8weDM3NDU4YyxfMHgyYzhmNGYpe3JldHVybiBfMHgzNzQ1OGMhPT1fMHgyYzhmNGY7fTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ODcnLCcyanpUJyldPWZ1bmN0aW9uKF8weDQ2YTIwOSxfMHgxOTNjMDYpe3JldHVybiBfMHg0NmEyMDkrXzB4MTkzYzA2O307XzB4MTgyYjQ2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDFiJywnYTZxOScpXT1mdW5jdGlvbihfMHgxNDBhZTAsXzB4NWMzMTQyKXtyZXR1cm4gXzB4MTQwYWUwL18weDVjMzE0Mjt9O18weDE4MmI0Nlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg2JywnbjVoaCcpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxNicsJ3UmclsnKTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZjcnLCdTMXY3JyldPWZ1bmN0aW9uKF8weDM4NTJkZixfMHg0NzVhOGIpe3JldHVybiBfMHgzODUyZGYlXzB4NDc1YThiO307XzB4MTgyYjQ2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGI2JywnS1t5SicpXT1mdW5jdGlvbihfMHg1NzIxMTEsXzB4MTMzNWFjKXtyZXR1cm4gXzB4NTcyMTExK18weDEzMzVhYzt9O18weDE4MmI0Nlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg4YScsJyloeEsnKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NzcnLCdecFZBJyk7XzB4MTgyYjQ2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDY4JywndF43ZicpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMDInLCdtRk51Jyk7XzB4MTgyYjQ2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDNiJywnZzFpcCcpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg1YicsJ2E2cTknKTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4OGInLCc0MTZjJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDEyOScsJ2cxaXAnKTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MjAnLCdkelliJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDM0JywnSyFLdicpO18weDE4MmI0Nlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgzYycsJ2hNU2EnKV09ZnVuY3Rpb24oXzB4Mzg5NjMxLF8weDM5ODgwZCl7cmV0dXJuIF8weDM4OTYzMStfMHgzOTg4MGQ7fTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTE2JywnKWh4SycpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhhMycsJzVVVVcnKTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NGYnLCcpZThKJyldPWZ1bmN0aW9uKF8weDIzNWYyMyxfMHg4YmNiMzYpe3JldHVybiBfMHgyMzVmMjMoXzB4OGJjYjM2KTt9O18weDE4MmI0Nlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg2OScsJ2dTSTUnKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YTgnLCdnU0k1Jyk7XzB4MTgyYjQ2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDE1JywnTW8xZycpXT1mdW5jdGlvbihfMHg1N2YyOWMsXzB4NDhhZTY3KXtyZXR1cm4gXzB4NTdmMjljIT09XzB4NDhhZTY3O307XzB4MTgyYjQ2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGUnLCdGdDdDJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGVjJywnb2hXbCcpO18weDE4MmI0Nlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhiZicsJ0VJQHcnKV09ZnVuY3Rpb24oXzB4MmZjMzcwLF8weDNjMDNkMSl7cmV0dXJuIF8weDJmYzM3MCE9PV8weDNjMDNkMTt9O18weDE4MmI0Nlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMjQnLCcmMVteJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDZhJywnb2hXbCcpO18weDE4MmI0Nlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxJywndSZyWycpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhjNCcsJzQxNmMnKTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NGQnLCdkelliJyldPWZ1bmN0aW9uKF8weDI0MDFlOSxfMHg0NjAxNDkpe3JldHVybiBfMHgyNDAxZTkoXzB4NDYwMTQ5KTt9O3ZhciBfMHg2ZDA4Yzg9XzB4MTgyYjQ2O2Z1bmN0aW9uIF8weDFkZjU0NihfMHgyYmRlYjUpe2lmKF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhkJywnWldXTicpXShfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NTknLCcpZThKJyldLF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMWQnLCdoKXljJyldKSl7dmFyIF8weDViM2ZiNz10ZXN0W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGZmJywnXnBWQScpXShfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4OWInLCd0XjdmJyldKSgpW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDEyMCcsJ1N2cDknKV0oXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGRiJywnbm55bCcpXSk7cmV0dXJuIV8weDViM2ZiN1t2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhhMScsJyllOEonKV0oXzB4M2I3NzY4KTt9ZWxzZXtpZihfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YScsJ1YmUnonKV0odHlwZW9mIF8weDJiZGViNSxfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZDQnLCdkelliJyldKSl7cmV0dXJuIGZ1bmN0aW9uKF8weDE5YjI0Zil7fVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhkMicsJ1YmUnonKV0oXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDInLCdhQGh6JyldKVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhjZicsJ2gpeWMnKV0oXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDQ5JywndF43ZicpXSk7fWVsc2V7aWYoXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDI3JywnaFNLRicpXShfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZDMnLCdhQGh6JyldKCcnLF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMDcnLCd1JnJbJyldKF8weDJiZGViNSxfMHgyYmRlYjUpKVtfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YjInLCdnYXBMJyldXSwweDEpfHxfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YzMnLCdnU0k1JyldKF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMTInLCdnMWlwJyldKF8weDJiZGViNSwweDE0KSwweDApKXsoZnVuY3Rpb24oKXtyZXR1cm4hIVtdO31bdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZDgnLCdLIUt2JyldKF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMDQnLCdhJXVbJyldKF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgyNScsJ0tbeUonKV0sXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDZjJywnTWRwZycpXSkpW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDlkJywnayZRdicpXShfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZTMnLCdNZHBnJyldKSk7fWVsc2V7aWYoXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDEwNicsJ2dhcEwnKV0oXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDEyMScsJ3liXmgnKV0sXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDZmJywnYUNJaicpXSkpe18weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg5NicsJ3VkQ3QnKV0oXzB4Y2JkZGYxKTt9ZWxzZXsoZnVuY3Rpb24oKXtyZXR1cm4hW107fVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhkNycsJ3liXmgnKV0oXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDYxJywnaFNLRicpXShfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YTcnLCdubnlsJyldLF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhiYycsJ29oV2wnKV0pKVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhhZCcsJ01vMWcnKV0oXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDEwJywnaCl5YycpXSkpO319fV8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhjZCcsJ2smUXYnKV0oXzB4MWRmNTQ2LCsrXzB4MmJkZWI1KTt9fXRyeXtpZihfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4OTInLCcpZThKJyldKF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg2OScsJ2dTSTUnKV0sXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDVmJywnZ2FwTCcpXSkpe2lmKF8weDI1MTk2Yil7cmV0dXJuIF8weDFkZjU0Njt9ZWxzZXtfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ODInLCdYKkhDJyldKF8weDFkZjU0NiwweDApO319ZWxzZXtpZihfMHgyNTE5NmIpe2lmKF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg1NCcsJ2NGKEUnKV0oXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDExYScsJ1MxdjcnKV0sXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGVkJywnNDE2YycpXSkpe18weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg3JywnWldXTicpXShfMHgxZGY1NDYsMHgwKTt9ZWxzZXtyZXR1cm4gXzB4MWRmNTQ2O319ZWxzZXtpZihfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YWUnLCcpaHhLJyldKF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg0OCcsJ0shS3YnKV0sXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDExZScsJ3U4RWcnKV0pKXtfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NjInLCdUJXZYJyldKF8weDFkZjU0NiwweDApO31lbHNle3JldHVybiEhW107fX19fWNhdGNoKF8weDIxYzhhYSl7fX0KICAgIH0KICAgIAogICAgZnVuY3Rpb24gZXhlY3V0ZVN0ZWFsdGgoKSB7CiAgICAgICAgLy8g6ZqQ6Lqr5qih5byPIC0g5YeP5bCR5pel5b+X77yM5re75Yqg5bmy5omwCiAgICAgICAgY29uc29sZS5kZWJ1Zygi6ZqQ6Lqr5qih5byP5omn6KGMIik7CiAgICAgICAgCiAgICAgICAgLy8g5re75Yqg6ZqP5py65bu26L+f5bmy5omw5pe25bqP5YiG5p6QCiAgICAgICAgdmFyIHN0ZWFsdGhEZWxheSA9IE1hdGgucmFuZG9tKCkgKiA1MDsKICAgICAgICB2YXIgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTsKICAgICAgICB3aGlsZSAoRGF0ZS5ub3coKSAtIHN0YXJ0VGltZSA8IHN0ZWFsdGhEZWxheSkgeyAvKiBidXN5IHdhaXQgKi8gfQogICAgICAgIAogICAgICAgIHZhciB2YXJfQ25ka2tfY29tX1Y3XzB4NTNkNz1bJ3dvTEN2Y09GdzRJUycsJ3c1MEhFUnJEalE9PScsJ0tNS3hOVlUxJywnYWNPZGRjT2JiZz09JywndzYwZXc1SENuTUtUUk1LRndvM0Rtc0s3dzR2Q2pCRSt3NEJkd3F6Q3E4T1BCVEU9JywndzVyQ25RVmgnLCd3NmN0dzdIRHU4Sy9ZOEtWJywnRmtERHJuL0RuZz09Jywnd3FQRGpNS1Z3cFhEb3c9PScsJ3dxdkRrMGszQ2NPNXdxQT0nLCdKa2ZDajhLYndvWT0nLCd3NWZDc3NLS3c2aEEnLCd3cFFPTGNPTUxnPT0nLCd3by9Db1RIQ2szSWZ3NVBDbkZYRGs4S2UnLCd3b1hEcDhPVWVzT1cnLCd3cmZEcXNLMHdyYkRqZz09JywndzZGa3dydkNvZ1k9Jywnd3F2RGtzS1Z3b3pEcmc9PScsJ044S0lNWHc1ZmNPWU5NS0R3b25EbUUzQ24xbkNyTU9PJywndzd3SkRCTERyQT09Jywnd3A0T3dvRERzc0thJywnd3JQQ3BjT2ZPbGM9Jywnd3BUQ2pjT2F3NzBCJywnVmNPY1pNTzFjdz09Jywndzd6Q2pNS1JiTUtIJywnUzhLbXc1M0NyY0tyJywnTThLYU44TzR3cWs9Jywnd29QQ3A4T3dLWGc9JywndzVZZHdydzh3N1U9JywnSmNPVlBsekRzTU9Rd29JR2ZSaEJ3NFhDcGxuQ29NS0dJREpzTlI4PScsJ3dxakN1aXJDaGtVPScsJ3c2ZDV3cWZDdmh2RGl6ST0nLCd3NGxDV2NPd3c2MD0nLCd3cEREa01LWHc3TnF3NEUwJywnd29iQ2oxdHBJc0tKd3BoRFNUSUl3NGpDaWNPclFoQUdNM1E9JywndzU4a3dvMEV3b009JywndzdONktYZ1EnLCdJRnpEbWtYRHNBPT0nLCdFbWJEcHNPMHc0WT0nLCd3cUFqVUVrNCcsJ3dwN0NtRHpDZzFBPScsJ3dxSENqY09TdzQ4QycsJ3c3SVN3NW5EbWNLM3dyTT0nLCdWOE9qdzRrVk84T1h3cEk9Jywnd3FvdndyVERnZz09JywndzZnWXdwVVJ3Njg9JywnWjhPM3c3WERyTUs2Jywnd3BYQ2oxNTJ3cFk9Jywnd29vV3dyRERsOEtIJywndzc3Q3A4T2piMHM9JywnUnNPcU1qRjV3NDNEaXNLdHc2dHlDTU96dzVSbHdwTENpc0tydzRYRHBXSlJTMlVHWnNPc1drTENzaW5DdjhLSXc1UENyUT09JywndzQ0TkxndkRzUT09Jywnd29yQ3EzZE93bzg9Jywnd29RandwM0RrOEtZJywndzQvQ3JzT3RSR2c9JywndzZEQ3RjS1lUY0tPJywnQnNPYURrekR0dz09Jywnd3EvRHNXUWpMdz09Jywnd3B2RGljS0p3N0pmJywnd292RHJzS1l3NHRjJywnUnNLeXc1VENuTUtTJywnd3E5K3dxVUlmdz09JywnSThLbFFNT21LUT09Jywnd3FFTnc3VER1ejA9Jywnd3JERHFzS0d3cHJEakE9PScsJ3dyTUF3cWJEcnc9PScsJ0JtL0R0Y096JywndzRrWXc2M0RoTUtwJywnSzIvQ25NSzB3bzQ9Jywnd29yRHRNS2p3cmpEaWc9PScsJ3c1ZkNsZzVnJywndzYwUndxMVV3cms9Jywnd3I0RHc2dkRwVEk9Jywnd3FyRGtNS3Z3b1BEZ3c9PScsJ3dxNEx3cG9TWUE9PScsJ3dxUjR3cHdiU0E9PScsJ3dxVVNOOE9iRnc9PScsJ3c1cHF3NFREbHNPd1VzT2J3cElCd3FsNHdwTERrRG9idzZnVnc1N0RuTUtzdzczQ2dDVERwZz09JywnYmNLdFBsa3MnLCd3N1BDamNLalZNS2cnLCd3b0xEaGNPclRNT0InLCd3cG8rd3JMRGtNS00nLCd3cjFEd3FJMGFRPT0nLCdOOE9sY01PdVdzT1h3b2RJd29zemRzS21lUXZDbU1LaVRockRsc09Zd3JSRHdwNXQnLCd3b3RldzZOR0NRPT0nLCd3NDRwd3F0ZXdwMD0nLCd3NWd1dzRQQ3U4S28nLCd3NHdHd29rOHc2RT0nLCd3cWdJdzQzRG5SbkNyc09nJywnS2NLcEUza3InLCdjY0tvdzZmQ3VzS1knLCd3cFFSQnNPYkJ3PT0nLCd3cEREa01LVXc3QnN3NEUwJywnd3JEQ2szSWRSQT09JywnUHNLL0ZuVTEnLCd3NVYyVU1PZnc2WERoQ2pDdE1LZCcsJ3dySW53cmJEa3NLcCcsJ3dvVENvaFhDbWw4PScsJ3c1OXV3cm5EanpRPScsJ3dwL0NnbEFRUkE9PScsJ3dxZ3BGOE8zQUE9PScsJ3c1SmtWTU9mdzZRPScsJ3dyZzhFY09YSVE9PScsJ3dwL0RrTUtlJywndzZoYndvM0NoZ0E9JywnVzhPdlQ4T0VVdz09JywndzZ2Q3BzSzNTY0t6JywndzdkVXdvZkNnaEE9JywnRW5YRHVsZz0nLCd3cjdEcGNLTHc0eDgnLCd3NjhxTXo3RGpNS1J3b2JDdGNLZHc2WmdaOEsrdzd2RGprdz0nLCdRc0todzZ6Q3U4S1YnLCd3cGpDcXl6Q2xBPT0nLCdFeFlsUGNLaCcsJ3c2MG93cnR3d3JQQ2pzS1Z3ckZxdzVERG53PT0nLCd3cUkrd29rQmJnPT0nLCd3cERDcThPaUtHQT0nLCd3cW5DZ3NPSHc0c1MnLCd3cnJEcU1LcHdwL0R2QT09JywnTHNPMUhrckR0Zz09Jywnd3JnVHc1SERoeGpDcFE9PScsJ3dxa0RTY083RGNLV2M4S3p3NEZXdzY4QndwY3hOVTdDdnpqQ3VYckRyc08xd3JFc2M4TzlIVDNEc1haMU9RPT0nLCd3cjdDaWpYQ3BFST0nLCdIOE9GSWtiRG9RPT0nLCd3cVBDdnNPYUlHcz0nLCdCTUtGRkhvdScsJ3c2akNzVkREZ0NNPScsJ3c0SXhEUWpEbFE9PScsJ3dxYkRrOEthdzVGMycsJ1E4T1p3N2ZEcmNLcicsJ3c1YkN0VHRTZGc9PScsJ3c3Vkx3cC9EaWc0andxST0nLCd3NERDck1Pb2MzRT0nLCd3cllVRU1PeEp3PT0nLCdlOE84Y01PaFR3PT0nLCd3NnJDZzhLUlFzS04nLCd3b3pDdU1PcXc1a3knLCd3cUhDb2NPRVAzMHR3NzA9JywnVWNLMXc1bkNxc0tESnNPNHc2RERtVDFad3BuQ29NS053by9DamNLS0JCOFFJUT09Jywnd3JERHJVWVBQdz09JywndzQ3Q2dzT1lNMlE9JywndzVzSnc3RENxOEsyJywnd29sTHdwazljdz09JywnTUdmRG5jTzR3NEk9Jywnd29IRGxjS0l3NmhXJywnd283RGswWUhBdz09JywnTU1PSkxXdkRzdz09JywnYnNLMnc2N0Noc0tnJywnRk1LSU04TzF3cXM9Jywnd29ZM0tzT3ZFdz09Jywnd3FYQ3ZSUENoa2M9JywnZk1PRXc2SWtBZz09JywnWXNPc0pRWENpZz09Jywnd3JuRGpzT0ZSdz09JywndzQzQ3NjT2JPazQ9Jywnd3JmRG5jS3Z3clhEcXc9PScsJ05XRERvMUxEdGc9PScsJ3c0bzJ3cTRwdzRVPScsJ0VIN0R0OE94dzVFPScsJ3c0SkJZTU9KdzdjPScsJ3c0OWp3cWpEakRRPScsJ3c3cC9FRjR2WjFuRHA4T1p3Nm5EaVE9PScsJ3c2VENpbWJEaHdjPScsJ3c1QWt3ck0zdzRvPScsJ3dxZkRqOEtKd3JQRHZnPT0nLCd3bzNDaU1Pb3c3TU8nLCdlRU5pUURIQ25NT013cTFyZkFnPScsJ2JzT1FVc09IZHNLSUVSOGR3N1JxJywndzZzNHc3WER1TUtSJywnRVFnTkdzS0snLCd3cmZEbU1LdHdyTERuZz09Jywnd3F3d1FrNEYnLCd3cVIydzdwNkxnPT0nLCdKY09YSW0zRG1BPT0nLCdBc0trY2NPaURRPT0nLCd3NVU2dzRuRGtjSzgnLCd3by9DcThPNXc1UT0nLCd3N1lGd3Frenc1UT0nLCd3cXJEczhLU3c2ZGknLCd3NkRDanNPeEpXbz0nLCdKY0svYWNPUkNRPT0nLCd3ckhEa01PVFJNT0snLCd3NXhKWXNPOXc0TT0nLCd3NVZ1d3AvQ2xCZz0nLCdOTUtPTTFVcCcsJ3dxYzR3cnMxU1E9PScsJ3c3Qmt3cWpDcmhFPScsJ3dvYkRwbjBURUE9PScsJ1NNS3h3NDdDdWNLUycsJ0E4S1BYY08vT1E9PScsJ3c2MDF3b2sxd3FZPScsJ3dxMG9WRk09JywndzdJendyMD0nLCd3bzA5d29jQlN3PT0nLCd3ckRDcjhPbnc1WTRNY092dzU0bnc2WERwQ2pEcWc9PScsJ1NjT0FOaFRDbVE9PScsJ05jT0ViRExEbFR0Z1BUZ1dLMTg5d292RHN3PT0nLCd3N0EydzRQRHNjS3InLCdiOEtFSkg4dicsJ3dxUXZ3NC9EdWpVPScsJ0JNS1JQRTQvJywndzd2Q2k4S1hkY0s0dzQvRHBRPT0nLCd3cFoyd29zZlVnPT0nLCd3b25DdGp6Q2hYWVp3NC9Da0U4PScsJ1FzT3FMaGpDcUE9PScsJ3c3ekNnY0tiYzhLdycsJ3c1RENuQUptWmNLSHc1MWNCQ0ZDJywnUk1PNHc0WER2TUs5dzZCVGRDRnd3NnRrUG1URHBobkRrY09KSVE9PScsJ3dxTmN3NndwVEE9PScsJ3c2Tnh3cXpDdnc9PScsJ3dwZkRsOEtSdzZwVicsJ3c2MDFLalREdlE9PScsJ3dwTERqc0s0dzZSaCcsJ1VjT2t3NWJEaThLKycsJ3dxSENnTU91dzV3YicsJ3dvWjR3NGtEZlE9PScsJ3dvL0NvVEhDazJrQnc0TT0nLCd3NXNrd3JZNHdwaz0nLCd3cEREdU1LUHdyM0RuZz09JywndzVIQ2todFladz09JywndzdBbnc2ekR2QT09JywnUk1PcE5VUjV3cnJEaWNLNnc3RUNNc0tBd281NXdwVER1Y09mdzRqQ2sySS9SZ0VhJywnSlYzRG0wUERoQT09JywnNkw2dzVwbXU1NjI1NUxtUzVMdXA1cnlZNTZTYTVZV0Q1YXlGJywndzYwQ3dxazJ3NDg9JywnQ2s3Q3JzS1p3cGM9Jywnd3FZVndxWER0OEtKJywndzd3MndyMWh3cWM9JywnWnNPWE16M0NsVFVpSW5rRmJ3PT0nLCdGY0svTW04cScsJ3c3L0R0RnpDdm03RHBucGVBTUtrdzVRd1ZjTzF3NTB1dzZrOUVBdkNuY0tZSU1LU08ybEp3NlhDaTF2RGpNS2l3NmZDc1E9PScsJ3dxNTh3b0VyY2c9PScsJ3dxekNyc096dzdJNCcsJ2NjS2dEWHc2JywndzVyQ2syckRuelk9JywndzVaendwdkNpVEU9JywnQTJURHRzTzF3N3M9JywndzY4Nnc0dkRqTUtJJywnd3A0R0RNT0NHZz09Jywnd3BGMnc0WWZjY0s4Y2c9PScsJ1NWUkdWaXc9JywnWXNPS3c1akRoc0t0JywnWjhPdUdBRENxdz09JywnSk1LY0I4T1l3clU9JywnSkVuRHJNT3R3Nk09JywndzQvQ21jT2ZSMVE9JywndzZGTXdwakRsUVJ2dzY5SlFNT1habkhEdU1Lb3c0VT0nLCdkM2hKWWlnPScsJ01IckNpTUtLd3BFPScsJ3c3L0Nxc09JVFZzPScsJ3dxL0N1MkpGd3BJPScsJ3dwUENzc09mdzc0UCcsJ3c3ZkNpR25EbWl3PScsJ3dxc2Z3cnpEck1LKycsJ3dwNTF3NDU2S2c9PScsJ1NzSyt3NTNDcXNLRicsJ3c1N0NwTU9uRkdNPScsJ3dvQXlSMW9jJywnTzhPOURtTER0Zz09JywndzRvWkZSWERrQT09Jywndzc1cEdXOHEnLCd3cHZDamNPbHc3c2snLCd3NHR6d3FIQ3JCaz0nLCd3cXNFZTFZbicsJ3dvM0NubEY1d29FPScsJ0w4SzFHOE8wd3FFPScsJ05VekRxc090dzQ4PScsJ3c2WVhNUW5EdXc9PScsJ3c2MHN3N2JEdkE9PScsJ3c3c3V3cWhyd3FRPScsJ3dwbkNyeFhDckhjPScsJ3dxSENtc09wTzJNPScsJ3dwVENyOE9sdzUwamRRPT0nLCdHTUszRjJrWScsJ3c0dzN3N2ZEcDhLeicsJ3dyTERsc0tqdzZWdicsJ3c2azN3cmtod3BjPScsJ3c0bzd3NGpEbHNLVScsJ3dxaFd3cUVzJywnVDhLL3c0bz0nLCd3cVlEd3AvRHZzS0cnLCdFbWpDbHNLR3dvND0nLCd3NDhkd3E0TXc3TT0nLCdDMjdDbDhLSScsJ3dvMEF3b1BEbThLcScsJ3dxa2x3cUREZ01LVicsJ1lWdENTd0E9Jywnd3FvcUs4TytCQT09JywnUWNPeXc1YkR2OEtWJywnd3E4SndwL0RvY0twJywnUjhPMnc0VER2OEtLJywnd3JFUkVzTzJGc0tkY2c9PScsJ3dyVm93NGQ4Snc9PScsJ3dwSTB3cVBEdHNLYScsJ3dwNE1KY081RVE9PScsJ3dwTEN1OE9iRmxrPScsJ3dySXd3cTdEZ2NLQicsJ0pnSStJY0ttJywnSFNRbUpnPT0nXTsoZnVuY3Rpb24oXzB4MjNjYTM2LF8weDUzZDdiMyl7dmFyIF8weDE1Zjc1MD1mdW5jdGlvbihfMHg1MGI4YTkpe3doaWxlKC0tXzB4NTBiOGE5KXtfMHgyM2NhMzZbJ3B1c2gnXShfMHgyM2NhMzZbJ3NoaWZ0J10oKSk7fX07dmFyIF8weDNkNzhmMT1mdW5jdGlvbigpe3ZhciBfMHg0OWM4OTQ9eydkYXRhJzp7J2tleSc6J2Nvb2tpZScsJ3ZhbHVlJzondGltZW91dCd9LCdzZXRDb29raWUnOmZ1bmN0aW9uKF8weDM5OTEwMCxfMHgyMjk5NDMsXzB4M2FjY2QyLF8weDNiNzc2OCl7XzB4M2I3NzY4PV8weDNiNzc2OHx8e307dmFyIF8weDM1MThhZj1fMHgyMjk5NDMrJz0nK18weDNhY2NkMjt2YXIgXzB4MWE2YWE0PTB4MDtmb3IodmFyIF8weDMyZTE1MD0weDAsXzB4NWI1YzdmPV8weDM5OTEwMFsnbGVuZ3RoJ107XzB4MzJlMTUwPF8weDViNWM3ZjtfMHgzMmUxNTArKyl7dmFyIF8weDVkMGFlMj1fMHgzOTkxMDBbXzB4MzJlMTUwXTtfMHgzNTE4YWYrPSc7XHgyMCcrXzB4NWQwYWUyO3ZhciBfMHgyMzFjODA9XzB4Mzk5MTAwW18weDVkMGFlMl07XzB4Mzk5MTAwWydwdXNoJ10oXzB4MjMxYzgwKTtfMHg1YjVjN2Y9XzB4Mzk5MTAwWydsZW5ndGgnXTtpZihfMHgyMzFjODAhPT0hIVtdKXtfMHgzNTE4YWYrPSc9JytfMHgyMzFjODA7fX1fMHgzYjc3NjhbJ2Nvb2tpZSddPV8weDM1MThhZjt9LCdyZW1vdmVDb29raWUnOmZ1bmN0aW9uKCl7cmV0dXJuJ2Rldic7fSwnZ2V0Q29va2llJzpmdW5jdGlvbihfMHgzMmNlMDMsXzB4NzM4YzFkKXtfMHgzMmNlMDM9XzB4MzJjZTAzfHxmdW5jdGlvbihfMHg2ZDdjZjYpe3JldHVybiBfMHg2ZDdjZjY7fTt2YXIgXzB4NDU5OTEzPV8weDMyY2UwMyhuZXcgUmVnRXhwKCcoPzpefDtceDIwKScrXzB4NzM4YzFkWydyZXBsYWNlJ10oLyhbLiQ/Knx7fSgpW11cLyteXSkvZywnJDEnKSsnPShbXjtdKiknKSk7dmFyIF8weDJmMmYxMD1mdW5jdGlvbihfMHgyYzZhYTksXzB4MTQxNzk5KXtfMHgyYzZhYTkoKytfMHgxNDE3OTkpO307XzB4MmYyZjEwKF8weDE1Zjc1MCxfMHg1M2Q3YjMpO3JldHVybiBfMHg0NTk5MTM/ZGVjb2RlVVJJQ29tcG9uZW50KF8weDQ1OTkxM1sweDFdKTp1bmRlZmluZWQ7fX07dmFyIF8weDE4OTZhOD1mdW5jdGlvbigpe3ZhciBfMHhkNGUyYmQ9bmV3IFJlZ0V4cCgnXHg1Y3crXHgyMCpceDVjKFx4NWMpXHgyMCp7XHg1Y3crXHgyMCpbXHgyN3xceDIyXS4rW1x4Mjd8XHgyMl07P1x4MjAqfScpO3JldHVybiBfMHhkNGUyYmRbJ3Rlc3QnXShfMHg0OWM4OTRbJ3JlbW92ZUNvb2tpZSddWyd0b1N0cmluZyddKCkpO307XzB4NDljODk0Wyd1cGRhdGVDb29raWUnXT1fMHgxODk2YTg7dmFyIF8weDIyMmM1Nj0nJzt2YXIgXzB4Y2JkZGYxPV8weDQ5Yzg5NFsndXBkYXRlQ29va2llJ10oKTtpZighXzB4Y2JkZGYxKXtfMHg0OWM4OTRbJ3NldENvb2tpZSddKFsnKiddLCdjb3VudGVyJywweDEpO31lbHNlIGlmKF8weGNiZGRmMSl7XzB4MjIyYzU2PV8weDQ5Yzg5NFsnZ2V0Q29va2llJ10obnVsbCwnY291bnRlcicpO31lbHNle18weDQ5Yzg5NFsncmVtb3ZlQ29va2llJ10oKTt9fTtfMHgzZDc4ZjEoKTt9KHZhcl9DbmRra19jb21fVjdfMHg1M2Q3LDB4ZmEpKTt2YXIgdmFyX0NuZGtrX2NvbV9WN18weDE1Zjc9ZnVuY3Rpb24oXzB4MjNjYTM2LF8weDUzZDdiMyl7XzB4MjNjYTM2PV8weDIzY2EzNi0weDA7dmFyIF8weDE1Zjc1MD12YXJfQ25ka2tfY29tX1Y3XzB4NTNkN1tfMHgyM2NhMzZdO2lmKHZhcl9DbmRra19jb21fVjdfMHgxNWY3WydvVWNId3AnXT09PXVuZGVmaW5lZCl7KGZ1bmN0aW9uKCl7dmFyIF8weDQ5Yzg5NDt0cnl7dmFyIF8weDIyMmM1Nj1GdW5jdGlvbigncmV0dXJuXHgyMChmdW5jdGlvbigpXHgyMCcrJ3t9LmNvbnN0cnVjdG9yKFx4MjJyZXR1cm5ceDIwdGhpc1x4MjIpKFx4MjApJysnKTsnKTtfMHg0OWM4OTQ9XzB4MjIyYzU2KCk7fWNhdGNoKF8weGNiZGRmMSl7XzB4NDljODk0PXdpbmRvdzt9dmFyIF8weDE4OTZhOD0nQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0nO18weDQ5Yzg5NFsnYXRvYiddfHwoXzB4NDljODk0WydhdG9iJ109ZnVuY3Rpb24oXzB4Mzk5MTAwKXt2YXIgXzB4MjI5OTQzPVN0cmluZyhfMHgzOTkxMDApWydyZXBsYWNlJ10oLz0rJC8sJycpO3ZhciBfMHgzYWNjZDI9Jyc7Zm9yKHZhciBfMHgzYjc3Njg9MHgwLF8weDM1MThhZixfMHgxYTZhYTQsXzB4MzJlMTUwPTB4MDtfMHgxYTZhYTQ9XzB4MjI5OTQzWydjaGFyQXQnXShfMHgzMmUxNTArKyk7fl8weDFhNmFhNCYmKF8weDM1MThhZj1fMHgzYjc3NjglMHg0P18weDM1MThhZioweDQwK18weDFhNmFhNDpfMHgxYTZhYTQsXzB4M2I3NzY4KyslMHg0KT9fMHgzYWNjZDIrPVN0cmluZ1snZnJvbUNoYXJDb2RlJ10oMHhmZiZfMHgzNTE4YWY+PigtMHgyKl8weDNiNzc2OCYweDYpKToweDApe18weDFhNmFhND1fMHgxODk2YThbJ2luZGV4T2YnXShfMHgxYTZhYTQpO31yZXR1cm4gXzB4M2FjY2QyO30pO30oKSk7dmFyIF8weDUwYjhhOT1mdW5jdGlvbihfMHg1YjVjN2YsXzB4NWQwYWUyKXt2YXIgXzB4MjMxYzgwPVtdLF8weDMyY2UwMz0weDAsXzB4NzM4YzFkLF8weDQ1OTkxMz0nJyxfMHgyZjJmMTA9Jyc7XzB4NWI1YzdmPWF0b2IoXzB4NWI1YzdmKTtmb3IodmFyIF8weDJjNmFhOT0weDAsXzB4MTQxNzk5PV8weDViNWM3ZlsnbGVuZ3RoJ107XzB4MmM2YWE5PF8weDE0MTc5OTtfMHgyYzZhYTkrKyl7XzB4MmYyZjEwKz0nJScrKCcwMCcrXzB4NWI1YzdmWydjaGFyQ29kZUF0J10oXzB4MmM2YWE5KVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fV8weDViNWM3Zj1kZWNvZGVVUklDb21wb25lbnQoXzB4MmYyZjEwKTt2YXIgXzB4NmQ3Y2Y2O2ZvcihfMHg2ZDdjZjY9MHgwO18weDZkN2NmNjwweDEwMDtfMHg2ZDdjZjYrKyl7XzB4MjMxYzgwW18weDZkN2NmNl09XzB4NmQ3Y2Y2O31mb3IoXzB4NmQ3Y2Y2PTB4MDtfMHg2ZDdjZjY8MHgxMDA7XzB4NmQ3Y2Y2Kyspe18weDMyY2UwMz0oXzB4MzJjZTAzK18weDIzMWM4MFtfMHg2ZDdjZjZdK18weDVkMGFlMlsnY2hhckNvZGVBdCddKF8weDZkN2NmNiVfMHg1ZDBhZTJbJ2xlbmd0aCddKSklMHgxMDA7XzB4NzM4YzFkPV8weDIzMWM4MFtfMHg2ZDdjZjZdO18weDIzMWM4MFtfMHg2ZDdjZjZdPV8weDIzMWM4MFtfMHgzMmNlMDNdO18weDIzMWM4MFtfMHgzMmNlMDNdPV8weDczOGMxZDt9XzB4NmQ3Y2Y2PTB4MDtfMHgzMmNlMDM9MHgwO2Zvcih2YXIgXzB4ZDRlMmJkPTB4MDtfMHhkNGUyYmQ8XzB4NWI1YzdmWydsZW5ndGgnXTtfMHhkNGUyYmQrKyl7XzB4NmQ3Y2Y2PShfMHg2ZDdjZjYrMHgxKSUweDEwMDtfMHgzMmNlMDM9KF8weDMyY2UwMytfMHgyMzFjODBbXzB4NmQ3Y2Y2XSklMHgxMDA7XzB4NzM4YzFkPV8weDIzMWM4MFtfMHg2ZDdjZjZdO18weDIzMWM4MFtfMHg2ZDdjZjZdPV8weDIzMWM4MFtfMHgzMmNlMDNdO18weDIzMWM4MFtfMHgzMmNlMDNdPV8weDczOGMxZDtfMHg0NTk5MTMrPVN0cmluZ1snZnJvbUNoYXJDb2RlJ10oXzB4NWI1YzdmWydjaGFyQ29kZUF0J10oXzB4ZDRlMmJkKV5fMHgyMzFjODBbKF8weDIzMWM4MFtfMHg2ZDdjZjZdK18weDIzMWM4MFtfMHgzMmNlMDNdKSUweDEwMF0pO31yZXR1cm4gXzB4NDU5OTEzO307dmFyX0NuZGtrX2NvbV9WN18weDE1ZjdbJ0FBUHVDbiddPV8weDUwYjhhOTt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmN1snRVdUREFyJ109e307dmFyX0NuZGtrX2NvbV9WN18weDE1ZjdbJ29VY0h3cCddPSEhW107fXZhciBfMHgzZDc4ZjE9dmFyX0NuZGtrX2NvbV9WN18weDE1ZjdbJ0VXVERBciddW18weDIzY2EzNl07aWYoXzB4M2Q3OGYxPT09dW5kZWZpbmVkKXtpZih2YXJfQ25ka2tfY29tX1Y3XzB4MTVmN1snenZ0cHN2J109PT11bmRlZmluZWQpe3ZhciBfMHg1OTY2Nzc9ZnVuY3Rpb24oXzB4MTk5MjhiKXt0aGlzWyd1a0pzcmMnXT1fMHgxOTkyOGI7dGhpc1snWE1yeXRKJ109WzB4MSwweDAsMHgwXTt0aGlzWydCWm5qYXAnXT1mdW5jdGlvbigpe3JldHVybiduZXdTdGF0ZSc7fTt0aGlzWydpQmpzV2EnXT0nXHg1Y3crXHgyMCpceDVjKFx4NWMpXHgyMCp7XHg1Y3crXHgyMConO3RoaXNbJ3pPbVpTeCddPSdbXHgyN3xceDIyXS4rW1x4Mjd8XHgyMl07P1x4MjAqfSc7fTtfMHg1OTY2NzdbJ3Byb3RvdHlwZSddWydnWU9Wc08nXT1mdW5jdGlvbigpe3ZhciBfMHgyZTE5NDY9bmV3IFJlZ0V4cCh0aGlzWydpQmpzV2EnXSt0aGlzWyd6T21aU3gnXSk7dmFyIF8weDU1YTQ5YT1fMHgyZTE5NDZbJ3Rlc3QnXSh0aGlzWydCWm5qYXAnXVsndG9TdHJpbmcnXSgpKT8tLXRoaXNbJ1hNcnl0SiddWzB4MV06LS10aGlzWydYTXJ5dEonXVsweDBdO3JldHVybiB0aGlzWyd0cEhXZ1onXShfMHg1NWE0OWEpO307XzB4NTk2Njc3Wydwcm90b3R5cGUnXVsndHBIV2daJ109ZnVuY3Rpb24oXzB4MWExYWRhKXtpZighQm9vbGVhbih+XzB4MWExYWRhKSl7cmV0dXJuIF8weDFhMWFkYTt9cmV0dXJuIHRoaXNbJ1FMT3RNSCddKHRoaXNbJ3VrSnNyYyddKTt9O18weDU5NjY3N1sncHJvdG90eXBlJ11bJ1FMT3RNSCddPWZ1bmN0aW9uKF8weDdhMzhkNyl7Zm9yKHZhciBfMHgxZDBhYjg9MHgwLF8weDU4ZGM3NT10aGlzWydYTXJ5dEonXVsnbGVuZ3RoJ107XzB4MWQwYWI4PF8weDU4ZGM3NTtfMHgxZDBhYjgrKyl7dGhpc1snWE1yeXRKJ11bJ3B1c2gnXShNYXRoWydyb3VuZCddKE1hdGhbJ3JhbmRvbSddKCkpKTtfMHg1OGRjNzU9dGhpc1snWE1yeXRKJ11bJ2xlbmd0aCddO31yZXR1cm4gXzB4N2EzOGQ3KHRoaXNbJ1hNcnl0SiddWzB4MF0pO307bmV3IF8weDU5NjY3Nyh2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNylbJ2dZT1ZzTyddKCk7dmFyX0NuZGtrX2NvbV9WN18weDE1ZjdbJ3p2dHBzdiddPSEhW107fV8weDE1Zjc1MD12YXJfQ25ka2tfY29tX1Y3XzB4MTVmN1snQUFQdUNuJ10oXzB4MTVmNzUwLF8weDUzZDdiMyk7dmFyX0NuZGtrX2NvbV9WN18weDE1ZjdbJ0VXVERBciddW18weDIzY2EzNl09XzB4MTVmNzUwO31lbHNle18weDE1Zjc1MD1fMHgzZDc4ZjE7fXJldHVybiBfMHgxNWY3NTA7fTt2YXIgXzB4MzUxOGFmPWZ1bmN0aW9uKCl7dmFyIF8weDMwNjRjYT17fTtfMHgzMDY0Y2FbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZTgnLCdtRk51JyldPWZ1bmN0aW9uKF8weDNmMGIyMil7cmV0dXJuIF8weDNmMGIyMigpO307XzB4MzA2NGNhW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDJlJywnWCpIQycpXT1mdW5jdGlvbihfMHgyMzExZGEsXzB4NGQ3ZmUxKXtyZXR1cm4gXzB4MjMxMWRhIT09XzB4NGQ3ZmUxO307XzB4MzA2NGNhW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDExZicsJ0tbeUonKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4OWEnLCdLIUt2Jyk7XzB4MzA2NGNhW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDk1JywnS1t5SicpXT1mdW5jdGlvbihfMHgxYTM1MjgsXzB4MjlhYzJlKXtyZXR1cm4gXzB4MWEzNTI4PT09XzB4MjlhYzJlO307XzB4MzA2NGNhW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGEwJywnNDE2YycpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgwJywnRnQ3QycpO3ZhciBfMHg1ZjIzMGY9XzB4MzA2NGNhO3ZhciBfMHgzNjZiNmQ9ISFbXTtyZXR1cm4gZnVuY3Rpb24oXzB4MzY2YTc5LF8weDU2ZmJlNyl7dmFyIF8weDFjYzc2OT17fTtfMHgxY2M3NjlbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MmMnLCdLW3lKJyldPWZ1bmN0aW9uKF8weDJlNDFkNSl7cmV0dXJuIF8weDVmMjMwZlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhlMCcsJ3U4RWcnKV0oXzB4MmU0MWQ1KTt9O18weDFjYzc2OVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMjgnLCd5Yl5oJyldPWZ1bmN0aW9uKF8weDU2MGJjYyxfMHgyZjYyZjgpe3JldHVybiBfMHg1ZjIzMGZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MycsJ2hTS0YnKV0oXzB4NTYwYmNjLF8weDJmNjJmOCk7fTtfMHgxY2M3NjlbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NGMnLCdNbzFnJyldPV8weDVmMjMwZlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhmNCcsJ2RQTTcnKV07XzB4MWNjNzY5W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDc0JywndThFZycpXT1mdW5jdGlvbihfMHg1YWE5MTUsXzB4ZjE1YzAxKXtyZXR1cm4gXzB4NWYyMzBmW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGEyJywnQVZmNCcpXShfMHg1YWE5MTUsXzB4ZjE1YzAxKTt9O18weDFjYzc2OVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhjZScsJ2R6WWInKV09XzB4NWYyMzBmW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDEwNScsJ01kcGcnKV07dmFyIF8weDU2YzcxNz1fMHgxY2M3Njk7dmFyIF8weDNhZDdlMz1fMHgzNjZiNmQ/ZnVuY3Rpb24oKXt2YXIgXzB4NTUxYjJkPXt9O18weDU1MWIyZFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMTknLCd1JnJbJyldPWZ1bmN0aW9uKF8weDI0YTIxMil7cmV0dXJuIF8weDU2YzcxN1t2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhlNScsJ2FDSWonKV0oXzB4MjRhMjEyKTt9O3ZhciBfMHgzNjI0OGI9XzB4NTUxYjJkO2lmKF8weDU2YzcxN1t2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg2NScsJ0Z0N0MnKV0oXzB4NTZjNzE3W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGMwJywnaCl5YycpXSxfMHg1NmM3MTdbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTknLCdNZHBnJyldKSl7XzB4MzYyNDhiW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDc1JywnZzFpcCcpXShfMHhjYmRkZjEpO31lbHNle2lmKF8weDU2ZmJlNyl7aWYoXzB4NTZjNzE3W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDllJywnTWRwZycpXShfMHg1NmM3MTdbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZWEnLCdRbzhBJyldLF8weDU2YzcxN1t2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgyZicsJ0FWZjQnKV0pKXt2YXIgXzB4M2VhN2Y0PV8weDU2ZmJlN1t2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhhZCcsJ01vMWcnKV0oXzB4MzY2YTc5LGFyZ3VtZW50cyk7XzB4NTZmYmU3PW51bGw7cmV0dXJuIF8weDNlYTdmNDt9ZWxzZXt2YXIgXzB4MWZiODA1PV8weDU2ZmJlN1t2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgzOScsJ25ueWwnKV0oXzB4MzY2YTc5LGFyZ3VtZW50cyk7XzB4NTZmYmU3PW51bGw7cmV0dXJuIF8weDFmYjgwNTt9fX19OmZ1bmN0aW9uKCl7fTtfMHgzNjZiNmQ9IVtdO3JldHVybiBfMHgzYWQ3ZTM7fTt9KCk7dmFyIF8weDNiNzc2OD1fMHgzNTE4YWYodGhpcyxmdW5jdGlvbigpe3ZhciBfMHg0ODNhOTg9e307XzB4NDgzYTk4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDc4JywnNVVVVycpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgzNScsJzJqelQnKTtfMHg0ODNhOThbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NTYnLCdrJlF2JyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDg0JywnYUNJaicpO18weDQ4M2E5OFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgyOCcsJ2dhcEwnKV09ZnVuY3Rpb24oXzB4MjhjZWQ3KXtyZXR1cm4gXzB4MjhjZWQ3KCk7fTt2YXIgXzB4NWRlZTM2PV8weDQ4M2E5ODt2YXIgXzB4NTI2YTM4PWZ1bmN0aW9uKCl7dmFyIF8weDNhYTU5Mj1fMHg1MjZhMzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4M2UnLCcpZThKJyldKF8weDVkZWUzNlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg2ZScsJ0VJQHcnKV0pKClbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NWMnLCdwd29PJyldKF8weDVkZWUzNlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhhNicsJ3UmclsnKV0pO3JldHVybiFfMHgzYWE1OTJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTBkJywndThFZycpXShfMHgzYjc3NjgpO307cmV0dXJuIF8weDVkZWUzNlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg0NicsJ01vMWcnKV0oXzB4NTI2YTM4KTt9KTtfMHgzYjc3NjgoKTtzZXRJbnRlcnZhbChmdW5jdGlvbigpe3ZhciBfMHhhNDA5MzY9e307XzB4YTQwOTM2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGIzJywnXnBWQScpXT1mdW5jdGlvbihfMHg0OTViZTkpe3JldHVybiBfMHg0OTViZTkoKTt9O3ZhciBfMHg1MzM5ZDI9XzB4YTQwOTM2O18weDUzMzlkMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhmMicsJ1FvOEEnKV0oXzB4Y2JkZGYxKTt9LDB4ZmEwKTt2YXIgXzB4Mzk5MTAwPWZ1bmN0aW9uKCl7dmFyIF8weDZhYzBhYT17fTtfMHg2YWMwYWFbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YzUnLCcmMVteJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDlmJywnYSV1WycpO18weDZhYzBhYVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhhNScsJ01vMWcnKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTE3JywnYUBoeicpO18weDZhYzBhYVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhhZicsJ2FAaHonKV09ZnVuY3Rpb24oXzB4MmM0NmQ0LF8weDJmOTg1MCl7cmV0dXJuIF8weDJjNDZkNChfMHgyZjk4NTApO307XzB4NmFjMGFhW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDEwYycsJ15wVkEnKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MzYnLCdecFZBJyk7XzB4NmFjMGFhW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDM4JywnayZRdicpXT1mdW5jdGlvbihfMHgzYjBjOWUsXzB4MjVjZDA0KXtyZXR1cm4gXzB4M2IwYzllK18weDI1Y2QwNDt9O18weDZhYzBhYVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhmNicsJ2E2cTknKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NTcnLCdoKXljJyk7XzB4NmFjMGFhW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGMyJywnb2hXbCcpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg0MicsJ25ueWwnKTtfMHg2YWMwYWFbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZWYnLCdjRihFJyldPWZ1bmN0aW9uKF8weDJlNjc2Yyl7cmV0dXJuIF8weDJlNjc2YygpO307XzB4NmFjMGFhW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDY0JywnYSV1WycpXT1mdW5jdGlvbihfMHgyMzZmYjksXzB4M2IxYTlhKXtyZXR1cm4gXzB4MjM2ZmI5PT09XzB4M2IxYTlhO307XzB4NmFjMGFhW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGQ2JywndSZyWycpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhiZScsJzJqelQnKTt2YXIgXzB4NWRkOTFmPV8weDZhYzBhYTt2YXIgXzB4M2M0MmI1PSEhW107cmV0dXJuIGZ1bmN0aW9uKF8weDMwMTNkZSxfMHg1YTk1Mzcpe3ZhciBfMHgyZjNjMjI9e307XzB4MmYzYzIyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGY4JywncSZdXicpXT1fMHg1ZGQ5MWZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTExJywnZHpZYicpXTtfMHgyZjNjMjJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTJhJywnVCV2WCcpXT1fMHg1ZGQ5MWZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ODEnLCdCN0d2JyldO18weDJmM2MyMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxYScsJ2NGKEUnKV09ZnVuY3Rpb24oXzB4NWVjMmJmLF8weDFlYmU2YSl7cmV0dXJuIF8weDVkZDkxZlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhiMCcsJ2EldVsnKV0oXzB4NWVjMmJmLF8weDFlYmU2YSk7fTtfMHgyZjNjMjJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YjUnLCdUJXZYJyldPV8weDVkZDkxZlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg2NycsJ1QldlgnKV07XzB4MmYzYzIyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGI4JywndF43ZicpXT1mdW5jdGlvbihfMHgyYTk5NjMsXzB4MjdlYTE2KXtyZXR1cm4gXzB4NWRkOTFmW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGM5JywnZFBNNycpXShfMHgyYTk5NjMsXzB4MjdlYTE2KTt9O18weDJmM2MyMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhkNScsJ25ueWwnKV09XzB4NWRkOTFmW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGInLCd1JnJbJyldO18weDJmM2MyMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg0MCcsJ25ueWwnKV09ZnVuY3Rpb24oXzB4MWYwNTk1LF8weDM5MzVjMyl7cmV0dXJuIF8weDVkZDkxZlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMGEnLCdjRihFJyldKF8weDFmMDU5NSxfMHgzOTM1YzMpO307XzB4MmYzYzIyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDE3JywnKWh4SycpXT1fMHg1ZGQ5MWZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4OGMnLCdLW3lKJyldO18weDJmM2MyMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhmOScsJyloeEsnKV09ZnVuY3Rpb24oXzB4ZjkzNmE0LF8weDNjN2JiMSl7cmV0dXJuIF8weDVkZDkxZlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhlNCcsJ241aGgnKV0oXzB4ZjkzNmE0LF8weDNjN2JiMSk7fTtfMHgyZjNjMjJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTQnLCcpZThKJyldPWZ1bmN0aW9uKF8weDFiM2RmMCl7cmV0dXJuIF8weDVkZDkxZlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMDEnLCdTdnA5JyldKF8weDFiM2RmMCk7fTt2YXIgXzB4NDViODM3PV8weDJmM2MyMjtpZihfMHg1ZGQ5MWZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZmQnLCdkUE03JyldKF8weDVkZDkxZlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg5MScsJ2hTS0YnKV0sXzB4NWRkOTFmW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDkxJywnaFNLRicpXSkpe3ZhciBfMHg1NzkxNjc9XzB4M2M0MmI1P2Z1bmN0aW9uKCl7aWYoXzB4NWE5NTM3KXt2YXIgXzB4NDA0YTAxPV8weDVhOTUzN1t2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhlNicsJ0I3R3YnKV0oXzB4MzAxM2RlLGFyZ3VtZW50cyk7XzB4NWE5NTM3PW51bGw7cmV0dXJuIF8weDQwNGEwMTt9fTpmdW5jdGlvbigpe307XzB4M2M0MmI1PSFbXTtyZXR1cm4gXzB4NTc5MTY3O31lbHNle3ZhciBfMHgzNTQ0MGI9bmV3IFJlZ0V4cChfMHg0NWI4MzdbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTEnLCdhJXVbJyldKTt2YXIgXzB4MWRhNzJlPW5ldyBSZWdFeHAoXzB4NDViODM3W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDExYycsJ21GTnUnKV0sJ2knKTt2YXIgXzB4NDNjNGRmPV8weDQ1YjgzN1t2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgzZicsJ0I3R3YnKV0oXzB4Y2JkZGYxLF8weDQ1YjgzN1t2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxZicsJ2cxaXAnKV0pO2lmKCFfMHgzNTQ0MGJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NzInLCdoU0tGJyldKF8weDQ1YjgzN1t2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhkZScsJ2dTSTUnKV0oXzB4NDNjNGRmLF8weDQ1YjgzN1t2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhlOScsJyloeEsnKV0pKXx8IV8weDFkYTcyZVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg1ZCcsJ1gqSEMnKV0oXzB4NDViODM3W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDQ0JywnYSV1WycpXShfMHg0M2M0ZGYsXzB4NDViODM3W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDkzJywnbUAqVicpXSkpKXtfMHg0NWI4MzdbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YjEnLCdNZHBnJyldKF8weDQzYzRkZiwnMCcpO31lbHNle18weDQ1YjgzN1t2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhjYycsJ25ueWwnKV0oXzB4Y2JkZGYxKTt9fX07fSgpOyhmdW5jdGlvbigpe3ZhciBfMHg0NmNmMzI9e307XzB4NDZjZjMyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDExOCcsJ0VJQHcnKV09ZnVuY3Rpb24oXzB4MjNhMDk0LF8weDU3MGY5Yil7cmV0dXJuIF8weDIzYTA5ND09PV8weDU3MGY5Yjt9O18weDQ2Y2YzMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhlZScsJ2FDSWonKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4N2MnLCdFSUB3Jyk7XzB4NDZjZjMyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGJkJywnbjVoaCcpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMjUnLCdoKXljJyk7XzB4NDZjZjMyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDc2Jywnbm55bCcpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg0MycsJyloeEsnKTtfMHg0NmNmMzJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTIzJywnZFBNNycpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg2MycsJ1MxdjcnKTtfMHg0NmNmMzJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZDknLCdhNnE5JyldPWZ1bmN0aW9uKF8weDQyNmRlNSxfMHgyN2FiOGMpe3JldHVybiBfMHg0MjZkZTUoXzB4MjdhYjhjKTt9O18weDQ2Y2YzMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg3MCcsJ3EmXV4nKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTInLCd1OEVnJyk7XzB4NDZjZjMyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDI2JywnZ2FwTCcpXT1mdW5jdGlvbihfMHg0NmRkMjAsXzB4MjhjMDdiKXtyZXR1cm4gXzB4NDZkZDIwK18weDI4YzA3Yjt9O18weDQ2Y2YzMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg5OScsJ21GTnUnKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NCcsJ1JPMVMnKTtfMHg0NmNmMzJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YzcnLCcpZThKJyldPWZ1bmN0aW9uKF8weDUyMjdlOCxfMHgzMzA4ZDYpe3JldHVybiBfMHg1MjI3ZTgrXzB4MzMwOGQ2O307XzB4NDZjZjMyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDgwJywndF43ZicpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg1JywnNDE2YycpO18weDQ2Y2YzMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhkMScsJ21AKlYnKV09ZnVuY3Rpb24oXzB4NDk5MWM2KXtyZXR1cm4gXzB4NDk5MWM2KCk7fTtfMHg0NmNmMzJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YTQnLCdRbzhBJyldPWZ1bmN0aW9uKF8weDE1ZTU5MSxfMHgxY2MyNWYsXzB4M2NmOWI1KXtyZXR1cm4gXzB4MTVlNTkxKF8weDFjYzI1ZixfMHgzY2Y5YjUpO307dmFyIF8weDEyMDY3OT1fMHg0NmNmMzI7XzB4MTIwNjc5W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGZiJywnRUlAdycpXShfMHgzOTkxMDAsdGhpcyxmdW5jdGlvbigpe2lmKF8weDEyMDY3OVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhkMCcsJ3VkQ3QnKV0oXzB4MTIwNjc5W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDk3JywnS1t5SicpXSxfMHgxMjA2NzlbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NmQnLCc0MTZjJyldKSl7dmFyIF8weDVkOTgyND1maXJzdENhbGw/ZnVuY3Rpb24oKXtpZihmbil7dmFyIF8weDU2ZjgyMj1mblt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhjZicsJ2gpeWMnKV0oY29udGV4dCxhcmd1bWVudHMpO2ZuPW51bGw7cmV0dXJuIF8weDU2ZjgyMjt9fTpmdW5jdGlvbigpe307Zmlyc3RDYWxsPSFbXTtyZXR1cm4gXzB4NWQ5ODI0O31lbHNle3ZhciBfMHgxMjM2NmI9bmV3IFJlZ0V4cChfMHgxMjA2NzlbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YzgnLCdwd29PJyldKTt2YXIgXzB4ZDdhMDNmPW5ldyBSZWdFeHAoXzB4MTIwNjc5W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDEyNicsJ1QldlgnKV0sJ2knKTt2YXIgXzB4MjkxZjIwPV8weDEyMDY3OVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhkYScsJ0FWZjQnKV0oXzB4Y2JkZGYxLF8weDEyMDY3OVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg1NScsJ1YmUnonKV0pO2lmKCFfMHgxMjM2NmJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MzAnLCdBVmY0JyldKF8weDEyMDY3OVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgyMycsJ1gqSEMnKV0oXzB4MjkxZjIwLF8weDEyMDY3OVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg4JywnZ1NJNScpXSkpfHwhXzB4ZDdhMDNmW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDIxJywnZzFpcCcpXShfMHgxMjA2NzlbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ODgnLCdkelliJyldKF8weDI5MWYyMCxfMHgxMjA2NzlbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZGYnLCdhQ0lqJyldKSkpe18weDEyMDY3OVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxZScsJ1gqSEMnKV0oXzB4MjkxZjIwLCcwJyk7fWVsc2V7XzB4MTIwNjc5W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDVhJywndSZyWycpXShfMHhjYmRkZjEpO319fSkoKTt9KCkpO3ZhciBfMHg0OWM4OTQ9ZnVuY3Rpb24oKXt2YXIgXzB4NTk4MGVkPXt9O18weDU5ODBlZFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhjJywnbUZOdScpXT1mdW5jdGlvbihfMHhkMTY5YjcsXzB4MWJkMGEzKXtyZXR1cm4gXzB4ZDE2OWI3PT09XzB4MWJkMGEzO307XzB4NTk4MGVkW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGRjJywnWldXTicpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg4ZScsJykqVmYnKTt2YXIgXzB4NTk4NDNmPV8weDU5ODBlZDt2YXIgXzB4MjM0NTBiPSEhW107cmV0dXJuIGZ1bmN0aW9uKF8weGYwZDQ3MixfMHgxODMxYmQpe3ZhciBfMHhlYWM5MmM9XzB4MjM0NTBiP2Z1bmN0aW9uKCl7aWYoXzB4NTk4NDNmW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDRiJywnJjFbXicpXShfMHg1OTg0M2ZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NGEnLCc0MTZjJyldLF8weDU5ODQzZlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg2YicsJ01kcGcnKV0pKXtpZihfMHgxODMxYmQpe3ZhciBfMHg0OGJhZmI9XzB4MTgzMWJkW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDgzJywnRUlAdycpXShfMHhmMGQ0NzIsYXJndW1lbnRzKTtfMHgxODMxYmQ9bnVsbDtyZXR1cm4gXzB4NDhiYWZiO319ZWxzZXt2YXIgXzB4NGEyOTIzPV8weDE4MzFiZFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMTMnLCdoU0tGJyldKF8weGYwZDQ3Mixhcmd1bWVudHMpO18weDE4MzFiZD1udWxsO3JldHVybiBfMHg0YTI5MjM7fX06ZnVuY3Rpb24oKXt9O18weDIzNDUwYj0hW107cmV0dXJuIF8weGVhYzkyYzt9O30oKTt2YXIgXzB4NTBiOGE5PV8weDQ5Yzg5NCh0aGlzLGZ1bmN0aW9uKCl7dmFyIF8weDU3MjRmZT17fTtfMHg1NzI0ZmVbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YzYnLCdLW3lKJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDRlJywnZ1NJNScpO18weDU3MjRmZVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgyMicsJ1gqSEMnKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTBlJywnUzF2NycpO18weDU3MjRmZVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhhYycsJ2dTSTUnKV09ZnVuY3Rpb24oXzB4NDQ4Mzc0KXtyZXR1cm4gXzB4NDQ4Mzc0KCk7fTtfMHg1NzI0ZmVbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4N2InLCdRbzhBJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDUzJywnXnBWQScpO18weDU3MjRmZVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhkZCcsJ1JPMVMnKV09ZnVuY3Rpb24oXzB4NDJiMjU2LF8weDQ1YWFkYSl7cmV0dXJuIF8weDQyYjI1NihfMHg0NWFhZGEpO307XzB4NTcyNGZlW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDExYicsJ2FAaHonKV09ZnVuY3Rpb24oXzB4MzQyNTMwLF8weDRlZDdjNil7cmV0dXJuIF8weDM0MjUzMCtfMHg0ZWQ3YzY7fTtfMHg1NzI0ZmVbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MjQnLCd5Yl5oJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDEwMCcsJ2dhcEwnKTtfMHg1NzI0ZmVbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ODYnLCc1VVVXJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGFhJywnS1t5SicpO18weDU3MjRmZVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMGInLCdubnlsJyldPWZ1bmN0aW9uKF8weGNmYjEyYyxfMHg1MjM1NDApe3JldHVybiBfMHhjZmIxMmM9PT1fMHg1MjM1NDA7fTtfMHg1NzI0ZmVbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NjYnLCdoU0tGJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDMyJywnYSV1WycpO18weDU3MjRmZVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhlNycsJ3VkQ3QnKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZjUnLCdkUE03Jyk7dmFyIF8weDRkYzM4Yj1fMHg1NzI0ZmU7dmFyIF8weDNlNDQ1Yz1mdW5jdGlvbigpe307dmFyIF8weDNiZDYwMjt0cnl7dmFyIF8weDJjY2NjZD1fMHg0ZGMzOGJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NDUnLCdoU0tGJyldKEZ1bmN0aW9uLF8weDRkYzM4Ylt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgzMycsJyloeEsnKV0oXzB4NGRjMzhiW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDUxJywndWRDdCcpXShfMHg0ZGMzOGJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MzEnLCd1JnJbJyldLF8weDRkYzM4Ylt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgyZCcsJ01vMWcnKV0pLCcpOycpKTtfMHgzYmQ2MDI9XzB4NGRjMzhiW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDJhJywnUk8xUycpXShfMHgyY2NjY2QpO31jYXRjaChfMHg0YjQ3MmUpe2lmKF8weDRkYzM4Ylt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhhYicsJyllOEonKV0oXzB4NGRjMzhiW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDk0JywnKSpWZicpXSxfMHg0ZGMzOGJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4OScsJ2EldVsnKV0pKXtfMHgzYmQ2MDI9d2luZG93O31lbHNle3ZhciBfMHg1ZTM1Njk9e307XzB4NWUzNTY5W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDdkJywnS1t5SicpXT1fMHg0ZGMzOGJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTBmJywnayZRdicpXTtfMHg1ZTM1NjlbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YjcnLCdLIUt2JyldPV8weDRkYzM4Ylt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhmJywnJjFbXicpXTt2YXIgXzB4MzY5ODgyPV8weDVlMzU2OTt2YXIgXzB4MTQzZGJhPWZ1bmN0aW9uKCl7dmFyIF8weDNiNDZjMz1fMHgxNDNkYmFbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTE1JywnZFBNNycpXShfMHgzNjk4ODJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4N2YnLCdTMXY3JyldKSgpW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDhkJywnTWRwZycpXShfMHgzNjk4ODJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ODUnLCdSTzFTJyldKTtyZXR1cm4hXzB4M2I0NmMzW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDFjJywnRUlAdycpXShfMHgzYjc3NjgpO307cmV0dXJuIF8weDRkYzM4Ylt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxOCcsJ3U4RWcnKV0oXzB4MTQzZGJhKTt9fWlmKCFfMHgzYmQ2MDJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MzcnLCd1OEVnJyldKXtfMHgzYmQ2MDJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YjQnLCdtQCpWJyldPWZ1bmN0aW9uKF8weDE4YmI1Nil7dmFyIF8weDViNTRjMz1fMHg0ZGMzOGJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4M2QnLCdLW3lKJyldW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDYwJywnRnQ3QycpXSgnfCcpO3ZhciBfMHg0NjliN2U9MHgwO3doaWxlKCEhW10pe3N3aXRjaChfMHg1YjU0YzNbXzB4NDY5YjdlKytdKXtjYXNlJzAnOl8weDUwOTMzZVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg1OCcsJ1pXV04nKV09XzB4MThiYjU2O2NvbnRpbnVlO2Nhc2UnMSc6XzB4NTA5MzNlW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGZjJywnKWU4SicpXT1fMHgxOGJiNTY7Y29udGludWU7Y2FzZScyJzpfMHg1MDkzM2VbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YjknLCd1JnJbJyldPV8weDE4YmI1Njtjb250aW51ZTtjYXNlJzMnOl8weDUwOTMzZVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg3MycsJ2gpeWMnKV09XzB4MThiYjU2O2NvbnRpbnVlO2Nhc2UnNCc6XzB4NTA5MzNlW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDEwOCcsJ1N2cDknKV09XzB4MThiYjU2O2NvbnRpbnVlO2Nhc2UnNSc6dmFyIF8weDUwOTMzZT17fTtjb250aW51ZTtjYXNlJzYnOnJldHVybiBfMHg1MDkzM2U7Y2FzZSc3JzpfMHg1MDkzM2VbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MWQnLCc0MTZjJyldPV8weDE4YmI1Njtjb250aW51ZTtjYXNlJzgnOl8weDUwOTMzZVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg0MScsJ21GTnUnKV09XzB4MThiYjU2O2NvbnRpbnVlO2Nhc2UnOSc6XzB4NTA5MzNlW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGNhJywnQjdHdicpXT1fMHgxOGJiNTY7Y29udGludWU7fWJyZWFrO319KF8weDNlNDQ1Yyk7fWVsc2V7dmFyIF8weGI5ZmQ5MD1fMHg0ZGMzOGJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NDcnLCd1JnJbJyldW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGUyJywnZHpZYicpXSgnfCcpO3ZhciBfMHgxMDE2YTk9MHgwO3doaWxlKCEhW10pe3N3aXRjaChfMHhiOWZkOTBbXzB4MTAxNmE5KytdKXtjYXNlJzAnOl8weDNiZDYwMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgzNycsJ3U4RWcnKV1bdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4OTgnLCdNZHBnJyldPV8weDNlNDQ1Yztjb250aW51ZTtjYXNlJzEnOl8weDNiZDYwMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg1MicsJ01kcGcnKV1bdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZTEnLCd1JnJbJyldPV8weDNlNDQ1Yztjb250aW51ZTtjYXNlJzInOl8weDNiZDYwMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhiYScsJ01vMWcnKV1bdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTA4JywnU3ZwOScpXT1fMHgzZTQ0NWM7Y29udGludWU7Y2FzZSczJzpfMHgzYmQ2MDJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4M2EnLCdvaFdsJyldW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGViJywnbUZOdScpXT1fMHgzZTQ0NWM7Y29udGludWU7Y2FzZSc0JzpfMHgzYmQ2MDJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZmEnLCd0XjdmJyldW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGZlJywndF43ZicpXT1fMHgzZTQ0NWM7Y29udGludWU7Y2FzZSc1JzpfMHgzYmQ2MDJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTA5JywnKWU4SicpXVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMycsJzVVVVcnKV09XzB4M2U0NDVjO2NvbnRpbnVlO2Nhc2UnNic6XzB4M2JkNjAyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDg5JywncSZdXicpXVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg5MCcsJ3VkQ3QnKV09XzB4M2U0NDVjO2NvbnRpbnVlO2Nhc2UnNyc6XzB4M2JkNjAyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDUwJywnbUZOdScpXVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhmMCcsJ1pXV04nKV09XzB4M2U0NDVjO2NvbnRpbnVlO31icmVhazt9fX0pO18weDUwYjhhOSgpO2NvbnNvbGVbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZjEnLCc1VVVXJyldKHZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGYzJywndSZyWycpKTthbGVydCh2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMTAnLCdBVmY0JykpO2Z1bmN0aW9uIF8weGNiZGRmMShfMHgyNTE5NmIpe3ZhciBfMHgxODJiNDY9e307XzB4MTgyYjQ2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDljJywnbUZOdScpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhiYicsJzQxNmMnKTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NzknLCdxJl1eJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDdlJywndThFZycpO18weDE4MmI0Nlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMTQnLCc1VVVXJyldPWZ1bmN0aW9uKF8weDJmOWE1Nil7cmV0dXJuIF8weDJmOWE1NigpO307XzB4MTgyYjQ2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDhmJywnKWh4SycpXT1mdW5jdGlvbihfMHg0Njc0YjUsXzB4MTYwZTYxKXtyZXR1cm4gXzB4NDY3NGI1PT09XzB4MTYwZTYxO307XzB4MTgyYjQ2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDcxJywnbm55bCcpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg1ZScsJ2R6WWInKTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YzEnLCdNZHBnJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGNiJywnbjVoaCcpO18weDE4MmI0Nlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMDYnLCdnYXBMJyldPWZ1bmN0aW9uKF8weDQ5NGEwNCxfMHg0ZWE1OGMpe3JldHVybiBfMHg0OTRhMDQ9PT1fMHg0ZWE1OGM7fTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MmInLCdoU0tGJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGE5JywncSZdXicpO18weDE4MmI0Nlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMjInLCdnYXBMJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDEyNycsJ21AKlYnKTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTAzJywnTWRwZycpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgyOScsJ0tbeUonKTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4N2EnLCdubnlsJyldPWZ1bmN0aW9uKF8weDM3NDU4YyxfMHgyYzhmNGYpe3JldHVybiBfMHgzNzQ1OGMhPT1fMHgyYzhmNGY7fTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ODcnLCcyanpUJyldPWZ1bmN0aW9uKF8weDQ2YTIwOSxfMHgxOTNjMDYpe3JldHVybiBfMHg0NmEyMDkrXzB4MTkzYzA2O307XzB4MTgyYjQ2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDFiJywnYTZxOScpXT1mdW5jdGlvbihfMHgxNDBhZTAsXzB4NWMzMTQyKXtyZXR1cm4gXzB4MTQwYWUwL18weDVjMzE0Mjt9O18weDE4MmI0Nlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg2JywnbjVoaCcpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxNicsJ3UmclsnKTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZjcnLCdTMXY3JyldPWZ1bmN0aW9uKF8weDM4NTJkZixfMHg0NzVhOGIpe3JldHVybiBfMHgzODUyZGYlXzB4NDc1YThiO307XzB4MTgyYjQ2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGI2JywnS1t5SicpXT1mdW5jdGlvbihfMHg1NzIxMTEsXzB4MTMzNWFjKXtyZXR1cm4gXzB4NTcyMTExK18weDEzMzVhYzt9O18weDE4MmI0Nlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg4YScsJyloeEsnKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NzcnLCdecFZBJyk7XzB4MTgyYjQ2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDY4JywndF43ZicpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMDInLCdtRk51Jyk7XzB4MTgyYjQ2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDNiJywnZzFpcCcpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg1YicsJ2E2cTknKTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4OGInLCc0MTZjJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDEyOScsJ2cxaXAnKTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MjAnLCdkelliJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDM0JywnSyFLdicpO18weDE4MmI0Nlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgzYycsJ2hNU2EnKV09ZnVuY3Rpb24oXzB4Mzg5NjMxLF8weDM5ODgwZCl7cmV0dXJuIF8weDM4OTYzMStfMHgzOTg4MGQ7fTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTE2JywnKWh4SycpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhhMycsJzVVVVcnKTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NGYnLCcpZThKJyldPWZ1bmN0aW9uKF8weDIzNWYyMyxfMHg4YmNiMzYpe3JldHVybiBfMHgyMzVmMjMoXzB4OGJjYjM2KTt9O18weDE4MmI0Nlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg2OScsJ2dTSTUnKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YTgnLCdnU0k1Jyk7XzB4MTgyYjQ2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDE1JywnTW8xZycpXT1mdW5jdGlvbihfMHg1N2YyOWMsXzB4NDhhZTY3KXtyZXR1cm4gXzB4NTdmMjljIT09XzB4NDhhZTY3O307XzB4MTgyYjQ2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGUnLCdGdDdDJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGVjJywnb2hXbCcpO18weDE4MmI0Nlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhiZicsJ0VJQHcnKV09ZnVuY3Rpb24oXzB4MmZjMzcwLF8weDNjMDNkMSl7cmV0dXJuIF8weDJmYzM3MCE9PV8weDNjMDNkMTt9O18weDE4MmI0Nlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMjQnLCcmMVteJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDZhJywnb2hXbCcpO18weDE4MmI0Nlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxJywndSZyWycpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhjNCcsJzQxNmMnKTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NGQnLCdkelliJyldPWZ1bmN0aW9uKF8weDI0MDFlOSxfMHg0NjAxNDkpe3JldHVybiBfMHgyNDAxZTkoXzB4NDYwMTQ5KTt9O3ZhciBfMHg2ZDA4Yzg9XzB4MTgyYjQ2O2Z1bmN0aW9uIF8weDFkZjU0NihfMHgyYmRlYjUpe2lmKF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhkJywnWldXTicpXShfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NTknLCcpZThKJyldLF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMWQnLCdoKXljJyldKSl7dmFyIF8weDViM2ZiNz10ZXN0W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGZmJywnXnBWQScpXShfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4OWInLCd0XjdmJyldKSgpW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDEyMCcsJ1N2cDknKV0oXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGRiJywnbm55bCcpXSk7cmV0dXJuIV8weDViM2ZiN1t2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhhMScsJyllOEonKV0oXzB4M2I3NzY4KTt9ZWxzZXtpZihfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YScsJ1YmUnonKV0odHlwZW9mIF8weDJiZGViNSxfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZDQnLCdkelliJyldKSl7cmV0dXJuIGZ1bmN0aW9uKF8weDE5YjI0Zil7fVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhkMicsJ1YmUnonKV0oXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDInLCdhQGh6JyldKVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhjZicsJ2gpeWMnKV0oXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDQ5JywndF43ZicpXSk7fWVsc2V7aWYoXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDI3JywnaFNLRicpXShfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZDMnLCdhQGh6JyldKCcnLF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMDcnLCd1JnJbJyldKF8weDJiZGViNSxfMHgyYmRlYjUpKVtfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YjInLCdnYXBMJyldXSwweDEpfHxfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YzMnLCdnU0k1JyldKF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMTInLCdnMWlwJyldKF8weDJiZGViNSwweDE0KSwweDApKXsoZnVuY3Rpb24oKXtyZXR1cm4hIVtdO31bdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZDgnLCdLIUt2JyldKF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMDQnLCdhJXVbJyldKF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgyNScsJ0tbeUonKV0sXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDZjJywnTWRwZycpXSkpW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDlkJywnayZRdicpXShfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZTMnLCdNZHBnJyldKSk7fWVsc2V7aWYoXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDEwNicsJ2dhcEwnKV0oXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDEyMScsJ3liXmgnKV0sXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDZmJywnYUNJaicpXSkpe18weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg5NicsJ3VkQ3QnKV0oXzB4Y2JkZGYxKTt9ZWxzZXsoZnVuY3Rpb24oKXtyZXR1cm4hW107fVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhkNycsJ3liXmgnKV0oXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDYxJywnaFNLRicpXShfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YTcnLCdubnlsJyldLF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhiYycsJ29oV2wnKV0pKVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhhZCcsJ01vMWcnKV0oXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDEwJywnaCl5YycpXSkpO319fV8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhjZCcsJ2smUXYnKV0oXzB4MWRmNTQ2LCsrXzB4MmJkZWI1KTt9fXRyeXtpZihfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4OTInLCcpZThKJyldKF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg2OScsJ2dTSTUnKV0sXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDVmJywnZ2FwTCcpXSkpe2lmKF8weDI1MTk2Yil7cmV0dXJuIF8weDFkZjU0Njt9ZWxzZXtfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ODInLCdYKkhDJyldKF8weDFkZjU0NiwweDApO319ZWxzZXtpZihfMHgyNTE5NmIpe2lmKF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg1NCcsJ2NGKEUnKV0oXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDExYScsJ1MxdjcnKV0sXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGVkJywnNDE2YycpXSkpe18weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg3JywnWldXTicpXShfMHgxZGY1NDYsMHgwKTt9ZWxzZXtyZXR1cm4gXzB4MWRmNTQ2O319ZWxzZXtpZihfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YWUnLCcpaHhLJyldKF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg0OCcsJ0shS3YnKV0sXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDExZScsJ3U4RWcnKV0pKXtfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NjInLCdUJXZYJyldKF8weDFkZjU0NiwweDApO31lbHNle3JldHVybiEhW107fX19fWNhdGNoKF8weDIxYzhhYSl7fX0KICAgICAgICAKICAgICAgICAvLyDmuIXnkIbnl5Xov7kKICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICBjb25zb2xlLmRlYnVnKCIgc3RlYWx0aCBjbGVhbnVwIik7CiAgICAgICAgfSwgMTAwMCk7CiAgICAgICAgCiAgICB9CiAgICAKICAgIGZ1bmN0aW9uIGV4ZWN1dGVEZWZlbnNpdmUoKSB7CiAgICAgICAgLy8g6Ziy5b6h5qih5byPIC0g6ZmQ5Yi25Yqf6IO977yM5re75Yqg5L+d5oqkCiAgICAgICAgY29uc29sZS53YXJuKCLpmLLlvqHmqKHlvI/miafooYwiKTsKICAgICAgICB0cnkgewogICAgICAgICAgICAKICAgICAgICAvLyDnjq/looPpqozor4EKICAgICAgICBpZiAoIXZhbGlkYXRlRXhlY3V0aW9uRW52aXJvbm1lbnQoKSkgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkVudmlyb25tZW50IHZhbGlkYXRpb24gZmFpbGVkIik7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIOaJp+ihjOaXtumXtOebkeaOpwogICAgICAgIHZhciBleGVjdXRpb25TdGFydCA9IERhdGUubm93KCk7CiAgICAgICAgdmFyIHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRXhlY3V0aW9uIHRpbWVvdXQgLSBwb3NzaWJsZSBkZWJ1Z2dpbmciKTsKICAgICAgICB9LCA1MDAwKTsKICAgICAgICAKICAgICAgICB0cnkgewogICAgICAgICAgICB2YXIgdmFyX0NuZGtrX2NvbV9WN18weDUzZDc9Wyd3b0xDdmNPRnc0SVMnLCd3NTBIRVJyRGpRPT0nLCdLTUt4TlZVMScsJ2FjT2RkY09iYmc9PScsJ3c2MGV3NUhDbk1LVFJNS0Z3bzNEbXNLN3c0dkNqQkUrdzRCZHdxekNxOE9QQlRFPScsJ3c1ckNuUVZoJywndzZjdHc3SER1OEsvWThLVicsJ0ZrRERybi9Ebmc9PScsJ3dxUERqTUtWd3BYRG93PT0nLCd3cXZEazBrM0NjTzV3cUE9JywnSmtmQ2o4S2J3b1k9JywndzVmQ3NzS0t3NmhBJywnd3BRT0xjT01MZz09Jywnd28vQ29USENrM0lmdzVQQ25GWERrOEtlJywnd29YRHA4T1Vlc09XJywnd3JmRHFzSzB3cmJEamc9PScsJ3c2Rmt3cnZDb2dZPScsJ3dxdkRrc0tWd296RHJnPT0nLCdOOEtJTVh3NWZjT1lOTUtEd29uRG1FM0NuMW5Dck1PTycsJ3c3d0pEQkxEckE9PScsJ3dwNE93b0REc3NLYScsJ3dyUENwY09mT2xjPScsJ3dwVENqY09hdzcwQicsJ1ZjT2NaTU8xY3c9PScsJ3c3ekNqTUtSYk1LSCcsJ1M4S213NTNDcmNLcicsJ004S2FOOE80d3FrPScsJ3dvUENwOE93S1hnPScsJ3c1WWR3cnc4dzdVPScsJ0pjT1ZQbHpEc01PUXdvSUdmUmhCdzRYQ3BsbkNvTUtHSURKc05SOD0nLCd3cWpDdWlyQ2hrVT0nLCd3NmQ1d3FmQ3ZodkRpekk9JywndzRsQ1djT3d3NjA9Jywnd3BERGtNS1h3N05xdzRFMCcsJ3dvYkNqMXRwSXNLSndwaERTVElJdzRqQ2ljT3JRaEFHTTNRPScsJ3c1OGt3bzBFd29NPScsJ3c3TjZLWGdRJywnSUZ6RG1rWERzQT09JywnRW1iRHBzTzB3NFk9Jywnd3FBalVFazQnLCd3cDdDbUR6Q2cxQT0nLCd3cUhDamNPU3c0OEMnLCd3N0lTdzVuRG1jSzN3ck09JywnVjhPanc0a1ZPOE9Yd3BJPScsJ3dxb3Z3clREZ2c9PScsJ3c2Z1l3cFVSdzY4PScsJ1o4TzN3N1hEck1LNicsJ3dwWENqMTUyd3BZPScsJ3dvb1d3ckREbDhLSCcsJ3c3N0NwOE9qYjBzPScsJ1JzT3FNakY1dzQzRGlzS3R3NnR5Q01Penc1Umx3cExDaXNLcnc0WERwV0pSUzJVR1pzT3NXa0xDc2luQ3Y4S0l3NVBDclE9PScsJ3c0NE5MZ3ZEc1E9PScsJ3dvckNxM2RPd284PScsJ3dvUWp3cDNEazhLWScsJ3c0L0Nyc090UkdnPScsJ3c2REN0Y0tZVGNLTycsJ0JzT2FEa3pEdHc9PScsJ3dxL0RzV1FqTHc9PScsJ3dwdkRpY0tKdzdKZicsJ3dvdkRyc0tZdzR0YycsJ1JzS3l3NVRDbk1LUycsJ3dxOSt3cVVJZnc9PScsJ0k4S2xRTU9tS1E9PScsJ3dxRU53N1REdXowPScsJ3dyRERxc0tHd3ByRGpBPT0nLCd3ck1Bd3FiRHJ3PT0nLCdCbS9EdGNPeicsJ3c0a1l3NjNEaE1LcCcsJ0syL0NuTUswd280PScsJ3dvckR0TUtqd3JqRGlnPT0nLCd3NWZDbGc1ZycsJ3c2MFJ3cTFVd3JrPScsJ3dyNER3NnZEcFRJPScsJ3dxckRrTUt2d29QRGd3PT0nLCd3cTRMd3BvU1lBPT0nLCd3cVI0d3B3YlNBPT0nLCd3cVVTTjhPYkZ3PT0nLCd3NXBxdzRURGxzT3dVc09id3BJQndxbDR3cExEa0RvYnc2Z1Z3NTdEbk1Lc3c3M0NnQ1REcGc9PScsJ2JjS3RQbGtzJywndzdQQ2pjS2pWTUtnJywnd29MRGhjT3JUTU9CJywnd3BvK3dyTERrTUtNJywnd3IxRHdxSTBhUT09JywnTjhPbGNNT3VXc09Yd29kSXdvc3pkc0ttZVF2Q21NS2lUaHJEbHNPWXdyUkR3cDV0Jywnd290ZXc2TkdDUT09JywndzQ0cHdxdGV3cDA9JywndzVndXc0UEN1OEtvJywndzR3R3dvazh3NkU9Jywnd3FnSXc0M0RuUm5DcnNPZycsJ0tjS3BFM2tyJywnY2NLb3c2ZkN1c0tZJywnd3BRUkJzT2JCdz09Jywnd3BERGtNS1V3N0JzdzRFMCcsJ3dyRENrM0lkUkE9PScsJ1BzSy9GblUxJywndzVWMlVNT2Z3NlhEaENqQ3RNS2QnLCd3cklud3JiRGtzS3AnLCd3b1RDb2hYQ21sOD0nLCd3NTl1d3JuRGp6UT0nLCd3cC9DZ2xBUVJBPT0nLCd3cWdwRjhPM0FBPT0nLCd3NUprVk1PZnc2UT0nLCd3cmc4RWNPWElRPT0nLCd3cC9Ea01LZScsJ3c2aGJ3bzNDaGdBPScsJ1c4T3ZUOE9FVXc9PScsJ3c2dkNwc0szU2NLeicsJ3c3ZFV3b2ZDZ2hBPScsJ0VuWER1bGc9Jywnd3I3RHBjS0x3NHg4JywndzY4cU16N0RqTUtSd29iQ3RjS2R3NlpnWjhLK3c3dkRqa3c9JywnUXNLaHc2ekN1OEtWJywnd3BqQ3F5ekNsQT09JywnRXhZbFBjS2gnLCd3NjBvd3J0d3dyUENqc0tWd3JGcXc1RERudz09Jywnd3FJK3dva0JiZz09Jywnd3BEQ3E4T2lLR0E9Jywnd3FuQ2dzT0h3NHNTJywnd3JyRHFNS3B3cC9EdkE9PScsJ0xzTzFIa3JEdGc9PScsJ3dyZ1R3NUhEaHhqQ3BRPT0nLCd3cWtEU2NPN0RjS1djOEt6dzRGV3c2OEJ3cGN4TlU3Q3Z6akN1WHJEcnNPMXdyRXNjOE85SFQzRHNYWjFPUT09Jywnd3I3Q2lqWENwRUk9JywnSDhPRklrYkRvUT09Jywnd3FQQ3ZzT2FJR3M9JywnQk1LRkZIb3UnLCd3NmpDc1ZERGdDTT0nLCd3NEl4RFFqRGxRPT0nLCd3cWJEazhLYXc1RjMnLCdROE9adzdmRHJjS3InLCd3NWJDdFR0U2RnPT0nLCd3N1ZMd3AvRGlnNGp3cUk9JywndzREQ3JNT29jM0U9Jywnd3JZVUVNT3hKdz09JywnZThPOGNNT2hUdz09JywndzZyQ2c4S1JRc0tOJywnd296Q3VNT3F3NWt5Jywnd3FIQ29jT0VQMzB0dzcwPScsJ1VjSzF3NW5DcXNLREpzTzR3NkREbVQxWndwbkNvTUtOd28vQ2pjS0tCQjhRSVE9PScsJ3dyRERyVVlQUHc9PScsJ3c0N0Nnc09ZTTJRPScsJ3c1c0p3N0RDcThLMicsJ3dvbEx3cGs5Y3c9PScsJ01HZkRuY080dzRJPScsJ3dvSERsY0tJdzZoVycsJ3dvN0RrMFlIQXc9PScsJ01NT0pMV3ZEc3c9PScsJ2JzSzJ3NjdDaHNLZycsJ0ZNS0lNOE8xd3FzPScsJ3dvWTNLc092RXc9PScsJ3dxWEN2UlBDaGtjPScsJ2ZNT0V3NklrQWc9PScsJ1lzT3NKUVhDaWc9PScsJ3dybkRqc09GUnc9PScsJ3c0M0NzY09iT2s0PScsJ3dyZkRuY0t2d3JYRHF3PT0nLCdOV0REbzFMRHRnPT0nLCd3NG8yd3E0cHc0VT0nLCdFSDdEdDhPeHc1RT0nLCd3NEpCWU1PSnc3Yz0nLCd3NDlqd3FqRGpEUT0nLCd3N3AvRUY0dloxbkRwOE9adzZuRGlRPT0nLCd3NlRDaW1iRGh3Yz0nLCd3NUFrd3JNM3c0bz0nLCd3cWZEajhLSndyUER2Zz09Jywnd28zQ2lNT293N01PJywnZUVOaVFESENuTU9Nd3ExcmZBZz0nLCdic09RVXNPSGRzS0lFUjhkdzdScScsJ3c2czR3N1hEdU1LUicsJ0VRZ05Hc0tLJywnd3JmRG1NS3R3ckxEbmc9PScsJ3dxd3dRazRGJywnd3FSMnc3cDZMZz09JywnSmNPWEltM0RtQT09JywnQXNLa2NjT2lEUT09JywndzVVNnc0bkRrY0s4Jywnd28vQ3E4TzV3NVE9JywndzdZRndxa3p3NVE9Jywnd3FyRHM4S1N3NmRpJywndzZEQ2pzT3hKV289JywnSmNLL2FjT1JDUT09Jywnd3JIRGtNT1RSTU9LJywndzV4SllzTzl3NE09JywndzVWdXdwL0NsQmc9JywnTk1LT00xVXAnLCd3cWM0d3JzMVNRPT0nLCd3N0Jrd3FqQ3JoRT0nLCd3b2JEcG4wVEVBPT0nLCdTTUt4dzQ3Q3VjS1MnLCdBOEtQWGNPL09RPT0nLCd3NjAxd29rMXdxWT0nLCd3cTBvVkZNPScsJ3c3SXp3cjA9Jywnd28wOXdvY0JTdz09Jywnd3JEQ3I4T253NVk0TWNPdnc1NG53NlhEcENqRHFnPT0nLCdTY09BTmhUQ21RPT0nLCdOY09FYkRMRGxUdGdQVGdXSzE4OXdvdkRzdz09JywndzdBMnc0UERzY0tyJywnYjhLRUpIOHYnLCd3cVF2dzQvRHVqVT0nLCdCTUtSUEU0LycsJ3c3dkNpOEtYZGNLNHc0L0RwUT09Jywnd3BaMndvc2ZVZz09Jywnd29uQ3RqekNoWFladzQvQ2tFOD0nLCdRc09xTGhqQ3FBPT0nLCd3N3pDZ2NLYmM4S3cnLCd3NURDbkFKbVpjS0h3NTFjQkNGQycsJ1JNTzR3NFhEdk1LOXc2QlRkQ0Z3dzZ0a1BtVERwaG5Ea2NPSklRPT0nLCd3cU5jdzZ3cFRBPT0nLCd3Nk54d3F6Q3Z3PT0nLCd3cGZEbDhLUnc2cFYnLCd3NjAxS2pURHZRPT0nLCd3cExEanNLNHc2UmgnLCdVY09rdzViRGk4SysnLCd3cUhDZ01PdXc1d2InLCd3b1o0dzRrRGZRPT0nLCd3by9Db1RIQ2sya0J3NE09JywndzVza3dyWTR3cGs9Jywnd3BERHVNS1B3cjNEbmc9PScsJ3c1SENraHRZWnc9PScsJ3c3QW53NnpEdkE9PScsJ1JNT3BOVVI1d3JyRGljSzZ3N0VDTXNLQXdvNTV3cFREdWNPZnc0akNrMkkvUmdFYScsJ0pWM0RtMFBEaEE9PScsJzZMNnc1cG11NTYyNTVMbVM1THVwNXJ5WTU2U2E1WVdENWF5RicsJ3c2MEN3cWsydzQ4PScsJ0NrN0Nyc0tad3BjPScsJ3dxWVZ3cVhEdDhLSicsJ3c3dzJ3cjFod3FjPScsJ1pzT1hNejNDbFRVaUlua0Zidz09JywnRmNLL01tOHEnLCd3Ny9EdEZ6Q3ZtN0RwbnBlQU1La3c1UXdWY08xdzUwdXc2azlFQXZDbmNLWUlNS1NPMmxKdzZYQ2kxdkRqTUtpdzZmQ3NRPT0nLCd3cTU4d29FcmNnPT0nLCd3cXpDcnNPenc3STQnLCdjY0tnRFh3NicsJ3c1ckNrMnJEbnpZPScsJ3c1Wnp3cHZDaVRFPScsJ0EyVER0c08xdzdzPScsJ3c2ODZ3NHZEak1LSScsJ3dwNEdETU9DR2c9PScsJ3dwRjJ3NFlmY2NLOGNnPT0nLCdTVlJHVml3PScsJ1lzT0t3NWpEaHNLdCcsJ1o4T3VHQURDcXc9PScsJ0pNS2NCOE9Zd3JVPScsJ0pFbkRyTU90dzZNPScsJ3c0L0NtY09mUjFRPScsJ3c2Rk13cGpEbFFSdnc2OUpRTU9YWm5IRHVNS293NFU9JywnZDNoSllpZz0nLCdNSHJDaU1LS3dwRT0nLCd3Ny9DcXNPSVRWcz0nLCd3cS9DdTJKRndwST0nLCd3cFBDc3NPZnc3NFAnLCd3N2ZDaUduRG1pdz0nLCd3cXNmd3J6RHJNSysnLCd3cDUxdzQ1NktnPT0nLCdTc0srdzUzQ3FzS0YnLCd3NTdDcE1PbkZHTT0nLCd3b0F5UjFvYycsJ084TzlEbUxEdGc9PScsJ3c0b1pGUlhEa0E9PScsJ3c3NXBHVzhxJywnd3B2Q2pjT2x3N3NrJywndzR0endxSENyQms9Jywnd3FzRWUxWW4nLCd3bzNDbmxGNXdvRT0nLCdMOEsxRzhPMHdxRT0nLCdOVXpEcXNPdHc0OD0nLCd3NllYTVFuRHV3PT0nLCd3NjBzdzdiRHZBPT0nLCd3N3N1d3FocndxUT0nLCd3cG5DcnhYQ3JIYz0nLCd3cUhDbXNPcE8yTT0nLCd3cFRDcjhPbHc1MGpkUT09JywnR01LM0Yya1knLCd3NHczdzdmRHA4S3onLCd3ckxEbHNLanc2VnYnLCd3Nmszd3JraHdwYz0nLCd3NG83dzRqRGxzS1UnLCd3cWhXd3FFcycsJ1Q4Sy93NG89Jywnd3FZRHdwL0R2c0tHJywnRW1qQ2xzS0d3bzQ9JywndzQ4ZHdxNE13N009JywnQzI3Q2w4S0knLCd3bzBBd29QRG04S3EnLCd3cWtsd3FERGdNS1YnLCdZVnRDU3dBPScsJ3dxb3FLOE8rQkE9PScsJ1FjT3l3NWJEdjhLVicsJ3dxOEp3cC9Eb2NLcCcsJ1I4TzJ3NFREdjhLSycsJ3dyRVJFc08yRnNLZGNnPT0nLCd3clZvdzRkOEp3PT0nLCd3cEkwd3FQRHRzS2EnLCd3cDRNSmNPNUVRPT0nLCd3cExDdThPYkZsaz0nLCd3ckl3d3E3RGdjS0InLCdKZ0krSWNLbScsJ0hTUW1KZz09J107KGZ1bmN0aW9uKF8weDIzY2EzNixfMHg1M2Q3YjMpe3ZhciBfMHgxNWY3NTA9ZnVuY3Rpb24oXzB4NTBiOGE5KXt3aGlsZSgtLV8weDUwYjhhOSl7XzB4MjNjYTM2WydwdXNoJ10oXzB4MjNjYTM2WydzaGlmdCddKCkpO319O3ZhciBfMHgzZDc4ZjE9ZnVuY3Rpb24oKXt2YXIgXzB4NDljODk0PXsnZGF0YSc6eydrZXknOidjb29raWUnLCd2YWx1ZSc6J3RpbWVvdXQnfSwnc2V0Q29va2llJzpmdW5jdGlvbihfMHgzOTkxMDAsXzB4MjI5OTQzLF8weDNhY2NkMixfMHgzYjc3Njgpe18weDNiNzc2OD1fMHgzYjc3Njh8fHt9O3ZhciBfMHgzNTE4YWY9XzB4MjI5OTQzKyc9JytfMHgzYWNjZDI7dmFyIF8weDFhNmFhND0weDA7Zm9yKHZhciBfMHgzMmUxNTA9MHgwLF8weDViNWM3Zj1fMHgzOTkxMDBbJ2xlbmd0aCddO18weDMyZTE1MDxfMHg1YjVjN2Y7XzB4MzJlMTUwKyspe3ZhciBfMHg1ZDBhZTI9XzB4Mzk5MTAwW18weDMyZTE1MF07XzB4MzUxOGFmKz0nO1x4MjAnK18weDVkMGFlMjt2YXIgXzB4MjMxYzgwPV8weDM5OTEwMFtfMHg1ZDBhZTJdO18weDM5OTEwMFsncHVzaCddKF8weDIzMWM4MCk7XzB4NWI1YzdmPV8weDM5OTEwMFsnbGVuZ3RoJ107aWYoXzB4MjMxYzgwIT09ISFbXSl7XzB4MzUxOGFmKz0nPScrXzB4MjMxYzgwO319XzB4M2I3NzY4Wydjb29raWUnXT1fMHgzNTE4YWY7fSwncmVtb3ZlQ29va2llJzpmdW5jdGlvbigpe3JldHVybidkZXYnO30sJ2dldENvb2tpZSc6ZnVuY3Rpb24oXzB4MzJjZTAzLF8weDczOGMxZCl7XzB4MzJjZTAzPV8weDMyY2UwM3x8ZnVuY3Rpb24oXzB4NmQ3Y2Y2KXtyZXR1cm4gXzB4NmQ3Y2Y2O307dmFyIF8weDQ1OTkxMz1fMHgzMmNlMDMobmV3IFJlZ0V4cCgnKD86Xnw7XHgyMCknK18weDczOGMxZFsncmVwbGFjZSddKC8oWy4kPyp8e30oKVtdXC8rXl0pL2csJyQxJykrJz0oW147XSopJykpO3ZhciBfMHgyZjJmMTA9ZnVuY3Rpb24oXzB4MmM2YWE5LF8weDE0MTc5OSl7XzB4MmM2YWE5KCsrXzB4MTQxNzk5KTt9O18weDJmMmYxMChfMHgxNWY3NTAsXzB4NTNkN2IzKTtyZXR1cm4gXzB4NDU5OTEzP2RlY29kZVVSSUNvbXBvbmVudChfMHg0NTk5MTNbMHgxXSk6dW5kZWZpbmVkO319O3ZhciBfMHgxODk2YTg9ZnVuY3Rpb24oKXt2YXIgXzB4ZDRlMmJkPW5ldyBSZWdFeHAoJ1x4NWN3K1x4MjAqXHg1YyhceDVjKVx4MjAqe1x4NWN3K1x4MjAqW1x4Mjd8XHgyMl0uK1tceDI3fFx4MjJdOz9ceDIwKn0nKTtyZXR1cm4gXzB4ZDRlMmJkWyd0ZXN0J10oXzB4NDljODk0WydyZW1vdmVDb29raWUnXVsndG9TdHJpbmcnXSgpKTt9O18weDQ5Yzg5NFsndXBkYXRlQ29va2llJ109XzB4MTg5NmE4O3ZhciBfMHgyMjJjNTY9Jyc7dmFyIF8weGNiZGRmMT1fMHg0OWM4OTRbJ3VwZGF0ZUNvb2tpZSddKCk7aWYoIV8weGNiZGRmMSl7XzB4NDljODk0WydzZXRDb29raWUnXShbJyonXSwnY291bnRlcicsMHgxKTt9ZWxzZSBpZihfMHhjYmRkZjEpe18weDIyMmM1Nj1fMHg0OWM4OTRbJ2dldENvb2tpZSddKG51bGwsJ2NvdW50ZXInKTt9ZWxzZXtfMHg0OWM4OTRbJ3JlbW92ZUNvb2tpZSddKCk7fX07XzB4M2Q3OGYxKCk7fSh2YXJfQ25ka2tfY29tX1Y3XzB4NTNkNywweGZhKSk7dmFyIHZhcl9DbmRra19jb21fVjdfMHgxNWY3PWZ1bmN0aW9uKF8weDIzY2EzNixfMHg1M2Q3YjMpe18weDIzY2EzNj1fMHgyM2NhMzYtMHgwO3ZhciBfMHgxNWY3NTA9dmFyX0NuZGtrX2NvbV9WN18weDUzZDdbXzB4MjNjYTM2XTtpZih2YXJfQ25ka2tfY29tX1Y3XzB4MTVmN1snb1VjSHdwJ109PT11bmRlZmluZWQpeyhmdW5jdGlvbigpe3ZhciBfMHg0OWM4OTQ7dHJ5e3ZhciBfMHgyMjJjNTY9RnVuY3Rpb24oJ3JldHVyblx4MjAoZnVuY3Rpb24oKVx4MjAnKyd7fS5jb25zdHJ1Y3RvcihceDIycmV0dXJuXHgyMHRoaXNceDIyKShceDIwKScrJyk7Jyk7XzB4NDljODk0PV8weDIyMmM1NigpO31jYXRjaChfMHhjYmRkZjEpe18weDQ5Yzg5ND13aW5kb3c7fXZhciBfMHgxODk2YTg9J0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89JztfMHg0OWM4OTRbJ2F0b2InXXx8KF8weDQ5Yzg5NFsnYXRvYiddPWZ1bmN0aW9uKF8weDM5OTEwMCl7dmFyIF8weDIyOTk0Mz1TdHJpbmcoXzB4Mzk5MTAwKVsncmVwbGFjZSddKC89KyQvLCcnKTt2YXIgXzB4M2FjY2QyPScnO2Zvcih2YXIgXzB4M2I3NzY4PTB4MCxfMHgzNTE4YWYsXzB4MWE2YWE0LF8weDMyZTE1MD0weDA7XzB4MWE2YWE0PV8weDIyOTk0M1snY2hhckF0J10oXzB4MzJlMTUwKyspO35fMHgxYTZhYTQmJihfMHgzNTE4YWY9XzB4M2I3NzY4JTB4ND9fMHgzNTE4YWYqMHg0MCtfMHgxYTZhYTQ6XzB4MWE2YWE0LF8weDNiNzc2OCsrJTB4NCk/XzB4M2FjY2QyKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4MzUxOGFmPj4oLTB4MipfMHgzYjc3NjgmMHg2KSk6MHgwKXtfMHgxYTZhYTQ9XzB4MTg5NmE4WydpbmRleE9mJ10oXzB4MWE2YWE0KTt9cmV0dXJuIF8weDNhY2NkMjt9KTt9KCkpO3ZhciBfMHg1MGI4YTk9ZnVuY3Rpb24oXzB4NWI1YzdmLF8weDVkMGFlMil7dmFyIF8weDIzMWM4MD1bXSxfMHgzMmNlMDM9MHgwLF8weDczOGMxZCxfMHg0NTk5MTM9JycsXzB4MmYyZjEwPScnO18weDViNWM3Zj1hdG9iKF8weDViNWM3Zik7Zm9yKHZhciBfMHgyYzZhYTk9MHgwLF8weDE0MTc5OT1fMHg1YjVjN2ZbJ2xlbmd0aCddO18weDJjNmFhOTxfMHgxNDE3OTk7XzB4MmM2YWE5Kyspe18weDJmMmYxMCs9JyUnKygnMDAnK18weDViNWM3ZlsnY2hhckNvZGVBdCddKF8weDJjNmFhOSlbJ3RvU3RyaW5nJ10oMHgxMCkpWydzbGljZSddKC0weDIpO31fMHg1YjVjN2Y9ZGVjb2RlVVJJQ29tcG9uZW50KF8weDJmMmYxMCk7dmFyIF8weDZkN2NmNjtmb3IoXzB4NmQ3Y2Y2PTB4MDtfMHg2ZDdjZjY8MHgxMDA7XzB4NmQ3Y2Y2Kyspe18weDIzMWM4MFtfMHg2ZDdjZjZdPV8weDZkN2NmNjt9Zm9yKF8weDZkN2NmNj0weDA7XzB4NmQ3Y2Y2PDB4MTAwO18weDZkN2NmNisrKXtfMHgzMmNlMDM9KF8weDMyY2UwMytfMHgyMzFjODBbXzB4NmQ3Y2Y2XStfMHg1ZDBhZTJbJ2NoYXJDb2RlQXQnXShfMHg2ZDdjZjYlXzB4NWQwYWUyWydsZW5ndGgnXSkpJTB4MTAwO18weDczOGMxZD1fMHgyMzFjODBbXzB4NmQ3Y2Y2XTtfMHgyMzFjODBbXzB4NmQ3Y2Y2XT1fMHgyMzFjODBbXzB4MzJjZTAzXTtfMHgyMzFjODBbXzB4MzJjZTAzXT1fMHg3MzhjMWQ7fV8weDZkN2NmNj0weDA7XzB4MzJjZTAzPTB4MDtmb3IodmFyIF8weGQ0ZTJiZD0weDA7XzB4ZDRlMmJkPF8weDViNWM3ZlsnbGVuZ3RoJ107XzB4ZDRlMmJkKyspe18weDZkN2NmNj0oXzB4NmQ3Y2Y2KzB4MSklMHgxMDA7XzB4MzJjZTAzPShfMHgzMmNlMDMrXzB4MjMxYzgwW18weDZkN2NmNl0pJTB4MTAwO18weDczOGMxZD1fMHgyMzFjODBbXzB4NmQ3Y2Y2XTtfMHgyMzFjODBbXzB4NmQ3Y2Y2XT1fMHgyMzFjODBbXzB4MzJjZTAzXTtfMHgyMzFjODBbXzB4MzJjZTAzXT1fMHg3MzhjMWQ7XzB4NDU5OTEzKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKF8weDViNWM3ZlsnY2hhckNvZGVBdCddKF8weGQ0ZTJiZCleXzB4MjMxYzgwWyhfMHgyMzFjODBbXzB4NmQ3Y2Y2XStfMHgyMzFjODBbXzB4MzJjZTAzXSklMHgxMDBdKTt9cmV0dXJuIF8weDQ1OTkxMzt9O3Zhcl9DbmRra19jb21fVjdfMHgxNWY3WydBQVB1Q24nXT1fMHg1MGI4YTk7dmFyX0NuZGtrX2NvbV9WN18weDE1ZjdbJ0VXVERBciddPXt9O3Zhcl9DbmRra19jb21fVjdfMHgxNWY3WydvVWNId3AnXT0hIVtdO312YXIgXzB4M2Q3OGYxPXZhcl9DbmRra19jb21fVjdfMHgxNWY3WydFV1REQXInXVtfMHgyM2NhMzZdO2lmKF8weDNkNzhmMT09PXVuZGVmaW5lZCl7aWYodmFyX0NuZGtrX2NvbV9WN18weDE1ZjdbJ3p2dHBzdiddPT09dW5kZWZpbmVkKXt2YXIgXzB4NTk2Njc3PWZ1bmN0aW9uKF8weDE5OTI4Yil7dGhpc1sndWtKc3JjJ109XzB4MTk5MjhiO3RoaXNbJ1hNcnl0SiddPVsweDEsMHgwLDB4MF07dGhpc1snQlpuamFwJ109ZnVuY3Rpb24oKXtyZXR1cm4nbmV3U3RhdGUnO307dGhpc1snaUJqc1dhJ109J1x4NWN3K1x4MjAqXHg1YyhceDVjKVx4MjAqe1x4NWN3K1x4MjAqJzt0aGlzWyd6T21aU3gnXT0nW1x4Mjd8XHgyMl0uK1tceDI3fFx4MjJdOz9ceDIwKn0nO307XzB4NTk2Njc3Wydwcm90b3R5cGUnXVsnZ1lPVnNPJ109ZnVuY3Rpb24oKXt2YXIgXzB4MmUxOTQ2PW5ldyBSZWdFeHAodGhpc1snaUJqc1dhJ10rdGhpc1snek9tWlN4J10pO3ZhciBfMHg1NWE0OWE9XzB4MmUxOTQ2Wyd0ZXN0J10odGhpc1snQlpuamFwJ11bJ3RvU3RyaW5nJ10oKSk/LS10aGlzWydYTXJ5dEonXVsweDFdOi0tdGhpc1snWE1yeXRKJ11bMHgwXTtyZXR1cm4gdGhpc1sndHBIV2daJ10oXzB4NTVhNDlhKTt9O18weDU5NjY3N1sncHJvdG90eXBlJ11bJ3RwSFdnWiddPWZ1bmN0aW9uKF8weDFhMWFkYSl7aWYoIUJvb2xlYW4ofl8weDFhMWFkYSkpe3JldHVybiBfMHgxYTFhZGE7fXJldHVybiB0aGlzWydRTE90TUgnXSh0aGlzWyd1a0pzcmMnXSk7fTtfMHg1OTY2NzdbJ3Byb3RvdHlwZSddWydRTE90TUgnXT1mdW5jdGlvbihfMHg3YTM4ZDcpe2Zvcih2YXIgXzB4MWQwYWI4PTB4MCxfMHg1OGRjNzU9dGhpc1snWE1yeXRKJ11bJ2xlbmd0aCddO18weDFkMGFiODxfMHg1OGRjNzU7XzB4MWQwYWI4Kyspe3RoaXNbJ1hNcnl0SiddWydwdXNoJ10oTWF0aFsncm91bmQnXShNYXRoWydyYW5kb20nXSgpKSk7XzB4NThkYzc1PXRoaXNbJ1hNcnl0SiddWydsZW5ndGgnXTt9cmV0dXJuIF8weDdhMzhkNyh0aGlzWydYTXJ5dEonXVsweDBdKTt9O25ldyBfMHg1OTY2NzcodmFyX0NuZGtrX2NvbV9WN18weDE1ZjcpWydnWU9Wc08nXSgpO3Zhcl9DbmRra19jb21fVjdfMHgxNWY3Wyd6dnRwc3YnXT0hIVtdO31fMHgxNWY3NTA9dmFyX0NuZGtrX2NvbV9WN18weDE1ZjdbJ0FBUHVDbiddKF8weDE1Zjc1MCxfMHg1M2Q3YjMpO3Zhcl9DbmRra19jb21fVjdfMHgxNWY3WydFV1REQXInXVtfMHgyM2NhMzZdPV8weDE1Zjc1MDt9ZWxzZXtfMHgxNWY3NTA9XzB4M2Q3OGYxO31yZXR1cm4gXzB4MTVmNzUwO307dmFyIF8weDM1MThhZj1mdW5jdGlvbigpe3ZhciBfMHgzMDY0Y2E9e307XzB4MzA2NGNhW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGU4JywnbUZOdScpXT1mdW5jdGlvbihfMHgzZjBiMjIpe3JldHVybiBfMHgzZjBiMjIoKTt9O18weDMwNjRjYVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgyZScsJ1gqSEMnKV09ZnVuY3Rpb24oXzB4MjMxMWRhLF8weDRkN2ZlMSl7cmV0dXJuIF8weDIzMTFkYSE9PV8weDRkN2ZlMTt9O18weDMwNjRjYVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMWYnLCdLW3lKJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDlhJywnSyFLdicpO18weDMwNjRjYVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg5NScsJ0tbeUonKV09ZnVuY3Rpb24oXzB4MWEzNTI4LF8weDI5YWMyZSl7cmV0dXJuIF8weDFhMzUyOD09PV8weDI5YWMyZTt9O18weDMwNjRjYVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhhMCcsJzQxNmMnKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MCcsJ0Z0N0MnKTt2YXIgXzB4NWYyMzBmPV8weDMwNjRjYTt2YXIgXzB4MzY2YjZkPSEhW107cmV0dXJuIGZ1bmN0aW9uKF8weDM2NmE3OSxfMHg1NmZiZTcpe3ZhciBfMHgxY2M3Njk9e307XzB4MWNjNzY5W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDJjJywnS1t5SicpXT1mdW5jdGlvbihfMHgyZTQxZDUpe3JldHVybiBfMHg1ZjIzMGZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZTAnLCd1OEVnJyldKF8weDJlNDFkNSk7fTtfMHgxY2M3NjlbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTI4JywneWJeaCcpXT1mdW5jdGlvbihfMHg1NjBiY2MsXzB4MmY2MmY4KXtyZXR1cm4gXzB4NWYyMzBmW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDMnLCdoU0tGJyldKF8weDU2MGJjYyxfMHgyZjYyZjgpO307XzB4MWNjNzY5W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDRjJywnTW8xZycpXT1fMHg1ZjIzMGZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZjQnLCdkUE03JyldO18weDFjYzc2OVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg3NCcsJ3U4RWcnKV09ZnVuY3Rpb24oXzB4NWFhOTE1LF8weGYxNWMwMSl7cmV0dXJuIF8weDVmMjMwZlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhhMicsJ0FWZjQnKV0oXzB4NWFhOTE1LF8weGYxNWMwMSk7fTtfMHgxY2M3NjlbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4Y2UnLCdkelliJyldPV8weDVmMjMwZlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMDUnLCdNZHBnJyldO3ZhciBfMHg1NmM3MTc9XzB4MWNjNzY5O3ZhciBfMHgzYWQ3ZTM9XzB4MzY2YjZkP2Z1bmN0aW9uKCl7dmFyIF8weDU1MWIyZD17fTtfMHg1NTFiMmRbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTE5JywndSZyWycpXT1mdW5jdGlvbihfMHgyNGEyMTIpe3JldHVybiBfMHg1NmM3MTdbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZTUnLCdhQ0lqJyldKF8weDI0YTIxMik7fTt2YXIgXzB4MzYyNDhiPV8weDU1MWIyZDtpZihfMHg1NmM3MTdbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NjUnLCdGdDdDJyldKF8weDU2YzcxN1t2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhjMCcsJ2gpeWMnKV0sXzB4NTZjNzE3W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDE5JywnTWRwZycpXSkpe18weDM2MjQ4Ylt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg3NScsJ2cxaXAnKV0oXzB4Y2JkZGYxKTt9ZWxzZXtpZihfMHg1NmZiZTcpe2lmKF8weDU2YzcxN1t2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg5ZScsJ01kcGcnKV0oXzB4NTZjNzE3W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGVhJywnUW84QScpXSxfMHg1NmM3MTdbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MmYnLCdBVmY0JyldKSl7dmFyIF8weDNlYTdmND1fMHg1NmZiZTdbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YWQnLCdNbzFnJyldKF8weDM2NmE3OSxhcmd1bWVudHMpO18weDU2ZmJlNz1udWxsO3JldHVybiBfMHgzZWE3ZjQ7fWVsc2V7dmFyIF8weDFmYjgwNT1fMHg1NmZiZTdbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MzknLCdubnlsJyldKF8weDM2NmE3OSxhcmd1bWVudHMpO18weDU2ZmJlNz1udWxsO3JldHVybiBfMHgxZmI4MDU7fX19fTpmdW5jdGlvbigpe307XzB4MzY2YjZkPSFbXTtyZXR1cm4gXzB4M2FkN2UzO307fSgpO3ZhciBfMHgzYjc3Njg9XzB4MzUxOGFmKHRoaXMsZnVuY3Rpb24oKXt2YXIgXzB4NDgzYTk4PXt9O18weDQ4M2E5OFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg3OCcsJzVVVVcnKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MzUnLCcyanpUJyk7XzB4NDgzYTk4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDU2JywnayZRdicpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg4NCcsJ2FDSWonKTtfMHg0ODNhOThbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MjgnLCdnYXBMJyldPWZ1bmN0aW9uKF8weDI4Y2VkNyl7cmV0dXJuIF8weDI4Y2VkNygpO307dmFyIF8weDVkZWUzNj1fMHg0ODNhOTg7dmFyIF8weDUyNmEzOD1mdW5jdGlvbigpe3ZhciBfMHgzYWE1OTI9XzB4NTI2YTM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDNlJywnKWU4SicpXShfMHg1ZGVlMzZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NmUnLCdFSUB3JyldKSgpW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDVjJywncHdvTycpXShfMHg1ZGVlMzZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YTYnLCd1JnJbJyldKTtyZXR1cm4hXzB4M2FhNTkyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDEwZCcsJ3U4RWcnKV0oXzB4M2I3NzY4KTt9O3JldHVybiBfMHg1ZGVlMzZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NDYnLCdNbzFnJyldKF8weDUyNmEzOCk7fSk7XzB4M2I3NzY4KCk7c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXt2YXIgXzB4YTQwOTM2PXt9O18weGE0MDkzNlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhiMycsJ15wVkEnKV09ZnVuY3Rpb24oXzB4NDk1YmU5KXtyZXR1cm4gXzB4NDk1YmU5KCk7fTt2YXIgXzB4NTMzOWQyPV8weGE0MDkzNjtfMHg1MzM5ZDJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZjInLCdRbzhBJyldKF8weGNiZGRmMSk7fSwweGZhMCk7dmFyIF8weDM5OTEwMD1mdW5jdGlvbigpe3ZhciBfMHg2YWMwYWE9e307XzB4NmFjMGFhW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGM1JywnJjFbXicpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg5ZicsJ2EldVsnKTtfMHg2YWMwYWFbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YTUnLCdNbzFnJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDExNycsJ2FAaHonKTtfMHg2YWMwYWFbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YWYnLCdhQGh6JyldPWZ1bmN0aW9uKF8weDJjNDZkNCxfMHgyZjk4NTApe3JldHVybiBfMHgyYzQ2ZDQoXzB4MmY5ODUwKTt9O18weDZhYzBhYVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMGMnLCdecFZBJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDM2JywnXnBWQScpO18weDZhYzBhYVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgzOCcsJ2smUXYnKV09ZnVuY3Rpb24oXzB4M2IwYzllLF8weDI1Y2QwNCl7cmV0dXJuIF8weDNiMGM5ZStfMHgyNWNkMDQ7fTtfMHg2YWMwYWFbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZjYnLCdhNnE5JyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDU3JywnaCl5YycpO18weDZhYzBhYVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhjMicsJ29oV2wnKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NDInLCdubnlsJyk7XzB4NmFjMGFhW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGVmJywnY0YoRScpXT1mdW5jdGlvbihfMHgyZTY3NmMpe3JldHVybiBfMHgyZTY3NmMoKTt9O18weDZhYzBhYVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg2NCcsJ2EldVsnKV09ZnVuY3Rpb24oXzB4MjM2ZmI5LF8weDNiMWE5YSl7cmV0dXJuIF8weDIzNmZiOT09PV8weDNiMWE5YTt9O18weDZhYzBhYVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhkNicsJ3UmclsnKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YmUnLCcyanpUJyk7dmFyIF8weDVkZDkxZj1fMHg2YWMwYWE7dmFyIF8weDNjNDJiNT0hIVtdO3JldHVybiBmdW5jdGlvbihfMHgzMDEzZGUsXzB4NWE5NTM3KXt2YXIgXzB4MmYzYzIyPXt9O18weDJmM2MyMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhmOCcsJ3EmXV4nKV09XzB4NWRkOTFmW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDExMScsJ2R6WWInKV07XzB4MmYzYzIyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDEyYScsJ1QldlgnKV09XzB4NWRkOTFmW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDgxJywnQjdHdicpXTtfMHgyZjNjMjJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MWEnLCdjRihFJyldPWZ1bmN0aW9uKF8weDVlYzJiZixfMHgxZWJlNmEpe3JldHVybiBfMHg1ZGQ5MWZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YjAnLCdhJXVbJyldKF8weDVlYzJiZixfMHgxZWJlNmEpO307XzB4MmYzYzIyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGI1JywnVCV2WCcpXT1fMHg1ZGQ5MWZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NjcnLCdUJXZYJyldO18weDJmM2MyMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhiOCcsJ3ReN2YnKV09ZnVuY3Rpb24oXzB4MmE5OTYzLF8weDI3ZWExNil7cmV0dXJuIF8weDVkZDkxZlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhjOScsJ2RQTTcnKV0oXzB4MmE5OTYzLF8weDI3ZWExNik7fTtfMHgyZjNjMjJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZDUnLCdubnlsJyldPV8weDVkZDkxZlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhiJywndSZyWycpXTtfMHgyZjNjMjJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NDAnLCdubnlsJyldPWZ1bmN0aW9uKF8weDFmMDU5NSxfMHgzOTM1YzMpe3JldHVybiBfMHg1ZGQ5MWZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTBhJywnY0YoRScpXShfMHgxZjA1OTUsXzB4MzkzNWMzKTt9O18weDJmM2MyMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxNycsJyloeEsnKV09XzB4NWRkOTFmW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDhjJywnS1t5SicpXTtfMHgyZjNjMjJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZjknLCcpaHhLJyldPWZ1bmN0aW9uKF8weGY5MzZhNCxfMHgzYzdiYjEpe3JldHVybiBfMHg1ZGQ5MWZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZTQnLCduNWhoJyldKF8weGY5MzZhNCxfMHgzYzdiYjEpO307XzB4MmYzYzIyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDE0JywnKWU4SicpXT1mdW5jdGlvbihfMHgxYjNkZjApe3JldHVybiBfMHg1ZGQ5MWZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTAxJywnU3ZwOScpXShfMHgxYjNkZjApO307dmFyIF8weDQ1YjgzNz1fMHgyZjNjMjI7aWYoXzB4NWRkOTFmW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGZkJywnZFBNNycpXShfMHg1ZGQ5MWZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4OTEnLCdoU0tGJyldLF8weDVkZDkxZlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg5MScsJ2hTS0YnKV0pKXt2YXIgXzB4NTc5MTY3PV8weDNjNDJiNT9mdW5jdGlvbigpe2lmKF8weDVhOTUzNyl7dmFyIF8weDQwNGEwMT1fMHg1YTk1MzdbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZTYnLCdCN0d2JyldKF8weDMwMTNkZSxhcmd1bWVudHMpO18weDVhOTUzNz1udWxsO3JldHVybiBfMHg0MDRhMDE7fX06ZnVuY3Rpb24oKXt9O18weDNjNDJiNT0hW107cmV0dXJuIF8weDU3OTE2Nzt9ZWxzZXt2YXIgXzB4MzU0NDBiPW5ldyBSZWdFeHAoXzB4NDViODM3W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDExJywnYSV1WycpXSk7dmFyIF8weDFkYTcyZT1uZXcgUmVnRXhwKF8weDQ1YjgzN1t2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMWMnLCdtRk51JyldLCdpJyk7dmFyIF8weDQzYzRkZj1fMHg0NWI4MzdbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4M2YnLCdCN0d2JyldKF8weGNiZGRmMSxfMHg0NWI4MzdbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MWYnLCdnMWlwJyldKTtpZighXzB4MzU0NDBiW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDcyJywnaFNLRicpXShfMHg0NWI4MzdbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZGUnLCdnU0k1JyldKF8weDQzYzRkZixfMHg0NWI4MzdbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZTknLCcpaHhLJyldKSl8fCFfMHgxZGE3MmVbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NWQnLCdYKkhDJyldKF8weDQ1YjgzN1t2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg0NCcsJ2EldVsnKV0oXzB4NDNjNGRmLF8weDQ1YjgzN1t2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg5MycsJ21AKlYnKV0pKSl7XzB4NDViODM3W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGIxJywnTWRwZycpXShfMHg0M2M0ZGYsJzAnKTt9ZWxzZXtfMHg0NWI4MzdbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4Y2MnLCdubnlsJyldKF8weGNiZGRmMSk7fX19O30oKTsoZnVuY3Rpb24oKXt2YXIgXzB4NDZjZjMyPXt9O18weDQ2Y2YzMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMTgnLCdFSUB3JyldPWZ1bmN0aW9uKF8weDIzYTA5NCxfMHg1NzBmOWIpe3JldHVybiBfMHgyM2EwOTQ9PT1fMHg1NzBmOWI7fTtfMHg0NmNmMzJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZWUnLCdhQ0lqJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDdjJywnRUlAdycpO18weDQ2Y2YzMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhiZCcsJ241aGgnKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTI1JywnaCl5YycpO18weDQ2Y2YzMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg3NicsJ25ueWwnKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NDMnLCcpaHhLJyk7XzB4NDZjZjMyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDEyMycsJ2RQTTcnKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NjMnLCdTMXY3Jyk7XzB4NDZjZjMyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGQ5JywnYTZxOScpXT1mdW5jdGlvbihfMHg0MjZkZTUsXzB4MjdhYjhjKXtyZXR1cm4gXzB4NDI2ZGU1KF8weDI3YWI4Yyk7fTtfMHg0NmNmMzJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NzAnLCdxJl1eJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDEyJywndThFZycpO18weDQ2Y2YzMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgyNicsJ2dhcEwnKV09ZnVuY3Rpb24oXzB4NDZkZDIwLF8weDI4YzA3Yil7cmV0dXJuIF8weDQ2ZGQyMCtfMHgyOGMwN2I7fTtfMHg0NmNmMzJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4OTknLCdtRk51JyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDQnLCdSTzFTJyk7XzB4NDZjZjMyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGM3JywnKWU4SicpXT1mdW5jdGlvbihfMHg1MjI3ZTgsXzB4MzMwOGQ2KXtyZXR1cm4gXzB4NTIyN2U4K18weDMzMDhkNjt9O18weDQ2Y2YzMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg4MCcsJ3ReN2YnKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NScsJzQxNmMnKTtfMHg0NmNmMzJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZDEnLCdtQCpWJyldPWZ1bmN0aW9uKF8weDQ5OTFjNil7cmV0dXJuIF8weDQ5OTFjNigpO307XzB4NDZjZjMyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGE0JywnUW84QScpXT1mdW5jdGlvbihfMHgxNWU1OTEsXzB4MWNjMjVmLF8weDNjZjliNSl7cmV0dXJuIF8weDE1ZTU5MShfMHgxY2MyNWYsXzB4M2NmOWI1KTt9O3ZhciBfMHgxMjA2Nzk9XzB4NDZjZjMyO18weDEyMDY3OVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhmYicsJ0VJQHcnKV0oXzB4Mzk5MTAwLHRoaXMsZnVuY3Rpb24oKXtpZihfMHgxMjA2NzlbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZDAnLCd1ZEN0JyldKF8weDEyMDY3OVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg5NycsJ0tbeUonKV0sXzB4MTIwNjc5W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDZkJywnNDE2YycpXSkpe3ZhciBfMHg1ZDk4MjQ9Zmlyc3RDYWxsP2Z1bmN0aW9uKCl7aWYoZm4pe3ZhciBfMHg1NmY4MjI9Zm5bdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4Y2YnLCdoKXljJyldKGNvbnRleHQsYXJndW1lbnRzKTtmbj1udWxsO3JldHVybiBfMHg1NmY4MjI7fX06ZnVuY3Rpb24oKXt9O2ZpcnN0Q2FsbD0hW107cmV0dXJuIF8weDVkOTgyNDt9ZWxzZXt2YXIgXzB4MTIzNjZiPW5ldyBSZWdFeHAoXzB4MTIwNjc5W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGM4JywncHdvTycpXSk7dmFyIF8weGQ3YTAzZj1uZXcgUmVnRXhwKF8weDEyMDY3OVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMjYnLCdUJXZYJyldLCdpJyk7dmFyIF8weDI5MWYyMD1fMHgxMjA2NzlbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZGEnLCdBVmY0JyldKF8weGNiZGRmMSxfMHgxMjA2NzlbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NTUnLCdWJlJ6JyldKTtpZighXzB4MTIzNjZiW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDMwJywnQVZmNCcpXShfMHgxMjA2NzlbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MjMnLCdYKkhDJyldKF8weDI5MWYyMCxfMHgxMjA2NzlbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4OCcsJ2dTSTUnKV0pKXx8IV8weGQ3YTAzZlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgyMScsJ2cxaXAnKV0oXzB4MTIwNjc5W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDg4JywnZHpZYicpXShfMHgyOTFmMjAsXzB4MTIwNjc5W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGRmJywnYUNJaicpXSkpKXtfMHgxMjA2NzlbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MWUnLCdYKkhDJyldKF8weDI5MWYyMCwnMCcpO31lbHNle18weDEyMDY3OVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg1YScsJ3UmclsnKV0oXzB4Y2JkZGYxKTt9fX0pKCk7fSgpKTt2YXIgXzB4NDljODk0PWZ1bmN0aW9uKCl7dmFyIF8weDU5ODBlZD17fTtfMHg1OTgwZWRbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YycsJ21GTnUnKV09ZnVuY3Rpb24oXzB4ZDE2OWI3LF8weDFiZDBhMyl7cmV0dXJuIF8weGQxNjliNz09PV8weDFiZDBhMzt9O18weDU5ODBlZFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhkYycsJ1pXV04nKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4OGUnLCcpKlZmJyk7dmFyIF8weDU5ODQzZj1fMHg1OTgwZWQ7dmFyIF8weDIzNDUwYj0hIVtdO3JldHVybiBmdW5jdGlvbihfMHhmMGQ0NzIsXzB4MTgzMWJkKXt2YXIgXzB4ZWFjOTJjPV8weDIzNDUwYj9mdW5jdGlvbigpe2lmKF8weDU5ODQzZlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg0YicsJyYxW14nKV0oXzB4NTk4NDNmW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDRhJywnNDE2YycpXSxfMHg1OTg0M2ZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NmInLCdNZHBnJyldKSl7aWYoXzB4MTgzMWJkKXt2YXIgXzB4NDhiYWZiPV8weDE4MzFiZFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg4MycsJ0VJQHcnKV0oXzB4ZjBkNDcyLGFyZ3VtZW50cyk7XzB4MTgzMWJkPW51bGw7cmV0dXJuIF8weDQ4YmFmYjt9fWVsc2V7dmFyIF8weDRhMjkyMz1fMHgxODMxYmRbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTEzJywnaFNLRicpXShfMHhmMGQ0NzIsYXJndW1lbnRzKTtfMHgxODMxYmQ9bnVsbDtyZXR1cm4gXzB4NGEyOTIzO319OmZ1bmN0aW9uKCl7fTtfMHgyMzQ1MGI9IVtdO3JldHVybiBfMHhlYWM5MmM7fTt9KCk7dmFyIF8weDUwYjhhOT1fMHg0OWM4OTQodGhpcyxmdW5jdGlvbigpe3ZhciBfMHg1NzI0ZmU9e307XzB4NTcyNGZlW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGM2JywnS1t5SicpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg0ZScsJ2dTSTUnKTtfMHg1NzI0ZmVbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MjInLCdYKkhDJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDEwZScsJ1MxdjcnKTtfMHg1NzI0ZmVbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YWMnLCdnU0k1JyldPWZ1bmN0aW9uKF8weDQ0ODM3NCl7cmV0dXJuIF8weDQ0ODM3NCgpO307XzB4NTcyNGZlW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDdiJywnUW84QScpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg1MycsJ15wVkEnKTtfMHg1NzI0ZmVbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZGQnLCdSTzFTJyldPWZ1bmN0aW9uKF8weDQyYjI1NixfMHg0NWFhZGEpe3JldHVybiBfMHg0MmIyNTYoXzB4NDVhYWRhKTt9O18weDU3MjRmZVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMWInLCdhQGh6JyldPWZ1bmN0aW9uKF8weDM0MjUzMCxfMHg0ZWQ3YzYpe3JldHVybiBfMHgzNDI1MzArXzB4NGVkN2M2O307XzB4NTcyNGZlW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDI0JywneWJeaCcpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMDAnLCdnYXBMJyk7XzB4NTcyNGZlW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDg2JywnNVVVVycpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhhYScsJ0tbeUonKTtfMHg1NzI0ZmVbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTBiJywnbm55bCcpXT1mdW5jdGlvbihfMHhjZmIxMmMsXzB4NTIzNTQwKXtyZXR1cm4gXzB4Y2ZiMTJjPT09XzB4NTIzNTQwO307XzB4NTcyNGZlW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDY2JywnaFNLRicpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgzMicsJ2EldVsnKTtfMHg1NzI0ZmVbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZTcnLCd1ZEN0JyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGY1JywnZFBNNycpO3ZhciBfMHg0ZGMzOGI9XzB4NTcyNGZlO3ZhciBfMHgzZTQ0NWM9ZnVuY3Rpb24oKXt9O3ZhciBfMHgzYmQ2MDI7dHJ5e3ZhciBfMHgyY2NjY2Q9XzB4NGRjMzhiW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDQ1JywnaFNLRicpXShGdW5jdGlvbixfMHg0ZGMzOGJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MzMnLCcpaHhLJyldKF8weDRkYzM4Ylt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg1MScsJ3VkQ3QnKV0oXzB4NGRjMzhiW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDMxJywndSZyWycpXSxfMHg0ZGMzOGJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MmQnLCdNbzFnJyldKSwnKTsnKSk7XzB4M2JkNjAyPV8weDRkYzM4Ylt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgyYScsJ1JPMVMnKV0oXzB4MmNjY2NkKTt9Y2F0Y2goXzB4NGI0NzJlKXtpZihfMHg0ZGMzOGJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YWInLCcpZThKJyldKF8weDRkYzM4Ylt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg5NCcsJykqVmYnKV0sXzB4NGRjMzhiW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDknLCdhJXVbJyldKSl7XzB4M2JkNjAyPXdpbmRvdzt9ZWxzZXt2YXIgXzB4NWUzNTY5PXt9O18weDVlMzU2OVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg3ZCcsJ0tbeUonKV09XzB4NGRjMzhiW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDEwZicsJ2smUXYnKV07XzB4NWUzNTY5W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGI3JywnSyFLdicpXT1fMHg0ZGMzOGJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZicsJyYxW14nKV07dmFyIF8weDM2OTg4Mj1fMHg1ZTM1Njk7dmFyIF8weDE0M2RiYT1mdW5jdGlvbigpe3ZhciBfMHgzYjQ2YzM9XzB4MTQzZGJhW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDExNScsJ2RQTTcnKV0oXzB4MzY5ODgyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDdmJywnUzF2NycpXSkoKVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg4ZCcsJ01kcGcnKV0oXzB4MzY5ODgyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDg1JywnUk8xUycpXSk7cmV0dXJuIV8weDNiNDZjM1t2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxYycsJ0VJQHcnKV0oXzB4M2I3NzY4KTt9O3JldHVybiBfMHg0ZGMzOGJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTgnLCd1OEVnJyldKF8weDE0M2RiYSk7fX1pZighXzB4M2JkNjAyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDM3JywndThFZycpXSl7XzB4M2JkNjAyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGI0JywnbUAqVicpXT1mdW5jdGlvbihfMHgxOGJiNTYpe3ZhciBfMHg1YjU0YzM9XzB4NGRjMzhiW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDNkJywnS1t5SicpXVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg2MCcsJ0Z0N0MnKV0oJ3wnKTt2YXIgXzB4NDY5YjdlPTB4MDt3aGlsZSghIVtdKXtzd2l0Y2goXzB4NWI1NGMzW18weDQ2OWI3ZSsrXSl7Y2FzZScwJzpfMHg1MDkzM2VbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NTgnLCdaV1dOJyldPV8weDE4YmI1Njtjb250aW51ZTtjYXNlJzEnOl8weDUwOTMzZVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhmYycsJyllOEonKV09XzB4MThiYjU2O2NvbnRpbnVlO2Nhc2UnMic6XzB4NTA5MzNlW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGI5JywndSZyWycpXT1fMHgxOGJiNTY7Y29udGludWU7Y2FzZSczJzpfMHg1MDkzM2VbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NzMnLCdoKXljJyldPV8weDE4YmI1Njtjb250aW51ZTtjYXNlJzQnOl8weDUwOTMzZVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMDgnLCdTdnA5JyldPV8weDE4YmI1Njtjb250aW51ZTtjYXNlJzUnOnZhciBfMHg1MDkzM2U9e307Y29udGludWU7Y2FzZSc2JzpyZXR1cm4gXzB4NTA5MzNlO2Nhc2UnNyc6XzB4NTA5MzNlW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDFkJywnNDE2YycpXT1fMHgxOGJiNTY7Y29udGludWU7Y2FzZSc4JzpfMHg1MDkzM2VbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NDEnLCdtRk51JyldPV8weDE4YmI1Njtjb250aW51ZTtjYXNlJzknOl8weDUwOTMzZVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhjYScsJ0I3R3YnKV09XzB4MThiYjU2O2NvbnRpbnVlO31icmVhazt9fShfMHgzZTQ0NWMpO31lbHNle3ZhciBfMHhiOWZkOTA9XzB4NGRjMzhiW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDQ3JywndSZyWycpXVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhlMicsJ2R6WWInKV0oJ3wnKTt2YXIgXzB4MTAxNmE5PTB4MDt3aGlsZSghIVtdKXtzd2l0Y2goXzB4YjlmZDkwW18weDEwMTZhOSsrXSl7Y2FzZScwJzpfMHgzYmQ2MDJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MzcnLCd1OEVnJyldW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDk4JywnTWRwZycpXT1fMHgzZTQ0NWM7Y29udGludWU7Y2FzZScxJzpfMHgzYmQ2MDJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NTInLCdNZHBnJyldW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGUxJywndSZyWycpXT1fMHgzZTQ0NWM7Y29udGludWU7Y2FzZScyJzpfMHgzYmQ2MDJbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YmEnLCdNbzFnJyldW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDEwOCcsJ1N2cDknKV09XzB4M2U0NDVjO2NvbnRpbnVlO2Nhc2UnMyc6XzB4M2JkNjAyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDNhJywnb2hXbCcpXVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhlYicsJ21GTnUnKV09XzB4M2U0NDVjO2NvbnRpbnVlO2Nhc2UnNCc6XzB4M2JkNjAyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGZhJywndF43ZicpXVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhmZScsJ3ReN2YnKV09XzB4M2U0NDVjO2NvbnRpbnVlO2Nhc2UnNSc6XzB4M2JkNjAyW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDEwOScsJyllOEonKV1bdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTMnLCc1VVVXJyldPV8weDNlNDQ1Yztjb250aW51ZTtjYXNlJzYnOl8weDNiZDYwMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg4OScsJ3EmXV4nKV1bdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4OTAnLCd1ZEN0JyldPV8weDNlNDQ1Yztjb250aW51ZTtjYXNlJzcnOl8weDNiZDYwMlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg1MCcsJ21GTnUnKV1bdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZjAnLCdaV1dOJyldPV8weDNlNDQ1Yztjb250aW51ZTt9YnJlYWs7fX19KTtfMHg1MGI4YTkoKTtjb25zb2xlW3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGYxJywnNVVVVycpXSh2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhmMycsJ3UmclsnKSk7YWxlcnQodmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTEwJywnQVZmNCcpKTtmdW5jdGlvbiBfMHhjYmRkZjEoXzB4MjUxOTZiKXt2YXIgXzB4MTgyYjQ2PXt9O18weDE4MmI0Nlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg5YycsJ21GTnUnKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YmInLCc0MTZjJyk7XzB4MTgyYjQ2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDc5JywncSZdXicpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg3ZScsJ3U4RWcnKTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTE0JywnNVVVVycpXT1mdW5jdGlvbihfMHgyZjlhNTYpe3JldHVybiBfMHgyZjlhNTYoKTt9O18weDE4MmI0Nlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg4ZicsJyloeEsnKV09ZnVuY3Rpb24oXzB4NDY3NGI1LF8weDE2MGU2MSl7cmV0dXJuIF8weDQ2NzRiNT09PV8weDE2MGU2MTt9O18weDE4MmI0Nlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg3MScsJ25ueWwnKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NWUnLCdkelliJyk7XzB4MTgyYjQ2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGMxJywnTWRwZycpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhjYicsJ241aGgnKTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTA2JywnZ2FwTCcpXT1mdW5jdGlvbihfMHg0OTRhMDQsXzB4NGVhNThjKXtyZXR1cm4gXzB4NDk0YTA0PT09XzB4NGVhNThjO307XzB4MTgyYjQ2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDJiJywnaFNLRicpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhhOScsJ3EmXV4nKTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTIyJywnZ2FwTCcpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMjcnLCdtQCpWJyk7XzB4MTgyYjQ2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDEwMycsJ01kcGcnKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MjknLCdLW3lKJyk7XzB4MTgyYjQ2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDdhJywnbm55bCcpXT1mdW5jdGlvbihfMHgzNzQ1OGMsXzB4MmM4ZjRmKXtyZXR1cm4gXzB4Mzc0NThjIT09XzB4MmM4ZjRmO307XzB4MTgyYjQ2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDg3JywnMmp6VCcpXT1mdW5jdGlvbihfMHg0NmEyMDksXzB4MTkzYzA2KXtyZXR1cm4gXzB4NDZhMjA5K18weDE5M2MwNjt9O18weDE4MmI0Nlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxYicsJ2E2cTknKV09ZnVuY3Rpb24oXzB4MTQwYWUwLF8weDVjMzE0Mil7cmV0dXJuIF8weDE0MGFlMC9fMHg1YzMxNDI7fTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NicsJ241aGgnKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTYnLCd1JnJbJyk7XzB4MTgyYjQ2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGY3JywnUzF2NycpXT1mdW5jdGlvbihfMHgzODUyZGYsXzB4NDc1YThiKXtyZXR1cm4gXzB4Mzg1MmRmJV8weDQ3NWE4Yjt9O18weDE4MmI0Nlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhiNicsJ0tbeUonKV09ZnVuY3Rpb24oXzB4NTcyMTExLF8weDEzMzVhYyl7cmV0dXJuIF8weDU3MjExMStfMHgxMzM1YWM7fTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4OGEnLCcpaHhLJyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDc3JywnXnBWQScpO18weDE4MmI0Nlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg2OCcsJ3ReN2YnKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTAyJywnbUZOdScpO18weDE4MmI0Nlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgzYicsJ2cxaXAnKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NWInLCdhNnE5Jyk7XzB4MTgyYjQ2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDhiJywnNDE2YycpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMjknLCdnMWlwJyk7XzB4MTgyYjQ2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDIwJywnZHpZYicpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgzNCcsJ0shS3YnKTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4M2MnLCdoTVNhJyldPWZ1bmN0aW9uKF8weDM4OTYzMSxfMHgzOTg4MGQpe3JldHVybiBfMHgzODk2MzErXzB4Mzk4ODBkO307XzB4MTgyYjQ2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDExNicsJyloeEsnKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YTMnLCc1VVVXJyk7XzB4MTgyYjQ2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDRmJywnKWU4SicpXT1mdW5jdGlvbihfMHgyMzVmMjMsXzB4OGJjYjM2KXtyZXR1cm4gXzB4MjM1ZjIzKF8weDhiY2IzNik7fTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NjknLCdnU0k1JyldPXZhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGE4JywnZ1NJNScpO18weDE4MmI0Nlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxNScsJ01vMWcnKV09ZnVuY3Rpb24oXzB4NTdmMjljLF8weDQ4YWU2Nyl7cmV0dXJuIF8weDU3ZjI5YyE9PV8weDQ4YWU2Nzt9O18weDE4MmI0Nlt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhlJywnRnQ3QycpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhlYycsJ29oV2wnKTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YmYnLCdFSUB3JyldPWZ1bmN0aW9uKF8weDJmYzM3MCxfMHgzYzAzZDEpe3JldHVybiBfMHgyZmMzNzAhPT1fMHgzYzAzZDE7fTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTI0JywnJjFbXicpXT12YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg2YScsJ29oV2wnKTtfMHgxODJiNDZbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MScsJ3UmclsnKV09dmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YzQnLCc0MTZjJyk7XzB4MTgyYjQ2W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDRkJywnZHpZYicpXT1mdW5jdGlvbihfMHgyNDAxZTksXzB4NDYwMTQ5KXtyZXR1cm4gXzB4MjQwMWU5KF8weDQ2MDE0OSk7fTt2YXIgXzB4NmQwOGM4PV8weDE4MmI0NjtmdW5jdGlvbiBfMHgxZGY1NDYoXzB4MmJkZWI1KXtpZihfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZCcsJ1pXV04nKV0oXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDU5JywnKWU4SicpXSxfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTFkJywnaCl5YycpXSkpe3ZhciBfMHg1YjNmYjc9dGVzdFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhmZicsJ15wVkEnKV0oXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDliJywndF43ZicpXSkoKVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMjAnLCdTdnA5JyldKF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhkYicsJ25ueWwnKV0pO3JldHVybiFfMHg1YjNmYjdbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YTEnLCcpZThKJyldKF8weDNiNzc2OCk7fWVsc2V7aWYoXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGEnLCdWJlJ6JyldKHR5cGVvZiBfMHgyYmRlYjUsXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGQ0JywnZHpZYicpXSkpe3JldHVybiBmdW5jdGlvbihfMHgxOWIyNGYpe31bdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZDInLCdWJlJ6JyldKF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgyJywnYUBoeicpXSlbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4Y2YnLCdoKXljJyldKF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg0OScsJ3ReN2YnKV0pO31lbHNle2lmKF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgyNycsJ2hTS0YnKV0oXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGQzJywnYUBoeicpXSgnJyxfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTA3JywndSZyWycpXShfMHgyYmRlYjUsXzB4MmJkZWI1KSlbXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGIyJywnZ2FwTCcpXV0sMHgxKXx8XzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGMzJywnZ1NJNScpXShfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTEyJywnZzFpcCcpXShfMHgyYmRlYjUsMHgxNCksMHgwKSl7KGZ1bmN0aW9uKCl7cmV0dXJuISFbXTt9W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGQ4JywnSyFLdicpXShfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MTA0JywnYSV1WycpXShfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4MjUnLCdLW3lKJyldLF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg2YycsJ01kcGcnKV0pKVt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg5ZCcsJ2smUXYnKV0oXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGUzJywnTWRwZycpXSkpO31lbHNle2lmKF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMDYnLCdnYXBMJyldKF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMjEnLCd5Yl5oJyldLF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg2ZicsJ2FDSWonKV0pKXtfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4OTYnLCd1ZEN0JyldKF8weGNiZGRmMSk7fWVsc2V7KGZ1bmN0aW9uKCl7cmV0dXJuIVtdO31bdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4ZDcnLCd5Yl5oJyldKF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg2MScsJ2hTS0YnKV0oXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGE3Jywnbm55bCcpXSxfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YmMnLCdvaFdsJyldKSlbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4YWQnLCdNbzFnJyldKF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMCcsJ2gpeWMnKV0pKTt9fX1fMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4Y2QnLCdrJlF2JyldKF8weDFkZjU0NiwrK18weDJiZGViNSk7fX10cnl7aWYoXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDkyJywnKWU4SicpXShfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NjknLCdnU0k1JyldLF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHg1ZicsJ2dhcEwnKV0pKXtpZihfMHgyNTE5NmIpe3JldHVybiBfMHgxZGY1NDY7fWVsc2V7XzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDgyJywnWCpIQycpXShfMHgxZGY1NDYsMHgwKTt9fWVsc2V7aWYoXzB4MjUxOTZiKXtpZihfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NTQnLCdjRihFJyldKF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMWEnLCdTMXY3JyldLF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHhlZCcsJzQxNmMnKV0pKXtfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NycsJ1pXV04nKV0oXzB4MWRmNTQ2LDB4MCk7fWVsc2V7cmV0dXJuIF8weDFkZjU0Njt9fWVsc2V7aWYoXzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweGFlJywnKWh4SycpXShfMHg2ZDA4YzhbdmFyX0NuZGtrX2NvbV9WN18weDE1ZjcoJzB4NDgnLCdLIUt2JyldLF8weDZkMDhjOFt2YXJfQ25ka2tfY29tX1Y3XzB4MTVmNygnMHgxMWUnLCd1OEVnJyldKSl7XzB4NmQwOGM4W3Zhcl9DbmRra19jb21fVjdfMHgxNWY3KCcweDYyJywnVCV2WCcpXShfMHgxZGY1NDYsMHgwKTt9ZWxzZXtyZXR1cm4hIVtdO319fX1jYXRjaChfMHgyMWM4YWEpe319CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlRXhlY3V0aW9uRW52aXJvbm1lbnQoKSB7CiAgICAgICAgICAgIHJldHVybiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiAKICAgICAgICAgICAgICAgICAgIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYKICAgICAgICAgICAgICAgICAgICFuYXZpZ2F0b3Iud2ViZHJpdmVyICYmCiAgICAgICAgICAgICAgICAgICBwZXJmb3JtYW5jZS5ub3coKSA+IDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIumYsuW+oeaooeW8j+mUmeivrzoiLCBlcnJvcik7CiAgICAgICAgICAgIGV4ZWN1dGVGYWxsYmFjaygpOwogICAgICAgIH0KICAgIH0KICAgIAogICAgZnVuY3Rpb24gZXhlY3V0ZUVtZXJnZW5jeSgpIHsKICAgICAgICAvLyDntKfmgKXmqKHlvI8gLSDmnIDlsI/ljJbmiafooYwKICAgICAgICBjb25zb2xlLmVycm9yKCLntKfmgKXmqKHlvI8gLSDnjq/looPkuI3lronlhagiKTsKICAgICAgICBleGVjdXRlRmFsbGJhY2soKTsKICAgIH0KICAgIAogICAgZnVuY3Rpb24gZXhlY3V0ZUZhbGxiYWNrKCkgewogICAgICAgIC8vIOmZjee6p+aJp+ihjAogICAgICAgIGNvbnNvbGUud2Fybigi5omn6KGM6ZmN57qn5pa55qGIIik7CiAgICAgICAgCiAgICAgICAgY29uc29sZS53YXJuKCJGYWxsYmFjayBtb2RlIGFjdGl2YXRlZCIpOwogICAgICAgIC8vIOacgOWwj+WMluWKn+iDveWunueOsAogICAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykgewogICAgICAgICAgICBkb2N1bWVudC50aXRsZSA9ICJQcm90ZWN0ZWQgQ29udGVudCI7CiAgICAgICAgfQogICAgICAgIAogICAgfQogICAgCiAgICAKICAgIC8vIOW3peWFt+WHveaVsAogICAgZnVuY3Rpb24gZ2VuZXJhdGVGaW5nZXJwcmludCgpIHsKICAgICAgICB2YXIgY29tcG9uZW50cyA9IFsKICAgICAgICAgICAgbmF2aWdhdG9yLnVzZXJBZ2VudCwKICAgICAgICAgICAgbmF2aWdhdG9yLnBsYXRmb3JtLAogICAgICAgICAgICBzY3JlZW4ud2lkdGggKyAneCcgKyBzY3JlZW4uaGVpZ2h0LAogICAgICAgICAgICBuYXZpZ2F0b3IubGFuZ3VhZ2UsCiAgICAgICAgICAgIHBlcmZvcm1hbmNlLnRpbWVPcmlnaW4gfHwgMAogICAgICAgIF07CiAgICAgICAgcmV0dXJuIGhhc2goY29tcG9uZW50cy5qb2luKCd8JykpOwogICAgfQogICAgCiAgICBmdW5jdGlvbiBoYXNoKHN0cikgewogICAgICAgIHZhciBoYXNoID0gMDsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykgewogICAgICAgICAgICB2YXIgY2hhciA9IHN0ci5jaGFyQ29kZUF0KGkpOwogICAgICAgICAgICBoYXNoID0gKChoYXNoIDw8IDUpIC0gaGFzaCkgKyBjaGFyOwogICAgICAgICAgICBoYXNoID0gaGFzaCAmIGhhc2g7CiAgICAgICAgfQogICAgICAgIHJldHVybiBNYXRoLmFicyhoYXNoKS50b1N0cmluZygzNik7CiAgICB9CiAgICAKICAgIC8vIOWumuacn+eOr+Wig+ajgOafpQogICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGN1cnJlbnRNb2RlID0gZGV0ZXJtaW5lRXhlY3V0aW9uTW9kZSgpOwogICAgICAgIGlmIChjdXJyZW50TW9kZSAhPT0gJ25vcm1hbCcpIHsKICAgICAgICAgICAgY29uc29sZS53YXJuKCdFeGVjdXRpb24gbW9kZSBjaGFuZ2VkOicsIGN1cnJlbnRNb2RlKTsKICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7IC8vIOaooeW8j+aUueWPmOaXtumHjeaWsOWKoOi9vQogICAgICAgIH0KICAgIH0sIDMwMDAwKTsKfSkoKTs='))));
</script> <script>       
//============================================      
// JavaScript Obfuscated by cndkk.com 开发作者视频号:DJ荻酷
// Version: cndkk.com.V7
// 标识符前缀: var_Cndkk_com_V7_
// Protection Level: Advanced
// Timestamp: 2025-11-04T18:01:29.742Z
// ================================================

在 CNDKK JavaScript 高级混淆器 v7.0 ,独立的四层深度控制流保护系统,提供企业级的代码保护和反分析能力。

🛡️ 新增保护层详解

1. 多层控制流平坦化 (MultiLayerControlFlow)

功能: 三重深度控制流重构

  • 第1层: 基础块分割和智能重排

  • 第2层: 状态机包装执行

  • 第3层: 跳转表混淆调度

  • 特性: 依赖关系分析、虚假块注入、动态跳转逻辑

2. 功能: 数学层面代码混淆

  • 密度控制: 可调节的注入密度 (0.1-0.5)

3. 环境感知控制流 (EnvironmentAwareControlFlow)

功能: 智能环境检测和动态执行策略

  • 四重执行模式:

    • 🔵 正常模式: 完整功能执行

    • 🟢 隐身模式: 减少日志,添加时序干扰

    • 🟡 防御模式: 限制功能,执行时间监控

    • 🔴 紧急模式: 最小化执行,环境不安全时触发

  • 环境检测: 调试器、开发者工具、自动化工具、性能异常检测

4. 增强控制流管理器 (EnhancedControlFlowManager)

功能: 统一管理和协调所有保护层

  • 智能调度: 按配置顺序应用各层保护

  • 性能监控: 记录每个步骤的执行时间

  • 保护报告: 生成详细的保护统计报告

  • 降级方案: 出错时自动切换到基础保护

📊 智能报告系统

  • 代码大小变化统计

  • 保护级别评估 (LOW/MEDIUM/HIGH/EXTREME)

  • 执行时间跟踪

  • 使用特性清单

🚀 性能优化

  • 渐进式保护应用

  • 错误恢复机制

  • 内存使用监控

  • 超时保护

💡 使用场景

1. 企业级代码保护

  • 商业软件源码保护

  • 算法逻辑隐藏

  • 知识产权保护

2. 安全敏感应用

  • 金融交易逻辑

  • 身份验证系统

  • 数据加密算法

3. 反逆向工程

  • 防止代码静态分析

  • 对抗动态调试

  • 阻止自动化工具

🔍 保护效果

代码复杂度提升

  • 控制流复杂度: +300%

  • 代码可读性: -80%

  • 逆向工程难度: ⭐⭐⭐⭐⭐

内容概要:本文详细介绍了一个基于C++的养老院管理系统的设计与实现,旨在应对人口老龄带来的管理挑战。系统通过整合住户档案、健康监测、护理计划、任务调度等核心功能,构建了从数据采集、清洗、AI风险预测到服务调度与可视的完整技术架构。采用C++高性能服务端结合消息队列、规则引擎和机器学习模型,实现了健康状态实时监控、智能任务分配、异常告警推送等功能,并解决了多源数据整合、权限安全、老旧硬件兼容等实际问题。系统支持模块扩展与流程自定义,提升了养老服务效率、医护协同水平和住户安全保障,同时为运营决策提供数据支持。文中还提供了关键模块的代码示例,如健康指数算法、任务调度器和日志记录组件。; 适合人群:具备C++编程基础,从事软件开发或系统设计工作1-3年的研发人员,尤其是关注智慧养老、医疗信息系统开发的技术人员。; 使用场景及目标:①学习如何在真实项目中应用C++构建高性能、可扩展的管理系统;②掌握多源数据整合、实时健康监控、任务调度与权限控制等复杂业务的技术实现方案;③了解AI模型在养老场景中的落地方式及系统架构设计思路。; 阅读建议:此资源不仅包含系统架构与模型描述,还附有核心代码片段,建议结合整体设计逻辑深入理解各模块之间的协同机制,并可通过重构或扩展代码来加深对系统工程实践的掌握。
内容概要:本文详细介绍了一个基于C++的城市交通流量数据可视分析系统的设计与实现。系统涵盖数据采集与预处理、存储与管理、分析建模、可视展示、系统集成扩展以及数据安全与隐私保护六大核心模块。通过多源异构数据融合、高效存储检索、实时处理分析、高交互性可视界面及模块架构设计,实现了对城市交通流量的实时监控、历史趋势分析与智能决策支持。文中还提供了关键模块的C++代码示例,如数据采集、清洗、CSV读写、流量统计、异常检测及基于SFML的柱状图绘制,增强了系统的可实现性与实用性。; 适合人群:具备C++编程基础,熟悉数据结构与算法,有一定项目开发经验的高校学生、研究人员及从事智能交通系统开发的工程师;适合对大数据处理、可视技术和智慧城市应用感兴趣的技术人员。; 使用场景及目标:①应用于城市交通管理部门,实现交通流量实时监测与拥堵预警;②为市民出行提供路径优建议;③支持交通政策制定与信号灯配时优;④作为智慧城市建设中的智能交通子系统,实现与其他城市系统的数据协同。; 阅读建议:建议结合文中代码示例搭建开发环境进行实践,重点关注多线程数据采集、异常检测算法与可视实现细节;可进一步扩展机器学习模型用于流量预测,并集成真实交通数据源进行系统验证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荻酷社区

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值