IiBNZW51IFRyYW5zbGF0aW9uczoJQWZyaWthYXMKIiBNYWludGFpbmVyOgkJRGFuaWUgUm91eCA8ZHJvdXhAdHVrcy5jby56YT4KIiBMYXN0IENoYW5nZToJCTIwMDMgTWFyIDMwCgoiIFF1aXQgd2hlbiBtZW51IHRyYW5zbGF0aW9ucyBoYXZlIGFscmVhZHkgYmVlbiBkb25lLgppZiBleGlzdHMoImRpZF9tZW51X3RyYW5zIikKICBmaW5pc2gKZW5kaWYKbGV0IGRpZF9tZW51X3RyYW5zID0gMQoKIiBUaGUgdHJhbnNsYXRpb25zIGJlbG93IGFyZSBpbiBsYXRpbjEsIGJ1dCB0aGV5IHdvcmsgZm9yIGNwMTI1MiBhbmQKIiBpc28tODg1OS0xNSB3aXRob3V0IGNvbnZlcnNpb24gYXMgd2VsbC4KaWYgJmVuYyAhPSAiY3AxMjUyIiAmJiAmZW5jICE9ICJpc28tODg1OS0xNSIKICBzY3JpcHRlbmNvZGluZyBsYXRpbjEKZW5kaWYKCgoiIEhlbHAgbWVudQptZW51dHJhbnMgJkhlbHAJCQkmSHVscAptZW51dHJhbnMgJk92ZXJ2aWV3PFRhYj48RjE+CSZPb3JzaWc8VGFiPjxGMT4KbWVudXRyYW5zICZIb3ctdG9cIGxpbmtzCSZIb3ctdG9cIEluZGVrcwoibWVudXRyYW5zICZHVUkJCQkmR1VJCm1lbnV0cmFucyAmQ3JlZGl0cwkJJk1ldFwgZGFua1wgYWFuCm1lbnV0cmFucyBDbyZweWluZwkJJktvcGllcmVnCm1lbnV0cmFucyAmRmluZFwuXC5cLgkJJlNvZWtcLlwuXC4KbWVudXRyYW5zICZWZXJzaW9uCQkmV2Vlcmdhd2UKbWVudXRyYW5zICZBYm91dAkJJklubGVpZGluZ1wgc2tlcm0KCiIgRmlsZSBtZW51Cm1lbnV0cmFucyAmRmlsZQkJCQkmTOplcgptZW51dHJhbnMgJk9wZW5cLlwuXC48VGFiPjplCQkmT3BlblwuXC5cLjxUYWI+OmUKbWVudXRyYW5zIFNwJmxpdC1PcGVuXC5cLlwuPFRhYj46c3AJTWFha1wgb29wXCBpblwgbnV3ZVwgJnZlbnN0ZXJcLlwuXC48VGFiPjpzcAptZW51dHJhbnMgJk5ldzxUYWI+OmVuZXcJCSZOdXV0PFRhYj46ZW5ldwptZW51dHJhbnMgJkNsb3NlPFRhYj46Y2xvc2UJCU1hYWtcICZUb2U8VGFiPjpjbG9zZQptZW51dHJhbnMgJlNhdmU8VGFiPjp3CQkJJlNrcnlmPFRhYj46dwptZW51dHJhbnMgU2F2ZVwgJkFzXC5cLlwuPFRhYj46dwlTa3J5ZlwgJmFzXC5cLlwuPFRhYj46dwptZW51dHJhbnMgJlByaW50CQkJJkRydWsKbWVudXRyYW5zIFNhJnZlLUV4aXQ8VGFiPjp3cWEJCVNrcnlmXCBlblwgdmVybGFhdDxUYWI+OndxYQptZW51dHJhbnMgRSZ4aXQ8VGFiPjpxYQkJCSZWZXJsYWF0PFRhYj46cWEKCiIgRWRpdCBtZW51Cm1lbnV0cmFucyAmRWRpdAkJCQkmV3lzaWcKbWVudXRyYW5zICZVbmRvPFRhYj51CQkJVGVydWc8VGFiPnUKbWVudXRyYW5zICZSZWRvPFRhYj5eUgkJCVZvbyZydWl0PFRhYj5eUgptZW51dHJhbnMgUmVwJmVhdDxUYWI+XC4JCQkmSGVyaGFhbDxUYWI+XC4KbWVudXRyYW5zIEN1JnQ8VGFiPiIreAkJCSZLbmlwPFRhYj4iK3gKbWVudXRyYW5zICZDb3B5PFRhYj4iK3kJCQkmS29waetlcjxUYWI+Iit5Cm1lbnV0cmFucyAmUGFzdGU8VGFiPiIrZ1AJCVBsYWs8VGFiPiIrZ1AKbWVudXRyYW5zIFB1dFwgJkJlZm9yZTxUYWI+W3AJCVZvZWdcICZWb29yXCBpbjxUYWI+W3AKbWVudXRyYW5zIFB1dFwgJkFmdGVyPFRhYj5dcAkJVm9lZ1wgQSZndGVyXCBpbjxUYWI+XXAKbWVudXRyYW5zICZTZWxlY3RcIGFsbDxUYWI+Z2dWRwkJS2llc1wgJkFsbGVzPFRhYj5nZ1ZHCm1lbnV0cmFucyAmRmluZFwuXC5cLgkJCSZTb2VrXC5cLlwuCm1lbnV0cmFucyBGaW5kXCBhbmRcIFJlcCZsYWNlXC5cLlwuCQkJU29la1wgZW5cIFZlcnZhbmdcLlwuXC4KbWVudXRyYW5zIE9wdGlvbnNcLlwuXC4JCQlPcHNpZXNcLlwuXC4KCiIgUHJvZ3JhbW1pbmcgbWVudQptZW51dHJhbnMgJlRvb2xzCQkJJkdlcmVlZHNrYXAKbWVudXRyYW5zICZKdW1wXCB0b1wgdGhpc1wgdGFnPFRhYj5nXl0JJlNwcmluZ1wgbmFcIEV0aWtldDxUYWI+Z15dCm1lbnV0cmFucyBKdW1wXCAmYmFjazxUYWI+XlQJCVNwcmluZ1wgJlRlcnVnPFRhYj5eVAptZW51dHJhbnMgQnVpbGRcICZUYWdzXCBGaWxlCQlHZW5lcmVlclwgJkV0aWtldFwgTGXqcgptZW51dHJhbnMgJk1ha2U8VGFiPjptYWtlCQlWb2VyXCAmTWFrZVwgdWl0PFRhYj46bWFrZQptZW51dHJhbnMgJkxpc3RcIEVycm9yczxUYWI+OmNsCQkmRm91dGx5czxUYWI+OmNsCm1lbnV0cmFucyBMJmlzdFwgTWVzc2FnZXM8VGFiPjpjbCEJJkJvb2Rza2FwbHlzPFRhYj46Y2whCm1lbnV0cmFucyAmTmV4dFwgRXJyb3I8VGFiPjpjbgkJVm9sZ2VuZGVcIEZvdXQ8VGFiPjpjbgptZW51dHJhbnMgJlByZXZpb3VzXCBFcnJvcjxUYWI+OmNwCVZvcmlnZVwgRm91dDxUYWI+OmNwCm1lbnV0cmFucyAmT2xkZXJcIExpc3Q8VGFiPjpjb2xkCSZPdWVyXCBMeXM8VGFiPjpjb2xkCm1lbnV0cmFucyBOJmV3ZXJcIExpc3Q8VGFiPjpjbmV3CSZOdXdlclwgTHlzPFRhYj46Y25ldwptZW51dHJhbnMgRXJyb3JcICZXaW5kb3c8VGFiPjpjd2luCUZvdXRlXCBWZW5zdGVyPFRhYj46Y3dpbgptZW51dHJhbnMgQ29udmVydFwgdG9cIEhFWDxUYWI+OiUheHhkCVZlcndpc3NlbFwgbmFcIEhFWDxUYWI+OiUheHhkCm1lbnV0cmFucyBDb252ZXJ0XCBiYWNrPFRhYj46JSF4eGRcIC1yCVZlcndpc3NlbFwgdGVydWc8VGFiPjolIXh4ZFwgLXIKCiIgTmFtZXMgZm9yIGJ1ZmZlciBtZW51LgptZW51dHJhbnMgJkJ1ZmZlcnMJJkJ1ZmZlcnMKbWVudXRyYW5zIFJlZnJlc2gJVmVyZnJpcwptZW51dHJhbnMgRGVsZXRlCVZlcnd5ZGVyCm1lbnV0cmFucyBBbHRlcm5hdGUJVm9yaWdlCm1lbnV0cmFucyBbTm9cIEZpbGVdCVtHZWVuXCBMZepyXQoKIiBXaW5kb3cgbWVudQptZW51dHJhbnMgJldpbmRvdwkJCSZWZW5zdGVyCm1lbnV0cmFucyAmTmV3PFRhYj5eV24JCQkmTnV1dDxUYWI+XlduCm1lbnV0cmFucyBTJnBsaXQ8VGFiPl5XcwkJVmVyJmRlZWw8VGFiPl5XcwptZW51dHJhbnMgU3AmbGl0XCBUb1wgIzxUYWI+XldeXglWZXJkZWVsXCBOJmFcICM8VGFiPl5XXl4KbWVudXRyYW5zIFNwbGl0XCAmVmVydGljYWxseTxUYWI+Xld2CQlWZXJkZWVsXCBWZXJ0aWthYWw8VGFiPl5XdgptZW51dHJhbnMgJkNsb3NlPFRhYj5eV2MJCSZNYWFrXCB0b2U8VGFiPl5XYwptZW51dHJhbnMgQ2xvc2VcICZPdGhlcihzKTxUYWI+XldvCU1hYWtcICZBbmRlclwgVG9lPFRhYj5eV28KbWVudXRyYW5zIE5lJnh0PFRhYj5eV3cJCQlWb2xnZW5kZTxUYWI+Xld3Cm1lbnV0cmFucyBQJnJldmlvdXM8VGFiPl5XVwkJJlZvcmlnZTxUYWI+XldXCm1lbnV0cmFucyAmRXF1YWxcIFNpemU8VGFiPl5XPQkJJkdlbHlrZVwgaG9vZ3RlPFRhYj5eVz0KbWVudXRyYW5zICZNYXhcIEhlaWdodDxUYWI+XldfCQkmTWFrc2ltYWxlXCBob29ndGU8VGFiPl5XXwptZW51dHJhbnMgTSZpblwgSGVpZ2h0PFRhYj5eVzFfCQlNaSZuaW1hbGVcIGhvb2d0ZTxUYWI+XlcxXwptZW51dHJhbnMgTWF4XCBXaWR0aDxUYWI+XldcfAkJTWFrc2ltYWxlXCBicmVlZHRlPFRhYj5eV1x8Cm1lbnV0cmFucyBNaW5cIFdpZHRoPFRhYj5eVzFcfAkJTWluaW1hbGVcIGJyZWVkdGU8VGFiPl5XMVx8Cm1lbnV0cmFucyBSb3RhdGVcICZVcDxUYWI+XldSCQlSb3RlZXJcIG5hXCAmYm88VGFiPl5XUgptZW51dHJhbnMgUm90YXRlXCAmRG93bjxUYWI+XldyCQlSb3RlZXJcIG5hXCAmb25kZXI8VGFiPl5XcgptZW51dHJhbnMgU2VsZWN0XCBGbyZudFwuXC5cLgkJS2llc1wgZm9udFwuXC5cLgoKIiBUaGUgcG9wdXAgbWVudQptZW51dHJhbnMgJlVuZG8JCQkmVGVydWcKbWVudXRyYW5zIEN1JnQJCQlLbmlwCm1lbnV0cmFucyAmQ29weQkJCSZLb3Bp62VyCm1lbnV0cmFucyAmUGFzdGUJCSZQbGFrCm1lbnV0cmFucyAmRGVsZXRlCQkmVmVyd3lkZXIKbWVudXRyYW5zIFNlbGVjdFwgQmxvY2t3aXNlCUtpZXNcIHBlclwgQmxvawptZW51dHJhbnMgU2VsZWN0XCAmV29yZAkJS2llc1wgZWVuXCAmV29vcmQKbWVudXRyYW5zIFNlbGVjdFwgJkxpbmUJCUtpZXNcIGVlblwgJlJl62wKbWVudXRyYW5zIFNlbGVjdFwgJkJsb2NrCUtpZXNcIGVlblwgJkJsb2sKbWVudXRyYW5zIFNlbGVjdFwgJkFsbAkJS2llc1wgJkFsbGVzCgoiIFRoZSBHVUkgdG9vbGJhcgppZiBoYXMoInRvb2xiYXIiKQogIGlmIGV4aXN0cygiKkRvX3Rvb2xiYXJfdG1lbnUiKQogICAgZGVsZnVuIERvX3Rvb2xiYXJfdG1lbnUKICBlbmRpZgogIGZ1biBEb190b29sYmFyX3RtZW51KCkKICAgIHRtZW51IFRvb2xCYXIuT3BlbgkJTWFhayBsZepyIG9vcAogICAgdG1lbnUgVG9vbEJhci5TYXZlCQlTa3J5ZiBsZepyCiAgICB0bWVudSBUb29sQmFyLlNhdmVBbGwJU2tyeWYgYWxsZSBsZepycwogICAgdG1lbnUgVG9vbEJhci5QcmludAkJRHJ1awogICAgdG1lbnUgVG9vbEJhci5VbmRvCQlUZXJ1ZwogICAgdG1lbnUgVG9vbEJhci5SZWRvCQlWb29ydWl0CiAgICB0bWVudSBUb29sQmFyLkN1dAkJS25pcAogICAgdG1lbnUgVG9vbEJhci5Db3B5CQlLb3Bp62VyCiAgICB0bWVudSBUb29sQmFyLlBhc3RlCQlQbGFrCiAgICB0bWVudSBUb29sQmFyLkZpbmQJCVNvZWsuLi4KICAgIHRtZW51IFRvb2xCYXIuRmluZE5leHQJU29layB2b2xnZW5kZQogICAgdG1lbnUgVG9vbEJhci5GaW5kUHJldglTb2VrIHZvcmlnZQogICAgdG1lbnUgVG9vbEJhci5SZXBsYWNlCVNvZWsgZW4gdmVydmFuZy4uLgogICAgdG1lbnUgVG9vbEJhci5Mb2FkU2VzbglMYWFpIHNlc3NpZQogICAgdG1lbnUgVG9vbEJhci5TYXZlU2VzbglTdG9vciBzZXNzaWUKICAgIHRtZW51IFRvb2xCYXIuUnVuU2NyaXB0CVZvZXIgdmltIHNrcmlwIHVpdAogICAgdG1lbnUgVG9vbEJhci5NYWtlCQlWb2VyIG1ha2UgdWl0CiAgICB0bWVudSBUb29sQmFyLlNoZWxsCQlCZWdpbiBkb3AKICAgIHRtZW51IFRvb2xCYXIuUnVuQ3RhZ3MJR2VuZXJlZXIgZXRpa2V0dGUKICAgIHRtZW51IFRvb2xCYXIuVGFnSnVtcAlTcHJpbmcgbmEgZXRpa2V0CiAgICB0bWVudSBUb29sQmFyLkhlbHAJCUh1bHAKICAgIHRtZW51IFRvb2xCYXIuRmluZEhlbHAJU29layBodWxwLi4uCiAgZW5kZnVuCmVuZGlmCgoiIFN5bnRheCBtZW51Cm1lbnV0cmFucyAmU3ludGF4CQkmU2ludGFrcwptZW51dHJhbnMgU2V0XCAnc3ludGF4J1wgb25seQkJU3RlbFwgc2xlZ3NcICdzeW50YXgnCm1lbnV0cmFucyBTZXRcICdmaWxldHlwZSdcIHRvbwlWZXJhbmRlclwgJ2ZpbGV0eXBlJ1wgb29rCm1lbnV0cmFucyAmT2ZmCQkJJkFmCm1lbnV0cmFucyAmTWFudWFsCQkmTWV0XCBkaWVcIGhhbmQKbWVudXRyYW5zIEEmdXRvbWF0aWMJCU8mdXRvbWF0aWVzCm1lbnV0cmFucyBvJm5cICh0aGlzXCBmaWxlKQkJQWEmblwgKGRpZVwgbGXqcikKbWVudXRyYW5zIG8mZmZcICh0aGlzXCBmaWxlKQkmQWZcIChkaWVcIGxl6nIpCm1lbnV0cmFucyBDbyZsb3JcIHRlc3QJCVRvZXRzXCBkaWVcICZrbGV1cmUKbWVudXRyYW5zICZIaWdobGlnaHRcIHRlc3QJVG9ldHNcIGRpZVwgdmVybGlndGluZwptZW51dHJhbnMgJkNvbnZlcnRcIHRvXCBIVE1MCVZlcndpc3NlbFwgbmFcIEhUTUwK