{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8IS0tIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICAgICAgICBVUkw6IHRhc24uaGFuZHNoYWtlLmFmcmljYS9iYWRnZXMKICAgICAgICAgUFVSUE9TRTogR2VuZXJhdGUgJiBEb3dubG9hZCBzaGFyZWFibGUgc29jaWFsIG1lZGlhIGJhZGdlcwogICAgICAgICBUWVBFUzogRmxvdXJpc2hpbmcgRnVuZCBDb250cmlidXRvciwgQmlydGhkYXkgQ2x1YiBXaW5uZXIsIFdoZWVsIFdpbm5lcgogICAgICAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgLS0+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICA8dGl0bGU+8J+PhSBHZXQgWW91ciBCYWRnZSEgfCBUQVNOIEJhZGdlcyB8IEhhbmRzaGFrZSBBZnJpY2E8L3RpdGxlPgogICAgPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IkNyZWF0ZSB5b3VyIHBlcnNvbmFsaXplZCBUQVNOIGJhZGdlISBGbG91cmlzaGluZyBGdW5kIGNvbnRyaWJ1dG9ycywgQmlydGhkYXkgQ2x1YiBtZW1iZXJzLCBhbmQgV2hlZWwgd2lubmVycyAtIHNoYXJlIHlvdXIgYWNoaWV2ZW1lbnQhIj4KICAgIDxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSJodHRwczovL3Rhc24uaGFuZHNoYWtlLmFmcmljYS9iYWRnZXMiPgogICAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1QbGF5ZmFpcitEaXNwbGF5OndnaHRANDAwOzUwMDs2MDA7NzAwOzgwMDs5MDAmZmFtaWx5PUNvcm1vcmFudCtHYXJhbW9uZDppdGFsLHdnaHRAMCw0MDA7MCw1MDA7MCw2MDA7MCw3MDA7MSw0MDA7MSw1MDAmZmFtaWx5PU51bml0bzp3Z2h0QDMwMDs0MDA7NTAwOzYwMDs3MDA7ODAwJmRpc3BsYXk9c3dhcCIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDwhLS0gaHRtbDJjYW52YXMgZm9yIGRvd25sb2FkaW5nIC0tPgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2h0bWwyY2FudmFzLzEuNC4xL2h0bWwyY2FudmFzLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c3R5bGU+CiAgICAgICAgOnJvb3QgewogICAgICAgICAgICAtLWZ1c2NoaWE6ICNFOTFFOEI7CiAgICAgICAgICAgIC0tb3JhbmdlOiAjRkY2QjM1OwogICAgICAgICAgICAtLW1pbnQ6ICMzRUI0ODk7CiAgICAgICAgICAgIC0tZ29sZDogI0Q0QUYzNzsKICAgICAgICAgICAgLS1pdm9yeTogI0ZGRjlGNTsKICAgICAgICAgICAgLS1jaGFyY29hbDogIzFhMWEyZTsKICAgICAgICAgICAgLS1uYXZ5OiAjMTYyMTNlOwogICAgICAgICAgICAtLWRlZXA6ICMwZjBmMjM7CiAgICAgICAgfQogICAgICAgIAogICAgICAgICogeyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH0KICAgICAgICBodG1sIHsgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7IGZvbnQtc2l6ZTogMThweDsgfQogICAgICAgIAogICAgICAgIGJvZHkgewogICAgICAgICAgICBmb250LWZhbWlseTogJ051bml0bycsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRlZXApOwogICAgICAgICAgICBjb2xvcjogdmFyKC0taXZvcnkpOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS44OwogICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBCQUNLR1JPVU5EICovCiAgICAgICAgLmJnLW1hc3RlciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgdG9wOiAwOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgei1pbmRleDogMDsKICAgICAgICAgICAgYmFja2dyb3VuZDogCiAgICAgICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCAyMCUgMjAlLCByZ2JhKDIzMywgMzAsIDEzOSwgMC4xNSkgMCUsIHRyYW5zcGFyZW50IDUwJSksCiAgICAgICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCA4MCUgNTAlLCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4xMikgMCUsIHRyYW5zcGFyZW50IDQ1JSksCiAgICAgICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCA0MCUgODAlLCByZ2JhKDYyLCAxODAsIDEzNywgMC4xKSAwJSwgdHJhbnNwYXJlbnQgNTAlKSwKICAgICAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHZhcigtLWRlZXApIDAlLCB2YXIoLS1uYXZ5KSA1MCUsIHZhcigtLWNoYXJjb2FsKSAxMDAlKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbnRlbnQtd3JhcHBlciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIEhFQURFUiAqLwogICAgICAgIC5oZWFkZXIgewogICAgICAgICAgICBwYWRkaW5nOiAyNXB4OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICAgICAgZ2FwOiAxNXB4OwogICAgICAgIH0KICAgICAgICAubG9nbyB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIH0KICAgICAgICAuYmFjay1saW5rIHsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWZ1c2NoaWEpOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogSEVSTyAqLwogICAgICAgIC5oZXJvIHsKICAgICAgICAgICAgcGFkZGluZzogNDBweCAyNXB4OwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1heC13aWR0aDogNzAwcHg7CiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAuaGVybyBoMSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IGNsYW1wKDEuOHJlbSwgNXZ3LCAyLjVyZW0pOwogICAgICAgICAgICBmb250LXdlaWdodDogODAwOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1nb2xkKSwgdmFyKC0tZnVzY2hpYSksIHZhcigtLW1pbnQpKTsKICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAyMDAlIGF1dG87CiAgICAgICAgICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0OwogICAgICAgICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgIGFuaW1hdGlvbjogc2hpbW1lciA0cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgfQogICAgICAgIEBrZXlmcmFtZXMgc2hpbW1lciB7CiAgICAgICAgICAgIDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgY2VudGVyOyB9CiAgICAgICAgICAgIDEwMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAyMDAlIGNlbnRlcjsgfQogICAgICAgIH0KICAgICAgICAuaGVybyBwIHsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjA1cmVtOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDI0OSwgMjQ1LCAwLjgpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBCQURHRSBTRUxFQ1RPUiAqLwogICAgICAgIC5iYWRnZS1zZWxlY3RvciB7CiAgICAgICAgICAgIHBhZGRpbmc6IDMwcHggMjVweDsKICAgICAgICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIC5zZWxlY3Rvci10aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7CiAgICAgICAgfQogICAgICAgIC5iYWRnZS10eXBlcyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjAwcHgsIDFmcikpOwogICAgICAgICAgICBnYXA6IDIwcHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7CiAgICAgICAgfQogICAgICAgIC5iYWRnZS10eXBlLWJ0biB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC40KTsKICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4OwogICAgICAgICAgICBwYWRkaW5nOiAyNXB4IDIwcHg7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgIH0KICAgICAgICAuYmFkZ2UtdHlwZS1idG46aG92ZXIsIC5iYWRnZS10eXBlLWJ0bi5hY3RpdmUgewogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWZ1c2NoaWEpOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7CiAgICAgICAgfQogICAgICAgIC5iYWRnZS10eXBlLWJ0bi5hY3RpdmUgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzMywgMzAsIDEzOSwgMC4xNSk7CiAgICAgICAgfQogICAgICAgIC5iYWRnZS10eXBlLWljb24gewogICAgICAgICAgICBmb250LXNpemU6IDIuNXJlbTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICB9CiAgICAgICAgLmJhZGdlLXR5cGUtbmFtZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuMDVyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1pdm9yeSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIENVU1RPTUlaRVIgKi8KICAgICAgICAuY3VzdG9taXplciB7CiAgICAgICAgICAgIG1heC13aWR0aDogODAwcHg7CiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgICAgICBwYWRkaW5nOiAwIDI1cHggNTBweDsKICAgICAgICB9CiAgICAgICAgLmN1c3RvbWl6ZXItZ3JpZCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICAgICAgZ2FwOiA0MHB4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogc3RhcnQ7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIEZPUk0gU0lERSAqLwogICAgICAgIC5mb3JtLXNpZGUgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNCk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDM1cHggMzBweDsKICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgyMzMsIDMwLCAxMzksIDAuMik7CiAgICAgICAgfQogICAgICAgIC5mb3JtLXRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZnVzY2hpYSk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7CiAgICAgICAgfQogICAgICAgIC5mb3JtLWdyb3VwIHsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICB9CiAgICAgICAgLmZvcm0tZ3JvdXAgbGFiZWwgewogICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgICAgICBmb250LXNpemU6IDAuOTVyZW07CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjQ5LCAyNDUsIDAuODUpOwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIH0KICAgICAgICAuZm9ybS1ncm91cCBpbnB1dCwKICAgICAgICAuZm9ybS1ncm91cCBzZWxlY3QgewogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgcGFkZGluZzogMTRweCAxOHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNCk7CiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWl2b3J5KTsKICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtOwogICAgICAgICAgICBmb250LWZhbWlseTogJ051bml0bycsIHNhbnMtc2VyaWY7CiAgICAgICAgfQogICAgICAgIC5mb3JtLWdyb3VwIGlucHV0OmZvY3VzLAogICAgICAgIC5mb3JtLWdyb3VwIHNlbGVjdDpmb2N1cyB7CiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZnVzY2hpYSk7CiAgICAgICAgfQogICAgICAgIC5mb3JtLWdyb3VwIHNlbGVjdCBvcHRpb24gewogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFyY29hbCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIFBSRVZJRVcgU0lERSAqLwogICAgICAgIC5wcmV2aWV3LXNpZGUgewogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgfQogICAgICAgIC5wcmV2aWV3LXRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIEJBREdFIENBTlZBUyAqLwogICAgICAgIC5iYWRnZS1jYW52YXMgewogICAgICAgICAgICB3aWR0aDogMzIwcHg7CiAgICAgICAgICAgIGhlaWdodDogMzIwcHg7CiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvIDI1cHg7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogRkxPVVJJU0hJTkcgQkFER0UgKi8KICAgICAgICAuYmFkZ2UtZmxvdXJpc2hpbmcgewogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCAjMGYwZjIzLCAjMTYyMTNlKTsKICAgICAgICAgICAgYm9yZGVyOiA0cHggc29saWQgdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBwYWRkaW5nOiAyNXB4OwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQogICAgICAgIC5iYWRnZS1mbG91cmlzaGluZzo6YmVmb3JlIHsKICAgICAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAtNTAlOwogICAgICAgICAgICBsZWZ0OiAtNTAlOwogICAgICAgICAgICB3aWR0aDogMjAwJTsKICAgICAgICAgICAgaGVpZ2h0OiAyMDAlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCByZ2JhKDIzMywgMzAsIDEzOSwgMC4xKSAwJSwgdHJhbnNwYXJlbnQgNTAlKTsKICAgICAgICAgICAgYW5pbWF0aW9uOiByb3RhdGUgMjBzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CiAgICAgICAgQGtleWZyYW1lcyByb3RhdGUgewogICAgICAgICAgICAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9CiAgICAgICAgICAgIDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgICAgfQogICAgICAgIC5iYWRnZS1mbG91cmlzaGluZyAuYmFkZ2UtaWNvbiB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogNHJlbTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB6LWluZGV4OiAyOwogICAgICAgIH0KICAgICAgICAuYmFkZ2UtZmxvdXJpc2hpbmcgLmJhZGdlLWxhYmVsIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAzcHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB6LWluZGV4OiAyOwogICAgICAgIH0KICAgICAgICAuYmFkZ2UtZmxvdXJpc2hpbmcgLmJhZGdlLW1haW4tdGV4dCB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWZ1c2NoaWEpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgei1pbmRleDogMjsKICAgICAgICB9CiAgICAgICAgLmJhZGdlLWZsb3VyaXNoaW5nIC5iYWRnZS1uYW1lIHsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1pdm9yeSk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB6LWluZGV4OiAyOwogICAgICAgIH0KICAgICAgICAuYmFkZ2UtZmxvdXJpc2hpbmcgLmJhZGdlLWJ1c2luZXNzIHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjg1cmVtOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDI0OSwgMjQ1LCAwLjYpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHotaW5kZXg6IDI7CiAgICAgICAgfQogICAgICAgIC5iYWRnZS1mbG91cmlzaGluZyAuYmFkZ2UtY2F0ZWdvcnkgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1mdXNjaGlhKTsKICAgICAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgICAgICBwYWRkaW5nOiA2cHggMThweDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtOwogICAgICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHotaW5kZXg6IDI7CiAgICAgICAgfQogICAgICAgIC5iYWRnZS1mbG91cmlzaGluZyAuYmFkZ2UtcXVhcnRlciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgYm90dG9tOiAxNXB4OwogICAgICAgICAgICBmb250LXNpemU6IDAuN3JlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLW1pbnQpOwogICAgICAgICAgICB6LWluZGV4OiAyOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBCSVJUSERBWSBCQURHRSAqLwogICAgICAgIC5iYWRnZS1iaXJ0aGRheSB7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNDVkZWcsICMxYTBhMWEsICMyZDEyMzApOwogICAgICAgICAgICBib3JkZXI6IDRweCBzb2xpZCB2YXIoLS1mdXNjaGlhKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIHBhZGRpbmc6IDI1cHg7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CiAgICAgICAgLmJhZGdlLWJpcnRoZGF5OjpiZWZvcmUgewogICAgICAgICAgICBjb250ZW50OiAn8J+OgvCfjonwn46I8J+OgeKcqPCfjoonOwogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogM3JlbTsKICAgICAgICAgICAgb3BhY2l0eTogMC4xOwogICAgICAgICAgICB0b3A6IDUwJTsKICAgICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICB9CiAgICAgICAgLmJhZGdlLWJpcnRoZGF5IC5iYWRnZS1pY29uIHsKICAgICAgICAgICAgZm9udC1zaXplOiA0cmVtOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHotaW5kZXg6IDI7CiAgICAgICAgfQogICAgICAgIC5iYWRnZS1iaXJ0aGRheSAuYmFkZ2UtbGFiZWwgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjhyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDNweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHotaW5kZXg6IDI7CiAgICAgICAgfQogICAgICAgIC5iYWRnZS1iaXJ0aGRheSAuYmFkZ2UtbWFpbi10ZXh0IHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZnVzY2hpYSk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB6LWluZGV4OiAyOwogICAgICAgIH0KICAgICAgICAuYmFkZ2UtYmlydGhkYXkgLmJhZGdlLW5hbWUgewogICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWl2b3J5KTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB6LWluZGV4OiAyOwogICAgICAgIH0KICAgICAgICAuYmFkZ2UtYmlydGhkYXkgLmJhZGdlLXByaXplIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZ29sZCksIHZhcigtLW9yYW5nZSkpOwogICAgICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAyMHB4OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4OwogICAgICAgICAgICBmb250LXNpemU6IDAuOHJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB6LWluZGV4OiAyOwogICAgICAgIH0KICAgICAgICAuYmFkZ2UtYmlydGhkYXkgLmJhZGdlLXllYXIgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIGJvdHRvbTogMTVweDsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjdyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1taW50KTsKICAgICAgICAgICAgei1pbmRleDogMjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogV0hFRUwgV0lOTkVSIEJBREdFICovCiAgICAgICAgLmJhZGdlLXdoZWVsIHsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0NWRlZywgIzBhMWExNSwgIzBmMjkyMCk7CiAgICAgICAgICAgIGJvcmRlcjogNHB4IHNvbGlkIHZhcigtLW1pbnQpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgcGFkZGluZzogMjVweDsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KICAgICAgICAuYmFkZ2Utd2hlZWw6OmJlZm9yZSB7CiAgICAgICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHRvcDogNTAlOwogICAgICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgICAgIHdpZHRoOiAyMDBweDsKICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogY29uaWMtZ3JhZGllbnQodmFyKC0tbWludCksIHZhcigtLWdvbGQpLCB2YXIoLS1mdXNjaGlhKSwgdmFyKC0tb3JhbmdlKSwgdmFyKC0tbWludCkpOwogICAgICAgICAgICBvcGFjaXR5OiAwLjE7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAgICAgICAgIGFuaW1hdGlvbjogcm90YXRlIDE1cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgfQogICAgICAgIC5iYWRnZS13aGVlbCAuYmFkZ2UtaWNvbiB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogNHJlbTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB6LWluZGV4OiAyOwogICAgICAgIH0KICAgICAgICAuYmFkZ2Utd2hlZWwgLmJhZGdlLWxhYmVsIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAzcHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB6LWluZGV4OiAyOwogICAgICAgIH0KICAgICAgICAuYmFkZ2Utd2hlZWwgLmJhZGdlLW1haW4tdGV4dCB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLW1pbnQpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgei1pbmRleDogMjsKICAgICAgICB9CiAgICAgICAgLmJhZGdlLXdoZWVsIC5iYWRnZS1uYW1lIHsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1pdm9yeSk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgei1pbmRleDogMjsKICAgICAgICB9CiAgICAgICAgLmJhZGdlLXdoZWVsIC5iYWRnZS1wcml6ZSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLW1pbnQpOwogICAgICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAyMHB4OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4OwogICAgICAgICAgICBmb250LXNpemU6IDAuOHJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB6LWluZGV4OiAyOwogICAgICAgIH0KICAgICAgICAuYmFkZ2Utd2hlZWwgLmJhZGdlLXllYXIgewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIGJvdHRvbTogMTVweDsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjdyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgei1pbmRleDogMjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogRE9XTkxPQUQgQlVUVE9OICovCiAgICAgICAgLmRvd25sb2FkLWJ0biB7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICAgICAgcGFkZGluZzogMTZweCA0MHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1mdXNjaGlhKSwgdmFyKC0tb3JhbmdlKSk7CiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7CiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICAgIH0KICAgICAgICAuZG93bmxvYWQtYnRuOmhvdmVyIHsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpOwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDE1cHggNDBweCByZ2JhKDIzMywgMzAsIDEzOSwgMC40KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNoYXJlLXRpcCB7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45cmVtOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDI0OSwgMjQ1LCAwLjYpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBGT09URVIgKi8KICAgICAgICBmb290ZXIgewogICAgICAgICAgICBwYWRkaW5nOiA0MHB4IDI1cHg7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjMzLCAzMCwgMTM5LCAwLjE1KTsKICAgICAgICB9CiAgICAgICAgLmZvb3Rlci1saW5rcyB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBnYXA6IDI1cHg7CiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CiAgICAgICAgLmZvb3Rlci1saW5rcyBhIHsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNDksIDI0NSwgMC41KTsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICBmb250LXNpemU6IDAuOTVyZW07CiAgICAgICAgfQogICAgICAgIC5mb290ZXItbGlua3MgYTpob3ZlciB7IGNvbG9yOiB2YXIoLS1nb2xkKTsgfQogICAgICAgIAogICAgICAgIC8qIFJFU1BPTlNJVkUgKi8KICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAgICAgaHRtbCB7IGZvbnQtc2l6ZTogMTZweDsgfQogICAgICAgICAgICAuY3VzdG9taXplci1ncmlkIHsKICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC5iYWRnZS1jYW52YXMgewogICAgICAgICAgICAgICAgd2lkdGg6IDI4MHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAyODBweDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+CiAgICA8ZGl2IGNsYXNzPSJiZy1tYXN0ZXIiPjwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJjb250ZW50LXdyYXBwZXIiPgogICAgICAgIDwhLS0gSEVBREVSIC0tPgogICAgICAgIDxoZWFkZXIgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZ28iPvCfj4UgVEFTTiBCYWRnZXM8L2Rpdj4KICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly90YXNuLmhhbmRzaGFrZS5hZnJpY2EiIGNsYXNzPSJiYWNrLWxpbmsiPuKGkCBCYWNrIHRvIFRBU048L2E+CiAgICAgICAgPC9oZWFkZXI+CiAgICAgICAgCiAgICAgICAgPCEtLSBIRVJPIC0tPgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJoZXJvIj4KICAgICAgICAgICAgPGgxPkNyZWF0ZSBZb3VyIFNoYXJlYWJsZSBCYWRnZSE8L2gxPgogICAgICAgICAgICA8cD5DZWxlYnJhdGUgeW91ciBhY2hpZXZlbWVudCEgQ3JlYXRlIGEgcGVyc29uYWxpemVkIGJhZGdlIHRvIHNoYXJlIG9uIHNvY2lhbCBtZWRpYSwgV2hhdHNBcHAsIG9yIHlvdXIgd2Vic2l0ZS48L3A+CiAgICAgICAgPC9zZWN0aW9uPgogICAgICAgIAogICAgICAgIDwhLS0gQkFER0UgVFlQRSBTRUxFQ1RPUiAtLT4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0iYmFkZ2Utc2VsZWN0b3IiPgogICAgICAgICAgICA8aDIgY2xhc3M9InNlbGVjdG9yLXRpdGxlIj5DaG9vc2UgWW91ciBCYWRnZSBUeXBlPC9oMj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmFkZ2UtdHlwZXMiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmFkZ2UtdHlwZS1idG4gYWN0aXZlIiBvbmNsaWNrPSJzZWxlY3RCYWRnZVR5cGUoJ2Zsb3VyaXNoaW5nJykiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJhZGdlLXR5cGUtaWNvbiI+8J+MuDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJhZGdlLXR5cGUtbmFtZSI+RmxvdXJpc2hpbmcgRnVuZDxicj5Db250cmlidXRvcjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiYWRnZS10eXBlLWJ0biIgb25jbGljaz0ic2VsZWN0QmFkZ2VUeXBlKCdiaXJ0aGRheScpIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiYWRnZS10eXBlLWljb24iPvCfjoI8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiYWRnZS10eXBlLW5hbWUiPkJpcnRoZGF5IENsdWI8YnI+V2lubmVyPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJhZGdlLXR5cGUtYnRuIiBvbmNsaWNrPSJzZWxlY3RCYWRnZVR5cGUoJ3doZWVsJykiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJhZGdlLXR5cGUtaWNvbiI+8J+OoTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJhZGdlLXR5cGUtbmFtZSI+V2hlZWwgb2YgRm9ydHVuZTxicj5XaW5uZXI8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgCiAgICAgICAgPCEtLSBDVVNUT01JWkVSIC0tPgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJjdXN0b21pemVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3VzdG9taXplci1ncmlkIj4KICAgICAgICAgICAgICAgIDwhLS0gRk9STSBTSURFIC0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1zaWRlIj4KICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9ImZvcm0tdGl0bGUiPkN1c3RvbWl6ZSBZb3VyIEJhZGdlPC9oMz4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPllvdXIgTmFtZTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iYmFkZ2VOYW1lIiBwbGFjZWhvbGRlcj0iWW91ciBuYW1lIiBvbmlucHV0PSJ1cGRhdGVCYWRnZSgpIj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIiBpZD0iYnVzaW5lc3NHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5CdXNpbmVzcyBOYW1lPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJiYWRnZUJ1c2luZXNzIiBwbGFjZWhvbGRlcj0iWW91ciBidXNpbmVzcyIgb25pbnB1dD0idXBkYXRlQmFkZ2UoKSI+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCIgaWQ9ImNhdGVnb3J5R3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+Q2F0ZWdvcnk8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGlkPSJiYWRnZUNhdGVnb3J5IiBvbmNoYW5nZT0idXBkYXRlQmFkZ2UoKSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSLwn5KGIFNwYSAmIFdlbGxuZXNzIj7wn5KGIFNwYSAmIFdlbGxuZXNzPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSLwn5KFIE5haWwgJiBCZWF1dHkiPvCfkoUgTmFpbCAmIEJlYXV0eTwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0i8J+OryBDb2FjaGluZyBTZXNzaW9ucyI+8J+OryBDb2FjaGluZyBTZXNzaW9uczwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0i8J+TmiBCb29rcyAmIEd1aWRlcyI+8J+TmiBCb29rcyAmIEd1aWRlczwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0i8J+OkyBDb3Vyc2VzICYgVHJhaW5pbmciPvCfjpMgQ291cnNlcyAmIFRyYWluaW5nPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSLwn5OxIERpZ2l0YWwgUHJvZHVjdHMiPvCfk7EgRGlnaXRhbCBQcm9kdWN0czwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0i8J+OqCBEZXNpZ24gU2VydmljZXMiPvCfjqggRGVzaWduIFNlcnZpY2VzPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSLinKggU29tZXRoaW5nIFVuaXF1ZSEiPuKcqCBTb21ldGhpbmcgVW5pcXVlITwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIiBpZD0icHJpemVHcm91cCIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlByaXplIFdvbjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgaWQ9ImJhZGdlUHJpemUiIG9uY2hhbmdlPSJ1cGRhdGVCYWRnZSgpIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IvCfj4YgR3JhbmQgUHJpemUgV2lubmVyISI+8J+PhiBHcmFuZCBQcml6ZSBXaW5uZXIhPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSLwn5KzIERpZ2l0YWwgQ2FyZCBXaW5uZXIiPvCfkrMgRGlnaXRhbCBDYXJkIFdpbm5lcjwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0i8J+TsCBGZWF0dXJlIEFydGljbGUgV2lubmVyIj7wn5OwIEZlYXR1cmUgQXJ0aWNsZSBXaW5uZXI8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IvCfjoEgQmlydGhkYXkgQnVuZGxlIFdpbm5lciI+8J+OgSBCaXJ0aGRheSBCdW5kbGUgV2lubmVyPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSLwn4yNIERpcmVjdG9yeSBWSVAgV2lubmVyIj7wn4yNIERpcmVjdG9yeSBWSVAgV2lubmVyPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSLwn5OTIFN0cmF0ZWd5IEpvdXJuYWwgV2lubmVyIj7wn5OTIFN0cmF0ZWd5IEpvdXJuYWwgV2lubmVyPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDwhLS0gUFJFVklFVyBTSURFIC0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1zaWRlIj4KICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InByZXZpZXctdGl0bGUiPllvdXIgQmFkZ2UgUHJldmlldzwvaDM+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmFkZ2UtY2FudmFzIiBpZD0iYmFkZ2VDYW52YXMiPgogICAgICAgICAgICAgICAgICAgICAgICA8IS0tIEZMT1VSSVNISU5HIEJBREdFIChkZWZhdWx0KSAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmFkZ2UtZmxvdXJpc2hpbmciIGlkPSJiYWRnZUZsb3VyaXNoaW5nIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJhZGdlLWljb24iPvCfjLg8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJhZGdlLWxhYmVsIj5GbG91cmlzaGluZyBGdW5kPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiYWRnZS1tYWluLXRleHQiPkNlcnRpZmllZCBDb250cmlidXRvcjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmFkZ2UtbmFtZSIgaWQ9ImRpc3BsYXlOYW1lIj5Zb3VyIE5hbWU8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJhZGdlLWJ1c2luZXNzIiBpZD0iZGlzcGxheUJ1c2luZXNzIj5Zb3VyIEJ1c2luZXNzPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiYWRnZS1jYXRlZ29yeSIgaWQ9ImRpc3BsYXlDYXRlZ29yeSI+8J+ShiBTcGEgJiBXZWxsbmVzczwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmFkZ2UtcXVhcnRlciI+UTEgMjAyNiDigKIgVEFTTjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gQklSVEhEQVkgQkFER0UgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJhZGdlLWJpcnRoZGF5IiBpZD0iYmFkZ2VCaXJ0aGRheSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJhZGdlLWljb24iPvCfjoI8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJhZGdlLWxhYmVsIj5CaXJ0aGRheSBDbHViPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiYWRnZS1tYWluLXRleHQiPlNwaW4gV2lubmVyITwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmFkZ2UtbmFtZSIgaWQ9ImRpc3BsYXlOYW1lQmRheSI+WW91ciBOYW1lPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiYWRnZS1wcml6ZSIgaWQ9ImRpc3BsYXlQcml6ZUJkYXkiPvCfj4YgR3JhbmQgUHJpemUgV2lubmVyITwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmFkZ2UteWVhciI+MjAyNiDigKIgVEFTTiBCaXJ0aGRheSBDbHViPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBXSEVFTCBCQURHRSAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmFkZ2Utd2hlZWwiIGlkPSJiYWRnZVdoZWVsIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmFkZ2UtaWNvbiI+8J+OoTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmFkZ2UtbGFiZWwiPldoZWVsIG9mIEZvcnR1bmU8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJhZGdlLW1haW4tdGV4dCI+THVja3kgV2lubmVyITwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmFkZ2UtbmFtZSIgaWQ9ImRpc3BsYXlOYW1lV2hlZWwiPllvdXIgTmFtZTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmFkZ2UtcHJpemUiIGlkPSJkaXNwbGF5UHJpemVXaGVlbCI+8J+SsyBEaWdpdGFsIENhcmQgV2lubmVyPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiYWRnZS15ZWFyIj4yMDI2IOKAoiBUQVNOPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImRvd25sb2FkLWJ0biIgb25jbGljaz0iZG93bmxvYWRCYWRnZSgpIj4KICAgICAgICAgICAgICAgICAgICAgICAg8J+TpSBEb3dubG9hZCBCYWRnZQogICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJzaGFyZS10aXAiPvCfkqEgVGlwOiBTaGFyZSBvbiBMaW5rZWRJbiwgSW5zdGFncmFtIFN0b3JpZXMsIFdoYXRzQXBwIFN0YXR1cywgb3IgeW91ciB3ZWJzaXRlITwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgCiAgICAgICAgPCEtLSBGT09URVIgLS0+CiAgICAgICAgPGZvb3Rlcj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLWxpbmtzIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vdGFzbi5oYW5kc2hha2UuYWZyaWNhIj5UQVNOIFdoZWVsPC9hPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly90YXNuLmhhbmRzaGFrZS5hZnJpY2EvZmxvdXJpc2hpbmciPkZsb3VyaXNoaW5nIEZ1bmQ8L2E+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3Rhc24uaGFuZHNoYWtlLmFmcmljYS9iaXJ0aGRheSI+QmlydGhkYXkgQ2x1YjwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9mb290ZXI+CiAgICA8L2Rpdj4KICAgIAogICAgPHNjcmlwdD4KICAgICAgICBsZXQgY3VycmVudEJhZGdlVHlwZSA9ICdmbG91cmlzaGluZyc7CiAgICAgICAgCiAgICAgICAgLy8gU0VMRUNUIEJBREdFIFRZUEUKICAgICAgICBmdW5jdGlvbiBzZWxlY3RCYWRnZVR5cGUodHlwZSkgewogICAgICAgICAgICBjdXJyZW50QmFkZ2VUeXBlID0gdHlwZTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIFVwZGF0ZSBidXR0b25zCiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5iYWRnZS10eXBlLWJ0bicpLmZvckVhY2goYnRuID0+IGJ0bi5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKSk7CiAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBTaG93L2hpZGUgZm9ybSBmaWVsZHMKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J1c2luZXNzR3JvdXAnKS5zdHlsZS5kaXNwbGF5ID0gdHlwZSA9PT0gJ2Zsb3VyaXNoaW5nJyA/ICdibG9jaycgOiAnbm9uZSc7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYXRlZ29yeUdyb3VwJykuc3R5bGUuZGlzcGxheSA9IHR5cGUgPT09ICdmbG91cmlzaGluZycgPyAnYmxvY2snIDogJ25vbmUnOwogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJpemVHcm91cCcpLnN0eWxlLmRpc3BsYXkgPSB0eXBlICE9PSAnZmxvdXJpc2hpbmcnID8gJ2Jsb2NrJyA6ICdub25lJzsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIFNob3cgY29ycmVjdCBiYWRnZQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFkZ2VGbG91cmlzaGluZycpLnN0eWxlLmRpc3BsYXkgPSB0eXBlID09PSAnZmxvdXJpc2hpbmcnID8gJ2ZsZXgnIDogJ25vbmUnOwogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFkZ2VCaXJ0aGRheScpLnN0eWxlLmRpc3BsYXkgPSB0eXBlID09PSAnYmlydGhkYXknID8gJ2ZsZXgnIDogJ25vbmUnOwogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFkZ2VXaGVlbCcpLnN0eWxlLmRpc3BsYXkgPSB0eXBlID09PSAnd2hlZWwnID8gJ2ZsZXgnIDogJ25vbmUnOwogICAgICAgICAgICAKICAgICAgICAgICAgdXBkYXRlQmFkZ2UoKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gVVBEQVRFIEJBREdFCiAgICAgICAgZnVuY3Rpb24gdXBkYXRlQmFkZ2UoKSB7CiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFkZ2VOYW1lJykudmFsdWUgfHwgJ1lvdXIgTmFtZSc7CiAgICAgICAgICAgIGNvbnN0IGJ1c2luZXNzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhZGdlQnVzaW5lc3MnKS52YWx1ZSB8fCAnWW91ciBCdXNpbmVzcyc7CiAgICAgICAgICAgIGNvbnN0IGNhdGVnb3J5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhZGdlQ2F0ZWdvcnknKS52YWx1ZTsKICAgICAgICAgICAgY29uc3QgcHJpemUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFkZ2VQcml6ZScpLnZhbHVlOwogICAgICAgICAgICAKICAgICAgICAgICAgaWYgKGN1cnJlbnRCYWRnZVR5cGUgPT09ICdmbG91cmlzaGluZycpIHsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkaXNwbGF5TmFtZScpLnRleHRDb250ZW50ID0gbmFtZTsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkaXNwbGF5QnVzaW5lc3MnKS50ZXh0Q29udGVudCA9IGJ1c2luZXNzOwogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Rpc3BsYXlDYXRlZ29yeScpLnRleHRDb250ZW50ID0gY2F0ZWdvcnk7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudEJhZGdlVHlwZSA9PT0gJ2JpcnRoZGF5JykgewogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Rpc3BsYXlOYW1lQmRheScpLnRleHRDb250ZW50ID0gbmFtZTsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkaXNwbGF5UHJpemVCZGF5JykudGV4dENvbnRlbnQgPSBwcml6ZTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkaXNwbGF5TmFtZVdoZWVsJykudGV4dENvbnRlbnQgPSBuYW1lOwogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Rpc3BsYXlQcml6ZVdoZWVsJykudGV4dENvbnRlbnQgPSBwcml6ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBET1dOTE9BRCBCQURHRQogICAgICAgIGZ1bmN0aW9uIGRvd25sb2FkQmFkZ2UoKSB7CiAgICAgICAgICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYWRnZUNhbnZhcycpOwogICAgICAgICAgICAKICAgICAgICAgICAgaHRtbDJjYW52YXMoY2FudmFzLCB7CiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IG51bGwsCiAgICAgICAgICAgICAgICBzY2FsZTogMiwKICAgICAgICAgICAgICAgIHVzZUNPUlM6IHRydWUKICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbihjYW52YXMpIHsKICAgICAgICAgICAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7CiAgICAgICAgICAgICAgICBsaW5rLmRvd25sb2FkID0gYHRhc24tJHtjdXJyZW50QmFkZ2VUeXBlfS1iYWRnZS0yMDI2LnBuZ2A7CiAgICAgICAgICAgICAgICBsaW5rLmhyZWYgPSBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS9wbmcnKTsKICAgICAgICAgICAgICAgIGxpbmsuY2xpY2soKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIEluaXRpYWwgdXBkYXRlCiAgICAgICAgdXBkYXRlQmFkZ2UoKTsKICAgIDwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4=","embed":""}
🏅 TASN Badges
← Back to TASN
Create Your Shareable Badge!
Celebrate your achievement! Create a personalized badge to share on social media, WhatsApp, or your website.
Choose Your Badge Type
🌸
Flourishing Fund
Contributor
Contributor
🎂
Birthday Club
Winner
Winner
🎡
Wheel of Fortune
Winner
Winner
Customize Your Badge
Your Badge Preview
🌸
Flourishing Fund
Certified Contributor
Your Name
Your Business
💆 Spa & Wellness
Q1 2026 • TASN
🎂
Birthday Club
Spin Winner!
Your Name
🏆 Grand Prize Winner!
2026 • TASN Birthday Club
🎡
Wheel of Fortune
Lucky Winner!
Your Name
💳 Digital Card Winner
2026 • TASN
💡 Tip: Share on LinkedIn, Instagram Stories, WhatsApp Status, or your website!