IiBNZW51IFRyYW5zbGF0aW9uczoJQWZyaWthYXMKIiBNYWludGFpbmVyOgkJRGFuaWUgUm91eCA8ZHJvdXhAdHVrcy5jby56YT4KIiBMYXN0IENoYW5nZToJCTIwMTIgTWF5IDAxCgoiIFF1aXQgd2hlbiBtZW51IHRyYW5zbGF0aW9ucyBoYXZlIGFscmVhZHkgYmVlbiBkb25lLgppZiBleGlzdHMoImRpZF9tZW51X3RyYW5zIikKICBmaW5pc2gKZW5kaWYKbGV0IGRpZF9tZW51X3RyYW5zID0gMQpsZXQgczprZWVwY3BvPSAmY3BvCnNldCBjcG8mdmltCgoiIFRoZSB0cmFuc2xhdGlvbnMgYmVsb3cgYXJlIGluIGxhdGluMSwgYnV0IHRoZXkgd29yayBmb3IgY3AxMjUyIGFuZAoiIGlzby04ODU5LTE1IHdpdGhvdXQgY29udmVyc2lvbiBhcyB3ZWxsLgppZiAmZW5jICE9ICJjcDEyNTIiICYmICZlbmMgIT0gImlzby04ODU5LTE1IgogIHNjcmlwdGVuY29kaW5nIGxhdGluMQplbmRpZgoKCiIgSGVscCBtZW51Cm1lbnV0cmFucyAmSGVscAkJCSZIdWxwCm1lbnV0cmFucyAmT3ZlcnZpZXc8VGFiPjxGMT4JJk9vcnNpZzxUYWI+PEYxPgptZW51dHJhbnMgJkhvdy10b1wgbGlua3MJJkhvdy10b1wgSW5kZWtzCiJtZW51dHJhbnMgJkdVSQkJCSZHVUkKbWVudXRyYW5zICZDcmVkaXRzCQkmTWV0XCBkYW5rXCBhYW4KbWVudXRyYW5zIENvJnB5aW5nCQkmS29waWVyZWcKbWVudXRyYW5zICZGaW5kXC5cLlwuCQkmU29la1wuXC5cLgptZW51dHJhbnMgJlZlcnNpb24JCSZXZWVyZ2F3ZQptZW51dHJhbnMgJkFib3V0CQkmSW5sZWlkaW5nXCBza2VybQoKIiBGaWxlIG1lbnUKbWVudXRyYW5zICZGaWxlCQkJCSZM6mVyCm1lbnV0cmFucyAmT3BlblwuXC5cLjxUYWI+OmUJCSZPcGVuXC5cLlwuPFRhYj46ZQptZW51dHJhbnMgU3AmbGl0LU9wZW5cLlwuXC48VGFiPjpzcAlNYWFrXCBvb3BcIGluXCBudXdlXCAmdmVuc3RlclwuXC5cLjxUYWI+OnNwCm1lbnV0cmFucyAmTmV3PFRhYj46ZW5ldwkJJk51dXQ8VGFiPjplbmV3Cm1lbnV0cmFucyAmQ2xvc2U8VGFiPjpjbG9zZQkJTWFha1wgJlRvZTxUYWI+OmNsb3NlCm1lbnV0cmFucyAmU2F2ZTxUYWI+OncJCQkmU2tyeWY8VGFiPjp3Cm1lbnV0cmFucyBTYXZlXCAmQXNcLlwuXC48VGFiPjp3CVNrcnlmXCAmYXNcLlwuXC48VGFiPjp3Cm1lbnV0cmFucyAmUHJpbnQJCQkmRHJ1awptZW51dHJhbnMgU2EmdmUtRXhpdDxUYWI+OndxYQkJU2tyeWZcIGVuXCB2ZXJsYWF0PFRhYj46d3FhCm1lbnV0cmFucyBFJnhpdDxUYWI+OnFhCQkJJlZlcmxhYXQ8VGFiPjpxYQoKIiBFZGl0IG1lbnUKbWVudXRyYW5zICZFZGl0CQkJCSZXeXNpZwptZW51dHJhbnMgJlVuZG88VGFiPnUJCQlUZXJ1ZzxUYWI+dQptZW51dHJhbnMgJlJlZG88VGFiPl5SCQkJVm9vJnJ1aXQ8VGFiPl5SCm1lbnV0cmFucyBSZXAmZWF0PFRhYj5cLgkJCSZIZXJoYWFsPFRhYj5cLgptZW51dHJhbnMgQ3UmdDxUYWI+Iit4CQkJJktuaXA8VGFiPiIreAptZW51dHJhbnMgJkNvcHk8VGFiPiIreQkJCSZLb3Bp62VyPFRhYj4iK3kKbWVudXRyYW5zICZQYXN0ZTxUYWI+IitnUAkJUGxhazxUYWI+IitnUAptZW51dHJhbnMgUHV0XCAmQmVmb3JlPFRhYj5bcAkJVm9lZ1wgJlZvb3JcIGluPFRhYj5bcAptZW51dHJhbnMgUHV0XCAmQWZ0ZXI8VGFiPl1wCQlWb2VnXCBBJmd0ZXJcIGluPFRhYj5dcAptZW51dHJhbnMgJlNlbGVjdFwgYWxsPFRhYj5nZ1ZHCQlLaWVzXCAmQWxsZXM8VGFiPmdnVkcKbWVudXRyYW5zICZGaW5kXC5cLlwuCQkJJlNvZWtcLlwuXC4KbWVudXRyYW5zIEZpbmRcIGFuZFwgUmVwJmxhY2VcLlwuXC4JCQlTb2VrXCBlblwgVmVydmFuZ1wuXC5cLgptZW51dHJhbnMgT3B0aW9uc1wuXC5cLgkJCU9wc2llc1wuXC5cLgoKIiBQcm9ncmFtbWluZyBtZW51Cm1lbnV0cmFucyAmVG9vbHMJCQkmR2VyZWVkc2thcAptZW51dHJhbnMgJkp1bXBcIHRvXCB0aGlzXCB0YWc8VGFiPmdeXQkmU3ByaW5nXCBuYVwgRXRpa2V0PFRhYj5nXl0KbWVudXRyYW5zIEp1bXBcICZiYWNrPFRhYj5eVAkJU3ByaW5nXCAmVGVydWc8VGFiPl5UCm1lbnV0cmFucyBCdWlsZFwgJlRhZ3NcIEZpbGUJCUdlbmVyZWVyXCAmRXRpa2V0XCBMZepyCm1lbnV0cmFucyAmTWFrZTxUYWI+Om1ha2UJCVZvZXJcICZNYWtlXCB1aXQ8VGFiPjptYWtlCm1lbnV0cmFucyAmTGlzdFwgRXJyb3JzPFRhYj46Y2wJCSZGb3V0bHlzPFRhYj46Y2wKbWVudXRyYW5zIEwmaXN0XCBNZXNzYWdlczxUYWI+OmNsIQkmQm9vZHNrYXBseXM8VGFiPjpjbCEKbWVudXRyYW5zICZOZXh0XCBFcnJvcjxUYWI+OmNuCQlWb2xnZW5kZVwgRm91dDxUYWI+OmNuCm1lbnV0cmFucyAmUHJldmlvdXNcIEVycm9yPFRhYj46Y3AJVm9yaWdlXCBGb3V0PFRhYj46Y3AKbWVudXRyYW5zICZPbGRlclwgTGlzdDxUYWI+OmNvbGQJJk91ZXJcIEx5czxUYWI+OmNvbGQKbWVudXRyYW5zIE4mZXdlclwgTGlzdDxUYWI+OmNuZXcJJk51d2VyXCBMeXM8VGFiPjpjbmV3Cm1lbnV0cmFucyBFcnJvclwgJldpbmRvdzxUYWI+OmN3aW4JRm91dGVcIFZlbnN0ZXI8VGFiPjpjd2luCm1lbnV0cmFucyBDb252ZXJ0XCB0b1wgSEVYPFRhYj46JSF4eGQJVmVyd2lzc2VsXCBuYVwgSEVYPFRhYj46JSF4eGQKbWVudXRyYW5zIENvbnZlcnRcIGJhY2s8VGFiPjolIXh4ZFwgLXIJVmVyd2lzc2VsXCB0ZXJ1ZzxUYWI+OiUheHhkXCAtcgoKIiBOYW1lcyBmb3IgYnVmZmVyIG1lbnUuCm1lbnV0cmFucyAmQnVmZmVycwkmQnVmZmVycwptZW51dHJhbnMgUmVmcmVzaAlWZXJmcmlzCm1lbnV0cmFucyBEZWxldGUJVmVyd3lkZXIKbWVudXRyYW5zIEFsdGVybmF0ZQlWb3JpZ2UKbWVudXRyYW5zIFtOb1wgRmlsZV0JW0dlZW5cIExl6nJdCgoiIFdpbmRvdyBtZW51Cm1lbnV0cmFucyAmV2luZG93CQkJJlZlbnN0ZXIKbWVudXRyYW5zICZOZXc8VGFiPl5XbgkJCSZOdXV0PFRhYj5eV24KbWVudXRyYW5zIFMmcGxpdDxUYWI+XldzCQlWZXImZGVlbDxUYWI+XldzCm1lbnV0cmFucyBTcCZsaXRcIFRvXCAjPFRhYj5eV15eCVZlcmRlZWxcIE4mYVwgIzxUYWI+XldeXgptZW51dHJhbnMgU3BsaXRcICZWZXJ0aWNhbGx5PFRhYj5eV3YJCVZlcmRlZWxcIFZlcnRpa2FhbDxUYWI+Xld2Cm1lbnV0cmFucyAmQ2xvc2U8VGFiPl5XYwkJJk1hYWtcIHRvZTxUYWI+XldjCm1lbnV0cmFucyBDbG9zZVwgJk90aGVyKHMpPFRhYj5eV28JTWFha1wgJkFuZGVyXCBUb2U8VGFiPl5XbwptZW51dHJhbnMgTmUmeHQ8VGFiPl5XdwkJCVZvbGdlbmRlPFRhYj5eV3cKbWVudXRyYW5zIFAmcmV2aW91czxUYWI+XldXCQkmVm9yaWdlPFRhYj5eV1cKbWVudXRyYW5zICZFcXVhbFwgU2l6ZTxUYWI+Xlc9CQkmR2VseWtlXCBob29ndGU8VGFiPl5XPQptZW51dHJhbnMgJk1heFwgSGVpZ2h0PFRhYj5eV18JCSZNYWtzaW1hbGVcIGhvb2d0ZTxUYWI+XldfCm1lbnV0cmFucyBNJmluXCBIZWlnaHQ8VGFiPl5XMV8JCU1pJm5pbWFsZVwgaG9vZ3RlPFRhYj5eVzFfCm1lbnV0cmFucyBNYXhcIFdpZHRoPFRhYj5eV1x8CQlNYWtzaW1hbGVcIGJyZWVkdGU8VGFiPl5XXHwKbWVudXRyYW5zIE1pblwgV2lkdGg8VGFiPl5XMVx8CQlNaW5pbWFsZVwgYnJlZWR0ZTxUYWI+XlcxXHwKbWVudXRyYW5zIFJvdGF0ZVwgJlVwPFRhYj5eV1IJCVJvdGVlclwgbmFcICZibzxUYWI+XldSCm1lbnV0cmFucyBSb3RhdGVcICZEb3duPFRhYj5eV3IJCVJvdGVlclwgbmFcICZvbmRlcjxUYWI+XldyCm1lbnV0cmFucyBTZWxlY3RcIEZvJm50XC5cLlwuCQlLaWVzXCBmb250XC5cLlwuCgoiIFRoZSBwb3B1cCBtZW51Cm1lbnV0cmFucyAmVW5kbwkJCSZUZXJ1ZwptZW51dHJhbnMgQ3UmdAkJCUtuaXAKbWVudXRyYW5zICZDb3B5CQkJJktvcGnrZXIKbWVudXRyYW5zICZQYXN0ZQkJJlBsYWsKbWVudXRyYW5zICZEZWxldGUJCSZWZXJ3eWRlcgptZW51dHJhbnMgU2VsZWN0XCBCbG9ja3dpc2UJS2llc1wgcGVyXCBCbG9rCm1lbnV0cmFucyBTZWxlY3RcICZXb3JkCQlLaWVzXCBlZW5cICZXb29yZAptZW51dHJhbnMgU2VsZWN0XCAmTGluZQkJS2llc1wgZWVuXCAmUmXrbAptZW51dHJhbnMgU2VsZWN0XCAmQmxvY2sJS2llc1wgZWVuXCAmQmxvawptZW51dHJhbnMgU2VsZWN0XCAmQWxsCQlLaWVzXCAmQWxsZXMKCiIgVGhlIEdVSSB0b29sYmFyCmlmIGhhcygidG9vbGJhciIpCiAgaWYgZXhpc3RzKCIqRG9fdG9vbGJhcl90bWVudSIpCiAgICBkZWxmdW4gRG9fdG9vbGJhcl90bWVudQogIGVuZGlmCiAgZnVuIERvX3Rvb2xiYXJfdG1lbnUoKQogICAgdG1lbnUgVG9vbEJhci5PcGVuCQlNYWFrIGxl6nIgb29wCiAgICB0bWVudSBUb29sQmFyLlNhdmUJCVNrcnlmIGxl6nIKICAgIHRtZW51IFRvb2xCYXIuU2F2ZUFsbAlTa3J5ZiBhbGxlIGxl6nJzCiAgICB0bWVudSBUb29sQmFyLlByaW50CQlEcnVrCiAgICB0bWVudSBUb29sQmFyLlVuZG8JCVRlcnVnCiAgICB0bWVudSBUb29sQmFyLlJlZG8JCVZvb3J1aXQKICAgIHRtZW51IFRvb2xCYXIuQ3V0CQlLbmlwCiAgICB0bWVudSBUb29sQmFyLkNvcHkJCUtvcGnrZXIKICAgIHRtZW51IFRvb2xCYXIuUGFzdGUJCVBsYWsKICAgIHRtZW51IFRvb2xCYXIuRmluZAkJU29lay4uLgogICAgdG1lbnUgVG9vbEJhci5GaW5kTmV4dAlTb2VrIHZvbGdlbmRlCiAgICB0bWVudSBUb29sQmFyLkZpbmRQcmV2CVNvZWsgdm9yaWdlCiAgICB0bWVudSBUb29sQmFyLlJlcGxhY2UJU29layBlbiB2ZXJ2YW5nLi4uCiAgICB0bWVudSBUb29sQmFyLkxvYWRTZXNuCUxhYWkgc2Vzc2llCiAgICB0bWVudSBUb29sQmFyLlNhdmVTZXNuCVN0b29yIHNlc3NpZQogICAgdG1lbnUgVG9vbEJhci5SdW5TY3JpcHQJVm9lciB2aW0gc2tyaXAgdWl0CiAgICB0bWVudSBUb29sQmFyLk1ha2UJCVZvZXIgbWFrZSB1aXQKICAgIHRtZW51IFRvb2xCYXIuU2hlbGwJCUJlZ2luIGRvcAogICAgdG1lbnUgVG9vbEJhci5SdW5DdGFncwlHZW5lcmVlciBldGlrZXR0ZQogICAgdG1lbnUgVG9vbEJhci5UYWdKdW1wCVNwcmluZyBuYSBldGlrZXQKICAgIHRtZW51IFRvb2xCYXIuSGVscAkJSHVscAogICAgdG1lbnUgVG9vbEJhci5GaW5kSGVscAlTb2VrIGh1bHAuLi4KICBlbmRmdW4KZW5kaWYKCiIgU3ludGF4IG1lbnUKbWVudXRyYW5zICZTeW50YXgJCSZTaW50YWtzCm1lbnV0cmFucyBTZXRcICdzeW50YXgnXCBvbmx5CQlTdGVsXCBzbGVnc1wgJ3N5bnRheCcKbWVudXRyYW5zIFNldFwgJ2ZpbGV0eXBlJ1wgdG9vCVZlcmFuZGVyXCAnZmlsZXR5cGUnXCBvb2sKbWVudXRyYW5zICZPZmYJCQkmQWYKbWVudXRyYW5zICZNYW51YWwJCSZNZXRcIGRpZVwgaGFuZAptZW51dHJhbnMgQSZ1dG9tYXRpYwkJTyZ1dG9tYXRpZXMKbWVudXRyYW5zIG8mblwgKHRoaXNcIGZpbGUpCQlBYSZuXCAoZGllXCBsZepyKQptZW51dHJhbnMgbyZmZlwgKHRoaXNcIGZpbGUpCSZBZlwgKGRpZVwgbGXqcikKbWVudXRyYW5zIENvJmxvclwgdGVzdAkJVG9ldHNcIGRpZVwgJmtsZXVyZQptZW51dHJhbnMgJkhpZ2hsaWdodFwgdGVzdAlUb2V0c1wgZGllXCB2ZXJsaWd0aW5nCm1lbnV0cmFucyAmQ29udmVydFwgdG9cIEhUTUwJVmVyd2lzc2VsXCBuYVwgSFRNTAoKbGV0ICZjcG8gPSBzOmtlZXBjcG8KdW5sZXQgczprZWVwY3BvCg==