{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CjxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgo8dGl0bGU+QXJ0aXN0aWMgVHJlZSBDYXJlIOKAlCAyNSBZZWFycyBEZWVwLCBIb3VzdG9uIFRYPC90aXRsZT4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tIj4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tIiBjcm9zc29yaWdpbj4KPGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1GcmF1bmNlczpvcHN6LHdnaHRAOS4uMTQ0LDMwMDs5Li4xNDQsNTAwOzkuLjE0NCw2MDA7OS4uMTQ0LDcwMDs5Li4xNDQsOTAwJmZhbWlseT1BcmNoaXZvOndnaHRANDAwOzUwMDs2MDA7NzAwJmZhbWlseT1TcGFjZStNb25vOndnaHRANDAwOzcwMCZkaXNwbGF5PXN3YXAiIHJlbD0ic3R5bGVzaGVldCI+CjxzdHlsZT4KICA6cm9vdHsKICAgIC0tY2Fub3B5OiMxNzI0MUE7CiAgICAtLWNhbm9weS0yOiMxRjMzMjQ7CiAgICAtLWJhcms6IzJFMjAxMzsKICAgIC0taGVhcnR3b29kOiNCRTZBMkU7CiAgICAtLWhlYXJ0d29vZC1zb2Z0OiNFMzlBNUM7CiAgICAtLWhlYXJ0d29vZC1kZWVwOiM3QTNCMTU7CiAgICAtLWxpY2hlbjojQzNENkJDOwogICAgLS1jYW52YXM6I0VGRTlEODsKICAgIC0tY2FudmFzLTI6I0U0RENDNjsKICAgIC0taW5rOiMxNDFCMTI7CiAgICAtLXJvcGU6IzhDMkYyNjsKICAgIC0tbGluZTogcmdiYSgyMzksMjMzLDIxNiwwLjE4KTsKICB9CgogIC8qID09PT09PT09PT09PSBTQ09QSU5HID09PT09PT09PT09PQogICAgIEV2ZXJ5dGhpbmcgYmVsb3cgaXMgcHJlZml4ZWQgd2l0aCAuYXRjLXNpdGUgc28gaXQgY2FuIG9ubHkgZXZlciBhZmZlY3QKICAgICB0aGlzIGJsb2NrLCBuZXZlciBvdGhlciBjb250ZW50IG9uIHRoZSBzYW1lIEZ1bm5lbFBhZ2VzIHBhZ2UuIFRoZSBvbmUKICAgICBleGNlcHRpb24gaXMgdGhlIHdyYXBwZXItZGFya2VuaW5nIHJ1bGUgZnVydGhlciBkb3duLCB3aGljaCB1c2VzCiAgICAgOmhhcyguYXRjLXNpdGUpIHRvIHJlYWNoIHRoZSBGdW5uZWxQYWdlcyBlZGl0b3IncyBvd24gYW5jZXN0b3Igd3JhcHBlcgogICAgIGRpdnMgKHRob3NlIHNpdCBBQk9WRSAuYXRjLXNpdGUgaW4gdGhlIERPTSwgc28gYSBub3JtYWwgZGVzY2VuZGFudAogICAgIHNlbGVjdG9yIGNhbid0IHJlYWNoIHRoZW0g4oCUIDpoYXMoKSBpcyB0aGUgY29ycmVjdCB0b29sIGZvciB0aGF0KS4gKi8KICAuYXRjLXNpdGUgKntib3gtc2l6aW5nOmJvcmRlci1ib3g7fQogIC5hdGMtc2l0ZXsKICAgIGRpc3BsYXk6YmxvY2s7CiAgICB3aWR0aDoxMDAlOwogICAgbWFyZ2luOjA7CiAgICBiYWNrZ3JvdW5kOnZhcigtLWNhbnZhcyk7CiAgICBjb2xvcjp2YXIoLS1pbmspOwogICAgZm9udC1mYW1pbHk6J0FyY2hpdm8nLCBzYW5zLXNlcmlmOwogICAgZm9udC1zaXplOmNsYW1wKDE4cHgsIDEuMDV2dywgMjBweCk7CiAgICBsaW5lLWhlaWdodDoxLjY1OwogICAgLXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDsKICAgIHRleHQtYWxpZ246bGVmdDsKICB9CgogIC8qIEZ1bm5lbFBhZ2VzIHNvbWV0aW1lcyB3cmFwcyBjdXN0b20tSFRNTCBibG9ja3MgaW4gdHJhbnNwYXJlbnQvbGlnaHQKICAgICBlZGl0b3IgY29udGFpbmVycy4gOmhhcygpIHNjb3BlcyB0aGlzIGZpeCB0byBvbmx5IHRoZSB3cmFwcGVycyB0aGF0CiAgICAgYWN0dWFsbHkgY29udGFpbiBUSElTIGJsb2NrLCBzbyBpdCBjYW4gbmV2ZXIgZGFya2VuIHVucmVsYXRlZCBzZWN0aW9ucwogICAgIGVsc2V3aGVyZSBvbiB0aGUgcGFnZS4gKi8KICAubWFpbkJsb2Nrc1dyYXBwZXI6aGFzKC5hdGMtc2l0ZSksCiAgLnRlbXBsYXRlLWNvbnRlbnQ6aGFzKC5hdGMtc2l0ZSksCiAgLmJsb2NrLWNvbnRhaW5lci50b3Atc2VjdGlvbjpoYXMoLmF0Yy1zaXRlKSwKICAuYmxvY2tSb3dDb250YWluZXI6aGFzKC5hdGMtc2l0ZSksCiAgLnJvd0NvbFBhcmVudFdyYXBwZXI6aGFzKC5hdGMtc2l0ZSksCiAgLkVsZW1lbnRzQ29sU29ydGFibGU6aGFzKC5hdGMtc2l0ZSksCiAgLmN1c3RvbUh0bWxFbGVtZW50OmhhcyguYXRjLXNpdGUpLAogIC5lbGVtZW50V3JhcHBlcjpoYXMoLmF0Yy1zaXRlKSwKICAuZWxlbWVudEN1c3RvbUh0bWxIb2xkZXI6aGFzKC5hdGMtc2l0ZSl7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNhbm9weSkgIWltcG9ydGFudDsKICAgIGJhY2tncm91bmQtaW1hZ2U6bm9uZSAhaW1wb3J0YW50OwogIH0KCiAgLmF0Yy1zaXRlIDo6c2VsZWN0aW9ue2JhY2tncm91bmQ6dmFyKC0taGVhcnR3b29kKTtjb2xvcjp2YXIoLS1jYW5vcHkpO30KCiAgLyogVGV4dCBhbGlnbm1lbnQ6IHNvbWUgRnVubmVsUGFnZXMgdGhlbWVzIGFwcGx5IGEgZGVmYXVsdCBjZW50ZXJlZAogICAgIHRleHQtYWxpZ24gdGhhdCBibGVlZHMgb250byBmdWxsLXdpZHRoIGhlYWRpbmdzL3BhcmFncmFwaHMuIFdlIHNldAogICAgIGxlZnQgYXMgdGhlIHJlc29sdmVkIGRlZmF1bHQgaGVyZSwgbGV0IGl0IGluaGVyaXQgZG93biwgdGhlbiBmb3JjZQogICAgIGNlbnRlciBiYWNrIG9ubHkgd2hlcmUgaXQncyBpbnRlbnRpb25hbCAoY29udGFjdCBDVEEsIGZvb3RlcikuICovCiAgLmF0Yy1zaXRlIG5hdiwgLmF0Yy1zaXRlIGhlYWRlciwgLmF0Yy1zaXRlIHNlY3Rpb24sIC5hdGMtc2l0ZSBmb290ZXIsCiAgLmF0Yy1zaXRlIGRpdiwgLmF0Yy1zaXRlIHVsLCAuYXRjLXNpdGUgbGksIC5hdGMtc2l0ZSBoMSwgLmF0Yy1zaXRlIGgyLAogIC5hdGMtc2l0ZSBoMywgLmF0Yy1zaXRlIGg0LCAuYXRjLXNpdGUgcCwgLmF0Yy1zaXRlIHF7CiAgICB0ZXh0LWFsaWduOmluaGVyaXQ7CiAgfQoKICAuYXRjLXNpdGUgaDEsLmF0Yy1zaXRlIGgyLC5hdGMtc2l0ZSBoMywuYXRjLXNpdGUgaDR7CiAgICBmb250LWZhbWlseTonRnJhdW5jZXMnLCBzZXJpZjsKICAgIGZvbnQtd2VpZ2h0OjYwMDsKICAgIG1hcmdpbjowOwogICAgbGluZS1oZWlnaHQ6MS4wNTsKICAgIGxldHRlci1zcGFjaW5nOi0wLjAxZW07CiAgfQogIC5hdGMtc2l0ZSAuZXllYnJvd3sKICAgIGZvbnQtZmFtaWx5OidTcGFjZSBNb25vJywgbW9ub3NwYWNlOwogICAgZm9udC1zaXplOmNsYW1wKDAuNzhyZW0sIDAuNzJ2dywgMC45cmVtKTsKICAgIGZvbnQtd2VpZ2h0OjcwMDsKICAgIGxldHRlci1zcGFjaW5nOjAuMTRlbTsKICAgIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsKICAgIGNvbG9yOnZhcigtLWhlYXJ0d29vZC1kZWVwKTsKICAgIGRpc3BsYXk6ZmxleDsKICAgIGFsaWduLWl0ZW1zOmNlbnRlcjsKICAgIGdhcDowLjZlbTsKICB9CiAgLmF0Yy1zaXRlIC5leWVicm93OjpiZWZvcmV7CiAgICBjb250ZW50OiIiOwogICAgd2lkdGg6MjJweDsKICAgIGhlaWdodDoxcHg7CiAgICBiYWNrZ3JvdW5kOmN1cnJlbnRDb2xvcjsKICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrOwogICAgb3BhY2l0eTowLjg1OwogIH0KICAuYXRjLXNpdGUgYXtjb2xvcjppbmhlcml0O30KICAuYXRjLXNpdGUgaW1ne21heC13aWR0aDoxMDAlO2Rpc3BsYXk6YmxvY2s7fQogIC5hdGMtc2l0ZSAud3JhcHttYXgtd2lkdGg6MTE4MHB4O21hcmdpbjowIGF1dG87cGFkZGluZzowIDMycHg7fQogIC5hdGMtc2l0ZSBzZWN0aW9ue3Bvc2l0aW9uOnJlbGF0aXZlO30KCiAgLyogcmV2ZWFsICovCiAgLmF0Yy1zaXRlIC5yZXZlYWx7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDIycHgpO3RyYW5zaXRpb246b3BhY2l0eSAwLjhzIGVhc2UsIHRyYW5zZm9ybSAwLjhzIGVhc2U7fQogIC5hdGMtc2l0ZSAucmV2ZWFsLmlzLXZpc2libGV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApO30KICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSl7CiAgICAuYXRjLXNpdGUgLnJldmVhbHtvcGFjaXR5OjE7dHJhbnNmb3JtOm5vbmU7dHJhbnNpdGlvbjpub25lO30KICB9CgogIC8qID09PT09PT09PT09PSBOQVYgPT09PT09PT09PT09ICovCiAgLmF0Yy1zaXRlIG5hdnsKICAgIHBvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwOwogICAgYmFja2dyb3VuZDpyZ2JhKDIzLDM2LDI2LDAuOTIpOwogICAgYmFja2Ryb3AtZmlsdGVyOmJsdXIoNnB4KTsKICAgIGJvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWxpbmUpOwogIH0KICAuYXRjLXNpdGUgLm5hdi1pbm5lcnsKICAgIG1heC13aWR0aDoxMTgwcHg7bWFyZ2luOjAgYXV0bztwYWRkaW5nOjE2cHggMzJweDsKICAgIGRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47CiAgfQogIC5hdGMtc2l0ZSAuYnJhbmR7CiAgICBkaXNwbGF5OmZsZXg7CiAgICBhbGlnbi1pdGVtczpjZW50ZXI7CiAgfQogIC5hdGMtc2l0ZSAuYnJhbmQgaW1newogICAgaGVpZ2h0OjM4cHg7d2lkdGg6YXV0bzsKICAgIGZpbHRlcjpicmlnaHRuZXNzKDApIGludmVydCgxKTsKICAgIG9wYWNpdHk6MC45NTsKICB9CiAgLmF0Yy1zaXRlIC5uYXYtcmlnaHR7CiAgICBkaXNwbGF5OmZsZXg7CiAgICBhbGlnbi1pdGVtczpjZW50ZXI7CiAgICBnYXA6MjJweDsKICB9CiAgLmF0Yy1zaXRlIC5uYXYtbGlua3N7ZGlzcGxheTpmbGV4O2dhcDozMHB4O2xpc3Qtc3R5bGU6bm9uZTttYXJnaW46MDtwYWRkaW5nOjA7fQogIC5hdGMtc2l0ZSAubmF2LWxpbmtzIGF7CiAgICBjb2xvcjp2YXIoLS1saWNoZW4pOwogICAgdGV4dC1kZWNvcmF0aW9uOm5vbmU7CiAgICBmb250LXNpemU6Y2xhbXAoMC44OHJlbSwgMC44MnZ3LCAxcmVtKTsKICAgIGZvbnQtd2VpZ2h0OjYwMDsKICAgIGxldHRlci1zcGFjaW5nOjAuMDJlbTsKICAgIHRyYW5zaXRpb246Y29sb3IgMC4ycyBlYXNlOwogIH0KICAuYXRjLXNpdGUgLm5hdi1saW5rcyBhOmhvdmVye2NvbG9yOnZhcigtLWNhbnZhcyk7fQogIC5hdGMtc2l0ZSAubmF2LWN0YXsKICAgIGJhY2tncm91bmQ6dmFyKC0taGVhcnR3b29kKTsKICAgIGNvbG9yOnZhcigtLWNhbm9weSk7CiAgICBwYWRkaW5nOjEwcHggMjBweDsKICAgIGJvcmRlci1yYWRpdXM6MnB4OwogICAgZm9udC1zaXplOmNsYW1wKDAuODhyZW0sIDAuODJ2dywgMXJlbSk7CiAgICBmb250LXdlaWdodDo3MDA7CiAgICB0ZXh0LWRlY29yYXRpb246bm9uZTsKICAgIGxldHRlci1zcGFjaW5nOjAuMDFlbTsKICAgIHdoaXRlLXNwYWNlOm5vd3JhcDsKICB9CiAgLmF0Yy1zaXRlIC5uYXYtY3RhOmhvdmVye2JhY2tncm91bmQ6dmFyKC0taGVhcnR3b29kLXNvZnQpO30KICAuYXRjLXNpdGUgLm1vYmlsZS1oaWRle2Rpc3BsYXk6ZmxleDt9CiAgLmF0Yy1zaXRlIC5uYXYtdG9nZ2xlewogICAgZGlzcGxheTpub25lOwogICAgZmxleC1kaXJlY3Rpb246Y29sdW1uOwogICAganVzdGlmeS1jb250ZW50OmNlbnRlcjsKICAgIGdhcDo1cHg7CiAgICB3aWR0aDozMnB4OwogICAgaGVpZ2h0OjMycHg7CiAgICBwYWRkaW5nOjA7CiAgICBiYWNrZ3JvdW5kOm5vbmU7CiAgICBib3JkZXI6bm9uZTsKICAgIGN1cnNvcjpwb2ludGVyOwogICAgZmxleC1zaHJpbms6MDsKICB9CiAgLmF0Yy1zaXRlIC5uYXYtdG9nZ2xlIHNwYW57CiAgICBkaXNwbGF5OmJsb2NrOwogICAgd2lkdGg6MTAwJTsKICAgIGhlaWdodDoycHg7CiAgICBiYWNrZ3JvdW5kOnZhcigtLWNhbnZhcyk7CiAgICBib3JkZXItcmFkaXVzOjFweDsKICAgIHRyYW5zaXRpb246dHJhbnNmb3JtIDAuMjVzIGVhc2UsIG9wYWNpdHkgMC4ycyBlYXNlOwogIH0KICAuYXRjLXNpdGUgLm5hdi10b2dnbGVbYXJpYS1leHBhbmRlZD0idHJ1ZSJdIHNwYW46bnRoLWNoaWxkKDEpe3RyYW5zZm9ybTp0cmFuc2xhdGVZKDdweCkgcm90YXRlKDQ1ZGVnKTt9CiAgLmF0Yy1zaXRlIC5uYXYtdG9nZ2xlW2FyaWEtZXhwYW5kZWQ9InRydWUiXSBzcGFuOm50aC1jaGlsZCgyKXtvcGFjaXR5OjA7fQogIC5hdGMtc2l0ZSAubmF2LXRvZ2dsZVthcmlhLWV4cGFuZGVkPSJ0cnVlIl0gc3BhbjpudGgtY2hpbGQoMyl7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTdweCkgcm90YXRlKC00NWRlZyk7fQogIC5hdGMtc2l0ZSAubW9iaWxlLW1lbnV7CiAgICBkaXNwbGF5Om5vbmU7CiAgICBmbGV4LWRpcmVjdGlvbjpjb2x1bW47CiAgICBtYXgtaGVpZ2h0OjA7CiAgICBvdmVyZmxvdzpoaWRkZW47CiAgICBiYWNrZ3JvdW5kOnZhcigtLWNhbm9weSk7CiAgICBib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1saW5lKTsKICAgIHRyYW5zaXRpb246bWF4LWhlaWdodCAwLjNzIGVhc2U7CiAgfQogIC5hdGMtc2l0ZSAubW9iaWxlLW1lbnUuaXMtb3BlbnttYXgtaGVpZ2h0OjI4MHB4O30KICAuYXRjLXNpdGUgLm1vYmlsZS1tZW51IGF7CiAgICBjb2xvcjp2YXIoLS1saWNoZW4pOwogICAgdGV4dC1kZWNvcmF0aW9uOm5vbmU7CiAgICBmb250LXNpemU6MS4wNXJlbTsKICAgIGZvbnQtd2VpZ2h0OjYwMDsKICAgIHBhZGRpbmc6MTZweCAyMHB4OwogICAgYm9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tbGluZSk7CiAgfQogIC5hdGMtc2l0ZSAubW9iaWxlLW1lbnUgYTpmaXJzdC1jaGlsZHtib3JkZXItdG9wOm5vbmU7fQogIC5hdGMtc2l0ZSAubW9iaWxlLW1lbnUgYS5tb2JpbGUtbWVudS1jdGF7Y29sb3I6dmFyKC0taGVhcnR3b29kLXNvZnQpO30KICBAbWVkaWEgKG1heC13aWR0aDo4MjBweCl7CiAgICAuYXRjLXNpdGUgLm1vYmlsZS1oaWRle2Rpc3BsYXk6bm9uZTt9CiAgICAuYXRjLXNpdGUgLndyYXAsIC5hdGMtc2l0ZSAubmF2LWlubmVye3BhZGRpbmctbGVmdDoyMHB4O3BhZGRpbmctcmlnaHQ6MjBweDt9CiAgICAuYXRjLXNpdGUgLm5hdi10b2dnbGV7ZGlzcGxheTpmbGV4O30KICAgIC5hdGMtc2l0ZSAubW9iaWxlLW1lbnV7ZGlzcGxheTpmbGV4O30KICAgIC5hdGMtc2l0ZSAubmF2LWN0YXtwYWRkaW5nOjlweCAxNnB4O2ZvbnQtc2l6ZTowLjg1cmVtO30KICAgIC5hdGMtc2l0ZSAubmF2LXJpZ2h0e2dhcDoxNHB4O30KICB9CgogIC8qID09PT09PT09PT09PSBIRVJPID09PT09PT09PT09PSAqLwogIC5hdGMtc2l0ZSAuaGVyb3sKICAgIHBvc2l0aW9uOnJlbGF0aXZlOwogICAgY29sb3I6dmFyKC0tY2FudmFzKTsKICAgIHBhZGRpbmc6MTcycHggMCA5MHB4OwogICAgb3ZlcmZsb3c6aGlkZGVuOwogICAgaXNvbGF0aW9uOmlzb2xhdGU7CiAgfQogIC5hdGMtc2l0ZSAuaGVyby1tZWRpYXsKICAgIHBvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7CiAgICB6LWluZGV4Oi0yOwogICAgb3ZlcmZsb3c6aGlkZGVuOwogIH0KICAuYXRjLXNpdGUgLmhlcm8tbWVkaWEgaW1newogICAgd2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTsKICAgIG9iamVjdC1maXQ6Y292ZXI7CiAgICBvYmplY3QtcG9zaXRpb246Y2VudGVyIDMwJTsKICAgIGFuaW1hdGlvbjphdGMta2VuYnVybnMgMjJzIGVhc2UtaW4tb3V0IGluZmluaXRlIGFsdGVybmF0ZTsKICAgIGZpbHRlcjpzYXR1cmF0ZSgxLjA4KSBjb250cmFzdCgxLjA1KTsKICB9CiAgQGtleWZyYW1lcyBhdGMta2VuYnVybnN7CiAgICAwJXt0cmFuc2Zvcm06c2NhbGUoMS4wNikgdHJhbnNsYXRlKDAsMCk7fQogICAgMTAwJXt0cmFuc2Zvcm06c2NhbGUoMS4xNikgdHJhbnNsYXRlKC0xLjUlLC0xJSk7fQogIH0KICAuYXRjLXNpdGUgLmhlcm86OmJlZm9yZXsKICAgIGNvbnRlbnQ6IiI7CiAgICBwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowOwogICAgei1pbmRleDotMTsKICAgIGJhY2tncm91bmQ6CiAgICAgIGxpbmVhci1ncmFkaWVudCgxMDBkZWcsIHJnYmEoMjMsMzYsMjYsMC45NykgMCUsIHJnYmEoMjMsMzYsMjYsMC44OCkgMzIlLCByZ2JhKDIzLDM2LDI2LDAuNTUpIDU4JSwgcmdiYSgyMywzNiwyNiwwLjgyKSAxMDAlKSwKICAgICAgbGluZWFyLWdyYWRpZW50KDBkZWcsIHZhcigtLWNhbm9weSkgMCUsIHJnYmEoMjMsMzYsMjYsMC4xNSkgMjIlLCByZ2JhKDIzLDM2LDI2LDAuMSkgNzglLCB2YXIoLS1jYW5vcHkpIDEwMCUpOwogIH0KICAuYXRjLXNpdGUgLmhlcm8tYmFkZ2V7CiAgICBwb3NpdGlvbjphYnNvbHV0ZTsKICAgIHRvcDoxNzBweDsgcmlnaHQ6MzJweDsKICAgIHotaW5kZXg6MzsKICAgIHdpZHRoOjExOHB4O2hlaWdodDoxMThweDsKICAgIGJvcmRlci1yYWRpdXM6NTAlOwogICAgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1saW5lKTsKICAgIGRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjsKICAgIGJhY2tncm91bmQ6cmdiYSgyMywzNiwyNiwwLjU1KTsKICAgIGJhY2tkcm9wLWZpbHRlcjpibHVyKDRweCk7CiAgICBhbmltYXRpb246YXRjLXNwaW4gMjZzIGxpbmVhciBpbmZpbml0ZTsKICB9CiAgQGtleWZyYW1lcyBhdGMtc3BpbnsgdG97IHRyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKTt9IH0KICBAbWVkaWEgKG1heC13aWR0aDo5MDBweCl7IC5hdGMtc2l0ZSAuaGVyby1iYWRnZXtkaXNwbGF5Om5vbmU7fSB9CgogIC8qIHRpY2tlciAqLwogIC5hdGMtc2l0ZSAudGlja2VyewogICAgYmFja2dyb3VuZDp2YXIoLS1oZWFydHdvb2QpOwogICAgY29sb3I6dmFyKC0tY2Fub3B5KTsKICAgIG92ZXJmbG93OmhpZGRlbjsKICAgIHdoaXRlLXNwYWNlOm5vd3JhcDsKICAgIHBhZGRpbmc6MTFweCAwOwogICAgcG9zaXRpb246cmVsYXRpdmU7CiAgICB6LWluZGV4OjU7CiAgfQogIC5hdGMtc2l0ZSAudGlja2VyLXRyYWNrewogICAgZGlzcGxheTppbmxpbmUtZmxleDsKICAgIGdhcDowOwogICAgYW5pbWF0aW9uOmF0Yy10aWNrIDI4cyBsaW5lYXIgaW5maW5pdGU7CiAgfQogIC5hdGMtc2l0ZSAudGlja2VyLXRyYWNrIHNwYW57CiAgICBmb250LWZhbWlseTonU3BhY2UgTW9ubycsbW9ub3NwYWNlOwogICAgZm9udC1zaXplOmNsYW1wKDAuOHJlbSwgMC43MnZ3LCAwLjkycmVtKTsKICAgIGZvbnQtd2VpZ2h0OjcwMDsKICAgIGxldHRlci1zcGFjaW5nOjAuMDhlbTsKICAgIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsKICAgIHBhZGRpbmc6MCAyMnB4OwogICAgZGlzcGxheTppbmxpbmUtZmxleDsKICAgIGFsaWduLWl0ZW1zOmNlbnRlcjsKICAgIGdhcDoyMnB4OwogIH0KICAuYXRjLXNpdGUgLnRpY2tlci10cmFjayBzcGFuOjphZnRlcntjb250ZW50OiLil4YiO2ZvbnQtc2l6ZTowLjZyZW07b3BhY2l0eTowLjY7fQogIEBrZXlmcmFtZXMgYXRjLXRpY2t7CiAgICBmcm9te3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApO30KICAgIHRve3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO30KICB9CiAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpewogICAgLmF0Yy1zaXRlIC5oZXJvLW1lZGlhIGltZ3thbmltYXRpb246bm9uZTt9CiAgICAuYXRjLXNpdGUgLmhlcm8tYmFkZ2V7YW5pbWF0aW9uOm5vbmU7fQogICAgLmF0Yy1zaXRlIC50aWNrZXItdHJhY2t7YW5pbWF0aW9uOm5vbmU7fQogIH0KICAuYXRjLXNpdGUgLmhlcm8tZ3JpZHsKICAgIGRpc3BsYXk6Z3JpZDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczoxLjFmciAwLjlmcjsKICAgIGdhcDo0MHB4OwogICAgYWxpZ24taXRlbXM6Y2VudGVyOwogICAgcG9zaXRpb246cmVsYXRpdmU7CiAgICB6LWluZGV4OjI7CiAgICB0ZXh0LWFsaWduOmxlZnQ7CiAgfQogIC5hdGMtc2l0ZSAuaGVybyAuZXllYnJvd3tjb2xvcjp2YXIoLS1oZWFydHdvb2Qtc29mdCk7fQogIC5hdGMtc2l0ZSAuaGVybyBoMXsKICAgIGZvbnQtc2l6ZTpjbGFtcCgzLjFyZW0sIDYuMnZ3LCA1LjRyZW0pOwogICAgY29sb3I6dmFyKC0tY2FudmFzKTsKICB9CiAgLmF0Yy1zaXRlIC5oZXJvIGgxIGVtewogICAgZm9udC1zdHlsZTppdGFsaWM7CiAgICBjb2xvcjp2YXIoLS1oZWFydHdvb2Qtc29mdCk7CiAgfQogIC5hdGMtc2l0ZSAuaGVybyBwLmxlZGV7CiAgICBtYXJnaW4tdG9wOjI0cHg7CiAgICBtYXgtd2lkdGg6NDZjaDsKICAgIGZvbnQtc2l6ZTpjbGFtcCgxLjIycmVtLCAxLjQ1dncsIDEuNXJlbSk7CiAgICBsaW5lLWhlaWdodDoxLjU1OwogICAgY29sb3I6I0RDRThENzsKICB9CiAgLmF0Yy1zaXRlIC5oZXJvLWN0YS1yb3d7CiAgICBtYXJnaW4tdG9wOjM2cHg7CiAgICBkaXNwbGF5OmZsZXg7CiAgICBhbGlnbi1pdGVtczpjZW50ZXI7CiAgICBnYXA6MjJweDsKICAgIGZsZXgtd3JhcDp3cmFwOwogIH0KICAuYXRjLXNpdGUgLmJ0bi1wcmltYXJ5ewogICAgYmFja2dyb3VuZDp2YXIoLS1oZWFydHdvb2QpOwogICAgY29sb3I6dmFyKC0tY2Fub3B5KTsKICAgIHBhZGRpbmc6MTdweCAzMnB4OwogICAgYm9yZGVyLXJhZGl1czoycHg7CiAgICB0ZXh0LWRlY29yYXRpb246bm9uZTsKICAgIGZvbnQtd2VpZ2h0OjcwMDsKICAgIGZvbnQtc2l6ZTpjbGFtcCgwLjk4cmVtLCAwLjl2dywgMS4xcmVtKTsKICAgIGxldHRlci1zcGFjaW5nOjAuMDFlbTsKICAgIGRpc3BsYXk6aW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczpjZW50ZXI7CiAgICBnYXA6MTBweDsKICAgIHRyYW5zaXRpb246dHJhbnNmb3JtIDAuMnMgZWFzZSwgYmFja2dyb3VuZCAwLjJzIGVhc2UsIGJveC1zaGFkb3cgMC4ycyBlYXNlOwogICAgYm94LXNoYWRvdzowIDAgMCAwIHJnYmEoMTkwLDEwNiw0NiwwLjU1KTsKICAgIGFuaW1hdGlvbjphdGMtcHVsc2UgMi42cyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICB9CiAgLmF0Yy1zaXRlIC5idG4tcHJpbWFyeTpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWhlYXJ0d29vZC1zb2Z0KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtM3B4KSBzY2FsZSgxLjAyKTtib3gtc2hhZG93OjAgMTBweCAyNnB4IC02cHggcmdiYSgxOTAsMTA2LDQ2LDAuNTUpO30KICBAa2V5ZnJhbWVzIGF0Yy1wdWxzZXsKICAgIDAlLDEwMCV7Ym94LXNoYWRvdzowIDAgMCAwIHJnYmEoMTkwLDEwNiw0NiwwLjM1KTt9CiAgICA1MCV7Ym94LXNoYWRvdzowIDAgMCAxMHB4IHJnYmEoMTkwLDEwNiw0NiwwKTt9CiAgfQogIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKXsgLmF0Yy1zaXRlIC5idG4tcHJpbWFyeXthbmltYXRpb246bm9uZTt9IH0KICAuYXRjLXNpdGUgLmJ0bi1naG9zdHsKICAgIGNvbG9yOnZhcigtLWNhbnZhcyk7CiAgICB0ZXh0LWRlY29yYXRpb246bm9uZTsKICAgIGZvbnQtc2l6ZTpjbGFtcCgwLjk0cmVtLCAwLjg2dncsIDEuMDVyZW0pOwogICAgZm9udC13ZWlnaHQ6NjAwOwogICAgYm9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0taGVhcnR3b29kKTsKICAgIHBhZGRpbmctYm90dG9tOjNweDsKICB9CiAgLmF0Yy1zaXRlIC5oZXJvLXN0YXRzewogICAgbWFyZ2luLXRvcDo1NnB4OwogICAgZGlzcGxheTpncmlkOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCg0LDFmcik7CiAgICBnYXA6MDsKICAgIGJvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWxpbmUpOwogICAgcGFkZGluZy10b3A6MjZweDsKICAgIHRleHQtYWxpZ246bGVmdDsKICB9CiAgLmF0Yy1zaXRlIC5oZXJvLXN0YXRzIGRpdnsKICAgIHBhZGRpbmctcmlnaHQ6MThweDsKICAgIGJvcmRlci1yaWdodDoxcHggc29saWQgdmFyKC0tbGluZSk7CiAgICB0ZXh0LWFsaWduOmxlZnQ7CiAgfQogIC5hdGMtc2l0ZSAuaGVyby1zdGF0cyBkaXY6bGFzdC1jaGlsZHtib3JkZXItcmlnaHQ6bm9uZTt9CiAgLmF0Yy1zaXRlIC5oZXJvLXN0YXRzIC5udW17CiAgICBmb250LWZhbWlseTonRnJhdW5jZXMnLHNlcmlmOwogICAgZm9udC1zaXplOmNsYW1wKDIuMzVyZW0sIDIuNnZ3LCAzcmVtKTsKICAgIGNvbG9yOnZhcigtLWhlYXJ0d29vZC1zb2Z0KTsKICAgIGZvbnQtd2VpZ2h0OjYwMDsKICB9CiAgLmF0Yy1zaXRlIC5oZXJvLXN0YXRzIC5sYmx7CiAgICBmb250LWZhbWlseTonU3BhY2UgTW9ubycsbW9ub3NwYWNlOwogICAgZm9udC1zaXplOmNsYW1wKDAuNzJyZW0sIDAuN3Z3LCAwLjg0cmVtKTsKICAgIGxldHRlci1zcGFjaW5nOjAuMDZlbTsKICAgIGNvbG9yOnZhcigtLWxpY2hlbik7CiAgICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7CiAgICBtYXJnaW4tdG9wOjZweDsKICB9CiAgQG1lZGlhIChtYXgtd2lkdGg6OTAwcHgpewogICAgLmF0Yy1zaXRlIC5oZXJvLWdyaWR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjt9CiAgICAuYXRjLXNpdGUgLmhlcm8tc3RhdHN7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLDFmcik7cm93LWdhcDoyMnB4O30KICAgIC5hdGMtc2l0ZSAuaGVyby1zdGF0cyBkaXY6bnRoLWNoaWxkKDIpe2JvcmRlci1yaWdodDpub25lO30KICAgIC5hdGMtc2l0ZSAuaGVybyBoMXtmb250LXNpemU6Y2xhbXAoM3JlbSwgMTB2dywgNC41cmVtKTt9CiAgfQogIEBtZWRpYSAobWF4LXdpZHRoOjU2MHB4KXsKICAgIC5hdGMtc2l0ZXtmb250LXNpemU6MTdweDt9CiAgICAuYXRjLXNpdGUgLmhlcm8gaDF7Zm9udC1zaXplOmNsYW1wKDIuNjVyZW0sIDEzdncsIDMuNnJlbSk7fQogICAgLmF0Yy1zaXRlIC5oZXJvIHAubGVkZXtmb250LXNpemU6MS4xcmVtO30KICB9CgogIC8qIHJpbmcgaWxsdXN0cmF0aW9uICovCiAgLmF0Yy1zaXRlIC5yaW5nLXdyYXB7CiAgICBwb3NpdGlvbjpyZWxhdGl2ZTsKICAgIGRpc3BsYXk6ZmxleDsKICAgIGFsaWduLWl0ZW1zOmNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDpjZW50ZXI7CiAgfQogIC5hdGMtc2l0ZSAucmluZy13cmFwIHN2Z3t3aWR0aDoxMDAlO2hlaWdodDphdXRvO21heC13aWR0aDo0NjBweDt9CiAgLmF0Yy1zaXRlIC5yaW5nLXdyYXAgY2lyY2xlewogICAgZmlsbDpub25lOwogICAgc3Ryb2tlLWxpbmVjYXA6cm91bmQ7CiAgfQogIC5hdGMtc2l0ZSAucmluZy1jYXB7CiAgICBwb3NpdGlvbjphYnNvbHV0ZTsKICAgIHRleHQtYWxpZ246Y2VudGVyOwogICAgZm9udC1mYW1pbHk6J0ZyYXVuY2VzJyxzZXJpZjsKICB9CiAgLmF0Yy1zaXRlIC5yaW5nLWNhcCAueXJ7Zm9udC1zaXplOmNsYW1wKDIuOHJlbSwgM3Z3LCAzLjVyZW0pO2NvbG9yOnZhcigtLWNhbnZhcyk7Zm9udC13ZWlnaHQ6NzAwO30KICAuYXRjLXNpdGUgLnJpbmctY2FwIC5zaW5jZXsKICAgIGZvbnQtZmFtaWx5OidTcGFjZSBNb25vJyxtb25vc3BhY2U7CiAgICBmb250LXNpemU6Y2xhbXAoMC42OHJlbSwgMC42NXZ3LCAwLjhyZW0pOwogICAgbGV0dGVyLXNwYWNpbmc6MC4xNGVtOwogICAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOwogICAgY29sb3I6dmFyKC0tbGljaGVuKTsKICB9CgogIC8qID09PT09PT09PT09PSBTRUNUSU9OIEhFQURFUlMgPT09PT09PT09PT09ICovCiAgLmF0Yy1zaXRlIC5zZWMtaGVhZHttYXgtd2lkdGg6NjYwcHg7bWFyZ2luLWJvdHRvbTo1NnB4O3RleHQtYWxpZ246bGVmdDt9CiAgLmF0Yy1zaXRlIC5zZWMtaGVhZCBoMntmb250LXNpemU6Y2xhbXAoMi42cmVtLCA0LjJ2dywgNHJlbSk7bWFyZ2luLXRvcDoxOHB4O30KICAuYXRjLXNpdGUgLnNlYy1oZWFkIHB7Y29sb3I6dmFyKC0tYmFyayk7bWFyZ2luLXRvcDoxOHB4O2ZvbnQtc2l6ZTpjbGFtcCgxLjE2cmVtLCAxLjI1dncsIDEuNHJlbSk7bGluZS1oZWlnaHQ6MS42O21heC13aWR0aDo1NmNoO2ZvbnQtd2VpZ2h0OjUwMDt9CiAgQG1lZGlhIChtYXgtd2lkdGg6OTAwcHgpewogICAgLmF0Yy1zaXRlIC5zZWMtaGVhZCBoMntmb250LXNpemU6Y2xhbXAoMi4zcmVtLCA3dncsIDMuNHJlbSk7fQogIH0KICBAbWVkaWEgKG1heC13aWR0aDo1NjBweCl7CiAgICAuYXRjLXNpdGUgLnNlYy1oZWFkIGgye2ZvbnQtc2l6ZTpjbGFtcCgyLjFyZW0sIDEwdncsIDNyZW0pO30KICB9CgogIC8qID09PT09PT09PT09PSBUSU1FTElORSAoZ3Jvd3RoIHJpbmdzKSA9PT09PT09PT09PT0gKi8KICAuYXRjLXNpdGUgLnRpbWVsaW5lewogICAgYmFja2dyb3VuZDp2YXIoLS1jYW52YXMpOwogICAgcGFkZGluZzoxMDBweCAwIDkwcHg7CiAgfQogIC5hdGMtc2l0ZSAucmluZ3Mtcm93ewogICAgZGlzcGxheTpncmlkOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCg2LDFmcik7CiAgICBnYXA6MThweDsKICAgIG1hcmdpbi10b3A6MTBweDsKICB9CiAgLmF0Yy1zaXRlIC5yaW5nLWNhcmR7CiAgICB0ZXh0LWFsaWduOmxlZnQ7CiAgICBwYWRkaW5nOjI2cHggMTJweCAyMHB4OwogICAgYm9yZGVyLXRvcDoycHggc29saWQgdmFyKC0tY2FudmFzLTIpOwogICAgcG9zaXRpb246cmVsYXRpdmU7CiAgfQogIC5hdGMtc2l0ZSAucmluZy1jYXJkOjpiZWZvcmV7CiAgICBjb250ZW50OiIiOwogICAgcG9zaXRpb246YWJzb2x1dGU7dG9wOi0ycHg7bGVmdDowOwogICAgd2lkdGg6MCU7CiAgICBoZWlnaHQ6MnB4OwogICAgYmFja2dyb3VuZDp2YXIoLS1oZWFydHdvb2QpOwogICAgdHJhbnNpdGlvbjp3aWR0aCAwLjlzIGVhc2U7CiAgfQogIC5hdGMtc2l0ZSAucmluZy1jYXJkLmlzLXZpc2libGU6OmJlZm9yZXt3aWR0aDoxMDAlO30KICAuYXRjLXNpdGUgLnJpbmctY2FyZCAueXJ7CiAgICBmb250LWZhbWlseTonU3BhY2UgTW9ubycsbW9ub3NwYWNlOwogICAgZm9udC1zaXplOmNsYW1wKDAuODRyZW0sIDAuNzV2dywgMC45NnJlbSk7CiAgICBjb2xvcjp2YXIoLS1oZWFydHdvb2QtZGVlcCk7CiAgICBmb250LXdlaWdodDo3MDA7CiAgICB0ZXh0LWFsaWduOmxlZnQ7CiAgfQogIC5hdGMtc2l0ZSAucmluZy1jYXJkIGg0ewogICAgZm9udC1zaXplOmNsYW1wKDEuMjJyZW0sIDEuMjV2dywgMS41cmVtKTsKICAgIG1hcmdpbi10b3A6MTJweDsKICAgIGNvbG9yOnZhcigtLWluayk7CiAgICB0ZXh0LWFsaWduOmxlZnQ7CiAgfQogIC5hdGMtc2l0ZSAucmluZy1jYXJkIHB7CiAgICBmb250LXNpemU6Y2xhbXAoMC45OHJlbSwgMC45NXZ3LCAxLjEycmVtKTsKICAgIGxpbmUtaGVpZ2h0OjEuNTU7CiAgICBjb2xvcjp2YXIoLS1iYXJrKTsKICAgIG1hcmdpbi10b3A6MTBweDsKICAgIGZvbnQtd2VpZ2h0OjUwMDsKICAgIHRleHQtYWxpZ246bGVmdDsKICB9CiAgQG1lZGlhIChtYXgtd2lkdGg6OTAwcHgpewogICAgLmF0Yy1zaXRlIC5yaW5ncy1yb3d7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLDFmcik7fQogIH0KCiAgLyogPT09PT09PT09PT09IFNFUlZJQ0VTID09PT09PT09PT09PSAqLwogIC5hdGMtc2l0ZSAuc2VydmljZXN7CiAgICBiYWNrZ3JvdW5kOnZhcigtLWNhbm9weSk7CiAgICBjb2xvcjp2YXIoLS1jYW52YXMpOwogICAgcGFkZGluZzoxMDBweCAwOwogIH0KICAuYXRjLXNpdGUgLnNlcnZpY2VzIC5zZWMtaGVhZCBwe2NvbG9yOnZhcigtLWxpY2hlbik7fQogIC5hdGMtc2l0ZSAuc2VydmljZXMgLmV5ZWJyb3d7Y29sb3I6dmFyKC0taGVhcnR3b29kLXNvZnQpO30KICAuYXRjLXNpdGUgLnNlcnZpY2UtZ3JvdXBzewogICAgZGlzcGxheTpncmlkOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLDFmcik7CiAgICBnYXA6MnB4OwogICAgYmFja2dyb3VuZDp2YXIoLS1saW5lKTsKICAgIG1hcmdpbi10b3A6MjBweDsKICAgIGJvcmRlcjoxcHggc29saWQgdmFyKC0tbGluZSk7CiAgfQogIC5hdGMtc2l0ZSAuc2VydmljZS1ncm91cHsKICAgIGJhY2tncm91bmQ6dmFyKC0tY2Fub3B5KTsKICAgIHBhZGRpbmc6MzRweCAzNHB4IDMwcHg7CiAgICB0ZXh0LWFsaWduOmxlZnQ7CiAgfQogIC5hdGMtc2l0ZSAuc2VydmljZS1ncm91cCAudGFnewogICAgZm9udC1mYW1pbHk6J1NwYWNlIE1vbm8nLG1vbm9zcGFjZTsKICAgIGZvbnQtc2l6ZTpjbGFtcCgwLjcycmVtLCAwLjY4dncsIDAuODRyZW0pOwogICAgbGV0dGVyLXNwYWNpbmc6MC4xZW07CiAgICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7CiAgICBjb2xvcjp2YXIoLS1oZWFydHdvb2Qtc29mdCk7CiAgICBmb250LXdlaWdodDo3MDA7CiAgICB0ZXh0LWFsaWduOmxlZnQ7CiAgfQogIC5hdGMtc2l0ZSAuc2VydmljZS1ncm91cCBoM3sKICAgIGNvbG9yOnZhcigtLWNhbnZhcyk7CiAgICBmb250LXNpemU6Y2xhbXAoMS44cmVtLCAydncsIDIuM3JlbSk7CiAgICBtYXJnaW4tdG9wOjEzcHg7CiAgICB0ZXh0LWFsaWduOmxlZnQ7CiAgfQogIC5hdGMtc2l0ZSAuc2VydmljZS1ncm91cCB1bHsKICAgIGxpc3Qtc3R5bGU6bm9uZTsKICAgIG1hcmdpbjoyNHB4IDAgMDsKICAgIHBhZGRpbmc6MDsKICB9CiAgLmF0Yy1zaXRlIC5zZXJ2aWNlLWdyb3VwIGxpewogICAgcGFkZGluZzoxNXB4IDA7CiAgICBib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1saW5lKTsKICAgIGRpc3BsYXk6ZmxleDsKICAgIGFsaWduLWl0ZW1zOmJhc2VsaW5lOwogICAgZ2FwOjE0cHg7CiAgICBmb250LXNpemU6Y2xhbXAoMS4wOHJlbSwgMS4wNXZ3LCAxLjI1cmVtKTsKICAgIHRleHQtYWxpZ246bGVmdDsKICB9CiAgLmF0Yy1zaXRlIC5zZXJ2aWNlLWdyb3VwIGxpOmZpcnN0LWNoaWxke2JvcmRlci10b3A6bm9uZTt9CiAgLmF0Yy1zaXRlIC5zZXJ2aWNlLWdyb3VwIGxpIC5tYXJrewogICAgY29sb3I6dmFyKC0taGVhcnR3b29kLXNvZnQpOwogICAgZm9udC1mYW1pbHk6J1NwYWNlIE1vbm8nLG1vbm9zcGFjZTsKICAgIGZsZXgtc2hyaW5rOjA7CiAgfQogIC5hdGMtc2l0ZSAuc2VydmljZS1ncm91cCBsaSAudHh0IGJ7Y29sb3I6dmFyKC0tY2FudmFzKTt9CiAgLmF0Yy1zaXRlIC5zZXJ2aWNlLWdyb3VwIGxpIC50eHQgc3BhbnsKICAgIGRpc3BsYXk6YmxvY2s7CiAgICBjb2xvcjp2YXIoLS1saWNoZW4pOwogICAgZm9udC1zaXplOmNsYW1wKDAuOTRyZW0sIDAuOTJ2dywgMS4wOHJlbSk7CiAgICBsaW5lLWhlaWdodDoxLjU7CiAgICBtYXJnaW4tdG9wOjRweDsKICAgIHRleHQtYWxpZ246bGVmdDsKICB9CiAgQG1lZGlhIChtYXgtd2lkdGg6ODIwcHgpewogICAgLmF0Yy1zaXRlIC5zZXJ2aWNlLWdyb3Vwc3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyO30KICB9CgogIC8qID09PT09PT09PT09PSBUUlVTVCAvIFdIWSA9PT09PT09PT09PT0gKi8KICAuYXRjLXNpdGUgLnRydXN0ewogICAgYmFja2dyb3VuZDp2YXIoLS1jYW52YXMpOwogICAgcGFkZGluZzoxMDBweCAwOwogIH0KICAuYXRjLXNpdGUgLnRydXN0LWdyaWR7CiAgICBkaXNwbGF5OmdyaWQ7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjsKICAgIGdhcDo2NHB4OwogICAgYWxpZ24taXRlbXM6c3RhcnQ7CiAgfQogIC5hdGMtc2l0ZSAudHJ1c3QtbGlzdHtsaXN0LXN0eWxlOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowO30KICAuYXRjLXNpdGUgLnRydXN0LWxpc3QgbGl7CiAgICBkaXNwbGF5OmdyaWQ7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6NDRweCAxZnI7CiAgICBnYXA6MThweDsKICAgIHBhZGRpbmc6MjJweCAwOwogICAgYm9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tY2FudmFzLTIpOwogICAgdGV4dC1hbGlnbjpsZWZ0OwogIH0KICAuYXRjLXNpdGUgLnRydXN0LWxpc3QgbGk6Zmlyc3QtY2hpbGR7Ym9yZGVyLXRvcDpub25lO30KICAuYXRjLXNpdGUgLnRydXN0LWljb257CiAgICB3aWR0aDo0NHB4O2hlaWdodDo0NHB4OwogICAgYm9yZGVyOjEuNXB4IHNvbGlkIHZhcigtLWhlYXJ0d29vZCk7CiAgICBib3JkZXItcmFkaXVzOjUwJTsKICAgIGRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjsKICAgIGNvbG9yOnZhcigtLWhlYXJ0d29vZC1kZWVwKTsKICAgIGZsZXgtc2hyaW5rOjA7CiAgfQogIC5hdGMtc2l0ZSAudHJ1c3QtbGlzdCBoNHtmb250LXNpemU6Y2xhbXAoMS4yMnJlbSwgMS4yNXZ3LCAxLjVyZW0pO2NvbG9yOnZhcigtLWluayk7dGV4dC1hbGlnbjpsZWZ0O30KICAuYXRjLXNpdGUgLnRydXN0LWxpc3QgcHtmb250LXNpemU6Y2xhbXAoMXJlbSwgMXZ3LCAxLjE2cmVtKTtsaW5lLWhlaWdodDoxLjU1O2NvbG9yOnZhcigtLWJhcmspO21hcmdpbi10b3A6OHB4O2ZvbnQtd2VpZ2h0OjUwMDt0ZXh0LWFsaWduOmxlZnQ7fQoKICAuYXRjLXNpdGUgLnRydXN0LXZpc3VhbHsKICAgIGRpc3BsYXk6Z3JpZDsKICAgIGdhcDoxOHB4OwogIH0KICAuYXRjLXNpdGUgLmNlcnQtY2FyZHsKICAgIGRpc3BsYXk6Z3JpZDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczoxMTZweCAxZnI7CiAgICBnYXA6MjJweDsKICAgIGFsaWduLWl0ZW1zOmNlbnRlcjsKICAgIHBhZGRpbmc6MjBweDsKICAgIGJhY2tncm91bmQ6dmFyKC0tY2Fub3B5KTsKICAgIGNvbG9yOnZhcigtLWNhbnZhcyk7CiAgICBib3JkZXItbGVmdDo0cHggc29saWQgdmFyKC0taGVhcnR3b29kKTsKICB9CiAgLmF0Yy1zaXRlIC5jZXJ0LWJhZGdlLWNyb3B7CiAgICB3aWR0aDoxMTZweDsKICAgIGxpbmUtaGVpZ2h0OjA7CiAgICBiYWNrZ3JvdW5kOnRyYW5zcGFyZW50OwogIH0KICAuYXRjLXNpdGUgLmNlcnQtYmFkZ2UtY3JvcCBpbWd7CiAgICBkaXNwbGF5OmJsb2NrOwogICAgd2lkdGg6MTAwJTsKICAgIGhlaWdodDphdXRvOwogICAgbWF4LXdpZHRoOjEwMCU7CiAgICBjbGlwLXBhdGg6aW5zZXQoMnB4KTsKICB9CiAgLmF0Yy1zaXRlIC5jZXJ0LWNhcmQgLmV5ZWJyb3d7CiAgICBjb2xvcjp2YXIoLS1oZWFydHdvb2Qtc29mdCk7CiAgICBtYXJnaW4tYm90dG9tOjhweDsKICB9CiAgLmF0Yy1zaXRlIC5jZXJ0LWNhcmQgaDN7CiAgICBmb250LXNpemU6Y2xhbXAoMS40cmVtLCAxLjd2dywgMS45cmVtKTsKICAgIGNvbG9yOnZhcigtLWNhbnZhcyk7CiAgICB0ZXh0LWFsaWduOmxlZnQ7CiAgfQogIC5hdGMtc2l0ZSAuY2VydC1jYXJkIHB7CiAgICBtYXJnaW46OHB4IDAgMDsKICAgIGNvbG9yOnZhcigtLWxpY2hlbik7CiAgICBmb250LXNpemU6Y2xhbXAoMC45MnJlbSwgMC45dncsIDEuMDRyZW0pOwogICAgbGluZS1oZWlnaHQ6MS41OwogICAgdGV4dC1hbGlnbjpsZWZ0OwogIH0KICAuYXRjLXNpdGUgLmdhbGxlcnktc3RyaXB7CiAgICBkaXNwbGF5OmdyaWQ7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjsKICAgIGdhcDoxMnB4OwogIH0KICAuYXRjLXNpdGUgLmdhbGxlcnktc3RyaXAgaW1newogICAgd2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTsKICAgIG9iamVjdC1maXQ6Y292ZXI7CiAgICBhc3BlY3QtcmF0aW86NC8zOwogICAgYmFja2dyb3VuZDp2YXIoLS1jYW52YXMtMik7CiAgfQogIC5hdGMtc2l0ZSAuZ2FsbGVyeS1zdHJpcCAudGFsbHthc3BlY3QtcmF0aW86NC81O2dyaWQtcm93OnNwYW4gMjt9CiAgQG1lZGlhIChtYXgtd2lkdGg6OTAwcHgpewogICAgLmF0Yy1zaXRlIC50cnVzdC1ncmlke2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7fQogIH0KICBAbWVkaWEgKG1heC13aWR0aDo1NjBweCl7CiAgICAuYXRjLXNpdGUgLmNlcnQtY2FyZHsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjg4cHggMWZyOwogICAgICBnYXA6MTZweDsKICAgICAgcGFkZGluZzoxNnB4OwogICAgfQogICAgLmF0Yy1zaXRlIC5jZXJ0LWJhZGdlLWNyb3B7d2lkdGg6ODhweDt9CiAgfQoKICAvKiA9PT09PT09PT09PT0gRkVFREJBQ0sgVEhFTUVTID09PT09PT09PT09PSAqLwogIC5hdGMtc2l0ZSAuZmVlZGJhY2t7CiAgICBiYWNrZ3JvdW5kOnZhcigtLWJhcmspOwogICAgY29sb3I6dmFyKC0tY2FudmFzKTsKICAgIHBhZGRpbmc6ODBweCAwOwogIH0KICAuYXRjLXNpdGUgLmZlZWRiYWNrIC5zZWMtaGVhZCBwe2NvbG9yOiNGMEU4RDg7fQogIC5hdGMtc2l0ZSAuZmVlZGJhY2sgLmV5ZWJyb3d7Y29sb3I6dmFyKC0taGVhcnR3b29kLXNvZnQpO30KICAuYXRjLXNpdGUgLmZlZWRiYWNrLXJvd3sKICAgIGRpc3BsYXk6Z3JpZDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMywxZnIpOwogICAgZ2FwOjI4cHg7CiAgICBtYXJnaW4tdG9wOjEwcHg7CiAgfQogIC5hdGMtc2l0ZSAuZmVlZGJhY2stY2FyZHsKICAgIGJvcmRlci1sZWZ0OjJweCBzb2xpZCB2YXIoLS1oZWFydHdvb2Qtc29mdCk7CiAgICBwYWRkaW5nLWxlZnQ6MjJweDsKICAgIHRleHQtYWxpZ246bGVmdDsKICB9CiAgLmF0Yy1zaXRlIC5mZWVkYmFjay1jYXJkIHF7CiAgICBmb250LWZhbWlseTonRnJhdW5jZXMnLHNlcmlmOwogICAgZm9udC1zdHlsZTppdGFsaWM7CiAgICBmb250LXNpemU6Y2xhbXAoMS40cmVtLCAxLjY1dncsIDEuODVyZW0pOwogICAgZGlzcGxheTpibG9jazsKICAgIGxpbmUtaGVpZ2h0OjEuMzY7CiAgICB0ZXh0LWFsaWduOmxlZnQ7CiAgfQogIC5hdGMtc2l0ZSAuZmVlZGJhY2stY2FyZCAud2hvewogICAgbWFyZ2luLXRvcDoxOHB4OwogICAgZm9udC1mYW1pbHk6J1NwYWNlIE1vbm8nLG1vbm9zcGFjZTsKICAgIGZvbnQtc2l6ZTpjbGFtcCgwLjc2cmVtLCAwLjcydncsIDAuODhyZW0pOwogICAgbGV0dGVyLXNwYWNpbmc6MC4wNmVtOwogICAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOwogICAgY29sb3I6I0YwRTVEMjsKICAgIHRleHQtYWxpZ246bGVmdDsKICB9CiAgQG1lZGlhIChtYXgtd2lkdGg6OTAwcHgpewogICAgLmF0Yy1zaXRlIC5mZWVkYmFjay1yb3d7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjt9CiAgfQoKICAvKiA9PT09PT09PT09PT0gU0VSVklDRSBBUkVBID09PT09PT09PT09PSAqLwogIC5hdGMtc2l0ZSAuYXJlYXsKICAgIGJhY2tncm91bmQ6dmFyKC0tY2FudmFzKTsKICAgIHBhZGRpbmc6OTBweCAwIDEwMHB4OwogIH0KICAuYXRjLXNpdGUgLmFyZWEtZ3JpZHsKICAgIGRpc3BsYXk6Z3JpZDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyOwogICAgZ2FwOjYwcHg7CiAgICBhbGlnbi1pdGVtczpjZW50ZXI7CiAgfQogIC5hdGMtc2l0ZSAuYXJlYS1ncmlkID4gZGl2e3RleHQtYWxpZ246bGVmdDt9CiAgLmF0Yy1zaXRlIC5hcmVhIGgye2ZvbnQtc2l6ZTpjbGFtcCgyLjRyZW0sIDMuNnZ3LCAzLjVyZW0pO30KICAuYXRjLXNpdGUgLmFyZWEgcHtjb2xvcjp2YXIoLS1iYXJrKTttYXJnaW4tdG9wOjE4cHg7bWF4LXdpZHRoOjQ4Y2g7Zm9udC1zaXplOmNsYW1wKDEuMDhyZW0sIDEuMTJ2dywgMS4yOHJlbSk7Zm9udC13ZWlnaHQ6NTAwO3RleHQtYWxpZ246bGVmdDt9CiAgLmF0Yy1zaXRlIC5jaGlwLXJvd3sKICAgIGRpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtnYXA6MTBweDsKICAgIG1hcmdpbi10b3A6MjJweDsKICB9CiAgLmF0Yy1zaXRlIC5jaGlwewogICAgYm9yZGVyOjEuNXB4IHNvbGlkIHZhcigtLWJhcmspOwogICAgcGFkZGluZzo5cHggMjBweDsKICAgIGJvcmRlci1yYWRpdXM6OTk5cHg7CiAgICBmb250LXNpemU6Y2xhbXAoMC45NHJlbSwgMC45dncsIDEuMDhyZW0pOwogICAgY29sb3I6dmFyKC0tYmFyayk7CiAgICBmb250LXdlaWdodDo2MDA7CiAgfQogIC5hdGMtc2l0ZSAuYXJlYS1ub3RlewogICAgYmFja2dyb3VuZDp2YXIoLS1jYW5vcHkpOwogICAgY29sb3I6dmFyKC0tY2FudmFzKTsKICAgIHBhZGRpbmc6MzZweDsKICAgIGJvcmRlci1yYWRpdXM6MnB4OwogICAgdGV4dC1hbGlnbjpsZWZ0OwogIH0KICAuYXRjLXNpdGUgLmFyZWEtbm90ZSAuZXllYnJvd3tjb2xvcjp2YXIoLS1oZWFydHdvb2Qtc29mdCk7bWFyZ2luLWJvdHRvbToxNnB4O30KICAuYXRjLXNpdGUgLmFyZWEtbm90ZSBwe2NvbG9yOnZhcigtLWxpY2hlbik7Zm9udC1zaXplOmNsYW1wKDEuMDhyZW0sIDEuMTJ2dywgMS4yOHJlbSk7dGV4dC1hbGlnbjpsZWZ0O30KICBAbWVkaWEgKG1heC13aWR0aDo5MDBweCl7CiAgICAuYXRjLXNpdGUgLmFyZWEtZ3JpZHtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyO30KICB9CgogIC8qID09PT09PT09PT09PSBDVEEgLyBDT05UQUNUID09PT09PT09PT09PSAqLwogIC5hdGMtc2l0ZSAuY29udGFjdHsKICAgIGJhY2tncm91bmQ6dmFyKC0tY2Fub3B5KTsKICAgIGNvbG9yOnZhcigtLWNhbnZhcyk7CiAgICBwYWRkaW5nOjExMHB4IDAgOTBweDsKICAgIHRleHQtYWxpZ246Y2VudGVyOwogIH0KICAuYXRjLXNpdGUgLmNvbnRhY3QgaDIsIC5hdGMtc2l0ZSAuY29udGFjdCBwe3RleHQtYWxpZ246Y2VudGVyO30KICAuYXRjLXNpdGUgLmNvbnRhY3QgLmV5ZWJyb3d7Y29sb3I6dmFyKC0taGVhcnR3b29kLXNvZnQpO30KICAuYXRjLXNpdGUgLmNvbnRhY3QgaDJ7CiAgICBmb250LXNpemU6Y2xhbXAoMi44cmVtLCA0Ljh2dywgNC41cmVtKTsKICAgIG1heC13aWR0aDoxNmNoOwogICAgbWFyZ2luOjIycHggYXV0byAwOwogIH0KICAuYXRjLXNpdGUgLmNvbnRhY3QgcC5sZWRlewogICAgY29sb3I6dmFyKC0tbGljaGVuKTsKICAgIG1heC13aWR0aDo1MmNoOwogICAgbWFyZ2luOjIycHggYXV0byAwOwogICAgZm9udC1zaXplOmNsYW1wKDEuMThyZW0sIDEuM3Z3LCAxLjQ1cmVtKTsKICB9CiAgLmF0Yy1zaXRlIC5jb250YWN0LWN0YS1yb3d7CiAgICBtYXJnaW4tdG9wOjM4cHg7CiAgICBkaXNwbGF5OmZsZXg7CiAgICBnYXA6MjBweDsKICAgIGp1c3RpZnktY29udGVudDpjZW50ZXI7CiAgICBmbGV4LXdyYXA6d3JhcDsKICB9CiAgLmF0Yy1zaXRlIC5jb250YWN0LWRldGFpbHsKICAgIG1hcmdpbi10b3A6NTZweDsKICAgIGRpc3BsYXk6ZmxleDsKICAgIGp1c3RpZnktY29udGVudDpjZW50ZXI7CiAgICBnYXA6NTJweDsKICAgIGZsZXgtd3JhcDp3cmFwOwogICAgYm9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tbGluZSk7CiAgICBwYWRkaW5nLXRvcDozMnB4OwogIH0KICAuYXRjLXNpdGUgLmNvbnRhY3QtZGV0YWlsID4gZGl2e3RleHQtYWxpZ246bGVmdDt9CiAgLmF0Yy1zaXRlIC5jb250YWN0LWRldGFpbCAubGJsewogICAgZm9udC1mYW1pbHk6J1NwYWNlIE1vbm8nLG1vbm9zcGFjZTsKICAgIGZvbnQtc2l6ZTpjbGFtcCgwLjcycmVtLCAwLjY4dncsIDAuODRyZW0pOwogICAgbGV0dGVyLXNwYWNpbmc6MC4xZW07CiAgICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7CiAgICBjb2xvcjp2YXIoLS1oZWFydHdvb2Qtc29mdCk7CiAgfQogIC5hdGMtc2l0ZSAuY29udGFjdC1kZXRhaWwgLnZhbHttYXJnaW4tdG9wOjdweDtmb250LXNpemU6Y2xhbXAoMS4wNXJlbSwgMXZ3LCAxLjJyZW0pO2NvbG9yOnZhcigtLWNhbnZhcyk7fQoKICAuYXRjLXNpdGUgZm9vdGVyewogICAgYmFja2dyb3VuZDp2YXIoLS1jYW5vcHkpOwogICAgY29sb3I6dmFyKC0tbGljaGVuKTsKICAgIHRleHQtYWxpZ246Y2VudGVyOwogICAgcGFkZGluZzoyNnB4IDAgMzRweDsKICAgIGZvbnQtc2l6ZTpjbGFtcCgwLjg0cmVtLCAwLjc4dncsIDAuOTZyZW0pOwogICAgYm9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tbGluZSk7CiAgfQo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5Pgo8ZGl2IGNsYXNzPSJhdGMtc2l0ZSI+Cgo8bmF2PgogIDxkaXYgY2xhc3M9Im5hdi1pbm5lciI+CiAgICA8ZGl2IGNsYXNzPSJicmFuZCI+CiAgICAgIDxpbWcgc3JjPSJodHRwczovL2FydGlzdGljdHJlZXMuY29tL3Jlc291cmNlcy9pbWFnZXMvbG9nby5wbmciIGFsdD0iQXJ0aXN0aWMgVHJlZSBDYXJlIiBvbmVycm9yPSJ0aGlzLnN0eWxlLmRpc3BsYXk9J25vbmUnIj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0ibmF2LXJpZ2h0Ij4KICAgICAgPHVsIGNsYXNzPSJuYXYtbGlua3MgbW9iaWxlLWhpZGUiPgogICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL215LmFydGlzdGljdHJlZXMuY29tL3NlcnZpY2VzIj5TZXJ2aWNlczwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIjd2h5Ij5XaHkgVXM8L2E+PC9saT4KICAgICAgICA8bGk+PGEgaHJlZj0iI2FyZWEiPlNlcnZpY2UgQXJlYTwvYT48L2xpPgogICAgICA8L3VsPgogICAgICA8YSBjbGFzcz0ibmF2LWN0YSIgaHJlZj0iI2NvbnRhY3QiPkZyZWUgQXNzZXNzbWVudDwvYT4KICAgICAgPGJ1dHRvbiBjbGFzcz0ibmF2LXRvZ2dsZSIgaWQ9Im5hdlRvZ2dsZSIgYXJpYS1sYWJlbD0iT3BlbiBtZW51IiBhcmlhLWV4cGFuZGVkPSJmYWxzZSIgYXJpYS1jb250cm9scz0ibW9iaWxlTWVudSI+CiAgICAgICAgPHNwYW4+PC9zcGFuPjxzcGFuPjwvc3Bhbj48c3Bhbj48L3NwYW4+CiAgICAgIDwvYnV0dG9uPgogICAgPC9kaXY+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0ibW9iaWxlLW1lbnUiIGlkPSJtb2JpbGVNZW51Ij4KICAgIDxhIGhyZWY9Imh0dHBzOi8vbXkuYXJ0aXN0aWN0cmVlcy5jb20vc2VydmljZXMiPlNlcnZpY2VzPC9hPgogICAgPGEgaHJlZj0iI3doeSI+V2h5IFVzPC9hPgogICAgPGEgaHJlZj0iI2FyZWEiPlNlcnZpY2UgQXJlYTwvYT4KICAgIDxhIGNsYXNzPSJtb2JpbGUtbWVudS1jdGEiIGhyZWY9IiNjb250YWN0Ij5GcmVlIEFzc2Vzc21lbnQg4oaSPC9hPgogIDwvZGl2Pgo8L25hdj4KCjwhLS0gPT09PT09PT09PT09IEhFUk8gPT09PT09PT09PT09IC0tPgo8aGVhZGVyIGNsYXNzPSJoZXJvIj4KICA8ZGl2IGNsYXNzPSJoZXJvLW1lZGlhIj4KICAgIDxpbWcgc3JjPSJodHRwczovL2FydGlzdGljdHJlZXMuY29tL3Jlc291cmNlcy9pbWFnZXMvZGFuZ2Vyb3VzLXdpZGUuanBnIiBhbHQ9IkFydGlzdGljIFRyZWUgQ2FyZSBjcmV3IHBlcmZvcm1pbmcgYSBkYW5nZXJvdXMgdHJlZSByZW1vdmFsIiBvbmVycm9yPSJ0aGlzLnNyYz0naHR0cHM6Ly9hcnRpc3RpY3RyZWVzLmNvbS9yZXNvdXJjZXMvaW1hZ2VzL3NsaWRlci1kYW5nZXJvdXMtbmV3LmpwZyc7IHRoaXMub25lcnJvcj1udWxsOyI+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0iaGVyby1iYWRnZSIgYXJpYS1oaWRkZW49InRydWUiPgogICAgPHN2ZyB3aWR0aD0iMTE4IiBoZWlnaHQ9IjExOCIgdmlld0JveD0iMCAwIDExOCAxMTgiPgogICAgICA8ZGVmcz48cGF0aCBpZD0iY2lyY2xlUGF0aCIgZD0iTSA1OSw1OSBtIC00NiwwIGEgNDYsNDYgMCAxLDEgOTIsMCBhIDQ2LDQ2IDAgMSwxIC05MiwwIi8+PC9kZWZzPgogICAgICA8dGV4dCBmb250LWZhbWlseT0iU3BhY2UgTW9ubywgbW9ub3NwYWNlIiBmb250LXNpemU9IjkiIGZpbGw9IiNDM0Q2QkMiIGxldHRlci1zcGFjaW5nPSIyIj4KICAgICAgICA8dGV4dFBhdGggaHJlZj0iI2NpcmNsZVBhdGgiPkVTVC4gMTk5OSDigKIgRlJFRSBFU1RJTUFURVMg4oCiIEhPVVNUT04gVFgg4oCiIEVTVC4gMTk5OSDigKI8L3RleHRQYXRoPgogICAgICA8L3RleHQ+CiAgICA8L3N2Zz4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJ3cmFwIGhlcm8tZ3JpZCI+CiAgICA8ZGl2PgogICAgICA8ZGl2IGNsYXNzPSJleWVicm93Ij5Ib3VzdG9uICZhbXA7IEthdHksIFRleGFzPC9kaXY+CiAgICAgIDxoMT5Ud2VudHktZml2ZTxicj5ncm93dGggcmluZ3MgPGVtPmRlZXAuPC9lbT48L2gxPgogICAgICA8cCBjbGFzcz0ibGVkZSI+U2luY2UgMTk5OSwgQXJ0aXN0aWMgVHJlZSBDYXJlIGhhcyBrZXB0IEhvdXN0b24ncyB0cmVlcyDigJQgYW5kIHRoZSBob21lcyBhbmQgYnVzaW5lc3NlcyBiZW5lYXRoIHRoZW0g4oCUIHN0YW5kaW5nIHNhZmVseSB0aHJvdWdoIHN0b3Jtcywgc2Vhc29ucywgYW5kIGV2ZXJ5IGpvYiBpbiBiZXR3ZWVuLiBGb3VuZGVkIGJ5IHRoaXJkLWdlbmVyYXRpb24gdHJlZSBleHBlcnQgTGVvbiBIdW50LjwvcD4KICAgICAgPGRpdiBjbGFzcz0iaGVyby1jdGEtcm93Ij4KICAgICAgICA8YSBjbGFzcz0iYnRuLXByaW1hcnkiIGhyZWY9IiNjb250YWN0Ij5TY2hlZHVsZSBhIEZyZWUgQXNzZXNzbWVudCDihpI8L2E+CiAgICAgICAgPGEgY2xhc3M9ImJ0bi1naG9zdCIgaHJlZj0iI3NlcnZpY2VzIj5TZWUgb3VyIHNlcnZpY2VzPC9hPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iaGVyby1zdGF0cyI+CiAgICAgICAgPGRpdj48ZGl2IGNsYXNzPSJudW0iIGRhdGEtY291bnQ9IjI1IiBkYXRhLXN1ZmZpeD0iKyI+MDwvZGl2PjxkaXYgY2xhc3M9ImxibCI+WWVhcnMgaW4gSG91c3RvbjwvZGl2PjwvZGl2PgogICAgICAgIDxkaXY+PGRpdiBjbGFzcz0ibnVtIiBkYXRhLWNvdW50PSIyIiBkYXRhLXByZWZpeD0iJCIgZGF0YS1zdWZmaXg9Ik0rIj4kMDwvZGl2PjxkaXYgY2xhc3M9ImxibCI+TGlhYmlsaXR5IEluc3VyZWQ8L2Rpdj48L2Rpdj4KICAgICAgICA8ZGl2PjxkaXYgY2xhc3M9Im51bSI+M3JkPC9kaXY+PGRpdiBjbGFzcz0ibGJsIj5HZW4uIEFyYm9yaXN0LUxlZDwvZGl2PjwvZGl2PgogICAgICAgIDxkaXY+PGRpdiBjbGFzcz0ibnVtIj4yNC83PC9kaXY+PGRpdiBjbGFzcz0ibGJsIj5TdG9ybSBSZXNwb25zZTwvZGl2PjwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0icmluZy13cmFwIj4KICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgNDAwIDQwMCIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICAgIDxjaXJjbGUgY3g9IjIwMCIgY3k9IjIwMCIgcj0iNjAiIHN0cm9rZT0iI0MzRDZCQyIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtZGFzaGFycmF5PSIzNzciIHN0cm9rZS1kYXNob2Zmc2V0PSIwIiBvcGFjaXR5PSIwLjM1Ii8+CiAgICAgICAgPGNpcmNsZSBjeD0iMjAwIiBjeT0iMjAwIiByPSI5NSIgc3Ryb2tlPSIjQzNENkJDIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1kYXNoYXJyYXk9IjU5NyIgb3BhY2l0eT0iMC4zIi8+CiAgICAgICAgPGNpcmNsZSBjeD0iMjAwIiBjeT0iMjAwIiByPSIxMzAiIHN0cm9rZT0iI0JFNkEyRSIgc3Ryb2tlLXdpZHRoPSIyLjUiIHN0cm9rZS1kYXNoYXJyYXk9IjgxNyIgb3BhY2l0eT0iMC41NSIvPgogICAgICAgIDxjaXJjbGUgY3g9IjIwMCIgY3k9IjIwMCIgcj0iMTYwIiBzdHJva2U9IiNDM0Q2QkMiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtZGFzaGFycmF5PSIxMDA1IiBvcGFjaXR5PSIwLjIyIi8+CiAgICAgICAgPGNpcmNsZSBjeD0iMjAwIiBjeT0iMjAwIiByPSIxODgiIHN0cm9rZT0iI0UzOUE1QyIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1kYXNoYXJyYXk9IjExODEiIG9wYWNpdHk9IjAuNCIvPgogICAgICA8L3N2Zz4KICAgICAgPGRpdiBjbGFzcz0icmluZy1jYXAiPgogICAgICAgIDxkaXYgY2xhc3M9InlyIj4xOTk5PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2luY2UiPkZpcnN0IFJpbmcgwrcgRm91bmRlZDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2Pgo8L2hlYWRlcj4KCjxkaXYgY2xhc3M9InRpY2tlciIgYXJpYS1oaWRkZW49InRydWUiPgogIDxkaXYgY2xhc3M9InRpY2tlci10cmFjayI+CiAgICA8c3Bhbj5EYW5nZXJvdXMgUmVtb3ZhbHM8L3NwYW4+PHNwYW4+U3Rvcm0gRGFtYWdlIENsZWFudXA8L3NwYW4+PHNwYW4+U3R1bXAgR3JpbmRpbmc8L3NwYW4+PHNwYW4+Q3Jvd24gUmFpc2UgJmFtcDsgUm9vZiBDbGVhcmFuY2U8L3NwYW4+PHNwYW4+TWljcm9pbmplY3Rpb248L3NwYW4+PHNwYW4+U2tpZC1TdGVlciBTZXJ2aWNlczwvc3Bhbj48c3Bhbj5UcmVlIFNjYXBlIERlc2lnbjwvc3Bhbj48c3Bhbj5GcmVlIEVzdGltYXRlczwvc3Bhbj4KICAgIDxzcGFuPkRhbmdlcm91cyBSZW1vdmFsczwvc3Bhbj48c3Bhbj5TdG9ybSBEYW1hZ2UgQ2xlYW51cDwvc3Bhbj48c3Bhbj5TdHVtcCBHcmluZGluZzwvc3Bhbj48c3Bhbj5Dcm93biBSYWlzZSAmYW1wOyBSb29mIENsZWFyYW5jZTwvc3Bhbj48c3Bhbj5NaWNyb2luamVjdGlvbjwvc3Bhbj48c3Bhbj5Ta2lkLVN0ZWVyIFNlcnZpY2VzPC9zcGFuPjxzcGFuPlRyZWUgU2NhcGUgRGVzaWduPC9zcGFuPjxzcGFuPkZyZWUgRXN0aW1hdGVzPC9zcGFuPgogIDwvZGl2Pgo8L2Rpdj4KCjwhLS0gPT09PT09PT09PT09IFRJTUVMSU5FID09PT09PT09PT09PSAtLT4KPHNlY3Rpb24gY2xhc3M9InRpbWVsaW5lIj4KICA8ZGl2IGNsYXNzPSJ3cmFwIj4KICAgIDxkaXYgY2xhc3M9InNlYy1oZWFkIHJldmVhbCI+CiAgICAgIDxkaXYgY2xhc3M9ImV5ZWJyb3ciPkhvdyB0aGUgcmluZ3MgZm9ybWVkPC9kaXY+CiAgICAgIDxoMj5BIHF1YXJ0ZXItY2VudHVyeSBvZiB3aWRlbmluZyBjYXBhYmlsaXR5LjwvaDI+CiAgICAgIDxwPkV2ZXJ5IHRyZWUgdGVsbHMgaXRzIGFnZSBpbiByaW5ncy4gT3VycyB0ZWxsIGEgc3Rvcnkgb2Ygc3RlYWRpbHkgYWRkZWQgZXhwZXJ0aXNlIOKAlCBlYWNoIG9uZSBzdGlsbCBzdGFuZGluZyBiZWhpbmQgdGhlIGxhc3QuPC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJyaW5ncy1yb3ciPgogICAgICA8ZGl2IGNsYXNzPSJyaW5nLWNhcmQgcmV2ZWFsIj48ZGl2IGNsYXNzPSJ5ciI+MTk5OTwvZGl2PjxoND5Gb3VuZGVkPC9oND48cD5MZW9uIEh1bnQgb3BlbnMgQXJ0aXN0aWMgVHJlZSBDYXJlLCBicmluZ2luZyB0aGlyZC1nZW5lcmF0aW9uIHRyZWUgZXhwZXJ0aXNlIHRvIEhvdXN0b24uPC9wPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJyaW5nLWNhcmQgcmV2ZWFsIj48ZGl2IGNsYXNzPSJ5ciI+MjAwMHM8L2Rpdj48aDQ+RGFuZ2Vyb3VzIFJlbW92YWxzPC9oND48cD5HYWZmbGVzcyByb3BlLWNsaW1iaW5nIHRlY2huaXF1ZSBhZG9wdGVkIHRvIHByb3RlY3QgdHJlZSBoZWFsdGggZHVyaW5nIHByZWNhcmlvdXMgcmVtb3ZhbHMuPC9wPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJyaW5nLWNhcmQgcmV2ZWFsIj48ZGl2IGNsYXNzPSJ5ciI+MjAwMHM8L2Rpdj48aDQ+U3Rvcm0gUmVzcG9uc2U8L2g0PjxwPkNyYW5lIGFuZCBhZXJpYWwtbGlmdCBjYXBhYmlsaXR5IGFkZGVkIGZvciBsYXJnZS1zY2FsZSBzdG9ybSBkYW1hZ2UgYW5kIGhhemFyZCB3b3JrLjwvcD48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0icmluZy1jYXJkIHJldmVhbCI+PGRpdiBjbGFzcz0ieXIiPjIwMTBzPC9kaXY+PGg0PlRyZWUgSGVhbHRoPC9oND48cD5NaWNyb2luamVjdGlvbiB0cmVhdG1lbnQgYW5kIHN0b3JtLXByZXZlbnRpb24gYXNzZXNzbWVudHMgaW50cm9kdWNlZC48L3A+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InJpbmctY2FyZCByZXZlYWwiPjxkaXYgY2xhc3M9InlyIj4yMDEwczwvZGl2PjxoND5MYW5kICZhbXA7IERlc2lnbjwvaDQ+PHA+U2tpZC1zdGVlciBzaXRlIHdvcmsgYW5kIHRyZWUgc2NhcGUgZGVzaWduIGFuZCBjb25zdWx0aW5nIGV4cGFuZCB0aGUgb2ZmZXJpbmcuPC9wPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJyaW5nLWNhcmQgcmV2ZWFsIj48ZGl2IGNsYXNzPSJ5ciI+VG9kYXk8L2Rpdj48aDQ+MjUrIFllYXJzPC9oND48cD5BIGZ1bGwtc2VydmljZSwgc2FmZXR5LWZpcnN0IHRyZWUgY29tcGFueSB0cnVzdGVkIGFjcm9zcyBncmVhdGVyIEhvdXN0b24uPC9wPjwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+Cjwvc2VjdGlvbj4KCjwhLS0gPT09PT09PT09PT09IFNFUlZJQ0VTID09PT09PT09PT09PSAtLT4KPHNlY3Rpb24gY2xhc3M9InNlcnZpY2VzIiBpZD0ic2VydmljZXMiPgogIDxkaXYgY2xhc3M9IndyYXAiPgogICAgPGRpdiBjbGFzcz0ic2VjLWhlYWQgcmV2ZWFsIj4KICAgICAgPGRpdiBjbGFzcz0iZXllYnJvdyI+V2hhdCB3ZSBkbzwvZGl2PgogICAgICA8aDI+T3JnYW5pemVkIGFyb3VuZCB3aGF0IHlvdSdyZSBmYWNpbmcg4oCUPGJyPm5vdCBqdXN0IGEgc2VydmljZSBtZW51LjwvaDI+CiAgICAgIDxwPlRyZWUgcHJvYmxlbXMgcmFyZWx5IGFycml2ZSBhbG9uZS4gV2UgZ3JvdXAgb3VyIHdvcmsgYnkgdGhlIHNpdHVhdGlvbiB5b3UncmUgaW4sIHNvIGl0J3MgY2xlYXIgd2hlcmUgdG8gc3RhcnQuPC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLWdyb3VwcyI+CiAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtZ3JvdXAgcmV2ZWFsIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0YWciPjAxIMK3IFVyZ2VudDwvZGl2PgogICAgICAgIDxoMz5IYXphcmQgJmFtcDsgU3Rvcm0gUmVzcG9uc2U8L2gzPgogICAgICAgIDx1bD4KICAgICAgICAgIDxsaT48c3BhbiBjbGFzcz0ibWFyayI+4oaSPC9zcGFuPjxkaXYgY2xhc3M9InR4dCI+PGI+RGFuZ2Vyb3VzIFJlbW92YWxzPC9iPjxzcGFuPlByZWNhcmlvdXMsIGhpZ2gtcmlzayByZW1vdmFscyB1c2luZyByb3BlLCBjcmFuZSwgYW5kIGFlcmlhbC1saWZ0IHRlY2huaXF1ZXMuPC9zcGFuPjwvZGl2PjwvbGk+CiAgICAgICAgICA8bGk+PHNwYW4gY2xhc3M9Im1hcmsiPuKGkjwvc3Bhbj48ZGl2IGNsYXNzPSJ0eHQiPjxiPlN0b3JtIERhbWFnZSBDbGVhbnVwPC9iPjxzcGFuPkZhc3QgcmVzcG9uc2Ugd2hlbiB3aW5kLCBpY2UsIG9yIGxpZ2h0bmluZyBicmluZyBhIHRyZWUgZG93bi48L3NwYW4+PC9kaXY+PC9saT4KICAgICAgICAgIDxsaT48c3BhbiBjbGFzcz0ibWFyayI+4oaSPC9zcGFuPjxkaXYgY2xhc3M9InR4dCI+PGI+RGVhZHdvb2QgUmVtb3ZhbDwvYj48c3Bhbj5SZW1vdmluZyBkZWFkIG9yIGR5aW5nIGxpbWJzIGJlZm9yZSB0aGV5IGJlY29tZSBhIGxpYWJpbGl0eS48L3NwYW4+PC9kaXY+PC9saT4KICAgICAgICA8L3VsPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VydmljZS1ncm91cCByZXZlYWwiPgogICAgICAgIDxkaXYgY2xhc3M9InRhZyI+MDIgwrcgUHJldmVudGl2ZTwvZGl2PgogICAgICAgIDxoMz5UcmVlIEhlYWx0aCAmYW1wOyBQcmV2ZW50aW9uPC9oMz4KICAgICAgICA8dWw+CiAgICAgICAgICA8bGk+PHNwYW4gY2xhc3M9Im1hcmsiPuKGkjwvc3Bhbj48ZGl2IGNsYXNzPSJ0eHQiPjxiPlN0b3JtIFByZXZlbnRpb248L2I+PHNwYW4+QXNzZXNzaW5nIHdlYWsgbGltYnMsIGNyYWNrcywgYW5kIHJvb3QgaXNzdWVzIGJlZm9yZSB0aGUgbmV4dCBzdG9ybS48L3NwYW4+PC9kaXY+PC9saT4KICAgICAgICAgIDxsaT48c3BhbiBjbGFzcz0ibWFyayI+4oaSPC9zcGFuPjxkaXYgY2xhc3M9InR4dCI+PGI+TWljcm9pbmplY3Rpb248L2I+PHNwYW4+VHJlZSBUZWNowq4gdHJlYXRtZW50cyBmb3IgcGVzdCwgZGlzZWFzZSwgYW5kIG51dHJpZW50IGlzc3Vlcy48L3NwYW4+PC9kaXY+PC9saT4KICAgICAgICAgIDxsaT48c3BhbiBjbGFzcz0ibWFyayI+4oaSPC9zcGFuPjxkaXYgY2xhc3M9InR4dCI+PGI+RmluZSBQcnVuaW5nPC9iPjxzcGFuPkNyb3duIGNsZWFuaW5nLCB3ZWlnaHQgcmVkdWN0aW9uLCBhbmQgdmlzdGEgcHJ1bmluZyBieSBjZXJ0aWZpZWQgYXJib3Jpc3RzLjwvc3Bhbj48L2Rpdj48L2xpPgogICAgICAgIDwvdWw+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZXJ2aWNlLWdyb3VwIHJldmVhbCI+CiAgICAgICAgPGRpdiBjbGFzcz0idGFnIj4wMyDCtyBQcm9wZXJ0eTwvZGl2PgogICAgICAgIDxoMz5Qcm9wZXJ0eSAmYW1wOyBMYW5kPC9oMz4KICAgICAgICA8dWw+CiAgICAgICAgICA8bGk+PHNwYW4gY2xhc3M9Im1hcmsiPuKGkjwvc3Bhbj48ZGl2IGNsYXNzPSJ0eHQiPjxiPkNyb3duIFJhaXNlICZhbXA7IFJvb2YgQ2xlYXJhbmNlPC9iPjxzcGFuPktlZXBpbmcgbGltYnMgb2ZmIHJvb2ZsaW5lcyBhbmQgc3RydWN0dXJlcy48L3NwYW4+PC9kaXY+PC9saT4KICAgICAgICAgIDxsaT48c3BhbiBjbGFzcz0ibWFyayI+4oaSPC9zcGFuPjxkaXYgY2xhc3M9InR4dCI+PGI+U3R1bXAgR3JpbmRpbmc8L2I+PHNwYW4+RmFzdCwgbm9uLWludHJ1c2l2ZSByZW1vdmFsIHRoYXQgbGVhdmVzIG5vIHRyYWNlLjwvc3Bhbj48L2Rpdj48L2xpPgogICAgICAgICAgPGxpPjxzcGFuIGNsYXNzPSJtYXJrIj7ihpI8L3NwYW4+PGRpdiBjbGFzcz0idHh0Ij48Yj5Ta2lkLVN0ZWVyIExvYWRlciBTZXJ2aWNlczwvYj48c3Bhbj5HcmFkaW5nLCBkcmFpbmFnZSwgdHJlbmNoaW5nLCBhbmQgc2l0ZSBjbGVhcmluZyBmb3IgYmlnZ2VyIGpvYnMuPC9zcGFuPjwvZGl2PjwvbGk+CiAgICAgICAgPC91bD4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlcnZpY2UtZ3JvdXAgcmV2ZWFsIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0YWciPjA0IMK3IExvbmctVGVybTwvZGl2PgogICAgICAgIDxoMz5EZXNpZ24gJmFtcDsgQ29uc3VsdGluZzwvaDM+CiAgICAgICAgPHVsPgogICAgICAgICAgPGxpPjxzcGFuIGNsYXNzPSJtYXJrIj7ihpI8L3NwYW4+PGRpdiBjbGFzcz0idHh0Ij48Yj5UcmVlIFNjYXBlIERlc2lnbjwvYj48c3Bhbj5QbGFubmluZyB3aGF0IGdyb3dzIHdoZXJlLCBhbmQgd2h5LCBmb3IgeWVhcnMgb2YgaGVhbHRoeSBncm93dGguPC9zcGFuPjwvZGl2PjwvbGk+CiAgICAgICAgICA8bGk+PHNwYW4gY2xhc3M9Im1hcmsiPuKGkjwvc3Bhbj48ZGl2IGNsYXNzPSJ0eHQiPjxiPkFyYm9yaXN0IENvbnN1bHRpbmc8L2I+PHNwYW4+U3RyYWlnaHQgYW5zd2VycyBvbiB0cmVlIGhlYWx0aCwgcmlzaywgYW5kIGxvbmctdGVybSBwcm9wZXJ0eSBwbGFubmluZy48L3NwYW4+PC9kaXY+PC9saT4KICAgICAgICA8L3VsPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDozNnB4OyI+CiAgICAgIDxhIGNsYXNzPSJidG4tZ2hvc3QiIGhyZWY9Imh0dHBzOi8vbXkuYXJ0aXN0aWN0cmVlcy5jb20vc2VydmljZXMiIHN0eWxlPSJjb2xvcjp2YXIoLS1oZWFydHdvb2Qtc29mdCk7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1oZWFydHdvb2Qtc29mdCk7Ij5TZWUgYWxsIDEwIHNlcnZpY2VzIGluIGRldGFpbCDihpI8L2E+CiAgICA8L2Rpdj4KICA8L2Rpdj4KPC9zZWN0aW9uPgoKPCEtLSA9PT09PT09PT09PT0gVFJVU1QgLyBXSFkgPT09PT09PT09PT09IC0tPgo8c2VjdGlvbiBjbGFzcz0idHJ1c3QiIGlkPSJ3aHkiPgogIDxkaXYgY2xhc3M9IndyYXAiPgogICAgPGRpdiBjbGFzcz0ic2VjLWhlYWQgcmV2ZWFsIj4KICAgICAgPGRpdiBjbGFzcz0iZXllYnJvdyI+V2h5IEFydGlzdGljIFRyZWUgQ2FyZTwvZGl2PgogICAgICA8aDI+SnVkZ21lbnQsIG5vdCBqdXN0IGVxdWlwbWVudC48L2gyPgogICAgICA8cD5BbnlvbmUgY2FuIG93biBhIGNoYWluc2F3LiBUd2VudHktZml2ZSB5ZWFycyBvZiBjYXJlZnVsIHBsYW5uaW5nLCBzYWZldHksIGFuZCBwcm9wZXJ0eSBwcm90ZWN0aW9uIGlzIGhhcmRlciB0byBjb3B5LjwvcD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0idHJ1c3QtZ3JpZCI+CiAgICAgIDx1bCBjbGFzcz0idHJ1c3QtbGlzdCByZXZlYWwiPgogICAgICAgIDxsaT4KICAgICAgICAgIDxkaXYgY2xhc3M9InRydXN0LWljb24iPuKXjjwvZGl2PgogICAgICAgICAgPGRpdj48aDQ+JDJNKyBMaWFiaWxpdHkgSW5zdXJlZDwvaDQ+PHA+QWRkZWQgcGVhY2Ugb2YgbWluZCBvbiBldmVyeSBqb2IsIGZyb20gcm91dGluZSBwcnVuaW5nIHRvIG1ham9yIHJlbW92YWxzLjwvcD48L2Rpdj4KICAgICAgICA8L2xpPgogICAgICAgIDxsaT4KICAgICAgICAgIDxkaXYgY2xhc3M9InRydXN0LWljb24iPuKGuzwvZGl2PgogICAgICAgICAgPGRpdj48aDQ+R2FmZmxlc3MgUm9wZS1DbGltYmluZzwvaDQ+PHA+UHJvZmVzc2lvbmFsbHkgdGF1Z2h0IHRlY2huaXF1ZSB0aGF0IHByb3RlY3RzIHRoZSBjYW1iaXVtIGxheWVyIHdoaWxlIHRyaW1taW5nLjwvcD48L2Rpdj4KICAgICAgICA8L2xpPgogICAgICAgIDxsaT4KICAgICAgICAgIDxkaXYgY2xhc3M9InRydXN0LWljb24iPuKWsjwvZGl2PgogICAgICAgICAgPGRpdj48aDQ+Q3JhbmUgJmFtcDsgQWVyaWFsLUxpZnQgQ2FwYWJsZTwvaDQ+PHA+Rm9yIGxhcmdlIG9yIGhpZ2gtcmlzayBqb2JzLCBtaW5pbWl6aW5nIHBvdGVudGlhbCBkYW1hZ2UgdG8geW91ciBob21lIG9yIGJ1c2luZXNzLjwvcD48L2Rpdj4KICAgICAgICA8L2xpPgogICAgICAgIDxsaT4KICAgICAgICAgIDxkaXYgY2xhc3M9InRydXN0LWljb24iPuKckzwvZGl2PgogICAgICAgICAgPGRpdj48aDQ+Q2VydGlmaWVkIEFyYm9yaXN0czwvaDQ+PHA+VHJhaW5lZCB0ZWNobmljaWFucyB1c2luZyBiZXN0LXByYWN0aWNlIHBydW5pbmcgYWNyb3NzIGFsbCB0cmVlIHNwZWNpZXMuPC9wPjwvZGl2PgogICAgICAgIDwvbGk+CiAgICAgIDwvdWw+CiAgICAgIDxkaXYgY2xhc3M9InRydXN0LXZpc3VhbCByZXZlYWwiPgogICAgICAgIDxkaXYgY2xhc3M9ImNlcnQtY2FyZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjZXJ0LWJhZGdlLWNyb3AiPgogICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9teS5mdW5uZWxwYWdlcy5jb20vdXNlci1kYXRhL2dhbGxlcnkvMTI3OC83NjQ1LTZhNWQ3MGE5MGFmN2QucG5nP3I9NjYzODUiIGFsdD0iSVNBIENlcnRpZmllZCBBcmJvcmlzdCBjZXJ0aWZpY2F0aW9uIGJhZGdlIiBsb2FkaW5nPSJsYXp5Ij4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXllYnJvdyI+UHJvZmVzc2lvbmFsIGNyZWRlbnRpYWw8L2Rpdj4KICAgICAgICAgICAgPGgzPklTQSBDZXJ0aWZpZWQgQXJib3Jpc3Q8L2gzPgogICAgICAgICAgICA8cD5Lbm93bGVkZ2UtbGVkIHRyZWUgY2FyZSBncm91bmRlZCBpbiByZWNvZ25pemVkIGFyYm9yaWN1bHR1cmFsIHByYWN0aWNlcyBhbmQgcmVzcG9uc2libGUgcmVjb21tZW5kYXRpb25zLjwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImdhbGxlcnktc3RyaXAiPgogICAgICAgICAgPGltZyBjbGFzcz0idGFsbCIgc3JjPSJodHRwczovL2FydGlzdGljdHJlZXMuY29tL3Jlc291cmNlcy9pbWFnZXMvZGFuZ2Vyb3VzLXdpZGUuanBnIiBhbHQ9IkRhbmdlcm91cyB0cmVlIHJlbW92YWwgaW4gcHJvZ3Jlc3MiIGxvYWRpbmc9ImxhenkiIG9uZXJyb3I9InRoaXMuc3R5bGUuZGlzcGxheT0nbm9uZSciPgogICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXJ0aXN0aWN0cmVlcy5jb20vcmVzb3VyY2VzL2ltYWdlcy9jcm93bi13aWRlLmpwZyIgYWx0PSJDcm93biByYWlzZSBhbmQgcm9vZiBjbGVhcmFuY2Ugd29yayIgbG9hZGluZz0ibGF6eSIgb25lcnJvcj0idGhpcy5zdHlsZS5kaXNwbGF5PSdub25lJyI+CiAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hcnRpc3RpY3RyZWVzLmNvbS9yZXNvdXJjZXMvaW1hZ2VzL3N0b3JtLXdpZGUuanBnIiBhbHQ9IlN0b3JtIGRhbWFnZSBjbGVhbnVwIiBsb2FkaW5nPSJsYXp5IiBvbmVycm9yPSJ0aGlzLnN0eWxlLmRpc3BsYXk9J25vbmUnIj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KPC9zZWN0aW9uPgoKPCEtLSA9PT09PT09PT09PT0gRkVFREJBQ0sgVEhFTUVTID09PT09PT09PT09PSAtLT4KPHNlY3Rpb24gY2xhc3M9ImZlZWRiYWNrIj4KICA8ZGl2IGNsYXNzPSJ3cmFwIj4KICAgIDxkaXYgY2xhc3M9InNlYy1oZWFkIHJldmVhbCI+CiAgICAgIDxkaXYgY2xhc3M9ImV5ZWJyb3ciPldoYXQgY2xpZW50cyBub3RpY2U8L2Rpdj4KICAgICAgPGgyPlRoZSB3b3JrIG1hdHRlcnMuIFNvIGRvZXMgaG93IHlvdSdyZSB0cmVhdGVkLjwvaDI+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImZlZWRiYWNrLXJvdyI+CiAgICAgIDxkaXYgY2xhc3M9ImZlZWRiYWNrLWNhcmQgcmV2ZWFsIj4KICAgICAgICA8cT5Qcm9mZXNzaW9uYWwgZnJvbSB0aGUgZmlyc3QgY2FsbCB0byBmaW5hbCBjbGVhbi11cCDigJQgbm8gc3VycHJpc2VzLjwvcT4KICAgICAgICA8ZGl2IGNsYXNzPSJ3aG8iPkNvbW1vbiB0aGVtZSDCtyBQcm9mZXNzaW9uYWxpc208L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImZlZWRiYWNrLWNhcmQgcmV2ZWFsIj4KICAgICAgICA8cT5UaGV5IGV4cGxhaW5lZCBleGFjdGx5IHdoYXQgbmVlZGVkIHRvIGhhcHBlbiBhbmQgd2h5IGJlZm9yZSB0b3VjaGluZyBhIGJyYW5jaC48L3E+CiAgICAgICAgPGRpdiBjbGFzcz0id2hvIj5Db21tb24gdGhlbWUgwrcgRWR1Y2F0aW9uICZhbXA7IFRydXN0PC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJmZWVkYmFjay1jYXJkIHJldmVhbCI+CiAgICAgICAgPHE+Q2FyZWZ1bCBhcm91bmQgdGhlIGhvdXNlLCBhbmQgZGlkbid0IGxlYXZlIGEgbWVzcyBiZWhpbmQuPC9xPgogICAgICAgIDxkaXYgY2xhc3M9IndobyI+Q29tbW9uIHRoZW1lIMK3IFByb3BlcnR5IENhcmU8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KPC9zZWN0aW9uPgoKPCEtLSA9PT09PT09PT09PT0gU0VSVklDRSBBUkVBID09PT09PT09PT09PSAtLT4KPHNlY3Rpb24gY2xhc3M9ImFyZWEiIGlkPSJhcmVhIj4KICA8ZGl2IGNsYXNzPSJ3cmFwIGFyZWEtZ3JpZCI+CiAgICA8ZGl2IGNsYXNzPSJyZXZlYWwiPgogICAgICA8ZGl2IGNsYXNzPSJleWVicm93Ij5XaGVyZSB3ZSB3b3JrPC9kaXY+CiAgICAgIDxoMj5Sb290ZWQgaW4gS2F0eS4gUmVhY2hpbmcgYWNyb3NzIEhvdXN0b24uPC9oMj4KICAgICAgPHA+RnJvbSB0aGUgRW5lcmd5IENvcnJpZG9yIHRvIHRoZSBIZWlnaHRzLCB3ZSBzZXJ2ZSByZXNpZGVudGlhbCBhbmQgY29tbWVyY2lhbCBwcm9wZXJ0aWVzIGFjcm9zcyBncmVhdGVyIEhvdXN0b24uPC9wPgogICAgICA8ZGl2IGNsYXNzPSJjaGlwLXJvdyI+CiAgICAgICAgPHNwYW4gY2xhc3M9ImNoaXAiPkthdHk8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImNoaXAiPlJpdmVyIE9ha3M8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImNoaXAiPlRhbmdsZXdvb2Q8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImNoaXAiPk1lbW9yaWFsPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJjaGlwIj5UaGUgV29vZGxhbmRzPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJjaGlwIj5TdWdhciBMYW5kPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJjaGlwIj5DbGVhciBMYWtlPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJjaGlwIj5XZXN0IFVuaXZlcnNpdHk8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImNoaXAiPlRoZSBIZWlnaHRzPC9zcGFuPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iYXJlYS1ub3RlIHJldmVhbCI+CiAgICAgIDxkaXYgY2xhc3M9ImV5ZWJyb3ciPkEgbm90ZSBvbiB0aW1pbmc8L2Rpdj4KICAgICAgPHA+U3Rvcm0tcmVsYXRlZCBqb2JzIG1vdmUgZmFzdCDigJQgdGhlIHNvb25lciBhIGhhemFyZG91cyB0cmVlIGlzIGFzc2Vzc2VkLCB0aGUgbW9yZSBvcHRpb25zIHlvdSBoYXZlLiBSb3V0aW5lIHBydW5pbmcgYW5kIHRyZWUgaGVhbHRoIHdvcmsgY2FuIHVzdWFsbHkgYmUgc2NoZWR1bGVkIGFyb3VuZCB5b3VyIGNhbGVuZGFyLjwvcD4KICAgIDwvZGl2PgogIDwvZGl2Pgo8L3NlY3Rpb24+Cgo8IS0tID09PT09PT09PT09PSBDT05UQUNUID09PT09PT09PT09PSAtLT4KPHNlY3Rpb24gY2xhc3M9ImNvbnRhY3QiIGlkPSJjb250YWN0Ij4KICA8ZGl2IGNsYXNzPSJ3cmFwIj4KICAgIDxkaXYgY2xhc3M9ImV5ZWJyb3ciIHN0eWxlPSJqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyI+TGV0J3MgdGFrZSBhIGxvb2s8L2Rpdj4KICAgIDxoMj5TZXQgdXAgeW91ciBmcmVlIGFzc2Vzc21lbnQgdG9kYXkuPC9oMj4KICAgIDxwIGNsYXNzPSJsZWRlIj5UZWxsIHVzIHdoYXQncyBnb2luZyBvbiDigJQgdXJnZW50IGhhemFyZCwgcm91dGluZSBjYXJlLCBvciBhIGJpZ2dlciBsYW5kIHByb2plY3Qg4oCUIGFuZCB3ZSdsbCB0YWtlIGl0IGZyb20gdGhlcmUuPC9wPgogICAgPGRpdiBjbGFzcz0iY29udGFjdC1jdGEtcm93Ij4KICAgICAgPGEgY2xhc3M9ImJ0bi1wcmltYXJ5IiBocmVmPSJ0ZWw6KzE4MzIzNDc0MzIzIj5DYWxsICg4MzIpIDM0Ny00MzIzIOKGkjwvYT4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iY29udGFjdC1kZXRhaWwiPgogICAgICA8ZGl2PjxkaXYgY2xhc3M9ImxibCI+UGhvbmU8L2Rpdj48ZGl2IGNsYXNzPSJ2YWwiPig4MzIpIDM0Ny00MzIzPC9kaXY+PC9kaXY+CiAgICAgIDxkaXY+PGRpdiBjbGFzcz0ibGJsIj5FbWFpbDwvZGl2PjxkaXYgY2xhc3M9InZhbCI+bGxodW50MjAwMkB5YWhvby5jb208L2Rpdj48L2Rpdj4KICAgICAgPGRpdj48ZGl2IGNsYXNzPSJsYmwiPkFkZHJlc3M8L2Rpdj48ZGl2IGNsYXNzPSJ2YWwiPjczMSBSZW5uaWUgU3QuLCBLYXR5LCBUWCA3NzQ1MDwvZGl2PjwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+Cjwvc2VjdGlvbj4KCjxmb290ZXI+CiAgQXJ0aXN0aWMgVHJlZSBDYXJlIMK3IEhvdXN0b24gJmFtcDsgS2F0eSwgVFggwrcgQ29uY2VwdCBsYW5kaW5nIHBhZ2UKPC9mb290ZXI+Cgo8L2Rpdj4KCjxzY3JpcHQ+CihmdW5jdGlvbigpewogIGNvbnN0IHJvb3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYXRjLXNpdGUnKTsKICBpZighcm9vdCkgcmV0dXJuOwogIGNvbnN0IHRvZ2dsZSA9IHJvb3QucXVlcnlTZWxlY3RvcignI25hdlRvZ2dsZScpOwogIGNvbnN0IG1lbnUgPSByb290LnF1ZXJ5U2VsZWN0b3IoJyNtb2JpbGVNZW51Jyk7CiAgaWYodG9nZ2xlICYmIG1lbnUpewogICAgdG9nZ2xlLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsKICAgICAgY29uc3QgaXNPcGVuID0gbWVudS5jbGFzc0xpc3QudG9nZ2xlKCdpcy1vcGVuJyk7CiAgICAgIHRvZ2dsZS5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCBpc09wZW4gPyAndHJ1ZScgOiAnZmFsc2UnKTsKICAgIH0pOwogICAgbWVudS5xdWVyeVNlbGVjdG9yQWxsKCdhJykuZm9yRWFjaChmdW5jdGlvbihsaW5rKXsKICAgICAgbGluay5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7CiAgICAgICAgbWVudS5jbGFzc0xpc3QucmVtb3ZlKCdpcy1vcGVuJyk7CiAgICAgICAgdG9nZ2xlLnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsICdmYWxzZScpOwogICAgICB9KTsKICAgIH0pOwogIH0KICBjb25zdCBpbyA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZW50cmllcyk9PnsKICAgIGVudHJpZXMuZm9yRWFjaChlPT57CiAgICAgIGlmKGUuaXNJbnRlcnNlY3RpbmcpeyBlLnRhcmdldC5jbGFzc0xpc3QuYWRkKCdpcy12aXNpYmxlJyk7IH0KICAgIH0pOwogIH0sIHt0aHJlc2hvbGQ6MC4xNX0pOwogIHJvb3QucXVlcnlTZWxlY3RvckFsbCgnLnJldmVhbCwgLnJpbmctY2FyZCcpLmZvckVhY2goZWw9PmlvLm9ic2VydmUoZWwpKTsKCiAgLy8gY291bnQtdXAgaGVybyBzdGF0cwogIGNvbnN0IHJlZHVjZU1vdGlvbiA9IHdpbmRvdy5tYXRjaE1lZGlhKCcocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKScpLm1hdGNoZXM7CiAgcm9vdC5xdWVyeVNlbGVjdG9yQWxsKCcubnVtW2RhdGEtY291bnRdJykuZm9yRWFjaChlbD0+ewogICAgY29uc3QgdGFyZ2V0ID0gcGFyc2VJbnQoZWwuZGF0YXNldC5jb3VudCwgMTApOwogICAgY29uc3QgcHJlZml4ID0gZWwuZGF0YXNldC5wcmVmaXggfHwgJyc7CiAgICBjb25zdCBzdWZmaXggPSBlbC5kYXRhc2V0LnN1ZmZpeCB8fCAnJzsKICAgIGlmKHJlZHVjZU1vdGlvbil7IGVsLnRleHRDb250ZW50ID0gcHJlZml4ICsgdGFyZ2V0ICsgc3VmZml4OyByZXR1cm47IH0KICAgIGxldCBzdGFydGVkID0gZmFsc2U7CiAgICBjb25zdCBjb3VudGVySU8gPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKGVudHJpZXMpPT57CiAgICAgIGVudHJpZXMuZm9yRWFjaChlbnRyeT0+ewogICAgICAgIGlmKGVudHJ5LmlzSW50ZXJzZWN0aW5nICYmICFzdGFydGVkKXsKICAgICAgICAgIHN0YXJ0ZWQgPSB0cnVlOwogICAgICAgICAgY29uc3QgZHVyYXRpb24gPSAxMjAwOwogICAgICAgICAgY29uc3Qgc3RhcnQgPSBwZXJmb3JtYW5jZS5ub3coKTsKICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAobm93KXsKICAgICAgICAgICAgY29uc3QgcCA9IE1hdGgubWluKChub3cgLSBzdGFydCkgLyBkdXJhdGlvbiwgMSk7CiAgICAgICAgICAgIGNvbnN0IGVhc2VkID0gMSAtIE1hdGgucG93KDEgLSBwLCAzKTsKICAgICAgICAgICAgZWwudGV4dENvbnRlbnQgPSBwcmVmaXggKyBNYXRoLnJvdW5kKGVhc2VkICogdGFyZ2V0KSArIHN1ZmZpeDsKICAgICAgICAgICAgaWYocCA8IDEpIHJlcXVlc3RBbmltYXRpb25GcmFtZShzdGVwKTsKICAgICAgICAgIH0KICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShzdGVwKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwge3RocmVzaG9sZDowLjR9KTsKICAgIGNvdW50ZXJJTy5vYnNlcnZlKGVsKTsKICB9KTsKfSkoKTsKPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPg==","embed":""}
Artistic Tree Care — 25 Years Deep, Houston TX
Artistic Tree Care
  • Services
  • Why Us
  • Service Area
Free Assessment
Services Why Us Service Area Free Assessment →
Artistic Tree Care crew performing a dangerous tree removal
EST. 1999 • FREE ESTIMATES • HOUSTON TX • EST. 1999 •
Houston & Katy, Texas

Twenty-five
growth rings deep.

Since 1999, Artistic Tree Care has kept Houston's trees — and the homes and businesses beneath them — standing safely through storms, seasons, and every job in between. Founded by third-generation tree expert Leon Hunt.

Schedule a Free Assessment → See our services
0
Years in Houston
$0
Liability Insured
3rd
Gen. Arborist-Led
24/7
Storm Response
1999
First Ring · Founded
Dangerous RemovalsStorm Damage CleanupStump GrindingCrown Raise & Roof ClearanceMicroinjectionSkid-Steer ServicesTree Scape DesignFree Estimates Dangerous RemovalsStorm Damage CleanupStump GrindingCrown Raise & Roof ClearanceMicroinjectionSkid-Steer ServicesTree Scape DesignFree Estimates
How the rings formed

A quarter-century of widening capability.

Every tree tells its age in rings. Ours tell a story of steadily added expertise — each one still standing behind the last.

1999

Founded

Leon Hunt opens Artistic Tree Care, bringing third-generation tree expertise to Houston.

2000s

Dangerous Removals

Gaffless rope-climbing technique adopted to protect tree health during precarious removals.

2000s

Storm Response

Crane and aerial-lift capability added for large-scale storm damage and hazard work.

2010s

Tree Health

Microinjection treatment and storm-prevention assessments introduced.

2010s

Land & Design

Skid-steer site work and tree scape design and consulting expand the offering.

Today

25+ Years

A full-service, safety-first tree company trusted across greater Houston.

What we do

Organized around what you're facing —
not just a service menu.

Tree problems rarely arrive alone. We group our work by the situation you're in, so it's clear where to start.

01 · Urgent

Hazard & Storm Response

  • →
    Dangerous RemovalsPrecarious, high-risk removals using rope, crane, and aerial-lift techniques.
  • →
    Storm Damage CleanupFast response when wind, ice, or lightning bring a tree down.
  • →
    Deadwood RemovalRemoving dead or dying limbs before they become a liability.
02 · Preventive

Tree Health & Prevention

  • →
    Storm PreventionAssessing weak limbs, cracks, and root issues before the next storm.
  • →
    MicroinjectionTree Tech® treatments for pest, disease, and nutrient issues.
  • →
    Fine PruningCrown cleaning, weight reduction, and vista pruning by certified arborists.
03 · Property

Property & Land

  • →
    Crown Raise & Roof ClearanceKeeping limbs off rooflines and structures.
  • →
    Stump GrindingFast, non-intrusive removal that leaves no trace.
  • →
    Skid-Steer Loader ServicesGrading, drainage, trenching, and site clearing for bigger jobs.
04 · Long-Term

Design & Consulting

  • →
    Tree Scape DesignPlanning what grows where, and why, for years of healthy growth.
  • →
    Arborist ConsultingStraight answers on tree health, risk, and long-term property planning.
See all 10 services in detail →
Why Artistic Tree Care

Judgment, not just equipment.

Anyone can own a chainsaw. Twenty-five years of careful planning, safety, and property protection is harder to copy.

  • ◎

    $2M+ Liability Insured

    Added peace of mind on every job, from routine pruning to major removals.

  • ↻

    Gaffless Rope-Climbing

    Professionally taught technique that protects the cambium layer while trimming.

  • ▲

    Crane & Aerial-Lift Capable

    For large or high-risk jobs, minimizing potential damage to your home or business.

  • ✓

    Certified Arborists

    Trained technicians using best-practice pruning across all tree species.

ISA Certified Arborist certification badge
Professional credential

ISA Certified Arborist

Knowledge-led tree care grounded in recognized arboricultural practices and responsible recommendations.

Dangerous tree removal in progress Crown raise and roof clearance work Storm damage cleanup
What clients notice

The work matters. So does how you're treated.

Professional from the first call to final clean-up — no surprises.
Common theme · Professionalism
They explained exactly what needed to happen and why before touching a branch.
Common theme · Education & Trust
Careful around the house, and didn't leave a mess behind.
Common theme · Property Care
Where we work

Rooted in Katy. Reaching across Houston.

From the Energy Corridor to the Heights, we serve residential and commercial properties across greater Houston.

Katy River Oaks Tanglewood Memorial The Woodlands Sugar Land Clear Lake West University The Heights
A note on timing

Storm-related jobs move fast — the sooner a hazardous tree is assessed, the more options you have. Routine pruning and tree health work can usually be scheduled around your calendar.

Let's take a look

Set up your free assessment today.

Tell us what's going on — urgent hazard, routine care, or a bigger land project — and we'll take it from there.

Call (832) 347-4323 →
Phone
(832) 347-4323
Email
llhunt2002@yahoo.com
Address
731 Rennie St., Katy, TX 77450
Artistic Tree Care · Houston & Katy, TX · Concept landing page
UPDATE
UPDATE
Image Gallery Grid
T
Please Check Your Email
We Will Be Following Up Shortly
*
*
*

warning