commit/galaxy-central: guerler: Charts: Reintroduce chart filter, add jqplot plugin for large datasets
MSBuZXcgY29tbWl0IGluIGdhbGF4eS1jZW50cmFsOgoKaHR0cHM6Ly9iaXRidWNrZXQub3JnL2dh bGF4eS9nYWxheHktY2VudHJhbC9jb21taXRzL2EwZDFhOTFlMDViZS8KQ2hhbmdlc2V0OiAgIGEw ZDFhOTFlMDViZQpVc2VyOiAgICAgICAgZ3VlcmxlcgpEYXRlOiAgICAgICAgMjAxNC0wNi0xMCAw NTo1Mjo0NQpTdW1tYXJ5OiAgICAgQ2hhcnRzOiBSZWludHJvZHVjZSBjaGFydCBmaWx0ZXIsIGFk ZCBqcXBsb3QgcGx1Z2luIGZvciBsYXJnZSA9CmRhdGFzZXRzCkFmZmVjdGVkICM6ICA0MCBmaWxl cwoKZGlmZiAtciBkYjkyZjZlMTliMzgxODA5N2JkM2Q1YTE0OWFjZjgwY2VkOTA2NzVjIC1yIGEw ZDFhOTFlMDViZWUzMmRkNWYyZmFjPQo5M2Q4MGZiZTkzNWJhOGMyOCBjb25maWcvcGx1Z2lucy92 aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL2NoYXJ0cy9qcXBsb3Q9Ci9iYXIvY29uZmlnLmpz Ci0tLSAvZGV2L251bGwKKysrIGIvY29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRz L3N0YXRpYy9jaGFydHMvanFwbG90L2Jhci9jb25maWcuPQpqcwpAQCAtMCwwICsxLDE5IEBACitk ZWZpbmUoWydwbHVnaW4vY2hhcnRzL2pxcGxvdC9jb21tb24vY29uZmlnJ10sIGZ1bmN0aW9uKHBs b3RfY29uZmlnKSB7CisKK3JldHVybiAkLmV4dGVuZCh0cnVlLCB7fSwgcGxvdF9jb25maWcsIHsK KyAgICB0aXRsZSAgICAgICA6ICdSZWd1bGFyJywKKyAgICBjYXRlZ29yeSAgICA6ICdCYXIgZGlh Z3JhbXMnLAorICAgIGNvbHVtbnMgICAgIDogeworICAgICAgICB4IDogeworICAgICAgICAgICAg dGl0bGUgICAgICAgOiAnVmFsdWVzIGZvciB4LWF4aXMnLAorICAgICAgICAgICAgaXNfbGFiZWwg ICAgOiB0cnVlLAorICAgICAgICAgICAgaXNfYXV0byAgICAgOiB0cnVlCisgICAgICAgIH0sCisg ICAgICAgIHkgOiB7CisgICAgICAgICAgICB0aXRsZSAgIDogJ1ZhbHVlcyBmb3IgeS1heGlzJywK KyAgICAgICAgICAgIGlzX251bWVyaWMgIDogdHJ1ZQorICAgICAgICB9CisgICAgfQorfSk7CisK K30pOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKCmRpZmYgLXIgZGI5MmY2ZTE5YjM4MTgw OTdiZDNkNWExNDlhY2Y4MGNlZDkwNjc1YyAtciBhMGQxYTkxZTA1YmVlMzJkZDVmMmZhYz0KOTNk ODBmYmU5MzViYThjMjggY29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRzL3N0YXRp Yy9jaGFydHMvanFwbG90PQovYmFyL2xvZ28ucG5nCkJpbmFyeSBmaWxlIGNvbmZpZy9wbHVnaW5z L3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9zdGF0aWMvY2hhcnRzL2pxcGxvdC9iYXIvbD0Kb2dvLnBu ZyBoYXMgY2hhbmdlZAoKZGlmZiAtciBkYjkyZjZlMTliMzgxODA5N2JkM2Q1YTE0OWFjZjgwY2Vk OTA2NzVjIC1yIGEwZDFhOTFlMDViZWUzMmRkNWYyZmFjPQo5M2Q4MGZiZTkzNWJhOGMyOCBjb25m aWcvcGx1Z2lucy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL2NoYXJ0cy9qcXBsb3Q9Ci9i YXIvd3JhcHBlci5qcwotLS0gL2Rldi9udWxsCisrKyBiL2NvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6 YXRpb25zL2NoYXJ0cy9zdGF0aWMvY2hhcnRzL2pxcGxvdC9iYXIvd3JhcHBlcj0KLmpzCkBAIC0w LDAgKzEsMjYgQEAKKy8vIGRlcGVuZGVuY2llcworZGVmaW5lKFsncGx1Z2luL2NoYXJ0cy9qcXBs b3QvY29tbW9uL3dyYXBwZXInXSwgZnVuY3Rpb24oUGxvdCkgeworCisvLyB3aWRnZXQKK3JldHVy biBCYWNrYm9uZS5WaWV3LmV4dGVuZCgKK3sKKyAgICAvLyBpbml0aWFsaXplCisgICAgaW5pdGlh bGl6ZTogZnVuY3Rpb24oYXBwLCBvcHRpb25zKSB7CisgICAgICAgIHRoaXMuYXBwICAgICAgICA9 M0QgYXBwOworICAgICAgICB0aGlzLm9wdGlvbnMgICAgPTNEIG9wdGlvbnM7CisgICAgfSwKKyAg ICAgICAgICAgPTIwCisgICAgLy8gcmVuZGVyCisgICAgZHJhdyA6IGZ1bmN0aW9uKHByb2Nlc3Nf aWQsIGNoYXJ0LCByZXF1ZXN0X2RpY3Rpb25hcnkpIHsKKyAgICAgICAgdmFyIHBsb3QgPTNEIG5l dyBQbG90KHRoaXMuYXBwLCB0aGlzLm9wdGlvbnMpOworICAgICAgICBwbG90LmRyYXcocHJvY2Vz c19pZCwgY2hhcnQsIHJlcXVlc3RfZGljdGlvbmFyeSwgZnVuY3Rpb24ocGxvdF9jb249CmZpZyl7 CisgICAgICAgICAgICAkLmV4dGVuZCh0cnVlLCBwbG90X2NvbmZpZywgeworICAgICAgICAgICAg ICAgIHNlcmllc0RlZmF1bHRzOiB7CisgICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyOiAkLmpx cGxvdC5CYXJSZW5kZXJlcgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAg ICAgICB9KTsKKyAgICB9Cit9KTsKKworfSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQoK ZGlmZiAtciBkYjkyZjZlMTliMzgxODA5N2JkM2Q1YTE0OWFjZjgwY2VkOTA2NzVjIC1yIGEwZDFh OTFlMDViZWUzMmRkNWYyZmFjPQo5M2Q4MGZiZTkzNWJhOGMyOCBjb25maWcvcGx1Z2lucy92aXN1 YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL2NoYXJ0cy9qcXBsb3Q9Ci9jb21tb24vY29uZmlnLmpz Ci0tLSAvZGV2L251bGwKKysrIGIvY29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRz L3N0YXRpYy9jaGFydHMvanFwbG90L2NvbW1vbi9jb25mPQppZy5qcwpAQCAtMCwwICsxLDIxNyBA QAorZGVmaW5lKFtdLCBmdW5jdGlvbigpIHsKKworcmV0dXJuIHsKKyAgICB0aXRsZSAgICAgICA6 ICcnLAorICAgIGNhdGVnb3J5ICAgIDogJycsCisgICAgbGlicmFyeSAgICAgOiAnSnFQbG90JywK KyAgICB0YWcgICAgICAgICA6ICdkaXYnLAorICAgIGtleXdvcmRzICAgIDogJ2RlZmF1bHQgbWVk aXVtJywKKyAgICBzZXR0aW5ncyAgICA6IHsKKyAgICAgICAgc2VwYXJhdG9yX2xhYmVsICA6IHsK KyAgICAgICAgICAgIHRpdGxlICAgICAgIDogJ1ggYXhpcycsCisgICAgICAgICAgICB0eXBlICAg ICAgICA6ICdzZXBhcmF0b3InCisgICAgICAgIH0sCisgICAgICAgIHhfYXhpc19sYWJlbCA6IHsK KyAgICAgICAgICAgIHRpdGxlICAgICAgIDogJ0F4aXMgbGFiZWwnLAorICAgICAgICAgICAgaW5m byAgICAgICAgOiAnUHJvdmlkZSBhIGxhYmVsIGZvciB0aGUgYXhpcy4nLAorICAgICAgICAgICAg dHlwZSAgICAgICAgOiAndGV4dCcsCisgICAgICAgICAgICBpbml0ICAgICAgICA6ICdYLWF4aXMn LAorICAgICAgICAgICAgcGxhY2Vob2xkZXIgOiAnQXhpcyBsYWJlbCcKKyAgICAgICAgfSwKKyAg ICAgICAgeF9heGlzX3R5cGUgOiB7CisgICAgICAgICAgICB0aXRsZSAgICAgICA6ICdBeGlzIHZh bHVlIHR5cGUnLAorICAgICAgICAgICAgaW5mbyAgICAgICAgOiAnU2VsZWN0IHRoZSB2YWx1ZSB0 eXBlIG9mIHRoZSBheGlzLicsCisgICAgICAgICAgICB0eXBlICAgICAgICA6ICdzZWxlY3QnLAor ICAgICAgICAgICAgaW5pdCAgICAgICAgOiAnYXV0bycsCisgICAgICAgICAgICBkYXRhICAgICAg ICA6IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGxhYmVsICAgOiAn LS0gRG8gbm90IHNob3cgdmFsdWVzIC0tJywKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgICA6 ICdoaWRlJywKKyAgICAgICAgICAgICAgICAgICAgaGlkZSAgICA6IFsneF9heGlzX3RpY2snXQor ICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg ICBsYWJlbCAgIDogJ0F1dG8nLAorICAgICAgICAgICAgICAgICAgICB2YWx1ZSAgIDogJ2F1dG8n LAorICAgICAgICAgICAgICAgICAgICBoaWRlICAgIDogWyd4X2F4aXNfdGljayddCisgICAgICAg ICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGxhYmVs ICAgOiAnRmxvYXQnLAorICAgICAgICAgICAgICAgICAgICB2YWx1ZSAgIDogJ2YnLAorICAgICAg ICAgICAgICAgICAgICBzaG93ICAgIDogWyd4X2F4aXNfdGljayddCisgICAgICAgICAgICAgICAg fSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGxhYmVsICAgOiAnRXhw b25lbnQnLAorICAgICAgICAgICAgICAgICAgICB2YWx1ZSAgIDogJ2UnLAorICAgICAgICAgICAg ICAgICAgICBzaG93ICAgIDogWyd4X2F4aXNfdGljayddCisgICAgICAgICAgICAgICAgfSwKKyAg ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGxhYmVsICAgOiAnSW50ZWdlcics CisgICAgICAgICAgICAgICAgICAgIHZhbHVlICAgOiAnZCcsCisgICAgICAgICAgICAgICAgICAg IGhpZGUgICAgOiBbJ3hfYXhpc190aWNrJ10KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAg ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgbGFiZWwgICA6ICdQZXJjZW50YWdlJywKKyAg ICAgICAgICAgICAgICAgICAgdmFsdWUgICA6ICdwJywKKyAgICAgICAgICAgICAgICAgICAgc2hv dyAgICA6IFsneF9heGlzX3RpY2snXQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAg ICAgeworICAgICAgICAgICAgICAgICAgICBsYWJlbCAgIDogJ1JvdW5kZWQnLAorICAgICAgICAg ICAgICAgICAgICB2YWx1ZSAgIDogJ3InLAorICAgICAgICAgICAgICAgICAgICBzaG93ICAgIDog Wyd4X2F4aXNfdGljayddCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7Cisg ICAgICAgICAgICAgICAgICAgIGxhYmVsICAgOiAnU0ktcHJlZml4JywKKyAgICAgICAgICAgICAg ICAgICAgdmFsdWUgICA6ICdzJywKKyAgICAgICAgICAgICAgICAgICAgc2hvdyAgICA6IFsneF9h eGlzX3RpY2snXQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwK KyAgICAgICAgeF9heGlzX3RpY2sgOiB7CisgICAgICAgICAgICB0aXRsZSAgICAgICA6ICdBeGlz IHRpY2sgZm9ybWF0JywKKyAgICAgICAgICAgIGluZm8gICAgICAgIDogJ1NlbGVjdCB0aGUgdGlj ayBmb3JtYXQgZm9yIHRoZSBheGlzLicsCisgICAgICAgICAgICB0eXBlICAgICAgICA6ICdzZWxl Y3QnLAorICAgICAgICAgICAgaW5pdCAgICAgICAgOiAnLjEnLAorICAgICAgICAgICAgZGF0YSAg ICAgICAgOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBsYWJlbCAg IDogJzAuMDAwMDEnLAorICAgICAgICAgICAgICAgICAgICB2YWx1ZSAgIDogJy41JworICAgICAg ICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBsYWJl bCAgIDogJzAuMDAwMScsCisgICAgICAgICAgICAgICAgICAgIHZhbHVlICAgOiAnLjQnCisgICAg ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGxh YmVsICAgOiAnMC4wMDEnLAorICAgICAgICAgICAgICAgICAgICB2YWx1ZSAgIDogJy4zJworICAg ICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBs YWJlbCAgIDogJzAuMDEnLAorICAgICAgICAgICAgICAgICAgICB2YWx1ZSAgIDogJy4yJworICAg ICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBs YWJlbCAgIDogJzAuMScsCisgICAgICAgICAgICAgICAgICAgIHZhbHVlICAgOiAnLjEnCisgICAg ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGxh YmVsICAgOiAnMScsCisgICAgICAgICAgICAgICAgICAgIHZhbHVlICAgOiAnMScKKyAgICAgICAg ICAgICAgICB9CisgICAgICAgICAgICBdCisKKyAgICAgICAgfSwKKyAgICAgICAgc2VwYXJhdG9y X3RpY2sgIDogeworICAgICAgICAgICAgdGl0bGUgICAgICAgOiAnWSBheGlzJywKKyAgICAgICAg ICAgIHR5cGUgICAgICAgIDogJ3NlcGFyYXRvcicKKyAgICAgICAgfSwKKyAgICAgICAgeV9heGlz X2xhYmVsIDogeworICAgICAgICAgICAgdGl0bGUgICAgICAgOiAnQXhpcyBsYWJlbCcsCisgICAg ICAgICAgICBpbmZvICAgICAgICA6ICdQcm92aWRlIGEgbGFiZWwgZm9yIHRoZSBheGlzLicsCisg ICAgICAgICAgICB0eXBlICAgICAgICA6ICd0ZXh0JywKKyAgICAgICAgICAgIGluaXQgICAgICAg IDogJ1ktYXhpcycsCisgICAgICAgICAgICBwbGFjZWhvbGRlciA6ICdBeGlzIGxhYmVsJworICAg ICAgICB9LAorICAgICAgICB5X2F4aXNfdHlwZSA6IHsKKyAgICAgICAgICAgIHRpdGxlICAgICAg IDogJ0F4aXMgdmFsdWUgdHlwZScsCisgICAgICAgICAgICBpbmZvICAgICAgICA6ICdTZWxlY3Qg dGhlIHZhbHVlIHR5cGUgb2YgdGhlIGF4aXMuJywKKyAgICAgICAgICAgIHR5cGUgICAgICAgIDog J3NlbGVjdCcsCisgICAgICAgICAgICBpbml0ICAgICAgICA6ICdhdXRvJywKKyAgICAgICAgICAg IGRhdGEgICAgICAgIDogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg bGFiZWwgICA6ICctLSBEbyBub3Qgc2hvdyB2YWx1ZXMgLS0nLAorICAgICAgICAgICAgICAgICAg ICB2YWx1ZSAgIDogJ2hpZGUnLAorICAgICAgICAgICAgICAgICAgICBoaWRlICAgIDogWyd5X2F4 aXNfdGljayddCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAg ICAgICAgICAgICAgIGxhYmVsICAgOiAnQXV0bycsCisgICAgICAgICAgICAgICAgICAgIHZhbHVl ICAgOiAnYXV0bycsCisgICAgICAgICAgICAgICAgICAgIGhpZGUgICAgOiBbJ3lfYXhpc190aWNr J10KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg ICAgICAgbGFiZWwgICA6ICdGbG9hdCcsCisgICAgICAgICAgICAgICAgICAgIHZhbHVlICAgOiAn ZicsCisgICAgICAgICAgICAgICAgICAgIHNob3cgICAgOiBbJ3lfYXhpc190aWNrJ10KKyAgICAg ICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgbGFi ZWwgICA6ICdFeHBvbmVudCcsCisgICAgICAgICAgICAgICAgICAgIHZhbHVlICAgOiAnZScsCisg ICAgICAgICAgICAgICAgICAgIHNob3cgICAgOiBbJ3lfYXhpc190aWNrJ10KKyAgICAgICAgICAg ICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgbGFiZWwgICA6 ICdJbnRlZ2VyJywKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgICA6ICdkJywKKyAgICAgICAg ICAgICAgICAgICAgaGlkZSAgICA6IFsneV9heGlzX3RpY2snXQorICAgICAgICAgICAgICAgIH0s CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBsYWJlbCAgIDogJ1BlcmNl bnRhZ2UnLAorICAgICAgICAgICAgICAgICAgICB2YWx1ZSAgIDogJ3AnLAorICAgICAgICAgICAg ICAgICAgICBzaG93ICAgIDogWyd5X2F4aXNfdGljayddCisgICAgICAgICAgICAgICAgfSwKKyAg ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGxhYmVsICAgOiAnUm91bmRlZCcs CisgICAgICAgICAgICAgICAgICAgIHZhbHVlICAgOiAncicsCisgICAgICAgICAgICAgICAgICAg IHNob3cgICAgOiBbJ3lfYXhpc190aWNrJ10KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAg ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgbGFiZWwgICA6ICdTSS1wcmVmaXgnLAorICAg ICAgICAgICAgICAgICAgICB2YWx1ZSAgIDogJ3MnLAorICAgICAgICAgICAgICAgICAgICBzaG93 ICAgIDogWyd5X2F4aXNfdGljayddCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXQor ICAgICAgICB9LAorICAgICAgICB5X2F4aXNfdGljayA6IHsKKyAgICAgICAgICAgIHRpdGxlICAg ICAgIDogJ0F4aXMgdGljayBmb3JtYXQnLAorICAgICAgICAgICAgaW5mbyAgICAgICAgOiAnU2Vs ZWN0IHRoZSB0aWNrIGZvcm1hdCBmb3IgdGhlIGF4aXMuJywKKyAgICAgICAgICAgIHR5cGUgICAg ICAgIDogJ3NlbGVjdCcsCisgICAgICAgICAgICBpbml0ICAgICAgICA6ICcuMScsCisgICAgICAg ICAgICBkYXRhICAgICAgICA6IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg ICAgIGxhYmVsICAgOiAnMC4wMDAwMScsCisgICAgICAgICAgICAgICAgICAgIHZhbHVlICAgOiAn LjUnCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg ICAgICAgIGxhYmVsICAgOiAnMC4wMDAxJywKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgICA6 ICcuNCcKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg ICAgICAgICAgbGFiZWwgICA6ICcwLjAwMScsCisgICAgICAgICAgICAgICAgICAgIHZhbHVlICAg OiAnLjMnCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAg ICAgICAgICAgIGxhYmVsICAgOiAnMC4wMScsCisgICAgICAgICAgICAgICAgICAgIHZhbHVlICAg OiAnLjInCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAg ICAgICAgICAgIGxhYmVsICAgOiAnMC4xJywKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgICA6 ICcuMScKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg ICAgICAgICAgbGFiZWwgICA6ICcxJywKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgICA6ICcx JworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0KKworICAgICAgICB9LAorICAgICAg ICBzZXBhcmF0b3JfbGVnZW5kIDogeworICAgICAgICAgICAgdGl0bGUgICAgICAgOiAnT3RoZXJz JywKKyAgICAgICAgICAgIHR5cGUgICAgICAgIDogJ3NlcGFyYXRvcicKKyAgICAgICAgfSwKKyAg ICAgICAgc2hvd19sZWdlbmQgOiB7CisgICAgICAgICAgICB0aXRsZSAgICAgICA6ICdTaG93IGxl Z2VuZCcsCisgICAgICAgICAgICBpbmZvICAgICAgICA6ICdXb3VsZCB5b3UgbGlrZSB0byBhZGQg YSBsZWdlbmQ/JywKKyAgICAgICAgICAgIHR5cGUgICAgICAgIDogJ3JhZGlvYnV0dG9uJywKKyAg ICAgICAgICAgIGluaXQgICAgICAgIDogJ3RydWUnLAorICAgICAgICAgICAgZGF0YSAgICAgICAg OiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBsYWJlbCAgIDogJ1ll cycsCisgICAgICAgICAgICAgICAgICAgIHZhbHVlICAgOiAndHJ1ZScKKyAgICAgICAgICAgICAg ICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgbGFiZWwgICA6ICdO bycsCisgICAgICAgICAgICAgICAgICAgIHZhbHVlICAgOiAnZmFsc2UnCisgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgXQorICAgICAgICB9CisgICAgfQorfTsKKworfSk7ClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQoKZGlmZiAtciBkYjkyZjZlMTliMzgxODA5N2JkM2Q1YTE0OWFj ZjgwY2VkOTA2NzVjIC1yIGEwZDFhOTFlMDViZWUzMmRkNWYyZmFjPQo5M2Q4MGZiZTkzNWJhOGMy OCBjb25maWcvcGx1Z2lucy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL2NoYXJ0cy9qcXBs b3Q9Ci9jb21tb24vcGxvdC1jb25maWcuanMKLS0tIC9kZXYvbnVsbAorKysgYi9jb25maWcvcGx1 Z2lucy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL2NoYXJ0cy9qcXBsb3QvY29tbW9uL3Bs b3Q9Ci1jb25maWcuanMKQEAgLTAsMCArMSwxMjIgQEAKKy8vIGRlcGVuZGVuY2llcworZGVmaW5l KFtdLCBmdW5jdGlvbigpIHsKKworLy8gaGlnaGNoYXJ0cyBjb25maWd1cmF0aW9uCityZXR1cm4g ZnVuY3Rpb24oY2hhcnQpIHsKKworICAgIC8vIGdldCBjaGFydCBzZXR0aW5ncworICAgIHZhciBz ZXR0aW5ncyA9M0QgY2hhcnQuc2V0dGluZ3M7CisgICAgdmFyIHBsb3RfY29uZmlnID0zRCB7Cisg ICAgICAgIHNlcmllc0NvbG9yczogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB2YXIgY29sb3Jz ID0zRCBbXTsKKyAgICAgICAgICAgIHZhciBjb2xvclNjYWxlID0zRCBkMy5zY2FsZS5jYXRlZ29y eTIwKCk7CisgICAgICAgICAgICBmb3IgKHZhciBpID0zRCAwOyBpIDwgY2hhcnQuZ3JvdXBzLmxl bmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgY29sb3JzLnB1c2goY29sb3JTY2FsZShpKSk7 CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gY29sb3JzOworICAgICAgICB9KCks CisgICAgICA9MjAKKyAgICAgICAgc2VyaWVzRGVmYXVsdHM6IHsKKyAgICAgICAgICAgIHJlbmRl cmVyICAgICAgICAgICAgICAgIDogJC5qcXBsb3QuTGluZVJlbmRlcmVyLAorICAgICAgICAgICAg bGluZVdpZHRoICAgICAgICAgICAgICAgOiAxLCAgICAgICAgICAgICAgICAgICAgLy8gV2lkdGgg b2YgdGg9CmUgbGluZSBpbiBwaXhlbHMuCisgICAgICAgICAgICBzaGFkb3cgICAgICAgICAgICAg ICAgICA6IGZhbHNlLCAgICAgICAgICAgICAgICAvLyBzaG93IHNoYWRvdz0KIG9yIG5vdC4KKyAg ICAgICAgICAgIHNob3dMaW5lICAgICAgICAgICAgICAgIDogdHJ1ZSwgICAgICAgICAgICAgICAg IC8vIHdoZXRoZXIgdG8gPQpyZW5kZXIgdGhlIGxpbmUgc2VnbWVudHMgb3Igbm90LgorICAgICAg PTIwCisgICAgICAgICAgICAvLyBTaG93IHBvaW50IGxhYmVscyB0byB0aGUgcmlnaHQgKCdlJ2Fz dCkgb2YgZWFjaCBiYXIuCisgICAgICAgICAgICAvLyBlZGdlVG9sZXJhbmNlIG9mIC0xNSBhbGxv d3MgbGFiZWxzIGZsb3cgb3V0c2lkZSB0aGUgZ3JpZAorICAgICAgICAgICAgLy8gdXAgdG8gMTUg cGl4ZWxzLiAgSWYgdGhleSBmbG93IG91dCBtb3JlIHRoYW4gdGhhdCwgdGhleT0yMAorICAgICAg ICAgICAgLy8gd2lsbCBiZSBoaWRkZW4uCisgICAgICAgICAgICAvL3BvaW50TGFiZWxzICAgICAg ICAgICAgIDogeyBzaG93OiB0cnVlLCBsb2NhdGlvbjogJ2UnLCBlZGdlVD0Kb2xlcmFuY2U6IC0x NSB9LAorICAgICAgICAgICAgLy8gUm90YXRlIHRoZSBiYXIgc2hhZG93IGFzIGlmIGJhciBpcyBs aXQgZnJvbSB0b3AgcmlnaHQuCisgICAgICAgICAgICAvL3NoYWRvd0FuZ2xlICAgICAgICAgICAg IDogMTM1LAorICAgICAgICAgICAgLy8gSGVyZSdzIHdoZXJlIHdlIHRlbGwgdGhlIGNoYXJ0IGl0 IGlzIG9yaWVudGVkIGhvcml6b250YWxseS4KKyAgICAgICAgICAgIHJlbmRlcmVyT3B0aW9uczog eworICAgICAgICAgICAgICAgIHNoYWRvd0RlcHRoICAgICAgICAgOiAwLAorICAgICAgICAgICAg ICAgIC8vYmFyRGlyZWN0aW9uICAgICAgOiAnaG9yaXpvbnRhbCcsCisgICAgICAgICAgICAgICAg Ly9iYXJQYWRkaW5nICAgICAgICA6IDUsCisgICAgICAgICAgICAgICAgLy9iYXJNYXJnaW4gICAg ICAgICA6IDIsCisgICAgICAgICAgICAgICAgLy9iYXJXaWR0aCAgICAgICAgICAgIDogTWF0aC5t YXgoMC41IC8gY2hhcnQuZ3JvdXBzLmxlbmd0aD0KLCAyKSwKKyAgICAgICAgICAgICAgICBiYXJX aWR0aCAgICAgICAgICAgIDogMSwKKyAgICAgICAgICAgICAgICAvL2ZpbGxUb1plcm8gICAgICAg IDogdHJ1ZSwKKyAgICAgICAgICAgICAgICAvL3N0YWNrZWRWYWx1ZSAgICAgIDogdHJ1ZQorICAg ICAgICAgICAgfSwKKyAgICAgICAgICAgIG1hcmtlclJlbmRlcmVyICAgICAgICAgIDogJC5qcXBs b3QuTWFya2VyUmVuZGVyZXIsCisgICAgICAgICAgICBtYXJrZXJPcHRpb25zOiB7CisgICAgICAg ICAgICAgICAgc2hvdyAgICAgICAgICAgICAgICA6IGZhbHNlLCAgICAgICAgICAgICAgICAvLyB3 ZXRoZXIgdG8gcz0KaG93IGRhdGEgcG9pbnQgbWFya2Vycy4KKyAgICAgICAgICAgICAgICBzdHls ZSAgICAgICAgICAgICAgIDogJ2ZpbGxlZENpcmNsZScsICAgICAgIC8vIGNpcmNsZSwgZGlhPQpt b25kLCBzcXVhcmUsIGZpbGxlZENpcmNsZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZpbGxlZERpYW1vPQpuZCBvciBmaWxs ZWRTcXVhcmUuCisgICAgICAgICAgICAgICAgbGluZVdpZHRoICAgICAgICAgICA6IDAsICAgICAg ICAgICAgICAgICAgICAvLyB3aWR0aCBvZiB0aD0KZSBzdHJva2UgZHJhd2luZyB0aGUgbWFya2Vy LgorICAgICAgICAgICAgICAgIHNpemUgICAgICAgICAgICAgICAgOiAxMCwgICAgICAgICAgICAg ICAgICAgLy8gc2l6ZSAoZGlhbWU9CnRlciwgZWRnZSBsZW5ndGgsIGV0Yy4pIG9mIHRoZSBtYXJr ZXIuCisgICAgICAgICAgICAgICAgc2hhZG93ICAgICAgICAgICAgICA6IGZhbHNlLCAgICAgICAg ICAgICAgICAvLyB3ZXRoZXIgdG8gZD0KcmF3IHNoYWRvdyBvbiBtYXJrZXIgb3Igbm90LgorICAg ICAgICAgICAgICAgIHNoYWRvd0FuZ2xlICAgICAgICAgOiA0NSwgICAgICAgICAgICAgICAgICAg Ly8gYW5nbGUgb2YgdGg9CmUgc2hhZG93LiAgQ2xvY2t3aXNlIGZyb20geCBheGlzLgorICAgICAg ICAgICAgICAgIHNoYWRvd09mZnNldCAgICAgICAgOiAxLCAgICAgICAgICAgICAgICAgICAgLy8g b2Zmc2V0IGZyb209CiB0aGUgbGluZSBvZiB0aGUgc2hhZG93LAorICAgICAgICAgICAgICAgIHNo YWRvd0RlcHRoICAgICAgICAgOiAzLCAgICAgICAgICAgICAgICAgICAgLy8gTnVtYmVyIG9mIHM9 CnRyb2tlcyB0byBtYWtlIHdoZW4gZHJhd2luZyBzaGFkb3cuICBFYWNoIHN0cm9rZQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g b2Zmc2V0IGJ5IHM9CmhhZG93T2Zmc2V0IGZyb20gdGhlIGxhc3QuCisgICAgICAgICAgICAgICAg c2hhZG93QWxwaGEgICAgICAgICA6IDAuMDcgICAgICAgICAgICAgICAgICAvLyBPcGFjaXR5IG9m ID0KdGhlIHNoYWRvdworICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgPTIwCisgICAg ICAgIC8vIEN1c3RvbSBsYWJlbHMgZm9yIHRoZSBzZXJpZXMgYXJlIHNwZWNpZmllZCB3aXRoIHRo ZSAibGFiZWwiCisgICAgICAgIC8vIG9wdGlvbiBvbiB0aGUgc2VyaWVzIG9wdGlvbi4gIEhlcmUg YSBzZXJpZXMgb3B0aW9uIG9iamVjdAorICAgICAgICAvLyBpcyBzcGVjaWZpZWQgZm9yIGVhY2gg c2VyaWVzLgorICAgICAgICBzZXJpZXM6IFtdLAorICAgICAgPTIwCisgICAgICAgIC8vIFNob3cg dGhlIGxlZ2VuZCBhbmQgcHV0IGl0IG91dHNpZGUgdGhlIGdyaWQsIGJ1dCBpbnNpZGUgdGhlCisg ICAgICAgIC8vIHBsb3QgY29udGFpbmVyLCBzaHJpbmtpbmcgdGhlIGdyaWQgdG8gYWNjb21vZGF0 ZSB0aGUgbGVnZW5kLgorICAgICAgICAvLyBBIHZhbHVlIG9mICJvdXRzaWRlIiB3b3VsZCBub3Qg c2hyaW5rIHRoZSBncmlkIGFuZCBhbGxvdworICAgICAgICAvLyB0aGUgbGVnZW5kIHRvIG92ZXJm bG93IHRoZSBjb250YWluZXIuCisgICAgICAgIGxlZ2VuZDogeworICAgICAgICAgICAgc2hvdyAg ICAgICAgICAgICAgICAgICAgOiBjaGFydC5zZXR0aW5ncy5nZXQoJ3Nob3dfbGVnZW5kJykgPQo9 M0Q9M0QgJ3RydWUnLAorICAgICAgICAgICAgcGxhY2VtZW50ICAgICAgICAgICAgICAgOiAnaW5z aWRlR3JpZCcKKyAgICAgICAgfSwKKyAgICAgID0yMAorICAgICAgICBheGVzRGVmYXVsdHM6IHsK KyAgICAgICAgICAgIGxhYmVsUmVuZGVyZXIgICAgICAgICAgIDogJC5qcXBsb3QuQ2FudmFzQXhp c0xhYmVsUmVuZGVyZXIsCisgICAgICAgICAgICBsYWJlbE9wdGlvbnM6IHsKKyAgICAgICAgICAg ICAgICBmb250U2l6ZSAgICAgICAgICAgIDogJzEycHQnCisgICAgICAgICAgICB9LAorICAgICAg ICAgICAgdGlja1JlbmRlcmVyICAgICAgICAgICAgOiAkLmpxcGxvdC5DYW52YXNBeGlzVGlja1Jl bmRlcmVyICwKKyAgICAgICAgICAgIHRpY2tPcHRpb25zOiB7CisgICAgICAgICAgICAgICAgZm9u dFNpemUgICAgICAgICAgICA6ICcxMHB0JywKKyAgICAgICAgICAgICAgICB0ZXh0Q29sb3IgICAg ICAgICAgIDogJyMwMDAwMDAnCisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICA9MjAKKyAg ICAgICAgYXhlczogeworICAgICAgICAgICAgLy8gVXNlIGEgY2F0ZWdvcnkgYXhpcyBvbiB0aGUg eCBheGlzIGFuZCB1c2Ugb3VyIGN1c3RvbSB0aWNrcy4KKyAgICAgICAgICAgIHhheGlzOiB7Cisg ICAgICAgICAgICAgICAgbGFiZWwgICAgICAgICAgICAgICA6IGNoYXJ0LnNldHRpbmdzLmdldCgn eF9heGlzX2xhYmVsJyksCisgICAgICAgICAgICAgICAgdGlja1JlbmRlcmVyICAgICAgICA6ICQu anFwbG90LkF4aXNUaWNrUmVuZGVyZXIsCisgICAgICAgICAgICAgICAgdGlja09wdGlvbnM6IHsK KyAgICAgICAgICAgICAgICAgICAgYW5nbGUgICAgICAgICAgIDogLTMwCisgICAgICAgICAgICAg ICAgfSwKKyAgICAgICAgICAgICAgICB0aWNrSW50ZXJ2YWwgICAgICAgIDogMQorICAgICAgICAg ICAgfSwKKyAgICAgICAgICAgIC8vIFBhZCB0aGUgeSBheGlzIGp1c3QgYSBsaXR0bGUgc28gYmFy cyBjYW4gZ2V0IGNsb3NlIHRvLCBidXQKKyAgICAgICAgICAgIC8vIG5vdCB0b3VjaCwgdGhlIGdy aWQgYm91bmRhcmllcy4gIDEuMiBpcyB0aGUgZGVmYXVsdCBwYWRkaW5nLgorICAgICAgICAgICAg eWF4aXM6IHsKKyAgICAgICAgICAgICAgICBsYWJlbCAgICAgICAgICAgICAgIDogY2hhcnQuc2V0 dGluZ3MuZ2V0KCd5X2F4aXNfbGFiZWwnKSwKKyAgICAgICAgICAgICAgICAvL3RpY2tPcHRpb25z ICAgICAgIDoge2Zvcm1hdFN0cmluZzogJyQlZCd9LAorICAgICAgICAgICAgICAgIC8vcGFkZGlu ZyAgICAgICAgICAgICA6IDEuMiwKKyAgICAgICAgICAgICAgICAvL2F1dG9zY2FsZTp0cnVlCisg ICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICA9MjAKKyAgICAgICAgZ3JpZDogeworICAg ICAgICAgICAgYmFja2dyb3VuZCAgICAgICAgICAgICAgOiAnI0ZGRkZGRicsIC8vIENTUyBjb2xv ciBzcGVjIGZvciBiYWM9Cmtncm91bmQgY29sb3Igb2YgZ3JpZC4KKyAgICAgICAgICAgIGJvcmRl cldpZHRoICAgICAgICAgICAgIDogMCwKKyAgICAgICAgICAgIHNoYWRvdyAgICAgICAgICAgICAg ICAgIDogZmFsc2UKKyAgICAgICAgfSwKKyAgICAgID0yMAorICAgICAgICBjdXJzb3I6IHsKKyAg ICAgICAgICAgIHNob3cgICAgICAgICAgICAgICAgICAgIDogdHJ1ZSwKKyAgICAgICAgICAgIHpv b20gICAgICAgICAgICAgICAgICAgIDogdHJ1ZSwKKyAgICAgICAgICAgIHNob3dUb29sdGlwICAg ICAgICAgICAgIDogdHJ1ZQorICAgICAgICB9CisgICAgfTsKKyAgID0yMAorICAgIC8vIGNhbGxi YWNrCisgICAgcmV0dXJuIHBsb3RfY29uZmlnOworfTsKKworfSk7ClwgTm8gbmV3bGluZSBhdCBl bmQgb2YgZmlsZQoKZGlmZiAtciBkYjkyZjZlMTliMzgxODA5N2JkM2Q1YTE0OWFjZjgwY2VkOTA2 NzVjIC1yIGEwZDFhOTFlMDViZWUzMmRkNWYyZmFjPQo5M2Q4MGZiZTkzNWJhOGMyOCBjb25maWcv cGx1Z2lucy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL2NoYXJ0cy9qcXBsb3Q9Ci9jb21t b24vd3JhcHBlci5qcwotLS0gL2Rldi9udWxsCisrKyBiL2NvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6 YXRpb25zL2NoYXJ0cy9zdGF0aWMvY2hhcnRzL2pxcGxvdC9jb21tb24vd3JhcD0KcGVyLmpzCkBA IC0wLDAgKzEsMTQwIEBACisvLyBkZXBlbmRlbmNpZXMKK2RlZmluZShbJ3BsdWdpbi9jaGFydHMv anFwbG90L2NvbW1vbi9wbG90LWNvbmZpZycsICdwbHVnaW4vY2hhcnRzL3Rvb2xzJ10sPQogZnVu Y3Rpb24oY29uZmlnbWFrZXIsIFRvb2xzKSB7CisKKy8vIHdpZGdldAorcmV0dXJuIEJhY2tib25l LlZpZXcuZXh0ZW5kKAoreworICAgIC8vIHBsb3Qgc2VyaWVzCisgICAgcGxvdF9zZXJpZXM6IHsK KyAgICAgICAgbmFtZSAgICAgICAgICAgICAgICA6ICcnLAorICAgICAgICBkYXRhICAgICAgICAg ICAgICAgIDogW10sCisgICAgICAgIHRvb2x0aXA6IHsKKyAgICAgICAgICAgIGhlYWRlckZvcm1h dCAgICA6ICc8ZW0+e3BvaW50LmtleX08L2VtPjxici8+JworICAgICAgICB9CisgICAgfSwKKyAg ID0yMAorICAgIC8vIGluaXRpYWxpemUKKyAgICBpbml0aWFsaXplOiBmdW5jdGlvbihhcHAsIG9w dGlvbnMpIHsKKyAgICAgICAgdGhpcy5hcHAgICAgICAgID0zRCBhcHA7CisgICAgICAgIHRoaXMu b3B0aW9ucyAgICA9M0Qgb3B0aW9uczsKKyAgICB9LAorICAgICAgICAgICA9MjAKKyAgICAvLyBy ZW5kZXIKKyAgICBkcmF3IDogZnVuY3Rpb24ocHJvY2Vzc19pZCwgY2hhcnQsIHJlcXVlc3RfZGlj dGlvbmFyeSwgY2FsbGJhY2spIHsKKyAgICAgICAgdmFyIHNlbGYgPTNEIHRoaXM7CisgICAgICAg IHZhciBwbG90ID0zRCBuZXcgVG9vbHMucGFuZWxIZWxwZXIoeworICAgICAgICAgICAgYXBwICAg ICAgICAgICAgICAgICA6IHRoaXMuYXBwLAorICAgICAgICAgICAgcHJvY2Vzc19pZCAgICAgICAg ICA6IHByb2Nlc3NfaWQsCisgICAgICAgICAgICBjYW52YXMgICAgICAgICAgICAgIDogdGhpcy5v cHRpb25zLmNhbnZhcywKKyAgICAgICAgICAgIGNoYXJ0ICAgICAgICAgICAgICAgOiBjaGFydCwK KyAgICAgICAgICAgIHJlcXVlc3RfZGljdGlvbmFyeSAgOiByZXF1ZXN0X2RpY3Rpb25hcnksCisg ICAgICAgICAgICByZW5kZXIgICAgICAgICAgICAgIDogZnVuY3Rpb24oZ3JvdXBzLCBjYW52YXMp IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnJlbmRl cihjaGFydCwgZ3JvdXBzLCBjYW52PQphcywgY2FsbGJhY2spCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfSwKKyAgID0yMAorICAgIC8vIGRyYXcg YWxsIGRhdGEgaW50byBhIHNpbmdsZSBjYW52YXMKKyAgICByZW5kZXI6IGZ1bmN0aW9uKGNoYXJ0 LCBncm91cHMsIGVsX2NhbnZhcywgY2FsbGJhY2spIHsKKyAgICAgICAgLy8gY3JlYXRlIGNvbmZp Z3VyYXRpb24KKyAgICAgICAgdmFyIHBsb3RfY29uZmlnID0zRCBjb25maWdtYWtlcihjaGFydCk7 CisgICAgICAgIHZhciBwbG90X2RhdGEgPTNEIFtdCisgICAgICAgPTIwCisgICAgICAgIC8vIGlk ZW50aWZ5IGNhdGVnb3JpZXMKKyAgICAgICAgdGhpcy5fbWFrZUNhdGVnb3JpZXMoY2hhcnQsIGdy b3VwcywgcGxvdF9jb25maWcsIHRydWUpOworICAgICAgID0yMAorICAgICAgICAvLyBsb29wIHRo cm91Z2ggZGF0YSBncm91cHMKKyAgICAgICAgZm9yICh2YXIga2V5IGluIGdyb3VwcykgeworICAg ICAgICAgICAgLy8gZ2V0IGdyb3VwCisgICAgICAgICAgICB2YXIgZ3JvdXAgPTNEIGdyb3Vwc1tr ZXldOworICAgICAgICAgICA9MjAKKyAgICAgICAgICAgIC8vIHJlc2V0IGRhdGEKKyAgICAgICAg ICAgIHZhciBkYXRhID0zRCBUb29scy5tYWtlU2VyaWVzKGdyb3VwLCBbJ3gnLCAneSddKTsKKyAg ICAgICAgICAgPTIwCisgICAgICAgICAgICAvLyBhcHBlbmQgc2VyaWVzCisgICAgICAgICAgICBw bG90X2RhdGEucHVzaChkYXRhKTsKKyAgICAgICAgfQorICAgICAgID0yMAorICAgICAgICAvLyBk cmF3IHBsb3QKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIC8vIGNhbnZhcworICAgICAgICAg ICAgdmFyIGNhbnZhcyA9M0QgZWxfY2FudmFzWzBdOworICAgICAgICAgICA9MjAKKyAgICAgICAg ICAgIC8vIG1ha2UgY3VzdG9tIHdyYXBwZXIgY2FsbGJhY2sKKyAgICAgICAgICAgIGlmIChjYWxs YmFjaykgeworICAgICAgICAgICAgICAgIGNhbGxiYWNrKHBsb3RfY29uZmlnKTsKKyAgICAgICAg ICAgIH0KKyAgICAgICA9MjAKKyAgICAgICAgICAgIC8vIERyYXcgZ3JhcGggd2l0aCBkZWZhdWx0 IG9wdGlvbnMsIG92ZXJ3cml0aW5nIHdpdGggcGFzc2VkIG9wPQp0aW9ucworICAgICAgICAgICAg ZnVuY3Rpb24gZHJhd0dyYXBoIChvcHRzKSB7CisgICAgICAgICAgICAgICAgZWxfY2FudmFzLmVt cHR5KCk7CisgICAgICAgICAgICAgICAgdmFyIHBsb3RfY25mID0zRCBfLmV4dGVuZChfLmNsb25l KHBsb3RfY29uZmlnKSwgb3B0cyB8fCB7fT0KKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcGxv dCA9M0QgJC5qcXBsb3QoJ2NhbnZhcycsIHBsb3RfZGF0YSwgcGxvdF9jbmYpOworICAgICAgICAg ICAgfQorID0yMAorICAgICAgICAgICAgLy8gZHJhdyBwbG90CisgICAgICAgICAgICB2YXIgcGxv dCA9M0QgZHJhd0dyYXBoKCk7CisgICAgICAgICAgID0yMAorICAgICAgICAgICAgLy8gY2F0Y2gg d2luZG93IHJlc2l6ZSBldmVudAorICAgICAgICAgICAgdmFyIHNlbGYgPTNEIHRoaXM7CisgICAg ICAgICAgICAkKHdpbmRvdykucmVzaXplKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBk cmF3R3JhcGgoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgID0yMAorICAgICAgICAgICAgcmV0 dXJuIHRydWU7CisgICAgICAgIH0gY2F0Y2ggKGVycikgeworICAgICAgICAgICAgdGhpcy5faGFu ZGxlRXJyb3IoY2hhcnQsIGVycik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg IH0KKyAgICB9LAorICAgPTIwCisgICAgLy8gY3JlYXRlIGNhdGVnb3JpZXMKKyAgICBfbWFrZUNh dGVnb3JpZXM6IGZ1bmN0aW9uKGNoYXJ0LCBncm91cHMsIHBsb3RfY29uZmlnKSB7CisgICAgICAg IC8vIHJlc3VsdAorICAgICAgICB2YXIgcmVzdWx0ID0zRCBUb29scy5tYWtlQ2F0ZWdvcmllcyhj aGFydCwgZ3JvdXBzKTsKKyAgICAgICA9MjAKKyAgICAgICAgLyovIGFkZCBjYXRlZ29yaWVzIHRv IHBsb3QgY29uZmlndXJhdGlvbgorICAgICAgICBmb3IgKHZhciBrZXkgaW4gcmVzdWx0LmFycmF5 KSB7CisgICAgICAgICAgICB2YXIgYXhpcyA9M0Qga2V5ICsgJ2F4aXMnOworICAgICAgICAgICAg aWYgKHBsb3RfY29uZmlnLmF4ZXNbYXhpc10pIHsKKyAgICAgICAgICAgICAgICBwbG90X2NvbmZp Zy5heGVzW2F4aXNdLnRpY2tzID0zRCByZXN1bHQuYXJyYXlba2V5XTsKKyAgICAgICAgICAgIH0K KyAgICAgICAgfSovCisgICAgICAgPTIwCisgICAgICAgIC8vIGFkZCB4IHRpY2sgZm9ybWF0dGVy CisgICAgICAgIGZ1bmN0aW9uIGF4aXNUaWNrRm9ybWF0dGVyIChheGlzX2NoYXIsIHBsb3RfYXhp cywgYXhpc190eXBlLCBheGlzXz0KdGljaykgeworICAgICAgICAgICAgLyppZiAoYXhpc190eXBl ICE9M0QgJ2F1dG8nICYmIGF4aXNfdHlwZSAhPTNEPTNEIHVuZGVmaW5lZCkgeworICAgICAgICAg ICAgICAgIHBsb3RfYXhpcy50aWNrT3B0aW9ucy5mb3JtYXR0ZXIgPTNEIGZ1bmN0aW9uKGZvcm1h dCwgdmFsdWU9CikgeworICAgICAgICAgICAgICAgICAgICBpZiAoYXhpc190eXBlID0zRD0zRCAn aGlkZScpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnJzsKKyAgICAgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB2YXIgZm9ybWF0ID0zRCBkMy5mb3JtYXQo YXhpc190aWNrICsgYXhpc190eXBlKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZvcm1h dCh2KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeyovCisgICAgICAg ICAgICAgICAgaWYgKGNoYXJ0LmRlZmluaXRpb24uY29sdW1uc1theGlzX2NoYXJdLmlzX2xhYmVs KSB7CisgICAgICAgICAgICAgICAgICAgIHBsb3RfYXhpcy50aWNrT3B0aW9ucy5mb3JtYXR0ZXIg PTNEIGZ1bmN0aW9uKGZvcm1hdCwgdj0KYWx1ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAg aWYgKHZhbHVlID0zRD0zRCBwYXJzZUludCh2YWx1ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiAocmVzdWx0LmFycmF5W2F4aXNfY2hhcl0gIT0zRD0zRCB1bmRlZmluZWQpPQog eworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LmFycmF5W2F4 aXNfY2hhcl1bdmFsdWVdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnJzsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnJzsKKyAgICAgICAgICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg IC8vfQorICAgICAgICB9CisgICAgICAgIGF4aXNUaWNrRm9ybWF0dGVyICgneCcsIHBsb3RfY29u ZmlnLmF4ZXMueGF4aXMsIGNoYXJ0LnNldHRpbmdzLmdldD0KKCd4X2F4aXNfdHlwZScpLCBjaGFy dC5zZXR0aW5ncy5nZXQoJ3hfYXhpc190aWNrJykpOworICAgICAgICBheGlzVGlja0Zvcm1hdHRl ciAoJ3knLCBwbG90X2NvbmZpZy5heGVzLnlheGlzLCBjaGFydC5zZXR0aW5ncy5nZXQ9CigneV9h eGlzX3R5cGUnKSwgY2hhcnQuc2V0dGluZ3MuZ2V0KCd5X2F4aXNfdGljaycpKTsKKyAgICB9LAor ICAgPTIwCisgICAgLy8gaGFuZGxlIGVycm9yCisgICAgX2hhbmRsZUVycm9yOiBmdW5jdGlvbihj aGFydCwgZXJyKSB7CisgICAgICAgIGNoYXJ0LnN0YXRlKCdmYWlsZWQnLCBlcnIpOworICAgIH0K K30pOworCit9KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCgpkaWZmIC1yIGRiOTJmNmUx OWIzODE4MDk3YmQzZDVhMTQ5YWNmODBjZWQ5MDY3NWMgLXIgYTBkMWE5MWUwNWJlZTMyZGQ1ZjJm YWM9CjkzZDgwZmJlOTM1YmE4YzI4IGNvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0 cy9zdGF0aWMvY2hhcnRzL2pxcGxvdD0KL2xpbmUvY29uZmlnLmpzCi0tLSAvZGV2L251bGwKKysr IGIvY29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy9jaGFydHMvanFw bG90L2xpbmUvY29uZmlnPQouanMKQEAgLTAsMCArMSwxOSBAQAorZGVmaW5lKFsncGx1Z2luL2No YXJ0cy9qcXBsb3QvY29tbW9uL2NvbmZpZyddLCBmdW5jdGlvbihwbG90X2NvbmZpZykgeworCity ZXR1cm4gJC5leHRlbmQodHJ1ZSwge30sIHBsb3RfY29uZmlnLCB7CisgICAgdGl0bGUgICAgICAg OiAnTGluZSBjaGFydCcsCisgICAgY2F0ZWdvcnkgICAgOiAnT3RoZXJzJywKKyAgICBjb2x1bW5z ICAgICA6IHsKKyAgICAgICAgeCA6IHsKKyAgICAgICAgICAgIHRpdGxlICAgICAgIDogJ1ZhbHVl cyBmb3IgeC1heGlzJywKKyAgICAgICAgICAgIGlzX2xhYmVsICAgIDogdHJ1ZSwKKyAgICAgICAg ICAgIGlzX2F1dG8gICAgIDogdHJ1ZQorICAgICAgICB9LAorICAgICAgICB5IDogeworICAgICAg ICAgICAgdGl0bGUgICA6ICdWYWx1ZXMgZm9yIHktYXhpcycsCisgICAgICAgICAgICBpc19udW1l cmljICA6IHRydWUKKyAgICAgICAgfQorICAgIH0KK30pOworCit9KTsKXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCgpkaWZmIC1yIGRiOTJmNmUxOWIzODE4MDk3YmQzZDVhMTQ5YWNmODBjZWQ5 MDY3NWMgLXIgYTBkMWE5MWUwNWJlZTMyZGQ1ZjJmYWM9CjkzZDgwZmJlOTM1YmE4YzI4IGNvbmZp Zy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9zdGF0aWMvY2hhcnRzL2pxcGxvdD0KL2xp bmUvbG9nby5wbmcKQmluYXJ5IGZpbGUgY29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hh cnRzL3N0YXRpYy9jaGFydHMvanFwbG90L2xpbmUvPQpsb2dvLnBuZyBoYXMgY2hhbmdlZAoKZGlm ZiAtciBkYjkyZjZlMTliMzgxODA5N2JkM2Q1YTE0OWFjZjgwY2VkOTA2NzVjIC1yIGEwZDFhOTFl MDViZWUzMmRkNWYyZmFjPQo5M2Q4MGZiZTkzNWJhOGMyOCBjb25maWcvcGx1Z2lucy92aXN1YWxp emF0aW9ucy9jaGFydHMvc3RhdGljL2NoYXJ0cy9qcXBsb3Q9Ci9saW5lL3dyYXBwZXIuanMKLS0t IC9kZXYvbnVsbAorKysgYi9jb25maWcvcGx1Z2lucy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3Rh dGljL2NoYXJ0cy9qcXBsb3QvbGluZS93cmFwcGU9CnIuanMKQEAgLTAsMCArMSwyMCBAQAorLy8g ZGVwZW5kZW5jaWVzCitkZWZpbmUoWydwbHVnaW4vY2hhcnRzL2pxcGxvdC9jb21tb24vd3JhcHBl ciddLCBmdW5jdGlvbihQbG90KSB7CisKKy8vIHdpZGdldAorcmV0dXJuIEJhY2tib25lLlZpZXcu ZXh0ZW5kKAoreworICAgIC8vIGluaXRpYWxpemUKKyAgICBpbml0aWFsaXplOiBmdW5jdGlvbihh cHAsIG9wdGlvbnMpIHsKKyAgICAgICAgdGhpcy5hcHAgICAgICAgID0zRCBhcHA7CisgICAgICAg IHRoaXMub3B0aW9ucyAgICA9M0Qgb3B0aW9uczsKKyAgICB9LAorICAgICAgICAgICA9MjAKKyAg ICAvLyByZW5kZXIKKyAgICBkcmF3IDogZnVuY3Rpb24ocHJvY2Vzc19pZCwgY2hhcnQsIHJlcXVl c3RfZGljdGlvbmFyeSkgeworICAgICAgICB2YXIgcGxvdCA9M0QgbmV3IFBsb3QodGhpcy5hcHAs IHRoaXMub3B0aW9ucyk7CisgICAgICAgIHBsb3QuZHJhdyhwcm9jZXNzX2lkLCBjaGFydCwgcmVx dWVzdF9kaWN0aW9uYXJ5KTsKKyAgICB9Cit9KTsKKworfSk7ClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQoKZGlmZiAtciBkYjkyZjZlMTliMzgxODA5N2JkM2Q1YTE0OWFjZjgwY2VkOTA2NzVj IC1yIGEwZDFhOTFlMDViZWUzMmRkNWYyZmFjPQo5M2Q4MGZiZTkzNWJhOGMyOCBjb25maWcvcGx1 Z2lucy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL2NoYXJ0cy9qcXBsb3Q9Ci9zY2F0dGVy L2NvbmZpZy5qcwotLS0gL2Rldi9udWxsCisrKyBiL2NvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRp b25zL2NoYXJ0cy9zdGF0aWMvY2hhcnRzL2pxcGxvdC9zY2F0dGVyL2Nvbj0KZmlnLmpzCkBAIC0w LDAgKzEsMTggQEAKK2RlZmluZShbJ3BsdWdpbi9jaGFydHMvanFwbG90L2NvbW1vbi9jb25maWcn XSwgZnVuY3Rpb24ocGxvdF9jb25maWcpIHsKKworcmV0dXJuICQuZXh0ZW5kKHRydWUsIHt9LCBw bG90X2NvbmZpZywgeworICAgIHRpdGxlICAgICAgIDogJ1NjYXR0ZXIgcGxvdCcsCisgICAgY2F0 ZWdvcnkgICAgOiAnT3RoZXJzJywKKyAgICBjb2x1bW5zICAgICA6IHsKKyAgICAgICAgeCA6IHsK KyAgICAgICAgICAgIHRpdGxlICAgOiAnVmFsdWVzIGZvciB4LWF4aXMnLAorICAgICAgICAgICAg aXNfbnVtZXJpYyAgOiB0cnVlCisgICAgICAgIH0sCisgICAgICAgIHkgOiB7CisgICAgICAgICAg ICB0aXRsZSAgIDogJ1ZhbHVlcyBmb3IgeS1heGlzJywKKyAgICAgICAgICAgIGlzX251bWVyaWMg IDogdHJ1ZQorICAgICAgICB9CisgICAgfQorfSk7CisKK30pOwpcIE5vIG5ld2xpbmUgYXQgZW5k IG9mIGZpbGUKCmRpZmYgLXIgZGI5MmY2ZTE5YjM4MTgwOTdiZDNkNWExNDlhY2Y4MGNlZDkwNjc1 YyAtciBhMGQxYTkxZTA1YmVlMzJkZDVmMmZhYz0KOTNkODBmYmU5MzViYThjMjggY29uZmlnL3Bs dWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy9jaGFydHMvanFwbG90PQovc2NhdHRl ci9sb2dvLnBuZwpCaW5hcnkgZmlsZSBjb25maWcvcGx1Z2lucy92aXN1YWxpemF0aW9ucy9jaGFy dHMvc3RhdGljL2NoYXJ0cy9qcXBsb3Qvc2NhdHQ9CmVyL2xvZ28ucG5nIGhhcyBjaGFuZ2VkCgpk aWZmIC1yIGRiOTJmNmUxOWIzODE4MDk3YmQzZDVhMTQ5YWNmODBjZWQ5MDY3NWMgLXIgYTBkMWE5 MWUwNWJlZTMyZGQ1ZjJmYWM9CjkzZDgwZmJlOTM1YmE4YzI4IGNvbmZpZy9wbHVnaW5zL3Zpc3Vh bGl6YXRpb25zL2NoYXJ0cy9zdGF0aWMvY2hhcnRzL2pxcGxvdD0KL3NjYXR0ZXIvd3JhcHBlci5q cwotLS0gL2Rldi9udWxsCisrKyBiL2NvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0 cy9zdGF0aWMvY2hhcnRzL2pxcGxvdC9zY2F0dGVyL3dyYT0KcHBlci5qcwpAQCAtMCwwICsxLDMw IEBACisvLyBkZXBlbmRlbmNpZXMKK2RlZmluZShbJ3BsdWdpbi9jaGFydHMvanFwbG90L2NvbW1v bi93cmFwcGVyJ10sIGZ1bmN0aW9uKFBsb3QpIHsKKworLy8gd2lkZ2V0CityZXR1cm4gQmFja2Jv bmUuVmlldy5leHRlbmQoCit7CisgICAgLy8gaW5pdGlhbGl6ZQorICAgIGluaXRpYWxpemU6IGZ1 bmN0aW9uKGFwcCwgb3B0aW9ucykgeworICAgICAgICB0aGlzLmFwcCAgICAgICAgPTNEIGFwcDsK KyAgICAgICAgdGhpcy5vcHRpb25zICAgID0zRCBvcHRpb25zOworICAgIH0sCisgICAgICAgICAg ID0yMAorICAgIC8vIHJlbmRlcgorICAgIGRyYXcgOiBmdW5jdGlvbihwcm9jZXNzX2lkLCBjaGFy dCwgcmVxdWVzdF9kaWN0aW9uYXJ5KSB7CisgICAgICAgIHZhciBwbG90ID0zRCBuZXcgUGxvdCh0 aGlzLmFwcCwgdGhpcy5vcHRpb25zKTsKKyAgICAgICAgcGxvdC5kcmF3KHByb2Nlc3NfaWQsIGNo YXJ0LCByZXF1ZXN0X2RpY3Rpb25hcnksIGZ1bmN0aW9uKHBsb3RfY29uPQpmaWcpeworICAgICAg ICAgICAgJC5leHRlbmQodHJ1ZSwgcGxvdF9jb25maWcsIHsKKyAgICAgICAgICAgICAgICBzZXJp ZXNEZWZhdWx0czogeworICAgICAgICAgICAgICAgICAgICByZW5kZXJlcjogJC5qcXBsb3QuTGlu ZVJlbmRlcmVyLAorICAgICAgICAgICAgICAgICAgICBzaG93TGluZTogZmFsc2UsCisgICAgICAg ICAgICAgICAgICAgIG1hcmtlck9wdGlvbnMgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICBz aG93ICAgIDogdHJ1ZQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KK30pOworCit9KTsKXCBObyBuZXds aW5lIGF0IGVuZCBvZiBmaWxlCgpkaWZmIC1yIGRiOTJmNmUxOWIzODE4MDk3YmQzZDVhMTQ5YWNm ODBjZWQ5MDY3NWMgLXIgYTBkMWE5MWUwNWJlZTMyZGQ1ZjJmYWM9CjkzZDgwZmJlOTM1YmE4YzI4 IGNvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9zdGF0aWMvY2hhcnRzL252ZDMv Yj0KYXJfaG9yaXpvbnRhbC9jb25maWcuanMKLS0tIGEvY29uZmlnL3BsdWdpbnMvdmlzdWFsaXph dGlvbnMvY2hhcnRzL3N0YXRpYy9jaGFydHMvbnZkMy9iYXJfaG9yaXpvbnRhPQpsL2NvbmZpZy5q cworKysgYi9jb25maWcvcGx1Z2lucy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL2NoYXJ0 cy9udmQzL2Jhcl9ob3Jpem9udGE9CmwvY29uZmlnLmpzCkBAIC0zLDYgKzMsNyBAQAogcmV0dXJu ICQuZXh0ZW5kKHRydWUsIHt9LCBudmQzX2NvbmZpZywgewogICAgIHRpdGxlICAgICAgIDogJ0hv cml6b250YWwnLAogICAgIGNhdGVnb3J5ICAgIDogJ0JhciBkaWFncmFtcycsCisgICAga2V5d29y ZHMgICAgOiAnZGVmYXVsdCBzbWFsbCcsCiAgICAgY29sdW1ucyAgICAgOiB7CiAgICAgICAgIHgg OiB7CiAgICAgICAgICAgICB0aXRsZSAgICAgICA6ICdWYWx1ZXMgZm9yIHgtYXhpcycsCgpkaWZm IC1yIGRiOTJmNmUxOWIzODE4MDk3YmQzZDVhMTQ5YWNmODBjZWQ5MDY3NWMgLXIgYTBkMWE5MWUw NWJlZTMyZGQ1ZjJmYWM9CjkzZDgwZmJlOTM1YmE4YzI4IGNvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6 YXRpb25zL2NoYXJ0cy9zdGF0aWMvY2hhcnRzL252ZDMvYj0KYXJfaG9yaXpvbnRhbF9zdGFja2Vk L2NvbmZpZy5qcwotLS0gYS9jb25maWcvcGx1Z2lucy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3Rh dGljL2NoYXJ0cy9udmQzL2Jhcl9ob3Jpem9udGE9Cmxfc3RhY2tlZC9jb25maWcuanMKKysrIGIv Y29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy9jaGFydHMvbnZkMy9i YXJfaG9yaXpvbnRhPQpsX3N0YWNrZWQvY29uZmlnLmpzCkBAIC0zLDYgKzMsNyBAQAogcmV0dXJu ICQuZXh0ZW5kKHRydWUsIHt9LCBudmQzX2NvbmZpZywgewogICAgIHRpdGxlICAgICAgIDogJ1N0 YWNrZWQgaG9yaXpvbnRhbCcsCiAgICAgY2F0ZWdvcnkgICAgOiAnQmFyIGRpYWdyYW1zJywKKyAg ICBrZXl3b3JkcyAgICA6ICdkZWZhdWx0IHNtYWxsJywKICAgICBzZXR0aW5ncyAgICA6IHsKICAg ICAgICAgeF9heGlzX3R5cGUgOiB7CiAgICAgICAgICAgICBpbml0IDogJ2hpZGUnCgpkaWZmIC1y IGRiOTJmNmUxOWIzODE4MDk3YmQzZDVhMTQ5YWNmODBjZWQ5MDY3NWMgLXIgYTBkMWE5MWUwNWJl ZTMyZGQ1ZjJmYWM9CjkzZDgwZmJlOTM1YmE4YzI4IGNvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRp b25zL2NoYXJ0cy9zdGF0aWMvY2hhcnRzL252ZDMvYj0KYXJfc3RhY2tlZC9jb25maWcuanMKLS0t IGEvY29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy9jaGFydHMvbnZk My9iYXJfc3RhY2tlZC9jPQpvbmZpZy5qcworKysgYi9jb25maWcvcGx1Z2lucy92aXN1YWxpemF0 aW9ucy9jaGFydHMvc3RhdGljL2NoYXJ0cy9udmQzL2Jhcl9zdGFja2VkL2M9Cm9uZmlnLmpzCkBA IC0zLDYgKzMsNyBAQAogcmV0dXJuICQuZXh0ZW5kKHRydWUsIHt9LCBudmQzX2NvbmZpZywgewog ICAgIHRpdGxlICAgICAgIDogJ1N0YWNrZWQnLAogICAgIGNhdGVnb3J5ICAgIDogJ0JhciBkaWFn cmFtcycsCisgICAga2V5d29yZHMgICAgOiAnZGVmYXVsdCBzbWFsbCcsCiAgICAgY29sdW1ucyAg ICAgOiB7CiAgICAgICAgIHkgOiB7CiAgICAgICAgICAgICB0aXRsZSAgIDogJ1ZhbHVlcyBmb3Ig eS1heGlzJywKCmRpZmYgLXIgZGI5MmY2ZTE5YjM4MTgwOTdiZDNkNWExNDlhY2Y4MGNlZDkwNjc1 YyAtciBhMGQxYTkxZTA1YmVlMzJkZDVmMmZhYz0KOTNkODBmYmU5MzViYThjMjggY29uZmlnL3Bs dWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy9jaGFydHMvbnZkMy9jPQpvbW1vbi9j b25maWcuanMKLS0tIGEvY29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRzL3N0YXRp Yy9jaGFydHMvbnZkMy9jb21tb24vY29uZmlnPQouanMKKysrIGIvY29uZmlnL3BsdWdpbnMvdmlz dWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy9jaGFydHMvbnZkMy9jb21tb24vY29uZmlnPQouanMK QEAgLTUsNyArNSw3IEBACiAgICAgY2F0ZWdvcnkgICAgOiAnJywKICAgICBsaWJyYXJ5ICAgICA6 ICdOVkQzJywKICAgICB0YWcgICAgICAgICA6ICdzdmcnLAotICAgIGtleXdvcmRzICAgIDogJ2Rl ZmF1bHQgbnZkMycsCisgICAga2V5d29yZHMgICAgOiAnc21hbGwnLAogICAgIHNldHRpbmdzICAg IDogewogICAgICAgICBzZXBhcmF0b3JfbGFiZWwgIDogewogICAgICAgICAgICAgdGl0bGUgICAg ICAgOiAnWCBheGlzJywKCmRpZmYgLXIgZGI5MmY2ZTE5YjM4MTgwOTdiZDNkNWExNDlhY2Y4MGNl ZDkwNjc1YyAtciBhMGQxYTkxZTA1YmVlMzJkZDVmMmZhYz0KOTNkODBmYmU5MzViYThjMjggY29u ZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy9jaGFydHMvbnZkMy9jPQpv bW1vbi93cmFwcGVyLmpzCi0tLSBhL2NvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0 cy9zdGF0aWMvY2hhcnRzL252ZDMvY29tbW9uL3dyYXBwZT0Kci5qcworKysgYi9jb25maWcvcGx1 Z2lucy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL2NoYXJ0cy9udmQzL2NvbW1vbi93cmFw cGU9CnIuanMKQEAgLTE5LDcgKzE5LDcgQEAKICAgICAgICAgICAgIGNhbnZhcyAgICAgICAgICAg ICAgOiB0aGlzLm9wdGlvbnMuY2FudmFzLAogICAgICAgICAgICAgY2hhcnQgICAgICAgICAgICAg ICA6IGNoYXJ0LAogICAgICAgICAgICAgcmVxdWVzdF9kaWN0aW9uYXJ5ICA6IHJlcXVlc3RfZGlj dGlvbmFyeSwKLSAgICAgICAgICAgIHJlbmRlciAgICAgICAgICAgICAgOiBmdW5jdGlvbihjaGFy dCwgZ3JvdXBzLCBjYW52YXMpIHsKKyAgICAgICAgICAgIHJlbmRlciAgICAgICAgICAgICAgOiBm dW5jdGlvbihncm91cHMsIGNhbnZhcykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIHNlbGYucmVuZGVyKHR5cGUsIGNoYXJ0LCBncm91cHM9CiwgY2FudmFzLCBj YWxsYmFjaykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICB9KTsK QEAgLTUzLDExICs1Myw3IEBACiAgICAgICAgICAgICAgICA9MjAKICAgICAgICAgICAgICAgICAv LyBsZWdlbmQKICAgICAgICAgICAgICAgICBpZiAoZDNjaGFydC5zaG93TGVnZW5kKSB7Ci0gICAg ICAgICAgICAgICAgICAgIHZhciBsZWdlbmRfdmlzaWJsZSA9M0QgdHJ1ZTsKLSAgICAgICAgICAg ICAgICAgICAgaWYgKGNoYXJ0LnNldHRpbmdzLmdldCgnc2hvd19sZWdlbmQnKSA9M0Q9M0QgJ2Zh bHNlJykgewotICAgICAgICAgICAgICAgICAgICAgICAgbGVnZW5kX3Zpc2libGUgPTNEIGZhbHNl OwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGQzY2hhcnQuc2hv d0xlZ2VuZChsZWdlbmRfdmlzaWJsZSk7CisgICAgICAgICAgICAgICAgICAgIGQzY2hhcnQuc2hv d0xlZ2VuZChjaGFydC5zZXR0aW5ncy5nZXQoJ3Nob3dfbGVnZW5kJykgPQo9M0Q9M0QgJ3RydWUn KTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICA9MjAKICAgICAgICAgICAgICAg ICAvLyBjdXN0b20gY2FsbGJhY2sKCmRpZmYgLXIgZGI5MmY2ZTE5YjM4MTgwOTdiZDNkNWExNDlh Y2Y4MGNlZDkwNjc1YyAtciBhMGQxYTkxZTA1YmVlMzJkZDVmMmZhYz0KOTNkODBmYmU5MzViYThj MjggY29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy9jaGFydHMvbnZk My9oPQppc3RvZ3JhbS9jb25maWcuanMKLS0tIGEvY29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlv bnMvY2hhcnRzL3N0YXRpYy9jaGFydHMvbnZkMy9oaXN0b2dyYW0vY29uPQpmaWcuanMKKysrIGIv Y29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy9jaGFydHMvbnZkMy9o aXN0b2dyYW0vY29uPQpmaWcuanMKQEAgLTUsNiArNSw3IEBACiAgICAgdGl0bGUgICAgICAgOiAn SGlzdG9ncmFtJywKICAgICBjYXRlZ29yeSAgICA6ICdEYXRhIHByb2Nlc3NpbmcgKHJlcXVpcmVz IFwnY2hhcnRzXCcgdG9vbCBmcm9tIFRvb2xzaGVkPQopJywKICAgICBleGVjdXRlICAgICA6ICdo aXN0b2dyYW0nLAorICAgIGtleXdvcmRzICAgIDogJ2RlZmF1bHQgbGFyZ2UnLAogICAgIGNvbHVt bnMgICAgIDogewogICAgICAgICB5IDogewogICAgICAgICAgICAgdGl0bGUgICA6ICdPYnNlcnZh dGlvbnMnLAoKZGlmZiAtciBkYjkyZjZlMTliMzgxODA5N2JkM2Q1YTE0OWFjZjgwY2VkOTA2NzVj IC1yIGEwZDFhOTFlMDViZWUzMmRkNWYyZmFjPQo5M2Q4MGZiZTkzNWJhOGMyOCBjb25maWcvcGx1 Z2lucy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL2NoYXJ0cy9udmQzL2g9CmlzdG9ncmFt X2Rpc2NyZXRlL2NvbmZpZy5qcwotLS0gYS9jb25maWcvcGx1Z2lucy92aXN1YWxpemF0aW9ucy9j aGFydHMvc3RhdGljL2NoYXJ0cy9udmQzL2hpc3RvZ3JhbV9kaXM9CmNyZXRlL2NvbmZpZy5qcwor KysgYi9jb25maWcvcGx1Z2lucy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL2NoYXJ0cy9u dmQzL2hpc3RvZ3JhbV9kaXM9CmNyZXRlL2NvbmZpZy5qcwpAQCAtNCw2ICs0LDcgQEAKICAgICB0 aXRsZSAgICAgICA6ICdEaXNjcmV0ZSBIaXN0b2dyYW0nLAogICAgIGNhdGVnb3J5ICAgIDogJ0Rh dGEgcHJvY2Vzc2luZyAocmVxdWlyZXMgXCdjaGFydHNcJyB0b29sIGZyb20gVG9vbHNoZWQ9Cikn LAogICAgIGV4ZWN1dGUgICAgIDogJ2hpc3RvZ3JhbWRpc2NyZXRlJywKKyAgICBrZXl3b3JkcyAg ICA6ICdkZWZhdWx0IGxhcmdlJywKICAgICBjb2x1bW5zICAgICA6IHsKICAgICAgICAgeCA6IHsK ICAgICAgICAgICAgIHRpdGxlICAgICAgIDogJ09ic2VydmF0aW9ucycsCgpkaWZmIC1yIGRiOTJm NmUxOWIzODE4MDk3YmQzZDVhMTQ5YWNmODBjZWQ5MDY3NWMgLXIgYTBkMWE5MWUwNWJlZTMyZGQ1 ZjJmYWM9CjkzZDgwZmJlOTM1YmE4YzI4IGNvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2No YXJ0cy9zdGF0aWMvY2hhcnRzL252ZDMvbD0KaW5lX2ZvY3VzL2NvbmZpZy5qcwotLS0gYS9jb25m aWcvcGx1Z2lucy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL2NoYXJ0cy9udmQzL2xpbmVf Zm9jdXMvY289Cm5maWcuanMKKysrIGIvY29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hh cnRzL3N0YXRpYy9jaGFydHMvbnZkMy9saW5lX2ZvY3VzL2NvPQpuZmlnLmpzCkBAIC0zLDcgKzMs NyBAQAogcmV0dXJuICQuZXh0ZW5kKHRydWUsIHt9LCBudmQzX2NvbmZpZywgewogICAgIHRpdGxl ICAgICAgIDogJ0xpbmUgd2l0aCBmb2N1cycsCiAgICAgY2F0ZWdvcnkgICAgOiAnT3RoZXJzJywK LSAgICBrZXl3b3JkcyAgICA6ICdkZWZhdWx0IG52ZDMnLAorICAgIGtleXdvcmRzICAgIDogJ2Rl ZmF1bHQgc21hbGwnLAogICAgIGNvbHVtbnMgICAgIDogewogICAgICAgICB4IDogewogICAgICAg ICAgICAgdGl0bGUgICAgICAgOiAnVmFsdWVzIGZvciB4LWF4aXMnLAoKZGlmZiAtciBkYjkyZjZl MTliMzgxODA5N2JkM2Q1YTE0OWFjZjgwY2VkOTA2NzVjIC1yIGEwZDFhOTFlMDViZWUzMmRkNWYy ZmFjPQo5M2Q4MGZiZTkzNWJhOGMyOCBjb25maWcvcGx1Z2lucy92aXN1YWxpemF0aW9ucy9jaGFy dHMvc3RhdGljL2NoYXJ0cy9udmQzL3A9CmllL2NvbmZpZy5qcwotLS0gYS9jb25maWcvcGx1Z2lu cy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL2NoYXJ0cy9udmQzL3BpZS9jb25maWcuanMK KysrIGIvY29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy9jaGFydHMv bnZkMy9waWUvY29uZmlnLmpzCkBAIC01LDcgKzUsNyBAQAogICAgIGNhdGVnb3J5ICAgIDogJ0Fy ZWEgY2hhcnRzJywKICAgICBsaWJyYXJ5ICAgICA6ICdOVkQzJywKICAgICB0YWcgICAgICAgICA6 ICdzdmcnLAotICAgIGtleXdvcmRzICAgIDogJ2RlZmF1bHQgbnZkMycsCisgICAga2V5d29yZHMg ICAgOiAnZGVmYXVsdCBzbWFsbCcsCiAgICAgdXNlX3BhbmVscyAgOiB0cnVlLAogICAgIGNvbHVt bnMgOiB7CiAgICAgICAgIGxhYmVsIDogewoKZGlmZiAtciBkYjkyZjZlMTliMzgxODA5N2JkM2Q1 YTE0OWFjZjgwY2VkOTA2NzVjIC1yIGEwZDFhOTFlMDViZWUzMmRkNWYyZmFjPQo5M2Q4MGZiZTkz NWJhOGMyOCBjb25maWcvcGx1Z2lucy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL2NoYXJ0 cy9udmQzL3M9CnRhY2tlZGFyZWEvY29uZmlnLmpzCi0tLSBhL2NvbmZpZy9wbHVnaW5zL3Zpc3Vh bGl6YXRpb25zL2NoYXJ0cy9zdGF0aWMvY2hhcnRzL252ZDMvc3RhY2tlZGFyZWEvYz0Kb25maWcu anMKKysrIGIvY29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy9jaGFy dHMvbnZkMy9zdGFja2VkYXJlYS9jPQpvbmZpZy5qcwpAQCAtNCw2ICs0LDcgQEAKICAgICB0aXRs ZSAgICAgICA6ICdSZWd1bGFyJywKICAgICB6b29tYWJsZSAgICA6ICdheGlzJywKICAgICBjYXRl Z29yeSAgICA6ICdBcmVhIGNoYXJ0cycsCisgICAga2V5d29yZHMgICAgOiAnZGVmYXVsdCBzbWFs bCcsCiAgICAgY29sdW1ucyAgICAgOiB7CiAgICAgICAgIHggOiB7CiAgICAgICAgICAgICB0aXRs ZSAgICAgICA6ICdWYWx1ZXMgZm9yIHgtYXhpcycsCgpkaWZmIC1yIGRiOTJmNmUxOWIzODE4MDk3 YmQzZDVhMTQ5YWNmODBjZWQ5MDY3NWMgLXIgYTBkMWE5MWUwNWJlZTMyZGQ1ZjJmYWM9CjkzZDgw ZmJlOTM1YmE4YzI4IGNvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9zdGF0aWMv Y2hhcnRzL252ZDMvcz0KdGFja2VkYXJlYV9mdWxsL2NvbmZpZy5qcwotLS0gYS9jb25maWcvcGx1 Z2lucy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL2NoYXJ0cy9udmQzL3N0YWNrZWRhcmVh X2Y9CnVsbC9jb25maWcuanMKKysrIGIvY29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hh cnRzL3N0YXRpYy9jaGFydHMvbnZkMy9zdGFja2VkYXJlYV9mPQp1bGwvY29uZmlnLmpzCkBAIC00 LDYgKzQsNyBAQAogICAgIHRpdGxlICAgICAgIDogJ0V4cGFuZGVkJywKICAgICB6b29tYWJsZSAg ICA6ICdheGlzJywKICAgICBjYXRlZ29yeSAgICA6ICdBcmVhIGNoYXJ0cycsCisgICAga2V5d29y ZHMgICAgOiAnZGVmYXVsdCBzbWFsbCcsCiAgICAgY29sdW1ucyAgICAgOiB7CiAgICAgICAgIHkg OiB7CiAgICAgICAgICAgICB0aXRsZSAgICAgICA6ICdWYWx1ZXMgZm9yIHktYXhpcycsCgpkaWZm IC1yIGRiOTJmNmUxOWIzODE4MDk3YmQzZDVhMTQ5YWNmODBjZWQ5MDY3NWMgLXIgYTBkMWE5MWUw NWJlZTMyZGQ1ZjJmYWM9CjkzZDgwZmJlOTM1YmE4YzI4IGNvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6 YXRpb25zL2NoYXJ0cy9zdGF0aWMvY2hhcnRzL252ZDMvcz0KdGFja2VkYXJlYV9zdHJlYW0vY29u ZmlnLmpzCi0tLSBhL2NvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9zdGF0aWMv Y2hhcnRzL252ZDMvc3RhY2tlZGFyZWFfcz0KdHJlYW0vY29uZmlnLmpzCisrKyBiL2NvbmZpZy9w bHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9zdGF0aWMvY2hhcnRzL252ZDMvc3RhY2tlZGFy ZWFfcz0KdHJlYW0vY29uZmlnLmpzCkBAIC00LDcgKzQsNyBAQAogICAgIHRpdGxlICAgICAgIDog J1N0cmVhbScsCiAgICAgY2F0ZWdvcnkgICAgOiAnQXJlYSBjaGFydHMnLAogICAgIHpvb21hYmxl ICAgIDogJ2F4aXMnLAotICAgIGtleXdvcmRzICAgIDogJ2RlZmF1bHQgbnZkMycsCisgICAga2V5 d29yZHMgICAgOiAnZGVmYXVsdCBzbWFsbCcsCiAgICAgc2hvd21heG1pbiAgOiB0cnVlLAogICAg IGNvbHVtbnMgICAgIDogewogICAgICAgICB5IDogewoKZGlmZiAtciBkYjkyZjZlMTliMzgxODA5 N2JkM2Q1YTE0OWFjZjgwY2VkOTA2NzVjIC1yIGEwZDFhOTFlMDViZWUzMmRkNWYyZmFjPQo5M2Q4 MGZiZTkzNWJhOGMyOCBjb25maWcvcGx1Z2lucy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGlj L2NoYXJ0cy90b29scy49CmpzCi0tLSBhL2NvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2No YXJ0cy9zdGF0aWMvY2hhcnRzL3Rvb2xzLmpzCisrKyBiL2NvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6 YXRpb25zL2NoYXJ0cy9zdGF0aWMvY2hhcnRzL3Rvb2xzLmpzCkBAIC0xOSw3ICsxOSw3IEBACiAg ICAgICAgICAgICAvLyBjaGVjayBpZiB0aGlzIGNoYXJ0IGhhcyBtdWx0aXBsZSBwYW5lbHMKICAg ICAgICAgICAgIGlmICghY2hhcnQuZGVmaW5pdGlvbi51c2VfcGFuZWxzICYmIGNoYXJ0LnNldHRp bmdzLmdldCgndXNlX3BhPQpuZWxzJykgIT0zRD0zRCAndHJ1ZScpIHsKICAgICAgICAgICAgICAg ICAvLyBkcmF3IGFsbCBncm91cHMgaW50byBhIHNpbmdsZSBwYW5lbAotICAgICAgICAgICAgICAg IGlmIChyZW5kZXIoY2hhcnQsIHJlcXVlc3RfZGljdGlvbmFyeS5ncm91cHMsIGNhbnZhc1swXSkp IHsKKyAgICAgICAgICAgICAgICBpZiAocmVuZGVyKHJlcXVlc3RfZGljdGlvbmFyeS5ncm91cHMs IGNhbnZhc1swXSkpIHsKICAgICAgICAgICAgICAgICAgICAgY2hhcnQuc3RhdGUoJ29rJywgJ0No YXJ0IGRyYXduLicpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7CkBA IC0yNyw3ICsyNyw3IEBACiAgICAgICAgICAgICAgICAgdmFyIHZhbGlkID0zRCB0cnVlOwogICAg ICAgICAgICAgICAgIGZvciAodmFyIGdyb3VwX2luZGV4IGluIHJlcXVlc3RfZGljdGlvbmFyeS5n cm91cHMpIHsKICAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3VwID0zRCByZXF1ZXN0X2RpY3Rp b25hcnkuZ3JvdXBzW2dyb3VwX2luZGV4XTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFyZW5k ZXIoY2hhcnQsIFtncm91cF0sIGNhbnZhc1tncm91cF9pbmRleF0pKSB7CisgICAgICAgICAgICAg ICAgICAgIGlmICghcmVuZGVyKFtncm91cF0sIGNhbnZhc1tncm91cF9pbmRleF0pKSB7CiAgICAg ICAgICAgICAgICAgICAgICAgICB2YWxpZCA9M0QgZmFsc2U7CiAgICAgICAgICAgICAgICAgICAg ICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgfQpAQCAtODIsMTYgKzgyLDIzIEBACiB9 Owo9MjAKIC8vIHNlcmllcyBtYWtlcgotZnVuY3Rpb24gbWFrZVNlcmllcyhncm91cCkgeworZnVu Y3Rpb24gbWFrZVNlcmllcyhncm91cCwgb3JkZXIpIHsKICAgICAvLyByZXNldCBkYXRhCiAgICAg dmFyIGRhdGEgPTNEIFtdOwotICAgICAgPTIwCisgICA9MjAKICAgICAvLyBmb3JtYXQgY2hhcnQg ZGF0YQogICAgIGZvciAodmFyIHZhbHVlX2luZGV4IGluIGdyb3VwLnZhbHVlcykgewogICAgICAg ICAvLyBwYXJzZSBkYXRhCiAgICAgICAgIHZhciBwb2ludCA9M0QgW107Ci0gICAgICAgIGZvciAo dmFyIGNvbHVtbl9pbmRleCBpbiBncm91cC52YWx1ZXNbdmFsdWVfaW5kZXhdKSB7Ci0gICAgICAg ICAgICBwb2ludC5wdXNoKGdyb3VwLnZhbHVlc1t2YWx1ZV9pbmRleF1bY29sdW1uX2luZGV4XSk7 CisgICAgICAgIGlmIChvcmRlcikgeworICAgICAgICAgICAgZm9yICh2YXIgb3JkZXJfaW5kZXgg aW4gb3JkZXIpIHsKKyAgICAgICAgICAgICAgICB2YXIgY29sdW1uX2luZGV4ID0zRCBvcmRlcltv cmRlcl9pbmRleF07CisgICAgICAgICAgICAgICAgcG9pbnQucHVzaChncm91cC52YWx1ZXNbdmFs dWVfaW5kZXhdW2NvbHVtbl9pbmRleF0pOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2Ug eworICAgICAgICAgICAgZm9yICh2YXIgY29sdW1uX2luZGV4IGluIGdyb3VwLnZhbHVlc1t2YWx1 ZV9pbmRleF0pIHsKKyAgICAgICAgICAgICAgICBwb2ludC5wdXNoKGdyb3VwLnZhbHVlc1t2YWx1 ZV9pbmRleF1bY29sdW1uX2luZGV4XSk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAg ICA9MjAKICAgICAgICAgLy8gYWRkIHRvIGRhdGEKCmRpZmYgLXIgZGI5MmY2ZTE5YjM4MTgwOTdi ZDNkNWExNDlhY2Y4MGNlZDkwNjc1YyAtciBhMGQxYTkxZTA1YmVlMzJkZDVmMmZhYz0KOTNkODBm YmU5MzViYThjMjggY29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy9j aGFydHMvdHlwZXMuPQpqcwotLS0gYS9jb25maWcvcGx1Z2lucy92aXN1YWxpemF0aW9ucy9jaGFy dHMvc3RhdGljL2NoYXJ0cy90eXBlcy5qcworKysgYi9jb25maWcvcGx1Z2lucy92aXN1YWxpemF0 aW9ucy9jaGFydHMvc3RhdGljL2NoYXJ0cy90eXBlcy5qcwpAQCAtMTIsOSArMTIsOSBAQAogICAg ICAgICAncGx1Z2luL2NoYXJ0cy9udmQzL2xpbmUvY29uZmlnJywKICAgICAgICAgJ3BsdWdpbi9j aGFydHMvbnZkMy9zY2F0dGVyL2NvbmZpZycsCiAgICAgICAgICdwbHVnaW4vY2hhcnRzL252ZDMv c3RhY2tlZGFyZWEvY29uZmlnJywKLSAgICAgICAgJ3BsdWdpbi9jaGFydHMvZmxvdC9iYXIvY29u ZmlnJywKLSAgICAgICAgJ3BsdWdpbi9jaGFydHMvZHlncmFwaC9iYXIvY29uZmlnJywKLSAgICAg ICAgJ3BsdWdpbi9jaGFydHMvb3RoZXJzL2JveHBsb3QvY29uZmlnJywKKyAgICAgICAgJ3BsdWdp bi9jaGFydHMvanFwbG90L2Jhci9jb25maWcnLAorICAgICAgICAncGx1Z2luL2NoYXJ0cy9qcXBs b3QvbGluZS9jb25maWcnLAorICAgICAgICAncGx1Z2luL2NoYXJ0cy9qcXBsb3Qvc2NhdHRlci9j b25maWcnCiAgICAgICAgIF0sIGZ1bmN0aW9uKG52ZDNfYmFyLAogICAgICAgICAgICAgICAgICAg ICBudmQzX2Jhcl9zdGFja2VkLAogICAgICAgICAgICAgICAgICAgICBudmQzX2Jhcl9ob3Jpem9u dGFsLApAQCAtMjgsOSArMjgsOSBAQAogICAgICAgICAgICAgICAgICAgICBudmQzX2xpbmUsCiAg ICAgICAgICAgICAgICAgICAgIG52ZDNfc2NhdHRlciwKICAgICAgICAgICAgICAgICAgICAgbnZk M19zdGFja2VkYXJlYSwKLSAgICAgICAgICAgICAgICAgICAgZmxvdF9iYXIsCi0gICAgICAgICAg ICAgICAgICAgIGR5Z3JhcGhfYmFyLAotICAgICAgICAgICAgICAgICAgICBvdGhlcnNfYm94cGxv dAorICAgICAgICAgICAgICAgICAgICBqcXBsb3RfYmFyLAorICAgICAgICAgICAgICAgICAgICBq cXBsb3RfbGluZSwKKyAgICAgICAgICAgICAgICAgICAganFwbG90X3NjYXR0ZXIKICAgICAgICAg ICAgICkgewo9MjAKIC8vIHdpZGdldApAQCAtMzgsNiArMzgsNyBAQAogewogICAgIC8vIHR5cGVz CiAgICAgZGVmYXVsdHM6IHsKKyAgICAgICAgJ2pxcGxvdF9iYXInICAgICAgICAgICAgICAgICAg ICAgICAgOiBqcXBsb3RfYmFyLAogICAgICAgICAnbnZkM19iYXInICAgICAgICAgICAgICAgICAg ICAgICAgICA6IG52ZDNfYmFyLAogICAgICAgICAnbnZkM19iYXJfc3RhY2tlZCcgICAgICAgICAg ICAgICAgICA6IG52ZDNfYmFyX3N0YWNrZWQsCiAgICAgICAgICdudmQzX2Jhcl9ob3Jpem9udGFs JyAgICAgICAgICAgICAgIDogbnZkM19iYXJfaG9yaXpvbnRhbCwKQEAgLTUxLDkgKzUyLDggQEAK ICAgICAgICAgJ252ZDNfc2NhdHRlcicgICAgICAgICAgICAgICAgICAgICAgOiBudmQzX3NjYXR0 ZXIsCiAgICAgICAgICdudmQzX2hpc3RvZ3JhbScgICAgICAgICAgICAgICAgICAgIDogbnZkM19o aXN0b2dyYW0sCiAgICAgICAgICdudmQzX2hpc3RvZ3JhbV9kaXNjcmV0ZScgICAgICAgICAgIDog bnZkM19oaXN0b2dyYW1fZGlzY3JldGUsCi0gICAgICAgICdmbG90X2JhcicgICAgICAgICAgICAg ICAgICAgICAgICAgIDogZmxvdF9iYXIsCi0gICAgICAgIC8vJ2R5Z3JhcGhfYmFyJyAgICAgICAg ICAgICAgICAgICAgICAgOiBkeWdyYXBoX2JhciwKLSAgICAgICAgLy8nb3RoZXJzX2JveHBsb3Qn ICAgICAgICAgICAgICAgICAgICA6IG90aGVyc19ib3hwbG90CisgICAgICAgICdqcXBsb3RfbGlu ZScgICAgICAgICAgICAgICAgICAgICAgIDoganFwbG90X2xpbmUsCisgICAgICAgICdqcXBsb3Rf c2NhdHRlcicgICAgICAgICAgICAgICAgICAgIDoganFwbG90X3NjYXR0ZXIKICAgICB9CiB9KTsK PTIwCgpkaWZmIC1yIGRiOTJmNmUxOWIzODE4MDk3YmQzZDVhMTQ5YWNmODBjZWQ5MDY3NWMgLXIg YTBkMWE5MWUwNWJlZTMyZGQ1ZjJmYWM9CjkzZDgwZmJlOTM1YmE4YzI4IGNvbmZpZy9wbHVnaW5z L3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9zdGF0aWMvcGx1Z2lucy9qcXBsbz0KdC9qcXVlcnkuanFw bG90LmNzcwotLS0gL2Rldi9udWxsCisrKyBiL2NvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25z L2NoYXJ0cy9zdGF0aWMvcGx1Z2lucy9qcXBsb3QvanF1ZXJ5LmpxcD0KbG90LmNzcwpAQCAtMCww ICsxLDEgQEAKKy5qcXBsb3QtdGFyZ2V0e3Bvc2l0aW9uOnJlbGF0aXZlO2NvbG9yOiM2NjY7Zm9u dC1mYW1pbHk6IlRyZWJ1Y2hldCBNUyIsQXJpPQphbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtmb250 LXNpemU6MWVtfS5qcXBsb3QtYXhpc3tmb250LXNpemU6Ljc1ZW19LmpxcGxvdC09CnhheGlze21h cmdpbi10b3A6MTBweH0uanFwbG90LXgyYXhpc3ttYXJnaW4tYm90dG9tOjEwcHh9LmpxcGxvdC15 YXhpc3ttYXJnaT0Kbi1yaWdodDoxMHB4fS5qcXBsb3QteTJheGlzLC5qcXBsb3QteTNheGlzLC5q cXBsb3QteTRheGlzLC5qcXBsb3QteTVheGlzLC5qPQpxcGxvdC15NmF4aXMsLmpxcGxvdC15N2F4 aXMsLmpxcGxvdC15OGF4aXMsLmpxcGxvdC15OWF4aXMsLmpxcGxvdC15TWlkQXhpc3s9Cm1hcmdp bi1sZWZ0OjEwcHg7bWFyZ2luLXJpZ2h0OjEwcHh9LmpxcGxvdC1heGlzLXRpY2ssLmpxcGxvdC14 YXhpcy10aWNrLC5qcT0KcGxvdC15YXhpcy10aWNrLC5qcXBsb3QteDJheGlzLXRpY2ssLmpxcGxv dC15MmF4aXMtdGljaywuanFwbG90LXkzYXhpcy10aWNrPQosLmpxcGxvdC15NGF4aXMtdGljaywu anFwbG90LXk1YXhpcy10aWNrLC5qcXBsb3QteTZheGlzLXRpY2ssLmpxcGxvdC15N2F4aXM9Ci10 aWNrLC5qcXBsb3QteThheGlzLXRpY2ssLmpxcGxvdC15OWF4aXMtdGljaywuanFwbG90LXlNaWRB eGlzLXRpY2t7cG9zaXRpbz0KbjphYnNvbHV0ZTt3aGl0ZS1zcGFjZTpwcmV9LmpxcGxvdC14YXhp cy10aWNre3RvcDowO2xlZnQ6MTVweDt2ZXJ0aWNhbC1hbGlnPQpuOnRvcH0uanFwbG90LXgyYXhp cy10aWNre2JvdHRvbTowO2xlZnQ6MTVweDt2ZXJ0aWNhbC1hbGlnbjpib3R0b219LmpxcGxvdC09 CnlheGlzLXRpY2t7cmlnaHQ6MDt0b3A6MTVweDt0ZXh0LWFsaWduOnJpZ2h0fS5qcXBsb3QteWF4 aXMtdGljay5qcXBsb3QtYnJlYT0Ka1RpY2t7cmlnaHQ6LTIwcHg7bWFyZ2luLXJpZ2h0OjA7cGFk ZGluZzoxcHggNXB4IDFweCA1cHg7ei1pbmRleDoyO2ZvbnQtc2l6PQplOjEuNWVtfS5qcXBsb3Qt eTJheGlzLXRpY2ssLmpxcGxvdC15M2F4aXMtdGljaywuanFwbG90LXk0YXhpcy10aWNrLC5qcXBs b3Q9Ci15NWF4aXMtdGljaywuanFwbG90LXk2YXhpcy10aWNrLC5qcXBsb3QteTdheGlzLXRpY2ss LmpxcGxvdC15OGF4aXMtdGljaywuaj0KcXBsb3QteTlheGlzLXRpY2t7bGVmdDowO3RvcDoxNXB4 O3RleHQtYWxpZ246bGVmdH0uanFwbG90LXlNaWRBeGlzLXRpY2t7dGV4PQp0LWFsaWduOmNlbnRl cjt3aGl0ZS1zcGFjZTpub3dyYXB9LmpxcGxvdC14YXhpcy1sYWJlbHttYXJnaW4tdG9wOjEwcHg7 Zm9udC09CnNpemU6MTFwdDtwb3NpdGlvbjphYnNvbHV0ZX0uanFwbG90LXgyYXhpcy1sYWJlbHtt YXJnaW4tYm90dG9tOjEwcHg7Zm9udC1zaT0KemU6MTFwdDtwb3NpdGlvbjphYnNvbHV0ZX0uanFw bG90LXlheGlzLWxhYmVse21hcmdpbi1yaWdodDoxMHB4O2ZvbnQtc2l6ZToxPQoxcHQ7cG9zaXRp b246YWJzb2x1dGV9LmpxcGxvdC15TWlkQXhpcy1sYWJlbHtmb250LXNpemU6MTFwdDtwb3NpdGlv bjphYnNvbHU9CnRlfS5qcXBsb3QteTJheGlzLWxhYmVsLC5qcXBsb3QteTNheGlzLWxhYmVsLC5q cXBsb3QteTRheGlzLWxhYmVsLC5qcXBsb3QteT0KNWF4aXMtbGFiZWwsLmpxcGxvdC15NmF4aXMt bGFiZWwsLmpxcGxvdC15N2F4aXMtbGFiZWwsLmpxcGxvdC15OGF4aXMtbGFiZWwsPQouanFwbG90 LXk5YXhpcy1sYWJlbHtmb250LXNpemU6MTFwdDttYXJnaW4tbGVmdDoxMHB4O3Bvc2l0aW9uOmFi c29sdXRlfS5qcXA9CmxvdC1tZXRlckdhdWdlLXRpY2t7Zm9udC1zaXplOi43NWVtO2NvbG9yOiM5 OTl9LmpxcGxvdC1tZXRlckdhdWdlLWxhYmVse2Zvbj0KdC1zaXplOjFlbTtjb2xvcjojOTk5fXRh YmxlLmpxcGxvdC10YWJsZS1sZWdlbmR7bWFyZ2luLXRvcDoxMnB4O21hcmdpbi1ib3R0PQpvbTox MnB4O21hcmdpbi1sZWZ0OjEycHg7bWFyZ2luLXJpZ2h0OjEycHh9dGFibGUuanFwbG90LXRhYmxl LWxlZ2VuZCx0YWJsZS49CmpxcGxvdC1jdXJzb3ItbGVnZW5ke2JhY2tncm91bmQtY29sb3I6cmdi YSgyNTUsMjU1LDI1NSwwLjYpO2JvcmRlcjoxcHggc29saT0KZCAjY2NjO3Bvc2l0aW9uOmFic29s dXRlO2ZvbnQtc2l6ZTouNzVlbX10ZC5qcXBsb3QtdGFibGUtbGVnZW5ke3ZlcnRpY2FsLWFsPQpp Z246bWlkZGxlfXRkLmpxcGxvdC1zZXJpZXNUb2dnbGU6aG92ZXIsdGQuanFwbG90LXNlcmllc1Rv Z2dsZTphY3RpdmV7Y3Vyc289CnI6cG9pbnRlcn0uanFwbG90LXRhYmxlLWxlZ2VuZCAuanFwbG90 LXNlcmllcy1oaWRkZW57dGV4dC1kZWNvcmF0aW9uOmxpbmUtdD0KaHJvdWdofWRpdi5qcXBsb3Qt dGFibGUtbGVnZW5kLXN3YXRjaC1vdXRsaW5le2JvcmRlcjoxcHggc29saWQgI2NjYztwYWRkaW5n PQo6MXB4fWRpdi5qcXBsb3QtdGFibGUtbGVnZW5kLXN3YXRjaHt3aWR0aDowO2hlaWdodDowO2Jv cmRlci10b3Atd2lkdGg6NXB4O2I9Cm9yZGVyLWJvdHRvbS13aWR0aDo1cHg7Ym9yZGVyLWxlZnQt d2lkdGg6NnB4O2JvcmRlci1yaWdodC13aWR0aDo2cHg7Ym9yZGVyLT0KdG9wLXN0eWxlOnNvbGlk O2JvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7Ym9yZGVyLWxlZnQtc3R5bGU6c29saWQ7Ym9yZGVy LXJpPQpnaHQtc3R5bGU6c29saWR9LmpxcGxvdC10aXRsZXt0b3A6MDtsZWZ0OjA7cGFkZGluZy1i b3R0b206LjVlbTtmb250LXNpemU6MS49CjJlbX10YWJsZS5qcXBsb3QtY3Vyc29yLXRvb2x0aXB7 Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2ZvbnQtc2l6ZTouNzVlbX0uanFwbD0Kb3QtY3Vyc29yLXRv b2x0aXB7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2ZvbnQtc2l6ZTouNzVlbTt3aGl0ZS1zcGFjZTpu b3dyYXA7PQpiYWNrZ3JvdW5kOnJnYmEoMjA4LDIwOCwyMDgsMC41KTtwYWRkaW5nOjFweH0uanFw bG90LWhpZ2hsaWdodGVyLXRvb2x0aXAsLmo9CnFwbG90LWNhbnZhc092ZXJsYXktdG9vbHRpcHti b3JkZXI6MXB4IHNvbGlkICNjY2M7Zm9udC1zaXplOi43NWVtO3doaXRlLXNwYT0KY2U6bm93cmFw O2JhY2tncm91bmQ6cmdiYSgyMDgsMjA4LDIwOCwwLjUpO3BhZGRpbmc6MXB4fS5qcXBsb3QtcG9p bnQtbGFiZWx7PQpmb250LXNpemU6Ljc1ZW07ei1pbmRleDoyfXRkLmpxcGxvdC1jdXJzb3ItbGVn ZW5kLXN3YXRjaHt2ZXJ0aWNhbC1hbGlnbjptaWQ9CmRsZTt0ZXh0LWFsaWduOmNlbnRlcn1kaXYu anFwbG90LWN1cnNvci1sZWdlbmQtc3dhdGNoe3dpZHRoOjEuMmVtO2hlaWdodDouNz0KZW19Lmpx cGxvdC1lcnJvcnt0ZXh0LWFsaWduOmNlbnRlcn0uanFwbG90LWVycm9yLW1lc3NhZ2V7cG9zaXRp b246cmVsYXRpdmU7PQp0b3A6NDYlO2Rpc3BsYXk6aW5saW5lLWJsb2NrfWRpdi5qcXBsb3QtYnVi YmxlLWxhYmVse2ZvbnQtc2l6ZTouOGVtO3BhZGRpbmc9Ci1sZWZ0OjJweDtwYWRkaW5nLXJpZ2h0 OjJweDtjb2xvcjpyZ2IoMjAlLDIwJSwyMCUpfWRpdi5qcXBsb3QtYnViYmxlLWxhYmVsLj0KanFw bG90LWJ1YmJsZS1sYWJlbC1oaWdobGlnaHR7YmFja2dyb3VuZDpyZ2JhKDkwJSw5MCUsOTAlLDAu Nyl9ZGl2LmpxcGxvdC1uPQpvRGF0YS1jb250YWluZXJ7dGV4dC1hbGlnbjpjZW50ZXI7YmFja2dy b3VuZC1jb2xvcjpyZ2JhKDk2JSw5NiUsOTYlLDAuMyl9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg ZmlsZQoKZGlmZiAtciBkYjkyZjZlMTliMzgxODA5N2JkM2Q1YTE0OWFjZjgwY2VkOTA2NzVjIC1y IGEwZDFhOTFlMDViZWUzMmRkNWYyZmFjPQo5M2Q4MGZiZTkzNWJhOGMyOCBjb25maWcvcGx1Z2lu cy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL3BsdWdpbnMvanFwbG89CnQvanF1ZXJ5Lmpx cGxvdC5qcwotLS0gL2Rldi9udWxsCisrKyBiL2NvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25z L2NoYXJ0cy9zdGF0aWMvcGx1Z2lucy9qcXBsb3QvanF1ZXJ5LmpxcD0KbG90LmpzCkBAIC0wLDAg KzEsMyBAQAorLyoganFQbG90IDEuMC44cjEyNTAgfCAoYykgMjAwOS0yMDEzIENocmlzIExlb25l bGxvIHwganBsb3QuY29tCisgICBqc0RhdGUgfCAoYykgMjAxMC0yMDEzIENocmlzIExlb25lbGxv CisgKi8oZnVuY3Rpb24oTCl7dmFyIHU7TC5mbi5lbXB0eUZvcmNlPTNEZnVuY3Rpb24oKXtmb3Io dmFyIGFoPTNEMCxhaTsoYWk9Cj0zREwodGhpcylbYWhdKSE9M0RudWxsO2FoKyspe2lmKGFpLm5v ZGVUeXBlPTNEPTNEPTNEMSl7TC5jbGVhbkRhdGEoYWkuZ2V0RT0KbGVtZW50c0J5VGFnTmFtZSgi KiIpKX1pZihMLmpxcGxvdC51c2VfZXhjYW52YXMpe2FpLm91dGVySFRNTD0zRCIifWVsc2V7d2hp PQpsZShhaS5maXJzdENoaWxkKXthaS5yZW1vdmVDaGlsZChhaS5maXJzdENoaWxkKX19YWk9M0Ru dWxsfXJldHVybiBMKHRoaXMpfTs9CkwuZm4ucmVtb3ZlQ2hpbGRGb3JjZT0zRGZ1bmN0aW9uKGFo KXt3aGlsZShhaC5maXJzdENoaWxkKXt0aGlzLnJlbW92ZUNoaWxkRj0Kb3JjZShhaC5maXJzdENo aWxkKTthaC5yZW1vdmVDaGlsZChhaC5maXJzdENoaWxkKX19O0wuZm4uanFwbG90PTNEZnVuY3Rp b24oPQope3ZhciBhaD0zRFtdO3ZhciBhaj0zRFtdO2Zvcih2YXIgYWs9M0QwLGFpPTNEYXJndW1l bnRzLmxlbmd0aDthazxhaTthaysrKXs9CmlmKEwuaXNBcnJheShhcmd1bWVudHNbYWtdKSl7YWgu cHVzaChhcmd1bWVudHNbYWtdKX1lbHNle2lmKEwuaXNQbGFpbk9iamVjdD0KKGFyZ3VtZW50c1th a10pKXthai5wdXNoKGFyZ3VtZW50c1tha10pfX19cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihh bil7dmFyPQogYXQsYXIsYXE9M0RMKHRoaXMpLGFtPTNEYWgubGVuZ3RoLGFsPTNEYWoubGVuZ3Ro LGFwLGFvO2lmKGFuPGFtKXthcD0zRGFoW2E9Cm5dfWVsc2V7YXA9M0RhbT9haFthbS0xXTpudWxs fWlmKGFuPGFsKXthbz0zRGFqW2FuXX1lbHNle2FvPTNEYWw/YWpbYWwtMV06bj0KdWxsfWF0PTNE YXEuYXR0cigiaWQiKTtpZihhdD0zRD0zRD0zRHUpe2F0PTNEImpxcGxvdF90YXJnZXRfIitMLmpx cGxvdC50YXJnPQpldENvdW50ZXIrKzthcS5hdHRyKCJpZCIsYXQpfWFyPTNETC5qcXBsb3QoYXQs YXAsYW8pO2FxLmRhdGEoImpxcGxvdCIsYXIpfSk9Cn07TC5qcXBsb3Q9M0RmdW5jdGlvbihhbixh ayxhaSl7dmFyIGFqPTNEbnVsbCxhaD0zRG51bGw7aWYoYXJndW1lbnRzLmxlbmd0aD0KPTNEPTNE PTNEMyl7YWo9M0RhazthaD0zRGFpfWVsc2V7aWYoYXJndW1lbnRzLmxlbmd0aD0zRD0zRD0zRDIp e2lmKEwuaXNBcnJhPQp5KGFrKSl7YWo9M0Rha31lbHNle2lmKEwuaXNQbGFpbk9iamVjdChhaykp e2FoPTNEYWt9fX19aWYoYWo9M0Q9M0Q9M0RudWxsJiY9CmFoIT0zRD0zRG51bGwmJmFoLmRhdGEp e2FqPTNEYWguZGF0YX12YXIgYW09M0RuZXcgUigpO0woIiMiK2FuKS5yZW1vdmVDbGFzcz0KKCJq cXBsb3QtZXJyb3IiKTtpZihMLmpxcGxvdC5jb25maWcuY2F0Y2hFcnJvcnMpe3RyeXthbS5pbml0 KGFuLGFqLGFoKTthbS5kPQpyYXcoKTthbS50aGVtZUVuZ2luZS5pbml0LmNhbGwoYW0pO3JldHVy biBhbX1jYXRjaChhbCl7dmFyIGFvPTNETC5qcXBsb3QuY289Cm5maWcuZXJyb3JNZXNzYWdlfHxh bC5tZXNzYWdlO0woIiMiK2FuKS5hcHBlbmQoJzxkaXYgY2xhc3M9M0QianFwbG90LWVycm9yLT0K bWVzc2FnZSI+JythbysiPC9kaXY+Iik7TCgiIyIrYW4pLmFkZENsYXNzKCJqcXBsb3QtZXJyb3Ii KTtkb2N1bWVudC5nZXRFbGVtPQplbnRCeUlkKGFuKS5zdHlsZS5iYWNrZ3JvdW5kPTNETC5qcXBs b3QuY29uZmlnLmVycm9yQmFja2dyb3VuZDtkb2N1bWVudC5nZXQ9CkVsZW1lbnRCeUlkKGFuKS5z dHlsZS5ib3JkZXI9M0RMLmpxcGxvdC5jb25maWcuZXJyb3JCb3JkZXI7ZG9jdW1lbnQuZ2V0RWxl bT0KZW50QnlJZChhbikuc3R5bGUuZm9udEZhbWlseT0zREwuanFwbG90LmNvbmZpZy5lcnJvckZv bnRGYW1pbHk7ZG9jdW1lbnQuZ2V0PQpFbGVtZW50QnlJZChhbikuc3R5bGUuZm9udFNpemU9M0RM LmpxcGxvdC5jb25maWcuZXJyb3JGb250U2l6ZTtkb2N1bWVudC5nZXQ9CkVsZW1lbnRCeUlkKGFu KS5zdHlsZS5mb250U3R5bGU9M0RMLmpxcGxvdC5jb25maWcuZXJyb3JGb250U3R5bGU7ZG9jdW1l bnQuZz0KZXRFbGVtZW50QnlJZChhbikuc3R5bGUuZm9udFdlaWdodD0zREwuanFwbG90LmNvbmZp Zy5lcnJvckZvbnRXZWlnaHR9fWVsc2V7PQphbS5pbml0KGFuLGFqLGFoKTthbS5kcmF3KCk7YW0u dGhlbWVFbmdpbmUuaW5pdC5jYWxsKGFtKTtyZXR1cm4gYW19fTtMLmpxcGw9Cm90LnZlcnNpb249 M0QiMS4wLjgiO0wuanFwbG90LnJldmlzaW9uPTNEIjEyNTAiO0wuanFwbG90LnRhcmdldENvdW50 ZXI9M0QxOz0KTC5qcXBsb3QuQ2FudmFzTWFuYWdlcj0zRGZ1bmN0aW9uKCl7aWYodHlwZW9mIEwu anFwbG90LkNhbnZhc01hbmFnZXIuY2FudmFzPQplcz0zRD0zRCJ1bmRlZmluZWQiKXtMLmpxcGxv dC5DYW52YXNNYW5hZ2VyLmNhbnZhc2VzPTNEW107TC5qcXBsb3QuQ2FudmFzTWE9Cm5hZ2VyLmZy ZWU9M0RbXX12YXIgYWg9M0RbXTt0aGlzLmdldENhbnZhcz0zRGZ1bmN0aW9uKCl7dmFyIGFrO3Zh ciBhaj0zRHRydT0KZTtpZighTC5qcXBsb3QudXNlX2V4Y2FudmFzKXtmb3IodmFyIGFsPTNEMCxh aT0zREwuanFwbG90LkNhbnZhc01hbmFnZXIuY2FuPQp2YXNlcy5sZW5ndGg7YWw8YWk7YWwrKyl7 aWYoTC5qcXBsb3QuQ2FudmFzTWFuYWdlci5mcmVlW2FsXT0zRD0zRD0zRHRydWUpe2E9Cmo9M0Rm YWxzZTthaz0zREwuanFwbG90LkNhbnZhc01hbmFnZXIuY2FudmFzZXNbYWxdO0wuanFwbG90LkNh bnZhc01hbmFnZXIuZj0KcmVlW2FsXT0zRGZhbHNlO2FoLnB1c2goYWwpO2JyZWFrfX19aWYoYWop e2FrPTNEZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FuPQp2YXMiKTthaC5wdXNoKEwuanFwbG90 LkNhbnZhc01hbmFnZXIuY2FudmFzZXMubGVuZ3RoKTtMLmpxcGxvdC5DYW52YXNNYW5hZ2U9CnIu Y2FudmFzZXMucHVzaChhayk7TC5qcXBsb3QuQ2FudmFzTWFuYWdlci5mcmVlLnB1c2goZmFsc2Up fXJldHVybiBha307dGhpcz0KLmluaXRDYW52YXM9M0RmdW5jdGlvbihhaSl7aWYoTC5qcXBsb3Qu dXNlX2V4Y2FudmFzKXtyZXR1cm4gd2luZG93Lkdfdm1sQ2FuPQp2YXNNYW5hZ2VyLmluaXRFbGVt ZW50KGFpKX1yZXR1cm4gYWl9O3RoaXMuZnJlZUFsbENhbnZhc2VzPTNEZnVuY3Rpb24oKXtmb3I9 Cih2YXIgYWo9M0QwLGFpPTNEYWgubGVuZ3RoO2FqPGFpO2FqKyspe3RoaXMuZnJlZUNhbnZhcyhh aFthal0pfWFoPTNEW119O3RoaT0Kcy5mcmVlQ2FudmFzPTNEZnVuY3Rpb24oYWkpe2lmKEwuanFw bG90LnVzZV9leGNhbnZhcyYmd2luZG93Lkdfdm1sQ2FudmFzTWFuPQphZ2VyLnVuaW5pdEVsZW1l bnQhPTNEPTNEdSl7d2luZG93Lkdfdm1sQ2FudmFzTWFuYWdlci51bmluaXRFbGVtZW50KEwuanFw bG89CnQuQ2FudmFzTWFuYWdlci5jYW52YXNlc1thaV0pO0wuanFwbG90LkNhbnZhc01hbmFnZXIu Y2FudmFzZXNbYWldPTNEbnVsbH1lbD0Kc2V7dmFyIGFqPTNETC5qcXBsb3QuQ2FudmFzTWFuYWdl ci5jYW52YXNlc1thaV07YWouZ2V0Q29udGV4dCgiMmQiKS5jbGVhclJlPQpjdCgwLDAsYWoud2lk dGgsYWouaGVpZ2h0KTtMKGFqKS51bmJpbmQoKS5yZW1vdmVBdHRyKCJjbGFzcyIpLnJlbW92ZUF0 dHIoInM9CnR5bGUiKTtMKGFqKS5jc3Moe2xlZnQ6IiIsdG9wOiIiLHBvc2l0aW9uOiIifSk7YWou d2lkdGg9M0QwO2FqLmhlaWdodD0zRDA7TD0KLmpxcGxvdC5DYW52YXNNYW5hZ2VyLmZyZWVbYWld PTNEdHJ1ZX19fTtMLmpxcGxvdC5sb2c9M0RmdW5jdGlvbigpe2lmKHdpbmRvPQp3LmNvbnNvbGUp e3dpbmRvdy5jb25zb2xlLmxvZy5hcHBseSh3aW5kb3cuY29uc29sZSxhcmd1bWVudHMpfX07TC5q cXBsb3QuY289Cm5maWc9M0R7YWRkRG9tUmVmZXJlbmNlOmZhbHNlLGVuYWJsZVBsdWdpbnM6ZmFs c2UsZGVmYXVsdEhlaWdodDozMDAsZGVmYXVsdD0KV2lkdGg6NDAwLFVUQ0FkanVzdDpmYWxzZSx0 aW1lem9uZU9mZnNldDpuZXcgRGF0ZShuZXcgRGF0ZSgpLmdldFRpbWV6b25lT2ZmPQpzZXQoKSo2 MDAwMCksZXJyb3JNZXNzYWdlOiIiLGVycm9yQmFja2dyb3VuZDoiIixlcnJvckJvcmRlcjoiIixl cnJvckZvbnRGYW09CmlseToiIixlcnJvckZvbnRTaXplOiIiLGVycm9yRm9udFN0eWxlOiIiLGVy cm9yRm9udFdlaWdodDoiIixjYXRjaEVycm9yczpmYT0KbHNlLGRlZmF1bHRUaWNrRm9ybWF0U3Ry aW5nOiIlLjFmIixkZWZhdWx0Q29sb3JzOlsiIzRiYjJjNSIsIiNFQUEyMjgiLCIjYzViPQo0N2Yi LCIjNTc5NTc1IiwiIzgzOTU1NyIsIiM5NThjMTIiLCIjOTUzNTc5IiwiIzRiNWRlNCIsIiNkOGI4 M2YiLCIjZmY1ODAwIiw9CiIjMDA4NWNjIiwiI2M3NDdhMyIsIiNjZGRmNTQiLCIjRkJEMTc4Iiwi IzI2QjRFMyIsIiNiZDcwYzciXSxkZWZhdWx0TmVnYXRpdj0KZUNvbG9yczpbIiM0OTg5OTEiLCIj QzA4ODQwIiwiIzlGOTI3NCIsIiM1NDZENjEiLCIjNjQ2QzRBIiwiIzZGNjYyMSIsIiM2RTNGPQo1 RiIsIiM0RjY0QjAiLCIjQTg5MDUwIiwiI0M0NTkyMyIsIiMxODczOTkiLCIjOTQ1MzgxIiwiIzk1 OUU1QyIsIiNDN0FGN0IiLCI9CiM0NzgzOTYiLCIjOTA3Mjk0Il0sZGFzaExlbmd0aDo0LGdhcExl bmd0aDo0LGRvdEdhcExlbmd0aDoyLjUsc3JjTG9jYXRpb246Ij0KanFwbG90L3NyYy8iLHBsdWdp bkxvY2F0aW9uOiJqcXBsb3Qvc3JjL3BsdWdpbnMvIn07TC5qcXBsb3QuYXJyYXlNYXg9M0RmdW5j PQp0aW9uKGFoKXtyZXR1cm4gTWF0aC5tYXguYXBwbHkoTWF0aCxhaCl9O0wuanFwbG90LmFycmF5 TWluPTNEZnVuY3Rpb24oYWgpe3I9CmV0dXJuIE1hdGgubWluLmFwcGx5KE1hdGgsYWgpfTtMLmpx cGxvdC5lbmFibGVQbHVnaW5zPTNETC5qcXBsb3QuY29uZmlnLmVuYT0KYmxlUGx1Z2lucztMLmpx cGxvdC5zdXBwb3J0X2NhbnZhcz0zRGZ1bmN0aW9uKCl7aWYodHlwZW9mIEwuanFwbG90LnN1cHBv cnRfPQpjYW52YXMucmVzdWx0PTNEPTNEInVuZGVmaW5lZCIpe0wuanFwbG90LnN1cHBvcnRfY2Fu dmFzLnJlc3VsdD0zRCEhZG9jdW1lbnQ9Ci5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS5nZXRDb250 ZXh0fXJldHVybiBMLmpxcGxvdC5zdXBwb3J0X2NhbnZhcy5yZXN1bHR9Oz0KTC5qcXBsb3Quc3Vw cG9ydF9jYW52YXNfdGV4dD0zRGZ1bmN0aW9uKCl7aWYodHlwZW9mIEwuanFwbG90LnN1cHBvcnRf Y2FudmFzPQpfdGV4dC5yZXN1bHQ9M0Q9M0QidW5kZWZpbmVkIil7aWYod2luZG93Lkdfdm1sQ2Fu dmFzTWFuYWdlciE9M0Q9M0R1JiZ3aW5kb3c9Ci5HX3ZtbENhbnZhc01hbmFnZXIuX3ZlcnNpb24+ ODg3KXtMLmpxcGxvdC5zdXBwb3J0X2NhbnZhc190ZXh0LnJlc3VsdD0zRHRydT0KZX1lbHNle0wu anFwbG90LnN1cHBvcnRfY2FudmFzX3RleHQucmVzdWx0PTNEISEoZG9jdW1lbnQuY3JlYXRlRWxl bWVudCgiY2FuPQp2YXMiKS5nZXRDb250ZXh0JiZ0eXBlb2YgZG9jdW1lbnQuY3JlYXRlRWxlbWVu dCgiY2FudmFzIikuZ2V0Q29udGV4dCgiMmQiKS49CmZpbGxUZXh0PTNEPTNEImZ1bmN0aW9uIil9 fXJldHVybiBMLmpxcGxvdC5zdXBwb3J0X2NhbnZhc190ZXh0LnJlc3VsdH07TC5qcT0KcGxvdC51 c2VfZXhjYW52YXM9M0QoKCFMLnN1cHBvcnQuYm94TW9kZWx8fCFMLnN1cHBvcnQub2JqZWN0QWxs fHwhJHN1cHBvcnQuPQpsZWFkaW5nV2hpdGVzcGFjZSkmJiFMLmpxcGxvdC5zdXBwb3J0X2NhbnZh cygpKT90cnVlOmZhbHNlO0wuanFwbG90LnByZUluaXQ9Ckhvb2tzPTNEW107TC5qcXBsb3QucG9z dEluaXRIb29rcz0zRFtdO0wuanFwbG90LnByZVBhcnNlT3B0aW9uc0hvb2tzPTNEW107TD0KLmpx cGxvdC5wb3N0UGFyc2VPcHRpb25zSG9va3M9M0RbXTtMLmpxcGxvdC5wcmVEcmF3SG9va3M9M0Rb XTtMLmpxcGxvdC5wb3N0PQpEcmF3SG9va3M9M0RbXTtMLmpxcGxvdC5wcmVEcmF3U2VyaWVzSG9v a3M9M0RbXTtMLmpxcGxvdC5wb3N0RHJhd1Nlcmllc0hvb2s9CnM9M0RbXTtMLmpxcGxvdC5wcmVE cmF3TGVnZW5kSG9va3M9M0RbXTtMLmpxcGxvdC5hZGRMZWdlbmRSb3dIb29rcz0zRFtdO0wuaj0K cXBsb3QucHJlU2VyaWVzSW5pdEhvb2tzPTNEW107TC5qcXBsb3QucG9zdFNlcmllc0luaXRIb29r cz0zRFtdO0wuanFwbG90LnByPQplUGFyc2VTZXJpZXNPcHRpb25zSG9va3M9M0RbXTtMLmpxcGxv dC5wb3N0UGFyc2VTZXJpZXNPcHRpb25zSG9va3M9M0RbXTtMLmo9CnFwbG90LmV2ZW50TGlzdGVu ZXJIb29rcz0zRFtdO0wuanFwbG90LnByZURyYXdTZXJpZXNTaGFkb3dIb29rcz0zRFtdO0wuanFw bD0Kb3QucG9zdERyYXdTZXJpZXNTaGFkb3dIb29rcz0zRFtdO0wuanFwbG90LkVsZW1Db250YWlu ZXI9M0RmdW5jdGlvbigpe3RoaXMuPQpfZWxlbTt0aGlzLl9wbG90V2lkdGg7dGhpcy5fcGxvdEhl aWdodDt0aGlzLl9wbG90RGltZW5zaW9ucz0zRHtoZWlnaHQ6bnVsbCw9CndpZHRoOm51bGx9fTtM LmpxcGxvdC5FbGVtQ29udGFpbmVyLnByb3RvdHlwZS5jcmVhdGVFbGVtZW50PTNEZnVuY3Rpb24o YWssYT0KbSxhaSxhaixhbil7dGhpcy5fb2Zmc2V0cz0zRGFtO3ZhciBhaD0zRGFpfHwianFwbG90 Ijt2YXIgYWw9M0Rkb2N1bWVudC5jcmVhPQp0ZUVsZW1lbnQoYWspO3RoaXMuX2VsZW09M0RMKGFs KTt0aGlzLl9lbGVtLmFkZENsYXNzKGFoKTt0aGlzLl9lbGVtLmNzcyhhaik9Cjt0aGlzLl9lbGVt LmF0dHIoYW4pO2FsPTNEbnVsbDtyZXR1cm4gdGhpcy5fZWxlbX07TC5qcXBsb3QuRWxlbUNvbnRh aW5lci5wcj0Kb3RvdHlwZS5nZXRXaWR0aD0zRGZ1bmN0aW9uKCl7aWYodGhpcy5fZWxlbSl7cmV0 dXJuIHRoaXMuX2VsZW0ub3V0ZXJXaWR0aCh0PQpydWUpfWVsc2V7cmV0dXJuIG51bGx9fTtMLmpx cGxvdC5FbGVtQ29udGFpbmVyLnByb3RvdHlwZS5nZXRIZWlnaHQ9M0RmdW5jdGk9Cm9uKCl7aWYo dGhpcy5fZWxlbSl7cmV0dXJuIHRoaXMuX2VsZW0ub3V0ZXJIZWlnaHQodHJ1ZSl9ZWxzZXtyZXR1 cm4gbnVsbH19Oz0KTC5qcXBsb3QuRWxlbUNvbnRhaW5lci5wcm90b3R5cGUuZ2V0UG9zaXRpb249 M0RmdW5jdGlvbigpe2lmKHRoaXMuX2VsZW0pe3JlPQp0dXJuIHRoaXMuX2VsZW0ucG9zaXRpb24o KX1lbHNle3JldHVybnt0b3A6bnVsbCxsZWZ0Om51bGwsYm90dG9tOm51bGwscmlnaHQ9CjpudWxs fX19O0wuanFwbG90LkVsZW1Db250YWluZXIucHJvdG90eXBlLmdldFRvcD0zRGZ1bmN0aW9uKCl7 cmV0dXJuIHRoaXMuZz0KZXRQb3NpdGlvbigpLnRvcH07TC5qcXBsb3QuRWxlbUNvbnRhaW5lci5w cm90b3R5cGUuZ2V0TGVmdD0zRGZ1bmN0aW9uKCl7cmV0PQp1cm4gdGhpcy5nZXRQb3NpdGlvbigp LmxlZnR9O0wuanFwbG90LkVsZW1Db250YWluZXIucHJvdG90eXBlLmdldEJvdHRvbT0zRGY9CnVu Y3Rpb24oKXtyZXR1cm4gdGhpcy5fZWxlbS5jc3MoImJvdHRvbSIpfTtMLmpxcGxvdC5FbGVtQ29u dGFpbmVyLnByb3RvdHlwZT0KLmdldFJpZ2h0PTNEZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZWxl bS5jc3MoInJpZ2h0Iil9O2Z1bmN0aW9uIHcoYWgpe0wuanFwPQpsb3QuRWxlbUNvbnRhaW5lci5j YWxsKHRoaXMpO3RoaXMubmFtZT0zRGFoO3RoaXMuX3Nlcmllcz0zRFtdO3RoaXMuc2hvdz0zRGY9 CmFsc2U7dGhpcy50aWNrUmVuZGVyZXI9M0RMLmpxcGxvdC5BeGlzVGlja1JlbmRlcmVyO3RoaXMu dGlja09wdGlvbnM9M0R7fTt0aD0KaXMubGFiZWxSZW5kZXJlcj0zREwuanFwbG90LkF4aXNMYWJl bFJlbmRlcmVyO3RoaXMubGFiZWxPcHRpb25zPTNEe307dGhpcy5sPQphYmVsPTNEbnVsbDt0aGlz LnNob3dMYWJlbD0zRHRydWU7dGhpcy5taW49M0RudWxsO3RoaXMubWF4PTNEbnVsbDt0aGlzLmF1 dG89CnNjYWxlPTNEZmFsc2U7dGhpcy5wYWQ9M0QxLjI7dGhpcy5wYWRNYXg9M0RudWxsO3RoaXMu cGFkTWluPTNEbnVsbDt0aGlzLnRpYz0Ka3M9M0RbXTt0aGlzLm51bWJlclRpY2tzO3RoaXMudGlj a0ludGVydmFsO3RoaXMucmVuZGVyZXI9M0RMLmpxcGxvdC5MaW5lYXJBPQp4aXNSZW5kZXJlcjt0 aGlzLnJlbmRlcmVyT3B0aW9ucz0zRHt9O3RoaXMuc2hvd1RpY2tzPTNEdHJ1ZTt0aGlzLnNob3dU aWNrTWE9CnJrcz0zRHRydWU7dGhpcy5zaG93TWlub3JUaWNrcz0zRHRydWU7dGhpcy5kcmF3TWFq b3JHcmlkbGluZXM9M0R0cnVlO3RoaXMuZD0KcmF3TWlub3JHcmlkbGluZXM9M0RmYWxzZTt0aGlz LmRyYXdNYWpvclRpY2tNYXJrcz0zRHRydWU7dGhpcy5kcmF3TWlub3JUaWNrPQpNYXJrcz0zRHRy dWU7dGhpcy51c2VTZXJpZXNDb2xvcj0zRGZhbHNlO3RoaXMuYm9yZGVyV2lkdGg9M0RudWxsO3Ro aXMuYm9yZGU9CnJDb2xvcj0zRG51bGw7dGhpcy5zY2FsZVRvSGlkZGVuU2VyaWVzPTNEZmFsc2U7 dGhpcy5fZGF0YUJvdW5kcz0zRHttaW46bnVsbD0KLG1heDpudWxsfTt0aGlzLl9pbnRlcnZhbFN0 YXRzPTNEW107dGhpcy5fb2Zmc2V0cz0zRHttaW46bnVsbCxtYXg6bnVsbH07dGhpPQpzLl90aWNr cz0zRFtdO3RoaXMuX2xhYmVsPTNEbnVsbDt0aGlzLnN5bmNUaWNrcz0zRG51bGw7dGhpcy50aWNr U3BhY2luZz0zRDc9CjU7dGhpcy5fbWluPTNEbnVsbDt0aGlzLl9tYXg9M0RudWxsO3RoaXMuX3Rp Y2tJbnRlcnZhbD0zRG51bGw7dGhpcy5fbnVtYmVyVD0KaWNrcz0zRG51bGw7dGhpcy5fX3RpY2tz PTNEbnVsbDt0aGlzLl9vcHRpb25zPTNEe319dy5wcm90b3R5cGU9M0RuZXcgTC5qcXBsPQpvdC5F bGVtQ29udGFpbmVyKCk7dy5wcm90b3R5cGUuY29uc3RydWN0b3I9M0R3O3cucHJvdG90eXBlLmlu aXQ9M0RmdW5jdGlvbig9Cil7aWYoTC5pc0Z1bmN0aW9uKHRoaXMucmVuZGVyZXIpKXt0aGlzLnJl bmRlcmVyPTNEbmV3IHRoaXMucmVuZGVyZXIoKX10aGlzLj0KdGlja09wdGlvbnMuYXhpcz0zRHRo aXMubmFtZTtpZih0aGlzLnRpY2tPcHRpb25zLnNob3dNYXJrPTNEPTNEbnVsbCl7dGhpcy50PQpp Y2tPcHRpb25zLnNob3dNYXJrPTNEdGhpcy5zaG93VGlja3N9aWYodGhpcy50aWNrT3B0aW9ucy5z aG93TWFyaz0zRD0zRG51bGw9Cil7dGhpcy50aWNrT3B0aW9ucy5zaG93TWFyaz0zRHRoaXMuc2hv d1RpY2tNYXJrc31pZih0aGlzLnRpY2tPcHRpb25zLnNob3dMYT0KYmVsPTNEPTNEbnVsbCl7dGhp cy50aWNrT3B0aW9ucy5zaG93TGFiZWw9M0R0aGlzLnNob3dUaWNrc31pZih0aGlzLmxhYmVsPTNE PQo9M0RudWxsfHx0aGlzLmxhYmVsPTNEPTNEIiIpe3RoaXMuc2hvd0xhYmVsPTNEZmFsc2V9ZWxz ZXt0aGlzLmxhYmVsT3B0aW9ucy49CmxhYmVsPTNEdGhpcy5sYWJlbH1pZih0aGlzLnNob3dMYWJl bD0zRD0zRGZhbHNlKXt0aGlzLmxhYmVsT3B0aW9ucy5zaG93PTNEZj0KYWxzZX1pZih0aGlzLnBh ZD0zRD0zRDApe3RoaXMucGFkPTNEMX1pZih0aGlzLnBhZE1heD0zRD0zRDApe3RoaXMucGFkTWF4 PTNEPQoxfWlmKHRoaXMucGFkTWluPTNEPTNEMCl7dGhpcy5wYWRNaW49M0QxfWlmKHRoaXMucGFk TWF4PTNEPTNEbnVsbCl7dGhpcy5wYWQ9Ck1heD0zRCh0aGlzLnBhZC0xKS8yKzF9aWYodGhpcy5w YWRNaW49M0Q9M0RudWxsKXt0aGlzLnBhZE1pbj0zRCh0aGlzLnBhZC0xKT0KLzIrMX10aGlzLnBh ZD0zRHRoaXMucGFkTWF4K3RoaXMucGFkTWluLTE7aWYodGhpcy5taW4hPTNEbnVsbHx8dGhpcy5t YXghPTNEPQpudWxsKXt0aGlzLmF1dG9zY2FsZT0zRGZhbHNlfWlmKHRoaXMuc3luY1RpY2tzPTNE PTNEbnVsbCYmdGhpcy5uYW1lLmluZGV4T2Y9CigieSIpPi0xKXt0aGlzLnN5bmNUaWNrcz0zRHRy dWV9ZWxzZXtpZih0aGlzLnN5bmNUaWNrcz0zRD0zRG51bGwpe3RoaXMuc3luYz0KVGlja3M9M0Rm YWxzZX19dGhpcy5yZW5kZXJlci5pbml0LmNhbGwodGhpcyx0aGlzLnJlbmRlcmVyT3B0aW9ucyl9 O3cucHJvdG90PQp5cGUuZHJhdz0zRGZ1bmN0aW9uKGFoLGFpKXtpZih0aGlzLl9fdGlja3Mpe3Ro aXMuX190aWNrcz0zRG51bGx9cmV0dXJuIHRoaXM9Ci5yZW5kZXJlci5kcmF3LmNhbGwodGhpcyxh aCxhaSl9O3cucHJvdG90eXBlLnNldD0zRGZ1bmN0aW9uKCl7dGhpcy5yZW5kZXJlcj0KLnNldC5j YWxsKHRoaXMpfTt3LnByb3RvdHlwZS5wYWNrPTNEZnVuY3Rpb24oYWksYWgpe2lmKHRoaXMuc2hv dyl7dGhpcy5yZW5kPQplcmVyLnBhY2suY2FsbCh0aGlzLGFpLGFoKX1pZih0aGlzLl9taW49M0Q9 M0RudWxsKXt0aGlzLl9taW49M0R0aGlzLm1pbjt0aGk9CnMuX21heD0zRHRoaXMubWF4O3RoaXMu X3RpY2tJbnRlcnZhbD0zRHRoaXMudGlja0ludGVydmFsO3RoaXMuX251bWJlclRpY2tzPQo9M0R0 aGlzLm51bWJlclRpY2tzO3RoaXMuX190aWNrcz0zRHRoaXMuX3RpY2tzfX07dy5wcm90b3R5cGUu cmVzZXQ9M0RmdW5jdGk9Cm9uKCl7dGhpcy5yZW5kZXJlci5yZXNldC5jYWxsKHRoaXMpfTt3LnBy b3RvdHlwZS5yZXNldFNjYWxlPTNEZnVuY3Rpb24oYWgpez0KTC5leHRlbmQodHJ1ZSx0aGlzLHtt aW46bnVsbCxtYXg6bnVsbCxudW1iZXJUaWNrczpudWxsLHRpY2tJbnRlcnZhbDpudWxsLF90PQpp Y2tzOltdLHRpY2tzOltdfSxhaCk7dGhpcy5yZXNldERhdGFCb3VuZHMoKX07dy5wcm90b3R5cGUu cmVzZXREYXRhQm91bmRzPQo9M0RmdW5jdGlvbigpe3ZhciBhbz0zRHRoaXMuX2RhdGFCb3VuZHM7 YW8ubWluPTNEbnVsbDthby5tYXg9M0RudWxsO3ZhciBhaSw9CmFwLGFtO3ZhciBhaj0zRCh0aGlz LnNob3cpP3RydWU6ZmFsc2U7Zm9yKHZhciBhbD0zRDA7YWw8dGhpcy5fc2VyaWVzLmxlbmd0aD0K O2FsKyspe2FwPTNEdGhpcy5fc2VyaWVzW2FsXTtpZihhcC5zaG93fHx0aGlzLnNjYWxlVG9IaWRk ZW5TZXJpZXMpe2FtPTNEYXAuPQpfcGxvdERhdGE7aWYoYXAuX3R5cGU9M0Q9M0Q9M0QibGluZSIm JmFwLnJlbmRlcmVyLmJhbmRzLnNob3cmJnRoaXMubmFtZS5jaGE9CnJBdCgwKSE9M0Q9M0QieCIp e2FtPTNEW1swLGFwLnJlbmRlcmVyLmJhbmRzLl9taW5dLFsxLGFwLnJlbmRlcmVyLmJhbmRzLl9t YT0KeF1dfXZhciBhaD0zRDEsYW49M0QxO2lmKGFwLl90eXBlIT0zRG51bGwmJmFwLl90eXBlPTNE PTNEIm9obGMiKXthaD0zRDM7YW49Cj0zRDJ9Zm9yKHZhciBhaz0zRDAsYWk9M0RhbS5sZW5ndGg7 YWs8YWk7YWsrKyl7aWYodGhpcy5uYW1lPTNEPTNEInhheGlzInx8dD0KaGlzLm5hbWU9M0Q9M0Qi eDJheGlzIil7aWYoKGFtW2FrXVswXSE9M0RudWxsJiZhbVtha11bMF08YW8ubWluKXx8YW8ubWlu PTNEPQo9M0RudWxsKXthby5taW49M0RhbVtha11bMF19aWYoKGFtW2FrXVswXSE9M0RudWxsJiZh bVtha11bMF0+YW8ubWF4KXx8YW8ubWE9Cng9M0Q9M0RudWxsKXthby5tYXg9M0RhbVtha11bMF19 fWVsc2V7aWYoKGFtW2FrXVthaF0hPTNEbnVsbCYmYW1bYWtdW2FoXTxhbz0KLm1pbil8fGFvLm1p bj0zRD0zRG51bGwpe2FvLm1pbj0zRGFtW2FrXVthaF19aWYoKGFtW2FrXVthbl0hPTNEbnVsbCYm YW1bYWtdPQpbYW5dPmFvLm1heCl8fGFvLm1heD0zRD0zRG51bGwpe2FvLm1heD0zRGFtW2FrXVth bl19fX1pZihhaiYmYXAucmVuZGVyZXIuY289Cm5zdHJ1Y3RvciE9M0Q9M0RMLmpxcGxvdC5CYXJS ZW5kZXJlcil7YWo9M0RmYWxzZX1lbHNle2lmKGFqJiZ0aGlzLl9vcHRpb25zLj0KaGFzT3duUHJv cGVydHkoImZvcmNlVGlja0F0MCIpJiZ0aGlzLl9vcHRpb25zLmZvcmNlVGlja0F0MD0zRD0zRGZh bHNlKXthaj0KPTNEZmFsc2V9ZWxzZXtpZihhaiYmYXAucmVuZGVyZXIuY29uc3RydWN0b3I9M0Q9 M0Q9M0RMLmpxcGxvdC5CYXJSZW5kZXJlcil7PQppZihhcC5iYXJEaXJlY3Rpb249M0Q9M0QidmVy dGljYWwiJiZ0aGlzLm5hbWUhPTNEInhheGlzIiYmdGhpcy5uYW1lIT0zRCJ4MmE9CnhpcyIpe2lm KHRoaXMuX29wdGlvbnMucGFkIT0zRG51bGx8fHRoaXMuX29wdGlvbnMucGFkTWluIT0zRG51bGwp e2FqPTNEZmFscz0KZX19ZWxzZXtpZihhcC5iYXJEaXJlY3Rpb249M0Q9M0QiaG9yaXpvbnRhbCIm Jih0aGlzLm5hbWU9M0Q9M0QieGF4aXMifHx0aGlzPQoubmFtZT0zRD0zRCJ4MmF4aXMiKSl7aWYo dGhpcy5fb3B0aW9ucy5wYWQhPTNEbnVsbHx8dGhpcy5fb3B0aW9ucy5wYWRNaW4hPQo9M0RudWxs KXthaj0zRGZhbHNlfX19fX19fX1pZihhaiYmdGhpcy5yZW5kZXJlci5jb25zdHJ1Y3Rvcj0zRD0z RD0zREwuanFwbG89CnQuTGluZWFyQXhpc1JlbmRlcmVyJiZhby5taW4+PTNEMCl7dGhpcy5wYWRN aW49M0QxO3RoaXMuZm9yY2VUaWNrQXQwPTNEdHJ1ZT0KfX07ZnVuY3Rpb24gcShhaCl7TC5qcXBs b3QuRWxlbUNvbnRhaW5lci5jYWxsKHRoaXMpO3RoaXMuc2hvdz0zRGZhbHNlO3RoaXMuPQpsb2Nh dGlvbj0zRCJuZSI7dGhpcy5sYWJlbHM9M0RbXTt0aGlzLnNob3dMYWJlbHM9M0R0cnVlO3RoaXMu c2hvd1N3YXRjaGVzPQo9M0R0cnVlO3RoaXMucGxhY2VtZW50PTNEImluc2lkZUdyaWQiO3RoaXMu eG9mZnNldD0zRDA7dGhpcy55b2Zmc2V0PTNEMDt0aGk9CnMuYm9yZGVyO3RoaXMuYmFja2dyb3Vu ZDt0aGlzLnRleHRDb2xvcjt0aGlzLmZvbnRGYW1pbHk7dGhpcy5mb250U2l6ZTt0aGlzLj0Kcm93 U3BhY2luZz0zRCIwLjVlbSI7dGhpcy5yZW5kZXJlcj0zREwuanFwbG90LlRhYmxlTGVnZW5kUmVu ZGVyZXI7dGhpcy5yZW5kPQplcmVyT3B0aW9ucz0zRHt9O3RoaXMucHJlRHJhdz0zRGZhbHNlO3Ro aXMubWFyZ2luVG9wPTNEbnVsbDt0aGlzLm1hcmdpblJpZ2g9CnQ9M0RudWxsO3RoaXMubWFyZ2lu Qm90dG9tPTNEbnVsbDt0aGlzLm1hcmdpbkxlZnQ9M0RudWxsO3RoaXMuZXNjYXBlSHRtbD0zRD0K ZmFsc2U7dGhpcy5fc2VyaWVzPTNEW107TC5leHRlbmQodHJ1ZSx0aGlzLGFoKX1xLnByb3RvdHlw ZT0zRG5ldyBMLmpxcGxvdC5FPQpsZW1Db250YWluZXIoKTtxLnByb3RvdHlwZS5jb25zdHJ1Y3Rv cj0zRHE7cS5wcm90b3R5cGUuc2V0T3B0aW9ucz0zRGZ1bmN0aW89Cm4oYWgpe0wuZXh0ZW5kKHRy dWUsdGhpcyxhaCk7aWYodGhpcy5wbGFjZW1lbnQ9M0Q9M0QiaW5zaWRlIil7dGhpcy5wbGFjZW1l bj0KdD0zRCJpbnNpZGVHcmlkIn1pZih0aGlzLnhvZmZzZXQ+MCl7aWYodGhpcy5wbGFjZW1lbnQ9 M0Q9M0QiaW5zaWRlR3JpZCIpe3N3PQppdGNoKHRoaXMubG9jYXRpb24pe2Nhc2UibnciOmNhc2Ui dyI6Y2FzZSJzdyI6aWYodGhpcy5tYXJnaW5MZWZ0PTNEPTNEbnVsbCk9Cnt0aGlzLm1hcmdpbkxl ZnQ9M0R0aGlzLnhvZmZzZXQrInB4In10aGlzLm1hcmdpblJpZ2h0PTNEIjBweCI7YnJlYWs7Y2Fz ZSJuZT0KIjpjYXNlImUiOmNhc2Uic2UiOmRlZmF1bHQ6aWYodGhpcy5tYXJnaW5SaWdodD0zRD0z RG51bGwpe3RoaXMubWFyZ2luUmlnaHQ9Cj0zRHRoaXMueG9mZnNldCsicHgifXRoaXMubWFyZ2lu TGVmdD0zRCIwcHgiO2JyZWFrfX1lbHNle2lmKHRoaXMucGxhY2VtZW50PQo9M0Q9M0Qib3V0c2lk ZSIpe3N3aXRjaCh0aGlzLmxvY2F0aW9uKXtjYXNlIm53IjpjYXNlInciOmNhc2Uic3ciOmlmKHRo aXMubWE9CnJnaW5SaWdodD0zRD0zRG51bGwpe3RoaXMubWFyZ2luUmlnaHQ9M0R0aGlzLnhvZmZz ZXQrInB4In10aGlzLm1hcmdpbkxlZnQ9Cj0zRCIwcHgiO2JyZWFrO2Nhc2UibmUiOmNhc2UiZSI6 Y2FzZSJzZSI6ZGVmYXVsdDppZih0aGlzLm1hcmdpbkxlZnQ9M0Q9M0RudT0KbGwpe3RoaXMubWFy Z2luTGVmdD0zRHRoaXMueG9mZnNldCsicHgifXRoaXMubWFyZ2luUmlnaHQ9M0QiMHB4IjticmVh a319fXRoPQppcy54b2Zmc2V0PTNEMH1pZih0aGlzLnlvZmZzZXQ+MCl7aWYodGhpcy5wbGFjZW1l bnQ9M0Q9M0Qib3V0c2lkZSIpe3N3aXRjaCg9CnRoaXMubG9jYXRpb24pe2Nhc2Uic3ciOmNhc2Ui cyI6Y2FzZSJzZSI6aWYodGhpcy5tYXJnaW5Ub3A9M0Q9M0RudWxsKXt0aGlzLj0KbWFyZ2luVG9w PTNEdGhpcy55b2Zmc2V0KyJweCJ9dGhpcy5tYXJnaW5Cb3R0b209M0QiMHB4IjticmVhaztjYXNl Im5lIjpjYXNlPQoibiI6Y2FzZSJudyI6ZGVmYXVsdDppZih0aGlzLm1hcmdpbkJvdHRvbT0zRD0z RG51bGwpe3RoaXMubWFyZ2luQm90dG9tPTNEdGg9CmlzLnlvZmZzZXQrInB4In10aGlzLm1hcmdp blRvcD0zRCIwcHgiO2JyZWFrfX1lbHNle2lmKHRoaXMucGxhY2VtZW50PTNEPTNEIj0KaW5zaWRl R3JpZCIpe3N3aXRjaCh0aGlzLmxvY2F0aW9uKXtjYXNlInN3IjpjYXNlInMiOmNhc2Uic2UiOmlm KHRoaXMubWFyZ2luPQpCb3R0b209M0Q9M0RudWxsKXt0aGlzLm1hcmdpbkJvdHRvbT0zRHRoaXMu eW9mZnNldCsicHgifXRoaXMubWFyZ2luVG9wPTNEIjA9CnB4IjticmVhaztjYXNlIm5lIjpjYXNl Im4iOmNhc2UibnciOmRlZmF1bHQ6aWYodGhpcy5tYXJnaW5Ub3A9M0Q9M0RudWxsKXt0aD0KaXMu bWFyZ2luVG9wPTNEdGhpcy55b2Zmc2V0KyJweCJ9dGhpcy5tYXJnaW5Cb3R0b209M0QiMHB4Ijti cmVha319fXRoaXMueW9mPQpmc2V0PTNEMH19O3EucHJvdG90eXBlLmluaXQ9M0RmdW5jdGlvbigp e2lmKEwuaXNGdW5jdGlvbih0aGlzLnJlbmRlcmVyKSl7dGg9CmlzLnJlbmRlcmVyPTNEbmV3IHRo aXMucmVuZGVyZXIoKX10aGlzLnJlbmRlcmVyLmluaXQuY2FsbCh0aGlzLHRoaXMucmVuZGVyZT0K ck9wdGlvbnMpfTtxLnByb3RvdHlwZS5kcmF3PTNEZnVuY3Rpb24oYWksYWope2Zvcih2YXIgYWg9 M0QwO2FoPEwuanFwbG90LnByPQplRHJhd0xlZ2VuZEhvb2tzLmxlbmd0aDthaCsrKXtMLmpxcGxv dC5wcmVEcmF3TGVnZW5kSG9va3NbYWhdLmNhbGwodGhpcyxhaSk9Cn1yZXR1cm4gdGhpcy5yZW5k ZXJlci5kcmF3LmNhbGwodGhpcyxhaSxhail9O3EucHJvdG90eXBlLnBhY2s9M0RmdW5jdGlvbihh aD0KKXt0aGlzLnJlbmRlcmVyLnBhY2suY2FsbCh0aGlzLGFoKX07ZnVuY3Rpb24geShhaCl7TC5q cXBsb3QuRWxlbUNvbnRhaW5lci5jPQphbGwodGhpcyk7dGhpcy50ZXh0PTNEYWg7dGhpcy5zaG93 PTNEdHJ1ZTt0aGlzLmZvbnRGYW1pbHk7dGhpcy5mb250U2l6ZTt0aGk9CnMudGV4dEFsaWduO3Ro aXMudGV4dENvbG9yO3RoaXMucmVuZGVyZXI9M0RMLmpxcGxvdC5EaXZUaXRsZVJlbmRlcmVyO3Ro aXMucj0KZW5kZXJlck9wdGlvbnM9M0R7fTt0aGlzLmVzY2FwZUh0bWw9M0RmYWxzZX15LnByb3Rv dHlwZT0zRG5ldyBMLmpxcGxvdC5FbGVtPQpDb250YWluZXIoKTt5LnByb3RvdHlwZS5jb25zdHJ1 Y3Rvcj0zRHk7eS5wcm90b3R5cGUuaW5pdD0zRGZ1bmN0aW9uKCl7aWYoTC49CmlzRnVuY3Rpb24o dGhpcy5yZW5kZXJlcikpe3RoaXMucmVuZGVyZXI9M0RuZXcgdGhpcy5yZW5kZXJlcigpfXRoaXMu cmVuZGVyZT0Kci5pbml0LmNhbGwodGhpcyx0aGlzLnJlbmRlcmVyT3B0aW9ucyl9O3kucHJvdG90 eXBlLmRyYXc9M0RmdW5jdGlvbihhaCl7cmV0PQp1cm4gdGhpcy5yZW5kZXJlci5kcmF3LmNhbGwo dGhpcyxhaCl9O3kucHJvdG90eXBlLnBhY2s9M0RmdW5jdGlvbigpe3RoaXMucmU9Cm5kZXJlci5w YWNrLmNhbGwodGhpcyl9O2Z1bmN0aW9uIFMoYWgpe2FoPTNEYWh8fHt9O0wuanFwbG90LkVsZW1D b250YWluZXIuYz0KYWxsKHRoaXMpO3RoaXMuc2hvdz0zRHRydWU7dGhpcy54YXhpcz0zRCJ4YXhp cyI7dGhpcy5feGF4aXM7dGhpcy55YXhpcz0zRCJ5PQpheGlzIjt0aGlzLl95YXhpczt0aGlzLmdy aWRCb3JkZXJXaWR0aD0zRDI7dGhpcy5yZW5kZXJlcj0zREwuanFwbG90LkxpbmVSZW49CmRlcmVy O3RoaXMucmVuZGVyZXJPcHRpb25zPTNEe307dGhpcy5kYXRhPTNEW107dGhpcy5ncmlkRGF0YT0z RFtdO3RoaXMubGFiZT0KbD0zRCIiO3RoaXMuc2hvd0xhYmVsPTNEdHJ1ZTt0aGlzLmNvbG9yO3Ro aXMubmVnYXRpdmVDb2xvcjt0aGlzLmxpbmVXaWR0aD0KPTNEMi41O3RoaXMubGluZUpvaW49M0Qi cm91bmQiO3RoaXMubGluZUNhcD0zRCJyb3VuZCI7dGhpcy5saW5lUGF0dGVybj0zRCJzPQpvbGlk Ijt0aGlzLnNoYWRvdz0zRHRydWU7dGhpcy5zaGFkb3dBbmdsZT0zRDQ1O3RoaXMuc2hhZG93T2Zm c2V0PTNEMS4yNTt0aGk9CnMuc2hhZG93RGVwdGg9M0QzO3RoaXMuc2hhZG93QWxwaGE9M0QiMC4x Ijt0aGlzLmJyZWFrT25OdWxsPTNEZmFsc2U7dGhpcy5tYT0KcmtlclJlbmRlcmVyPTNETC5qcXBs b3QuTWFya2VyUmVuZGVyZXI7dGhpcy5tYXJrZXJPcHRpb25zPTNEe307dGhpcy5zaG93TGluPQpl PTNEdHJ1ZTt0aGlzLnNob3dNYXJrZXI9M0R0cnVlO3RoaXMuaW5kZXg7dGhpcy5maWxsPTNEZmFs c2U7dGhpcy5maWxsQ29sb3I9Cjt0aGlzLmZpbGxBbHBoYTt0aGlzLmZpbGxBbmRTdHJva2U9M0Rm YWxzZTt0aGlzLmRpc2FibGVTdGFjaz0zRGZhbHNlO3RoaXMuXz0Kc3RhY2s9M0RmYWxzZTt0aGlz Lm5laWdoYm9yVGhyZXNob2xkPTNENDt0aGlzLmZpbGxUb1plcm89M0RmYWxzZTt0aGlzLmZpbGxU PQpvVmFsdWU9M0QwO3RoaXMuZmlsbEF4aXM9M0QieSI7dGhpcy51c2VOZWdhdGl2ZUNvbG9ycz0z RHRydWU7dGhpcy5fc3RhY2tEYXQ9CmE9M0RbXTt0aGlzLl9wbG90RGF0YT0zRFtdO3RoaXMuX3Bs b3RWYWx1ZXM9M0R7eDpbXSx5OltdfTt0aGlzLl9pbnRlcnZhbHM9Cj0zRHt4Ont9LHk6e319O3Ro aXMuX3ByZXZQbG90RGF0YT0zRFtdO3RoaXMuX3ByZXZHcmlkRGF0YT0zRFtdO3RoaXMuX3N0YWNr QT0KeGlzPTNEInkiO3RoaXMuX3ByaW1hcnlBeGlzPTNEIl94YXhpcyI7dGhpcy5jYW52YXM9M0Ru ZXcgTC5qcXBsb3QuR2VuZXJpY0NhPQpudmFzKCk7dGhpcy5zaGFkb3dDYW52YXM9M0RuZXcgTC5q cXBsb3QuR2VuZXJpY0NhbnZhcygpO3RoaXMucGx1Z2lucz0zRHt9O3Q9Cmhpcy5fc3VteT0zRDA7 dGhpcy5fc3VteD0zRDA7dGhpcy5fdHlwZT0zRCIifVMucHJvdG90eXBlPTNEbmV3IEwuanFwbG90 LkVsZT0KbUNvbnRhaW5lcigpO1MucHJvdG90eXBlLmNvbnN0cnVjdG9yPTNEUztTLnByb3RvdHlw ZS5pbml0PTNEZnVuY3Rpb24oYWssYW8sPQphbSl7dGhpcy5pbmRleD0zRGFrO3RoaXMuZ3JpZEJv cmRlcldpZHRoPTNEYW87dmFyIGFuPTNEdGhpcy5kYXRhO3ZhciBhaj0zRFs9Cl0sYWwsYWg7Zm9y KGFsPTNEMCxhaD0zRGFuLmxlbmd0aDthbDxhaDthbCsrKXtpZighdGhpcy5icmVha09uTnVsbCl7 aWYoYW5bYT0KbF09M0Q9M0RudWxsfHxhblthbF1bMF09M0Q9M0RudWxsfHxhblthbF1bMV09M0Q9 M0RudWxsKXtjb250aW51ZX1lbHNle2FqLnB1PQpzaChhblthbF0pfX1lbHNle2FqLnB1c2goYW5b YWxdKX19dGhpcy5kYXRhPTNEYWo7aWYoIXRoaXMuY29sb3Ipe3RoaXMuY29sb3I9Cj0zRGFtLmNv bG9yR2VuZXJhdG9yLmdldCh0aGlzLmluZGV4KX1pZighdGhpcy5uZWdhdGl2ZUNvbG9yKXt0aGlz Lm5lZ2F0aXZlQz0Kb2xvcj0zRGFtLm5lZ2F0aXZlQ29sb3JHZW5lcmF0b3IuZ2V0KHRoaXMuaW5k ZXgpfWlmKCF0aGlzLmZpbGxDb2xvcil7dGhpcy5mPQppbGxDb2xvcj0zRHRoaXMuY29sb3J9aWYo dGhpcy5maWxsQWxwaGEpe3ZhciBhaT0zREwuanFwbG90Lm5vcm1hbGl6ZTJyZ2IodGg9CmlzLmZp bGxDb2xvcik7dmFyIGFpPTNETC5qcXBsb3QuZ2V0Q29sb3JDb21wb25lbnRzKGFpKTt0aGlzLmZp bGxDb2xvcj0zRCJyZz0KYmEoIithaVswXSsiLCIrYWlbMV0rIiwiK2FpWzJdKyIsIit0aGlzLmZp bGxBbHBoYSsiKSJ9aWYoTC5pc0Z1bmN0aW9uKHRoaXMuPQpyZW5kZXJlcikpe3RoaXMucmVuZGVy ZXI9M0RuZXcgdGhpcy5yZW5kZXJlcigpfXRoaXMucmVuZGVyZXIuaW5pdC5jYWxsKHRoaXM9Cix0 aGlzLnJlbmRlcmVyT3B0aW9ucyxhbSk7dGhpcy5tYXJrZXJSZW5kZXJlcj0zRG5ldyB0aGlzLm1h cmtlclJlbmRlcmVyKCk7aT0KZighdGhpcy5tYXJrZXJPcHRpb25zLmNvbG9yKXt0aGlzLm1hcmtl ck9wdGlvbnMuY29sb3I9M0R0aGlzLmNvbG9yfWlmKHRoaXMuPQptYXJrZXJPcHRpb25zLnNob3c9 M0Q9M0RudWxsKXt0aGlzLm1hcmtlck9wdGlvbnMuc2hvdz0zRHRoaXMuc2hvd01hcmtlcn10aGk9 CnMuc2hvd01hcmtlcj0zRHRoaXMubWFya2VyT3B0aW9ucy5zaG93O3RoaXMubWFya2VyUmVuZGVy ZXIuaW5pdCh0aGlzLm1hcmtlcj0KT3B0aW9ucyl9O1MucHJvdG90eXBlLmRyYXc9M0RmdW5jdGlv bihhbixhayxhbSl7dmFyIGFpPTNEKGFrPTNEPTNEdSk/e306YWs7PQphbj0zRChhbj0zRD0zRHUp P3RoaXMuY2FudmFzLl9jdHg6YW47dmFyIGFoLGFsLGFqO2ZvcihhaD0zRDA7YWg8TC5qcXBsb3Qu cHI9CmVEcmF3U2VyaWVzSG9va3MubGVuZ3RoO2FoKyspe0wuanFwbG90LnByZURyYXdTZXJpZXNI b29rc1thaF0uY2FsbCh0aGlzLGFuLD0KYWkpfWlmKHRoaXMuc2hvdyl7dGhpcy5yZW5kZXJlci5z ZXRHcmlkRGF0YS5jYWxsKHRoaXMsYW0pO2lmKCFhaS5wcmV2ZW50SnFQPQpsb3RTZXJpZXNEcmF3 VHJpZ2dlcil7TChhbi5jYW52YXMpLnRyaWdnZXIoImpxcGxvdFNlcmllc0RyYXciLFt0aGlzLmRh dGEsdGg9CmlzLmdyaWREYXRhXSl9YWw9M0RbXTtpZihhaS5kYXRhKXthbD0zRGFpLmRhdGF9ZWxz ZXtpZighdGhpcy5fc3RhY2spe2FsPTNEdD0KaGlzLmRhdGF9ZWxzZXthbD0zRHRoaXMuX3Bsb3RE YXRhfX1haj0zRGFpLmdyaWREYXRhfHx0aGlzLnJlbmRlcmVyLm1ha2VHcmlkPQpEYXRhLmNhbGwo dGhpcyxhbCxhbSk7aWYodGhpcy5fdHlwZT0zRD0zRD0zRCJsaW5lIiYmdGhpcy5yZW5kZXJlci5z bW9vdGgmJnQ9Cmhpcy5yZW5kZXJlci5fc21vb3RoZWREYXRhLmxlbmd0aCl7YWo9M0R0aGlzLnJl bmRlcmVyLl9zbW9vdGhlZERhdGF9dGhpcy5yZT0KbmRlcmVyLmRyYXcuY2FsbCh0aGlzLGFuLGFq LGFpLGFtKX1mb3IoYWg9M0QwO2FoPEwuanFwbG90LnBvc3REcmF3U2VyaWVzSG9vPQprcy5sZW5n dGg7YWgrKyl7TC5qcXBsb3QucG9zdERyYXdTZXJpZXNIb29rc1thaF0uY2FsbCh0aGlzLGFuLGFp LGFtKX1hbj0zRGE9Cms9M0RhbT0zRGFoPTNEYWw9M0Rhaj0zRG51bGx9O1MucHJvdG90eXBlLmRy YXdTaGFkb3c9M0RmdW5jdGlvbihhbixhayxhbSl7dj0KYXIgYWk9M0QoYWs9M0Q9M0R1KT97fTph azthbj0zRChhbj0zRD0zRHUpP3RoaXMuc2hhZG93Q2FudmFzLl9jdHg6YW47dmFyIGFoPQosYWws YWo7Zm9yKGFoPTNEMDthaDxMLmpxcGxvdC5wcmVEcmF3U2VyaWVzU2hhZG93SG9va3MubGVuZ3Ro O2FoKyspe0wuanFwbG89CnQucHJlRHJhd1Nlcmllc1NoYWRvd0hvb2tzW2FoXS5jYWxsKHRoaXMs YW4sYWkpfWlmKHRoaXMuc2hhZG93KXt0aGlzLnJlbmRlcj0KZXIuc2V0R3JpZERhdGEuY2FsbCh0 aGlzLGFtKTthbD0zRFtdO2lmKGFpLmRhdGEpe2FsPTNEYWkuZGF0YX1lbHNle2lmKCF0aGlzPQou X3N0YWNrKXthbD0zRHRoaXMuZGF0YX1lbHNle2FsPTNEdGhpcy5fcGxvdERhdGF9fWFqPTNEYWku Z3JpZERhdGF8fHRoaXMucmU9Cm5kZXJlci5tYWtlR3JpZERhdGEuY2FsbCh0aGlzLGFsLGFtKTt0 aGlzLnJlbmRlcmVyLmRyYXdTaGFkb3cuY2FsbCh0aGlzLGFuLD0KYWosYWksYW0pfWZvcihhaD0z RDA7YWg8TC5qcXBsb3QucG9zdERyYXdTZXJpZXNTaGFkb3dIb29rcy5sZW5ndGg7YWgrKyl7TC5q PQpxcGxvdC5wb3N0RHJhd1Nlcmllc1NoYWRvd0hvb2tzW2FoXS5jYWxsKHRoaXMsYW4sYWkpfWFu PTNEYWs9M0RhbT0zRGFoPTNEYWw9Cj0zRGFqPTNEbnVsbH07Uy5wcm90b3R5cGUudG9nZ2xlRGlz cGxheT0zRGZ1bmN0aW9uKGFpLGFrKXt2YXIgYWgsYWo7aWYoYWkuZD0KYXRhLnNlcmllcyl7YWg9 M0RhaS5kYXRhLnNlcmllc31lbHNle2FoPTNEdGhpc31pZihhaS5kYXRhLnNwZWVkKXthaj0zRGFp LmRhPQp0YS5zcGVlZH1pZihhail7aWYoYWguY2FudmFzLl9lbGVtLmlzKCI6aGlkZGVuIil8fCFh aC5zaG93KXthaC5zaG93PTNEdHJ1ZTs9CmFoLmNhbnZhcy5fZWxlbS5yZW1vdmVDbGFzcygianFw bG90LXNlcmllcy1oaWRkZW4iKTtpZihhaC5zaGFkb3dDYW52YXMuX2VsZT0KbSl7YWguc2hhZG93 Q2FudmFzLl9lbGVtLmZhZGVJbihhail9YWguY2FudmFzLl9lbGVtLmZhZGVJbihhaixhayk7YWgu Y2FudmFzPQouX2VsZW0ubmV4dEFsbCgiLmpxcGxvdC1wb2ludC1sYWJlbC5qcXBsb3Qtc2VyaWVz LSIrYWguaW5kZXgpLmZhZGVJbihhail9ZWw9CnNle2FoLnNob3c9M0RmYWxzZTthaC5jYW52YXMu X2VsZW0uYWRkQ2xhc3MoImpxcGxvdC1zZXJpZXMtaGlkZGVuIik7aWYoYWgucz0KaGFkb3dDYW52 YXMuX2VsZW0pe2FoLnNoYWRvd0NhbnZhcy5fZWxlbS5mYWRlT3V0KGFqKX1haC5jYW52YXMuX2Vs ZW0uZmFkZU91PQp0KGFqLGFrKTthaC5jYW52YXMuX2VsZW0ubmV4dEFsbCgiLmpxcGxvdC1wb2lu dC1sYWJlbC5qcXBsb3Qtc2VyaWVzLSIrYWguaW49CmRleCkuZmFkZU91dChhail9fWVsc2V7aWYo YWguY2FudmFzLl9lbGVtLmlzKCI6aGlkZGVuIil8fCFhaC5zaG93KXthaC5zaG93PQo9M0R0cnVl O2FoLmNhbnZhcy5fZWxlbS5yZW1vdmVDbGFzcygianFwbG90LXNlcmllcy1oaWRkZW4iKTtpZihh aC5zaGFkb3dDYW49CnZhcy5fZWxlbSl7YWguc2hhZG93Q2FudmFzLl9lbGVtLnNob3coKX1haC5j YW52YXMuX2VsZW0uc2hvdygwLGFrKTthaC5jYW52YT0Kcy5fZWxlbS5uZXh0QWxsKCIuanFwbG90 LXBvaW50LWxhYmVsLmpxcGxvdC1zZXJpZXMtIithaC5pbmRleCkuc2hvdygpfWVsc2V7PQphaC5z aG93PTNEZmFsc2U7YWguY2FudmFzLl9lbGVtLmFkZENsYXNzKCJqcXBsb3Qtc2VyaWVzLWhpZGRl biIpO2lmKGFoLnNoYWQ9Cm93Q2FudmFzLl9lbGVtKXthaC5zaGFkb3dDYW52YXMuX2VsZW0uaGlk ZSgpfWFoLmNhbnZhcy5fZWxlbS5oaWRlKDAsYWspO2FoLj0KY2FudmFzLl9lbGVtLm5leHRBbGwo Ii5qcXBsb3QtcG9pbnQtbGFiZWwuanFwbG90LXNlcmllcy0iK2FoLmluZGV4KS5oaWRlKCl9PQp9 fTtmdW5jdGlvbiBNKCl7TC5qcXBsb3QuRWxlbUNvbnRhaW5lci5jYWxsKHRoaXMpO3RoaXMuZHJh d0dyaWRsaW5lcz0zRHRydWU9Cjt0aGlzLmdyaWRMaW5lQ29sb3I9M0QiI2NjY2NjYyI7dGhpcy5n cmlkTGluZVdpZHRoPTNEMTt0aGlzLmJhY2tncm91bmQ9M0QiIz0KZmZmZGY2Ijt0aGlzLmJvcmRl ckNvbG9yPTNEIiM5OTk5OTkiO3RoaXMuYm9yZGVyV2lkdGg9M0QyO3RoaXMuZHJhd0JvcmRlcj0K PTNEdHJ1ZTt0aGlzLnNoYWRvdz0zRHRydWU7dGhpcy5zaGFkb3dBbmdsZT0zRDQ1O3RoaXMuc2hh ZG93T2Zmc2V0PTNEMS41O3RoPQppcy5zaGFkb3dXaWR0aD0zRDM7dGhpcy5zaGFkb3dEZXB0aD0z RDM7dGhpcy5zaGFkb3dDb2xvcj0zRG51bGw7dGhpcy5zaGFkb3c9CkFscGhhPTNEIjAuMDciO3Ro aXMuX2xlZnQ7dGhpcy5fdG9wO3RoaXMuX3JpZ2h0O3RoaXMuX2JvdHRvbTt0aGlzLl93aWR0aDt0 aD0KaXMuX2hlaWdodDt0aGlzLl9heGVzPTNEW107dGhpcy5yZW5kZXJlcj0zREwuanFwbG90LkNh bnZhc0dyaWRSZW5kZXJlcjt0aGlzPQoucmVuZGVyZXJPcHRpb25zPTNEe307dGhpcy5fb2Zmc2V0 cz0zRHt0b3A6bnVsbCxib3R0b206bnVsbCxsZWZ0Om51bGwscmlnaHQ9CjpudWxsfX1NLnByb3Rv dHlwZT0zRG5ldyBMLmpxcGxvdC5FbGVtQ29udGFpbmVyKCk7TS5wcm90b3R5cGUuY29uc3RydWN0 b3I9Cj0zRE07TS5wcm90b3R5cGUuaW5pdD0zRGZ1bmN0aW9uKCl7aWYoTC5pc0Z1bmN0aW9uKHRo aXMucmVuZGVyZXIpKXt0aGlzLnJlbj0KZGVyZXI9M0RuZXcgdGhpcy5yZW5kZXJlcigpfXRoaXMu cmVuZGVyZXIuaW5pdC5jYWxsKHRoaXMsdGhpcy5yZW5kZXJlck9wdGlvPQpucyl9O00ucHJvdG90 eXBlLmNyZWF0ZUVsZW1lbnQ9M0RmdW5jdGlvbihhaCxhaSl7dGhpcy5fb2Zmc2V0cz0zRGFoO3Jl dHVybiA9CnRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudC5jYWxsKHRoaXMsYWkpfTtNLnByb3Rv dHlwZS5kcmF3PTNEZnVuY3Rpb24oKXt0aD0KaXMucmVuZGVyZXIuZHJhdy5jYWxsKHRoaXMpfTtM LmpxcGxvdC5HZW5lcmljQ2FudmFzPTNEZnVuY3Rpb24oKXtMLmpxcGxvdC5FPQpsZW1Db250YWlu ZXIuY2FsbCh0aGlzKTt0aGlzLl9jdHh9O0wuanFwbG90LkdlbmVyaWNDYW52YXMucHJvdG90eXBl PTNEbmV3IEw9Ci5qcXBsb3QuRWxlbUNvbnRhaW5lcigpO0wuanFwbG90LkdlbmVyaWNDYW52YXMu cHJvdG90eXBlLmNvbnN0cnVjdG9yPTNETC5qcT0KcGxvdC5HZW5lcmljQ2FudmFzO0wuanFwbG90 LkdlbmVyaWNDYW52YXMucHJvdG90eXBlLmNyZWF0ZUVsZW1lbnQ9M0RmdW5jdGlvPQpuKGFsLGFq LGFpLGFtKXt0aGlzLl9vZmZzZXRzPTNEYWw7dmFyIGFoPTNEImpxcGxvdCI7aWYoYWohPTNEdSl7 YWg9M0Rhan12YXI9CiBhazthaz0zRGFtLmNhbnZhc01hbmFnZXIuZ2V0Q2FudmFzKCk7aWYoYWkh PTNEbnVsbCl7dGhpcy5fcGxvdERpbWVuc2lvbnM9Cj0zRGFpfWFrLndpZHRoPTNEdGhpcy5fcGxv dERpbWVuc2lvbnMud2lkdGgtdGhpcy5fb2Zmc2V0cy5sZWZ0LXRoaXMuX29mZnNldD0Kcy5yaWdo dDthay5oZWlnaHQ9M0R0aGlzLl9wbG90RGltZW5zaW9ucy5oZWlnaHQtdGhpcy5fb2Zmc2V0cy50 b3AtdGhpcy5fb2ZmPQpzZXRzLmJvdHRvbTt0aGlzLl9lbGVtPTNETChhayk7dGhpcy5fZWxlbS5j c3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsbGVmdDp0aGk9CnMuX29mZnNldHMubGVmdCx0b3A6dGhp cy5fb2Zmc2V0cy50b3B9KTt0aGlzLl9lbGVtLmFkZENsYXNzKGFoKTthaz0zRGFtLmNhbj0KdmFz TWFuYWdlci5pbml0Q2FudmFzKGFrKTthaz0zRG51bGw7cmV0dXJuIHRoaXMuX2VsZW19O0wuanFw bG90LkdlbmVyaWNDYW52PQphcy5wcm90b3R5cGUuc2V0Q29udGV4dD0zRGZ1bmN0aW9uKCl7dGhp cy5fY3R4PTNEdGhpcy5fZWxlbS5nZXQoMCkuZ2V0Q29udGU9Cnh0KCIyZCIpO3JldHVybiB0aGlz Ll9jdHh9O0wuanFwbG90LkdlbmVyaWNDYW52YXMucHJvdG90eXBlLnJlc2V0Q2FudmFzPTNEZj0K dW5jdGlvbigpe2lmKHRoaXMuX2VsZW0pe2lmKEwuanFwbG90LnVzZV9leGNhbnZhcyYmd2luZG93 Lkdfdm1sQ2FudmFzTWFuYWdlPQpyLnVuaW5pdEVsZW1lbnQhPTNEPTNEdSl7d2luZG93Lkdfdm1s Q2FudmFzTWFuYWdlci51bmluaXRFbGVtZW50KHRoaXMuX2VsZW09Ci5nZXQoMCkpfXRoaXMuX2Vs ZW0uZW1wdHlGb3JjZSgpfXRoaXMuX2N0eD0zRG51bGx9O0wuanFwbG90Lkhvb2tzTWFuYWdlcj0z RD0KZnVuY3Rpb24oKXt0aGlzLmhvb2tzPTNEW107dGhpcy5hcmdzPTNEW119O0wuanFwbG90Lkhv b2tzTWFuYWdlci5wcm90b3R5cGUuPQphZGRPbmNlPTNEZnVuY3Rpb24oYWssYWkpe2FpPTNEYWl8 fFtdO3ZhciBhbD0zRGZhbHNlO2Zvcih2YXIgYWo9M0QwLGFoPTNEdGg9CmlzLmhvb2tzLmxlbmd0 aDthajxhaDthaisrKXtpZih0aGlzLmhvb2tzW2FqXT0zRD0zRGFrKXthbD0zRHRydWV9fWlmKCFh bCl7dD0KaGlzLmhvb2tzLnB1c2goYWspO3RoaXMuYXJncy5wdXNoKGFpKX19O0wuanFwbG90Lkhv b2tzTWFuYWdlci5wcm90b3R5cGUuYWRkPQo9M0RmdW5jdGlvbihhaSxhaCl7YWg9M0RhaHx8W107 dGhpcy5ob29rcy5wdXNoKGFpKTt0aGlzLmFyZ3MucHVzaChhaCl9O0wuanE9CnBsb3QuRXZlbnRM aXN0ZW5lck1hbmFnZXI9M0RmdW5jdGlvbigpe3RoaXMuaG9va3M9M0RbXX07TC5qcXBsb3QuRXZl bnRMaXN0ZT0KbmVyTWFuYWdlci5wcm90b3R5cGUuYWRkT25jZT0zRGZ1bmN0aW9uKGFsLGFrKXt2 YXIgYW09M0RmYWxzZSxhaixhaTtmb3IodmFyPQogYWk9M0QwLGFoPTNEdGhpcy5ob29rcy5sZW5n dGg7YWk8YWg7YWkrKyl7YWo9M0R0aGlzLmhvb2tzW2FpXTtpZihhalswXT0zRD0KPTNEYWwmJmFq WzFdPTNEPTNEYWspe2FtPTNEdHJ1ZX19aWYoIWFtKXt0aGlzLmhvb2tzLnB1c2goW2FsLGFrXSl9 fTtMLmpxcGxvPQp0LkV2ZW50TGlzdGVuZXJNYW5hZ2VyLnByb3RvdHlwZS5hZGQ9M0RmdW5jdGlv bihhaSxhaCl7dGhpcy5ob29rcy5wdXNoKFthaSw9CmFoXSl9O3ZhciBVPTNEWyJ5TWlkQXhpcyIs InhheGlzIiwieWF4aXMiLCJ4MmF4aXMiLCJ5MmF4aXMiLCJ5M2F4aXMiLCJ5NGF4aT0KcyIsInk1 YXhpcyIsInk2YXhpcyIsInk3YXhpcyIsInk4YXhpcyIsInk5YXhpcyJdO2Z1bmN0aW9uIFIoKXt0 aGlzLmFuaW1hdGU9Cj0zRGZhbHNlO3RoaXMuYW5pbWF0ZVJlcGxvdD0zRGZhbHNlO3RoaXMuYXhl cz0zRHt4YXhpczpuZXcgdygieGF4aXMiKSx5YXhpcz0KOm5ldyB3KCJ5YXhpcyIpLHgyYXhpczpu ZXcgdygieDJheGlzIikseTJheGlzOm5ldyB3KCJ5MmF4aXMiKSx5M2F4aXM6bmV3IHcoPQoieTNh eGlzIikseTRheGlzOm5ldyB3KCJ5NGF4aXMiKSx5NWF4aXM6bmV3IHcoInk1YXhpcyIpLHk2YXhp czpuZXcgdygieTZheGk9CnMiKSx5N2F4aXM6bmV3IHcoInk3YXhpcyIpLHk4YXhpczpuZXcgdygi eThheGlzIikseTlheGlzOm5ldyB3KCJ5OWF4aXMiKSx5TT0KaWRBeGlzOm5ldyB3KCJ5TWlkQXhp cyIpfTt0aGlzLmJhc2VDYW52YXM9M0RuZXcgTC5qcXBsb3QuR2VuZXJpY0NhbnZhcygpO3RoPQpp cy5jYXB0dXJlUmlnaHRDbGljaz0zRGZhbHNlO3RoaXMuZGF0YT0zRFtdO3RoaXMuZGF0YVJlbmRl cmVyO3RoaXMuZGF0YVJlbmQ9CmVyZXJPcHRpb25zO3RoaXMuZGVmYXVsdHM9M0R7YXhlc0RlZmF1 bHRzOnt9LGF4ZXM6e3hheGlzOnt9LHlheGlzOnt9LHgyYXhpcz0KOnt9LHkyYXhpczp7fSx5M2F4 aXM6e30seTRheGlzOnt9LHk1YXhpczp7fSx5NmF4aXM6e30seTdheGlzOnt9LHk4YXhpczp7fSx5 PQo5YXhpczp7fSx5TWlkQXhpczp7fX0sc2VyaWVzRGVmYXVsdHM6e30sc2VyaWVzOltdfTt0aGlz LmRlZmF1bHRBeGlzU3RhcnQ9M0Q9CjE7dGhpcy5kcmF3SWZIaWRkZW49M0RmYWxzZTt0aGlzLmV2 ZW50Q2FudmFzPTNEbmV3IEwuanFwbG90LkdlbmVyaWNDYW52YXMoKT0KO3RoaXMuZmlsbEJldHdl ZW49M0R7c2VyaWVzMTpudWxsLHNlcmllczI6bnVsbCxjb2xvcjpudWxsLGJhc2VTZXJpZXM6MCxm aWxsPQo6dHJ1ZX07dGhpcy5mb250RmFtaWx5O3RoaXMuZm9udFNpemU7dGhpcy5ncmlkPTNEbmV3 IE0oKTt0aGlzLmxlZ2VuZD0zRG5ldyA9CnEoKTt0aGlzLm5vRGF0YUluZGljYXRvcj0zRHtzaG93 OmZhbHNlLGluZGljYXRvcjoiTG9hZGluZyBEYXRhLi4uIixheGVzOnt4YT0KeGlzOnttaW46MCxt YXg6MTAsdGlja0ludGVydmFsOjIsc2hvdzp0cnVlfSx5YXhpczp7bWluOjAsbWF4OjEyLHRpY2tJ bnRlcnZhPQpsOjMsc2hvdzp0cnVlfX19O3RoaXMubmVnYXRpdmVTZXJpZXNDb2xvcnM9M0RMLmpx cGxvdC5jb25maWcuZGVmYXVsdE5lZ2F0aXY9CmVDb2xvcnM7dGhpcy5vcHRpb25zPTNEe307dGhp cy5wcmV2aW91c1Nlcmllc1N0YWNrPTNEW107dGhpcy5wbHVnaW5zPTNEe307dD0KaGlzLnNlcmll cz0zRFtdO3RoaXMuc2VyaWVzU3RhY2s9M0RbXTt0aGlzLnNlcmllc0NvbG9ycz0zREwuanFwbG90 LmNvbmZpZy5kPQplZmF1bHRDb2xvcnM7dGhpcy5zb3J0RGF0YT0zRHRydWU7dGhpcy5zdGFja1Nl cmllcz0zRGZhbHNlO3RoaXMuc3luY1hUaWNrcz0KPTNEdHJ1ZTt0aGlzLnN5bmNZVGlja3M9M0R0 cnVlO3RoaXMudGFyZ2V0PTNEbnVsbDt0aGlzLnRhcmdldElkPTNEbnVsbDt0aGlzPQoudGV4dENv bG9yO3RoaXMudGl0bGU9M0RuZXcgeSgpO3RoaXMuX2RyYXdDb3VudD0zRDA7dGhpcy5fc3VteT0z RDA7dGhpcy5fc3U9Cm14PTNEMDt0aGlzLl9zdGFja0RhdGE9M0RbXTt0aGlzLl9wbG90RGF0YT0z RFtdO3RoaXMuX3dpZHRoPTNEbnVsbDt0aGlzLl9oZT0KaWdodD0zRG51bGw7dGhpcy5fcGxvdERp bWVuc2lvbnM9M0R7aGVpZ2h0Om51bGwsd2lkdGg6bnVsbH07dGhpcy5fZ3JpZFBhZGRpPQpuZz0z RHt0b3A6bnVsbCxyaWdodDpudWxsLGJvdHRvbTpudWxsLGxlZnQ6bnVsbH07dGhpcy5fZGVmYXVs dEdyaWRQYWRkaW5nPQo9M0R7dG9wOjEwLHJpZ2h0OjEwLGJvdHRvbToyMyxsZWZ0OjEwfTt0aGlz Ll9hZGREb21SZWZlcmVuY2U9M0RMLmpxcGxvdC5jb249CmZpZy5hZGREb21SZWZlcmVuY2U7dGhp cy5wcmVJbml0SG9va3M9M0RuZXcgTC5qcXBsb3QuSG9va3NNYW5hZ2VyKCk7dGhpcy5wbz0Kc3RJ bml0SG9va3M9M0RuZXcgTC5qcXBsb3QuSG9va3NNYW5hZ2VyKCk7dGhpcy5wcmVQYXJzZU9wdGlv bnNIb29rcz0zRG5ldyBMPQouanFwbG90Lkhvb2tzTWFuYWdlcigpO3RoaXMucG9zdFBhcnNlT3B0 aW9uc0hvb2tzPTNEbmV3IEwuanFwbG90Lkhvb2tzTWFuYWc9CmVyKCk7dGhpcy5wcmVEcmF3SG9v a3M9M0RuZXcgTC5qcXBsb3QuSG9va3NNYW5hZ2VyKCk7dGhpcy5wb3N0RHJhd0hvb2tzPTNEbj0K ZXcgTC5qcXBsb3QuSG9va3NNYW5hZ2VyKCk7dGhpcy5wcmVEcmF3U2VyaWVzSG9va3M9M0RuZXcg TC5qcXBsb3QuSG9va3NNYW5hPQpnZXIoKTt0aGlzLnBvc3REcmF3U2VyaWVzSG9va3M9M0RuZXcg TC5qcXBsb3QuSG9va3NNYW5hZ2VyKCk7dGhpcy5wcmVEcmF3TGU9CmdlbmRIb29rcz0zRG5ldyBM LmpxcGxvdC5Ib29rc01hbmFnZXIoKTt0aGlzLmFkZExlZ2VuZFJvd0hvb2tzPTNEbmV3IEwuanFw bD0Kb3QuSG9va3NNYW5hZ2VyKCk7dGhpcy5wcmVTZXJpZXNJbml0SG9va3M9M0RuZXcgTC5qcXBs b3QuSG9va3NNYW5hZ2VyKCk7dGhpPQpzLnBvc3RTZXJpZXNJbml0SG9va3M9M0RuZXcgTC5qcXBs b3QuSG9va3NNYW5hZ2VyKCk7dGhpcy5wcmVQYXJzZVNlcmllc09wdGk9Cm9uc0hvb2tzPTNEbmV3 IEwuanFwbG90Lkhvb2tzTWFuYWdlcigpO3RoaXMucG9zdFBhcnNlU2VyaWVzT3B0aW9uc0hvb2tz PTNEbj0KZXcgTC5qcXBsb3QuSG9va3NNYW5hZ2VyKCk7dGhpcy5ldmVudExpc3RlbmVySG9va3M9 M0RuZXcgTC5qcXBsb3QuRXZlbnRMaXN0PQplbmVyTWFuYWdlcigpO3RoaXMucHJlRHJhd1Nlcmll c1NoYWRvd0hvb2tzPTNEbmV3IEwuanFwbG90Lkhvb2tzTWFuYWdlcigpO3Q9Cmhpcy5wb3N0RHJh d1Nlcmllc1NoYWRvd0hvb2tzPTNEbmV3IEwuanFwbG90Lkhvb2tzTWFuYWdlcigpO3RoaXMuY29s b3JHZW5lcj0KYXRvcj0zRG5ldyBMLmpxcGxvdC5Db2xvckdlbmVyYXRvcigpO3RoaXMubmVnYXRp dmVDb2xvckdlbmVyYXRvcj0zRG5ldyBMLmpxPQpwbG90LkNvbG9yR2VuZXJhdG9yKCk7dGhpcy5j YW52YXNNYW5hZ2VyPTNEbmV3IEwuanFwbG90LkNhbnZhc01hbmFnZXIoKTt0aGk9CnMudGhlbWVF bmdpbmU9M0RuZXcgTC5qcXBsb3QuVGhlbWVFbmdpbmUoKTt2YXIgYWo9M0QwO3RoaXMuaW5pdD0z RGZ1bmN0aW9uKD0KYXYsYXIsYXkpe2F5PTNEYXl8fHt9O2Zvcih2YXIgYXQ9M0QwO2F0PEwuanFw bG90LnByZUluaXRIb29rcy5sZW5ndGg7YXQrKyl7PQpMLmpxcGxvdC5wcmVJbml0SG9va3NbYXRd LmNhbGwodGhpcyxhdixhcixheSl9Zm9yKHZhciBhdD0zRDA7YXQ8dGhpcy5wcmVJbmk9CnRIb29r cy5ob29rcy5sZW5ndGg7YXQrKyl7dGhpcy5wcmVJbml0SG9va3MuaG9va3NbYXRdLmNhbGwodGhp cyxhdixhcixheSl9dD0KaGlzLnRhcmdldElkPTNEIiMiK2F2O3RoaXMudGFyZ2V0PTNETCgiIyIr YXYpO2lmKHRoaXMuX2FkZERvbVJlZmVyZW5jZSl7dGhpPQpzLnRhcmdldC5kYXRhKCJqcXBsb3Qi LHRoaXMpfXRoaXMudGFyZ2V0LnJlbW92ZUNsYXNzKCJqcXBsb3QtZXJyb3IiKTtpZighdGg9Cmlz LnRhcmdldC5nZXQoMCkpe3Rocm93IG5ldyBFcnJvcigiTm8gcGxvdCB0YXJnZXQgc3BlY2lmaWVk Iil9aWYodGhpcy50YXJnZT0KdC5jc3MoInBvc2l0aW9uIik9M0Q9M0Qic3RhdGljIil7dGhpcy50 YXJnZXQuY3NzKCJwb3NpdGlvbiIsInJlbGF0aXZlIil9aWYoPQohdGhpcy50YXJnZXQuaGFzQ2xh c3MoImpxcGxvdC10YXJnZXQiKSl7dGhpcy50YXJnZXQuYWRkQ2xhc3MoImpxcGxvdC10YXJnZXQ9 CiIpfWlmKCF0aGlzLnRhcmdldC5oZWlnaHQoKSl7dmFyIGF1O2lmKGF5JiZheS5oZWlnaHQpe2F1 PTNEcGFyc2VJbnQoYXkuaGVpZz0KaHQsMTApfWVsc2V7aWYodGhpcy50YXJnZXQuYXR0cigiZGF0 YS1oZWlnaHQiKSl7YXU9M0RwYXJzZUludCh0aGlzLnRhcmdldC5hPQp0dHIoImRhdGEtaGVpZ2h0 IiksMTApfWVsc2V7YXU9M0RwYXJzZUludChMLmpxcGxvdC5jb25maWcuZGVmYXVsdEhlaWdodCwx MCk9Cn19dGhpcy5faGVpZ2h0PTNEYXU7dGhpcy50YXJnZXQuY3NzKCJoZWlnaHQiLGF1KyJweCIp fWVsc2V7dGhpcy5faGVpZ2h0PTNEYT0KdT0zRHRoaXMudGFyZ2V0LmhlaWdodCgpfWlmKCF0aGlz LnRhcmdldC53aWR0aCgpKXt2YXIgYXc7aWYoYXkmJmF5LndpZHRoKXthPQp3PTNEcGFyc2VJbnQo YXkud2lkdGgsMTApfWVsc2V7aWYodGhpcy50YXJnZXQuYXR0cigiZGF0YS13aWR0aCIpKXthdz0z RHBhcnM9CmVJbnQodGhpcy50YXJnZXQuYXR0cigiZGF0YS13aWR0aCIpLDEwKX1lbHNle2F3PTNE cGFyc2VJbnQoTC5qcXBsb3QuY29uZmlnLj0KZGVmYXVsdFdpZHRoLDEwKX19dGhpcy5fd2lkdGg9 M0Rhdzt0aGlzLnRhcmdldC5jc3MoIndpZHRoIixhdysicHgiKX1lbHNle3RoPQppcy5fd2lkdGg9 M0Rhdz0zRHRoaXMudGFyZ2V0LndpZHRoKCl9Zm9yKHZhciBhdD0zRDAsYXA9M0RVLmxlbmd0aDth dDxhcDthdCs9Cispe3RoaXMuYXhlc1tVW2F0XV09M0RuZXcgdyhVW2F0XSl9dGhpcy5fcGxvdERp bWVuc2lvbnMuaGVpZ2h0PTNEdGhpcy5faGVpZz0KaHQ7dGhpcy5fcGxvdERpbWVuc2lvbnMud2lk dGg9M0R0aGlzLl93aWR0aDt0aGlzLmdyaWQuX3Bsb3REaW1lbnNpb25zPTNEdGhpPQpzLl9wbG90 RGltZW5zaW9uczt0aGlzLnRpdGxlLl9wbG90RGltZW5zaW9ucz0zRHRoaXMuX3Bsb3REaW1lbnNp b25zO3RoaXMuYmE9CnNlQ2FudmFzLl9wbG90RGltZW5zaW9ucz0zRHRoaXMuX3Bsb3REaW1lbnNp b25zO3RoaXMuZXZlbnRDYW52YXMuX3Bsb3REaW1lbj0Kc2lvbnM9M0R0aGlzLl9wbG90RGltZW5z aW9uczt0aGlzLmxlZ2VuZC5fcGxvdERpbWVuc2lvbnM9M0R0aGlzLl9wbG90RGltZW5zPQppb25z O2lmKHRoaXMuX2hlaWdodDw9M0QwfHx0aGlzLl93aWR0aDw9M0QwfHwhdGhpcy5faGVpZ2h0fHwh dGhpcy5fd2lkdGgpe3Q9Cmhyb3cgbmV3IEVycm9yKCJDYW52YXMgZGltZW5zaW9uIG5vdCBzZXQi KX1pZihheS5kYXRhUmVuZGVyZXImJkwuaXNGdW5jdGlvbj0KKGF5LmRhdGFSZW5kZXJlcikpe2lm KGF5LmRhdGFSZW5kZXJlck9wdGlvbnMpe3RoaXMuZGF0YVJlbmRlcmVyT3B0aW9ucz0zRGF5PQou ZGF0YVJlbmRlcmVyT3B0aW9uc310aGlzLmRhdGFSZW5kZXJlcj0zRGF5LmRhdGFSZW5kZXJlcjth cj0zRHRoaXMuZGF0YVJlbmQ9CmVyZXIoYXIsdGhpcyx0aGlzLmRhdGFSZW5kZXJlck9wdGlvbnMp fWlmKGF5Lm5vRGF0YUluZGljYXRvciYmTC5pc1BsYWluT2JqZT0KY3QoYXkubm9EYXRhSW5kaWNh dG9yKSl7TC5leHRlbmQodHJ1ZSx0aGlzLm5vRGF0YUluZGljYXRvcixheS5ub0RhdGFJbmRpY2F0 PQpvcil9aWYoYXI9M0Q9M0RudWxsfHxMLmlzQXJyYXkoYXIpPTNEPTNEZmFsc2V8fGFyLmxlbmd0 aD0zRD0zRDB8fEwuaXNBcnJheSg9CmFyWzBdKT0zRD0zRGZhbHNlfHxhclswXS5sZW5ndGg9M0Q9 M0QwKXtpZih0aGlzLm5vRGF0YUluZGljYXRvci5zaG93PTNEPTNEZj0KYWxzZSl7dGhyb3cgbmV3 IEVycm9yKCJObyBkYXRhIHNwZWNpZmllZCIpfWVsc2V7Zm9yKHZhciBhbCBpbiB0aGlzLm5vRGF0 YUluPQpkaWNhdG9yLmF4ZXMpe2Zvcih2YXIgYW4gaW4gdGhpcy5ub0RhdGFJbmRpY2F0b3IuYXhl c1thbF0pe3RoaXMuYXhlc1thbF1bYW49Cl09M0R0aGlzLm5vRGF0YUluZGljYXRvci5heGVzW2Fs XVthbl19fXRoaXMucG9zdERyYXdIb29rcy5hZGQoZnVuY3Rpb24oKXt2YT0KciBhRD0zRHRoaXMu ZXZlbnRDYW52YXMuZ2V0SGVpZ2h0KCk7dmFyIGFBPTNEdGhpcy5ldmVudENhbnZhcy5nZXRXaWR0 aCgpO3ZhPQpyIGF6PTNETCgnPGRpdiBjbGFzcz0zRCJqcXBsb3Qtbm9EYXRhLWNvbnRhaW5lciIg c3R5bGU9M0QicG9zaXRpb246YWJzb2x1dGU9CjsiPjwvZGl2PicpO3RoaXMudGFyZ2V0LmFwcGVu ZChheik7YXouaGVpZ2h0KGFEKTthei53aWR0aChhQSk7YXouY3NzKCJ0b3AiLD0KdGhpcy5ldmVu dENhbnZhcy5fb2Zmc2V0cy50b3ApO2F6LmNzcygibGVmdCIsdGhpcy5ldmVudENhbnZhcy5fb2Zm c2V0cy5sZWZ0PQopO3ZhciBhQz0zREwoJzxkaXYgY2xhc3M9M0QianFwbG90LW5vRGF0YS1jb250 ZW50cyIgc3R5bGU9M0QidGV4dC1hbGlnbjpjZW49CnRlcjsgcG9zaXRpb246cmVsYXRpdmU7IG1h cmdpbi1sZWZ0OmF1dG87IG1hcmdpbi1yaWdodDphdXRvOyI+PC9kaXY+Jyk7YXouYT0KcHBlbmQo YUMpO2FDLmh0bWwodGhpcy5ub0RhdGFJbmRpY2F0b3IuaW5kaWNhdG9yKTt2YXIgYUI9M0RhQy5o ZWlnaHQoKTt2YXIgPQpheD0zRGFDLndpZHRoKCk7YUMuaGVpZ2h0KGFCKTthQy53aWR0aChheCk7 YUMuY3NzKCJ0b3AiLChhRC1hQikvMisicHgiKX0pfX09CnRoaXMuZGF0YT0zREwuZXh0ZW5kKHRy dWUsW10sYXIpO3RoaXMucGFyc2VPcHRpb25zKGF5KTtpZih0aGlzLnRleHRDb2xvcil7dD0KaGlz LnRhcmdldC5jc3MoImNvbG9yIix0aGlzLnRleHRDb2xvcil9aWYodGhpcy5mb250RmFtaWx5KXt0 aGlzLnRhcmdldC5jc3MoPQoiZm9udC1mYW1pbHkiLHRoaXMuZm9udEZhbWlseSl9aWYodGhpcy5m b250U2l6ZSl7dGhpcy50YXJnZXQuY3NzKCJmb250LXNpemU9CiIsdGhpcy5mb250U2l6ZSl9dGhp cy50aXRsZS5pbml0KCk7dGhpcy5sZWdlbmQuaW5pdCgpO3RoaXMuX3N1bXk9M0QwO3RoaXMuXz0K c3VteD0zRDA7dGhpcy5jb21wdXRlUGxvdERhdGEoKTtmb3IodmFyIGF0PTNEMDthdDx0aGlzLnNl cmllcy5sZW5ndGg7YXQrKyl7PQp0aGlzLnNlcmllc1N0YWNrLnB1c2goYXQpO3RoaXMucHJldmlv dXNTZXJpZXNTdGFjay5wdXNoKGF0KTt0aGlzLnNlcmllc1thdF09Ci5zaGFkb3dDYW52YXMuX3Bs b3REaW1lbnNpb25zPTNEdGhpcy5fcGxvdERpbWVuc2lvbnM7dGhpcy5zZXJpZXNbYXRdLmNhbnZh cz0KLl9wbG90RGltZW5zaW9ucz0zRHRoaXMuX3Bsb3REaW1lbnNpb25zO2Zvcih2YXIgYXE9M0Qw O2FxPEwuanFwbG90LnByZVNlcmllPQpzSW5pdEhvb2tzLmxlbmd0aDthcSsrKXtMLmpxcGxvdC5w cmVTZXJpZXNJbml0SG9va3NbYXFdLmNhbGwodGhpcy5zZXJpZXNbYXQ9Cl0sYXYsdGhpcy5kYXRh LHRoaXMub3B0aW9ucy5zZXJpZXNEZWZhdWx0cyx0aGlzLm9wdGlvbnMuc2VyaWVzW2F0XSx0aGlz KX1mbz0Kcih2YXIgYXE9M0QwO2FxPHRoaXMucHJlU2VyaWVzSW5pdEhvb2tzLmhvb2tzLmxlbmd0 aDthcSsrKXt0aGlzLnByZVNlcmllc0luPQppdEhvb2tzLmhvb2tzW2FxXS5jYWxsKHRoaXMuc2Vy aWVzW2F0XSxhdix0aGlzLmRhdGEsdGhpcy5vcHRpb25zLnNlcmllc0RlZmE9CnVsdHMsdGhpcy5v cHRpb25zLnNlcmllc1thdF0sdGhpcyl9dGhpcy5zZXJpZXNbYXRdLl9wbG90RGltZW5zaW9ucz0z RHRoaXMuXz0KcGxvdERpbWVuc2lvbnM7dGhpcy5zZXJpZXNbYXRdLmluaXQoYXQsdGhpcy5ncmlk LmJvcmRlcldpZHRoLHRoaXMpO2Zvcih2YXIgPQphcT0zRDA7YXE8TC5qcXBsb3QucG9zdFNlcmll c0luaXRIb29rcy5sZW5ndGg7YXErKyl7TC5qcXBsb3QucG9zdFNlcmllc0luaXQ9Ckhvb2tzW2Fx XS5jYWxsKHRoaXMuc2VyaWVzW2F0XSxhdix0aGlzLmRhdGEsdGhpcy5vcHRpb25zLnNlcmllc0Rl ZmF1bHRzLHRoaT0Kcy5vcHRpb25zLnNlcmllc1thdF0sdGhpcyl9Zm9yKHZhciBhcT0zRDA7YXE8 dGhpcy5wb3N0U2VyaWVzSW5pdEhvb2tzLmhvb2tzPQoubGVuZ3RoO2FxKyspe3RoaXMucG9zdFNl cmllc0luaXRIb29rcy5ob29rc1thcV0uY2FsbCh0aGlzLnNlcmllc1thdF0sYXYsdGg9CmlzLmRh dGEsdGhpcy5vcHRpb25zLnNlcmllc0RlZmF1bHRzLHRoaXMub3B0aW9ucy5zZXJpZXNbYXRdLHRo aXMpfXRoaXMuX3N1bT0KeSs9M0R0aGlzLnNlcmllc1thdF0uX3N1bXk7dGhpcy5fc3VteCs9M0R0 aGlzLnNlcmllc1thdF0uX3N1bXh9dmFyIGFtLGFvO2ZvPQpyKHZhciBhdD0zRDAsYXA9M0RVLmxl bmd0aDthdDxhcDthdCsrKXthbT0zRFVbYXRdO2FvPTNEdGhpcy5heGVzW2FtXTthby5fcGw9Cm90 RGltZW5zaW9ucz0zRHRoaXMuX3Bsb3REaW1lbnNpb25zO2FvLmluaXQoKTtpZih0aGlzLmF4ZXNb YW1dLmJvcmRlckNvbG9yPQo9M0Q9M0RudWxsKXtpZihhbS5jaGFyQXQoMCkhPTNEPTNEIngiJiZh by51c2VTZXJpZXNDb2xvcj0zRD0zRD0zRHRydWUmJmFvLnM9Cmhvdyl7YW8uYm9yZGVyQ29sb3I9 M0Rhby5fc2VyaWVzWzBdLmNvbG9yfWVsc2V7YW8uYm9yZGVyQ29sb3I9M0R0aGlzLmdyaWQuYj0K b3JkZXJDb2xvcn19fWlmKHRoaXMuc29ydERhdGEpe2FoKHRoaXMuc2VyaWVzKX10aGlzLmdyaWQu aW5pdCgpO3RoaXMuZ3JpZC5fPQpheGVzPTNEdGhpcy5heGVzO3RoaXMubGVnZW5kLl9zZXJpZXM9 M0R0aGlzLnNlcmllcztmb3IodmFyIGF0PTNEMDthdDxMLmpxcGw9Cm90LnBvc3RJbml0SG9va3Mu bGVuZ3RoO2F0Kyspe0wuanFwbG90LnBvc3RJbml0SG9va3NbYXRdLmNhbGwodGhpcyxhdix0aGlz Lj0KZGF0YSxheSl9Zm9yKHZhciBhdD0zRDA7YXQ8dGhpcy5wb3N0SW5pdEhvb2tzLmhvb2tzLmxl bmd0aDthdCsrKXt0aGlzLnBvc3RJPQpuaXRIb29rcy5ob29rc1thdF0uY2FsbCh0aGlzLGF2LHRo aXMuZGF0YSxheSl9fTt0aGlzLnJlc2V0QXhlc1NjYWxlPTNEZnVuY3Q9CmlvbihhcSxhbSl7dmFy IGFvPTNEYW18fHt9O3ZhciBhcD0zRGFxfHx0aGlzLmF4ZXM7aWYoYXA9M0Q9M0Q9M0R0cnVlKXth cD0zRD0KdGhpcy5heGVzfWlmKEwuaXNBcnJheShhcCkpe2Zvcih2YXIgYW49M0QwO2FuPGFwLmxl bmd0aDthbisrKXt0aGlzLmF4ZXNbYXBbPQphbl1dLnJlc2V0U2NhbGUoYW9bYXBbYW5dXSl9fWVs c2V7aWYodHlwZW9mKGFwKT0zRD0zRD0zRCJvYmplY3QiKXtmb3IodmFyIGE9CmwgaW4gYXApe3Ro aXMuYXhlc1thbF0ucmVzZXRTY2FsZShhb1thbF0pfX19fTt0aGlzLnJlSW5pdGlhbGl6ZT0zRGZ1 bmN0aW9uKD0KYXUsYWwpe3ZhciBheT0zREwuZXh0ZW5kKHRydWUse30sdGhpcy5vcHRpb25zLGFs KTt2YXIgYXc9M0R0aGlzLnRhcmdldElkLnN1PQpic3RyKDEpO3ZhciBhcj0zRChhdT0zRD0zRG51 bGwpP3RoaXMuZGF0YTphdTtmb3IodmFyIGF2PTNEMDthdjxMLmpxcGxvdC5wcmU9CkluaXRIb29r cy5sZW5ndGg7YXYrKyl7TC5qcXBsb3QucHJlSW5pdEhvb2tzW2F2XS5jYWxsKHRoaXMsYXcsYXIs YXkpfWZvcih2YT0KciBhdj0zRDA7YXY8dGhpcy5wcmVJbml0SG9va3MuaG9va3MubGVuZ3RoO2F2 Kyspe3RoaXMucHJlSW5pdEhvb2tzLmhvb2tzW2F2PQpdLmNhbGwodGhpcyxhdyxhcixheSl9dGhp cy5faGVpZ2h0PTNEdGhpcy50YXJnZXQuaGVpZ2h0KCk7dGhpcy5fd2lkdGg9M0R0aGk9CnMudGFy Z2V0LndpZHRoKCk7aWYodGhpcy5faGVpZ2h0PD0zRDB8fHRoaXMuX3dpZHRoPD0zRDB8fCF0aGlz Ll9oZWlnaHR8fCF0aD0KaXMuX3dpZHRoKXt0aHJvdyBuZXcgRXJyb3IoIlRhcmdldCBkaW1lbnNp b24gbm90IHNldCIpfXRoaXMuX3Bsb3REaW1lbnNpb25zPQouaGVpZ2h0PTNEdGhpcy5faGVpZ2h0 O3RoaXMuX3Bsb3REaW1lbnNpb25zLndpZHRoPTNEdGhpcy5fd2lkdGg7dGhpcy5ncmlkLl89CnBs b3REaW1lbnNpb25zPTNEdGhpcy5fcGxvdERpbWVuc2lvbnM7dGhpcy50aXRsZS5fcGxvdERpbWVu c2lvbnM9M0R0aGlzLl9wbD0Kb3REaW1lbnNpb25zO3RoaXMuYmFzZUNhbnZhcy5fcGxvdERpbWVu c2lvbnM9M0R0aGlzLl9wbG90RGltZW5zaW9uczt0aGlzLmV2PQplbnRDYW52YXMuX3Bsb3REaW1l bnNpb25zPTNEdGhpcy5fcGxvdERpbWVuc2lvbnM7dGhpcy5sZWdlbmQuX3Bsb3REaW1lbnNpb249 CnM9M0R0aGlzLl9wbG90RGltZW5zaW9uczt2YXIgYW0sYXgsYXQsYW87Zm9yKHZhciBhdj0zRDAs YXE9M0RVLmxlbmd0aDthdjxhcT0KO2F2Kyspe2FtPTNEVVthdl07YW89M0R0aGlzLmF4ZXNbYW1d O2F4PTNEYW8uX3RpY2tzO2Zvcih2YXIgYXQ9M0QwLGFwPTNEYXguPQpsZW5ndGg7YXQ8YXA7YXQr Kyl7dmFyIGFuPTNEYXhbYXRdLl9lbGVtO2lmKGFuKXtpZihMLmpxcGxvdC51c2VfZXhjYW52YXMm Jnc9CmluZG93Lkdfdm1sQ2FudmFzTWFuYWdlci51bmluaXRFbGVtZW50IT0zRD0zRHUpe3dpbmRv dy5HX3ZtbENhbnZhc01hbmFnZXIudT0KbmluaXRFbGVtZW50KGFuLmdldCgwKSl9YW4uZW1wdHlG b3JjZSgpO2FuPTNEbnVsbDtheC5fZWxlbT0zRG51bGx9fWF4PTNEbnVsPQpsO2RlbGV0ZSBhby50 aWNrcztkZWxldGUgYW8uX3RpY2tzO3RoaXMuYXhlc1thbV09M0RuZXcgdyhhbSk7dGhpcy5heGVz W2FtXS49Cl9wbG90V2lkdGg9M0R0aGlzLl93aWR0aDt0aGlzLmF4ZXNbYW1dLl9wbG90SGVpZ2h0 PTNEdGhpcy5faGVpZ2h0fWlmKGF1KXtpZj0KKGF5LmRhdGFSZW5kZXJlciYmTC5pc0Z1bmN0aW9u KGF5LmRhdGFSZW5kZXJlcikpe2lmKGF5LmRhdGFSZW5kZXJlck9wdGlvbnMpPQp7dGhpcy5kYXRh UmVuZGVyZXJPcHRpb25zPTNEYXkuZGF0YVJlbmRlcmVyT3B0aW9uc310aGlzLmRhdGFSZW5kZXJl cj0zRGF5LmQ9CmF0YVJlbmRlcmVyO2F1PTNEdGhpcy5kYXRhUmVuZGVyZXIoYXUsdGhpcyx0aGlz LmRhdGFSZW5kZXJlck9wdGlvbnMpfXRoaXMuZD0KYXRhPTNETC5leHRlbmQodHJ1ZSxbXSxhdSl9 aWYoYWwpe3RoaXMucGFyc2VPcHRpb25zKGF5KX10aGlzLnRpdGxlLl9wbG90V2lkPQp0aD0zRHRo aXMuX3dpZHRoO2lmKHRoaXMudGV4dENvbG9yKXt0aGlzLnRhcmdldC5jc3MoImNvbG9yIix0aGlz LnRleHRDb2xvcik9Cn1pZih0aGlzLmZvbnRGYW1pbHkpe3RoaXMudGFyZ2V0LmNzcygiZm9udC1m YW1pbHkiLHRoaXMuZm9udEZhbWlseSl9aWYodGhpcz0KLmZvbnRTaXplKXt0aGlzLnRhcmdldC5j c3MoImZvbnQtc2l6ZSIsdGhpcy5mb250U2l6ZSl9dGhpcy50aXRsZS5pbml0KCk7dGhpPQpzLmxl Z2VuZC5pbml0KCk7dGhpcy5fc3VteT0zRDA7dGhpcy5fc3VteD0zRDA7dGhpcy5zZXJpZXNTdGFj az0zRFtdO3RoaXMucHI9CmV2aW91c1Nlcmllc1N0YWNrPTNEW107dGhpcy5jb21wdXRlUGxvdERh dGEoKTtmb3IodmFyIGF2PTNEMCxhcT0zRHRoaXMuc2VyaT0KZXMubGVuZ3RoO2F2PGFxO2F2Kysp e3RoaXMuc2VyaWVzU3RhY2sucHVzaChhdik7dGhpcy5wcmV2aW91c1Nlcmllc1N0YWNrLnB1PQpz aChhdik7dGhpcy5zZXJpZXNbYXZdLnNoYWRvd0NhbnZhcy5fcGxvdERpbWVuc2lvbnM9M0R0aGlz Ll9wbG90RGltZW5zaW9uczs9CnRoaXMuc2VyaWVzW2F2XS5jYW52YXMuX3Bsb3REaW1lbnNpb25z PTNEdGhpcy5fcGxvdERpbWVuc2lvbnM7Zm9yKHZhciBhdD0zRD0KMDthdDxMLmpxcGxvdC5wcmVT ZXJpZXNJbml0SG9va3MubGVuZ3RoO2F0Kyspe0wuanFwbG90LnByZVNlcmllc0luaXRIb29rc1th PQp0XS5jYWxsKHRoaXMuc2VyaWVzW2F2XSxhdyx0aGlzLmRhdGEsdGhpcy5vcHRpb25zLnNlcmll c0RlZmF1bHRzLHRoaXMub3B0aW89Cm5zLnNlcmllc1thdl0sdGhpcyl9Zm9yKHZhciBhdD0zRDA7 YXQ8dGhpcy5wcmVTZXJpZXNJbml0SG9va3MuaG9va3MubGVuZ3RoOz0KYXQrKyl7dGhpcy5wcmVT ZXJpZXNJbml0SG9va3MuaG9va3NbYXRdLmNhbGwodGhpcy5zZXJpZXNbYXZdLGF3LHRoaXMuZGF0 YSx0PQpoaXMub3B0aW9ucy5zZXJpZXNEZWZhdWx0cyx0aGlzLm9wdGlvbnMuc2VyaWVzW2F2XSx0 aGlzKX10aGlzLnNlcmllc1thdl0uX3A9CmxvdERpbWVuc2lvbnM9M0R0aGlzLl9wbG90RGltZW5z aW9uczt0aGlzLnNlcmllc1thdl0uaW5pdChhdix0aGlzLmdyaWQuYm9yZD0KZXJXaWR0aCx0aGlz KTtmb3IodmFyIGF0PTNEMDthdDxMLmpxcGxvdC5wb3N0U2VyaWVzSW5pdEhvb2tzLmxlbmd0aDth dCsrKXtMPQouanFwbG90LnBvc3RTZXJpZXNJbml0SG9va3NbYXRdLmNhbGwodGhpcy5zZXJpZXNb YXZdLGF3LHRoaXMuZGF0YSx0aGlzLm9wdGk9Cm9ucy5zZXJpZXNEZWZhdWx0cyx0aGlzLm9wdGlv bnMuc2VyaWVzW2F2XSx0aGlzKX1mb3IodmFyIGF0PTNEMDthdDx0aGlzLnBvcz0KdFNlcmllc0lu aXRIb29rcy5ob29rcy5sZW5ndGg7YXQrKyl7dGhpcy5wb3N0U2VyaWVzSW5pdEhvb2tzLmhvb2tz W2F0XS5jYWxsPQoodGhpcy5zZXJpZXNbYXZdLGF3LHRoaXMuZGF0YSx0aGlzLm9wdGlvbnMuc2Vy aWVzRGVmYXVsdHMsdGhpcy5vcHRpb25zLnNlcmk9CmVzW2F2XSx0aGlzKX10aGlzLl9zdW15Kz0z RHRoaXMuc2VyaWVzW2F2XS5fc3VteTt0aGlzLl9zdW14Kz0zRHRoaXMuc2VyaWVzWz0KYXZdLl9z dW14fWZvcih2YXIgYXY9M0QwLGFxPTNEVS5sZW5ndGg7YXY8YXE7YXYrKyl7YW09M0RVW2F2XTth bz0zRHRoaXMuYXhlPQpzW2FtXTthby5fcGxvdERpbWVuc2lvbnM9M0R0aGlzLl9wbG90RGltZW5z aW9uczthby5pbml0KCk7aWYoYW8uYm9yZGVyQ29sb3I9Cj0zRD0zRG51bGwpe2lmKGFtLmNoYXJB dCgwKSE9M0Q9M0QieCImJmFvLnVzZVNlcmllc0NvbG9yPTNEPTNEPTNEdHJ1ZSYmYW8ucz0KaG93 KXthby5ib3JkZXJDb2xvcj0zRGFvLl9zZXJpZXNbMF0uY29sb3J9ZWxzZXthby5ib3JkZXJDb2xv cj0zRHRoaXMuZ3JpZC5iPQpvcmRlckNvbG9yfX19aWYodGhpcy5zb3J0RGF0YSl7YWgodGhpcy5z ZXJpZXMpfXRoaXMuZ3JpZC5pbml0KCk7dGhpcy5ncmlkLl89CmF4ZXM9M0R0aGlzLmF4ZXM7dGhp cy5sZWdlbmQuX3Nlcmllcz0zRHRoaXMuc2VyaWVzO2Zvcih2YXIgYXY9M0QwLGFxPTNETC5qcT0K cGxvdC5wb3N0SW5pdEhvb2tzLmxlbmd0aDthdjxhcTthdisrKXtMLmpxcGxvdC5wb3N0SW5pdEhv b2tzW2F2XS5jYWxsKHRoaXMsPQphdyx0aGlzLmRhdGEsYXkpfWZvcih2YXIgYXY9M0QwLGFxPTNE dGhpcy5wb3N0SW5pdEhvb2tzLmhvb2tzLmxlbmd0aDthdjxhcTs9CmF2Kyspe3RoaXMucG9zdElu aXRIb29rcy5ob29rc1thdl0uY2FsbCh0aGlzLGF3LHRoaXMuZGF0YSxheSl9fTt0aGlzLnF1aWNr ST0Kbml0PTNEZnVuY3Rpb24oKXt0aGlzLl9oZWlnaHQ9M0R0aGlzLnRhcmdldC5oZWlnaHQoKTt0 aGlzLl93aWR0aD0zRHRoaXMudGFyPQpnZXQud2lkdGgoKTtpZih0aGlzLl9oZWlnaHQ8PTNEMHx8 dGhpcy5fd2lkdGg8PTNEMHx8IXRoaXMuX2hlaWdodHx8IXRoaXMuX3c9CmlkdGgpe3Rocm93IG5l dyBFcnJvcigiVGFyZ2V0IGRpbWVuc2lvbiBub3Qgc2V0Iil9dGhpcy5fcGxvdERpbWVuc2lvbnMu aGVpZz0KaHQ9M0R0aGlzLl9oZWlnaHQ7dGhpcy5fcGxvdERpbWVuc2lvbnMud2lkdGg9M0R0aGlz Ll93aWR0aDt0aGlzLmdyaWQuX3Bsb3REPQppbWVuc2lvbnM9M0R0aGlzLl9wbG90RGltZW5zaW9u czt0aGlzLnRpdGxlLl9wbG90RGltZW5zaW9ucz0zRHRoaXMuX3Bsb3REaW09CmVuc2lvbnM7dGhp cy5iYXNlQ2FudmFzLl9wbG90RGltZW5zaW9ucz0zRHRoaXMuX3Bsb3REaW1lbnNpb25zO3RoaXMu ZXZlbnRDYT0KbnZhcy5fcGxvdERpbWVuc2lvbnM9M0R0aGlzLl9wbG90RGltZW5zaW9uczt0aGlz LmxlZ2VuZC5fcGxvdERpbWVuc2lvbnM9M0R0PQpoaXMuX3Bsb3REaW1lbnNpb25zO2Zvcih2YXIg YXEgaW4gdGhpcy5heGVzKXt0aGlzLmF4ZXNbYXFdLl9wbG90V2lkdGg9M0R0aGk9CnMuX3dpZHRo O3RoaXMuYXhlc1thcV0uX3Bsb3RIZWlnaHQ9M0R0aGlzLl9oZWlnaHR9dGhpcy50aXRsZS5fcGxv dFdpZHRoPTNEdD0KaGlzLl93aWR0aDtpZih0aGlzLnRleHRDb2xvcil7dGhpcy50YXJnZXQuY3Nz KCJjb2xvciIsdGhpcy50ZXh0Q29sb3IpfWlmKHRoPQppcy5mb250RmFtaWx5KXt0aGlzLnRhcmdl dC5jc3MoImZvbnQtZmFtaWx5Iix0aGlzLmZvbnRGYW1pbHkpfWlmKHRoaXMuZm9udFM9Cml6ZSl7 dGhpcy50YXJnZXQuY3NzKCJmb250LXNpemUiLHRoaXMuZm9udFNpemUpfXRoaXMuX3N1bXk9M0Qw O3RoaXMuX3N1bXg9Cj0zRDA7dGhpcy5jb21wdXRlUGxvdERhdGEoKTtmb3IodmFyIGFvPTNEMDth bzx0aGlzLnNlcmllcy5sZW5ndGg7YW8rKyl7aWYodD0KaGlzLnNlcmllc1thb10uX3R5cGU9M0Q9 M0Q9M0QibGluZSImJnRoaXMuc2VyaWVzW2FvXS5yZW5kZXJlci5iYW5kcy5zaG93KXt0PQpoaXMu c2VyaWVzW2FvXS5yZW5kZXJlci5pbml0QmFuZHMuY2FsbCh0aGlzLnNlcmllc1thb10sdGhpcy5z ZXJpZXNbYW9dLnJlbmQ9CmVyZXIub3B0aW9ucyx0aGlzKX10aGlzLnNlcmllc1thb10uX3Bsb3RE aW1lbnNpb25zPTNEdGhpcy5fcGxvdERpbWVuc2lvbnM7dD0KaGlzLnNlcmllc1thb10uY2FudmFz Ll9wbG90RGltZW5zaW9ucz0zRHRoaXMuX3Bsb3REaW1lbnNpb25zO3RoaXMuX3N1bXkrPTNEPQp0 aGlzLnNlcmllc1thb10uX3N1bXk7dGhpcy5fc3VteCs9M0R0aGlzLnNlcmllc1thb10uX3N1bXh9 dmFyIGFtO2Zvcih2YXIgYWw9Cj0zRDA7YWw8MTI7YWwrKyl7YW09M0RVW2FsXTt2YXIgYW49M0R0 aGlzLmF4ZXNbYW1dLl90aWNrcztmb3IodmFyIGFvPTNEMDthbz0KPGFuLmxlbmd0aDthbysrKXt2 YXIgYXA9M0Rhblthb10uX2VsZW07aWYoYXApe2lmKEwuanFwbG90LnVzZV9leGNhbnZhcyYmd2lu PQpkb3cuR192bWxDYW52YXNNYW5hZ2VyLnVuaW5pdEVsZW1lbnQhPTNEPTNEdSl7d2luZG93Lkdf dm1sQ2FudmFzTWFuYWdlci51bmk9Cm5pdEVsZW1lbnQoYXAuZ2V0KDApKX1hcC5lbXB0eUZvcmNl KCk7YXA9M0RudWxsO2FuLl9lbGVtPTNEbnVsbH19YW49M0RudWxsOz0KdGhpcy5heGVzW2FtXS5f cGxvdERpbWVuc2lvbnM9M0R0aGlzLl9wbG90RGltZW5zaW9uczt0aGlzLmF4ZXNbYW1dLl90aWNr cz0KPTNEW119aWYodGhpcy5zb3J0RGF0YSl7YWgodGhpcy5zZXJpZXMpfXRoaXMuZ3JpZC5fYXhl cz0zRHRoaXMuYXhlczt0aGlzLmxlPQpnZW5kLl9zZXJpZXM9M0R0aGlzLnNlcmllc307ZnVuY3Rp b24gYWgoYXApe3ZhciBhdSxhdixhdyxhbCxhdDtmb3IodmFyIGFxPQo9M0QwO2FxPGFwLmxlbmd0 aDthcSsrKXt2YXIgYW07dmFyIGFyPTNEW2FwW2FxXS5kYXRhLGFwW2FxXS5fc3RhY2tEYXRhLGFw W2E9CnFdLl9wbG90RGF0YSxhcFthcV0uX3ByZXZQbG90RGF0YV07Zm9yKHZhciBhbj0zRDA7YW48 NDthbisrKXthbT0zRHRydWU7YXU9Cj0zRGFyW2FuXTtpZihhcFthcV0uX3N0YWNrQXhpcz0zRD0z RCJ4Iil7Zm9yKHZhciBhbz0zRDA7YW88YXUubGVuZ3RoO2FvKyspez0KaWYodHlwZW9mKGF1W2Fv XVsxXSkhPTNEIm51bWJlciIpe2FtPTNEZmFsc2U7YnJlYWt9fWlmKGFtKXthdS5zb3J0KGZ1bmN0 aW9uPQooYXksYXgpe3JldHVybiBheVsxXS1heFsxXX0pfX1lbHNle2Zvcih2YXIgYW89M0QwO2Fv PGF1Lmxlbmd0aDthbysrKXtpZih0eXA9CmVvZihhdVthb11bMF0pIT0zRCJudW1iZXIiKXthbT0z RGZhbHNlO2JyZWFrfX1pZihhbSl7YXUuc29ydChmdW5jdGlvbihheSxheD0KKXtyZXR1cm4gYXlb MF0tYXhbMF19KX19fX19dGhpcy5jb21wdXRlUGxvdERhdGE9M0RmdW5jdGlvbigpe3RoaXMuX3Bs b3REYXRhPQo9M0RbXTt0aGlzLl9zdGFja0RhdGE9M0RbXTt2YXIgYXQsYXUsYW87Zm9yKGF1PTNE MCxhbz0zRHRoaXMuc2VyaWVzLmxlbmd0aDs9CmF1PGFvO2F1Kyspe2F0PTNEdGhpcy5zZXJpZXNb YXVdO3RoaXMuX3Bsb3REYXRhLnB1c2goW10pO3RoaXMuX3N0YWNrRGF0YS5wdT0Kc2goW10pO3Zh ciBhbT0zRGF0LmRhdGE7dGhpcy5fcGxvdERhdGFbYXVdPTNETC5leHRlbmQodHJ1ZSxbXSxhbSk7 dGhpcy5fc3RhPQpja0RhdGFbYXVdPTNETC5leHRlbmQodHJ1ZSxbXSxhbSk7YXQuX3Bsb3REYXRh PTNEdGhpcy5fcGxvdERhdGFbYXVdO2F0Ll9zdGE9CmNrRGF0YT0zRHRoaXMuX3N0YWNrRGF0YVth dV07dmFyIGF4PTNEe3g6W10seTpbXX07aWYodGhpcy5zdGFja1NlcmllcyYmIWF0Lj0KZGlzYWJs ZVN0YWNrKXthdC5fc3RhY2s9M0R0cnVlO3ZhciBhdj0zRChhdC5fc3RhY2tBeGlzPTNEPTNEPTNE IngiKT8wOjE7Zm9yPQoodmFyIGFwPTNEMCxhbD0zRGFtLmxlbmd0aDthcDxhbDthcCsrKXt2YXIg YXc9M0RhbVthcF1bYXZdO2lmKGF3PTNEPTNEbnVsbCk9Cnthdz0zRDB9dGhpcy5fcGxvdERhdGFb YXVdW2FwXVthdl09M0Rhdzt0aGlzLl9zdGFja0RhdGFbYXVdW2FwXVthdl09M0RhdztpZj0KKGF1 PjApe2Zvcih2YXIgYXE9M0RhdTthcS0tOyl7dmFyIGFuPTNEdGhpcy5fcGxvdERhdGFbYXFdW2Fw XVthdl07aWYoYXcqYW4+PQo9M0QwKXt0aGlzLl9wbG90RGF0YVthdV1bYXBdW2F2XSs9M0Rhbjt0 aGlzLl9zdGFja0RhdGFbYXVdW2FwXVthdl0rPTNEYW47YnI9CmVha319fX19ZWxzZXtmb3IodmFy IGFyPTNEMDthcjxhdC5kYXRhLmxlbmd0aDthcisrKXtheC54LnB1c2goYXQuZGF0YVthcl1bMD0K XSk7YXgueS5wdXNoKGF0LmRhdGFbYXJdWzFdKX10aGlzLl9zdGFja0RhdGEucHVzaChhdC5kYXRh KTt0aGlzLnNlcmllc1thdV0uPQpfc3RhY2tEYXRhPTNEYXQuZGF0YTt0aGlzLl9wbG90RGF0YS5w dXNoKGF0LmRhdGEpO2F0Ll9wbG90RGF0YT0zRGF0LmRhdGE7YXQ9Ci5fcGxvdFZhbHVlcz0zRGF4 fWlmKGF1PjApe2F0Ll9wcmV2UGxvdERhdGE9M0R0aGlzLnNlcmllc1thdS0xXS5fcGxvdERhdGF9 YT0KdC5fc3VteT0zRDA7YXQuX3N1bXg9M0QwO2Zvcihhcj0zRGF0LmRhdGEubGVuZ3RoLTE7YXI+ LTE7YXItLSl7YXQuX3N1bXkrPTNEPQphdC5kYXRhW2FyXVsxXTthdC5fc3VteCs9M0RhdC5kYXRh W2FyXVswXX19fTt0aGlzLnBvcHVsYXRlUGxvdERhdGE9M0RmdW5jdGk9Cm9uKGF1LGF2KXt0aGlz Ll9wbG90RGF0YT0zRFtdO3RoaXMuX3N0YWNrRGF0YT0zRFtdO2F1Ll9zdGFja0RhdGE9M0RbXTth dS5fcD0KbG90RGF0YT0zRFtdO3ZhciBheT0zRHt4OltdLHk6W119O2lmKHRoaXMuc3RhY2tTZXJp ZXMmJiFhdS5kaXNhYmxlU3RhY2spe2F1PQouX3N0YWNrPTNEdHJ1ZTt2YXIgYXg9M0QoYXUuX3N0 YWNrQXhpcz0zRD0zRD0zRCJ4Iik/MDoxO3ZhciBhej0zREwuZXh0ZW5kKHQ9CnJ1ZSxbXSxhdS5k YXRhKTt2YXIgYUE9M0RMLmV4dGVuZCh0cnVlLFtdLGF1LmRhdGEpO3ZhciBhbixhbSxhbyxhdyxh bDtmb3Iodj0KYXIgYXI9M0QwO2FyPGF2O2FyKyspe3ZhciBhcD0zRHRoaXMuc2VyaWVzW2FyXS5k YXRhO2Zvcih2YXIgYXE9M0QwO2FxPGFwLmxlPQpuZ3RoO2FxKyspe2FvPTNEYXBbYXFdO2FuPTNE KGFvWzBdIT0zRG51bGwpP2FvWzBdOjA7YW09M0QoYW9bMV0hPTNEbnVsbCk/YW89ClsxXTowO2F6 W2FxXVswXSs9M0RhbjthelthcV1bMV0rPTNEYW07YXc9M0QoYXgpP2FtOmFuO2lmKGF1LmRhdGFb YXFdW2F4XSphdz0KPj0zRDApe2FBW2FxXVtheF0rPTNEYXd9fX1mb3IodmFyIGF0PTNEMDthdDxh QS5sZW5ndGg7YXQrKyl7YXkueC5wdXNoKGFBW2F0PQpdWzBdKTtheS55LnB1c2goYUFbYXRdWzFd KX10aGlzLl9wbG90RGF0YS5wdXNoKGFBKTt0aGlzLl9zdGFja0RhdGEucHVzaChheik9CjthdS5f c3RhY2tEYXRhPTNEYXo7YXUuX3Bsb3REYXRhPTNEYUE7YXUuX3Bsb3RWYWx1ZXM9M0RheX1lbHNl e2Zvcih2YXIgYXQ9Cj0zRDA7YXQ8YXUuZGF0YS5sZW5ndGg7YXQrKyl7YXkueC5wdXNoKGF1LmRh dGFbYXRdWzBdKTtheS55LnB1c2goYXUuZGF0YVthdD0KXVsxXSl9dGhpcy5fc3RhY2tEYXRhLnB1 c2goYXUuZGF0YSk7dGhpcy5zZXJpZXNbYXZdLl9zdGFja0RhdGE9M0RhdS5kYXRhO3RoPQppcy5f cGxvdERhdGEucHVzaChhdS5kYXRhKTthdS5fcGxvdERhdGE9M0RhdS5kYXRhO2F1Ll9wbG90VmFs dWVzPTNEYXl9aWYoYXY9Cj4wKXthdS5fcHJldlBsb3REYXRhPTNEdGhpcy5zZXJpZXNbYXYtMV0u X3Bsb3REYXRhfWF1Ll9zdW15PTNEMDthdS5fc3VteD0zRD0KMDtmb3IoYXQ9M0RhdS5kYXRhLmxl bmd0aC0xO2F0Pi0xO2F0LS0pe2F1Ll9zdW15Kz0zRGF1LmRhdGFbYXRdWzFdO2F1Ll9zdW14PQor PTNEYXUuZGF0YVthdF1bMF19fTt0aGlzLmdldE5leHRTZXJpZXNDb2xvcj0zRChmdW5jdGlvbihh bSl7dmFyIGFsPTNEMDt2YXI9CiBhbj0zRGFtLnNlcmllc0NvbG9ycztyZXR1cm4gZnVuY3Rpb24o KXtpZihhbDxhbi5sZW5ndGgpe3JldHVybiBhblthbCsrXX1lbD0Kc2V7YWw9M0QwO3JldHVybiBh blthbCsrXX19fSkodGhpcyk7dGhpcy5wYXJzZU9wdGlvbnM9M0RmdW5jdGlvbihheSl7Zm9yKHZh PQpyIGF0PTNEMDthdDx0aGlzLnByZVBhcnNlT3B0aW9uc0hvb2tzLmhvb2tzLmxlbmd0aDthdCsr KXt0aGlzLnByZVBhcnNlT3B0aW89Cm5zSG9va3MuaG9va3NbYXRdLmNhbGwodGhpcyxheSl9Zm9y KHZhciBhdD0zRDA7YXQ8TC5qcXBsb3QucHJlUGFyc2VPcHRpb25zSD0Kb29rcy5sZW5ndGg7YXQr Kyl7TC5qcXBsb3QucHJlUGFyc2VPcHRpb25zSG9va3NbYXRdLmNhbGwodGhpcyxheSl9dGhpcy5v cHRpPQpvbnM9M0RMLmV4dGVuZCh0cnVlLHt9LHRoaXMuZGVmYXVsdHMsYXkpO3ZhciBhbT0zRHRo aXMub3B0aW9uczt0aGlzLmFuaW1hdGU9Cj0zRGFtLmFuaW1hdGU7dGhpcy5hbmltYXRlUmVwbG90 PTNEYW0uYW5pbWF0ZVJlcGxvdDt0aGlzLnN0YWNrU2VyaWVzPTNEYW0ucz0KdGFja1Nlcmllcztp ZihMLmlzUGxhaW5PYmplY3QoYW0uZmlsbEJldHdlZW4pKXt2YXIgYXg9M0RbInNlcmllczEiLCJz ZXJpZXMyPQoiLCJjb2xvciIsImJhc2VTZXJpZXMiLCJmaWxsIl0sYXU7Zm9yKHZhciBhdD0zRDAs YXE9M0RheC5sZW5ndGg7YXQ8YXE7YXQrKyk9CnthdT0zRGF4W2F0XTtpZihhbS5maWxsQmV0d2Vl blthdV0hPTNEbnVsbCl7dGhpcy5maWxsQmV0d2VlblthdV09M0RhbS5maWxsQj0KZXR3ZWVuW2F1 XX19fWlmKGFtLnNlcmllc0NvbG9ycyl7dGhpcy5zZXJpZXNDb2xvcnM9M0RhbS5zZXJpZXNDb2xv cnN9aWYoYW0uPQpuZWdhdGl2ZVNlcmllc0NvbG9ycyl7dGhpcy5uZWdhdGl2ZVNlcmllc0NvbG9y cz0zRGFtLm5lZ2F0aXZlU2VyaWVzQ29sb3JzfWk9CmYoYW0uY2FwdHVyZVJpZ2h0Q2xpY2spe3Ro aXMuY2FwdHVyZVJpZ2h0Q2xpY2s9M0RhbS5jYXB0dXJlUmlnaHRDbGlja310aGlzLj0KZGVmYXVs dEF4aXNTdGFydD0zRChheSYmYXkuZGVmYXVsdEF4aXNTdGFydCE9M0RudWxsKT9heS5kZWZhdWx0 QXhpc1N0YXJ0OnRoPQppcy5kZWZhdWx0QXhpc1N0YXJ0O3RoaXMuY29sb3JHZW5lcmF0b3Iuc2V0 Q29sb3JzKHRoaXMuc2VyaWVzQ29sb3JzKTt0aGlzLm49CmVnYXRpdmVDb2xvckdlbmVyYXRvci5z ZXRDb2xvcnModGhpcy5uZWdhdGl2ZVNlcmllc0NvbG9ycyk7TC5leHRlbmQodHJ1ZSx0aD0KaXMu X2dyaWRQYWRkaW5nLGFtLmdyaWRQYWRkaW5nKTt0aGlzLnNvcnREYXRhPTNEKGFtLnNvcnREYXRh IT0zRG51bGwpP2FtLnNvPQpydERhdGE6dGhpcy5zb3J0RGF0YTtmb3IodmFyIGF0PTNEMDthdDwx MjthdCsrKXt2YXIgYW49M0RVW2F0XTt2YXIgYXA9M0R0aGk9CnMuYXhlc1thbl07YXAuX29wdGlv bnM9M0RMLmV4dGVuZCh0cnVlLHt9LGFtLmF4ZXNEZWZhdWx0cyxhbS5heGVzW2FuXSk7TC5leD0K dGVuZCh0cnVlLGFwLGFtLmF4ZXNEZWZhdWx0cyxhbS5heGVzW2FuXSk7YXAuX3Bsb3RXaWR0aD0z RHRoaXMuX3dpZHRoO2FwLl9wPQpsb3RIZWlnaHQ9M0R0aGlzLl9oZWlnaHR9dmFyIGF3PTNEZnVu Y3Rpb24oYUQsYUIsYUUpe3ZhciBhQT0zRFtdO3ZhciBhQyxhejs9CmFCPTNEYUJ8fCJ2ZXJ0aWNh bCI7aWYoIUwuaXNBcnJheShhRFswXSkpe2ZvcihhQz0zRDAsYXo9M0RhRC5sZW5ndGg7YUM8YXo7 YT0KQysrKXtpZihhQj0zRD0zRCJ2ZXJ0aWNhbCIpe2FBLnB1c2goW2FFK2FDLGFEW2FDXV0pfWVs c2V7YUEucHVzaChbYURbYUNdLGFFPQorYUNdKX19fWVsc2V7TC5leHRlbmQodHJ1ZSxhQSxhRCl9 cmV0dXJuIGFBfTt2YXIgYXY9M0QwO3RoaXMuc2VyaWVzPTNEW107Zm89CnIodmFyIGF0PTNEMDth dDx0aGlzLmRhdGEubGVuZ3RoO2F0Kyspe3ZhciBhbD0zREwuZXh0ZW5kKHRydWUse2luZGV4OmF0 fSx7cz0KZXJpZXNDb2xvcnM6dGhpcy5zZXJpZXNDb2xvcnMsbmVnYXRpdmVTZXJpZXNDb2xvcnM6 dGhpcy5uZWdhdGl2ZVNlcmllc0NvbG9yPQpzfSx0aGlzLm9wdGlvbnMuc2VyaWVzRGVmYXVsdHMs dGhpcy5vcHRpb25zLnNlcmllc1thdF0se3JlbmRlcmVyT3B0aW9uczp7YW49CmltYXRpb246e3No b3c6dGhpcy5hbmltYXRlfX19KTt2YXIgYXg9M0RuZXcgUyhhbCk7Zm9yKHZhciBhcj0zRDA7YXI8 TC5qcXBsbz0KdC5wcmVQYXJzZVNlcmllc09wdGlvbnNIb29rcy5sZW5ndGg7YXIrKyl7TC5qcXBs b3QucHJlUGFyc2VTZXJpZXNPcHRpb25zSG9vPQprc1thcl0uY2FsbChheCx0aGlzLm9wdGlvbnMu c2VyaWVzRGVmYXVsdHMsdGhpcy5vcHRpb25zLnNlcmllc1thdF0pfWZvcih2YXI9CiBhcj0zRDA7 YXI8dGhpcy5wcmVQYXJzZVNlcmllc09wdGlvbnNIb29rcy5ob29rcy5sZW5ndGg7YXIrKyl7dGhp cy5wcmVQYXJzZT0KU2VyaWVzT3B0aW9uc0hvb2tzLmhvb2tzW2FyXS5jYWxsKGF4LHRoaXMub3B0 aW9ucy5zZXJpZXNEZWZhdWx0cyx0aGlzLm9wdGlvPQpucy5zZXJpZXNbYXRdKX1MLmV4dGVuZCh0 cnVlLGF4LGFsKTt2YXIgYW89M0QidmVydGljYWwiO2lmKGF4LnJlbmRlcmVyPTNEPQo9M0Q9M0RM LmpxcGxvdC5CYXJSZW5kZXJlciYmYXgucmVuZGVyZXJPcHRpb25zJiZheC5yZW5kZXJlck9wdGlv bnMuYmFyRGlyZWM9CnRpb249M0Q9M0QiaG9yaXpvbnRhbCIpe2FvPTNEImhvcml6b250YWwiO2F4 Ll9zdGFja0F4aXM9M0QieCI7YXguX3ByaW1hcnlBeD0KaXM9M0QiX3lheGlzIn1heC5kYXRhPTNE YXcodGhpcy5kYXRhW2F0XSxhbyx0aGlzLmRlZmF1bHRBeGlzU3RhcnQpO3N3aXRjaChhPQp4Lnhh eGlzKXtjYXNlInhheGlzIjpheC5feGF4aXM9M0R0aGlzLmF4ZXMueGF4aXM7YnJlYWs7Y2FzZSJ4 MmF4aXMiOmF4Ll94YXg9CmlzPTNEdGhpcy5heGVzLngyYXhpczticmVhaztkZWZhdWx0OmJyZWFr fWF4Ll95YXhpcz0zRHRoaXMuYXhlc1theC55YXhpc107YT0KeC5feGF4aXMuX3Nlcmllcy5wdXNo KGF4KTtheC5feWF4aXMuX3Nlcmllcy5wdXNoKGF4KTtpZihheC5zaG93KXtheC5feGF4aXMuPQpz aG93PTNEdHJ1ZTtheC5feWF4aXMuc2hvdz0zRHRydWV9ZWxzZXtpZihheC5feGF4aXMuc2NhbGVU b0hpZGRlblNlcmllcyl7YXg9Ci5feGF4aXMuc2hvdz0zRHRydWV9aWYoYXguX3lheGlzLnNjYWxl VG9IaWRkZW5TZXJpZXMpe2F4Ll95YXhpcy5zaG93PTNEdHJ1ZT0KfX1pZighYXgubGFiZWwpe2F4 LmxhYmVsPTNEIlNlcmllcyAiKyhhdCsxKS50b1N0cmluZygpfXRoaXMuc2VyaWVzLnB1c2goYXgp PQo7Zm9yKHZhciBhcj0zRDA7YXI8TC5qcXBsb3QucG9zdFBhcnNlU2VyaWVzT3B0aW9uc0hvb2tz Lmxlbmd0aDthcisrKXtMLmpxcGw9Cm90LnBvc3RQYXJzZVNlcmllc09wdGlvbnNIb29rc1thcl0u Y2FsbCh0aGlzLnNlcmllc1thdF0sdGhpcy5vcHRpb25zLnNlcmllcz0KRGVmYXVsdHMsdGhpcy5v cHRpb25zLnNlcmllc1thdF0pfWZvcih2YXIgYXI9M0QwO2FyPHRoaXMucG9zdFBhcnNlU2VyaWVz T3B0PQppb25zSG9va3MuaG9va3MubGVuZ3RoO2FyKyspe3RoaXMucG9zdFBhcnNlU2VyaWVzT3B0 aW9uc0hvb2tzLmhvb2tzW2FyXS5jYWw9CmwodGhpcy5zZXJpZXNbYXRdLHRoaXMub3B0aW9ucy5z ZXJpZXNEZWZhdWx0cyx0aGlzLm9wdGlvbnMuc2VyaWVzW2F0XSl9fUwuZT0KeHRlbmQodHJ1ZSx0 aGlzLmdyaWQsdGhpcy5vcHRpb25zLmdyaWQpO2Zvcih2YXIgYXQ9M0QwLGFxPTNEVS5sZW5ndGg7 YXQ8YXE7PQphdCsrKXt2YXIgYW49M0RVW2F0XTt2YXIgYXA9M0R0aGlzLmF4ZXNbYW5dO2lmKGFw LmJvcmRlcldpZHRoPTNEPTNEbnVsbCl7YXA9Ci5ib3JkZXJXaWR0aD0zRHRoaXMuZ3JpZC5ib3Jk ZXJXaWR0aH19aWYodHlwZW9mIHRoaXMub3B0aW9ucy50aXRsZT0zRD0zRCJzdD0KcmluZyIpe3Ro aXMudGl0bGUudGV4dD0zRHRoaXMub3B0aW9ucy50aXRsZX1lbHNle2lmKHR5cGVvZiB0aGlzLm9w dGlvbnMudGl0PQpsZT0zRD0zRCJvYmplY3QiKXtMLmV4dGVuZCh0cnVlLHRoaXMudGl0bGUsdGhp cy5vcHRpb25zLnRpdGxlKX19dGhpcy50aXRsZS49Cl9wbG90V2lkdGg9M0R0aGlzLl93aWR0aDt0 aGlzLmxlZ2VuZC5zZXRPcHRpb25zKHRoaXMub3B0aW9ucy5sZWdlbmQpO2Zvcih2YT0KciBhdD0z RDA7YXQ8TC5qcXBsb3QucG9zdFBhcnNlT3B0aW9uc0hvb2tzLmxlbmd0aDthdCsrKXtMLmpxcGxv dC5wb3N0UGFyc2VPPQpwdGlvbnNIb29rc1thdF0uY2FsbCh0aGlzLGF5KX1mb3IodmFyIGF0PTNE MDthdDx0aGlzLnBvc3RQYXJzZU9wdGlvbnNIb29rcy49Cmhvb2tzLmxlbmd0aDthdCsrKXt0aGlz LnBvc3RQYXJzZU9wdGlvbnNIb29rcy5ob29rc1thdF0uY2FsbCh0aGlzLGF5KX19O3RoaT0Kcy5k ZXN0cm95PTNEZnVuY3Rpb24oKXt0aGlzLmNhbnZhc01hbmFnZXIuZnJlZUFsbENhbnZhc2VzKCk7 aWYodGhpcy5ldmVudENhPQpudmFzJiZ0aGlzLmV2ZW50Q2FudmFzLl9lbGVtKXt0aGlzLmV2ZW50 Q2FudmFzLl9lbGVtLnVuYmluZCgpfXRoaXMudGFyZ2V0LmU9Cm1wdHkoKTt0aGlzLnRhcmdldFsw XS5pbm5lckhUTUw9M0QiIn07dGhpcy5yZXBsb3Q9M0RmdW5jdGlvbihhbSl7dmFyIGFuPTNEYT0K bXx8e307dmFyIGFwPTNEYW4uZGF0YXx8bnVsbDt2YXIgYWw9M0QoYW4uY2xlYXI9M0Q9M0Q9M0Rm YWxzZSk/ZmFsc2U6dHJ1ZTt2PQphciBhbz0zRGFuLnJlc2V0QXhlc3x8ZmFsc2U7ZGVsZXRlIGFu LmRhdGE7ZGVsZXRlIGFuLmNsZWFyO2RlbGV0ZSBhbi5yZXNldEE9Cnhlczt0aGlzLnRhcmdldC50 cmlnZ2VyKCJqcXBsb3RQcmVSZXBsb3QiKTtpZihhbCl7dGhpcy5kZXN0cm95KCl9aWYoYXB8fCFM Lj0KaXNFbXB0eU9iamVjdChhbikpe3RoaXMucmVJbml0aWFsaXplKGFwLGFuKX1lbHNle3RoaXMu cXVpY2tJbml0KCl9aWYoYW8pe3RoPQppcy5yZXNldEF4ZXNTY2FsZShhbyxhbi5heGVzKX10aGlz LmRyYXcoKTt0aGlzLnRhcmdldC50cmlnZ2VyKCJqcXBsb3RQb3N0UmU9CnBsb3QiKX07dGhpcy5y ZWRyYXc9M0RmdW5jdGlvbihhbCl7YWw9M0QoYWwhPTNEbnVsbCk/YWw6dHJ1ZTt0aGlzLnRhcmdl dC50cj0KaWdnZXIoImpxcGxvdFByZVJlZHJhdyIpO2lmKGFsKXt0aGlzLmNhbnZhc01hbmFnZXIu ZnJlZUFsbENhbnZhc2VzKCk7dGhpcy5lPQp2ZW50Q2FudmFzLl9lbGVtLnVuYmluZCgpO3RoaXMu dGFyZ2V0LmVtcHR5KCl9Zm9yKHZhciBhbiBpbiB0aGlzLmF4ZXMpe3RoaXM9Ci5heGVzW2FuXS5f dGlja3M9M0RbXX10aGlzLmNvbXB1dGVQbG90RGF0YSgpO3RoaXMuX3N1bXk9M0QwO3RoaXMuX3N1 bXg9M0QwOz0KZm9yKHZhciBhbT0zRDAsYW89M0R0aGlzLnNlcmllcy5sZW5ndGg7YW08YW87YW0r Kyl7dGhpcy5fc3VteSs9M0R0aGlzLnNlcmllPQpzW2FtXS5fc3VteTt0aGlzLl9zdW14Kz0zRHRo aXMuc2VyaWVzW2FtXS5fc3VteH10aGlzLmRyYXcoKTt0aGlzLnRhcmdldC50cmk9CmdnZXIoImpx cGxvdFBvc3RSZWRyYXciKX07dGhpcy5kcmF3PTNEZnVuY3Rpb24oKXtpZih0aGlzLmRyYXdJZkhp ZGRlbnx8dGhpcz0KLnRhcmdldC5pcygiOnZpc2libGUiKSl7dGhpcy50YXJnZXQudHJpZ2dlcigi anFwbG90UHJlRHJhdyIpO3ZhciBhSCxhRixhRSxhPQpvO2ZvcihhSD0zRDAsYUU9M0RMLmpxcGxv dC5wcmVEcmF3SG9va3MubGVuZ3RoO2FIPGFFO2FIKyspe0wuanFwbG90LnByZURyYXc9Ckhvb2tz W2FIXS5jYWxsKHRoaXMpfWZvcihhSD0zRDAsYUU9M0R0aGlzLnByZURyYXdIb29rcy5ob29rcy5s ZW5ndGg7YUg8YUU7YT0KSCsrKXt0aGlzLnByZURyYXdIb29rcy5ob29rc1thSF0uYXBwbHkodGhp cyx0aGlzLnByZURyYXdTZXJpZXNIb29rcy5hcmdzW2FIPQpdKX10aGlzLnRhcmdldC5hcHBlbmQo dGhpcy5iYXNlQ2FudmFzLmNyZWF0ZUVsZW1lbnQoe2xlZnQ6MCxyaWdodDowLHRvcDowLGI9Cm90 dG9tOjB9LCJqcXBsb3QtYmFzZS1jYW52YXMiLG51bGwsdGhpcykpO3RoaXMuYmFzZUNhbnZhcy5z ZXRDb250ZXh0KCk7dGhpcz0KLnRhcmdldC5hcHBlbmQodGhpcy50aXRsZS5kcmF3KCkpO3RoaXMu dGl0bGUucGFjayh7dG9wOjAsbGVmdDowfSk7dmFyIGFMPTNEPQp0aGlzLmxlZ2VuZC5kcmF3KHt9 LHRoaXMpO3ZhciBhbD0zRHt0b3A6MCxsZWZ0OjAsYm90dG9tOjAscmlnaHQ6MH07aWYodGhpcy49 CmxlZ2VuZC5wbGFjZW1lbnQ9M0Q9M0Qib3V0c2lkZUdyaWQiKXt0aGlzLnRhcmdldC5hcHBlbmQo YUwpO3N3aXRjaCh0aGlzLmxlZz0KZW5kLmxvY2F0aW9uKXtjYXNlIm4iOmFsLnRvcCs9M0R0aGlz LmxlZ2VuZC5nZXRIZWlnaHQoKTticmVhaztjYXNlInMiOmFsLmJvPQp0dG9tKz0zRHRoaXMubGVn ZW5kLmdldEhlaWdodCgpO2JyZWFrO2Nhc2UibmUiOmNhc2UiZSI6Y2FzZSJzZSI6YWwucmlnaHQr PQo9M0R0aGlzLmxlZ2VuZC5nZXRXaWR0aCgpO2JyZWFrO2Nhc2UibnciOmNhc2UidyI6Y2FzZSJz dyI6YWwubGVmdCs9M0R0aGlzLmw9CmVnZW5kLmdldFdpZHRoKCk7YnJlYWs7ZGVmYXVsdDphbC5y aWdodCs9M0R0aGlzLmxlZ2VuZC5nZXRXaWR0aCgpO2JyZWFrfWFMPQo9M0RhTC5kZXRhY2goKX12 YXIgYXI9M0R0aGlzLmF4ZXM7dmFyIGFNO2ZvcihhSD0zRDA7YUg8MTI7YUgrKyl7YU09M0RVW2FI XTs9CnRoaXMudGFyZ2V0LmFwcGVuZChhclthTV0uZHJhdyh0aGlzLmJhc2VDYW52YXMuX2N0eCx0 aGlzKSk7YXJbYU1dLnNldCgpfWlmKD0KYXIueWF4aXMuc2hvdyl7YWwubGVmdCs9M0Rhci55YXhp cy5nZXRXaWR0aCgpfXZhciBhRz0zRFsieTJheGlzIiwieTNheGlzIiwiPQp5NGF4aXMiLCJ5NWF4 aXMiLCJ5NmF4aXMiLCJ5N2F4aXMiLCJ5OGF4aXMiLCJ5OWF4aXMiXTt2YXIgYXo9M0RbMCwwLDAs MCwwLDA9CiwwLDBdO3ZhciBhQz0zRDA7dmFyIGFCO2ZvcihhQj0zRDA7YUI8ODthQisrKXtpZihh clthR1thQl1dLnNob3cpe2FDKz0zRGFyWz0KYUdbYUJdXS5nZXRXaWR0aCgpO2F6W2FCXT0zRGFD fX1hbC5yaWdodCs9M0RhQztpZihhci54MmF4aXMuc2hvdyl7YWwudG9wKz0KPTNEYXIueDJheGlz LmdldEhlaWdodCgpfWlmKHRoaXMudGl0bGUuc2hvdyl7YWwudG9wKz0zRHRoaXMudGl0bGUuZ2V0 SGVpZ2h0PQooKX1pZihhci54YXhpcy5zaG93KXthbC5ib3R0b20rPTNEYXIueGF4aXMuZ2V0SGVp Z2h0KCl9aWYodGhpcy5vcHRpb25zLmdyaWQ9CkRpbWVuc2lvbnMmJkwuaXNQbGFpbk9iamVjdCh0 aGlzLm9wdGlvbnMuZ3JpZERpbWVuc2lvbnMpKXt2YXIgYXQ9M0RwYXJzZUludD0KKHRoaXMub3B0 aW9ucy5ncmlkRGltZW5zaW9ucy53aWR0aCwxMCl8fDA7dmFyIGFJPTNEcGFyc2VJbnQodGhpcy5v cHRpb25zLmdyPQppZERpbWVuc2lvbnMuaGVpZ2h0LDEwKXx8MDt2YXIgYW49M0QodGhpcy5fd2lk dGgtYWwubGVmdC1hbC5yaWdodC1hdCkvMjt2YXI9CiBhSz0zRCh0aGlzLl9oZWlnaHQtYWwudG9w LWFsLmJvdHRvbS1hSSkvMjtpZihhSz49M0QwJiZhbj49M0QwKXthbC50b3ArPTNEYT0KSzthbC5i b3R0b20rPTNEYUs7YWwubGVmdCs9M0RhbjthbC5yaWdodCs9M0Rhbn19dmFyIGFtPTNEWyJ0b3Ai LCJib3R0b20iLCJsPQplZnQiLCJyaWdodCJdO2Zvcih2YXIgYUIgaW4gYW0pe2lmKHRoaXMuX2dy aWRQYWRkaW5nW2FtW2FCXV09M0Q9M0RudWxsJiZhbFs9CmFtW2FCXV0+MCl7dGhpcy5fZ3JpZFBh ZGRpbmdbYW1bYUJdXT0zRGFsW2FtW2FCXV19ZWxzZXtpZih0aGlzLl9ncmlkUGFkZGluZz0KW2Ft W2FCXV09M0Q9M0RudWxsKXt0aGlzLl9ncmlkUGFkZGluZ1thbVthQl1dPTNEdGhpcy5fZGVmYXVs dEdyaWRQYWRkaW5nW2FtPQpbYUJdXX19fXZhciBhQT0zRHRoaXMuX2dyaWRQYWRkaW5nO2lmKHRo aXMubGVnZW5kLnBsYWNlbWVudD0zRD0zRD0zRCJvdXRzaWQ9CmVHcmlkIil7YUE9M0R7dG9wOnRo aXMudGl0bGUuZ2V0SGVpZ2h0KCksbGVmdDowLHJpZ2h0OjAsYm90dG9tOjB9O2lmKHRoaXMubD0K ZWdlbmQubG9jYXRpb249M0Q9M0Q9M0QicyIpe2FBLmxlZnQ9M0R0aGlzLl9ncmlkUGFkZGluZy5s ZWZ0O2FBLnJpZ2h0PTNEdGhpPQpzLl9ncmlkUGFkZGluZy5yaWdodH19YXIueGF4aXMucGFjayh7 cG9zaXRpb246ImFic29sdXRlIixib3R0b206dGhpcy5fZ3JpZFA9CmFkZGluZy5ib3R0b20tYXIu eGF4aXMuZ2V0SGVpZ2h0KCksbGVmdDowLHdpZHRoOnRoaXMuX3dpZHRofSx7bWluOnRoaXMuX2dy aT0KZFBhZGRpbmcubGVmdCxtYXg6dGhpcy5fd2lkdGgtdGhpcy5fZ3JpZFBhZGRpbmcucmlnaHR9 KTthci55YXhpcy5wYWNrKHtwb3NpPQp0aW9uOiJhYnNvbHV0ZSIsdG9wOjAsbGVmdDp0aGlzLl9n cmlkUGFkZGluZy5sZWZ0LWFyLnlheGlzLmdldFdpZHRoKCksaGVpZ2g9CnQ6dGhpcy5faGVpZ2h0 fSx7bWluOnRoaXMuX2hlaWdodC10aGlzLl9ncmlkUGFkZGluZy5ib3R0b20sbWF4OnRoaXMuX2dy aWRQYT0KZGRpbmcudG9wfSk7YXIueDJheGlzLnBhY2soe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9w OnRoaXMuX2dyaWRQYWRkaW5nLnRvcC1hPQpyLngyYXhpcy5nZXRIZWlnaHQoKSxsZWZ0OjAsd2lk dGg6dGhpcy5fd2lkdGh9LHttaW46dGhpcy5fZ3JpZFBhZGRpbmcubGVmdCw9Cm1heDp0aGlzLl93 aWR0aC10aGlzLl9ncmlkUGFkZGluZy5yaWdodH0pO2ZvcihhSD0zRDg7YUg+MDthSC0tKXthclth R1thSC0xXT0KXS5wYWNrKHtwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDowLHJpZ2h0OnRoaXMuX2dy aWRQYWRkaW5nLnJpZ2h0LWF6W2FILTFdfSx7PQptaW46dGhpcy5faGVpZ2h0LXRoaXMuX2dyaWRQ YWRkaW5nLmJvdHRvbSxtYXg6dGhpcy5fZ3JpZFBhZGRpbmcudG9wfSl9dmFyIGE9CnU9M0QodGhp cy5fd2lkdGgtdGhpcy5fZ3JpZFBhZGRpbmcubGVmdC10aGlzLl9ncmlkUGFkZGluZy5yaWdodCkv Mit0aGlzLl9ncj0KaWRQYWRkaW5nLmxlZnQtYXIueU1pZEF4aXMuZ2V0V2lkdGgoKS8yO2FyLnlN aWRBeGlzLnBhY2soe3Bvc2l0aW9uOiJhYnNvbHV0PQplIix0b3A6MCxsZWZ0OmF1LHpJbmRleDo5 LHRleHRBbGlnbjoiY2VudGVyIn0se21pbjp0aGlzLl9oZWlnaHQtdGhpcy5fZ3JpZFA9CmFkZGlu Zy5ib3R0b20sbWF4OnRoaXMuX2dyaWRQYWRkaW5nLnRvcH0pO3RoaXMudGFyZ2V0LmFwcGVuZCh0 aGlzLmdyaWQuY3JlYT0KdGVFbGVtZW50KHRoaXMuX2dyaWRQYWRkaW5nLHRoaXMpKTt0aGlzLmdy aWQuZHJhdygpO3ZhciBhcT0zRHRoaXMuc2VyaWVzO3ZhPQpyIGFKPTNEYXEubGVuZ3RoO2Zvcihh SD0zRDAsYUU9M0RhSjthSDxhRTthSCsrKXthRj0zRHRoaXMuc2VyaWVzU3RhY2tbYUhdO3Q9Cmhp cy50YXJnZXQuYXBwZW5kKGFxW2FGXS5zaGFkb3dDYW52YXMuY3JlYXRlRWxlbWVudCh0aGlzLl9n cmlkUGFkZGluZywianFwbD0Kb3Qtc2VyaWVzLXNoYWRvd0NhbnZhcyIsbnVsbCx0aGlzKSk7YXFb YUZdLnNoYWRvd0NhbnZhcy5zZXRDb250ZXh0KCk7YXFbYUZdPQouc2hhZG93Q2FudmFzLl9lbGVt LmRhdGEoInNlcmllc0luZGV4IixhRil9Zm9yKGFIPTNEMCxhRT0zRGFKO2FIPGFFO2FIKyspe2E9 CkY9M0R0aGlzLnNlcmllc1N0YWNrW2FIXTt0aGlzLnRhcmdldC5hcHBlbmQoYXFbYUZdLmNhbnZh cy5jcmVhdGVFbGVtZW50KHRoaT0Kcy5fZ3JpZFBhZGRpbmcsImpxcGxvdC1zZXJpZXMtY2FudmFz IixudWxsLHRoaXMpKTthcVthRl0uY2FudmFzLnNldENvbnRleHQoPQopO2FxW2FGXS5jYW52YXMu X2VsZW0uZGF0YSgic2VyaWVzSW5kZXgiLGFGKX10aGlzLnRhcmdldC5hcHBlbmQodGhpcy5ldmVu dEM9CmFudmFzLmNyZWF0ZUVsZW1lbnQodGhpcy5fZ3JpZFBhZGRpbmcsImpxcGxvdC1ldmVudC1j YW52YXMiLG51bGwsdGhpcykpO3RoaT0Kcy5ldmVudENhbnZhcy5zZXRDb250ZXh0KCk7dGhpcy5l dmVudENhbnZhcy5fY3R4LmZpbGxTdHlsZT0zRCJyZ2JhKDAsMCwwLDApPQoiO3RoaXMuZXZlbnRD YW52YXMuX2N0eC5maWxsUmVjdCgwLDAsdGhpcy5ldmVudENhbnZhcy5fY3R4LmNhbnZhcy53aWR0 aCx0aGk9CnMuZXZlbnRDYW52YXMuX2N0eC5jYW52YXMuaGVpZ2h0KTt0aGlzLmJpbmRDdXN0b21F dmVudHMoKTtpZih0aGlzLmxlZ2VuZC5wcj0KZURyYXcpe3RoaXMuZXZlbnRDYW52YXMuX2VsZW0u YmVmb3JlKGFMKTt0aGlzLmxlZ2VuZC5wYWNrKGFBKTtpZih0aGlzLmxlZ2VuPQpkLl9lbGVtKXt0 aGlzLmRyYXdTZXJpZXMoe2xlZ2VuZEluZm86e2xvY2F0aW9uOnRoaXMubGVnZW5kLmxvY2F0aW9u LHBsYWNlbWU9Cm50OnRoaXMubGVnZW5kLnBsYWNlbWVudCx3aWR0aDp0aGlzLmxlZ2VuZC5nZXRX aWR0aCgpLGhlaWdodDp0aGlzLmxlZ2VuZC5nZT0KdEhlaWdodCgpLHhvZmZzZXQ6dGhpcy5sZWdl bmQueG9mZnNldCx5b2Zmc2V0OnRoaXMubGVnZW5kLnlvZmZzZXR9fSl9ZWxzZXt0PQpoaXMuZHJh d1NlcmllcygpfX1lbHNle3RoaXMuZHJhd1NlcmllcygpO2lmKGFKKXtMKGFxW2FKLTFdLmNhbnZh cy5fZWxlbSkuYWY9CnRlcihhTCl9dGhpcy5sZWdlbmQucGFjayhhQSl9Zm9yKHZhciBhSD0zRDAs YUU9M0RMLmpxcGxvdC5ldmVudExpc3RlbmVySG9vaz0Kcy5sZW5ndGg7YUg8YUU7YUgrKyl7dGhp cy5ldmVudENhbnZhcy5fZWxlbS5iaW5kKEwuanFwbG90LmV2ZW50TGlzdGVuZXJIb29rPQpzW2FI XVswXSx7cGxvdDp0aGlzfSxMLmpxcGxvdC5ldmVudExpc3RlbmVySG9va3NbYUhdWzFdKX1mb3Io dmFyIGFIPTNEMCxhRT0KPTNEdGhpcy5ldmVudExpc3RlbmVySG9va3MuaG9va3MubGVuZ3RoO2FI PGFFO2FIKyspe3RoaXMuZXZlbnRDYW52YXMuX2VsZW0uPQpiaW5kKHRoaXMuZXZlbnRMaXN0ZW5l ckhvb2tzLmhvb2tzW2FIXVswXSx7cGxvdDp0aGlzfSx0aGlzLmV2ZW50TGlzdGVuZXJIb289Cmtz Lmhvb2tzW2FIXVsxXSl9dmFyIGF5PTNEdGhpcy5maWxsQmV0d2VlbjtpZihheS5maWxsJiZheS5z ZXJpZXMxIT0zRD0zRGF5Lj0Kc2VyaWVzMiYmYXkuc2VyaWVzMTxhSiYmYXkuc2VyaWVzMjxhSiYm YXFbYXkuc2VyaWVzMV0uX3R5cGU9M0Q9M0Q9M0QibGluZSImPQomYXFbYXkuc2VyaWVzMl0uX3R5 cGU9M0Q9M0Q9M0QibGluZSIpe3RoaXMuZG9GaWxsQmV0d2VlbkxpbmVzKCl9Zm9yKHZhciBhSD0K PTNEMCxhRT0zREwuanFwbG90LnBvc3REcmF3SG9va3MubGVuZ3RoO2FIPGFFO2FIKyspe0wuanFw bG90LnBvc3REcmF3SG9va3NbPQphSF0uY2FsbCh0aGlzKX1mb3IodmFyIGFIPTNEMCxhRT0zRHRo aXMucG9zdERyYXdIb29rcy5ob29rcy5sZW5ndGg7YUg8YUU7YUg9CisrKXt0aGlzLnBvc3REcmF3 SG9va3MuaG9va3NbYUhdLmFwcGx5KHRoaXMsdGhpcy5wb3N0RHJhd0hvb2tzLmFyZ3NbYUhdKX1p Zj0KKHRoaXMudGFyZ2V0LmlzKCI6dmlzaWJsZSIpKXt0aGlzLl9kcmF3Q291bnQrPTNEMX12YXIg YXYsYXcsYUQsYXA7Zm9yKGFIPTNEPQowLGFFPTNEYUo7YUg8YUU7YUgrKyl7YXY9M0RhcVthSF07 YXc9M0Rhdi5yZW5kZXJlcjthRD0zRCIuanFwbG90LXBvaW50LWxhYmU9CmwuanFwbG90LXNlcmll cy0iK2FIO2lmKGF3LmFuaW1hdGlvbiYmYXcuYW5pbWF0aW9uLl9zdXBwb3J0ZWQmJmF3LmFuaW1h dGlvbj0KLnNob3cmJih0aGlzLl9kcmF3Q291bnQ8Mnx8dGhpcy5hbmltYXRlUmVwbG90KSl7YXA9 M0R0aGlzLnRhcmdldC5maW5kKGFEKTthPQpwLnN0b3AodHJ1ZSx0cnVlKS5oaWRlKCk7YXYuY2Fu dmFzLl9lbGVtLnN0b3AodHJ1ZSx0cnVlKS5oaWRlKCk7YXYuc2hhZG93Q2E9Cm52YXMuX2VsZW0u c3RvcCh0cnVlLHRydWUpLmhpZGUoKTthdi5jYW52YXMuX2VsZW0uanFwbG90RWZmZWN0KCJibGlu ZCIse21vZD0KZToic2hvdyIsZGlyZWN0aW9uOmF3LmFuaW1hdGlvbi5kaXJlY3Rpb259LGF3LmFu aW1hdGlvbi5zcGVlZCk7YXYuc2hhZG93Q2FuPQp2YXMuX2VsZW0uanFwbG90RWZmZWN0KCJibGlu ZCIse21vZGU6InNob3ciLGRpcmVjdGlvbjphdy5hbmltYXRpb24uZGlyZWN0aW89Cm59LGF3LmFu aW1hdGlvbi5zcGVlZCk7YXAuZmFkZUluKGF3LmFuaW1hdGlvbi5zcGVlZCowLjgpfX1hcD0zRG51 bGw7dGhpcy50YT0KcmdldC50cmlnZ2VyKCJqcXBsb3RQb3N0RHJhdyIsW3RoaXNdKX19O1IucHJv dG90eXBlLmRvRmlsbEJldHdlZW5MaW5lcz0zRGZ1PQpuY3Rpb24oKXt2YXIgYW49M0R0aGlzLmZp bGxCZXR3ZWVuO3ZhciBheD0zRGFuLnNlcmllczE7dmFyIGF2PTNEYW4uc2VyaWVzMjs9CnZhciBh dz0zRChheDxhdik/YXg6YXY7dmFyIGF1PTNEKGF2PmF4KT9hdjpheDt2YXIgYXI9M0R0aGlzLnNl cmllc1thd107dmFyID0KYXE9M0R0aGlzLnNlcmllc1thdV07aWYoYXEucmVuZGVyZXIuc21vb3Ro KXt2YXIgYXA9M0RhcS5yZW5kZXJlci5fc21vb3RoZWREPQphdGEuc2xpY2UoMCkucmV2ZXJzZSgp fWVsc2V7dmFyIGFwPTNEYXEuZ3JpZERhdGEuc2xpY2UoMCkucmV2ZXJzZSgpfWlmKGFyLnI9CmVu ZGVyZXIuc21vb3RoKXt2YXIgYXQ9M0Rhci5yZW5kZXJlci5fc21vb3RoZWREYXRhLmNvbmNhdChh cCl9ZWxzZXt2YXIgYXQ9Cj0zRGFyLmdyaWREYXRhLmNvbmNhdChhcCl9dmFyIGFvPTNEKGFuLmNv bG9yIT0zRD0zRG51bGwpP2FuLmNvbG9yOnRoaXMuc2VyaT0KZXNbYXhdLmZpbGxDb2xvcjt2YXIg YXk9M0QoYW4uYmFzZVNlcmllcyE9M0Q9M0RudWxsKT9hbi5iYXNlU2VyaWVzOmF3O3ZhciBhPQpt PTNEdGhpcy5zZXJpZXNbYXldLnJlbmRlcmVyLnNoYXBlUmVuZGVyZXI7dmFyIGFsPTNEe2ZpbGxT dHlsZTphbyxmaWxsOnRydWU9CixjbG9zZVBhdGg6dHJ1ZX07YW0uZHJhdyhhci5zaGFkb3dDYW52 YXMuX2N0eCxhdCxhbCl9O3RoaXMuYmluZEN1c3RvbUV2ZW50cz0KPTNEZnVuY3Rpb24oKXt0aGlz LmV2ZW50Q2FudmFzLl9lbGVtLmJpbmQoImNsaWNrIix7cGxvdDp0aGlzfSx0aGlzLm9uQ2xpY2sp PQo7dGhpcy5ldmVudENhbnZhcy5fZWxlbS5iaW5kKCJkYmxjbGljayIse3Bsb3Q6dGhpc30sdGhp cy5vbkRibENsaWNrKTt0aGlzLmU9CnZlbnRDYW52YXMuX2VsZW0uYmluZCgibW91c2Vkb3duIix7 cGxvdDp0aGlzfSx0aGlzLm9uTW91c2VEb3duKTt0aGlzLmV2ZW50Qz0KYW52YXMuX2VsZW0uYmlu ZCgibW91c2Vtb3ZlIix7cGxvdDp0aGlzfSx0aGlzLm9uTW91c2VNb3ZlKTt0aGlzLmV2ZW50Q2Fu dmFzPQouX2VsZW0uYmluZCgibW91c2VlbnRlciIse3Bsb3Q6dGhpc30sdGhpcy5vbk1vdXNlRW50 ZXIpO3RoaXMuZXZlbnRDYW52YXMuX2U9CmxlbS5iaW5kKCJtb3VzZWxlYXZlIix7cGxvdDp0aGlz fSx0aGlzLm9uTW91c2VMZWF2ZSk7aWYodGhpcy5jYXB0dXJlUmlnaHRDbD0KaWNrKXt0aGlzLmV2 ZW50Q2FudmFzLl9lbGVtLmJpbmQoIm1vdXNldXAiLHtwbG90OnRoaXN9LHRoaXMub25SaWdodENs aWNrKTt0PQpoaXMuZXZlbnRDYW52YXMuX2VsZW0uZ2V0KDApLm9uY29udGV4dG1lbnU9M0RmdW5j dGlvbigpe3JldHVybiBmYWxzZX19ZWxzZXs9CnRoaXMuZXZlbnRDYW52YXMuX2VsZW0uYmluZCgi bW91c2V1cCIse3Bsb3Q6dGhpc30sdGhpcy5vbk1vdXNlVXApfX07ZnVuY3Rpbz0KbiBhaShhdil7 dmFyIGF1PTNEYXYuZGF0YS5wbG90O3ZhciBhcD0zRGF1LmV2ZW50Q2FudmFzLl9lbGVtLm9mZnNl dCgpO3ZhciBhPQp0PTNEe3g6YXYucGFnZVgtYXAubGVmdCx5OmF2LnBhZ2VZLWFwLnRvcH07dmFy IGFxPTNEe3hheGlzOm51bGwseWF4aXM6bnVsbCw9CngyYXhpczpudWxsLHkyYXhpczpudWxsLHkz YXhpczpudWxsLHk0YXhpczpudWxsLHk1YXhpczpudWxsLHk2YXhpczpudWxsLHk3YT0KeGlzOm51 bGwseThheGlzOm51bGwseTlheGlzOm51bGwseU1pZEF4aXM6bnVsbH07dmFyIGFyPTNEWyJ4YXhp cyIsInlheGlzIiwiPQp4MmF4aXMiLCJ5MmF4aXMiLCJ5M2F4aXMiLCJ5NGF4aXMiLCJ5NWF4aXMi LCJ5NmF4aXMiLCJ5N2F4aXMiLCJ5OGF4aXMiLCJ5OWE9CnhpcyIsInlNaWRBeGlzIl07dmFyIGFs PTNEYXUuYXhlczt2YXIgYW0sYW87Zm9yKGFtPTNEMTE7YW0+MDthbS0tKXthbz0zRGFyWz0KYW0t MV07aWYoYWxbYW9dLnNob3cpe2FxW2FvXT0zRGFsW2FvXS5zZXJpZXNfcDJ1KGF0W2FvLmNoYXJB dCgwKV0pfX1yZXR1cm57PQpvZmZzZXRzOmFwLGdyaWRQb3M6YXQsZGF0YVBvczphcX19ZnVuY3Rp b24gYWsoYWwsYW0pe3ZhciBhcT0zRGFtLnNlcmllczt2YXI9CiBhVyxhVSxhVCxhTyxhUCxhSixh SSxhdyxhdSxheixhQSxhSzt2YXIgYVMsYVgsYVEsYXIsYUgsYU0sYVY7dmFyIGFuLGFOO2Zvcj0K KGFUPTNEYW0uc2VyaWVzU3RhY2subGVuZ3RoLTE7YVQ+PTNEMDthVC0tKXthVz0zRGFtLnNlcmll c1N0YWNrW2FUXTthTz0zRGFxPQpbYVddO2FWPTNEYU8uX2hpZ2hsaWdodFRocmVzaG9sZDtzd2l0 Y2goYU8ucmVuZGVyZXIuY29uc3RydWN0b3Ipe2Nhc2UgTC5qcXA9CmxvdC5CYXJSZW5kZXJlcjph Sj0zRGFsLng7YUk9M0RhbC55O2ZvcihhVT0zRDA7YVU8YU8uX2JhclBvaW50cy5sZW5ndGg7YVUr Kz0KKXthSD0zRGFPLl9iYXJQb2ludHNbYVVdO2FRPTNEYU8uZ3JpZERhdGFbYVVdO2lmKGFKPmFI WzBdWzBdJiZhSjxhSFsyXVswXSYmPQphST5hSFsyXVsxXSYmYUk8YUhbMF1bMV0pe3JldHVybntz ZXJpZXNJbmRleDphTy5pbmRleCxwb2ludEluZGV4OmFVLGdyaWREYXQ9CmE6YVEsZGF0YTphTy5k YXRhW2FVXSxwb2ludHM6YU8uX2JhclBvaW50c1thVV19fX1icmVhaztjYXNlIEwuanFwbG90LlB5 cmFtaT0KZFJlbmRlcmVyOmFKPTNEYWwueDthST0zRGFsLnk7Zm9yKGFVPTNEMDthVTxhTy5fYmFy UG9pbnRzLmxlbmd0aDthVSsrKXthSD0KPTNEYU8uX2JhclBvaW50c1thVV07YVE9M0RhTy5ncmlk RGF0YVthVV07aWYoYUo+YUhbMF1bMF0rYVZbMF1bMF0mJmFKPGFIWzJdPQpbMF0rYVZbMl1bMF0m JmFJPmFIWzJdWzFdJiZhSTxhSFswXVsxXSl7cmV0dXJue3Nlcmllc0luZGV4OmFPLmluZGV4LHBv aW50SW49CmRleDphVSxncmlkRGF0YTphUSxkYXRhOmFPLmRhdGFbYVVdLHBvaW50czphTy5fYmFy UG9pbnRzW2FVXX19fWJyZWFrO2Nhc2UgTD0KLmpxcGxvdC5Eb251dFJlbmRlcmVyOmF6PTNEYU8u c3RhcnRBbmdsZS8xODAqTWF0aC5QSTthSj0zRGFsLngtYU8uX2NlbnRlclswPQpdO2FJPTNEYWwu eS1hTy5fY2VudGVyWzFdO2FQPTNETWF0aC5zcXJ0KE1hdGgucG93KGFKLDIpK01hdGgucG93KGFJ LDIpKTtpZig9CmFKPjAmJi1hST49M0QwKXthdz0zRDIqTWF0aC5QSS1NYXRoLmF0YW4oLWFJL2FK KX1lbHNle2lmKGFKPjAmJi1hSTwwKXthdz0zRD0KLU1hdGguYXRhbigtYUkvYUopfWVsc2V7aWYo YUo8MCl7YXc9M0RNYXRoLlBJLU1hdGguYXRhbigtYUkvYUopfWVsc2V7aWYoYUo9Cj0zRD0zRDAm Ji1hST4wKXthdz0zRDMqTWF0aC5QSS8yfWVsc2V7aWYoYUo9M0Q9M0QwJiYtYUk8MCl7YXc9M0RN YXRoLlBJLzJ9ZT0KbHNle2lmKGFKPTNEPTNEMCYmYUk9M0Q9M0QwKXthdz0zRDB9fX19fX1pZihh eil7YXctPTNEYXo7aWYoYXc8MCl7YXcrPTNEMipNPQphdGguUEl9ZWxzZXtpZihhdz4yKk1hdGgu UEkpe2F3LT0zRDIqTWF0aC5QSX19fWF1PTNEYU8uc2xpY2VNYXJnaW4vMTgwKk1hdGg9Ci5QSTtp ZihhUDxhTy5fcmFkaXVzJiZhUD5hTy5faW5uZXJSYWRpdXMpe2ZvcihhVT0zRDA7YVU8YU8uZ3Jp ZERhdGEubGVuZ3RoOz0KYVUrKyl7YUE9M0QoYVU+MCk/YU8uZ3JpZERhdGFbYVUtMV1bMV0rYXU6 YXU7YUs9M0RhTy5ncmlkRGF0YVthVV1bMV07aWYoYXc+PQphQSYmYXc8YUspe3JldHVybntzZXJp ZXNJbmRleDphTy5pbmRleCxwb2ludEluZGV4OmFVLGdyaWREYXRhOlthbC54LGFsLnldLGQ9CmF0 YTphTy5kYXRhW2FVXX19fX1icmVhaztjYXNlIEwuanFwbG90LlBpZVJlbmRlcmVyOmF6PTNEYU8u c3RhcnRBbmdsZS8xODAqTT0KYXRoLlBJO2FKPTNEYWwueC1hTy5fY2VudGVyWzBdO2FJPTNEYWwu eS1hTy5fY2VudGVyWzFdO2FQPTNETWF0aC5zcXJ0KE1hdGguPQpwb3coYUosMikrTWF0aC5wb3co YUksMikpO2lmKGFKPjAmJi1hST49M0QwKXthdz0zRDIqTWF0aC5QSS1NYXRoLmF0YW4oLWFJL2E9 CkopfWVsc2V7aWYoYUo+MCYmLWFJPDApe2F3PTNELU1hdGguYXRhbigtYUkvYUopfWVsc2V7aWYo YUo8MCl7YXc9M0RNYXRoLlBJLT0KTWF0aC5hdGFuKC1hSS9hSil9ZWxzZXtpZihhSj0zRD0zRDAm Ji1hST4wKXthdz0zRDMqTWF0aC5QSS8yfWVsc2V7aWYoYUo9M0Q9Cj0zRDAmJi1hSTwwKXthdz0z RE1hdGguUEkvMn1lbHNle2lmKGFKPTNEPTNEMCYmYUk9M0Q9M0QwKXthdz0zRDB9fX19fX1pZihh ej0KKXthdy09M0RhejtpZihhdzwwKXthdys9M0QyKk1hdGguUEl9ZWxzZXtpZihhdz4yKk1hdGgu UEkpe2F3LT0zRDIqTWF0aC5QSX19PQp9YXU9M0RhTy5zbGljZU1hcmdpbi8xODAqTWF0aC5QSTtp ZihhUDxhTy5fcmFkaXVzKXtmb3IoYVU9M0QwO2FVPGFPLmdyaWREYXQ9CmEubGVuZ3RoO2FVKysp e2FBPTNEKGFVPjApP2FPLmdyaWREYXRhW2FVLTFdWzFdK2F1OmF1O2FLPTNEYU8uZ3JpZERhdGFb YVVdWz0KMV07aWYoYXc+YUEmJmF3PGFLKXtyZXR1cm57c2VyaWVzSW5kZXg6YU8uaW5kZXgscG9p bnRJbmRleDphVSxncmlkRGF0YTpbYWwuPQp4LGFsLnldLGRhdGE6YU8uZGF0YVthVV19fX19YnJl YWs7Y2FzZSBMLmpxcGxvdC5CdWJibGVSZW5kZXJlcjphSj0zRGFsLng7YUk9Cj0zRGFsLnk7dmFy IGFGPTNEbnVsbDtpZihhTy5zaG93KXtmb3IodmFyIGFVPTNEMDthVTxhTy5ncmlkRGF0YS5sZW5n dGg7YVUrKz0KKXthUT0zRGFPLmdyaWREYXRhW2FVXTthWD0zRE1hdGguc3FydCgoYUotYVFbMF0p KihhSi1hUVswXSkrKGFJLWFRWzFdKSooYUktPQphUVsxXSkpO2lmKGFYPD0zRGFRWzJdJiYoYVg8 PTNEYVN8fGFTPTNEPTNEbnVsbCkpe2FTPTNEYVg7YUY9M0R7c2VyaWVzSW5kZXg9CjphVyxwb2lu dEluZGV4OmFVLGdyaWREYXRhOmFRLGRhdGE6YU8uZGF0YVthVV19fX1pZihhRiE9M0RudWxsKXty ZXR1cm4gYUZ9fT0KYnJlYWs7Y2FzZSBMLmpxcGxvdC5GdW5uZWxSZW5kZXJlcjphSj0zRGFsLng7 YUk9M0RhbC55O3ZhciBhTD0zRGFPLl92ZXJ0aWNlPQpzLGFwPTNEYUxbMF0sYW89M0RhTFthTC5s ZW5ndGgtMV0sYXQsYUUsYXk7ZnVuY3Rpb24gYVIoYTAsYTIsYTEpe3ZhciBhWj0zRCg9CmEyWzFd LWExWzFdKS8oYTJbMF0tYTFbMF0pO3ZhciBhWT0zRGEyWzFdLWFaKmEyWzBdO3ZhciBhMz0zRGEw K2EyWzFdO3JldHVybj0KWyhhMy1hWSkvYVosYTNdfWF0PTNEYVIoYUksYXBbMF0sYW9bM10pO2FF PTNEYVIoYUksYXBbMV0sYW9bMl0pO2ZvcihhVT0zRDA7PQphVTxhTC5sZW5ndGg7YVUrKyl7YXk9 M0RhTFthVV07aWYoYUk+PTNEYXlbMF1bMV0mJmFJPD0zRGF5WzNdWzFdJiZhSj49M0RhdFs9CjBd JiZhSjw9M0RhRVswXSl7cmV0dXJue3Nlcmllc0luZGV4OmFPLmluZGV4LHBvaW50SW5kZXg6YVUs Z3JpZERhdGE6bnVsbCxkYT0KdGE6YU8uZGF0YVthVV19fX1icmVhaztjYXNlIEwuanFwbG90Lkxp bmVSZW5kZXJlcjphSj0zRGFsLng7YUk9M0RhbC55O2FQPTNEPQphTy5yZW5kZXJlcjtpZihhTy5z aG93KXtpZigoYU8uZmlsbHx8KGFPLnJlbmRlcmVyLmJhbmRzLnNob3cmJmFPLnJlbmRlcmVyLmI9 CmFuZHMuZmlsbCkpJiYoIWFtLnBsdWdpbnMuaGlnaGxpZ2h0ZXJ8fCFhbS5wbHVnaW5zLmhpZ2hs aWdodGVyLnNob3cpKXt2YXIgYT0KeD0zRGZhbHNlO2lmKGFKPmFPLl9ib3VuZGluZ0JveFswXVsw XSYmYUo8YU8uX2JvdW5kaW5nQm94WzFdWzBdJiZhST5hTy5fYm91PQpuZGluZ0JveFsxXVsxXSYm YUk8YU8uX2JvdW5kaW5nQm94WzBdWzFdKXt2YXIgYUQ9M0RhTy5fYXJlYVBvaW50cy5sZW5ndGg7 dmE9CnIgYUc7dmFyIGFVPTNEYUQtMTtmb3IodmFyIGFHPTNEMDthRzxhRDthRysrKXt2YXIgYUM9 M0RbYU8uX2FyZWFQb2ludHNbYUddWz0KMF0sYU8uX2FyZWFQb2ludHNbYUddWzFdXTt2YXIgYUI9 M0RbYU8uX2FyZWFQb2ludHNbYVVdWzBdLGFPLl9hcmVhUG9pbnRzW2FVPQpdWzFdXTtpZihhQ1sx XTxhSSYmYUJbMV0+PTNEYUl8fGFCWzFdPGFJJiZhQ1sxXT49M0RhSSl7aWYoYUNbMF0rKGFJLWFD WzFdKS89CihhQlsxXS1hQ1sxXSkqKGFCWzBdLWFDWzBdKTxhSil7YXg9M0QhYXh9fWFVPTNEYUd9 fWlmKGF4KXtyZXR1cm57c2VyaWVzSW5kZT0KeDphVyxwb2ludEluZGV4Om51bGwsZ3JpZERhdGE6 YU8uZ3JpZERhdGEsZGF0YTphTy5kYXRhLHBvaW50czphTy5fYXJlYVBvaW50PQpzfX1icmVha31l bHNle2FOPTNEYU8ubWFya2VyUmVuZGVyZXIuc2l6ZS8yK2FPLm5laWdoYm9yVGhyZXNob2xkO2Fu PTNEKGFOPjA9Cik/YU46MDtmb3IodmFyIGFVPTNEMDthVTxhTy5ncmlkRGF0YS5sZW5ndGg7YVUr Kyl7YVE9M0RhTy5ncmlkRGF0YVthVV07aWYoYT0KUC5jb25zdHJ1Y3Rvcj0zRD0zREwuanFwbG90 Lk9ITENSZW5kZXJlcil7aWYoYVAuY2FuZGxlU3RpY2spe3ZhciBhdj0zRGFPLl95PQpheGlzLnNl cmllc191MnA7aWYoYUo+PTNEYVFbMF0tYVAuX2JvZHlXaWR0aC8yJiZhSjw9M0RhUVswXSthUC5f Ym9keVdpZHRoLzI9CiYmYUk+PTNEYXYoYU8uZGF0YVthVV1bMl0pJiZhSTw9M0RhdihhTy5kYXRh W2FVXVszXSkpe3JldHVybntzZXJpZXNJbmRleDphVz0KLHBvaW50SW5kZXg6YVUsZ3JpZERhdGE6 YVEsZGF0YTphTy5kYXRhW2FVXX19fWVsc2V7aWYoIWFQLmhsYyl7dmFyIGF2PTNEYU8uPQpfeWF4 aXMuc2VyaWVzX3UycDtpZihhSj49M0RhUVswXS1hUC5fdGlja0xlbmd0aCYmYUo8PTNEYVFbMF0r YVAuX3RpY2tMZW5ndGg9CiYmYUk+PTNEYXYoYU8uZGF0YVthVV1bMl0pJiZhSTw9M0RhdihhTy5k YXRhW2FVXVszXSkpe3JldHVybntzZXJpZXNJbmRleDphVz0KLHBvaW50SW5kZXg6YVUsZ3JpZERh dGE6YVEsZGF0YTphTy5kYXRhW2FVXX19fWVsc2V7dmFyIGF2PTNEYU8uX3lheGlzLnNlcmllPQpz X3UycDtpZihhSj49M0RhUVswXS1hUC5fdGlja0xlbmd0aCYmYUo8PTNEYVFbMF0rYVAuX3RpY2tM ZW5ndGgmJmFJPj0zRGF2KGE9Ck8uZGF0YVthVV1bMV0pJiZhSTw9M0RhdihhTy5kYXRhW2FVXVsy XSkpe3JldHVybntzZXJpZXNJbmRleDphVyxwb2ludEluZGV4Oj0KYVUsZ3JpZERhdGE6YVEsZGF0 YTphTy5kYXRhW2FVXX19fX19ZWxzZXtpZihhUVswXSE9M0RudWxsJiZhUVsxXSE9M0RudWxsKXth PQpYPTNETWF0aC5zcXJ0KChhSi1hUVswXSkqKGFKLWFRWzBdKSsoYUktYVFbMV0pKihhSS1hUVsx XSkpO2lmKGFYPD0zRGFuJiYoYVg9Cjw9M0RhU3x8YVM9M0Q9M0RudWxsKSl7YVM9M0RhWDtyZXR1 cm57c2VyaWVzSW5kZXg6YVcscG9pbnRJbmRleDphVSxncmlkRGF0YT0KOmFRLGRhdGE6YU8uZGF0 YVthVV19fX19fX19YnJlYWs7ZGVmYXVsdDphSj0zRGFsLng7YUk9M0RhbC55O2FQPTNEYU8ucmVu ZGVyPQplcjtpZihhTy5zaG93KXthTj0zRGFPLm1hcmtlclJlbmRlcmVyLnNpemUvMithTy5uZWln aGJvclRocmVzaG9sZDthbj0zRChhTj49CjApP2FOOjA7Zm9yKHZhciBhVT0zRDA7YVU8YU8uZ3Jp ZERhdGEubGVuZ3RoO2FVKyspe2FRPTNEYU8uZ3JpZERhdGFbYVVdO2lmKD0KYVAuY29uc3RydWN0 b3I9M0Q9M0RMLmpxcGxvdC5PSExDUmVuZGVyZXIpe2lmKGFQLmNhbmRsZVN0aWNrKXt2YXIgYXY9 M0RhTy5fPQp5YXhpcy5zZXJpZXNfdTJwO2lmKGFKPj0zRGFRWzBdLWFQLl9ib2R5V2lkdGgvMiYm YUo8PTNEYVFbMF0rYVAuX2JvZHlXaWR0aC89CjImJmFJPj0zRGF2KGFPLmRhdGFbYVVdWzJdKSYm YUk8PTNEYXYoYU8uZGF0YVthVV1bM10pKXtyZXR1cm57c2VyaWVzSW5kZXg6YT0KVyxwb2ludElu ZGV4OmFVLGdyaWREYXRhOmFRLGRhdGE6YU8uZGF0YVthVV19fX1lbHNle2lmKCFhUC5obGMpe3Zh ciBhdj0zRGFPPQouX3lheGlzLnNlcmllc191MnA7aWYoYUo+PTNEYVFbMF0tYVAuX3RpY2tMZW5n dGgmJmFKPD0zRGFRWzBdK2FQLl90aWNrTGVuZ3Q9CmgmJmFJPj0zRGF2KGFPLmRhdGFbYVVdWzJd KSYmYUk8PTNEYXYoYU8uZGF0YVthVV1bM10pKXtyZXR1cm57c2VyaWVzSW5kZXg6YT0KVyxwb2lu dEluZGV4OmFVLGdyaWREYXRhOmFRLGRhdGE6YU8uZGF0YVthVV19fX1lbHNle3ZhciBhdj0zRGFP Ll95YXhpcy5zZXJpPQplc191MnA7aWYoYUo+PTNEYVFbMF0tYVAuX3RpY2tMZW5ndGgmJmFKPD0z RGFRWzBdK2FQLl90aWNrTGVuZ3RoJiZhST49M0Rhdig9CmFPLmRhdGFbYVVdWzFdKSYmYUk8PTNE YXYoYU8uZGF0YVthVV1bMl0pKXtyZXR1cm57c2VyaWVzSW5kZXg6YVcscG9pbnRJbmRleD0KOmFV LGdyaWREYXRhOmFRLGRhdGE6YU8uZGF0YVthVV19fX19fWVsc2V7YVg9M0RNYXRoLnNxcnQoKGFK LWFRWzBdKSooYUotYVFbPQowXSkrKGFJLWFRWzFdKSooYUktYVFbMV0pKTtpZihhWDw9M0RhbiYm KGFYPD0zRGFTfHxhUz0zRD0zRG51bGwpKXthUz0zRGFYO3I9CmV0dXJue3Nlcmllc0luZGV4OmFX LHBvaW50SW5kZXg6YVUsZ3JpZERhdGE6YVEsZGF0YTphTy5kYXRhW2FVXX19fX19YnJlYWt9fT0K cmV0dXJuIG51bGx9dGhpcy5vbkNsaWNrPTNEZnVuY3Rpb24oYW4pe3ZhciBhbT0zRGFpKGFuKTt2 YXIgYXA9M0Rhbi5kYXRhLnBsPQpvdDt2YXIgYW89M0RhayhhbS5ncmlkUG9zLGFwKTt2YXIgYWw9 M0RMLkV2ZW50KCJqcXBsb3RDbGljayIpO2FsLnBhZ2VYPTNEYW49Ci5wYWdlWDthbC5wYWdlWT0z RGFuLnBhZ2VZO0wodGhpcykudHJpZ2dlcihhbCxbYW0uZ3JpZFBvcyxhbS5kYXRhUG9zLGFvLGFw XT0KKX07dGhpcy5vbkRibENsaWNrPTNEZnVuY3Rpb24oYW4pe3ZhciBhbT0zRGFpKGFuKTt2YXIg YXA9M0Rhbi5kYXRhLnBsb3Q7dmFyPQogYW89M0RhayhhbS5ncmlkUG9zLGFwKTt2YXIgYWw9M0RM LkV2ZW50KCJqcXBsb3REYmxDbGljayIpO2FsLnBhZ2VYPTNEYW4ucGE9CmdlWDthbC5wYWdlWT0z RGFuLnBhZ2VZO0wodGhpcykudHJpZ2dlcihhbCxbYW0uZ3JpZFBvcyxhbS5kYXRhUG9zLGFvLGFw XSl9Oz0KdGhpcy5vbk1vdXNlRG93bj0zRGZ1bmN0aW9uKGFuKXt2YXIgYW09M0RhaShhbik7dmFy IGFwPTNEYW4uZGF0YS5wbG90O3ZhciBhPQpvPTNEYWsoYW0uZ3JpZFBvcyxhcCk7dmFyIGFsPTNE TC5FdmVudCgianFwbG90TW91c2VEb3duIik7YWwucGFnZVg9M0Rhbi5wYWc9CmVYO2FsLnBhZ2VZ PTNEYW4ucGFnZVk7TCh0aGlzKS50cmlnZ2VyKGFsLFthbS5ncmlkUG9zLGFtLmRhdGFQb3MsYW8s YXBdKX07dD0KaGlzLm9uTW91c2VVcD0zRGZ1bmN0aW9uKGFuKXt2YXIgYW09M0RhaShhbik7dmFy IGFsPTNETC5FdmVudCgianFwbG90TW91c2VVPQpwIik7YWwucGFnZVg9M0Rhbi5wYWdlWDthbC5w YWdlWT0zRGFuLnBhZ2VZO0wodGhpcykudHJpZ2dlcihhbCxbYW0uZ3JpZFBvcyw9CmFtLmRhdGFQ b3MsbnVsbCxhbi5kYXRhLnBsb3RdKX07dGhpcy5vblJpZ2h0Q2xpY2s9M0RmdW5jdGlvbihhbil7 dmFyIGFtPTNEYT0KaShhbik7dmFyIGFwPTNEYW4uZGF0YS5wbG90O3ZhciBhbz0zRGFrKGFtLmdy aWRQb3MsYXApO2lmKGFwLmNhcHR1cmVSaWdodENsPQppY2spe2lmKGFuLndoaWNoPTNEPTNEMyl7 dmFyIGFsPTNETC5FdmVudCgianFwbG90UmlnaHRDbGljayIpO2FsLnBhZ2VYPTNEYW49Ci5wYWdl WDthbC5wYWdlWT0zRGFuLnBhZ2VZO0wodGhpcykudHJpZ2dlcihhbCxbYW0uZ3JpZFBvcyxhbS5k YXRhUG9zLGFvLGFwXT0KKX1lbHNle3ZhciBhbD0zREwuRXZlbnQoImpxcGxvdE1vdXNlVXAiKTth bC5wYWdlWD0zRGFuLnBhZ2VYO2FsLnBhZ2VZPTNEYW4uPQpwYWdlWTtMKHRoaXMpLnRyaWdnZXIo YWwsW2FtLmdyaWRQb3MsYW0uZGF0YVBvcyxhbyxhcF0pfX19O3RoaXMub25Nb3VzZU1vdmU9Cj0z RGZ1bmN0aW9uKGFuKXt2YXIgYW09M0RhaShhbik7dmFyIGFwPTNEYW4uZGF0YS5wbG90O3ZhciBh bz0zRGFrKGFtLmdyaWRQbz0KcyxhcCk7dmFyIGFsPTNETC5FdmVudCgianFwbG90TW91c2VNb3Zl Iik7YWwucGFnZVg9M0Rhbi5wYWdlWDthbC5wYWdlWT0zRGFuPQoucGFnZVk7TCh0aGlzKS50cmln Z2VyKGFsLFthbS5ncmlkUG9zLGFtLmRhdGFQb3MsYW8sYXBdKX07dGhpcy5vbk1vdXNlRW50ZXI9 Cj0zRGZ1bmN0aW9uKGFuKXt2YXIgYW09M0RhaShhbik7dmFyIGFvPTNEYW4uZGF0YS5wbG90O3Zh ciBhbD0zREwuRXZlbnQoImpxcD0KbG90TW91c2VFbnRlciIpO2FsLnBhZ2VYPTNEYW4ucGFnZVg7 YWwucGFnZVk9M0Rhbi5wYWdlWTthbC5yZWxhdGVkVGFyZ2V0PTNEPQphbi5yZWxhdGVkVGFyZ2V0 O0wodGhpcykudHJpZ2dlcihhbCxbYW0uZ3JpZFBvcyxhbS5kYXRhUG9zLG51bGwsYW9dKX07dGhp cy49Cm9uTW91c2VMZWF2ZT0zRGZ1bmN0aW9uKGFuKXt2YXIgYW09M0RhaShhbik7dmFyIGFvPTNE YW4uZGF0YS5wbG90O3ZhciBhbD0zRD0KTC5FdmVudCgianFwbG90TW91c2VMZWF2ZSIpO2FsLnBh Z2VYPTNEYW4ucGFnZVg7YWwucGFnZVk9M0Rhbi5wYWdlWTthbC5yZWxhPQp0ZWRUYXJnZXQ9M0Rh bi5yZWxhdGVkVGFyZ2V0O0wodGhpcykudHJpZ2dlcihhbCxbYW0uZ3JpZFBvcyxhbS5kYXRhUG9z LG51bGw9Cixhb10pfTt0aGlzLmRyYXdTZXJpZXM9M0RmdW5jdGlvbihhbixhbCl7dmFyIGFwLGFv LGFtO2FsPTNEKHR5cGVvZihhbik9M0Q9Cj0zRD0zRCJudW1iZXIiJiZhbD0zRD0zRG51bGwpP2Fu OmFsO2FuPTNEKHR5cGVvZihhbik9M0Q9M0Q9M0Qib2JqZWN0Iik/YW46ez0KfTtpZihhbCE9M0R1 KXthbz0zRHRoaXMuc2VyaWVzW2FsXTthbT0zRGFvLnNoYWRvd0NhbnZhcy5fY3R4O2FtLmNsZWFy UmVjdCgwPQosMCxhbS5jYW52YXMud2lkdGgsYW0uY2FudmFzLmhlaWdodCk7YW8uZHJhd1NoYWRv dyhhbSxhbix0aGlzKTthbT0zRGFvLmNhbnY9CmFzLl9jdHg7YW0uY2xlYXJSZWN0KDAsMCxhbS5j YW52YXMud2lkdGgsYW0uY2FudmFzLmhlaWdodCk7YW8uZHJhdyhhbSxhbix0aD0KaXMpO2lmKGFv LnJlbmRlcmVyLmNvbnN0cnVjdG9yPTNEPTNETC5qcXBsb3QuQmV6aWVyQ3VydmVSZW5kZXJlcil7 aWYoYWw8dGhpPQpzLnNlcmllcy5sZW5ndGgtMSl7dGhpcy5kcmF3U2VyaWVzKGFsKzEpfX19ZWxz ZXtmb3IoYXA9M0QwO2FwPHRoaXMuc2VyaWVzLmw9CmVuZ3RoO2FwKyspe2FvPTNEdGhpcy5zZXJp ZXNbYXBdO2FtPTNEYW8uc2hhZG93Q2FudmFzLl9jdHg7YW0uY2xlYXJSZWN0KDAsMD0KLGFtLmNh bnZhcy53aWR0aCxhbS5jYW52YXMuaGVpZ2h0KTthby5kcmF3U2hhZG93KGFtLGFuLHRoaXMpO2Ft PTNEYW8uY2FudmFzPQouX2N0eDthbS5jbGVhclJlY3QoMCwwLGFtLmNhbnZhcy53aWR0aCxhbS5j YW52YXMuaGVpZ2h0KTthby5kcmF3KGFtLGFuLHRoaXM9Cil9fWFuPTNEYWw9M0RhcD0zRGFvPTNE YW09M0RudWxsfTt0aGlzLm1vdmVTZXJpZXNUb0Zyb250PTNEZnVuY3Rpb24oYW0pe2FtPQo9M0Rw YXJzZUludChhbSwxMCk7dmFyIGFwPTNETC5pbkFycmF5KGFtLHRoaXMuc2VyaWVzU3RhY2spO2lm KGFwPTNEPTNELTEpe3I9CmV0dXJufWlmKGFwPTNEPTNEdGhpcy5zZXJpZXNTdGFjay5sZW5ndGgt MSl7dGhpcy5wcmV2aW91c1Nlcmllc1N0YWNrPTNEdGhpcz0KLnNlcmllc1N0YWNrLnNsaWNlKDAp O3JldHVybn12YXIgYWw9M0R0aGlzLnNlcmllc1N0YWNrW3RoaXMuc2VyaWVzU3RhY2subGVuPQpn dGgtMV07dmFyIGFvPTNEdGhpcy5zZXJpZXNbYW1dLmNhbnZhcy5fZWxlbS5kZXRhY2goKTt2YXIg YW49M0R0aGlzLnNlcmllc1s9CmFtXS5zaGFkb3dDYW52YXMuX2VsZW0uZGV0YWNoKCk7dGhpcy5z ZXJpZXNbYWxdLnNoYWRvd0NhbnZhcy5fZWxlbS5hZnRlcihhbj0KKTt0aGlzLnNlcmllc1thbF0u Y2FudmFzLl9lbGVtLmFmdGVyKGFvKTt0aGlzLnByZXZpb3VzU2VyaWVzU3RhY2s9M0R0aGlzLnNl PQpyaWVzU3RhY2suc2xpY2UoMCk7dGhpcy5zZXJpZXNTdGFjay5zcGxpY2UoYXAsMSk7dGhpcy5z ZXJpZXNTdGFjay5wdXNoKGFtKX09Cjt0aGlzLm1vdmVTZXJpZXNUb0JhY2s9M0RmdW5jdGlvbihh bSl7YW09M0RwYXJzZUludChhbSwxMCk7dmFyIGFwPTNETC5pbkFycj0KYXkoYW0sdGhpcy5zZXJp ZXNTdGFjayk7aWYoYXA9M0Q9M0QwfHxhcD0zRD0zRC0xKXtyZXR1cm59dmFyIGFsPTNEdGhpcy5z ZXJpPQplc1N0YWNrWzBdO3ZhciBhbz0zRHRoaXMuc2VyaWVzW2FtXS5jYW52YXMuX2VsZW0uZGV0 YWNoKCk7dmFyIGFuPTNEdGhpcy5zZXI9Cmllc1thbV0uc2hhZG93Q2FudmFzLl9lbGVtLmRldGFj aCgpO3RoaXMuc2VyaWVzW2FsXS5zaGFkb3dDYW52YXMuX2VsZW0uYmVmbz0KcmUoYW4pO3RoaXMu c2VyaWVzW2FsXS5jYW52YXMuX2VsZW0uYmVmb3JlKGFvKTt0aGlzLnByZXZpb3VzU2VyaWVzU3Rh Y2s9M0R0PQpoaXMuc2VyaWVzU3RhY2suc2xpY2UoMCk7dGhpcy5zZXJpZXNTdGFjay5zcGxpY2Uo YXAsMSk7dGhpcy5zZXJpZXNTdGFjay51bnM9CmhpZnQoYW0pfTt0aGlzLnJlc3RvcmVQcmV2aW91 c1Nlcmllc09yZGVyPTNEZnVuY3Rpb24oKXt2YXIgYXIsYXEsYXAsYW8sYW4sYT0KbCxhbTtpZih0 aGlzLnNlcmllc1N0YWNrPTNEPTNEdGhpcy5wcmV2aW91c1Nlcmllc1N0YWNrKXtyZXR1cm59Zm9y KGFyPTNEMTthPQpyPHRoaXMucHJldmlvdXNTZXJpZXNTdGFjay5sZW5ndGg7YXIrKyl7YWw9M0R0 aGlzLnByZXZpb3VzU2VyaWVzU3RhY2tbYXJdO2E9Cm09M0R0aGlzLnByZXZpb3VzU2VyaWVzU3Rh Y2tbYXItMV07YXA9M0R0aGlzLnNlcmllc1thbF0uY2FudmFzLl9lbGVtLmRldGFjaD0KKCk7YW89 M0R0aGlzLnNlcmllc1thbF0uc2hhZG93Q2FudmFzLl9lbGVtLmRldGFjaCgpO3RoaXMuc2VyaWVz W2FtXS5zaGFkb3dDPQphbnZhcy5fZWxlbS5hZnRlcihhbyk7dGhpcy5zZXJpZXNbYW1dLmNhbnZh cy5fZWxlbS5hZnRlcihhcCl9YW49M0R0aGlzLnNlcmk9CmVzU3RhY2suc2xpY2UoMCk7dGhpcy5z ZXJpZXNTdGFjaz0zRHRoaXMucHJldmlvdXNTZXJpZXNTdGFjay5zbGljZSgwKTt0aGlzLj0KcHJl dmlvdXNTZXJpZXNTdGFjaz0zRGFufTt0aGlzLnJlc3RvcmVPcmlnaW5hbFNlcmllc09yZGVyPTNE ZnVuY3Rpb24oKXt2YXIgPQphcCxhbyxhbD0zRFtdLGFuLGFtO2ZvcihhcD0zRDA7YXA8dGhpcy5z ZXJpZXMubGVuZ3RoO2FwKyspe2FsLnB1c2goYXApfWlmKHQ9Cmhpcy5zZXJpZXNTdGFjaz0zRD0z RGFsKXtyZXR1cm59dGhpcy5wcmV2aW91c1Nlcmllc1N0YWNrPTNEdGhpcy5zZXJpZXNTdGFjaz0K LnNsaWNlKDApO3RoaXMuc2VyaWVzU3RhY2s9M0RhbDtmb3IoYXA9M0QxO2FwPHRoaXMuc2VyaWVz U3RhY2subGVuZ3RoO2FwKyspPQp7YW49M0R0aGlzLnNlcmllc1thcF0uY2FudmFzLl9lbGVtLmRl dGFjaCgpO2FtPTNEdGhpcy5zZXJpZXNbYXBdLnNoYWRvd0NhbnY9CmFzLl9lbGVtLmRldGFjaCgp O3RoaXMuc2VyaWVzW2FwLTFdLnNoYWRvd0NhbnZhcy5fZWxlbS5hZnRlcihhbSk7dGhpcy5zZXJp ZT0Kc1thcC0xXS5jYW52YXMuX2VsZW0uYWZ0ZXIoYW4pfX07dGhpcy5hY3RpdmF0ZVRoZW1lPTNE ZnVuY3Rpb24oYWwpe3RoaXMudGhlPQptZUVuZ2luZS5hY3RpdmF0ZSh0aGlzLGFsKX19TC5qcXBs b3QuY29tcHV0ZUhpZ2hsaWdodENvbG9ycz0zRGZ1bmN0aW9uKGFpKXs9CnZhciBhaztpZihMLmlz QXJyYXkoYWkpKXthaz0zRFtdO2Zvcih2YXIgYW09M0QwO2FtPGFpLmxlbmd0aDthbSsrKXt2YXIg YWw9Cj0zREwuanFwbG90LmdldENvbG9yQ29tcG9uZW50cyhhaVthbV0pO3ZhciBhaD0zRFthbFsw XSxhbFsxXSxhbFsyXV07dmFyIGFuPQo9M0RhaFswXSthaFsxXSthaFsyXTtmb3IodmFyIGFqPTNE MDthajwzO2FqKyspe2FoW2FqXT0zRChhbj42NjApP2FoW2FqXSowLjg9CjU6MC43MyphaFthal0r OTA7YWhbYWpdPTNEcGFyc2VJbnQoYWhbYWpdLDEwKTsoYWhbYWpdPjI1NSk/MjU1OmFoW2FqXX1h aFszXT0KPTNEMC4zKzAuMzUqYWxbM107YWsucHVzaCgicmdiYSgiK2FoWzBdKyIsIithaFsxXSsi LCIrYWhbMl0rIiwiK2FoWzNdKyIpIil9PQp9ZWxzZXt2YXIgYWw9M0RMLmpxcGxvdC5nZXRDb2xv ckNvbXBvbmVudHMoYWkpO3ZhciBhaD0zRFthbFswXSxhbFsxXSxhbFsyXV09Cjt2YXIgYW49M0Rh aFswXSthaFsxXSthaFsyXTtmb3IodmFyIGFqPTNEMDthajwzO2FqKyspe2FoW2FqXT0zRChhbj42 NjApP2FoWz0KYWpdKjAuODU6MC43MyphaFthal0rOTA7YWhbYWpdPTNEcGFyc2VJbnQoYWhbYWpd LDEwKTsoYWhbYWpdPjI1NSk/MjU1OmFoW2FqPQpdfWFoWzNdPTNEMC4zKzAuMzUqYWxbM107YWs9 M0QicmdiYSgiK2FoWzBdKyIsIithaFsxXSsiLCIrYWhbMl0rIiwiK2FoWzNdKyI9CikifXJldHVy biBha307TC5qcXBsb3QuQ29sb3JHZW5lcmF0b3I9M0RmdW5jdGlvbihhaSl7YWk9M0RhaXx8TC5q cXBsb3QuY29uZj0KaWcuZGVmYXVsdENvbG9yczt2YXIgYWg9M0QwO3RoaXMubmV4dD0zRGZ1bmN0 aW9uKCl7aWYoYWg8YWkubGVuZ3RoKXtyZXR1cm4gPQphaVthaCsrXX1lbHNle2FoPTNEMDtyZXR1 cm4gYWlbYWgrK119fTt0aGlzLnByZXZpb3VzPTNEZnVuY3Rpb24oKXtpZihhaD4wKXs9CnJldHVy biBhaVthaC0tXX1lbHNle2FoPTNEYWkubGVuZ3RoLTE7cmV0dXJuIGFpW2FoXX19O3RoaXMuZ2V0 PTNEZnVuY3Rpb24oYT0Kayl7dmFyIGFqPTNEYWstYWkubGVuZ3RoKk1hdGguZmxvb3IoYWsvYWku bGVuZ3RoKTtyZXR1cm4gYWlbYWpdfTt0aGlzLnNldENvPQpsb3JzPTNEZnVuY3Rpb24oYWope2Fp PTNEYWp9O3RoaXMucmVzZXQ9M0RmdW5jdGlvbigpe2FoPTNEMH07dGhpcy5nZXRJbmRleD0KPTNE ZnVuY3Rpb24oKXtyZXR1cm4gYWh9O3RoaXMuc2V0SW5kZXg9M0RmdW5jdGlvbihhail7YWg9M0Rh an19O0wuanFwbG90LmhlPQp4MnJnYj0zRGZ1bmN0aW9uKGFqLGFoKXthaj0zRGFqLnJlcGxhY2Uo IiMiLCIiKTtpZihhai5sZW5ndGg9M0Q9M0QzKXthaj0zRGE9CmouY2hhckF0KDApK2FqLmNoYXJB dCgwKSthai5jaGFyQXQoMSkrYWouY2hhckF0KDEpK2FqLmNoYXJBdCgyKSthai5jaGFyQXQoMj0K KX12YXIgYWk7YWk9M0QicmdiYSgiK3BhcnNlSW50KGFqLnNsaWNlKDAsMiksMTYpKyIsICIrcGFy c2VJbnQoYWouc2xpY2UoMiw0PQopLDE2KSsiLCAiK3BhcnNlSW50KGFqLnNsaWNlKDQsNiksMTYp O2lmKGFoKXthaSs9M0QiLCAiK2FofWFpKz0zRCIpIjtyZXR1cm49CiBhaX07TC5qcXBsb3Qucmdi MmhleD0zRGZ1bmN0aW9uKGFtKXt2YXIgYWo9M0QvcmdiYT9cKCAqKFswLTldezEsM31cLj9bMC05 XT0KKiU/KSAqLCAqKFswLTldezEsM31cLj9bMC05XSolPykgKiwgKihbMC05XXsxLDN9XC4/WzAt OV0qJT8pICooPzosICpbMC05Ll0qPQopP1wpLzt2YXIgYWg9M0RhbS5tYXRjaChhaik7dmFyIGFs PTNEIiMiO2Zvcih2YXIgYWs9M0QxO2FrPDQ7YWsrKyl7dmFyIGFpO2k9CmYoYWhbYWtdLnNlYXJj aCgvJS8pIT0zRC0xKXthaT0zRHBhcnNlSW50KDI1NSphaFtha10vMTAwLDEwKS50b1N0cmluZygx Nik7aT0KZihhaS5sZW5ndGg9M0Q9M0QxKXthaT0zRCIwIithaX19ZWxzZXthaT0zRHBhcnNlSW50 KGFoW2FrXSwxMCkudG9TdHJpbmcoMTYpPQo7aWYoYWkubGVuZ3RoPTNEPTNEMSl7YWk9M0QiMCIr YWl9fWFsKz0zRGFpfXJldHVybiBhbH07TC5qcXBsb3Qubm9ybWFsaXplMnI9CmdiPTNEZnVuY3Rp b24oYWksYWgpe2lmKGFpLnNlYXJjaCgvXiAqcmdiYT9cKC8pIT0zRC0xKXtyZXR1cm4gYWl9ZWxz ZXtpZihhaT0KLnNlYXJjaCgvXiAqIz9bMC05YS1mQS1GXT9bMC05YS1mQS1GXS8pIT0zRC0xKXty ZXR1cm4gTC5qcXBsb3QuaGV4MnJnYihhaSxhPQpoKX1lbHNle3Rocm93IG5ldyBFcnJvcigiSW52 YWxpZCBjb2xvciBzcGVjIil9fX07TC5qcXBsb3QuZ2V0Q29sb3JDb21wb25lbnQ9CnM9M0RmdW5j dGlvbihhbSl7YW09M0RMLmpxcGxvdC5jb2xvcktleXdvcmRNYXBbYW1dfHxhbTt2YXIgYWs9M0RM LmpxcGxvdC5ubz0Kcm1hbGl6ZTJyZ2IoYW0pO3ZhciBhaj0zRC9yZ2JhP1woICooWzAtOV17MSwz fVwuP1swLTldKiU/KSAqLCAqKFswLTldezEsM31cPQouP1swLTldKiU/KSAqLCAqKFswLTldezEs M31cLj9bMC05XSolPykgKiw/ICooWzAtOS5dKiAqKT9cKS87dmFyIGFoPTNEYWsubWE9CnRjaChh aik7dmFyIGFpPTNEW107Zm9yKHZhciBhbD0zRDE7YWw8NDthbCsrKXtpZihhaFthbF0uc2VhcmNo KC8lLykhPTNELTEpez0KYWlbYWwtMV09M0RwYXJzZUludCgyNTUqYWhbYWxdLzEwMCwxMCl9ZWxz ZXthaVthbC0xXT0zRHBhcnNlSW50KGFoW2FsXSwxMCl9PQp9YWlbM109M0RwYXJzZUZsb2F0KGFo WzRdKT9wYXJzZUZsb2F0KGFoWzRdKToxO3JldHVybiBhaX07TC5qcXBsb3QuY29sb3JLZXk9Cndv cmRNYXA9M0R7YWxpY2VibHVlOiJyZ2IoMjQwLCAyNDgsIDI1NSkiLGFudGlxdWV3aGl0ZToicmdi KDI1MCwgMjM1LCAyMTUpIj0KLGFxdWE6InJnYiggMCwgMjU1LCAyNTUpIixhcXVhbWFyaW5lOiJy Z2IoMTI3LCAyNTUsIDIxMikiLGF6dXJlOiJyZ2IoMjQwLCAyPQo1NSwgMjU1KSIsYmVpZ2U6InJn YigyNDUsIDI0NSwgMjIwKSIsYmlzcXVlOiJyZ2IoMjU1LCAyMjgsIDE5NikiLGJsYWNrOiJyZ2I9 CiggMCwgMCwgMCkiLGJsYW5jaGVkYWxtb25kOiJyZ2IoMjU1LCAyMzUsIDIwNSkiLGJsdWU6InJn YiggMCwgMCwgMjU1KSIsYmx1ZT0KdmlvbGV0OiJyZ2IoMTM4LCA0MywgMjI2KSIsYnJvd246InJn YigxNjUsIDQyLCA0MikiLGJ1cmx5d29vZDoicmdiKDIyMiwgMTg0PQosIDEzNSkiLGNhZGV0Ymx1 ZToicmdiKCA5NSwgMTU4LCAxNjApIixjaGFydHJldXNlOiJyZ2IoMTI3LCAyNTUsIDApIixjaG9j b2w9CmF0ZToicmdiKDIxMCwgMTA1LCAzMCkiLGNvcmFsOiJyZ2IoMjU1LCAxMjcsIDgwKSIsY29y bmZsb3dlcmJsdWU6InJnYigxMDAsID0KMTQ5LCAyMzcpIixjb3Juc2lsazoicmdiKDI1NSwgMjQ4 LCAyMjApIixjcmltc29uOiJyZ2IoMjIwLCAyMCwgNjApIixjeWFuOiJyPQpnYiggMCwgMjU1LCAy NTUpIixkYXJrYmx1ZToicmdiKCAwLCAwLCAxMzkpIixkYXJrY3lhbjoicmdiKCAwLCAxMzksIDEz OSkiLGQ9CmFya2dvbGRlbnJvZDoicmdiKDE4NCwgMTM0LCAxMSkiLGRhcmtncmF5OiJyZ2IoMTY5 LCAxNjksIDE2OSkiLGRhcmtncmVlbjoicj0KZ2IoIDAsIDEwMCwgMCkiLGRhcmtncmV5OiJyZ2Io MTY5LCAxNjksIDE2OSkiLGRhcmtraGFraToicmdiKDE4OSwgMTgzLCAxMDcpPQoiLGRhcmttYWdl bnRhOiJyZ2IoMTM5LCAwLCAxMzkpIixkYXJrb2xpdmVncmVlbjoicmdiKCA4NSwgMTA3LCA0Nyki LGRhcmtvcmE9Cm5nZToicmdiKDI1NSwgMTQwLCAwKSIsZGFya29yY2hpZDoicmdiKDE1MywgNTAs IDIwNCkiLGRhcmtyZWQ6InJnYigxMzksIDAsID0KMCkiLGRhcmtzYWxtb246InJnYigyMzMsIDE1 MCwgMTIyKSIsZGFya3NlYWdyZWVuOiJyZ2IoMTQzLCAxODgsIDE0MykiLGRhcmtzPQpsYXRlYmx1 ZToicmdiKCA3MiwgNjEsIDEzOSkiLGRhcmtzbGF0ZWdyYXk6InJnYiggNDcsIDc5LCA3OSkiLGRh cmtzbGF0ZWdyZXk9CjoicmdiKCA0NywgNzksIDc5KSIsZGFya3R1cnF1b2lzZToicmdiKCAwLCAy MDYsIDIwOSkiLGRhcmt2aW9sZXQ6InJnYigxNDgsID0KMCwgMjExKSIsZGVlcHBpbms6InJnYigy NTUsIDIwLCAxNDcpIixkZWVwc2t5Ymx1ZToicmdiKCAwLCAxOTEsIDI1NSkiLGRpbWdyPQpheToi cmdiKDEwNSwgMTA1LCAxMDUpIixkaW1ncmV5OiJyZ2IoMTA1LCAxMDUsIDEwNSkiLGRvZGdlcmJs dWU6InJnYiggMzAsIDE9CjQ0LCAyNTUpIixmaXJlYnJpY2s6InJnYigxNzgsIDM0LCAzNCkiLGZs b3JhbHdoaXRlOiJyZ2IoMjU1LCAyNTAsIDI0MCkiLGZvcj0KZXN0Z3JlZW46InJnYiggMzQsIDEz OSwgMzQpIixmdWNoc2lhOiJyZ2IoMjU1LCAwLCAyNTUpIixnYWluc2Jvcm86InJnYigyMjAsPQog MjIwLCAyMjApIixnaG9zdHdoaXRlOiJyZ2IoMjQ4LCAyNDgsIDI1NSkiLGdvbGQ6InJnYigyNTUs IDIxNSwgMCkiLGdvbGRlbnI9Cm9kOiJyZ2IoMjE4LCAxNjUsIDMyKSIsZ3JheToicmdiKDEyOCwg MTI4LCAxMjgpIixncmV5OiJyZ2IoMTI4LCAxMjgsIDEyOCkiLD0KZ3JlZW46InJnYiggMCwgMTI4 LCAwKSIsZ3JlZW55ZWxsb3c6InJnYigxNzMsIDI1NSwgNDcpIixob25leWRldzoicmdiKDI0MCwg PQoyNTUsIDI0MCkiLGhvdHBpbms6InJnYigyNTUsIDEwNSwgMTgwKSIsaW5kaWFucmVkOiJyZ2Io MjA1LCA5MiwgOTIpIixpbmRpZ289CjoicmdiKCA3NSwgMCwgMTMwKSIsaXZvcnk6InJnYigyNTUs IDI1NSwgMjQwKSIsa2hha2k6InJnYigyNDAsIDIzMCwgMTQwKSIsbD0KYXZlbmRlcjoicmdiKDIz MCwgMjMwLCAyNTApIixsYXZlbmRlcmJsdXNoOiJyZ2IoMjU1LCAyNDAsIDI0NSkiLGxhd25ncmVl bjoiPQpyZ2IoMTI0LCAyNTIsIDApIixsZW1vbmNoaWZmb246InJnYigyNTUsIDI1MCwgMjA1KSIs bGlnaHRibHVlOiJyZ2IoMTczLCAyMTY9CiwgMjMwKSIsbGlnaHRjb3JhbDoicmdiKDI0MCwgMTI4 LCAxMjgpIixsaWdodGN5YW46InJnYigyMjQsIDI1NSwgMjU1KSIsbGlnaD0KdGdvbGRlbnJvZHll bGxvdzoicmdiKDI1MCwgMjUwLCAyMTApIixsaWdodGdyYXk6InJnYigyMTEsIDIxMSwgMjExKSIs bGlnaHRnPQpyZWVuOiJyZ2IoMTQ0LCAyMzgsIDE0NCkiLGxpZ2h0Z3JleToicmdiKDIxMSwgMjEx LCAyMTEpIixsaWdodHBpbms6InJnYigyNTU9CiwgMTgyLCAxOTMpIixsaWdodHNhbG1vbjoicmdi KDI1NSwgMTYwLCAxMjIpIixsaWdodHNlYWdyZWVuOiJyZ2IoIDMyLCAxNzgsID0KMTcwKSIsbGln aHRza3libHVlOiJyZ2IoMTM1LCAyMDYsIDI1MCkiLGxpZ2h0c2xhdGVncmF5OiJyZ2IoMTE5LCAx MzYsIDE1MykiPQosbGlnaHRzbGF0ZWdyZXk6InJnYigxMTksIDEzNiwgMTUzKSIsbGlnaHRzdGVl bGJsdWU6InJnYigxNzYsIDE5NiwgMjIyKSIsbGk9CmdodHllbGxvdzoicmdiKDI1NSwgMjU1LCAy MjQpIixsaW1lOiJyZ2IoIDAsIDI1NSwgMCkiLGxpbWVncmVlbjoicmdiKCA1MCwgMj0KMDUsIDUw KSIsbGluZW46InJnYigyNTAsIDI0MCwgMjMwKSIsbWFnZW50YToicmdiKDI1NSwgMCwgMjU1KSIs bWFyb29uOiJyZ2IoPQoxMjgsIDAsIDApIixtZWRpdW1hcXVhbWFyaW5lOiJyZ2IoMTAyLCAyMDUs IDE3MCkiLG1lZGl1bWJsdWU6InJnYiggMCwgMCwgMjA9CjUpIixtZWRpdW1vcmNoaWQ6InJnYigx ODYsIDg1LCAyMTEpIixtZWRpdW1wdXJwbGU6InJnYigxNDcsIDExMiwgMjE5KSIsbWVkaT0KdW1z ZWFncmVlbjoicmdiKCA2MCwgMTc5LCAxMTMpIixtZWRpdW1zbGF0ZWJsdWU6InJnYigxMjMsIDEw NCwgMjM4KSIsbWVkaXVtPQpzcHJpbmdncmVlbjoicmdiKCAwLCAyNTAsIDE1NCkiLG1lZGl1bXR1 cnF1b2lzZToicmdiKCA3MiwgMjA5LCAyMDQpIixtZWRpdW09CnZpb2xldHJlZDoicmdiKDE5OSwg MjEsIDEzMykiLG1pZG5pZ2h0Ymx1ZToicmdiKCAyNSwgMjUsIDExMikiLG1pbnRjcmVhbToicj0K Z2IoMjQ1LCAyNTUsIDI1MCkiLG1pc3R5cm9zZToicmdiKDI1NSwgMjI4LCAyMjUpIixtb2NjYXNp bjoicmdiKDI1NSwgMjI4LCAxPQo4MSkiLG5hdmFqb3doaXRlOiJyZ2IoMjU1LCAyMjIsIDE3Myki LG5hdnk6InJnYiggMCwgMCwgMTI4KSIsb2xkbGFjZToicmdiKDI9CjUzLCAyNDUsIDIzMCkiLG9s aXZlOiJyZ2IoMTI4LCAxMjgsIDApIixvbGl2ZWRyYWI6InJnYigxMDcsIDE0MiwgMzUpIixvcmFu Zz0KZToicmdiKDI1NSwgMTY1LCAwKSIsb3JhbmdlcmVkOiJyZ2IoMjU1LCA2OSwgMCkiLG9yY2hp ZDoicmdiKDIxOCwgMTEyLCAyMTQpPQoiLHBhbGVnb2xkZW5yb2Q6InJnYigyMzgsIDIzMiwgMTcw KSIscGFsZWdyZWVuOiJyZ2IoMTUyLCAyNTEsIDE1MikiLHBhbGV0dXI9CnF1b2lzZToicmdiKDE3 NSwgMjM4LCAyMzgpIixwYWxldmlvbGV0cmVkOiJyZ2IoMjE5LCAxMTIsIDE0NykiLHBhcGF5YXdo aXA6Ij0KcmdiKDI1NSwgMjM5LCAyMTMpIixwZWFjaHB1ZmY6InJnYigyNTUsIDIxOCwgMTg1KSIs cGVydToicmdiKDIwNSwgMTMzLCA2MykiPQoscGluazoicmdiKDI1NSwgMTkyLCAyMDMpIixwbHVt OiJyZ2IoMjIxLCAxNjAsIDIyMSkiLHBvd2RlcmJsdWU6InJnYigxNzYsIDI9CjI0LCAyMzApIixw dXJwbGU6InJnYigxMjgsIDAsIDEyOCkiLHJlZDoicmdiKDI1NSwgMCwgMCkiLHJvc3licm93bjoi cmdiKDE4OD0KLCAxNDMsIDE0MykiLHJveWFsYmx1ZToicmdiKCA2NSwgMTA1LCAyMjUpIixzYWRk bGVicm93bjoicmdiKDEzOSwgNjksIDE5KSIsPQpzYWxtb246InJnYigyNTAsIDEyOCwgMTE0KSIs c2FuZHlicm93bjoicmdiKDI0NCwgMTY0LCA5NikiLHNlYWdyZWVuOiJyZ2IoIDQ9CjYsIDEzOSwg ODcpIixzZWFzaGVsbDoicmdiKDI1NSwgMjQ1LCAyMzgpIixzaWVubmE6InJnYigxNjAsIDgyLCA0 NSkiLHNpbHZlcj0KOiJyZ2IoMTkyLCAxOTIsIDE5MikiLHNreWJsdWU6InJnYigxMzUsIDIwNiwg MjM1KSIsc2xhdGVibHVlOiJyZ2IoMTA2LCA5MCwgPQoyMDUpIixzbGF0ZWdyYXk6InJnYigxMTIs IDEyOCwgMTQ0KSIsc2xhdGVncmV5OiJyZ2IoMTEyLCAxMjgsIDE0NCkiLHNub3c6InI9CmdiKDI1 NSwgMjUwLCAyNTApIixzcHJpbmdncmVlbjoicmdiKCAwLCAyNTUsIDEyNykiLHN0ZWVsYmx1ZToi cmdiKCA3MCwgMTMwLD0KIDE4MCkiLHRhbjoicmdiKDIxMCwgMTgwLCAxNDApIix0ZWFsOiJyZ2Io IDAsIDEyOCwgMTI4KSIsdGhpc3RsZToicmdiKDIxNiwgPQoxOTEsIDIxNikiLHRvbWF0bzoicmdi KDI1NSwgOTksIDcxKSIsdHVycXVvaXNlOiJyZ2IoIDY0LCAyMjQsIDIwOCkiLHZpb2xldDo9CiJy Z2IoMjM4LCAxMzAsIDIzOCkiLHdoZWF0OiJyZ2IoMjQ1LCAyMjIsIDE3OSkiLHdoaXRlOiJyZ2Io MjU1LCAyNTUsIDI1NSkiLD0Kd2hpdGVzbW9rZToicmdiKDI0NSwgMjQ1LCAyNDUpIix5ZWxsb3c6 InJnYigyNTUsIDI1NSwgMCkiLHllbGxvd2dyZWVuOiJyZ2IoPQoxNTQsIDIwNSwgNTApIn07TC5q cXBsb3QuQXhpc0xhYmVsUmVuZGVyZXI9M0RmdW5jdGlvbihhaCl7TC5qcXBsb3QuRWxlbUNvbnQ9 CmFpbmVyLmNhbGwodGhpcyk7dGhpcy5heGlzO3RoaXMuc2hvdz0zRHRydWU7dGhpcy5sYWJlbD0z RCIiO3RoaXMuZm9udEZhbWlseT0KPTNEbnVsbDt0aGlzLmZvbnRTaXplPTNEbnVsbDt0aGlzLnRl eHRDb2xvcj0zRG51bGw7dGhpcy5fZWxlbTt0aGlzLmVzY2FwZUhUPQpNTD0zRGZhbHNlO0wuZXh0 ZW5kKHRydWUsdGhpcyxhaCl9O0wuanFwbG90LkF4aXNMYWJlbFJlbmRlcmVyLnByb3RvdHlwZT0z RG49CmV3IEwuanFwbG90LkVsZW1Db250YWluZXIoKTtMLmpxcGxvdC5BeGlzTGFiZWxSZW5kZXJl ci5wcm90b3R5cGUuY29uc3RydWN0bz0Kcj0zREwuanFwbG90LkF4aXNMYWJlbFJlbmRlcmVyO0wu anFwbG90LkF4aXNMYWJlbFJlbmRlcmVyLnByb3RvdHlwZS5pbml0PTNEPQpmdW5jdGlvbihhaCl7 TC5leHRlbmQodHJ1ZSx0aGlzLGFoKX07TC5qcXBsb3QuQXhpc0xhYmVsUmVuZGVyZXIucHJvdG90 eXBlLmQ9CnJhdz0zRGZ1bmN0aW9uKGFoLGFpKXtpZih0aGlzLl9lbGVtKXt0aGlzLl9lbGVtLmVt cHR5Rm9yY2UoKTt0aGlzLl9lbGVtPTNEbj0KdWxsfXRoaXMuX2VsZW09M0RMKCc8ZGl2IHN0eWxl PTNEInBvc2l0aW9uOmFic29sdXRlOyIgY2xhc3M9M0QianFwbG90LScrdGhpPQpzLmF4aXMrJy1s YWJlbCI+PC9kaXY+Jyk7aWYoTnVtYmVyKHRoaXMubGFiZWwpKXt0aGlzLl9lbGVtLmNzcygid2hp dGUtc3BhY2U9CiIsIm5vd3JhcCIpfWlmKCF0aGlzLmVzY2FwZUhUTUwpe3RoaXMuX2VsZW0uaHRt bCh0aGlzLmxhYmVsKX1lbHNle3RoaXMuX2VsZT0KbS50ZXh0KHRoaXMubGFiZWwpfWlmKHRoaXMu Zm9udEZhbWlseSl7dGhpcy5fZWxlbS5jc3MoImZvbnQtZmFtaWx5Iix0aGlzLmZvPQpudEZhbWls eSl9aWYodGhpcy5mb250U2l6ZSl7dGhpcy5fZWxlbS5jc3MoImZvbnQtc2l6ZSIsdGhpcy5mb250 U2l6ZSl9aWYodGg9CmlzLnRleHRDb2xvcil7dGhpcy5fZWxlbS5jc3MoImNvbG9yIix0aGlzLnRl eHRDb2xvcil9cmV0dXJuIHRoaXMuX2VsZW19O0wuaj0KcXBsb3QuQXhpc0xhYmVsUmVuZGVyZXIu cHJvdG90eXBlLnBhY2s9M0RmdW5jdGlvbigpe307TC5qcXBsb3QuQXhpc1RpY2tSZW5kPQplcmVy PTNEZnVuY3Rpb24oYWgpe0wuanFwbG90LkVsZW1Db250YWluZXIuY2FsbCh0aGlzKTt0aGlzLm1h cms9M0Qib3V0c2lkZSI9Cjt0aGlzLmF4aXM7dGhpcy5zaG93TWFyaz0zRHRydWU7dGhpcy5zaG93 R3JpZGxpbmU9M0R0cnVlO3RoaXMuaXNNaW5vclRpY2s9Cj0zRGZhbHNlO3RoaXMuc2l6ZT0zRDQ7 dGhpcy5tYXJrU2l6ZT0zRDY7dGhpcy5zaG93PTNEdHJ1ZTt0aGlzLnNob3dMYWJlbD0zRD0KdHJ1 ZTt0aGlzLmxhYmVsPTNEbnVsbDt0aGlzLnZhbHVlPTNEbnVsbDt0aGlzLl9zdHlsZXM9M0R7fTt0 aGlzLmZvcm1hdHRlcj0KPTNETC5qcXBsb3QuRGVmYXVsdFRpY2tGb3JtYXR0ZXI7dGhpcy5wcmVm aXg9M0QiIjt0aGlzLnN1ZmZpeD0zRCIiO3RoaXMuZm9yPQptYXRTdHJpbmc9M0QiIjt0aGlzLmZv bnRGYW1pbHk7dGhpcy5mb250U2l6ZTt0aGlzLnRleHRDb2xvcjt0aGlzLmVzY2FwZUhUTUw9Cj0z RGZhbHNlO3RoaXMuX2VsZW07dGhpcy5fYnJlYWtUaWNrPTNEZmFsc2U7TC5leHRlbmQodHJ1ZSx0 aGlzLGFoKX07TC5qcXBsbz0KdC5BeGlzVGlja1JlbmRlcmVyLnByb3RvdHlwZS5pbml0PTNEZnVu Y3Rpb24oYWgpe0wuZXh0ZW5kKHRydWUsdGhpcyxhaCl9O0wuPQpqcXBsb3QuQXhpc1RpY2tSZW5k ZXJlci5wcm90b3R5cGU9M0RuZXcgTC5qcXBsb3QuRWxlbUNvbnRhaW5lcigpO0wuanFwbG90LkE9 Cnhpc1RpY2tSZW5kZXJlci5wcm90b3R5cGUuY29uc3RydWN0b3I9M0RMLmpxcGxvdC5BeGlzVGlj a1JlbmRlcmVyO0wuanFwbG90Lj0KQXhpc1RpY2tSZW5kZXJlci5wcm90b3R5cGUuc2V0VGljaz0z RGZ1bmN0aW9uKGFoLGFqLGFpKXt0aGlzLnZhbHVlPTNEYWg7dGhpPQpzLmF4aXM9M0RhajtpZihh aSl7dGhpcy5pc01pbm9yVGljaz0zRHRydWV9cmV0dXJuIHRoaXN9O0wuanFwbG90LkF4aXNUaWNr UmU9Cm5kZXJlci5wcm90b3R5cGUuZHJhdz0zRGZ1bmN0aW9uKCl7aWYodGhpcy5sYWJlbD0zRD0z RD0zRG51bGwpe3RoaXMubGFiZWw9Cj0zRHRoaXMucHJlZml4K3RoaXMuZm9ybWF0dGVyKHRoaXMu Zm9ybWF0U3RyaW5nLHRoaXMudmFsdWUpK3RoaXMuc3VmZml4fXZhcj0KIGFpPTNEe3Bvc2l0aW9u OiJhYnNvbHV0ZSJ9O2lmKE51bWJlcih0aGlzLmxhYmVsKSl7YWkud2hpdFNwYWNlPTNEIm5vd3Jh cCJ9PQppZih0aGlzLl9lbGVtKXt0aGlzLl9lbGVtLmVtcHR5Rm9yY2UoKTt0aGlzLl9lbGVtPTNE bnVsbH10aGlzLl9lbGVtPTNETChkb2M9CnVtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTt0aGlz Ll9lbGVtLmFkZENsYXNzKCJqcXBsb3QtIit0aGlzLmF4aXMrIi10aWNrIj0KKTtpZighdGhpcy5l c2NhcGVIVE1MKXt0aGlzLl9lbGVtLmh0bWwodGhpcy5sYWJlbCl9ZWxzZXt0aGlzLl9lbGVtLnRl eHQodGhpPQpzLmxhYmVsKX10aGlzLl9lbGVtLmNzcyhhaSk7Zm9yKHZhciBhaCBpbiB0aGlzLl9z dHlsZXMpe3RoaXMuX2VsZW0uY3NzKGFoLHQ9Cmhpcy5fc3R5bGVzW2FoXSl9aWYodGhpcy5mb250 RmFtaWx5KXt0aGlzLl9lbGVtLmNzcygiZm9udC1mYW1pbHkiLHRoaXMuZm9udD0KRmFtaWx5KX1p Zih0aGlzLmZvbnRTaXplKXt0aGlzLl9lbGVtLmNzcygiZm9udC1zaXplIix0aGlzLmZvbnRTaXpl KX1pZih0aGlzPQoudGV4dENvbG9yKXt0aGlzLl9lbGVtLmNzcygiY29sb3IiLHRoaXMudGV4dENv bG9yKX1pZih0aGlzLl9icmVha1RpY2spe3RoaXM9Ci5fZWxlbS5hZGRDbGFzcygianFwbG90LWJy ZWFrVGljayIpfXJldHVybiB0aGlzLl9lbGVtfTtMLmpxcGxvdC5EZWZhdWx0VGljaz0KRm9ybWF0 dGVyPTNEZnVuY3Rpb24oYWgsYWkpe2lmKHR5cGVvZiBhaT0zRD0zRCJudW1iZXIiKXtpZighYWgp e2FoPTNETC5qcXBsPQpvdC5jb25maWcuZGVmYXVsdFRpY2tGb3JtYXRTdHJpbmd9cmV0dXJuIEwu anFwbG90LnNwcmludGYoYWgsYWkpfWVsc2V7cmV0dXI9Cm4gU3RyaW5nKGFpKX19O0wuanFwbG90 LlBlcmNlbnRUaWNrRm9ybWF0dGVyPTNEZnVuY3Rpb24oYWgsYWkpe2lmKHR5cGVvZiBhaT0KPTNE PTNEIm51bWJlciIpe2FpPTNEMTAwKmFpO2lmKCFhaCl7YWg9M0RMLmpxcGxvdC5jb25maWcuZGVm YXVsdFRpY2tGb3JtYXRTPQp0cmluZ31yZXR1cm4gTC5qcXBsb3Quc3ByaW50ZihhaCxhaSl9ZWxz ZXtyZXR1cm4gU3RyaW5nKGFpKX19O0wuanFwbG90LkF4aXM9ClRpY2tSZW5kZXJlci5wcm90b3R5 cGUucGFjaz0zRGZ1bmN0aW9uKCl7fTtMLmpxcGxvdC5DYW52YXNHcmlkUmVuZGVyZXI9M0RmdT0K bmN0aW9uKCl7dGhpcy5zaGFkb3dSZW5kZXJlcj0zRG5ldyBMLmpxcGxvdC5TaGFkb3dSZW5kZXJl cigpfTtMLmpxcGxvdC5DYW52PQphc0dyaWRSZW5kZXJlci5wcm90b3R5cGUuaW5pdD0zRGZ1bmN0 aW9uKGFpKXt0aGlzLl9jdHg7TC5leHRlbmQodHJ1ZSx0aGlzLGE9CmkpO3ZhciBhaD0zRHtsaW5l Sm9pbjoibWl0ZXIiLGxpbmVDYXA6InJvdW5kIixmaWxsOmZhbHNlLGlzYXJjOmZhbHNlLGFuZ2xl Oj0KdGhpcy5zaGFkb3dBbmdsZSxvZmZzZXQ6dGhpcy5zaGFkb3dPZmZzZXQsYWxwaGE6dGhpcy5z aGFkb3dBbHBoYSxkZXB0aDp0aGlzPQouc2hhZG93RGVwdGgsbGluZVdpZHRoOnRoaXMuc2hhZG93 V2lkdGgsY2xvc2VQYXRoOmZhbHNlLHN0cm9rZVN0eWxlOnRoaXMuc2g9CmFkb3dDb2xvcn07dGhp cy5yZW5kZXJlci5zaGFkb3dSZW5kZXJlci5pbml0KGFoKX07TC5qcXBsb3QuQ2FudmFzR3JpZFJl bmRlcj0KZXIucHJvdG90eXBlLmNyZWF0ZUVsZW1lbnQ9M0RmdW5jdGlvbihhayl7dmFyIGFqO2lm KHRoaXMuX2VsZW0pe2lmKEwuanFwbG90PQoudXNlX2V4Y2FudmFzJiZ3aW5kb3cuR192bWxDYW52 YXNNYW5hZ2VyLnVuaW5pdEVsZW1lbnQhPTNEPTNEdSl7YWo9M0R0aGlzLl89CmVsZW0uZ2V0KDAp O3dpbmRvdy5HX3ZtbENhbnZhc01hbmFnZXIudW5pbml0RWxlbWVudChhaik7YWo9M0RudWxsfXRo aXMuX2VsZT0KbS5lbXB0eUZvcmNlKCk7dGhpcy5fZWxlbT0zRG51bGx9YWo9M0Rhay5jYW52YXNN YW5hZ2VyLmdldENhbnZhcygpO3ZhciBhaD0KPTNEdGhpcy5fcGxvdERpbWVuc2lvbnMud2lkdGg7 dmFyIGFpPTNEdGhpcy5fcGxvdERpbWVuc2lvbnMuaGVpZ2h0O2FqLndpZHRoPQo9M0RhaDthai5o ZWlnaHQ9M0RhaTt0aGlzLl9lbGVtPTNETChhaik7dGhpcy5fZWxlbS5hZGRDbGFzcygianFwbG90 LWdyaWQtY2E9Cm52YXMiKTt0aGlzLl9lbGVtLmNzcyh7cG9zaXRpb246ImFic29sdXRlIixsZWZ0 OjAsdG9wOjB9KTthaj0zRGFrLmNhbnZhc01hbj0KYWdlci5pbml0Q2FudmFzKGFqKTt0aGlzLl90 b3A9M0R0aGlzLl9vZmZzZXRzLnRvcDt0aGlzLl9ib3R0b209M0RhaS10aGlzLl9vPQpmZnNldHMu Ym90dG9tO3RoaXMuX2xlZnQ9M0R0aGlzLl9vZmZzZXRzLmxlZnQ7dGhpcy5fcmlnaHQ9M0RhaC10 aGlzLl9vZmZzZXQ9CnMucmlnaHQ7dGhpcy5fd2lkdGg9M0R0aGlzLl9yaWdodC10aGlzLl9sZWZ0 O3RoaXMuX2hlaWdodD0zRHRoaXMuX2JvdHRvbS10aD0KaXMuX3RvcDthaj0zRG51bGw7cmV0dXJu IHRoaXMuX2VsZW19O0wuanFwbG90LkNhbnZhc0dyaWRSZW5kZXJlci5wcm90b3R5cGUuPQpkcmF3 PTNEZnVuY3Rpb24oKXt0aGlzLl9jdHg9M0R0aGlzLl9lbGVtLmdldCgwKS5nZXRDb250ZXh0KCIy ZCIpO3ZhciBhdD0zRHQ9Cmhpcy5fY3R4O3ZhciBhdz0zRHRoaXMuX2F4ZXM7YXQuc2F2ZSgpO2F0 LmNsZWFyUmVjdCgwLDAsdGhpcy5fcGxvdERpbWVuc2lvbj0Kcy53aWR0aCx0aGlzLl9wbG90RGlt ZW5zaW9ucy5oZWlnaHQpO2F0LmZpbGxTdHlsZT0zRHRoaXMuYmFja2dyb3VuZENvbG9yfHx0PQpo aXMuYmFja2dyb3VuZDthdC5maWxsUmVjdCh0aGlzLl9sZWZ0LHRoaXMuX3RvcCx0aGlzLl93aWR0 aCx0aGlzLl9oZWlnaHQpO2E9CnQuc2F2ZSgpO2F0LmxpbmVKb2luPTNEIm1pdGVyIjthdC5saW5l Q2FwPTNEImJ1dHQiO2F0LmxpbmVXaWR0aD0zRHRoaXMuZ3JpZD0KTGluZVdpZHRoO2F0LnN0cm9r ZVN0eWxlPTNEdGhpcy5ncmlkTGluZUNvbG9yO3ZhciBhQSxheixhcCxhcTt2YXIgYW09M0RbInhh PQp4aXMiLCJ5YXhpcyIsIngyYXhpcyIsInkyYXhpcyJdO2Zvcih2YXIgYXk9M0Q0O2F5PjA7YXkt LSl7dmFyIGFEPTNEYW1bYXktMV09Cjt2YXIgYWg9M0Rhd1thRF07dmFyIGFCPTNEYWguX3RpY2tz O3ZhciBhcj0zRGFCLmxlbmd0aDtpZihhaC5zaG93KXtpZihhaC5kcj0KYXdCYXNlbGluZSl7dmFy IGFDPTNEe307aWYoYWguYmFzZWxpbmVXaWR0aCE9M0Q9M0RudWxsKXthQy5saW5lV2lkdGg9M0Rh aC5iPQphc2VsaW5lV2lkdGh9aWYoYWguYmFzZWxpbmVDb2xvciE9M0Q9M0RudWxsKXthQy5zdHJv a2VTdHlsZT0zRGFoLmJhc2VsaW5lQ289Cmxvcn1zd2l0Y2goYUQpe2Nhc2UieGF4aXMiOmFvKHRo aXMuX2xlZnQsdGhpcy5fYm90dG9tLHRoaXMuX3JpZ2h0LHRoaXMuX2JvdD0KdG9tLGFDKTticmVh aztjYXNlInlheGlzIjphbyh0aGlzLl9sZWZ0LHRoaXMuX2JvdHRvbSx0aGlzLl9sZWZ0LHRoaXMu X3RvcCxhPQpDKTticmVhaztjYXNlIngyYXhpcyI6YW8odGhpcy5fbGVmdCx0aGlzLl9ib3R0b20s dGhpcy5fcmlnaHQsdGhpcy5fYm90dG9tLGE9CkMpO2JyZWFrO2Nhc2UieTJheGlzIjphbyh0aGlz Ll9yaWdodCx0aGlzLl9ib3R0b20sdGhpcy5fcmlnaHQsdGhpcy5fdG9wLGFDKT0KO2JyZWFrfX1m b3IodmFyIGF1PTNEYXI7YXU+MDthdS0tKXt2YXIgYW49M0RhQlthdS0xXTtpZihhbi5zaG93KXt2 YXIgYWs9M0RNPQphdGgucm91bmQoYWgudTJwKGFuLnZhbHVlKSkrMC41O3N3aXRjaChhRCl7Y2Fz ZSJ4YXhpcyI6aWYoYW4uc2hvd0dyaWRsaW5lJiY9CnRoaXMuZHJhd0dyaWRsaW5lcyYmKCghYW4u aXNNaW5vclRpY2smJmFoLmRyYXdNYWpvckdyaWRsaW5lcyl8fChhbi5pc01pbm9yVD0KaWNrJiZh aC5kcmF3TWlub3JHcmlkbGluZXMpKSl7YW8oYWssdGhpcy5fdG9wLGFrLHRoaXMuX2JvdHRvbSl9 aWYoYW4uc2hvd01hPQpyayYmYW4ubWFyayYmKCghYW4uaXNNaW5vclRpY2smJmFoLmRyYXdNYWpv clRpY2tNYXJrcyl8fChhbi5pc01pbm9yVGljayYmYWg9Ci5kcmF3TWlub3JUaWNrTWFya3MpKSl7 YXA9M0Rhbi5tYXJrU2l6ZTthcT0zRGFuLm1hcms7dmFyIGFrPTNETWF0aC5yb3VuZChhaD0KLnUy cChhbi52YWx1ZSkpKzAuNTtzd2l0Y2goYXEpe2Nhc2Uib3V0c2lkZSI6YUE9M0R0aGlzLl9ib3R0 b207YXo9M0R0aGlzLl9iPQpvdHRvbSthcDticmVhaztjYXNlImluc2lkZSI6YUE9M0R0aGlzLl9i b3R0b20tYXA7YXo9M0R0aGlzLl9ib3R0b207YnJlYWs7Y2E9CnNlImNyb3NzIjphQT0zRHRoaXMu X2JvdHRvbS1hcDthej0zRHRoaXMuX2JvdHRvbSthcDticmVhaztkZWZhdWx0OmFBPTNEdGhpcz0K Ll9ib3R0b207YXo9M0R0aGlzLl9ib3R0b20rYXA7YnJlYWt9aWYodGhpcy5zaGFkb3cpe3RoaXMu cmVuZGVyZXIuc2hhZG93UmVuPQpkZXJlci5kcmF3KGF0LFtbYWssYUFdLFthayxhel1dLHtsaW5l Q2FwOiJidXR0IixsaW5lV2lkdGg6dGhpcy5ncmlkTGluZVdpZHQ9Cmgsb2Zmc2V0OnRoaXMuZ3Jp ZExpbmVXaWR0aCowLjc1LGRlcHRoOjIsZmlsbDpmYWxzZSxjbG9zZVBhdGg6ZmFsc2V9KX1hbyhh az0KLGFBLGFrLGF6KX1icmVhaztjYXNlInlheGlzIjppZihhbi5zaG93R3JpZGxpbmUmJnRoaXMu ZHJhd0dyaWRsaW5lcyYmKCghYW4uPQppc01pbm9yVGljayYmYWguZHJhd01ham9yR3JpZGxpbmVz KXx8KGFuLmlzTWlub3JUaWNrJiZhaC5kcmF3TWlub3JHcmlkbGluZXM9CikpKXthbyh0aGlzLl9y aWdodCxhayx0aGlzLl9sZWZ0LGFrKX1pZihhbi5zaG93TWFyayYmYW4ubWFyayYmKCghYW4uaXNN aW5vcj0KVGljayYmYWguZHJhd01ham9yVGlja01hcmtzKXx8KGFuLmlzTWlub3JUaWNrJiZhaC5k cmF3TWlub3JUaWNrTWFya3MpKSl7YXA9Cj0zRGFuLm1hcmtTaXplO2FxPTNEYW4ubWFyazt2YXIg YWs9M0RNYXRoLnJvdW5kKGFoLnUycChhbi52YWx1ZSkpKzAuNTtzd2l0Yz0KaChhcSl7Y2FzZSJv dXRzaWRlIjphQT0zRHRoaXMuX2xlZnQtYXA7YXo9M0R0aGlzLl9sZWZ0O2JyZWFrO2Nhc2UiaW5z aWRlIjphPQpBPTNEdGhpcy5fbGVmdDthej0zRHRoaXMuX2xlZnQrYXA7YnJlYWs7Y2FzZSJjcm9z cyI6YUE9M0R0aGlzLl9sZWZ0LWFwO2F6PQo9M0R0aGlzLl9sZWZ0K2FwO2JyZWFrO2RlZmF1bHQ6 YUE9M0R0aGlzLl9sZWZ0LWFwO2F6PTNEdGhpcy5fbGVmdDticmVha31pZig9CnRoaXMuc2hhZG93 KXt0aGlzLnJlbmRlcmVyLnNoYWRvd1JlbmRlcmVyLmRyYXcoYXQsW1thQSxha10sW2F6LGFrXV0s e2xpbmVDYT0KcDoiYnV0dCIsbGluZVdpZHRoOnRoaXMuZ3JpZExpbmVXaWR0aCoxLjUsb2Zmc2V0 OnRoaXMuZ3JpZExpbmVXaWR0aCowLjc1LGZpPQpsbDpmYWxzZSxjbG9zZVBhdGg6ZmFsc2V9KX1h byhhQSxhayxheixhayx7c3Ryb2tlU3R5bGU6YWguYm9yZGVyQ29sb3J9KX1icmU9CmFrO2Nhc2Ui eDJheGlzIjppZihhbi5zaG93R3JpZGxpbmUmJnRoaXMuZHJhd0dyaWRsaW5lcyYmKCghYW4uaXNN aW5vclRpY2smJj0KYWguZHJhd01ham9yR3JpZGxpbmVzKXx8KGFuLmlzTWlub3JUaWNrJiZhaC5k cmF3TWlub3JHcmlkbGluZXMpKSl7YW8oYWssdGhpPQpzLl9ib3R0b20sYWssdGhpcy5fdG9wKX1p Zihhbi5zaG93TWFyayYmYW4ubWFyayYmKCghYW4uaXNNaW5vclRpY2smJmFoLmRyYXc9Ck1ham9y VGlja01hcmtzKXx8KGFuLmlzTWlub3JUaWNrJiZhaC5kcmF3TWlub3JUaWNrTWFya3MpKSl7YXA9 M0Rhbi5tYXJrU2l6ZT0KO2FxPTNEYW4ubWFyazt2YXIgYWs9M0RNYXRoLnJvdW5kKGFoLnUycChh bi52YWx1ZSkpKzAuNTtzd2l0Y2goYXEpe2Nhc2Uib3V0PQpzaWRlIjphQT0zRHRoaXMuX3RvcC1h cDthej0zRHRoaXMuX3RvcDticmVhaztjYXNlImluc2lkZSI6YUE9M0R0aGlzLl90b3A7YXo9Cj0z RHRoaXMuX3RvcCthcDticmVhaztjYXNlImNyb3NzIjphQT0zRHRoaXMuX3RvcC1hcDthej0zRHRo aXMuX3RvcCthcDticmVhaz0KO2RlZmF1bHQ6YUE9M0R0aGlzLl90b3AtYXA7YXo9M0R0aGlzLl90 b3A7YnJlYWt9aWYodGhpcy5zaGFkb3cpe3RoaXMucmVuZGVyPQplci5zaGFkb3dSZW5kZXJlci5k cmF3KGF0LFtbYWssYUFdLFthayxhel1dLHtsaW5lQ2FwOiJidXR0IixsaW5lV2lkdGg6dGhpcy49 CmdyaWRMaW5lV2lkdGgsb2Zmc2V0OnRoaXMuZ3JpZExpbmVXaWR0aCowLjc1LGRlcHRoOjIsZmls bDpmYWxzZSxjbG9zZVBhdGg6Zj0KYWxzZX0pfWFvKGFrLGFBLGFrLGF6KX1icmVhaztjYXNlInky YXhpcyI6aWYoYW4uc2hvd0dyaWRsaW5lJiZ0aGlzLmRyYXdHcmlkPQpsaW5lcyYmKCghYW4uaXNN aW5vclRpY2smJmFoLmRyYXdNYWpvckdyaWRsaW5lcyl8fChhbi5pc01pbm9yVGljayYmYWguZHJh d009Cmlub3JHcmlkbGluZXMpKSl7YW8odGhpcy5fbGVmdCxhayx0aGlzLl9yaWdodCxhayl9aWYo YW4uc2hvd01hcmsmJmFuLm1hcmsmJj0KKCghYW4uaXNNaW5vclRpY2smJmFoLmRyYXdNYWpvclRp Y2tNYXJrcyl8fChhbi5pc01pbm9yVGljayYmYWguZHJhd01pbm9yVGljPQprTWFya3MpKSl7YXA9 M0Rhbi5tYXJrU2l6ZTthcT0zRGFuLm1hcms7dmFyIGFrPTNETWF0aC5yb3VuZChhaC51MnAoYW4u dmFsdWU9CikpKzAuNTtzd2l0Y2goYXEpe2Nhc2Uib3V0c2lkZSI6YUE9M0R0aGlzLl9yaWdodDth ej0zRHRoaXMuX3JpZ2h0K2FwO2JyZWFrOz0KY2FzZSJpbnNpZGUiOmFBPTNEdGhpcy5fcmlnaHQt YXA7YXo9M0R0aGlzLl9yaWdodDticmVhaztjYXNlImNyb3NzIjphQT0zRHRoPQppcy5fcmlnaHQt YXA7YXo9M0R0aGlzLl9yaWdodCthcDticmVhaztkZWZhdWx0OmFBPTNEdGhpcy5fcmlnaHQ7YXo9 M0R0aGlzLl89CnJpZ2h0K2FwO2JyZWFrfWlmKHRoaXMuc2hhZG93KXt0aGlzLnJlbmRlcmVyLnNo YWRvd1JlbmRlcmVyLmRyYXcoYXQsW1thQSxhaz0KXSxbYXosYWtdXSx7bGluZUNhcDoiYnV0dCIs bGluZVdpZHRoOnRoaXMuZ3JpZExpbmVXaWR0aCoxLjUsb2Zmc2V0OnRoaXMuZ3JpPQpkTGluZVdp ZHRoKjAuNzUsZmlsbDpmYWxzZSxjbG9zZVBhdGg6ZmFsc2V9KX1hbyhhQSxhayxheixhayx7c3Ry b2tlU3R5bGU6YWg9Ci5ib3JkZXJDb2xvcn0pfWJyZWFrO2RlZmF1bHQ6YnJlYWt9fX1hbj0zRG51 bGx9YWg9M0RudWxsO2FCPTNEbnVsbH1hbT0zRFsieT0KM2F4aXMiLCJ5NGF4aXMiLCJ5NWF4aXMi LCJ5NmF4aXMiLCJ5N2F4aXMiLCJ5OGF4aXMiLCJ5OWF4aXMiLCJ5TWlkQXhpcyJdO2ZvPQpyKHZh ciBheT0zRDc7YXk+MDtheS0tKXt2YXIgYWg9M0Rhd1thbVtheS0xXV07dmFyIGFCPTNEYWguX3Rp Y2tzO2lmKGFoLnNob3c9Cil7dmFyIGFpPTNEYUJbYWgubnVtYmVyVGlja3MtMV07dmFyIGFsPTNE YUJbMF07dmFyIGFqPTNEYWguZ2V0TGVmdCgpO3ZhciBhdj0KPTNEW1thaixhaS5nZXRUb3AoKSth aS5nZXRIZWlnaHQoKS8yXSxbYWosYWwuZ2V0VG9wKCkrYWwuZ2V0SGVpZ2h0KCkvMisxXV07PQpp Zih0aGlzLnNoYWRvdyl7dGhpcy5yZW5kZXJlci5zaGFkb3dSZW5kZXJlci5kcmF3KGF0LGF2LHts aW5lQ2FwOiJidXR0IixmaWw9Cmw6ZmFsc2UsY2xvc2VQYXRoOmZhbHNlfSl9YW8oYXZbMF1bMF0s YXZbMF1bMV0sYXZbMV1bMF0sYXZbMV1bMV0se2xpbmVDYXA6Ij0KYnV0dCIsc3Ryb2tlU3R5bGU6 YWguYm9yZGVyQ29sb3IsbGluZVdpZHRoOmFoLmJvcmRlcldpZHRofSk7Zm9yKHZhciBhdT0zRGFC PQoubGVuZ3RoO2F1PjA7YXUtLSl7dmFyIGFuPTNEYUJbYXUtMV07YXA9M0Rhbi5tYXJrU2l6ZTth cT0zRGFuLm1hcms7dmFyIGFrPQo9M0RNYXRoLnJvdW5kKGFoLnUycChhbi52YWx1ZSkpKzAuNTtp Zihhbi5zaG93TWFyayYmYW4ubWFyayl7c3dpdGNoKGFxKXtjYXM9CmUib3V0c2lkZSI6YUE9M0Rh ajthej0zRGFqK2FwO2JyZWFrO2Nhc2UiaW5zaWRlIjphQT0zRGFqLWFwO2F6PTNEYWo7YnJlYWs7 Yz0KYXNlImNyb3NzIjphQT0zRGFqLWFwO2F6PTNEYWorYXA7YnJlYWs7ZGVmYXVsdDphQT0zRGFq O2F6PTNEYWorYXA7YnJlYWt9YXY9Cj0zRFtbYUEsYWtdLFtheixha11dO2lmKHRoaXMuc2hhZG93 KXt0aGlzLnJlbmRlcmVyLnNoYWRvd1JlbmRlcmVyLmRyYXcoYXQsYT0Kdix7bGluZUNhcDoiYnV0 dCIsbGluZVdpZHRoOnRoaXMuZ3JpZExpbmVXaWR0aCoxLjUsb2Zmc2V0OnRoaXMuZ3JpZExpbmVX aWR0PQpoKjAuNzUsZmlsbDpmYWxzZSxjbG9zZVBhdGg6ZmFsc2V9KX1hbyhhQSxhayxheixhayx7 c3Ryb2tlU3R5bGU6YWguYm9yZGVyQ289Cmxvcn0pfWFuPTNEbnVsbH1hbD0zRG51bGx9YWg9M0Ru dWxsO2FCPTNEbnVsbH1hdC5yZXN0b3JlKCk7ZnVuY3Rpb24gYW8oYUgsYT0KRyxhRSxheCxhRil7 YXQuc2F2ZSgpO2FGPTNEYUZ8fHt9O2lmKGFGLmxpbmVXaWR0aD0zRD0zRG51bGx8fGFGLmxpbmVX aWR0aCE9Cj0zRDApe0wuZXh0ZW5kKHRydWUsYXQsYUYpO2F0LmJlZ2luUGF0aCgpO2F0Lm1vdmVU byhhSCxhRyk7YXQubGluZVRvKGFFLGF4KT0KO2F0LnN0cm9rZSgpO2F0LnJlc3RvcmUoKX19aWYo dGhpcy5zaGFkb3cpe3ZhciBhdj0zRFtbdGhpcy5fbGVmdCx0aGlzLl9ib3R0PQpvbV0sW3RoaXMu X3JpZ2h0LHRoaXMuX2JvdHRvbV0sW3RoaXMuX3JpZ2h0LHRoaXMuX3RvcF1dO3RoaXMucmVuZGVy ZXIuc2hhZG89CndSZW5kZXJlci5kcmF3KGF0LGF2KX1pZih0aGlzLmJvcmRlcldpZHRoIT0zRDAm JnRoaXMuZHJhd0JvcmRlcil7YW8odGhpcy5fbD0KZWZ0LHRoaXMuX3RvcCx0aGlzLl9yaWdodCx0 aGlzLl90b3Ase2xpbmVDYXA6InJvdW5kIixzdHJva2VTdHlsZTphdy54MmF4aXMuPQpib3JkZXJD b2xvcixsaW5lV2lkdGg6YXcueDJheGlzLmJvcmRlcldpZHRofSk7YW8odGhpcy5fcmlnaHQsdGhp cy5fdG9wLHRoaXM9Ci5fcmlnaHQsdGhpcy5fYm90dG9tLHtsaW5lQ2FwOiJyb3VuZCIsc3Ryb2tl U3R5bGU6YXcueTJheGlzLmJvcmRlckNvbG9yLGxpbj0KZVdpZHRoOmF3LnkyYXhpcy5ib3JkZXJX aWR0aH0pO2FvKHRoaXMuX3JpZ2h0LHRoaXMuX2JvdHRvbSx0aGlzLl9sZWZ0LHRoaXMuPQpfYm90 dG9tLHtsaW5lQ2FwOiJyb3VuZCIsc3Ryb2tlU3R5bGU6YXcueGF4aXMuYm9yZGVyQ29sb3IsbGlu ZVdpZHRoOmF3LnhheGk9CnMuYm9yZGVyV2lkdGh9KTthbyh0aGlzLl9sZWZ0LHRoaXMuX2JvdHRv bSx0aGlzLl9sZWZ0LHRoaXMuX3RvcCx7bGluZUNhcDoicj0Kb3VuZCIsc3Ryb2tlU3R5bGU6YXcu eWF4aXMuYm9yZGVyQ29sb3IsbGluZVdpZHRoOmF3LnlheGlzLmJvcmRlcldpZHRofSl9YXQuPQpy ZXN0b3JlKCk7YXQ9M0RudWxsO2F3PTNEbnVsbH07TC5qcXBsb3QuRGl2VGl0bGVSZW5kZXJlcj0z RGZ1bmN0aW9uKCl7fTtMLmo9CnFwbG90LkRpdlRpdGxlUmVuZGVyZXIucHJvdG90eXBlLmluaXQ9 M0RmdW5jdGlvbihhaCl7TC5leHRlbmQodHJ1ZSx0aGlzLGFoKT0KfTtMLmpxcGxvdC5EaXZUaXRs ZVJlbmRlcmVyLnByb3RvdHlwZS5kcmF3PTNEZnVuY3Rpb24oKXtpZih0aGlzLl9lbGVtKXt0aGlz PQouX2VsZW0uZW1wdHlGb3JjZSgpO3RoaXMuX2VsZW09M0RudWxsfXZhciBhaz0zRHRoaXMucmVu ZGVyZXI7dmFyIGFqPTNEZG9jdW09CmVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0aGlzLl9lbGVt PTNETChhaik7dGhpcy5fZWxlbS5hZGRDbGFzcygianFwbG90LXRpdD0KbGUiKTtpZighdGhpcy50 ZXh0KXt0aGlzLnNob3c9M0RmYWxzZTt0aGlzLl9lbGVtLmhlaWdodCgwKTt0aGlzLl9lbGVtLndp ZHRoPQooMCl9ZWxzZXtpZih0aGlzLnRleHQpe3ZhciBhaDtpZih0aGlzLmNvbG9yKXthaD0zRHRo aXMuY29sb3J9ZWxzZXtpZih0aGlzLnQ9CmV4dENvbG9yKXthaD0zRHRoaXMudGV4dENvbG9yfX12 YXIgYWk9M0R7cG9zaXRpb246ImFic29sdXRlIix0b3A6IjBweCIsbGVmdD0KOiIwcHgifTtpZih0 aGlzLl9wbG90V2lkdGgpe2FpLndpZHRoPTNEdGhpcy5fcGxvdFdpZHRoKyJweCJ9aWYodGhpcy5m b250U2l6PQplKXthaS5mb250U2l6ZT0zRHRoaXMuZm9udFNpemV9aWYodHlwZW9mIHRoaXMudGV4 dEFsaWduPTNEPTNEPTNEInN0cmluZyIpe2E9CmkudGV4dEFsaWduPTNEdGhpcy50ZXh0QWxpZ259 ZWxzZXthaS50ZXh0QWxpZ249M0QiY2VudGVyIn1pZihhaCl7YWkuY29sb3I9Cj0zRGFofWlmKHRo aXMucGFkZGluZ0JvdHRvbSl7YWkucGFkZGluZ0JvdHRvbT0zRHRoaXMucGFkZGluZ0JvdHRvbX1p Zih0aGlzLj0KZm9udEZhbWlseSl7YWkuZm9udEZhbWlseT0zRHRoaXMuZm9udEZhbWlseX10aGlz Ll9lbGVtLmNzcyhhaSk7aWYodGhpcy5lc2NhPQpwZUh0bWwpe3RoaXMuX2VsZW0udGV4dCh0aGlz LnRleHQpfWVsc2V7dGhpcy5fZWxlbS5odG1sKHRoaXMudGV4dCl9fX1haj0zRG49CnVsbDtyZXR1 cm4gdGhpcy5fZWxlbX07TC5qcXBsb3QuRGl2VGl0bGVSZW5kZXJlci5wcm90b3R5cGUucGFjaz0z RGZ1bmN0aW9uKD0KKXt9O3ZhciByPTNEMC4xO0wuanFwbG90LkxpbmVQYXR0ZXJuPTNEZnVuY3Rp b24oYXcsYXEpe3ZhciBhcD0zRHtkb3R0ZWQ6W3IsPQpMLmpxcGxvdC5jb25maWcuZG90R2FwTGVu Z3RoXSxkYXNoZWQ6W0wuanFwbG90LmNvbmZpZy5kYXNoTGVuZ3RoLEwuanFwbG90LmM9Cm9uZmln LmdhcExlbmd0aF0sc29saWQ6bnVsbH07aWYodHlwZW9mIGFxPTNEPTNEPTNEInN0cmluZyIpe2lm KGFxWzBdPTNEPTNEPQo9M0QiLiJ8fGFxWzBdPTNEPTNEPTNEIi0iKXt2YXIgYXg9M0RhcTthcT0z RFtdO2Zvcih2YXIgYW89M0QwLGFsPTNEYXgubGVuZ3Q9Cmg7YW88YWw7YW8rKyl7aWYoYXhbYW9d PTNEPTNEPTNEIi4iKXthcS5wdXNoKHIpfWVsc2V7aWYoYXhbYW9dPTNEPTNEPTNEIi0iKT0Ke2Fx LnB1c2goTC5qcXBsb3QuY29uZmlnLmRhc2hMZW5ndGgpfWVsc2V7Y29udGludWV9fWFxLnB1c2go TC5qcXBsb3QuY29uZmlnPQouZ2FwTGVuZ3RoKX19ZWxzZXthcT0zRGFwW2FxXX19aWYoIShhcSYm YXEubGVuZ3RoKSl7cmV0dXJuIGF3fXZhciBhaz0zRDA7dmE9CnIgYXI9M0RhcVswXTt2YXIgYXU9 M0QwO3ZhciBhdD0zRDA7dmFyIGFuPTNEMDt2YXIgYWg9M0QwO3ZhciBhdj0zRGZ1bmN0aW9uKD0K YXksYXope2F3Lm1vdmVUbyhheSxheik7YXU9M0RheTthdD0zRGF6O2FuPTNEYXk7YWg9M0Rhen07 dmFyIGFqPTNEZnVuY3Rpb24oPQpheSxhRSl7dmFyIGFDPTNEYXcubGluZVdpZHRoO3ZhciBhQT0z RGF5LWF1O3ZhciBhej0zRGFFLWF0O3ZhciBhQj0zRE1hdGguc3E9CnJ0KGFBKmFBK2F6KmF6KTtp ZigoYUI+MCkmJihhQz4wKSl7YUEvPTNEYUI7YXovPTNEYUI7d2hpbGUodHJ1ZSl7dmFyIGFEPTNE YT0KQyphcjtpZihhRDxhQil7YXUrPTNEYUQqYUE7YXQrPTNEYUQqYXo7aWYoKGFrJjEpPTNEPTNE MCl7YXcubGluZVRvKGF1LGF0KX1lPQpsc2V7YXcubW92ZVRvKGF1LGF0KX1hQi09M0RhRDthaysr O2lmKGFrPj0zRGFxLmxlbmd0aCl7YWs9M0QwfWFyPTNEYXFbYWtdfWU9CmxzZXthdT0zRGF5O2F0 PTNEYUU7aWYoKGFrJjEpPTNEPTNEMCl7YXcubGluZVRvKGF1LGF0KX1lbHNle2F3Lm1vdmVUbyhh dSxhdD0KKX1hci09M0RhQi9hQzticmVha319fX07dmFyIGFpPTNEZnVuY3Rpb24oKXthdy5iZWdp blBhdGgoKX07dmFyIGFtPTNEZnVuY3RpPQpvbigpe2FqKGFuLGFoKX07cmV0dXJue21vdmVUbzph dixsaW5lVG86YWosYmVnaW5QYXRoOmFpLGNsb3NlUGF0aDphbX19O0wuanE9CnBsb3QuTGluZVJl bmRlcmVyPTNEZnVuY3Rpb24oKXt0aGlzLnNoYXBlUmVuZGVyZXI9M0RuZXcgTC5qcXBsb3QuU2hh cGVSZW5kZT0KcmVyKCk7dGhpcy5zaGFkb3dSZW5kZXJlcj0zRG5ldyBMLmpxcGxvdC5TaGFkb3dS ZW5kZXJlcigpfTtMLmpxcGxvdC5MaW5lUmVuPQpkZXJlci5wcm90b3R5cGUuaW5pdD0zRGZ1bmN0 aW9uKGFpLGFuKXthaT0zRGFpfHx7fTt0aGlzLl90eXBlPTNEImxpbmUiO3RoaXM9Ci5yZW5kZXJl ci5hbmltYXRpb249M0R7c2hvdzpmYWxzZSxkaXJlY3Rpb246ImxlZnQiLHNwZWVkOjI1MDAsX3N1 cHBvcnRlZDp0cj0KdWV9O3RoaXMucmVuZGVyZXIuc21vb3RoPTNEZmFsc2U7dGhpcy5yZW5kZXJl ci50ZW5zaW9uPTNEbnVsbDt0aGlzLnJlbmRlcmVyPQouY29uc3RyYWluU21vb3RoaW5nPTNEdHJ1 ZTt0aGlzLnJlbmRlcmVyLl9zbW9vdGhlZERhdGE9M0RbXTt0aGlzLnJlbmRlcmVyLl89CnNtb290 aGVkUGxvdERhdGE9M0RbXTt0aGlzLnJlbmRlcmVyLl9oaUJhbmRHcmlkRGF0YT0zRFtdO3RoaXMu cmVuZGVyZXIuX2xvdz0KQmFuZEdyaWREYXRhPTNEW107dGhpcy5yZW5kZXJlci5faGlCYW5kU21v b3RoZWREYXRhPTNEW107dGhpcy5yZW5kZXJlci5fbG93PQpCYW5kU21vb3RoZWREYXRhPTNEW107 dGhpcy5yZW5kZXJlci5iYW5kRGF0YT0zRFtdO3RoaXMucmVuZGVyZXIuYmFuZHM9M0R7c2g9Cm93 OmZhbHNlLGhpRGF0YTpbXSxsb3dEYXRhOltdLGNvbG9yOnRoaXMuY29sb3Isc2hvd0xpbmVzOmZh bHNlLGZpbGw6dHJ1ZSxmaT0KbGxDb2xvcjpudWxsLF9taW46bnVsbCxfbWF4Om51bGwsaW50ZXJ2 YWw6IjMlIn07dmFyIGFsPTNEe2hpZ2hsaWdodE1vdXNlT3ZlPQpyOmFpLmhpZ2hsaWdodE1vdXNl T3ZlcixoaWdobGlnaHRNb3VzZURvd246YWkuaGlnaGxpZ2h0TW91c2VEb3duLGhpZ2hsaWdodEM9 Cm9sb3I6YWkuaGlnaGxpZ2h0Q29sb3J9O2RlbGV0ZSAoYWkuaGlnaGxpZ2h0TW91c2VPdmVyKTtk ZWxldGUgKGFpLmhpZ2hsaWdodD0KTW91c2VEb3duKTtkZWxldGUgKGFpLmhpZ2hsaWdodENvbG9y KTtMLmV4dGVuZCh0cnVlLHRoaXMucmVuZGVyZXIsYWkpO3RoaXMuPQpyZW5kZXJlci5vcHRpb25z PTNEYWk7aWYodGhpcy5yZW5kZXJlci5iYW5kRGF0YS5sZW5ndGg+MSYmKCFhaS5iYW5kc3x8YWku YmE9Cm5kcy5zaG93PTNEPTNEbnVsbCkpe3RoaXMucmVuZGVyZXIuYmFuZHMuc2hvdz0zRHRydWV9 ZWxzZXtpZihhaS5iYW5kcyYmYWkuYj0KYW5kcy5zaG93PTNEPTNEbnVsbCYmYWkuYmFuZHMuaW50 ZXJ2YWwhPTNEbnVsbCl7dGhpcy5yZW5kZXJlci5iYW5kcy5zaG93PTNEPQp0cnVlfX1pZih0aGlz LmZpbGwpe3RoaXMucmVuZGVyZXIuYmFuZHMuc2hvdz0zRGZhbHNlfWlmKHRoaXMucmVuZGVyZXIu YmFuZHM9Ci5zaG93KXt0aGlzLnJlbmRlcmVyLmluaXRCYW5kcy5jYWxsKHRoaXMsdGhpcy5yZW5k ZXJlci5vcHRpb25zLGFuKX1pZih0aGlzLj0KX3N0YWNrKXt0aGlzLnJlbmRlcmVyLnNtb290aD0z RGZhbHNlfXZhciBhbT0zRHtsaW5lSm9pbjp0aGlzLmxpbmVKb2luLGxpbmVDPQphcDp0aGlzLmxp bmVDYXAsZmlsbDp0aGlzLmZpbGwsaXNhcmM6ZmFsc2Usc3Ryb2tlU3R5bGU6dGhpcy5jb2xvcixm aWxsU3R5bGU9Cjp0aGlzLmZpbGxDb2xvcixsaW5lV2lkdGg6dGhpcy5saW5lV2lkdGgsbGluZVBh dHRlcm46dGhpcy5saW5lUGF0dGVybixjbG9zZT0KUGF0aDp0aGlzLmZpbGx9O3RoaXMucmVuZGVy ZXIuc2hhcGVSZW5kZXJlci5pbml0KGFtKTt2YXIgYWo9M0RhaS5zaGFkb3dPZmZzPQpldDtpZihh aj0zRD0zRG51bGwpe2lmKHRoaXMubGluZVdpZHRoPjIuNSl7YWo9M0QxLjI1KigxKyhNYXRoLmF0 YW4oKHRoaXMubGk9Cm5lV2lkdGgvMi41KSkvMC43ODUzOTgxNjMtMSkqMC42KX1lbHNle2FqPTNE MS4yNSpNYXRoLmF0YW4oKHRoaXMubGluZVdpZHRoLz0KMi41KSkvMC43ODUzOTgxNjN9fXZhciBh aD0zRHtsaW5lSm9pbjp0aGlzLmxpbmVKb2luLGxpbmVDYXA6dGhpcy5saW5lQ2FwLGZpPQpsbDp0 aGlzLmZpbGwsaXNhcmM6ZmFsc2UsYW5nbGU6dGhpcy5zaGFkb3dBbmdsZSxvZmZzZXQ6YWosYWxw aGE6dGhpcy5zaGFkb3c9CkFscGhhLGRlcHRoOnRoaXMuc2hhZG93RGVwdGgsbGluZVdpZHRoOnRo aXMubGluZVdpZHRoLGxpbmVQYXR0ZXJuOnRoaXMubGluZT0KUGF0dGVybixjbG9zZVBhdGg6dGhp cy5maWxsfTt0aGlzLnJlbmRlcmVyLnNoYWRvd1JlbmRlcmVyLmluaXQoYWgpO3RoaXMuX2FyPQpl YVBvaW50cz0zRFtdO3RoaXMuX2JvdW5kaW5nQm94PTNEW1tdLFtdXTtpZighdGhpcy5pc1RyZW5k bGluZSYmdGhpcy5maWxsfHw9CnRoaXMucmVuZGVyZXIuYmFuZHMuc2hvdyl7dGhpcy5oaWdobGln aHRNb3VzZU92ZXI9M0R0cnVlO3RoaXMuaGlnaGxpZ2h0TW91cz0KZURvd249M0RmYWxzZTt0aGlz LmhpZ2hsaWdodENvbG9yPTNEbnVsbDtpZihhbC5oaWdobGlnaHRNb3VzZURvd24mJmFsLmhpZ2hs PQppZ2h0TW91c2VPdmVyPTNEPTNEbnVsbCl7YWwuaGlnaGxpZ2h0TW91c2VPdmVyPTNEZmFsc2V9 TC5leHRlbmQodHJ1ZSx0aGlzLHs9CmhpZ2hsaWdodE1vdXNlT3ZlcjphbC5oaWdobGlnaHRNb3Vz ZU92ZXIsaGlnaGxpZ2h0TW91c2VEb3duOmFsLmhpZ2hsaWdodE1vdT0Kc2VEb3duLGhpZ2hsaWdo dENvbG9yOmFsLmhpZ2hsaWdodENvbG9yfSk7aWYoIXRoaXMuaGlnaGxpZ2h0Q29sb3Ipe3ZhciBh az0KPTNEKHRoaXMucmVuZGVyZXIuYmFuZHMuc2hvdyk/dGhpcy5yZW5kZXJlci5iYW5kcy5maWxs Q29sb3I6dGhpcy5maWxsQ29sb3I7PQp0aGlzLmhpZ2hsaWdodENvbG9yPTNETC5qcXBsb3QuY29t cHV0ZUhpZ2hsaWdodENvbG9ycyhhayl9aWYodGhpcy5oaWdobGlnaHQ9CmVyKXt0aGlzLmhpZ2hs aWdodGVyLnNob3c9M0RmYWxzZX19aWYoIXRoaXMuaXNUcmVuZGxpbmUmJmFuKXthbi5wbHVnaW5z Lmxpbj0KZVJlbmRlcmVyPTNEe307YW4ucG9zdEluaXRIb29rcy5hZGRPbmNlKHopO2FuLnBvc3RE cmF3SG9va3MuYWRkT25jZShhZik7YW4uPQpldmVudExpc3RlbmVySG9va3MuYWRkT25jZSgianFw bG90TW91c2VNb3ZlIixoKTthbi5ldmVudExpc3RlbmVySG9va3MuYWRkT249CmNlKCJqcXBsb3RN b3VzZURvd24iLGUpO2FuLmV2ZW50TGlzdGVuZXJIb29rcy5hZGRPbmNlKCJqcXBsb3RNb3VzZVVw IixhZCk7YT0Kbi5ldmVudExpc3RlbmVySG9va3MuYWRkT25jZSgianFwbG90Q2xpY2siLGcpO2Fu LmV2ZW50TGlzdGVuZXJIb29rcy5hZGRPbmNlPQooImpxcGxvdFJpZ2h0Q2xpY2siLHMpfX07TC5q cXBsb3QuTGluZVJlbmRlcmVyLnByb3RvdHlwZS5pbml0QmFuZHM9M0RmdW5jdGk9Cm9uKGFrLGF2 KXt2YXIgYWw9M0Rhay5iYW5kRGF0YXx8W107dmFyIGFuPTNEdGhpcy5yZW5kZXJlci5iYW5kczth bi5oaURhdGE9Cj0zRFtdO2FuLmxvd0RhdGE9M0RbXTt2YXIgYUI9M0R0aGlzLmRhdGE7YW4uX21h eD0zRG51bGw7YW4uX21pbj0zRG51bGw7aWYoYT0KbC5sZW5ndGg9M0Q9M0QyKXtpZihMLmlzQXJy YXkoYWxbMF1bMF0pKXt2YXIgYW87dmFyIGFoPTNEMCxhcj0zRDA7Zm9yKHZhciBhPQp3PTNEMCxh dD0zRGFsWzBdLmxlbmd0aDthdzxhdDthdysrKXthbz0zRGFsWzBdW2F3XTtpZigoYW9bMV0hPTNE bnVsbCYmYW9bMV09Cj5hbi5fbWF4KXx8YW4uX21heD0zRD0zRG51bGwpe2FuLl9tYXg9M0Rhb1sx XX1pZigoYW9bMV0hPTNEbnVsbCYmYW9bMV08YW4uXz0KbWluKXx8YW4uX21pbj0zRD0zRG51bGwp e2FuLl9taW49M0Rhb1sxXX19Zm9yKHZhciBhdz0zRDAsYXQ9M0RhbFsxXS5sZW5ndGg7PQphdzxh dDthdysrKXthbz0zRGFsWzFdW2F3XTtpZigoYW9bMV0hPTNEbnVsbCYmYW9bMV0+YW4uX21heCl8 fGFuLl9tYXg9M0Q9M0Q9Cm51bGwpe2FuLl9tYXg9M0Rhb1sxXTthcj0zRDF9aWYoKGFvWzFdIT0z RG51bGwmJmFvWzFdPGFuLl9taW4pfHxhbi5fbWluPTNEPQo9M0RudWxsKXthbi5fbWluPTNEYW9b MV07YWg9M0QxfX1pZihhcj0zRD0zRD0zRGFoKXthbi5zaG93PTNEZmFsc2V9YW4uaGlEYXQ9CmE9 M0RhbFthcl07YW4ubG93RGF0YT0zRGFsW2FoXX1lbHNle2lmKGFsWzBdLmxlbmd0aD0zRD0zRD0z RGFCLmxlbmd0aCYmYWxbMT0KXS5sZW5ndGg9M0Q9M0Q9M0RhQi5sZW5ndGgpe3ZhciBhaj0zRChh bFswXVswXT5hbFsxXVswXSk/MDoxO3ZhciBhQz0zRChhaik/PQowOjE7Zm9yKHZhciBhdz0zRDAs YXQ9M0RhQi5sZW5ndGg7YXc8YXQ7YXcrKyl7YW4uaGlEYXRhLnB1c2goW2FCW2F3XVswXSxhbFs9 CmFqXVthd11dKTthbi5sb3dEYXRhLnB1c2goW2FCW2F3XVswXSxhbFthQ11bYXddXSl9fWVsc2V7 YW4uc2hvdz0zRGZhbHNlfX19ZT0KbHNle2lmKGFsLmxlbmd0aD4yJiYhTC5pc0FycmF5KGFsWzBd WzBdKSl7dmFyIGFqPTNEKGFsWzBdWzBdPmFsWzBdWzFdKT8wOjE7PQp2YXIgYUM9M0QoYWopPzA6 MTtmb3IodmFyIGF3PTNEMCxhdD0zRGFsLmxlbmd0aDthdzxhdDthdysrKXthbi5oaURhdGEucHVz aCg9ClthQlthd11bMF0sYWxbYXddW2FqXV0pO2FuLmxvd0RhdGEucHVzaChbYUJbYXddWzBdLGFs W2F3XVthQ11dKX19ZWxzZXt2YXIgYT0KcT0zRGFuLmludGVydmFsO3ZhciBhQT0zRG51bGw7dmFy IGF6PTNEbnVsbDt2YXIgYWk9M0RudWxsO3ZhciBhdT0zRG51bGw7aWYoPQpMLmlzQXJyYXkoYXEp KXthQT0zRGFxWzBdO2F6PTNEYXFbMV19ZWxzZXthQT0zRGFxfWlmKGlzTmFOKGFBKSl7aWYoYUEu Y2hhckE9CnQoYUEubGVuZ3RoLTEpPTNEPTNEPTNEIiUiKXthaT0zRCJtdWx0aXBseSI7YUE9M0Rw YXJzZUZsb2F0KGFBKS8xMDArMX19ZWxzZT0Ke2FBPTNEcGFyc2VGbG9hdChhQSk7YWk9M0QiYWRk In1pZihheiE9M0Q9M0RudWxsJiZpc05hTihheikpe2lmKGF6LmNoYXJBdChhPQp6Lmxlbmd0aC0x KT0zRD0zRD0zRCIlIil7YXU9M0QibXVsdGlwbHkiO2F6PTNEcGFyc2VGbG9hdChheikvMTAwKzF9 fWVsc2V7aWY9CihheiE9M0Q9M0RudWxsKXthej0zRHBhcnNlRmxvYXQoYXopO2F1PTNEImFkZCJ9 fWlmKGFBIT0zRD0zRG51bGwpe2lmKGF6PTNEPQo9M0Q9M0RudWxsKXthej0zRC1hQTthdT0zRGFp O2lmKGF1PTNEPTNEPTNEIm11bHRpcGx5Iil7YXorPTNEMn19aWYoYUE8YXope3Y9CmFyIGF4PTNE YUE7YUE9M0Rhejthej0zRGF4O2F4PTNEYWk7YWk9M0RhdTthdT0zRGF4fWZvcih2YXIgYXc9M0Qw LGF0PTNEYUIubD0KZW5ndGg7YXc8YXQ7YXcrKyl7c3dpdGNoKGFpKXtjYXNlImFkZCI6YW4uaGlE YXRhLnB1c2goW2FCW2F3XVswXSxhQlthd11bMV0rPQphQV0pO2JyZWFrO2Nhc2UibXVsdGlwbHki OmFuLmhpRGF0YS5wdXNoKFthQlthd11bMF0sYUJbYXddWzFdKmFBXSk7YnJlYWt9c3c9Cml0Y2go YXUpe2Nhc2UiYWRkIjphbi5sb3dEYXRhLnB1c2goW2FCW2F3XVswXSxhQlthd11bMV0rYXpdKTti cmVhaztjYXNlIm11bD0KdGlwbHkiOmFuLmxvd0RhdGEucHVzaChbYUJbYXddWzBdLGFCW2F3XVsx XSphel0pO2JyZWFrfX19ZWxzZXthbi5zaG93PTNEZmFsPQpzZX19fXZhciBhbT0zRGFuLmhpRGF0 YTt2YXIgYXA9M0Rhbi5sb3dEYXRhO2Zvcih2YXIgYXc9M0QwLGF0PTNEYW0ubGVuZ3RoO2E9Cnc8 YXQ7YXcrKyl7aWYoKGFtW2F3XVsxXSE9M0RudWxsJiZhbVthd11bMV0+YW4uX21heCl8fGFuLl9t YXg9M0Q9M0RudWxsKXthbj0KLl9tYXg9M0RhbVthd11bMV19fWZvcih2YXIgYXc9M0QwLGF0PTNE YXAubGVuZ3RoO2F3PGF0O2F3Kyspe2lmKChhcFthd11bMV0hPQo9M0RudWxsJiZhcFthd11bMV08 YW4uX21pbil8fGFuLl9taW49M0Q9M0RudWxsKXthbi5fbWluPTNEYXBbYXddWzFdfX1pZihhbi49 CmZpbGxDb2xvcj0zRD0zRD0zRG51bGwpe3ZhciBheT0zREwuanFwbG90LmdldENvbG9yQ29tcG9u ZW50cyhhbi5jb2xvcik7YXlbMz0KXT0zRGF5WzNdKjAuNTthbi5maWxsQ29sb3I9M0QicmdiYSgi K2F5WzBdKyIsICIrYXlbMV0rIiwgIitheVsyXSsiLCAiK2F5WzNdPQorIikifX07ZnVuY3Rpb24g SyhhaSxhaCl7cmV0dXJuKDMuNDE4MjA1NCthaCkqTWF0aC5wb3coYWksLTAuMzUzNDk5Mil9ZnVu Y3Q9CmlvbiBuKGFqLGFpKXt2YXIgYWg9M0RNYXRoLnNxcnQoTWF0aC5wb3coKGFpWzBdLWFqWzBd KSwyKStNYXRoLnBvdygoYWlbMV0tYT0KalsxXSksMikpO3JldHVybiA1Ljc2NDgqTWF0aC5sb2co YWgpKzcuNDQ1Nn1mdW5jdGlvbiBBKGFoKXt2YXIgYWk9M0QoTWF0aC5lPQp4cCgyKmFoKS0xKS8o TWF0aC5leHAoMiphaCkrMSk7cmV0dXJuIGFpfWZ1bmN0aW9uIEooYUope3ZhciBhdD0zRHRoaXMu cmVuZGU9CnJlci5zbW9vdGg7dmFyIGFEPTNEdGhpcy5jYW52YXMuZ2V0V2lkdGgoKTt2YXIgYW49 M0R0aGlzLl94YXhpcy5zZXJpZXNfcDJ1Oz0KdmFyIGFHPTNEdGhpcy5feWF4aXMuc2VyaWVzX3Ay dTt2YXIgYUY9M0RudWxsO3ZhciBhbT0zRG51bGw7dmFyIGF6PTNEYUoubGVuPQpndGgvYUQ7dmFy IGFqPTNEW107dmFyIGF5PTNEW107aWYoIWlzTmFOKHBhcnNlRmxvYXQoYXQpKSl7YUY9M0RwYXJz ZUZsb2F0KGE9CnQpfWVsc2V7YUY9M0RLKGF6LDAuNSl9dmFyIGF3PTNEW107dmFyIGFrPTNEW107 Zm9yKHZhciBhRT0zRDAsYUE9M0RhSi5sZW5ndD0KaDthRTxhQTthRSsrKXthdy5wdXNoKGFKW2FF XVsxXSk7YWsucHVzaChhSlthRV1bMF0pfWZ1bmN0aW9uIGF2KGFLLGFMKXtpZihhPQpLLWFMPTNE PTNEMCl7cmV0dXJuIE1hdGgucG93KDEwLDEwKX1lbHNle3JldHVybiBhSy1hTH19dmFyIGF4LGFy LGFxLGFwO3ZhciA9CmFoPTNEYUoubGVuZ3RoLTE7Zm9yKHZhciBhbD0zRDEsYUI9M0RhSi5sZW5n dGg7YWw8YUI7YWwrKyl7dmFyIGFpPTNEW107dmFyID0KYXU9M0RbXTtmb3IodmFyIGFDPTNEMDth QzwyO2FDKyspe3ZhciBhRT0zRGFsLTErYUM7aWYoYUU9M0Q9M0QwfHxhRT0zRD0zRGFoPQope2Fp W2FDXT0zRE1hdGgucG93KDEwLDEwKX1lbHNle2lmKGF3W2FFKzFdLWF3W2FFXT0zRD0zRDB8fGF3 W2FFXS1hd1thRS0xXT0KPTNEPTNEMCl7YWlbYUNdPTNEMH1lbHNle2lmKCgoYWtbYUUrMV0tYWtb YUVdKS8oYXdbYUUrMV0tYXdbYUVdKSsoYWtbYUVdLWFrPQpbYUUtMV0pLyhhd1thRV0tYXdbYUUt MV0pKT0zRD0zRDApe2FpW2FDXT0zRDB9ZWxzZXtpZigoYXdbYUUrMV0tYXdbYUVdKSooYXc9Clth RV0tYXdbYUUtMV0pPDApe2FpW2FDXT0zRDB9ZWxzZXthaVthQ109M0QyLyhhdihha1thRSsxXSxh a1thRV0pLyhhd1thRSsxXT0KLWF3W2FFXSkrYXYoYWtbYUVdLGFrW2FFLTFdKS8oYXdbYUVdLWF3 W2FFLTFdKSl9fX19fWlmKGFsPTNEPTNEMSl7YWlbMF09M0QzPQovMiooYXdbMV0tYXdbMF0pL2F2 KGFrWzFdLGFrWzBdKS1haVsxXS8yfWVsc2V7aWYoYWw9M0Q9M0RhaCl7YWlbMV09M0QzLzIqKGE9 CndbYWhdLWF3W2FoLTFdKS9hdihha1thaF0sYWtbYWgtMV0pLWFpWzBdLzJ9fWF1WzBdPTNELTIq KGFpWzFdKzIqYWlbMF0pL2F2KD0KYWtbYWxdLGFrW2FsLTFdKSs2Kihhd1thbF0tYXdbYWwtMV0p L01hdGgucG93KGF2KGFrW2FsXSxha1thbC0xXSksMik7YXVbMV09Cj0zRDIqKDIqYWlbMV0rYWlb MF0pL2F2KGFrW2FsXSxha1thbC0xXSktNiooYXdbYWxdLWF3W2FsLTFdKS9NYXRoLnBvdyhhdihh az0KW2FsXSxha1thbC0xXSksMik7YXA9M0QxLzYqKGF1WzFdLWF1WzBdKS9hdihha1thbF0sYWtb YWwtMV0pO2FxPTNEMS8yKihha1thPQpsXSphdVswXS1ha1thbC0xXSphdVsxXSkvYXYoYWtbYWxd LGFrW2FsLTFdKTthcj0zRChhd1thbF0tYXdbYWwtMV0tYXEqKE1hdGg9Ci5wb3coYWtbYWxdLDIp LU1hdGgucG93KGFrW2FsLTFdLDIpKS1hcCooTWF0aC5wb3coYWtbYWxdLDMpLU1hdGgucG93KGFr W2FsLT0KMV0sMykpKS9hdihha1thbF0sYWtbYWwtMV0pO2F4PTNEYXdbYWwtMV0tYXIqYWtbYWwt MV0tYXEqTWF0aC5wb3coYWtbYWwtMV0sPQoyKS1hcCpNYXRoLnBvdyhha1thbC0xXSwzKTt2YXIg YUk9M0QoYWtbYWxdLWFrW2FsLTFdKS9hRjt2YXIgYUgsYW87Zm9yKHZhciA9CmFDPTNEMCxhQT0z RGFGO2FDPGFBO2FDKyspe2FIPTNEW107YW89M0Rha1thbC0xXSthQyphSTthSC5wdXNoKGFvKTth SC5wdXNoKD0KYXgrYXIqYW8rYXEqTWF0aC5wb3coYW8sMikrYXAqTWF0aC5wb3coYW8sMykpO2Fq LnB1c2goYUgpO2F5LnB1c2goW2FuKGFIWzBdPQopLGFHKGFIWzFdKV0pfX1hai5wdXNoKGFKW2FF XSk7YXkucHVzaChbYW4oYUpbYUVdWzBdKSxhRyhhSlthRV1bMV0pXSk7cmV0dXI9Cm5bYWosYXld fWZ1bmN0aW9uIEYoYXApe3ZhciBhbz0zRHRoaXMucmVuZGVyZXIuc21vb3RoO3ZhciBhVT0zRHRo aXMucmVuZGVyZT0Kci50ZW5zaW9uO3ZhciBhaD0zRHRoaXMuY2FudmFzLmdldFdpZHRoKCk7dmFy IGFIPTNEdGhpcy5feGF4aXMuc2VyaWVzX3AydTt2PQphciBhcT0zRHRoaXMuX3lheGlzLnNlcmll c19wMnU7dmFyIGFJPTNEbnVsbDt2YXIgYUo9M0RudWxsO3ZhciBhVD0zRG51bGw7dmE9CnIgYU89 M0RudWxsO3ZhciBhTT0zRG51bGw7dmFyIGF0PTNEbnVsbDt2YXIgYVI9M0RudWxsO3ZhciBhbT0z RG51bGw7dmFyIGFLLD0KYUwsYUQsYUMsYUEsYXk7dmFyIGFrLGFpLGF2LGF1O3ZhciBhQixheixh Tjt2YXIgYXc9M0RbXTt2YXIgYWo9M0RbXTt2YXIgYWw9Cj0zRGFwLmxlbmd0aC9haDt2YXIgYVMs YXgsYUYsYUcsYUU7dmFyIGFyPTNEW107dmFyIGFuPTNEW107aWYoIWlzTmFOKHBhcnNlRj0KbG9h dChhbykpKXthST0zRHBhcnNlRmxvYXQoYW8pfWVsc2V7YUk9M0RLKGFsLDAuNSl9aWYoIWlzTmFO KHBhcnNlRmxvYXQoYVUpPQopKXthVT0zRHBhcnNlRmxvYXQoYVUpfWZvcih2YXIgYVE9M0QwLGFQ PTNEYXAubGVuZ3RoLTE7YVE8YVA7YVErKyl7aWYoYVU9M0Q9Cj0zRD0zRG51bGwpe2F0PTNETWF0 aC5hYnMoKGFwW2FRKzFdWzFdLWFwW2FRXVsxXSkvKGFwW2FRKzFdWzBdLWFwW2FRXVswXSkpOz0K YVM9M0QwLjM7YXg9M0QwLjY7YUY9M0QoYXgtYVMpLzI7YUc9M0QyLjU7YUU9M0QtMS40O2FtPTNE YXQvYUcrYUU7YU89M0RhRipBPQooYW0pLWFGKkEoYUUpK2FTO2lmKGFRPjApe2FSPTNETWF0aC5h YnMoKGFwW2FRXVsxXS1hcFthUS0xXVsxXSkvKGFwW2FRXVswXS09CmFwW2FRLTFdWzBdKSl9YW09 M0RhUi9hRythRTthTT0zRGFGKkEoYW0pLWFGKkEoYUUpK2FTO2FUPTNEKGFPK2FNKS8yfWVsc2V7 YT0KVD0zRGFVfWZvcihhSz0zRDA7YUs8YUk7YUsrKyl7YUw9M0RhSy9hSTthRD0zRCgxKzIqYUwp Kk1hdGgucG93KCgxLWFMKSwyKTthPQpDPTNEYUwqTWF0aC5wb3coKDEtYUwpLDIpO2FBPTNETWF0 aC5wb3coYUwsMikqKDMtMiphTCk7YXk9M0RNYXRoLnBvdyhhTCwyKSo9CihhTC0xKTtpZihhcFth US0xXSl7YWs9M0RhVCooYXBbYVErMV1bMF0tYXBbYVEtMV1bMF0pO2FpPTNEYVQqKGFwW2FRKzFd WzFdLT0KYXBbYVEtMV1bMV0pfWVsc2V7YWs9M0RhVCooYXBbYVErMV1bMF0tYXBbYVFdWzBdKTth aT0zRGFUKihhcFthUSsxXVsxXS1hcFthPQpRXVsxXSl9aWYoYXBbYVErMl0pe2F2PTNEYVQqKGFw W2FRKzJdWzBdLWFwW2FRXVswXSk7YXU9M0RhVCooYXBbYVErMl1bMV0tYXA9ClthUV1bMV0pfWVs c2V7YXY9M0RhVCooYXBbYVErMV1bMF0tYXBbYVFdWzBdKTthdT0zRGFUKihhcFthUSsxXVsxXS1h cFthUV1bMT0KXSl9YUI9M0RhRCphcFthUV1bMF0rYUEqYXBbYVErMV1bMF0rYUMqYWsrYXkqYXY7 YXo9M0RhRCphcFthUV1bMV0rYUEqYXBbYVErPQoxXVsxXSthQyphaStheSphdTthTj0zRFthQixh el07YXIucHVzaChhTik7YW4ucHVzaChbYUgoYUIpLGFxKGF6KV0pfX1hci5wdXM9CmgoYXBbYVBd KTthbi5wdXNoKFthSChhcFthUF1bMF0pLGFxKGFwW2FQXVsxXSldKTtyZXR1cm5bYXIsYW5dfUwu anFwbG90Lkxpbj0KZVJlbmRlcmVyLnByb3RvdHlwZS5zZXRHcmlkRGF0YT0zRGZ1bmN0aW9uKGFw KXt2YXIgYWw9M0R0aGlzLl94YXhpcy5zZXJpZXNfPQp1MnA7dmFyIGFoPTNEdGhpcy5feWF4aXMu c2VyaWVzX3UycDt2YXIgYW09M0R0aGlzLl9wbG90RGF0YTt2YXIgYXE9M0R0aGlzLl89CnByZXZQ bG90RGF0YTt0aGlzLmdyaWREYXRhPTNEW107dGhpcy5fcHJldkdyaWREYXRhPTNEW107dGhpcy5y ZW5kZXJlci5fc21vbz0KdGhlZERhdGE9M0RbXTt0aGlzLnJlbmRlcmVyLl9zbW9vdGhlZFBsb3RE YXRhPTNEW107dGhpcy5yZW5kZXJlci5faGlCYW5kR3JpPQpkRGF0YT0zRFtdO3RoaXMucmVuZGVy ZXIuX2xvd0JhbmRHcmlkRGF0YT0zRFtdO3RoaXMucmVuZGVyZXIuX2hpQmFuZFNtb290aGU9CmRE YXRhPTNEW107dGhpcy5yZW5kZXJlci5fbG93QmFuZFNtb290aGVkRGF0YT0zRFtdO3ZhciBhaz0z RHRoaXMucmVuZGVyZXIuYj0KYW5kczt2YXIgYWk9M0RmYWxzZTtmb3IodmFyIGFuPTNEMCxhaj0z RGFtLmxlbmd0aDthbjxhajthbisrKXtpZihhbVthbl1bMF0hPQo9M0RudWxsJiZhbVthbl1bMV0h PTNEbnVsbCl7dGhpcy5ncmlkRGF0YS5wdXNoKFthbC5jYWxsKHRoaXMuX3hheGlzLGFtW2FuXVs9 CjBdKSxhaC5jYWxsKHRoaXMuX3lheGlzLGFtW2FuXVsxXSldKX1lbHNle2lmKGFtW2FuXVswXT0z RD0zRG51bGwpe2FpPTNEdHJ1ZT0KO3RoaXMuZ3JpZERhdGEucHVzaChbbnVsbCxhaC5jYWxsKHRo aXMuX3lheGlzLGFtW2FuXVsxXSldKX1lbHNle2lmKGFtW2FuXVsxPQpdPTNEPTNEbnVsbCl7YWk9 M0R0cnVlO3RoaXMuZ3JpZERhdGEucHVzaChbYWwuY2FsbCh0aGlzLl94YXhpcyxhbVthbl1bMF0p LG49CnVsbF0pfX19aWYoYXFbYW5dIT0zRG51bGwmJmFxW2FuXVswXSE9M0RudWxsJiZhcVthbl1b MV0hPTNEbnVsbCl7dGhpcy5fcHJldj0KR3JpZERhdGEucHVzaChbYWwuY2FsbCh0aGlzLl94YXhp cyxhcVthbl1bMF0pLGFoLmNhbGwodGhpcy5feWF4aXMsYXFbYW5dWzFdPQopXSl9ZWxzZXtpZihh cVthbl0hPTNEbnVsbCYmYXFbYW5dWzBdPTNEPTNEbnVsbCl7dGhpcy5fcHJldkdyaWREYXRhLnB1 c2goW249CnVsbCxhaC5jYWxsKHRoaXMuX3lheGlzLGFxW2FuXVsxXSldKX1lbHNle2lmKGFxW2Fu XSE9M0RudWxsJiZhcVthbl1bMF0hPTNEbj0KdWxsJiZhcVthbl1bMV09M0Q9M0RudWxsKXt0aGlz Ll9wcmV2R3JpZERhdGEucHVzaChbYWwuY2FsbCh0aGlzLl94YXhpcyxhcVthPQpuXVswXSksbnVs bF0pfX19fWlmKGFpKXt0aGlzLnJlbmRlcmVyLnNtb290aD0zRGZhbHNlO2lmKHRoaXMuX3R5cGU9 M0Q9M0Q9M0Q9CiJsaW5lIil7YWsuc2hvdz0zRGZhbHNlfX1pZih0aGlzLl90eXBlPTNEPTNEPTNE ImxpbmUiJiZhay5zaG93KXtmb3IodmFyIGFuPQo9M0QwLGFqPTNEYWsuaGlEYXRhLmxlbmd0aDth bjxhajthbisrKXt0aGlzLnJlbmRlcmVyLl9oaUJhbmRHcmlkRGF0YS5wdXNoKFs9CmFsLmNhbGwo dGhpcy5feGF4aXMsYWsuaGlEYXRhW2FuXVswXSksYWguY2FsbCh0aGlzLl95YXhpcyxhay5oaURh dGFbYW5dWzFdKT0KXSl9Zm9yKHZhciBhbj0zRDAsYWo9M0Rhay5sb3dEYXRhLmxlbmd0aDthbjxh ajthbisrKXt0aGlzLnJlbmRlcmVyLl9sb3dCYW5kPQpHcmlkRGF0YS5wdXNoKFthbC5jYWxsKHRo aXMuX3hheGlzLGFrLmxvd0RhdGFbYW5dWzBdKSxhaC5jYWxsKHRoaXMuX3lheGlzLGE9CmsubG93 RGF0YVthbl1bMV0pXSl9fWlmKHRoaXMuX3R5cGU9M0Q9M0Q9M0QibGluZSImJnRoaXMucmVuZGVy ZXIuc21vb3RoJiZ0aD0KaXMuZ3JpZERhdGEubGVuZ3RoPjIpe3ZhciBhbztpZih0aGlzLnJlbmRl cmVyLmNvbnN0cmFpblNtb290aGluZyl7YW89M0RKLmNhPQpsbCh0aGlzLHRoaXMuZ3JpZERhdGEp O3RoaXMucmVuZGVyZXIuX3Ntb290aGVkRGF0YT0zRGFvWzBdO3RoaXMucmVuZGVyZXIuX3M9Cm1v b3RoZWRQbG90RGF0YT0zRGFvWzFdO2lmKGFrLnNob3cpe2FvPTNESi5jYWxsKHRoaXMsdGhpcy5y ZW5kZXJlci5faGlCYW5kRz0KcmlkRGF0YSk7dGhpcy5yZW5kZXJlci5faGlCYW5kU21vb3RoZWRE YXRhPTNEYW9bMF07YW89M0RKLmNhbGwodGhpcyx0aGlzLnJlPQpuZGVyZXIuX2xvd0JhbmRHcmlk RGF0YSk7dGhpcy5yZW5kZXJlci5fbG93QmFuZFNtb290aGVkRGF0YT0zRGFvWzBdfWFvPTNEbnU9 CmxsfWVsc2V7YW89M0RGLmNhbGwodGhpcyx0aGlzLmdyaWREYXRhKTt0aGlzLnJlbmRlcmVyLl9z bW9vdGhlZERhdGE9M0Rhb1swXT0KO3RoaXMucmVuZGVyZXIuX3Ntb290aGVkUGxvdERhdGE9M0Rh b1sxXTtpZihhay5zaG93KXthbz0zREYuY2FsbCh0aGlzLHRoaXMuPQpyZW5kZXJlci5faGlCYW5k R3JpZERhdGEpO3RoaXMucmVuZGVyZXIuX2hpQmFuZFNtb290aGVkRGF0YT0zRGFvWzBdO2FvPTNE Ri49CmNhbGwodGhpcyx0aGlzLnJlbmRlcmVyLl9sb3dCYW5kR3JpZERhdGEpO3RoaXMucmVuZGVy ZXIuX2xvd0JhbmRTbW9vdGhlZERhdD0KYT0zRGFvWzBdfWFvPTNEbnVsbH19fTtMLmpxcGxvdC5M aW5lUmVuZGVyZXIucHJvdG90eXBlLm1ha2VHcmlkRGF0YT0zRGZ1bmN0PQppb24oYW8sYXEpe3Zh ciBhbT0zRHRoaXMuX3hheGlzLnNlcmllc191MnA7dmFyIGFoPTNEdGhpcy5feWF4aXMuc2VyaWVz X3UycDs9CnZhciBhcj0zRFtdO3ZhciBhaj0zRFtdO3RoaXMucmVuZGVyZXIuX3Ntb290aGVkRGF0 YT0zRFtdO3RoaXMucmVuZGVyZXIuX3Ntbz0Kb3RoZWRQbG90RGF0YT0zRFtdO3RoaXMucmVuZGVy ZXIuX2hpQmFuZEdyaWREYXRhPTNEW107dGhpcy5yZW5kZXJlci5fbG93QmFuPQpkR3JpZERhdGE9 M0RbXTt0aGlzLnJlbmRlcmVyLl9oaUJhbmRTbW9vdGhlZERhdGE9M0RbXTt0aGlzLnJlbmRlcmVy Ll9sb3dCYW49CmRTbW9vdGhlZERhdGE9M0RbXTt2YXIgYWw9M0R0aGlzLnJlbmRlcmVyLmJhbmRz O3ZhciBhaT0zRGZhbHNlO2Zvcih2YXIgYW49Cj0zRDA7YW48YW8ubGVuZ3RoO2FuKyspe2lmKGFv W2FuXVswXSE9M0RudWxsJiZhb1thbl1bMV0hPTNEbnVsbCl7YXIucHVzaChbYT0KbS5jYWxsKHRo aXMuX3hheGlzLGFvW2FuXVswXSksYWguY2FsbCh0aGlzLl95YXhpcyxhb1thbl1bMV0pXSl9ZWxz ZXtpZihhb1thPQpuXVswXT0zRD0zRG51bGwpe2FpPTNEdHJ1ZTthci5wdXNoKFtudWxsLGFoLmNh bGwodGhpcy5feWF4aXMsYW9bYW5dWzFdKV0pfWU9CmxzZXtpZihhb1thbl1bMV09M0Q9M0RudWxs KXthaT0zRHRydWU7YXIucHVzaChbYW0uY2FsbCh0aGlzLl94YXhpcyxhb1thbl1bMD0KXSksbnVs bF0pfX19fWlmKGFpKXt0aGlzLnJlbmRlcmVyLnNtb290aD0zRGZhbHNlO2lmKHRoaXMuX3R5cGU9 M0Q9M0Q9M0QibGluPQplIil7YWwuc2hvdz0zRGZhbHNlfX1pZih0aGlzLl90eXBlPTNEPTNEPTNE ImxpbmUiJiZhbC5zaG93KXtmb3IodmFyIGFuPTNEMCw9CmFrPTNEYWwuaGlEYXRhLmxlbmd0aDth bjxhazthbisrKXt0aGlzLnJlbmRlcmVyLl9oaUJhbmRHcmlkRGF0YS5wdXNoKFthbS5jYT0KbGwo dGhpcy5feGF4aXMsYWwuaGlEYXRhW2FuXVswXSksYWguY2FsbCh0aGlzLl95YXhpcyxhbC5oaURh dGFbYW5dWzFdKV0pfWZvPQpyKHZhciBhbj0zRDAsYWs9M0RhbC5sb3dEYXRhLmxlbmd0aDthbjxh azthbisrKXt0aGlzLnJlbmRlcmVyLl9sb3dCYW5kR3JpZEQ9CmF0YS5wdXNoKFthbS5jYWxsKHRo aXMuX3hheGlzLGFsLmxvd0RhdGFbYW5dWzBdKSxhaC5jYWxsKHRoaXMuX3lheGlzLGFsLmxvdz0K RGF0YVthbl1bMV0pXSl9fWlmKHRoaXMuX3R5cGU9M0Q9M0Q9M0QibGluZSImJnRoaXMucmVuZGVy ZXIuc21vb3RoJiZhci5sZW5nPQp0aD4yKXt2YXIgYXA7aWYodGhpcy5yZW5kZXJlci5jb25zdHJh aW5TbW9vdGhpbmcpe2FwPTNESi5jYWxsKHRoaXMsYXIpO3RoaXM9Ci5yZW5kZXJlci5fc21vb3Ro ZWREYXRhPTNEYXBbMF07dGhpcy5yZW5kZXJlci5fc21vb3RoZWRQbG90RGF0YT0zRGFwWzFdO2lm KD0KYWwuc2hvdyl7YXA9M0RKLmNhbGwodGhpcyx0aGlzLnJlbmRlcmVyLl9oaUJhbmRHcmlkRGF0 YSk7dGhpcy5yZW5kZXJlci5faGlCPQphbmRTbW9vdGhlZERhdGE9M0RhcFswXTthcD0zREouY2Fs bCh0aGlzLHRoaXMucmVuZGVyZXIuX2xvd0JhbmRHcmlkRGF0YSk7dGg9CmlzLnJlbmRlcmVyLl9s b3dCYW5kU21vb3RoZWREYXRhPTNEYXBbMF19YXA9M0RudWxsfWVsc2V7YXA9M0RGLmNhbGwodGhp cyxhcj0KKTt0aGlzLnJlbmRlcmVyLl9zbW9vdGhlZERhdGE9M0RhcFswXTt0aGlzLnJlbmRlcmVy Ll9zbW9vdGhlZFBsb3REYXRhPTNEYXBbPQoxXTtpZihhbC5zaG93KXthcD0zREYuY2FsbCh0aGlz LHRoaXMucmVuZGVyZXIuX2hpQmFuZEdyaWREYXRhKTt0aGlzLnJlbmRlcmU9CnIuX2hpQmFuZFNt b290aGVkRGF0YT0zRGFwWzBdO2FwPTNERi5jYWxsKHRoaXMsdGhpcy5yZW5kZXJlci5fbG93QmFu ZEdyaWREYT0KdGEpO3RoaXMucmVuZGVyZXIuX2xvd0JhbmRTbW9vdGhlZERhdGE9M0RhcFswXX1h cD0zRG51bGx9fXJldHVybiBhcn07TC5qcXBsPQpvdC5MaW5lUmVuZGVyZXIucHJvdG90eXBlLmRy YXc9M0RmdW5jdGlvbihheCxhSSxhaSxhQil7dmFyIGFDO3ZhciBhcT0zREwuZXg9CnRlbmQodHJ1 ZSx7fSxhaSk7dmFyIGFrPTNEKGFxLnNoYWRvdyE9M0R1KT9hcS5zaGFkb3c6dGhpcy5zaGFkb3c7 dmFyIGFKPTNEKD0KYXEuc2hvd0xpbmUhPTNEdSk/YXEuc2hvd0xpbmU6dGhpcy5zaG93TGluZTt2 YXIgYUE9M0QoYXEuZmlsbCE9M0R1KT9hcS5maWxsPQo6dGhpcy5maWxsO3ZhciBhaD0zRChhcS5m aWxsQW5kU3Ryb2tlIT0zRHUpP2FxLmZpbGxBbmRTdHJva2U6dGhpcy5maWxsQW5kU3Q9CnJva2U7 dmFyIGFyLGF5LGF2LGFFO2F4LnNhdmUoKTtpZihhSS5sZW5ndGgpe2lmKGFKKXtpZihhQSl7aWYo dGhpcy5maWxsVG9aZT0Kcm8pe3ZhciBhRj0zRHRoaXMubmVnYXRpdmVDb2xvcjtpZighdGhpcy51 c2VOZWdhdGl2ZUNvbG9ycyl7YUY9M0RhcS5maWxsU3R5PQpsZX12YXIgYW89M0RmYWxzZTt2YXIg YXA9M0RhcS5maWxsU3R5bGU7aWYoYWgpe3ZhciBhSD0zRGFJLnNsaWNlKDApfWlmKHRoaXM9Ci5p bmRleD0zRD0zRDB8fCF0aGlzLl9zdGFjayl7dmFyIGF3PTNEW107dmFyIGFMPTNEKHRoaXMucmVu ZGVyZXIuc21vb3RoKT90aD0KaXMucmVuZGVyZXIuX3Ntb290aGVkUGxvdERhdGE6dGhpcy5fcGxv dERhdGE7dGhpcy5fYXJlYVBvaW50cz0zRFtdO3ZhciBhRz0KPTNEdGhpcy5feWF4aXMuc2VyaWVz X3UycCh0aGlzLmZpbGxUb1ZhbHVlKTt2YXIgYWo9M0R0aGlzLl94YXhpcy5zZXJpZXNfdTJwPQoo dGhpcy5maWxsVG9WYWx1ZSk7YXEuY2xvc2VQYXRoPTNEdHJ1ZTtpZih0aGlzLmZpbGxBeGlzPTNE PTNEInkiKXthdy5wdXNoKFs9CmFJWzBdWzBdLGFHXSk7dGhpcy5fYXJlYVBvaW50cy5wdXNoKFth SVswXVswXSxhR10pO2Zvcih2YXIgYUM9M0QwO2FDPGFJLmxlbj0KZ3RoLTE7YUMrKyl7YXcucHVz aChhSVthQ10pO3RoaXMuX2FyZWFQb2ludHMucHVzaChhSVthQ10pO2lmKGFMW2FDXVsxXSphTFth PQpDKzFdWzFdPD0zRDApe2lmKGFMW2FDXVsxXTwwKXthbz0zRHRydWU7YXEuZmlsbFN0eWxlPTNE YUZ9ZWxzZXthbz0zRGZhbHNlO2E9CnEuZmlsbFN0eWxlPTNEYXB9dmFyIGFuPTNEYUlbYUNdWzBd KyhhSVthQysxXVswXS1hSVthQ11bMF0pKihhRy1hSVthQ11bMV0pLz0KKGFJW2FDKzFdWzFdLWFJ W2FDXVsxXSk7YXcucHVzaChbYW4sYUddKTt0aGlzLl9hcmVhUG9pbnRzLnB1c2goW2FuLGFHXSk7 aWYoPQphayl7dGhpcy5yZW5kZXJlci5zaGFkb3dSZW5kZXJlci5kcmF3KGF4LGF3LGFxKX10aGlz LnJlbmRlcmVyLnNoYXBlUmVuZGVyZXI9Ci5kcmF3KGF4LGF3LGFxKTthdz0zRFtbYW4sYUddXX19 aWYoYUxbYUkubGVuZ3RoLTFdWzFdPDApe2FvPTNEdHJ1ZTthcS5maWxsUz0KdHlsZT0zRGFGfWVs c2V7YW89M0RmYWxzZTthcS5maWxsU3R5bGU9M0RhcH1hdy5wdXNoKGFJW2FJLmxlbmd0aC0xXSk7 dGhpcy5fPQphcmVhUG9pbnRzLnB1c2goYUlbYUkubGVuZ3RoLTFdKTthdy5wdXNoKFthSVthSS5s ZW5ndGgtMV1bMF0sYUddKTt0aGlzLl9hcmU9CmFQb2ludHMucHVzaChbYUlbYUkubGVuZ3RoLTFd WzBdLGFHXSl9aWYoYWspe3RoaXMucmVuZGVyZXIuc2hhZG93UmVuZGVyZXIuZD0KcmF3KGF4LGF3 LGFxKX10aGlzLnJlbmRlcmVyLnNoYXBlUmVuZGVyZXIuZHJhdyhheCxhdyxhcSl9ZWxzZXt2YXIg YXU9M0R0aGlzPQouX3ByZXZHcmlkRGF0YTtmb3IodmFyIGFDPTNEYXUubGVuZ3RoO2FDPjA7YUMt LSl7YUkucHVzaChhdVthQy0xXSl9aWYoYWspe3Q9Cmhpcy5yZW5kZXJlci5zaGFkb3dSZW5kZXJl ci5kcmF3KGF4LGFJLGFxKX10aGlzLl9hcmVhUG9pbnRzPTNEYUk7dGhpcy5yZW5kZT0KcmVyLnNo YXBlUmVuZGVyZXIuZHJhdyhheCxhSSxhcSl9fWVsc2V7aWYoYWgpe3ZhciBhSD0zRGFJLnNsaWNl KDApfWlmKHRoaXMuPQppbmRleD0zRD0zRDB8fCF0aGlzLl9zdGFjayl7dmFyIGFsPTNEYXguY2Fu dmFzLmhlaWdodDthSS51bnNoaWZ0KFthSVswXVswXSw9CmFsXSk7dmFyIGFEPTNEYUkubGVuZ3Ro O2FJLnB1c2goW2FJW2FELTFdWzBdLGFsXSl9ZWxzZXt2YXIgYXU9M0R0aGlzLl9wcmV2Rz0Kcmlk RGF0YTtmb3IodmFyIGFDPTNEYXUubGVuZ3RoO2FDPjA7YUMtLSl7YUkucHVzaChhdVthQy0xXSl9 fXRoaXMuX2FyZWFQb2luPQp0cz0zRGFJO2lmKGFrKXt0aGlzLnJlbmRlcmVyLnNoYWRvd1JlbmRl cmVyLmRyYXcoYXgsYUksYXEpfXRoaXMucmVuZGVyZXIuc2g9CmFwZVJlbmRlcmVyLmRyYXcoYXgs YUksYXEpfWlmKGFoKXt2YXIgYXo9M0RMLmV4dGVuZCh0cnVlLHt9LGFxLHtmaWxsOmZhbHNlLD0K Y2xvc2VQYXRoOmZhbHNlfSk7dGhpcy5yZW5kZXJlci5zaGFwZVJlbmRlcmVyLmRyYXcoYXgsYUgs YXopO2lmKHRoaXMubWFya2VyPQpSZW5kZXJlci5zaG93KXtpZih0aGlzLnJlbmRlcmVyLnNtb290 aCl7YUg9M0R0aGlzLmdyaWREYXRhfWZvcihhQz0zRDA7YUM8YUg9Ci5sZW5ndGg7YUMrKyl7dGhp cy5tYXJrZXJSZW5kZXJlci5kcmF3KGFIW2FDXVswXSxhSFthQ11bMV0sYXgsYXEubWFya2VyT3B0 aT0Kb25zKX19fX1lbHNle2lmKHRoaXMucmVuZGVyZXIuYmFuZHMuc2hvdyl7dmFyIGFtO3ZhciBh Sz0zREwuZXh0ZW5kKHRydWUse30sPQphcSk7aWYodGhpcy5yZW5kZXJlci5iYW5kcy5zaG93TGlu ZXMpe2FtPTNEKHRoaXMucmVuZGVyZXIuc21vb3RoKT90aGlzLnJlbmQ9CmVyZXIuX2hpQmFuZFNt b290aGVkRGF0YTp0aGlzLnJlbmRlcmVyLl9oaUJhbmRHcmlkRGF0YTt0aGlzLnJlbmRlcmVyLnNo YXBlUj0KZW5kZXJlci5kcmF3KGF4LGFtLGFxKTthbT0zRCh0aGlzLnJlbmRlcmVyLnNtb290aCk/ dGhpcy5yZW5kZXJlci5fbG93QmFuZFNtPQpvb3RoZWREYXRhOnRoaXMucmVuZGVyZXIuX2xvd0Jh bmRHcmlkRGF0YTt0aGlzLnJlbmRlcmVyLnNoYXBlUmVuZGVyZXIuZHJhdyg9CmF4LGFtLGFLKX1p Zih0aGlzLnJlbmRlcmVyLmJhbmRzLmZpbGwpe2lmKHRoaXMucmVuZGVyZXIuc21vb3RoKXthbT0z RHRoaXMucj0KZW5kZXJlci5faGlCYW5kU21vb3RoZWREYXRhLmNvbmNhdCh0aGlzLnJlbmRlcmVy Ll9sb3dCYW5kU21vb3RoZWREYXRhLnJldmVyPQpzZSgpKX1lbHNle2FtPTNEdGhpcy5yZW5kZXJl ci5faGlCYW5kR3JpZERhdGEuY29uY2F0KHRoaXMucmVuZGVyZXIuX2xvd0JhbmQ9CkdyaWREYXRh LnJldmVyc2UoKSl9dGhpcy5fYXJlYVBvaW50cz0zRGFtO2FLLmNsb3NlUGF0aD0zRHRydWU7YUsu ZmlsbD0zRHRydT0KZTthSy5maWxsU3R5bGU9M0R0aGlzLnJlbmRlcmVyLmJhbmRzLmZpbGxDb2xv cjt0aGlzLnJlbmRlcmVyLnNoYXBlUmVuZGVyZXIuPQpkcmF3KGF4LGFtLGFLKX19aWYoYWspe3Ro aXMucmVuZGVyZXIuc2hhZG93UmVuZGVyZXIuZHJhdyhheCxhSSxhcSl9dGhpcy5yZW49CmRlcmVy LnNoYXBlUmVuZGVyZXIuZHJhdyhheCxhSSxhcSl9fXZhciBhcj0zRGF2PTNEYXk9M0RhRT0zRG51 bGw7Zm9yKGFDPTNEMD0KO2FDPHRoaXMuX2FyZWFQb2ludHMubGVuZ3RoO2FDKyspe3ZhciBhdD0z RHRoaXMuX2FyZWFQb2ludHNbYUNdO2lmKGFyPmF0WzBdPQp8fGFyPTNEPTNEbnVsbCl7YXI9M0Rh dFswXX1pZihhRTxhdFsxXXx8YUU9M0Q9M0RudWxsKXthRT0zRGF0WzFdfWlmKGF2PGF0WzA9Cl18 fGF2PTNEPTNEbnVsbCl7YXY9M0RhdFswXX1pZihheT5hdFsxXXx8YXk9M0Q9M0RudWxsKXtheT0z RGF0WzFdfX1pZih0aGlzLj0KdHlwZT0zRD0zRD0zRCJsaW5lIiYmdGhpcy5yZW5kZXJlci5iYW5k cy5zaG93KXthRT0zRHRoaXMuX3lheGlzLnNlcmllc191MnAoPQp0aGlzLnJlbmRlcmVyLmJhbmRz Ll9taW4pO2F5PTNEdGhpcy5feWF4aXMuc2VyaWVzX3UycCh0aGlzLnJlbmRlcmVyLmJhbmRzLl89 Cm1heCl9dGhpcy5fYm91bmRpbmdCb3g9M0RbW2FyLGFFXSxbYXYsYXldXTtpZih0aGlzLm1hcmtl clJlbmRlcmVyLnNob3cmJiFhQT0KKXtpZih0aGlzLnJlbmRlcmVyLnNtb290aCl7YUk9M0R0aGlz LmdyaWREYXRhfWZvcihhQz0zRDA7YUM8YUkubGVuZ3RoO2FDKyspPQp7aWYoYUlbYUNdWzBdIT0z RG51bGwmJmFJW2FDXVsxXSE9M0RudWxsKXt0aGlzLm1hcmtlclJlbmRlcmVyLmRyYXcoYUlbYUNd WzA9Cl0sYUlbYUNdWzFdLGF4LGFxLm1hcmtlck9wdGlvbnMpfX19fWF4LnJlc3RvcmUoKX07TC5q cXBsb3QuTGluZVJlbmRlcmVyLnBybz0KdG90eXBlLmRyYXdTaGFkb3c9M0RmdW5jdGlvbihhaCxh aixhaSl7fTtmdW5jdGlvbiB6KGFrLGFqLGFoKXtmb3IodmFyIGFpPTNEPQowO2FpPHRoaXMuc2Vy aWVzLmxlbmd0aDthaSsrKXtpZih0aGlzLnNlcmllc1thaV0ucmVuZGVyZXIuY29uc3RydWN0b3I9 M0Q9M0Q9CkwuanFwbG90LkxpbmVSZW5kZXJlcil7aWYodGhpcy5zZXJpZXNbYWldLmhpZ2hsaWdo dE1vdXNlT3Zlcil7dGhpcy5zZXJpZXNbYT0KaV0uaGlnaGxpZ2h0TW91c2VEb3duPTNEZmFsc2V9 fX19ZnVuY3Rpb24gYWYoKXtpZih0aGlzLnBsdWdpbnMubGluZVJlbmRlcmVyPQomJnRoaXMucGx1 Z2lucy5saW5lUmVuZGVyZXIuaGlnaGxpZ2h0Q2FudmFzKXt0aGlzLnBsdWdpbnMubGluZVJlbmRl cmVyLmhpZ2g9CmxpZ2h0Q2FudmFzLnJlc2V0Q2FudmFzKCk7dGhpcy5wbHVnaW5zLmxpbmVSZW5k ZXJlci5oaWdobGlnaHRDYW52YXM9M0RudWxsfT0KdGhpcy5wbHVnaW5zLmxpbmVSZW5kZXJlci5o aWdobGlnaHRlZFNlcmllc0luZGV4PTNEbnVsbDt0aGlzLnBsdWdpbnMubGluZVJlPQpuZGVyZXIu aGlnaGxpZ2h0Q2FudmFzPTNEbmV3IEwuanFwbG90LkdlbmVyaWNDYW52YXMoKTt0aGlzLmV2ZW50 Q2FudmFzLl9lbGU9Cm0uYmVmb3JlKHRoaXMucGx1Z2lucy5saW5lUmVuZGVyZXIuaGlnaGxpZ2h0 Q2FudmFzLmNyZWF0ZUVsZW1lbnQodGhpcy5fZ3JpZD0KUGFkZGluZywianFwbG90LWxpbmVSZW5k ZXJlci1oaWdobGlnaHQtY2FudmFzIix0aGlzLl9wbG90RGltZW5zaW9ucyx0aGlzKSk7PQp0aGlz LnBsdWdpbnMubGluZVJlbmRlcmVyLmhpZ2hsaWdodENhbnZhcy5zZXRDb250ZXh0KCk7dGhpcy5l dmVudENhbnZhcy5fZWw9CmVtLmJpbmQoIm1vdXNlbGVhdmUiLHtwbG90OnRoaXN9LGZ1bmN0aW9u KGFoKXthYShhaC5kYXRhLnBsb3QpfSl9ZnVuY3Rpb24gYT0KYyhhbixhbSxhayxhail7dmFyIGFp PTNEYW4uc2VyaWVzW2FtXTt2YXIgYWg9M0Rhbi5wbHVnaW5zLmxpbmVSZW5kZXJlci5oaWdoPQps aWdodENhbnZhczthaC5fY3R4LmNsZWFyUmVjdCgwLDAsYWguX2N0eC5jYW52YXMud2lkdGgsYWgu X2N0eC5jYW52YXMuaGVpZ2g9CnQpO2FpLl9oaWdobGlnaHRlZFBvaW50PTNEYWs7YW4ucGx1Z2lu cy5saW5lUmVuZGVyZXIuaGlnaGxpZ2h0ZWRTZXJpZXNJbmRleD0KPTNEYW07dmFyIGFsPTNEe2Zp bGxTdHlsZTphaS5oaWdobGlnaHRDb2xvcn07aWYoYWkudHlwZT0zRD0zRD0zRCJsaW5lIiYmYWku PQpyZW5kZXJlci5iYW5kcy5zaG93KXthbC5maWxsPTNEdHJ1ZTthbC5jbG9zZVBhdGg9M0R0cnVl fWFpLnJlbmRlcmVyLnNoYXBlUmU9Cm5kZXJlci5kcmF3KGFoLl9jdHgsYWosYWwpO2FoPTNEbnVs bH1mdW5jdGlvbiBhYShhail7dmFyIGFoPTNEYWoucGx1Z2lucy5saT0KbmVSZW5kZXJlci5oaWdo bGlnaHRDYW52YXM7YWguX2N0eC5jbGVhclJlY3QoMCwwLGFoLl9jdHguY2FudmFzLndpZHRoLGFo Ll9jPQp0eC5jYW52YXMuaGVpZ2h0KTtmb3IodmFyIGFpPTNEMDthaTxhai5zZXJpZXMubGVuZ3Ro O2FpKyspe2FqLnNlcmllc1thaV0uX2g9CmlnaGxpZ2h0ZWRQb2ludD0zRG51bGx9YWoucGx1Z2lu cy5saW5lUmVuZGVyZXIuaGlnaGxpZ2h0ZWRTZXJpZXNJbmRleD0zRG51bD0KbDthai50YXJnZXQu dHJpZ2dlcigianFwbG90RGF0YVVuaGlnaGxpZ2h0Iik7YWg9M0RudWxsfWZ1bmN0aW9uIGgoYWws YWssYW8sPQphbixhbSl7aWYoYW4pe3ZhciBhaj0zRFthbi5zZXJpZXNJbmRleCxhbi5wb2ludElu ZGV4LGFuLmRhdGFdO3ZhciBhaT0zRGpRdWU9CnJ5LkV2ZW50KCJqcXBsb3REYXRhTW91c2VPdmVy Iik7YWkucGFnZVg9M0RhbC5wYWdlWDthaS5wYWdlWT0zRGFsLnBhZ2VZO2FtLj0KdGFyZ2V0LnRy aWdnZXIoYWksYWopO2lmKGFtLnNlcmllc1thalswXV0uaGlnaGxpZ2h0TW91c2VPdmVyJiYhKGFq WzBdPTNEPTNEPQphbS5wbHVnaW5zLmxpbmVSZW5kZXJlci5oaWdobGlnaHRlZFNlcmllc0luZGV4 KSl7dmFyIGFoPTNEalF1ZXJ5LkV2ZW50KCJqcXA9CmxvdERhdGFIaWdobGlnaHQiKTthaC53aGlj aD0zRGFsLndoaWNoO2FoLnBhZ2VYPTNEYWwucGFnZVg7YWgucGFnZVk9M0RhbC5wYT0KZ2VZO2Ft LnRhcmdldC50cmlnZ2VyKGFoLGFqKTthYyhhbSxhbi5zZXJpZXNJbmRleCxhbi5wb2ludEluZGV4 LGFuLnBvaW50cyl9PQp9ZWxzZXtpZihhbj0zRD0zRG51bGwpe2FhKGFtKX19fWZ1bmN0aW9uIGUo YWssYWosYW4sYW0sYWwpe2lmKGFtKXt2YXIgYWk9M0Q9ClthbS5zZXJpZXNJbmRleCxhbS5wb2lu dEluZGV4LGFtLmRhdGFdO2lmKGFsLnNlcmllc1thaVswXV0uaGlnaGxpZ2h0TW91c2VEbz0Kd24m JiEoYWlbMF09M0Q9M0RhbC5wbHVnaW5zLmxpbmVSZW5kZXJlci5oaWdobGlnaHRlZFNlcmllc0lu ZGV4KSl7dmFyIGFoPTNEPQpqUXVlcnkuRXZlbnQoImpxcGxvdERhdGFIaWdobGlnaHQiKTthaC53 aGljaD0zRGFrLndoaWNoO2FoLnBhZ2VYPTNEYWsucGFnZVg9CjthaC5wYWdlWT0zRGFrLnBhZ2VZ O2FsLnRhcmdldC50cmlnZ2VyKGFoLGFpKTthYyhhbCxhbS5zZXJpZXNJbmRleCxhbS5wb2ludD0K SW5kZXgsYW0ucG9pbnRzKX19ZWxzZXtpZihhbT0zRD0zRG51bGwpe2FhKGFsKX19fWZ1bmN0aW9u IGFkKGFqLGFpLGFtLGFsLGFrPQope3ZhciBhaD0zRGFrLnBsdWdpbnMubGluZVJlbmRlcmVyLmhp Z2hsaWdodGVkU2VyaWVzSW5kZXg7aWYoYWghPTNEbnVsbCYmYWs9Ci5zZXJpZXNbYWhdLmhpZ2hs aWdodE1vdXNlRG93bil7YWEoYWspfX1mdW5jdGlvbiBnKGFrLGFqLGFuLGFtLGFsKXtpZihhbSl7 dj0KYXIgYWk9M0RbYW0uc2VyaWVzSW5kZXgsYW0ucG9pbnRJbmRleCxhbS5kYXRhXTt2YXIgYWg9 M0RqUXVlcnkuRXZlbnQoImpxcGxvPQp0RGF0YUNsaWNrIik7YWgud2hpY2g9M0Rhay53aGljaDth aC5wYWdlWD0zRGFrLnBhZ2VYO2FoLnBhZ2VZPTNEYWsucGFnZVk7YWw9Ci50YXJnZXQudHJpZ2dl cihhaCxhaSl9fWZ1bmN0aW9uIHMoYWwsYWssYW8sYW4sYW0pe2lmKGFuKXt2YXIgYWo9M0RbYW4u c2VyaT0KZXNJbmRleCxhbi5wb2ludEluZGV4LGFuLmRhdGFdO3ZhciBhaD0zRGFtLnBsdWdpbnMu bGluZVJlbmRlcmVyLmhpZ2hsaWdodGVkPQpTZXJpZXNJbmRleDtpZihhaCE9M0RudWxsJiZhbS5z ZXJpZXNbYWhdLmhpZ2hsaWdodE1vdXNlRG93bil7YWEoYW0pfXZhciBhaT0KPTNEalF1ZXJ5LkV2 ZW50KCJqcXBsb3REYXRhUmlnaHRDbGljayIpO2FpLndoaWNoPTNEYWwud2hpY2g7YWkucGFnZVg9 M0RhbC5wPQphZ2VYO2FpLnBhZ2VZPTNEYWwucGFnZVk7YW0udGFyZ2V0LnRyaWdnZXIoYWksYWop fX1MLmpxcGxvdC5MaW5lYXJBeGlzUmVuZGU9CnJlcj0zRGZ1bmN0aW9uKCl7fTtMLmpxcGxvdC5M aW5lYXJBeGlzUmVuZGVyZXIucHJvdG90eXBlLmluaXQ9M0RmdW5jdGlvbihhaD0KKXt0aGlzLmJy ZWFrUG9pbnRzPTNEbnVsbDt0aGlzLmJyZWFrVGlja0xhYmVsPTNEIiZhc3ltcDsiO3RoaXMuZHJh d0Jhc2VsaW5lPQo9M0R0cnVlO3RoaXMuYmFzZWxpbmVXaWR0aD0zRG51bGw7dGhpcy5iYXNlbGlu ZUNvbG9yPTNEbnVsbDt0aGlzLmZvcmNlVGlja0E9CnQwPTNEZmFsc2U7dGhpcy5mb3JjZVRpY2tB dDEwMD0zRGZhbHNlO3RoaXMudGlja0luc2V0PTNEMDt0aGlzLm1pbm9yVGlja3M9Cj0zRDA7dGhp cy5hbGlnblRpY2tzPTNEZmFsc2U7dGhpcy5fYXV0b0Zvcm1hdFN0cmluZz0zRCIiO3RoaXMuX292 ZXJyaWRlRm9ybT0KYXRTdHJpbmc9M0RmYWxzZTt0aGlzLl9zY2FsZWZhY3Q9M0QxO0wuZXh0ZW5k KHRydWUsdGhpcyxhaCk7aWYodGhpcy5icmVha1BvPQppbnRzKXtpZighTC5pc0FycmF5KHRoaXMu YnJlYWtQb2ludHMpKXt0aGlzLmJyZWFrUG9pbnRzPTNEbnVsbH1lbHNle2lmKHRoaXM9Ci5icmVh a1BvaW50cy5sZW5ndGg8Mnx8dGhpcy5icmVha1BvaW50c1sxXTw9M0R0aGlzLmJyZWFrUG9pbnRz WzBdKXt0aGlzLmJyZT0KYWtQb2ludHM9M0RudWxsfX19aWYodGhpcy5udW1iZXJUaWNrcyE9M0Ru dWxsJiZ0aGlzLm51bWJlclRpY2tzPDIpe3RoaXMubnVtPQpiZXJUaWNrcz0zRDJ9dGhpcy5yZXNl dERhdGFCb3VuZHMoKX07TC5qcXBsb3QuTGluZWFyQXhpc1JlbmRlcmVyLnByb3RvdHlwZS49CmRy YXc9M0RmdW5jdGlvbihhaCxhbyl7aWYodGhpcy5zaG93KXt0aGlzLnJlbmRlcmVyLmNyZWF0ZVRp Y2tzLmNhbGwodGhpcyxhbz0KKTt2YXIgYW49M0QwO3ZhciBhaTtpZih0aGlzLl9lbGVtKXt0aGlz Ll9lbGVtLmVtcHR5Rm9yY2UoKTt0aGlzLl9lbGVtPTNEbnVsPQpsfXRoaXMuX2VsZW09M0RMKGRv Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTt0aGlzLl9lbGVtLmFkZENsYXNzKCJqcXBsb3Q9 Ci1heGlzIGpxcGxvdC0iK3RoaXMubmFtZSk7dGhpcy5fZWxlbS5jc3MoInBvc2l0aW9uIiwiYWJz b2x1dGUiKTtpZih0aGlzLm5hbT0KZT0zRD0zRCJ4YXhpcyJ8fHRoaXMubmFtZT0zRD0zRCJ4MmF4 aXMiKXt0aGlzLl9lbGVtLndpZHRoKHRoaXMuX3Bsb3REaW1lbnNpPQpvbnMud2lkdGgpfWVsc2V7 dGhpcy5fZWxlbS5oZWlnaHQodGhpcy5fcGxvdERpbWVuc2lvbnMuaGVpZ2h0KX10aGlzLmxhYmVs T3A9CnRpb25zLmF4aXM9M0R0aGlzLm5hbWU7dGhpcy5fbGFiZWw9M0RuZXcgdGhpcy5sYWJlbFJl bmRlcmVyKHRoaXMubGFiZWxPcHRpbz0KbnMpO2lmKHRoaXMuX2xhYmVsLnNob3cpe3ZhciBhbT0z RHRoaXMuX2xhYmVsLmRyYXcoYWgsYW8pO2FtLmFwcGVuZFRvKHRoaXMuPQpfZWxlbSk7YW09M0Ru dWxsfXZhciBhbD0zRHRoaXMuX3RpY2tzO3ZhciBhaztmb3IodmFyIGFqPTNEMDthajxhbC5sZW5n dGg7YWo9CisrKXthaz0zRGFsW2FqXTtpZihhay5zaG93JiZhay5zaG93TGFiZWwmJighYWsuaXNN aW5vclRpY2t8fHRoaXMuc2hvd01pbm9yVD0KaWNrcykpe3RoaXMuX2VsZW0uYXBwZW5kKGFrLmRy YXcoYWgsYW8pKX19YWs9M0RudWxsO2FsPTNEbnVsbH1yZXR1cm4gdGhpcy5fPQplbGVtfTtMLmpx cGxvdC5MaW5lYXJBeGlzUmVuZGVyZXIucHJvdG90eXBlLnJlc2V0PTNEZnVuY3Rpb24oKXt0aGlz Lm1pbj0zRHQ9Cmhpcy5fb3B0aW9ucy5taW47dGhpcy5tYXg9M0R0aGlzLl9vcHRpb25zLm1heDt0 aGlzLnRpY2tJbnRlcnZhbD0zRHRoaXMuX29wdD0KaW9ucy50aWNrSW50ZXJ2YWw7dGhpcy5udW1i ZXJUaWNrcz0zRHRoaXMuX29wdGlvbnMubnVtYmVyVGlja3M7dGhpcy5fYXV0b0ZvPQpybWF0U3Ry aW5nPTNEIiI7aWYodGhpcy5fb3ZlcnJpZGVGb3JtYXRTdHJpbmcmJnRoaXMudGlja09wdGlvbnMm JnRoaXMudGlja089CnB0aW9ucy5mb3JtYXRTdHJpbmcpe3RoaXMudGlja09wdGlvbnMuZm9ybWF0 U3RyaW5nPTNEIiJ9fTtMLmpxcGxvdC5MaW5lYXJBeD0KaXNSZW5kZXJlci5wcm90b3R5cGUuc2V0 PTNEZnVuY3Rpb24oKXt2YXIgYW89M0QwO3ZhciBhajt2YXIgYWk9M0QwO3ZhciBhbj0KPTNEMDt2 YXIgYWg9M0QodGhpcy5fbGFiZWw9M0Q9M0RudWxsKT9mYWxzZTp0aGlzLl9sYWJlbC5zaG93O2lm KHRoaXMuc2hvdyl7PQp2YXIgYW09M0R0aGlzLl90aWNrczt2YXIgYWw7Zm9yKHZhciBhaz0zRDA7 YWs8YW0ubGVuZ3RoO2FrKyspe2FsPTNEYW1bYWtdO2k9CmYoIWFsLl9icmVha1RpY2smJmFsLnNo b3cmJmFsLnNob3dMYWJlbCYmKCFhbC5pc01pbm9yVGlja3x8dGhpcy5zaG93TWlub3JUaT0KY2tz KSl7aWYodGhpcy5uYW1lPTNEPTNEInhheGlzInx8dGhpcy5uYW1lPTNEPTNEIngyYXhpcyIpe2Fq PTNEYWwuX2VsZW0ub3V0PQplckhlaWdodCh0cnVlKX1lbHNle2FqPTNEYWwuX2VsZW0ub3V0ZXJX aWR0aCh0cnVlKX1pZihhaj5hbyl7YW89M0Rhan19fWFsPQo9M0RudWxsO2FtPTNEbnVsbDtpZihh aCl7YWk9M0R0aGlzLl9sYWJlbC5fZWxlbS5vdXRlcldpZHRoKHRydWUpO2FuPTNEdGhpcy49Cl9s YWJlbC5fZWxlbS5vdXRlckhlaWdodCh0cnVlKX1pZih0aGlzLm5hbWU9M0Q9M0QieGF4aXMiKXth bz0zRGFvK2FuO3RoaXMuXz0KZWxlbS5jc3Moe2hlaWdodDphbysicHgiLGxlZnQ6IjBweCIsYm90 dG9tOiIwcHgifSl9ZWxzZXtpZih0aGlzLm5hbWU9M0Q9M0QiPQp4MmF4aXMiKXthbz0zRGFvK2Fu O3RoaXMuX2VsZW0uY3NzKHtoZWlnaHQ6YW8rInB4IixsZWZ0OiIwcHgiLHRvcDoiMHB4In0pfWU9 CmxzZXtpZih0aGlzLm5hbWU9M0Q9M0QieWF4aXMiKXthbz0zRGFvK2FpO3RoaXMuX2VsZW0uY3Nz KHt3aWR0aDphbysicHgiLGxlZj0KdDoiMHB4Iix0b3A6IjBweCJ9KTtpZihhaCYmdGhpcy5fbGFi ZWwuY29uc3RydWN0b3I9M0Q9M0RMLmpxcGxvdC5BeGlzTGFiZWxSPQplbmRlcmVyKXt0aGlzLl9s YWJlbC5fZWxlbS5jc3MoIndpZHRoIixhaSsicHgiKX19ZWxzZXthbz0zRGFvK2FpO3RoaXMuX2Vs ZW09Ci5jc3Moe3dpZHRoOmFvKyJweCIscmlnaHQ6IjBweCIsdG9wOiIwcHgifSk7aWYoYWgmJnRo aXMuX2xhYmVsLmNvbnN0cnVjdG9yPQo9M0Q9M0RMLmpxcGxvdC5BeGlzTGFiZWxSZW5kZXJlcil7 dGhpcy5fbGFiZWwuX2VsZW0uY3NzKCJ3aWR0aCIsYWkrInB4Iil9fX09Cn19fTtMLmpxcGxvdC5M aW5lYXJBeGlzUmVuZGVyZXIucHJvdG90eXBlLmNyZWF0ZVRpY2tzPTNEZnVuY3Rpb24oYWope3Zh ciBhVD0KPTNEdGhpcy5fdGlja3M7dmFyIGFLPTNEdGhpcy50aWNrczt2YXIgYXo9M0R0aGlzLm5h bWU7dmFyIGFCPTNEdGhpcy5fZGF0YUJvPQp1bmRzO3ZhciBhaD0zRCh0aGlzLm5hbWUuY2hhckF0 KDApPTNEPTNEPTNEIngiKT90aGlzLl9wbG90RGltZW5zaW9ucy53aWR0aDo9CnRoaXMuX3Bsb3RE aW1lbnNpb25zLmhlaWdodDt2YXIgYW47dmFyIGE2LGFJO3ZhciBhcCxhbzt2YXIgYTQsYTA7dmFy IGFIPTNEdD0KaGlzLm1pbjt2YXIgYTU9M0R0aGlzLm1heDt2YXIgYVc9M0R0aGlzLm51bWJlclRp Y2tzO3ZhciBiYT0zRHRoaXMudGlja0ludGVyPQp2YWw7dmFyIGFtPTNEMzA7dGhpcy5fc2NhbGVm YWN0PTNEKE1hdGgubWF4KGFoLGFtKzEpLWFtKS8zMDA7aWYoYUsubGVuZ3RoKXs9CmZvcihhMD0z RDA7YTA8YUsubGVuZ3RoO2EwKyspe3ZhciBhTz0zRGFLW2EwXTt2YXIgYVU9M0RuZXcgdGhpcy50 aWNrUmVuZGVyZT0Kcih0aGlzLnRpY2tPcHRpb25zKTtpZihMLmlzQXJyYXkoYU8pKXthVS52YWx1 ZT0zRGFPWzBdO2lmKHRoaXMuYnJlYWtQb2ludHMpPQp7aWYoYU9bMF09M0Q9M0R0aGlzLmJyZWFr UG9pbnRzWzBdKXthVS5sYWJlbD0zRHRoaXMuYnJlYWtUaWNrTGFiZWw7YVUuX2JyZWE9CmtUaWNr PTNEdHJ1ZTthVS5zaG93R3JpZGxpbmU9M0RmYWxzZTthVS5zaG93TWFyaz0zRGZhbHNlfWVsc2V7 aWYoYU9bMF0+dGhpcz0KLmJyZWFrUG9pbnRzWzBdJiZhT1swXTw9M0R0aGlzLmJyZWFrUG9pbnRz WzFdKXthVS5zaG93PTNEZmFsc2U7YVUuc2hvd0dyaWRsPQppbmU9M0RmYWxzZTthVS5sYWJlbD0z RGFPWzFdfWVsc2V7YVUubGFiZWw9M0RhT1sxXX19fWVsc2V7YVUubGFiZWw9M0RhT1sxXX09CmFV LnNldFRpY2soYU9bMF0sdGhpcy5uYW1lKTt0aGlzLl90aWNrcy5wdXNoKGFVKX1lbHNle2lmKEwu aXNQbGFpbk9iamVjdChhTz0KKSl7TC5leHRlbmQodHJ1ZSxhVSxhTyk7YVUuYXhpcz0zRHRoaXMu bmFtZTt0aGlzLl90aWNrcy5wdXNoKGFVKX1lbHNle2FVLnZhPQpsdWU9M0RhTztpZih0aGlzLmJy ZWFrUG9pbnRzKXtpZihhTz0zRD0zRHRoaXMuYnJlYWtQb2ludHNbMF0pe2FVLmxhYmVsPTNEdGg9 CmlzLmJyZWFrVGlja0xhYmVsO2FVLl9icmVha1RpY2s9M0R0cnVlO2FVLnNob3dHcmlkbGluZT0z RGZhbHNlO2FVLnNob3dNYXJrPQo9M0RmYWxzZX1lbHNle2lmKGFPPnRoaXMuYnJlYWtQb2ludHNb MF0mJmFPPD0zRHRoaXMuYnJlYWtQb2ludHNbMV0pe2FVLnNob3c9Cj0zRGZhbHNlO2FVLnNob3dH cmlkbGluZT0zRGZhbHNlfX19YVUuc2V0VGljayhhTyx0aGlzLm5hbWUpO3RoaXMuX3RpY2tzLnB1 cz0KaChhVSl9fX10aGlzLm51bWJlclRpY2tzPTNEYUsubGVuZ3RoO3RoaXMubWluPTNEdGhpcy5f dGlja3NbMF0udmFsdWU7dGhpcy5tPQpheD0zRHRoaXMuX3RpY2tzW3RoaXMubnVtYmVyVGlja3Mt MV0udmFsdWU7dGhpcy50aWNrSW50ZXJ2YWw9M0QodGhpcy5tYXgtdGg9CmlzLm1pbikvKHRoaXMu bnVtYmVyVGlja3MtMSl9ZWxzZXtpZihhej0zRD0zRCJ4YXhpcyJ8fGF6PTNEPTNEIngyYXhpcyIp e2FoPQo9M0R0aGlzLl9wbG90RGltZW5zaW9ucy53aWR0aH1lbHNle2FoPTNEdGhpcy5fcGxvdERp bWVuc2lvbnMuaGVpZ2h0fXZhciBheD0KPTNEdGhpcy5udW1iZXJUaWNrcztpZih0aGlzLmFsaWdu VGlja3Mpe2lmKHRoaXMubmFtZT0zRD0zRD0zRCJ4MmF4aXMiJiZhai5hPQp4ZXMueGF4aXMuc2hv dyl7YXg9M0Rhai5heGVzLnhheGlzLm51bWJlclRpY2tzfWVsc2V7aWYodGhpcy5uYW1lLmNoYXJB dCgwKT0KPTNEPTNEPTNEInkiJiZ0aGlzLm5hbWUhPTNEPTNEInlheGlzIiYmdGhpcy5uYW1lIT0z RD0zRCJ5TWlkQXhpcyImJmFqLmF4ZXMuPQp5YXhpcy5zaG93KXtheD0zRGFqLmF4ZXMueWF4aXMu bnVtYmVyVGlja3N9fX1hNj0zRCgodGhpcy5taW4hPTNEbnVsbCk/dGhpcy49Cm1pbjphQi5taW4p O2FJPTNEKCh0aGlzLm1heCE9M0RudWxsKT90aGlzLm1heDphQi5tYXgpO3ZhciBhdj0zRGFJLWE2 O3ZhciBhUz0KLGF5O3ZhciBhdDtpZih0aGlzLnRpY2tPcHRpb25zPTNEPTNEbnVsbHx8IXRoaXMu dGlja09wdGlvbnMuZm9ybWF0U3RyaW5nKXt0PQpoaXMuX292ZXJyaWRlRm9ybWF0U3RyaW5nPTNE dHJ1ZX1pZih0aGlzLm1pbj0zRD0zRG51bGx8fHRoaXMubWF4PTNEPTNEbnVsbCY9CiZ0aGlzLnRp Y2tJbnRlcnZhbD0zRD0zRG51bGwmJiF0aGlzLmF1dG9zY2FsZSl7aWYodGhpcy5mb3JjZVRpY2tB dDApe2lmKGE2Pj0KMCl7YTY9M0QwfWlmKGFJPDApe2FJPTNEMH19aWYodGhpcy5mb3JjZVRpY2tB dDEwMCl7aWYoYTY+MTAwKXthNj0zRDEwMH1pZihhPQpJPDEwMCl7YUk9M0QxMDB9fXZhciBhRT0z RGZhbHNlLGExPTNEZmFsc2U7aWYodGhpcy5taW4hPTNEbnVsbCl7YUU9M0R0cnVlfWU9CmxzZXtp Zih0aGlzLm1heCE9M0RudWxsKXthMT0zRHRydWV9fXZhciBhUD0zREwuanFwbG90LkxpbmVhclRp Y2tHZW5lcmF0b3IoYT0KNixhSSx0aGlzLl9zY2FsZWZhY3QsYXgsYUUsYTEpO3ZhciBhdz0zRCh0 aGlzLm1pbiE9M0RudWxsKT9hNjphNithdioodGhpcy5wPQphZE1pbi0xKTt2YXIgYVE9M0QodGhp cy5tYXghPTNEbnVsbCk/YUk6YUktYXYqKHRoaXMucGFkTWF4LTEpO2lmKGE2PGF3fHxhST49CmFR KXthdz0zRCh0aGlzLm1pbiE9M0RudWxsKT9hNjphNi1hdioodGhpcy5wYWRNaW4tMSk7YVE9M0Qo dGhpcy5tYXghPTNEbnVsbD0KKT9hSTphSSthdioodGhpcy5wYWRNYXgtMSk7YVA9M0RMLmpxcGxv dC5MaW5lYXJUaWNrR2VuZXJhdG9yKGF3LGFRLHRoaXMuX3NjPQphbGVmYWN0LGF4LGFFLGExKX10 aGlzLm1pbj0zRGFQWzBdO3RoaXMubWF4PTNEYVBbMV07dGhpcy5udW1iZXJUaWNrcz0zRGFQWzI9 Cl07dGhpcy5fYXV0b0Zvcm1hdFN0cmluZz0zRGFQWzNdO3RoaXMudGlja0ludGVydmFsPTNEYVBb NF19ZWxzZXtpZihhNj0zRD0zRD0KYUkpe3ZhciBhaT0zRDAuMDU7aWYoYTY+MCl7YWk9M0RNYXRo Lm1heChNYXRoLmxvZyhhNikvTWF0aC5MTjEwLDAuMDUpfWE2LT0KPTNEYWk7YUkrPTNEYWl9aWYo dGhpcy5hdXRvc2NhbGUmJnRoaXMubWluPTNEPTNEbnVsbCYmdGhpcy5tYXg9M0Q9M0RudWxsKXt2 PQphciBhayxhbCxhcjt2YXIgYUM9M0RmYWxzZTt2YXIgYU49M0RmYWxzZTt2YXIgYUE9M0R7bWlu Om51bGwsbWF4Om51bGwsYXZlcmE9CmdlOm51bGwsc3RkZGV2Om51bGx9O2Zvcih2YXIgYTA9M0Qw O2EwPHRoaXMuX3Nlcmllcy5sZW5ndGg7YTArKyl7dmFyIGFWPTNEdD0KaGlzLl9zZXJpZXNbYTBd O3ZhciBhRD0zRChhVi5maWxsQXhpcz0zRD0zRCJ4Iik/YVYuX3hheGlzLm5hbWU6YVYuX3lheGlz Lm5hPQptZTtpZih0aGlzLm5hbWU9M0Q9M0RhRCl7dmFyIGFSPTNEYVYuX3Bsb3RWYWx1ZXNbYVYu ZmlsbEF4aXNdO3ZhciBhRz0zRGFSWzA9Cl07dmFyIGEyPTNEYVJbMF07Zm9yKHZhciBhWj0zRDE7 YVo8YVIubGVuZ3RoO2FaKyspe2lmKGFSW2FaXTxhRyl7YUc9M0RhUlthWj0KXX1lbHNle2lmKGFS W2FaXT5hMil7YTI9M0RhUlthWl19fX12YXIgYXU9M0QoYTItYUcpL2EyO2lmKGFWLnJlbmRlcmVy LmNvbnN0PQpydWN0b3I9M0Q9M0RMLmpxcGxvdC5CYXJSZW5kZXJlcil7aWYoYUc+PTNEMCYmKGFW LmZpbGxUb1plcm98fGF1PjAuMSkpe2FDPQo9M0R0cnVlfWVsc2V7YUM9M0RmYWxzZTtpZihhVi5m aWxsJiZhVi5maWxsVG9aZXJvJiZhRzwwJiZhMj4wKXthTj0zRHRydWV9ZWw9CnNle2FOPTNEZmFs c2V9fX1lbHNle2lmKGFWLmZpbGwpe2lmKGFHPj0zRDAmJihhVi5maWxsVG9aZXJvfHxhdT4wLjEp KXthQz0zRD0KdHJ1ZX1lbHNle2lmKGFHPDAmJmEyPjAmJmFWLmZpbGxUb1plcm8pe2FDPTNEZmFs c2U7YU49M0R0cnVlfWVsc2V7YUM9M0RmYWxzPQplO2FOPTNEZmFsc2V9fX1lbHNle2lmKGFHPDAp e2FDPTNEZmFsc2V9fX19fWlmKGFDKXt0aGlzLm51bWJlclRpY2tzPTNEMitNYXQ9CmguY2VpbCgo YWgtKHRoaXMudGlja1NwYWNpbmctMSkpL3RoaXMudGlja1NwYWNpbmcpO3RoaXMubWluPTNEMDth SD0zRDA7YWw9Cj0zRGFJLyh0aGlzLm51bWJlclRpY2tzLTEpO2F0PTNETWF0aC5wb3coMTAsTWF0 aC5hYnMoTWF0aC5mbG9vcihNYXRoLmxvZyhhbD0KKS9NYXRoLkxOMTApKSk7aWYoYWwvYXQ9M0Q9 M0RwYXJzZUludChhbC9hdCwxMCkpe2FsKz0zRGF0fXRoaXMudGlja0ludGVydmFsPQo9M0RNYXRo LmNlaWwoYWwvYXQpKmF0O3RoaXMubWF4PTNEdGhpcy50aWNrSW50ZXJ2YWwqKHRoaXMubnVtYmVy VGlja3MtMSl9ZWw9CnNle2lmKGFOKXt0aGlzLm51bWJlclRpY2tzPTNEMitNYXRoLmNlaWwoKGFo LSh0aGlzLnRpY2tTcGFjaW5nLTEpKS90aGlzLnRpYz0Ka1NwYWNpbmcpO3ZhciBhSj0zRE1hdGgu Y2VpbChNYXRoLmFicyhhNikvYXYqKHRoaXMubnVtYmVyVGlja3MtMSkpO3ZhciBhOT0KPTNEdGhp cy5udW1iZXJUaWNrcy0xLWFKO2FsPTNETWF0aC5tYXgoTWF0aC5hYnMoYTYvYUopLE1hdGguYWJz KGFJL2E5KSk7YXQ9Cj0zRE1hdGgucG93KDEwLE1hdGguYWJzKE1hdGguZmxvb3IoTWF0aC5sb2co YWwpL01hdGguTE4xMCkpKTt0aGlzLnRpY2tJbnRlcj0KdmFsPTNETWF0aC5jZWlsKGFsL2F0KSph dDt0aGlzLm1heD0zRHRoaXMudGlja0ludGVydmFsKmE5O3RoaXMubWluPTNELXRoaXMuPQp0aWNr SW50ZXJ2YWwqYUp9ZWxzZXtpZih0aGlzLm51bWJlclRpY2tzPTNEPTNEbnVsbCl7aWYodGhpcy50 aWNrSW50ZXJ2YWwpe3Q9Cmhpcy5udW1iZXJUaWNrcz0zRDMrTWF0aC5jZWlsKGF2L3RoaXMudGlj a0ludGVydmFsKX1lbHNle3RoaXMubnVtYmVyVGlja3M9Cj0zRDIrTWF0aC5jZWlsKChhaC0odGhp cy50aWNrU3BhY2luZy0xKSkvdGhpcy50aWNrU3BhY2luZyl9fWlmKHRoaXMudGlja0ludD0KZXJ2 YWw9M0Q9M0RudWxsKXthbD0zRGF2Lyh0aGlzLm51bWJlclRpY2tzLTEpO2lmKGFsPDEpe2F0PTNE TWF0aC5wb3coMTAsTWF0PQpoLmFicyhNYXRoLmZsb29yKE1hdGgubG9nKGFsKS9NYXRoLkxOMTAp KSl9ZWxzZXthdD0zRDF9dGhpcy50aWNrSW50ZXJ2YWw9M0Q9Ck1hdGguY2VpbChhbCphdCp0aGlz LnBhZCkvYXR9ZWxzZXthdD0zRDEvdGhpcy50aWNrSW50ZXJ2YWx9YWs9M0R0aGlzLnRpY2tJbj0K dGVydmFsKih0aGlzLm51bWJlclRpY2tzLTEpO2FyPTNEKGFrLWF2KS8yO2lmKHRoaXMubWluPTNE PTNEbnVsbCl7dGhpcy5taW49Cj0zRE1hdGguZmxvb3IoYXQqKGE2LWFyKSkvYXR9aWYodGhpcy5t YXg9M0Q9M0RudWxsKXt0aGlzLm1heD0zRHRoaXMubWluK2FrfT0KfX12YXIgYUY9M0RMLmpxcGxv dC5nZXRTaWduaWZpY2FudEZpZ3VyZXModGhpcy50aWNrSW50ZXJ2YWwpO3ZhciBhTTtpZihhRi5k PQppZ2l0c0xlZnQ+PTNEYUYuc2lnbmlmaWNhbnREaWdpdHMpe2FNPTNEIiVkIn1lbHNle3ZhciBh dD0zRE1hdGgubWF4KDAsNS1hRi49CmRpZ2l0c0xlZnQpO2F0PTNETWF0aC5taW4oYXQsYUYuZGln aXRzUmlnaHQpO2FNPTNEIiUuIithdCsiZiJ9dGhpcy5fYXV0b0Zvcj0KbWF0U3RyaW5nPTNEYU19 ZWxzZXthUz0zRCh0aGlzLm1pbiE9M0RudWxsKT90aGlzLm1pbjphNi1hdioodGhpcy5wYWRNaW4t MSk7PQpheT0zRCh0aGlzLm1heCE9M0RudWxsKT90aGlzLm1heDphSSthdioodGhpcy5wYWRNYXgt MSk7YXY9M0RheS1hUztpZih0aGlzLm49CnVtYmVyVGlja3M9M0Q9M0RudWxsKXtpZih0aGlzLnRp Y2tJbnRlcnZhbCE9M0RudWxsKXt0aGlzLm51bWJlclRpY2tzPTNETWF0aD0KLmNlaWwoKGF5LWFT KS90aGlzLnRpY2tJbnRlcnZhbCkrMX1lbHNle2lmKGFoPjEwMCl7dGhpcy5udW1iZXJUaWNrcz0z RHBhcnNlPQpJbnQoMysoYWgtMTAwKS83NSwxMCl9ZWxzZXt0aGlzLm51bWJlclRpY2tzPTNEMn19 fWlmKHRoaXMudGlja0ludGVydmFsPTNEPQo9M0RudWxsKXt0aGlzLnRpY2tJbnRlcnZhbD0zRGF2 Lyh0aGlzLm51bWJlclRpY2tzLTEpfWlmKHRoaXMubWF4PTNEPTNEbnVsbCk9CntheT0zRGFTK3Ro aXMudGlja0ludGVydmFsKih0aGlzLm51bWJlclRpY2tzLTEpfWlmKHRoaXMubWluPTNEPTNEbnVs bCl7YVM9Cj0zRGF5LXRoaXMudGlja0ludGVydmFsKih0aGlzLm51bWJlclRpY2tzLTEpfXZhciBh Rj0zREwuanFwbG90LmdldFNpZ25pZmljYT0KbnRGaWd1cmVzKHRoaXMudGlja0ludGVydmFsKTt2 YXIgYU07aWYoYUYuZGlnaXRzTGVmdD49M0RhRi5zaWduaWZpY2FudERpZ2l0PQpzKXthTT0zRCIl ZCJ9ZWxzZXt2YXIgYXQ9M0RNYXRoLm1heCgwLDUtYUYuZGlnaXRzTGVmdCk7YXQ9M0RNYXRoLm1p bihhdCxhRi49CmRpZ2l0c1JpZ2h0KTthTT0zRCIlLiIrYXQrImYifXRoaXMuX2F1dG9Gb3JtYXRT dHJpbmc9M0RhTTt0aGlzLm1pbj0zRGFTO3RoaT0Kcy5tYXg9M0RheX1pZih0aGlzLnJlbmRlcmVy LmNvbnN0cnVjdG9yPTNEPTNETC5qcXBsb3QuTGluZWFyQXhpc1JlbmRlcmVyJiZ0PQpoaXMuX2F1 dG9Gb3JtYXRTdHJpbmc9M0Q9M0QiIil7YXY9M0R0aGlzLm1heC10aGlzLm1pbjt2YXIgYTc9M0Ru ZXcgdGhpcy50aWM9CmtSZW5kZXJlcih0aGlzLnRpY2tPcHRpb25zKTt2YXIgYUw9M0RhNy5mb3Jt YXRTdHJpbmd8fEwuanFwbG90LmNvbmZpZy5kZWZhdT0KbHRUaWNrRm9ybWF0U3RyaW5nO3ZhciBh TD0zRGFMLm1hdGNoKEwuanFwbG90LnNwcmludGYucmVnZXgpWzBdO3ZhciBhMz0zRDA7PQppZihh TCl7aWYoYUwuc2VhcmNoKC9bZkZlRWdHcFBdLyk+LTEpe3ZhciBhWT0zRGFMLm1hdGNoKC9cJVwu KFxkezAsfSk/W2VFZkY9CmdHcFBdLyk7aWYoYVkpe2EzPTNEcGFyc2VJbnQoYVlbMV0sMTApfWVs c2V7YTM9M0Q2fX1lbHNle2lmKGFMLnNlYXJjaCgvW2RpXT0KLyk+LTEpe2EzPTNEMH19dmFyIGFx PTNETWF0aC5wb3coMTAsLWEzKTtpZih0aGlzLnRpY2tJbnRlcnZhbDxhcSl7aWYoYVc9M0Q9Cj0z RG51bGwmJmJhPTNEPTNEbnVsbCl7dGhpcy50aWNrSW50ZXJ2YWw9M0RhcTtpZihhNT0zRD0zRG51 bGwmJmFIPTNEPTNEbnVsbD0KKXt0aGlzLm1pbj0zRE1hdGguZmxvb3IodGhpcy5fZGF0YUJvdW5k cy5taW4vYXEpKmFxO2lmKHRoaXMubWluPTNEPTNEdGhpcy5fPQpkYXRhQm91bmRzLm1pbil7dGhp cy5taW49M0R0aGlzLl9kYXRhQm91bmRzLm1pbi10aGlzLnRpY2tJbnRlcnZhbH10aGlzLm1heD0K PTNETWF0aC5jZWlsKHRoaXMuX2RhdGFCb3VuZHMubWF4L2FxKSphcTtpZih0aGlzLm1heD0zRD0z RHRoaXMuX2RhdGFCb3VuZHMuPQptYXgpe3RoaXMubWF4PTNEdGhpcy5fZGF0YUJvdW5kcy5tYXgr dGhpcy50aWNrSW50ZXJ2YWx9dmFyIGFYPTNEKHRoaXMubWF4LXQ9Cmhpcy5taW4pL3RoaXMudGlj a0ludGVydmFsO2FYPTNEYVgudG9GaXhlZCgxMSk7YVg9M0RNYXRoLmNlaWwoYVgpO3RoaXMubnVt Yj0KZXJUaWNrcz0zRGFYKzF9ZWxzZXtpZihhNT0zRD0zRG51bGwpe3ZhciBhWD0zRCh0aGlzLl9k YXRhQm91bmRzLm1heC10aGlzLm1pPQpuKS90aGlzLnRpY2tJbnRlcnZhbDthWD0zRGFYLnRvRml4 ZWQoMTEpO3RoaXMubnVtYmVyVGlja3M9M0RNYXRoLmNlaWwoYVgpKzI9Cjt0aGlzLm1heD0zRHRo aXMubWluK3RoaXMudGlja0ludGVydmFsKih0aGlzLm51bWJlclRpY2tzLTEpfWVsc2V7aWYoYUg9 M0Q9Cj0zRG51bGwpe3ZhciBhWD0zRCh0aGlzLm1heC10aGlzLl9kYXRhQm91bmRzLm1pbikvdGhp cy50aWNrSW50ZXJ2YWw7YVg9M0RhWD0KLnRvRml4ZWQoMTEpO3RoaXMubnVtYmVyVGlja3M9M0RN YXRoLmNlaWwoYVgpKzI7dGhpcy5taW49M0R0aGlzLm1heC10aGlzLnRpPQpja0ludGVydmFsKih0 aGlzLm51bWJlclRpY2tzLTEpfWVsc2V7dGhpcy5udW1iZXJUaWNrcz0zRE1hdGguY2VpbCgoYTUt YUgpL3Q9Cmhpcy50aWNrSW50ZXJ2YWwpKzE7dGhpcy5taW49M0RNYXRoLmZsb29yKGFIKk1hdGgu cG93KDEwLGEzKSkvTWF0aC5wb3coMTAsYT0KMyk7dGhpcy5tYXg9M0RNYXRoLmNlaWwoYTUqTWF0 aC5wb3coMTAsYTMpKS9NYXRoLnBvdygxMCxhMyk7dGhpcy5udW1iZXJUaWNrPQpzPTNETWF0aC5j ZWlsKCh0aGlzLm1heC10aGlzLm1pbikvdGhpcy50aWNrSW50ZXJ2YWwpKzF9fX19fX19fWlmKHRo aXMuX292ZXI9CnJpZGVGb3JtYXRTdHJpbmcmJnRoaXMuX2F1dG9Gb3JtYXRTdHJpbmchPTNEIiIp e3RoaXMudGlja09wdGlvbnM9M0R0aGlzLnRpYz0Ka09wdGlvbnN8fHt9O3RoaXMudGlja09wdGlv bnMuZm9ybWF0U3RyaW5nPTNEdGhpcy5fYXV0b0Zvcm1hdFN0cmluZ312YXIgYVUsPQphODtmb3Io dmFyIGEwPTNEMDthMDx0aGlzLm51bWJlclRpY2tzO2EwKyspe2E0PTNEdGhpcy5taW4rYTAqdGhp cy50aWNrSW50ZXI9CnZhbDthVT0zRG5ldyB0aGlzLnRpY2tSZW5kZXJlcih0aGlzLnRpY2tPcHRp b25zKTthVS5zZXRUaWNrKGE0LHRoaXMubmFtZSk7dD0KaGlzLl90aWNrcy5wdXNoKGFVKTtpZihh MDx0aGlzLm51bWJlclRpY2tzLTEpe2Zvcih2YXIgYVo9M0QwO2FaPHRoaXMubWlub3JUPQppY2tz O2FaKyspe2E0Kz0zRHRoaXMudGlja0ludGVydmFsLyh0aGlzLm1pbm9yVGlja3MrMSk7YTg9M0RM LmV4dGVuZCh0cnVlLHs9Cn0sdGhpcy50aWNrT3B0aW9ucyx7bmFtZTp0aGlzLm5hbWUsdmFsdWU6 YTQsbGFiZWw6IiIsaXNNaW5vclRpY2s6dHJ1ZX0pO2FVPQo9M0RuZXcgdGhpcy50aWNrUmVuZGVy ZXIoYTgpO3RoaXMuX3RpY2tzLnB1c2goYVUpfX1hVT0zRG51bGx9fWlmKHRoaXMudGlja0k9Cm5z ZXQpe3RoaXMubWluPTNEdGhpcy5taW4tdGhpcy50aWNrSW5zZXQqdGhpcy50aWNrSW50ZXJ2YWw7 dGhpcy5tYXg9M0R0aGlzLj0KbWF4K3RoaXMudGlja0luc2V0KnRoaXMudGlja0ludGVydmFsfWFU PTNEbnVsbH07TC5qcXBsb3QuTGluZWFyQXhpc1JlbmRlcmVyPQoucHJvdG90eXBlLnJlc2V0VGlj a1ZhbHVlcz0zRGZ1bmN0aW9uKGFqKXtpZihMLmlzQXJyYXkoYWopJiZhai5sZW5ndGg9M0Q9M0Q9 CnRoaXMuX3RpY2tzLmxlbmd0aCl7dmFyIGFpO2Zvcih2YXIgYWg9M0QwO2FoPGFqLmxlbmd0aDth aCsrKXthaT0zRHRoaXMuX3RpYz0Ka3NbYWhdO2FpLnZhbHVlPTNEYWpbYWhdO2FpLmxhYmVsPTNE YWkuZm9ybWF0dGVyKGFpLmZvcm1hdFN0cmluZyxhalthaF0pO2FpPQoubGFiZWw9M0RhaS5wcmVm aXgrYWkubGFiZWw7YWkuX2VsZW0uaHRtbChhaS5sYWJlbCl9YWk9M0RudWxsO3RoaXMubWluPTNE TC49CmpxcGxvdC5hcnJheU1pbihhaik7dGhpcy5tYXg9M0RMLmpxcGxvdC5hcnJheU1heChhaik7 dGhpcy5wYWNrKCl9fTtMLmpxcGxvdD0KLkxpbmVhckF4aXNSZW5kZXJlci5wcm90b3R5cGUucGFj az0zRGZ1bmN0aW9uKGFqLGFpKXthaj0zRGFqfHx7fTthaT0zRGFpfHx0PQpoaXMuX29mZnNldHM7 dmFyIGF5PTNEdGhpcy5fdGlja3M7dmFyIGF1PTNEdGhpcy5tYXg7dmFyIGF0PTNEdGhpcy5taW47 dmFyIGE9Cm89M0RhaS5tYXg7dmFyIGFtPTNEYWkubWluO3ZhciBhcT0zRCh0aGlzLl9sYWJlbD0z RD0zRG51bGwpP2ZhbHNlOnRoaXMuX2xhYj0KZWwuc2hvdztmb3IodmFyIGFyIGluIGFqKXt0aGlz Ll9lbGVtLmNzcyhhcixhalthcl0pfXRoaXMuX29mZnNldHM9M0RhaTt2YXIgPQphaz0zRGFvLWFt O3ZhciBhbD0zRGF1LWF0O2lmKHRoaXMuYnJlYWtQb2ludHMpe2FsPTNEYWwtdGhpcy5icmVha1Bv aW50c1sxXSs9CnRoaXMuYnJlYWtQb2ludHNbMF07dGhpcy5wMnU9M0RmdW5jdGlvbihhQSl7cmV0 dXJuKGFBLWFtKSphbC9haythdH07dGhpcy51Mj0KcD0zRGZ1bmN0aW9uKGFBKXtpZihhQT50aGlz LmJyZWFrUG9pbnRzWzBdJiZhQTx0aGlzLmJyZWFrUG9pbnRzWzFdKXthQT0zRHRoPQppcy5icmVh a1BvaW50c1swXX1pZihhQTw9M0R0aGlzLmJyZWFrUG9pbnRzWzBdKXtyZXR1cm4oYUEtYXQpKmFr L2FsK2FtfWVsc2U9CntyZXR1cm4oYUEtdGhpcy5icmVha1BvaW50c1sxXSt0aGlzLmJyZWFrUG9p bnRzWzBdLWF0KSphay9hbCthbX19O2lmKHRoaXMubj0KYW1lLmNoYXJBdCgwKT0zRD0zRCJ4Iil7 dGhpcy5zZXJpZXNfdTJwPTNEZnVuY3Rpb24oYUEpe2lmKGFBPnRoaXMuYnJlYWtQb2luPQp0c1sw XSYmYUE8dGhpcy5icmVha1BvaW50c1sxXSl7YUE9M0R0aGlzLmJyZWFrUG9pbnRzWzBdfWlmKGFB PD0zRHRoaXMuYnJlYWs9ClBvaW50c1swXSl7cmV0dXJuKGFBLWF0KSphay9hbH1lbHNle3JldHVy bihhQS10aGlzLmJyZWFrUG9pbnRzWzFdK3RoaXMuYnJlYT0Ka1BvaW50c1swXS1hdCkqYWsvYWx9 fTt0aGlzLnNlcmllc19wMnU9M0RmdW5jdGlvbihhQSl7cmV0dXJuIGFBKmFsL2FrK2F0fX1lPQps c2V7dGhpcy5zZXJpZXNfdTJwPTNEZnVuY3Rpb24oYUEpe2lmKGFBPnRoaXMuYnJlYWtQb2ludHNb MF0mJmFBPHRoaXMuYnJlYWs9ClBvaW50c1sxXSl7YUE9M0R0aGlzLmJyZWFrUG9pbnRzWzBdfWlm KGFBPj0zRHRoaXMuYnJlYWtQb2ludHNbMV0pe3JldHVybihhQT0KLWF1KSphay9hbH1lbHNle3Jl dHVybihhQSt0aGlzLmJyZWFrUG9pbnRzWzFdLXRoaXMuYnJlYWtQb2ludHNbMF0tYXUpKmFrL2Fs PQp9fTt0aGlzLnNlcmllc19wMnU9M0RmdW5jdGlvbihhQSl7cmV0dXJuIGFBKmFsL2FrK2F1fX19 ZWxzZXt0aGlzLnAydT0zRGZ1bmM9CnRpb24oYUEpe3JldHVybihhQS1hbSkqYWwvYWsrYXR9O3Ro aXMudTJwPTNEZnVuY3Rpb24oYUEpe3JldHVybihhQS1hdCkqYWsvYT0KbCthbX07aWYodGhpcy5u YW1lPTNEPTNEInhheGlzInx8dGhpcy5uYW1lPTNEPTNEIngyYXhpcyIpe3RoaXMuc2VyaWVzX3Uy cD0KPTNEZnVuY3Rpb24oYUEpe3JldHVybihhQS1hdCkqYWsvYWx9O3RoaXMuc2VyaWVzX3AydT0z RGZ1bmN0aW9uKGFBKXtyZXR1cm4gPQphQSphbC9haythdH19ZWxzZXt0aGlzLnNlcmllc191MnA9 M0RmdW5jdGlvbihhQSl7cmV0dXJuKGFBLWF1KSphay9hbH07dGhpcy49CnNlcmllc19wMnU9M0Rm dW5jdGlvbihhQSl7cmV0dXJuIGFBKmFsL2FrK2F1fX19aWYodGhpcy5zaG93KXtpZih0aGlzLm5h bWU9Cj0zRD0zRCJ4YXhpcyJ8fHRoaXMubmFtZT0zRD0zRCJ4MmF4aXMiKXtmb3IodmFyIGF2PTNE MDthdjxheS5sZW5ndGg7YXYrKyl7dj0KYXIgYXA9M0RheVthdl07aWYoYXAuc2hvdyYmYXAuc2hv d0xhYmVsKXt2YXIgYWg7aWYoYXAuY29uc3RydWN0b3I9M0Q9M0RMLmpxPQpwbG90LkNhbnZhc0F4 aXNUaWNrUmVuZGVyZXImJmFwLmFuZ2xlKXt2YXIgYXg9M0QodGhpcy5uYW1lPTNEPTNEInhheGlz Iik/MTo9Ci0xO3N3aXRjaChhcC5sYWJlbFBvc2l0aW9uKXtjYXNlImF1dG8iOmlmKGF4KmFwLmFu Z2xlPDApe2FoPTNELWFwLmdldFdpZHRoKD0KKSthcC5fdGV4dFJlbmRlcmVyLmhlaWdodCpNYXRo LnNpbigtYXAuX3RleHRSZW5kZXJlci5hbmdsZSkvMn1lbHNle2FoPTNELWFwPQouX3RleHRSZW5k ZXJlci5oZWlnaHQqTWF0aC5zaW4oYXAuX3RleHRSZW5kZXJlci5hbmdsZSkvMn1icmVhaztjYXNl ImVuZCI6YWg9Cj0zRC1hcC5nZXRXaWR0aCgpK2FwLl90ZXh0UmVuZGVyZXIuaGVpZ2h0Kk1hdGgu c2luKC1hcC5fdGV4dFJlbmRlcmVyLmFuZ2xlKT0KLzI7YnJlYWs7Y2FzZSJzdGFydCI6YWg9M0Qt YXAuX3RleHRSZW5kZXJlci5oZWlnaHQqTWF0aC5zaW4oYXAuX3RleHRSZW5kZXJlPQpyLmFuZ2xl KS8yO2JyZWFrO2Nhc2UibWlkZGxlIjphaD0zRC1hcC5nZXRXaWR0aCgpLzIrYXAuX3RleHRSZW5k ZXJlci5oZWlnaHQ9CipNYXRoLnNpbigtYXAuX3RleHRSZW5kZXJlci5hbmdsZSkvMjticmVhaztk ZWZhdWx0OmFoPTNELWFwLmdldFdpZHRoKCkvMithcD0KLl90ZXh0UmVuZGVyZXIuaGVpZ2h0Kk1h dGguc2luKC1hcC5fdGV4dFJlbmRlcmVyLmFuZ2xlKS8yO2JyZWFrfX1lbHNle2FoPTNEPQotYXAu Z2V0V2lkdGgoKS8yfXZhciBhej0zRHRoaXMudTJwKGFwLnZhbHVlKSthaCsicHgiO2FwLl9lbGVt LmNzcygibGVmdCIsYXo9Cik7YXAucGFjaygpfX1pZihhcSl7dmFyIGFuPTNEdGhpcy5fbGFiZWwu X2VsZW0ub3V0ZXJXaWR0aCh0cnVlKTt0aGlzLl9sYWJlbD0KLl9lbGVtLmNzcygibGVmdCIsYW0r YWsvMi1hbi8yKyJweCIpO2lmKHRoaXMubmFtZT0zRD0zRCJ4YXhpcyIpe3RoaXMuX2xhYmVsPQou X2VsZW0uY3NzKCJib3R0b20iLCIwcHgiKX1lbHNle3RoaXMuX2xhYmVsLl9lbGVtLmNzcygidG9w IiwiMHB4Iil9dGhpcy5fbGE9CmJlbC5wYWNrKCl9fWVsc2V7Zm9yKHZhciBhdj0zRDA7YXY8YXku bGVuZ3RoO2F2Kyspe3ZhciBhcD0zRGF5W2F2XTtpZihhcC5zaD0Kb3cmJmFwLnNob3dMYWJlbCl7 dmFyIGFoO2lmKGFwLmNvbnN0cnVjdG9yPTNEPTNETC5qcXBsb3QuQ2FudmFzQXhpc1RpY2tSZW5k PQplcmVyJiZhcC5hbmdsZSl7dmFyIGF4PTNEKHRoaXMubmFtZT0zRD0zRCJ5YXhpcyIpPzE6LTE7 c3dpdGNoKGFwLmxhYmVsUG9zaXQ9Cmlvbil7Y2FzZSJhdXRvIjpjYXNlImVuZCI6aWYoYXgqYXAu YW5nbGU8MCl7YWg9M0QtYXAuX3RleHRSZW5kZXJlci5oZWlnaHQqTT0KYXRoLmNvcygtYXAuX3Rl eHRSZW5kZXJlci5hbmdsZSkvMn1lbHNle2FoPTNELWFwLmdldEhlaWdodCgpK2FwLl90ZXh0UmVu ZGVyPQplci5oZWlnaHQqTWF0aC5jb3MoYXAuX3RleHRSZW5kZXJlci5hbmdsZSkvMn1icmVhaztj YXNlInN0YXJ0IjppZihhcC5hbmdsZT49CjApe2FoPTNELWFwLl90ZXh0UmVuZGVyZXIuaGVpZ2h0 Kk1hdGguY29zKC1hcC5fdGV4dFJlbmRlcmVyLmFuZ2xlKS8yfWVsc2V7YT0KaD0zRC1hcC5nZXRI ZWlnaHQoKSthcC5fdGV4dFJlbmRlcmVyLmhlaWdodCpNYXRoLmNvcyhhcC5fdGV4dFJlbmRlcmVy LmFuZ2xlPQopLzJ9YnJlYWs7Y2FzZSJtaWRkbGUiOmFoPTNELWFwLmdldEhlaWdodCgpLzI7YnJl YWs7ZGVmYXVsdDphaD0zRC1hcC5nZXRIZWk9CmdodCgpLzI7YnJlYWt9fWVsc2V7YWg9M0QtYXAu Z2V0SGVpZ2h0KCkvMn12YXIgYXo9M0R0aGlzLnUycChhcC52YWx1ZSkrYWgrIj0KcHgiO2FwLl9l bGVtLmNzcygidG9wIixheik7YXAucGFjaygpfX1pZihhcSl7dmFyIGF3PTNEdGhpcy5fbGFiZWwu X2VsZW0ub3V0PQplckhlaWdodCh0cnVlKTt0aGlzLl9sYWJlbC5fZWxlbS5jc3MoInRvcCIsYW8t YWsvMi1hdy8yKyJweCIpO2lmKHRoaXMubmFtZT0KPTNEPTNEInlheGlzIil7dGhpcy5fbGFiZWwu X2VsZW0uY3NzKCJsZWZ0IiwiMHB4Iil9ZWxzZXt0aGlzLl9sYWJlbC5fZWxlbS5jPQpzcygicmln aHQiLCIwcHgiKX10aGlzLl9sYWJlbC5wYWNrKCl9fX1heT0zRG51bGx9O2Z1bmN0aW9uIGkoYWkp e3ZhciBhaDthaT0KPTNETWF0aC5hYnMoYWkpO2lmKGFpPj0zRDEwKXthaD0zRCIlZCJ9ZWxzZXtp ZihhaT4xKXtpZihhaT0zRD0zRD0zRHBhcnNlSW50PQooYWksMTApKXthaD0zRCIlZCJ9ZWxzZXth aD0zRCIlLjFmIn19ZWxzZXt2YXIgYWo9M0QtTWF0aC5mbG9vcihNYXRoLmxvZyhhaSk9Ci9NYXRo LkxOMTApO2FoPTNEIiUuIithaisiZiJ9fXJldHVybiBhaH12YXIgYj0zRFswLjEsMC4yLDAuMyww LjQsMC41LDAuOCwxLD0KMiwzLDQsNV07dmFyIGM9M0RmdW5jdGlvbihhaSl7dmFyIGFoPTNEYi5p bmRleE9mKGFpKTtpZihhaD4wKXtyZXR1cm4gYlthaC0xPQpdfWVsc2V7cmV0dXJuIGJbYi5sZW5n dGgtMV0vMTAwfX07dmFyIGs9M0RmdW5jdGlvbihhaSl7dmFyIGFoPTNEYi5pbmRleE9mKGE9Cmkp O2lmKGFoPGIubGVuZ3RoLTEpe3JldHVybiBiW2FoKzFdfWVsc2V7cmV0dXJuIGJbMF0qMTAwfX07 ZnVuY3Rpb24gZChhbCxhdT0KLGF0KXt2YXIgYXE9M0RNYXRoLmZsb29yKGF0LzIpO3ZhciBhaT0z RE1hdGguY2VpbChhdCoxLjUpO3ZhciBhaz0zRE51bWJlci5NPQpBWF9WQUxVRTt2YXIgYWg9M0Qo YXUtYWwpO3ZhciBheDt2YXIgYXA7dmFyIGFyO3ZhciBheT0zREwuanFwbG90LmdldFNpZ25pZmk9 CmNhbnRGaWd1cmVzO3ZhciBhdzt2YXIgYW47dmFyIGFvO3ZhciBhdjtmb3IodmFyIGFtPTNEMCxh aj0zRGFpLWFxKzE7YW08YWo7YT0KbSsrKXthbz0zRGFxK2FtO2F4PTNEYWgvKGFvLTEpO2FwPTNE YXkoYXgpO2F4PTNETWF0aC5hYnMoYXQtYW8pK2FwLmRpZ2l0c1JpPQpnaHQ7aWYoYXg8YWspe2Fr PTNEYXg7YXI9M0Rhbzthdj0zRGFwLmRpZ2l0c1JpZ2h0fWVsc2V7aWYoYXg9M0Q9M0Q9M0Rhayl7 aWY9CihhcC5kaWdpdHNSaWdodDxhdil7YXI9M0Rhbzthdj0zRGFwLmRpZ2l0c1JpZ2h0fX19fWF3 PTNETWF0aC5tYXgoYXYsTWF0aC5tYT0KeChheShhbCkuZGlnaXRzUmlnaHQsYXkoYXUpLmRpZ2l0 c1JpZ2h0KSk7aWYoYXc9M0Q9M0Q9M0QwKXthbj0zRCIlZCJ9ZWxzZXthPQpuPTNEIiUuIithdysi ZiJ9YXg9M0RhaC8oYXItMSk7cmV0dXJuW2FsLGF1LGFyLGFuLGF4XX1mdW5jdGlvbiBXKGFpLGFs KXthbD0KPTNEYWx8fDc7dmFyIGFrPTNEYWkvKGFsLTEpO3ZhciBhaj0zRE1hdGgucG93KDEwLE1h dGguZmxvb3IoTWF0aC5sb2coYWspL01hPQp0aC5MTjEwKSk7dmFyIGFtPTNEYWsvYWo7dmFyIGFo O2lmKGFqPDEpe2lmKGFtPjUpe2FoPTNEMTAqYWp9ZWxzZXtpZihhbT4yKXs9CmFoPTNENSphan1l bHNle2lmKGFtPjEpe2FoPTNEMiphan1lbHNle2FoPTNEYWp9fX19ZWxzZXtpZihhbT41KXthaD0z RDEwKmFqfT0KZWxzZXtpZihhbT40KXthaD0zRDUqYWp9ZWxzZXtpZihhbT4zKXthaD0zRDQqYWp9 ZWxzZXtpZihhbT4yKXthaD0zRDMqYWp9ZWxzPQple2lmKGFtPjEpe2FoPTNEMiphan1lbHNle2Fo PTNEYWp9fX19fX1yZXR1cm4gYWh9ZnVuY3Rpb24gUShhaSxhaCl7YWg9M0RhaHw9CnwxO3ZhciBh az0zRE1hdGguZmxvb3IoTWF0aC5sb2coYWkpL01hdGguTE4xMCk7dmFyIGFtPTNETWF0aC5wb3co MTAsYWspO3Zhcj0KIGFsPTNEYWkvYW07dmFyIGFqO2FsPTNEYWwvYWg7aWYoYWw8PTNEMC4zOCl7 YWo9M0QwLjF9ZWxzZXtpZihhbDw9M0QxLjYpe2FqPQo9M0QwLjJ9ZWxzZXtpZihhbDw9M0Q0KXth aj0zRDAuNX1lbHNle2lmKGFsPD0zRDgpe2FqPTNEMX1lbHNle2lmKGFsPD0zRDE2KXs9CmFqPTNE Mn1lbHNle2FqPTNENX19fX19cmV0dXJuIGFqKmFtfWZ1bmN0aW9uIHgoYWosYWkpe3ZhciBhbD0z RE1hdGguZmxvb3IoTT0KYXRoLmxvZyhhaikvTWF0aC5MTjEwKTt2YXIgYW49M0RNYXRoLnBvdygx MCxhbCk7dmFyIGFtPTNEYWovYW47dmFyIGFoO3ZhciBhPQprO2FtPTNEYW0vYWk7aWYoYW08PTNE MC4zOCl7YWs9M0QwLjF9ZWxzZXtpZihhbTw9M0QxLjYpe2FrPTNEMC4yfWVsc2V7aWYoYW09Cjw9 M0Q0KXthaz0zRDAuNX1lbHNle2lmKGFtPD0zRDgpe2FrPTNEMX1lbHNle2lmKGFtPD0zRDE2KXth az0zRDJ9ZWxzZXthaz0zRD0KNX19fX19YWg9M0RhayphbjtyZXR1cm5bYWgsYWssYW5dfUwuanFw bG90LkxpbmVhclRpY2tHZW5lcmF0b3I9M0RmdW5jdGlvbihhPQpuLGFxLGFqLGFrLGFvLGFyKXth bz0zRChhbz0zRD0zRD0zRG51bGwpP2ZhbHNlOmFvO2FyPTNEKGFyPTNEPTNEPTNEbnVsbHx8YW89 Cik/ZmFsc2U6YXI7aWYoYW49M0Q9M0Q9M0RhcSl7YXE9M0QoYXEpPzA6MX1haj0zRGFqfHwxO2lm KGFxPGFuKXt2YXIgYXQ9M0RhcT0KO2FxPTNEYW47YW49M0RhdH12YXIgYWk9M0RbXTt2YXIgYXc9 M0RRKGFxLWFuLGFqKTt2YXIgYXY9M0RMLmpxcGxvdC5nZXRTaWduPQppZmljYW50RmlndXJlcztp Zihhaz0zRD0zRG51bGwpe2lmKCFhbyYmIWFyKXthaVswXT0zRE1hdGguZmxvb3IoYW4vYXcpKmF3 O2E9CmlbMV09M0RNYXRoLmNlaWwoYXEvYXcpKmF3O2FpWzJdPTNETWF0aC5yb3VuZCgoYWlbMV0t YWlbMF0pL2F3KzEpO2FpWzNdPTNEaT0KKGF3KTthaVs0XT0zRGF3fWVsc2V7aWYoYW8pe2FpWzBd PTNEYW47YWlbMl09M0RNYXRoLmNlaWwoKGFxLWFuKS9hdysxKTthaVsxPQpdPTNEYW4rKGFpWzJd LTEpKmF3O3ZhciBhdT0zRGF2KGFuKS5kaWdpdHNSaWdodDt2YXIgYXA9M0RhdihhdykuZGlnaXRz UmlnaHQ9CjtpZihhdTxhcCl7YWlbM109M0RpKGF3KX1lbHNle2FpWzNdPTNEIiUuIithdSsiZiJ9 YWlbNF09M0Rhd31lbHNle2lmKGFyKXthaT0KWzFdPTNEYXE7YWlbMl09M0RNYXRoLmNlaWwoKGFx LWFuKS9hdysxKTthaVswXT0zRGFxLShhaVsyXS0xKSphdzt2YXIgYWw9M0RhPQp2KGFxKS5kaWdp dHNSaWdodDt2YXIgYXA9M0RhdihhdykuZGlnaXRzUmlnaHQ7aWYoYWw8YXApe2FpWzNdPTNEaShh dyl9ZWxzZXs9CmFpWzNdPTNEIiUuIithbCsiZiJ9YWlbNF09M0Rhd319fX1lbHNle3ZhciBhbT0z RFtdO2FtWzBdPTNETWF0aC5mbG9vcihhbi9hdz0KKSphdzthbVsxXT0zRE1hdGguY2VpbChhcS9h dykqYXc7YW1bMl09M0RNYXRoLnJvdW5kKChhbVsxXS1hbVswXSkvYXcrMSk7YW1bPQozXT0zRGko YXcpO2FtWzRdPTNEYXc7aWYoYW1bMl09M0Q9M0Q9M0Rhayl7YWk9M0RhbX1lbHNle3ZhciBhaD0z RFcoYW1bMV0tYW09ClswXSxhayk7YWlbMF09M0RhbVswXTthaVsyXT0zRGFrO2FpWzRdPTNEYWg7 YWlbM109M0RpKGFoKTthaVsxXT0zRGFpWzBdKyhhaT0KWzJdLTEpKmFpWzRdfX1yZXR1cm4gYWl9 O0wuanFwbG90LkxpbmVhclRpY2tHZW5lcmF0b3IuYmVzdExpbmVhckludGVydmFsPTNEPQpRO0wu anFwbG90LkxpbmVhclRpY2tHZW5lcmF0b3IuYmVzdEludGVydmFsPTNEVztMLmpxcGxvdC5MaW5l YXJUaWNrR2VuZXJhdG89CnIuYmVzdExpbmVhckNvbXBvbmVudHM9M0R4O0wuanFwbG90LkxpbmVh clRpY2tHZW5lcmF0b3IuYmVzdENvbnN0cmFpbmVkSW50ZT0KcnZhbD0zRGQ7TC5qcXBsb3QuTWFy a2VyUmVuZGVyZXI9M0RmdW5jdGlvbihhaCl7dGhpcy5zaG93PTNEdHJ1ZTt0aGlzLnN0eWxlPQo9 M0QiZmlsbGVkQ2lyY2xlIjt0aGlzLmxpbmVXaWR0aD0zRDI7dGhpcy5zaXplPTNEOTt0aGlzLmNv bG9yPTNEIiM2NjY2NjYiO3Q9Cmhpcy5zaGFkb3c9M0R0cnVlO3RoaXMuc2hhZG93QW5nbGU9M0Q0 NTt0aGlzLnNoYWRvd09mZnNldD0zRDE7dGhpcy5zaGFkb3dEZT0KcHRoPTNEMzt0aGlzLnNoYWRv d0FscGhhPTNEIjAuMDciO3RoaXMuc2hhZG93UmVuZGVyZXI9M0RuZXcgTC5qcXBsb3QuU2hhZG93 PQpSZW5kZXJlcigpO3RoaXMuc2hhcGVSZW5kZXJlcj0zRG5ldyBMLmpxcGxvdC5TaGFwZVJlbmRl cmVyKCk7TC5leHRlbmQodHJ1ZSw9CnRoaXMsYWgpfTtMLmpxcGxvdC5NYXJrZXJSZW5kZXJlci5w cm90b3R5cGUuaW5pdD0zRGZ1bmN0aW9uKGFoKXtMLmV4dGVuZCh0cj0KdWUsdGhpcyxhaCk7dmFy IGFqPTNEe2FuZ2xlOnRoaXMuc2hhZG93QW5nbGUsb2Zmc2V0OnRoaXMuc2hhZG93T2Zmc2V0LGFs cGhhPQo6dGhpcy5zaGFkb3dBbHBoYSxsaW5lV2lkdGg6dGhpcy5saW5lV2lkdGgsZGVwdGg6dGhp cy5zaGFkb3dEZXB0aCxjbG9zZVBhdGg9Cjp0cnVlfTtpZih0aGlzLnN0eWxlLmluZGV4T2YoImZp bGxlZCIpIT0zRC0xKXthai5maWxsPTNEdHJ1ZX1pZih0aGlzLnN0eWxlLj0KaW5kZXhPZigiaXJj bGUiKSE9M0QtMSl7YWouaXNhcmM9M0R0cnVlO2FqLmNsb3NlUGF0aD0zRGZhbHNlfXRoaXMuc2hh ZG93UmVuPQpkZXJlci5pbml0KGFqKTt2YXIgYWk9M0R7ZmlsbDpmYWxzZSxpc2FyYzpmYWxzZSxz dHJva2VTdHlsZTp0aGlzLmNvbG9yLGZpbGw9ClN0eWxlOnRoaXMuY29sb3IsbGluZVdpZHRoOnRo aXMubGluZVdpZHRoLGNsb3NlUGF0aDp0cnVlfTtpZih0aGlzLnN0eWxlLmluZD0KZXhPZigiZmls bGVkIikhPTNELTEpe2FpLmZpbGw9M0R0cnVlfWlmKHRoaXMuc3R5bGUuaW5kZXhPZigiaXJjbGUi KSE9M0QtMSl7PQphaS5pc2FyYz0zRHRydWU7YWkuY2xvc2VQYXRoPTNEZmFsc2V9dGhpcy5zaGFw ZVJlbmRlcmVyLmluaXQoYWkpfTtMLmpxcGxvdC49Ck1hcmtlclJlbmRlcmVyLnByb3RvdHlwZS5k cmF3RGlhbW9uZD0zRGZ1bmN0aW9uKGFqLGFpLGFtLGFsLGFvKXt2YXIgYWg9M0QxLj0KMjt2YXIg YXA9M0R0aGlzLnNpemUvMi9haDt2YXIgYW49M0R0aGlzLnNpemUvMiphaDt2YXIgYWs9M0RbW2Fq LWFwLGFpXSxbYWosPQphaSthbl0sW2FqK2FwLGFpXSxbYWosYWktYW5dXTtpZih0aGlzLnNoYWRv dyl7dGhpcy5zaGFkb3dSZW5kZXJlci5kcmF3KGFtLGE9CmspfXRoaXMuc2hhcGVSZW5kZXJlci5k cmF3KGFtLGFrLGFvKX07TC5qcXBsb3QuTWFya2VyUmVuZGVyZXIucHJvdG90eXBlLmRyYT0Kd1Bs dXM9M0RmdW5jdGlvbihhayxhaixhbixhbSxhcSl7dmFyIGFpPTNEMTt2YXIgYXI9M0R0aGlzLnNp emUvMiphaTt2YXIgYW89Cj0zRHRoaXMuc2l6ZS8yKmFpO3ZhciBhcD0zRFtbYWssYWotYW9dLFth ayxhaithb11dO3ZhciBhbD0zRFtbYWsrYXIsYWpdLFthaz0KLWFyLGFqXV07dmFyIGFoPTNETC5l eHRlbmQodHJ1ZSx7fSx0aGlzLm9wdGlvbnMse2Nsb3NlUGF0aDpmYWxzZX0pO2lmKHRoaXMuPQpz aGFkb3cpe3RoaXMuc2hhZG93UmVuZGVyZXIuZHJhdyhhbixhcCx7Y2xvc2VQYXRoOmZhbHNlfSk7 dGhpcy5zaGFkb3dSZW5kZXI9CmVyLmRyYXcoYW4sYWwse2Nsb3NlUGF0aDpmYWxzZX0pfXRoaXMu c2hhcGVSZW5kZXJlci5kcmF3KGFuLGFwLGFoKTt0aGlzLnNoYT0KcGVSZW5kZXJlci5kcmF3KGFu LGFsLGFoKX07TC5qcXBsb3QuTWFya2VyUmVuZGVyZXIucHJvdG90eXBlLmRyYXdYPTNEZnVuY3Rp PQpvbihhayxhaixhbixhbSxhcSl7dmFyIGFpPTNEMTt2YXIgYXI9M0R0aGlzLnNpemUvMiphaTt2 YXIgYW89M0R0aGlzLnNpemUvMio9CmFpO3ZhciBhaD0zREwuZXh0ZW5kKHRydWUse30sdGhpcy5v cHRpb25zLHtjbG9zZVBhdGg6ZmFsc2V9KTt2YXIgYXA9M0RbW2FrLT0KYXIsYWotYW9dLFthayth cixhaithb11dO3ZhciBhbD0zRFtbYWstYXIsYWorYW9dLFthaythcixhai1hb11dO2lmKHRoaXMu c2hhPQpkb3cpe3RoaXMuc2hhZG93UmVuZGVyZXIuZHJhdyhhbixhcCx7Y2xvc2VQYXRoOmZhbHNl fSk7dGhpcy5zaGFkb3dSZW5kZXJlci49CmRyYXcoYW4sYWwse2Nsb3NlUGF0aDpmYWxzZX0pfXRo aXMuc2hhcGVSZW5kZXJlci5kcmF3KGFuLGFwLGFoKTt0aGlzLnNoYXBlUj0KZW5kZXJlci5kcmF3 KGFuLGFsLGFoKX07TC5qcXBsb3QuTWFya2VyUmVuZGVyZXIucHJvdG90eXBlLmRyYXdEYXNoPTNE ZnVuY3RpPQpvbihhaixhaSxhbSxhbCxhbyl7dmFyIGFoPTNEMTt2YXIgYXA9M0R0aGlzLnNpemUv MiphaDt2YXIgYW49M0R0aGlzLnNpemUvMio9CmFoO3ZhciBhaz0zRFtbYWotYXAsYWldLFthaith cCxhaV1dO2lmKHRoaXMuc2hhZG93KXt0aGlzLnNoYWRvd1JlbmRlcmVyLmRyYT0KdyhhbSxhayl9 dGhpcy5zaGFwZVJlbmRlcmVyLmRyYXcoYW0sYWssYW8pfTtMLmpxcGxvdC5NYXJrZXJSZW5kZXJl ci5wcm90b3R5PQpwZS5kcmF3TGluZT0zRGZ1bmN0aW9uKGFtLGFsLGFoLGFrLGFpKXt2YXIgYWo9 M0RbYW0sYWxdO2lmKHRoaXMuc2hhZG93KXt0aGk9CnMuc2hhZG93UmVuZGVyZXIuZHJhdyhhaCxh ail9dGhpcy5zaGFwZVJlbmRlcmVyLmRyYXcoYWgsYWosYWkpfTtMLmpxcGxvdC5NYT0KcmtlclJl bmRlcmVyLnByb3RvdHlwZS5kcmF3U3F1YXJlPTNEZnVuY3Rpb24oYWosYWksYW0sYWwsYW8pe3Zh ciBhaD0zRDE7dmFyPQogYXA9M0R0aGlzLnNpemUvMi9haDt2YXIgYW49M0R0aGlzLnNpemUvMiph aDt2YXIgYWs9M0RbW2FqLWFwLGFpLWFuXSxbYWotYXA9CixhaSthbl0sW2FqK2FwLGFpK2FuXSxb YWorYXAsYWktYW5dXTtpZih0aGlzLnNoYWRvdyl7dGhpcy5zaGFkb3dSZW5kZXJlci5kcj0KYXco YW0sYWspfXRoaXMuc2hhcGVSZW5kZXJlci5kcmF3KGFtLGFrLGFvKX07TC5qcXBsb3QuTWFya2Vy UmVuZGVyZXIucHJvdG90PQp5cGUuZHJhd0NpcmNsZT0zRGZ1bmN0aW9uKGFpLGFvLGFrLGFuLGFs KXt2YXIgYWg9M0R0aGlzLnNpemUvMjt2YXIgYWo9M0QyKk09CmF0aC5QSTt2YXIgYW09M0RbYWks YW8sYWgsMCxhaix0cnVlXTtpZih0aGlzLnNoYWRvdyl7dGhpcy5zaGFkb3dSZW5kZXJlci5kcj0K YXcoYWssYW0pfXRoaXMuc2hhcGVSZW5kZXJlci5kcmF3KGFrLGFtLGFsKX07TC5qcXBsb3QuTWFy a2VyUmVuZGVyZXIucHJvdG90PQp5cGUuZHJhdz0zRGZ1bmN0aW9uKGFoLGFrLGFpLGFqKXthaj0z RGFqfHx7fTtpZihhai5zaG93PTNEPTNEbnVsbHx8YWouc2hvdyE9Cj0zRGZhbHNlKXtpZihhai5j b2xvciYmIWFqLmZpbGxTdHlsZSl7YWouZmlsbFN0eWxlPTNEYWouY29sb3J9aWYoYWouY29sb3Im Jj0KIWFqLnN0cm9rZVN0eWxlKXthai5zdHJva2VTdHlsZT0zRGFqLmNvbG9yfXN3aXRjaCh0aGlz LnN0eWxlKXtjYXNlImRpYW1vbmQiPQo6dGhpcy5kcmF3RGlhbW9uZChhaCxhayxhaSxmYWxzZSxh aik7YnJlYWs7Y2FzZSJmaWxsZWREaWFtb25kIjp0aGlzLmRyYXdEaWE9Cm1vbmQoYWgsYWssYWks dHJ1ZSxhaik7YnJlYWs7Y2FzZSJjaXJjbGUiOnRoaXMuZHJhd0NpcmNsZShhaCxhayxhaSxmYWxz ZSxhaj0KKTticmVhaztjYXNlImZpbGxlZENpcmNsZSI6dGhpcy5kcmF3Q2lyY2xlKGFoLGFrLGFp LHRydWUsYWopO2JyZWFrO2Nhc2Uic3F1PQphcmUiOnRoaXMuZHJhd1NxdWFyZShhaCxhayxhaSxm YWxzZSxhaik7YnJlYWs7Y2FzZSJmaWxsZWRTcXVhcmUiOnRoaXMuZHJhd1M9CnF1YXJlKGFoLGFr LGFpLHRydWUsYWopO2JyZWFrO2Nhc2UieCI6dGhpcy5kcmF3WChhaCxhayxhaSx0cnVlLGFqKTti cmVhaztjYT0Kc2UicGx1cyI6dGhpcy5kcmF3UGx1cyhhaCxhayxhaSx0cnVlLGFqKTticmVhaztj YXNlImRhc2giOnRoaXMuZHJhd0Rhc2goYWgsPQphayxhaSx0cnVlLGFqKTticmVhaztjYXNlImxp bmUiOnRoaXMuZHJhd0xpbmUoYWgsYWssYWksZmFsc2UsYWopO2JyZWFrO2RlZmE9CnVsdDp0aGlz LmRyYXdEaWFtb25kKGFoLGFrLGFpLGZhbHNlLGFqKTticmVha319fTtMLmpxcGxvdC5TaGFkb3dS ZW5kZXJlcj0zRD0KZnVuY3Rpb24oYWgpe3RoaXMuYW5nbGU9M0Q0NTt0aGlzLm9mZnNldD0zRDE7 dGhpcy5hbHBoYT0zRDAuMDc7dGhpcy5saW5lV2lkPQp0aD0zRDEuNTt0aGlzLmxpbmVKb2luPTNE Im1pdGVyIjt0aGlzLmxpbmVDYXA9M0Qicm91bmQiO3RoaXMuY2xvc2VQYXRoPTNEZmE9CmxzZTt0 aGlzLmZpbGw9M0RmYWxzZTt0aGlzLmRlcHRoPTNEMzt0aGlzLnN0cm9rZVN0eWxlPTNEInJnYmEo MCwwLDAsMC4xKSI7dD0KaGlzLmlzYXJjPTNEZmFsc2U7TC5leHRlbmQodHJ1ZSx0aGlzLGFoKX07 TC5qcXBsb3QuU2hhZG93UmVuZGVyZXIucHJvdG90eXBlPQouaW5pdD0zRGZ1bmN0aW9uKGFoKXtM LmV4dGVuZCh0cnVlLHRoaXMsYWgpfTtMLmpxcGxvdC5TaGFkb3dSZW5kZXJlci5wcm90b3Q9Cnlw ZS5kcmF3PTNEZnVuY3Rpb24oYXYsYXQsYXgpe2F2LnNhdmUoKTt2YXIgYWg9M0QoYXghPTNEbnVs bCk/YXg6e307dmFyIGF1PQo9M0QoYWguZmlsbCE9M0RudWxsKT9haC5maWxsOnRoaXMuZmlsbDt2 YXIgYXA9M0QoYWguZmlsbFJlY3QhPTNEbnVsbCk/YWguZmk9CmxsUmVjdDp0aGlzLmZpbGxSZWN0 O3ZhciBhbz0zRChhaC5jbG9zZVBhdGghPTNEbnVsbCk/YWguY2xvc2VQYXRoOnRoaXMuY2xvcz0K ZVBhdGg7dmFyIGFsPTNEKGFoLm9mZnNldCE9M0RudWxsKT9haC5vZmZzZXQ6dGhpcy5vZmZzZXQ7 dmFyIGFqPTNEKGFoLmFscGhhPQohPTNEbnVsbCk/YWguYWxwaGE6dGhpcy5hbHBoYTt2YXIgYW49 M0QoYWguZGVwdGghPTNEbnVsbCk/YWguZGVwdGg6dGhpcy5kZXA9CnRoO3ZhciBhdz0zRChhaC5p c2FyYyE9M0RudWxsKT9haC5pc2FyYzp0aGlzLmlzYXJjO3ZhciBhcT0zRChhaC5saW5lUGF0dGVy bj0KIT0zRG51bGwpP2FoLmxpbmVQYXR0ZXJuOnRoaXMubGluZVBhdHRlcm47YXYubGluZVdpZHRo PTNEKGFoLmxpbmVXaWR0aCE9M0RuPQp1bGwpP2FoLmxpbmVXaWR0aDp0aGlzLmxpbmVXaWR0aDth di5saW5lSm9pbj0zRChhaC5saW5lSm9pbiE9M0RudWxsKT9haC5saW49CmVKb2luOnRoaXMubGlu ZUpvaW47YXYubGluZUNhcD0zRChhaC5saW5lQ2FwIT0zRG51bGwpP2FoLmxpbmVDYXA6dGhpcy5s aW5lQz0KYXA7YXYuc3Ryb2tlU3R5bGU9M0RhaC5zdHJva2VTdHlsZXx8dGhpcy5zdHJva2VTdHls ZXx8InJnYmEoMCwwLDAsIithaisiKSI7PQphdi5maWxsU3R5bGU9M0RhaC5maWxsU3R5bGV8fHRo aXMuZmlsbFN0eWxlfHwicmdiYSgwLDAsMCwiK2FqKyIpIjtmb3IodmFyIGE9Cms9M0QwO2FrPGFu O2FrKyspe3ZhciBhcj0zREwuanFwbG90LkxpbmVQYXR0ZXJuKGF2LGFxKTthdi50cmFuc2xhdGUo TWF0aC5jbz0Kcyh0aGlzLmFuZ2xlKk1hdGguUEkvMTgwKSphbCxNYXRoLnNpbih0aGlzLmFuZ2xl Kk1hdGguUEkvMTgwKSphbCk7YXIuYmVnaW5QPQphdGgoKTtpZihhdyl7YXYuYXJjKGF0WzBdLGF0 WzFdLGF0WzJdLGF0WzNdLGF0WzRdLHRydWUpfWVsc2V7aWYoYXApe2lmKGFwKXs9CmF2LmZpbGxS ZWN0KGF0WzBdLGF0WzFdLGF0WzJdLGF0WzNdKX19ZWxzZXtpZihhdCYmYXQubGVuZ3RoKXt2YXIg YWk9M0R0cnVlOz0KZm9yKHZhciBhbT0zRDA7YW08YXQubGVuZ3RoO2FtKyspe2lmKGF0W2FtXVsw XSE9M0RudWxsJiZhdFthbV1bMV0hPTNEbnVsbCl7PQppZihhaSl7YXIubW92ZVRvKGF0W2FtXVsw XSxhdFthbV1bMV0pO2FpPTNEZmFsc2V9ZWxzZXthci5saW5lVG8oYXRbYW1dWzBdLGE9CnRbYW1d WzFdKX19ZWxzZXthaT0zRHRydWV9fX19fWlmKGFvKXthci5jbG9zZVBhdGgoKX1pZihhdSl7YXYu ZmlsbCgpfWVsc2V7YT0Kdi5zdHJva2UoKX19YXYucmVzdG9yZSgpfTtMLmpxcGxvdC5TaGFwZVJl bmRlcmVyPTNEZnVuY3Rpb24oYWgpe3RoaXMubGluZVdpPQpkdGg9M0QxLjU7dGhpcy5saW5lUGF0 dGVybj0zRCJzb2xpZCI7dGhpcy5saW5lSm9pbj0zRCJtaXRlciI7dGhpcy5saW5lQ2FwPQo9M0Qi cm91bmQiO3RoaXMuY2xvc2VQYXRoPTNEZmFsc2U7dGhpcy5maWxsPTNEZmFsc2U7dGhpcy5pc2Fy Yz0zRGZhbHNlO3RoaXM9Ci5maWxsUmVjdD0zRGZhbHNlO3RoaXMuc3Ryb2tlUmVjdD0zRGZhbHNl O3RoaXMuY2xlYXJSZWN0PTNEZmFsc2U7dGhpcy5zdHJvaz0KZVN0eWxlPTNEIiM5OTk5OTkiO3Ro aXMuZmlsbFN0eWxlPTNEIiM5OTk5OTkiO0wuZXh0ZW5kKHRydWUsdGhpcyxhaCl9O0wuanFwPQps b3QuU2hhcGVSZW5kZXJlci5wcm90b3R5cGUuaW5pdD0zRGZ1bmN0aW9uKGFoKXtMLmV4dGVuZCh0 cnVlLHRoaXMsYWgpfTtMLmo9CnFwbG90LlNoYXBlUmVuZGVyZXIucHJvdG90eXBlLmRyYXc9M0Rm dW5jdGlvbihhdCxhcSxhdil7YXQuc2F2ZSgpO3ZhciBhaD0zRD0KKGF2IT0zRG51bGwpP2F2Ont9 O3ZhciBhcj0zRChhaC5maWxsIT0zRG51bGwpP2FoLmZpbGw6dGhpcy5maWxsO3ZhciBhbT0zRChh PQpoLmNsb3NlUGF0aCE9M0RudWxsKT9haC5jbG9zZVBhdGg6dGhpcy5jbG9zZVBhdGg7dmFyIGFu PTNEKGFoLmZpbGxSZWN0IT0zRG49CnVsbCk/YWguZmlsbFJlY3Q6dGhpcy5maWxsUmVjdDt2YXIg YWs9M0QoYWguc3Ryb2tlUmVjdCE9M0RudWxsKT9haC5zdHJva2VSZT0KY3Q6dGhpcy5zdHJva2VS ZWN0O3ZhciBhaT0zRChhaC5jbGVhclJlY3QhPTNEbnVsbCk/YWguY2xlYXJSZWN0OnRoaXMuY2xl YXJSPQplY3Q7dmFyIGF1PTNEKGFoLmlzYXJjIT0zRG51bGwpP2FoLmlzYXJjOnRoaXMuaXNhcmM7 dmFyIGFvPTNEKGFoLmxpbmVQYXR0ZXI9Cm4hPTNEbnVsbCk/YWgubGluZVBhdHRlcm46dGhpcy5s aW5lUGF0dGVybjt2YXIgYXA9M0RMLmpxcGxvdC5MaW5lUGF0dGVybihhdD0KLGFvKTthdC5saW5l V2lkdGg9M0RhaC5saW5lV2lkdGh8fHRoaXMubGluZVdpZHRoO2F0LmxpbmVKb2luPTNEYWgubGlu ZUpvaW58PQp8dGhpcy5saW5lSm9pbjthdC5saW5lQ2FwPTNEYWgubGluZUNhcHx8dGhpcy5saW5l Q2FwO2F0LnN0cm9rZVN0eWxlPTNEKGFoLnM9CnRyb2tlU3R5bGV8fGFoLmNvbG9yKXx8dGhpcy5z dHJva2VTdHlsZTthdC5maWxsU3R5bGU9M0RhaC5maWxsU3R5bGV8fHRoaXMuZj0KaWxsU3R5bGU7 YXQuYmVnaW5QYXRoKCk7aWYoYXUpe2F0LmFyYyhhcVswXSxhcVsxXSxhcVsyXSxhcVszXSxhcVs0 XSx0cnVlKTtpPQpmKGFtKXthdC5jbG9zZVBhdGgoKX1pZihhcil7YXQuZmlsbCgpfWVsc2V7YXQu c3Ryb2tlKCl9YXQucmVzdG9yZSgpO3JldHVybn09CmVsc2V7aWYoYWkpe2F0LmNsZWFyUmVjdChh cVswXSxhcVsxXSxhcVsyXSxhcVszXSk7YXQucmVzdG9yZSgpO3JldHVybn1lbHNlez0KaWYoYW58 fGFrKXtpZihhbil7YXQuZmlsbFJlY3QoYXFbMF0sYXFbMV0sYXFbMl0sYXFbM10pfWlmKGFrKXth dC5zdHJva2VSZWN0PQooYXFbMF0sYXFbMV0sYXFbMl0sYXFbM10pO2F0LnJlc3RvcmUoKTtyZXR1 cm59fWVsc2V7aWYoYXEmJmFxLmxlbmd0aCl7dmFyIGE9Cmo9M0R0cnVlO2Zvcih2YXIgYWw9M0Qw O2FsPGFxLmxlbmd0aDthbCsrKXtpZihhcVthbF1bMF0hPTNEbnVsbCYmYXFbYWxdWzFdIT0KPTNE bnVsbCl7aWYoYWope2FwLm1vdmVUbyhhcVthbF1bMF0sYXFbYWxdWzFdKTthaj0zRGZhbHNlfWVs c2V7YXAubGluZVRvKGFxPQpbYWxdWzBdLGFxW2FsXVsxXSl9fWVsc2V7YWo9M0R0cnVlfX1pZihh bSl7YXAuY2xvc2VQYXRoKCl9aWYoYXIpe2F0LmZpbGwoKX09CmVsc2V7YXQuc3Ryb2tlKCl9fX19 fWF0LnJlc3RvcmUoKX07TC5qcXBsb3QuVGFibGVMZWdlbmRSZW5kZXJlcj0zRGZ1bmN0aW9uKD0K KXt9O0wuanFwbG90LlRhYmxlTGVnZW5kUmVuZGVyZXIucHJvdG90eXBlLmluaXQ9M0RmdW5jdGlv bihhaCl7TC5leHRlbmQodHJ1PQplLHRoaXMsYWgpfTtMLmpxcGxvdC5UYWJsZUxlZ2VuZFJlbmRl cmVyLnByb3RvdHlwZS5hZGRyb3c9M0RmdW5jdGlvbihhcSxhayw9CmFoLGFvKXt2YXIgYWw9M0Qo YWgpP3RoaXMucm93U3BhY2luZysicHgiOiIwcHgiO3ZhciBhcDt2YXIgYWo7dmFyIGFpO3ZhciBh bj0KO3ZhciBhbTthaT0zRGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRyIik7YXA9M0RMKGFpKTth cC5hZGRDbGFzcygianFwbG90LXRhPQpibGUtbGVnZW5kIik7YWk9M0RudWxsO2lmKGFvKXthcC5w cmVwZW5kVG8odGhpcy5fZWxlbSl9ZWxzZXthcC5hcHBlbmRUbyh0aGk9CnMuX2VsZW0pfWlmKHRo aXMuc2hvd1N3YXRjaGVzKXthaj0zREwoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGQiKSk7YWou YWRkQz0KbGFzcygianFwbG90LXRhYmxlLWxlZ2VuZCBqcXBsb3QtdGFibGUtbGVnZW5kLXN3YXRj aCIpO2FqLmNzcyh7dGV4dEFsaWduOiJjPQplbnRlciIscGFkZGluZ1RvcDphbH0pO2FuPTNETChk b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7YW4uYWRkQ2xhc3MoImo9CnFwbG90LXRhYmxl LWxlZ2VuZC1zd2F0Y2gtb3V0bGluZSIpO2FtPTNETChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk aXYiKSk7YT0KbS5hZGRDbGFzcygianFwbG90LXRhYmxlLWxlZ2VuZC1zd2F0Y2giKTthbS5jc3Mo e2JhY2tncm91bmRDb2xvcjphayxib3JkZXJDPQpvbG9yOmFrfSk7YXAuYXBwZW5kKGFqLmFwcGVu ZChhbi5hcHBlbmQoYW0pKSl9aWYodGhpcy5zaG93TGFiZWxzKXthaj0zREwoZG89CmN1bWVudC5j cmVhdGVFbGVtZW50KCJ0ZCIpKTthai5hZGRDbGFzcygianFwbG90LXRhYmxlLWxlZ2VuZCBqcXBs b3QtdGFibGUtbD0KZWdlbmQtbGFiZWwiKTthai5jc3MoInBhZGRpbmdUb3AiLGFsKTthcC5hcHBl bmQoYWopO2lmKHRoaXMuZXNjYXBlSHRtbCl7YWouPQp0ZXh0KGFxKX1lbHNle2FqLmh0bWwoYXEp fX1haj0zRG51bGw7YW49M0RudWxsO2FtPTNEbnVsbDthcD0zRG51bGw7YWk9M0RudWw9Cmx9O0wu anFwbG90LlRhYmxlTGVnZW5kUmVuZGVyZXIucHJvdG90eXBlLmRyYXc9M0RmdW5jdGlvbigpe2lm KHRoaXMuX2VsZW0pez0KdGhpcy5fZWxlbS5lbXB0eUZvcmNlKCk7dGhpcy5fZWxlbT0zRG51bGx9 aWYodGhpcy5zaG93KXt2YXIgYW09M0R0aGlzLl9zZXJpPQplczt2YXIgYWk9M0Rkb2N1bWVudC5j cmVhdGVFbGVtZW50KCJ0YWJsZSIpO3RoaXMuX2VsZW09M0RMKGFpKTt0aGlzLl9lbGVtLmE9CmRk Q2xhc3MoImpxcGxvdC10YWJsZS1sZWdlbmQiKTt2YXIgYXI9M0R7cG9zaXRpb246ImFic29sdXRl In07aWYodGhpcy5iYWNrZz0Kcm91bmQpe2FyLmJhY2tncm91bmQ9M0R0aGlzLmJhY2tncm91bmR9 aWYodGhpcy5ib3JkZXIpe2FyLmJvcmRlcj0zRHRoaXMuYm9yPQpkZXJ9aWYodGhpcy5mb250U2l6 ZSl7YXIuZm9udFNpemU9M0R0aGlzLmZvbnRTaXplfWlmKHRoaXMuZm9udEZhbWlseSl7YXIuZm89 Cm50RmFtaWx5PTNEdGhpcy5mb250RmFtaWx5fWlmKHRoaXMudGV4dENvbG9yKXthci50ZXh0Q29s b3I9M0R0aGlzLnRleHRDb2xvcj0KfWlmKHRoaXMubWFyZ2luVG9wIT0zRG51bGwpe2FyLm1hcmdp blRvcD0zRHRoaXMubWFyZ2luVG9wfWlmKHRoaXMubWFyZ2luQm90PQp0b20hPTNEbnVsbCl7YXIu bWFyZ2luQm90dG9tPTNEdGhpcy5tYXJnaW5Cb3R0b219aWYodGhpcy5tYXJnaW5MZWZ0IT0zRG51 bGw9Cil7YXIubWFyZ2luTGVmdD0zRHRoaXMubWFyZ2luTGVmdH1pZih0aGlzLm1hcmdpblJpZ2h0 IT0zRG51bGwpe2FyLm1hcmdpblJpZz0KaHQ9M0R0aGlzLm1hcmdpblJpZ2h0fXZhciBhaD0zRGZh bHNlLGFvPTNEZmFsc2UsYXE7Zm9yKHZhciBhbj0zRDA7YW48YW0ubGVuPQpndGg7YW4rKyl7YXE9 M0RhbVthbl07aWYoYXEuX3N0YWNrfHxhcS5yZW5kZXJlci5jb25zdHJ1Y3Rvcj0zRD0zREwuanFw bG90LkI9CmV6aWVyQ3VydmVSZW5kZXJlcil7YW89M0R0cnVlfWlmKGFxLnNob3cmJmFxLnNob3dM YWJlbCl7dmFyIGFsPTNEdGhpcy5sYWJlbD0Kc1thbl18fGFxLmxhYmVsLnRvU3RyaW5nKCk7aWYo YWwpe3ZhciBhaj0zRGFxLmNvbG9yO2lmKGFvJiZhbjxhbS5sZW5ndGgtMSl7PQphaD0zRHRydWV9 ZWxzZXtpZihhbyYmYW49M0Q9M0RhbS5sZW5ndGgtMSl7YWg9M0RmYWxzZX19dGhpcy5yZW5kZXJl ci5hZGRyb3c9Ci5jYWxsKHRoaXMsYWwsYWosYWgsYW8pO2FoPTNEdHJ1ZX1mb3IodmFyIGFrPTNE MDthazxMLmpxcGxvdC5hZGRMZWdlbmRSb3dIbz0Kb2tzLmxlbmd0aDthaysrKXt2YXIgYXA9M0RM LmpxcGxvdC5hZGRMZWdlbmRSb3dIb29rc1tha10uY2FsbCh0aGlzLGFxKTtpZihhPQpwKXt0aGlz LnJlbmRlcmVyLmFkZHJvdy5jYWxsKHRoaXMsYXAubGFiZWwsYXAuY29sb3IsYWgpO2FoPTNEdHJ1 ZX19YWw9M0RudWw9Cmx9fX1yZXR1cm4gdGhpcy5fZWxlbX07TC5qcXBsb3QuVGFibGVMZWdlbmRS ZW5kZXJlci5wcm90b3R5cGUucGFjaz0zRGZ1bmN0aT0Kb24oYWope2lmKHRoaXMuc2hvdyl7aWYo dGhpcy5wbGFjZW1lbnQ9M0Q9M0QiaW5zaWRlR3JpZCIpe3N3aXRjaCh0aGlzLmxvY2F0PQppb24p e2Nhc2UibnciOnZhciBhaT0zRGFqLmxlZnQ7dmFyIGFoPTNEYWoudG9wO3RoaXMuX2VsZW0uY3Nz KCJsZWZ0IixhaSk7dGg9CmlzLl9lbGVtLmNzcygidG9wIixhaCk7YnJlYWs7Y2FzZSJuIjp2YXIg YWk9M0QoYWoubGVmdCsodGhpcy5fcGxvdERpbWVuc2lvbj0Kcy53aWR0aC1hai5yaWdodCkpLzIt dGhpcy5nZXRXaWR0aCgpLzI7dmFyIGFoPTNEYWoudG9wO3RoaXMuX2VsZW0uY3NzKCJsZWZ0PQoi LGFpKTt0aGlzLl9lbGVtLmNzcygidG9wIixhaCk7YnJlYWs7Y2FzZSJuZSI6dmFyIGFpPTNEYWou cmlnaHQ7dmFyIGFoPTNEYWo9Ci50b3A7dGhpcy5fZWxlbS5jc3Moe3JpZ2h0OmFpLHRvcDphaH0p O2JyZWFrO2Nhc2UiZSI6dmFyIGFpPTNEYWoucmlnaHQ7dmFyID0KYWg9M0QoYWoudG9wKyh0aGlz Ll9wbG90RGltZW5zaW9ucy5oZWlnaHQtYWouYm90dG9tKSkvMi10aGlzLmdldEhlaWdodCgpLzI7 PQp0aGlzLl9lbGVtLmNzcyh7cmlnaHQ6YWksdG9wOmFofSk7YnJlYWs7Y2FzZSJzZSI6dmFyIGFp PTNEYWoucmlnaHQ7dmFyIGFoPQo9M0Rhai5ib3R0b207dGhpcy5fZWxlbS5jc3Moe3JpZ2h0OmFp LGJvdHRvbTphaH0pO2JyZWFrO2Nhc2UicyI6dmFyIGFpPTNEKGE9CmoubGVmdCsodGhpcy5fcGxv dERpbWVuc2lvbnMud2lkdGgtYWoucmlnaHQpKS8yLXRoaXMuZ2V0V2lkdGgoKS8yO3ZhciBhaD0z RD0KYWouYm90dG9tO3RoaXMuX2VsZW0uY3NzKHtsZWZ0OmFpLGJvdHRvbTphaH0pO2JyZWFrO2Nh c2Uic3ciOnZhciBhaT0zRGFqLmxlPQpmdDt2YXIgYWg9M0Rhai5ib3R0b207dGhpcy5fZWxlbS5j c3Moe2xlZnQ6YWksYm90dG9tOmFofSk7YnJlYWs7Y2FzZSJ3Ijp2YXI9CiBhaT0zRGFqLmxlZnQ7 dmFyIGFoPTNEKGFqLnRvcCsodGhpcy5fcGxvdERpbWVuc2lvbnMuaGVpZ2h0LWFqLmJvdHRvbSkp LzItdD0KaGlzLmdldEhlaWdodCgpLzI7dGhpcy5fZWxlbS5jc3Moe2xlZnQ6YWksdG9wOmFofSk7 YnJlYWs7ZGVmYXVsdDp2YXIgYWk9M0RhPQpqLnJpZ2h0O3ZhciBhaD0zRGFqLmJvdHRvbTt0aGlz Ll9lbGVtLmNzcyh7cmlnaHQ6YWksYm90dG9tOmFofSk7YnJlYWt9fWVsc2U9CntpZih0aGlzLnBs YWNlbWVudD0zRD0zRCJvdXRzaWRlIil7c3dpdGNoKHRoaXMubG9jYXRpb24pe2Nhc2UibnciOnZh ciBhaT0zRD0KdGhpcy5fcGxvdERpbWVuc2lvbnMud2lkdGgtYWoubGVmdDt2YXIgYWg9M0Rhai50 b3A7dGhpcy5fZWxlbS5jc3MoInJpZ2h0IixhPQppKTt0aGlzLl9lbGVtLmNzcygidG9wIixhaCk7 YnJlYWs7Y2FzZSJuIjp2YXIgYWk9M0QoYWoubGVmdCsodGhpcy5fcGxvdERpbWU9Cm5zaW9ucy53 aWR0aC1hai5yaWdodCkpLzItdGhpcy5nZXRXaWR0aCgpLzI7dmFyIGFoPTNEdGhpcy5fcGxvdERp bWVuc2lvbnMuaD0KZWlnaHQtYWoudG9wO3RoaXMuX2VsZW0uY3NzKCJsZWZ0IixhaSk7dGhpcy5f ZWxlbS5jc3MoImJvdHRvbSIsYWgpO2JyZWFrO2NhPQpzZSJuZSI6dmFyIGFpPTNEdGhpcy5fcGxv dERpbWVuc2lvbnMud2lkdGgtYWoucmlnaHQ7dmFyIGFoPTNEYWoudG9wO3RoaXMuX2U9CmxlbS5j c3Moe2xlZnQ6YWksdG9wOmFofSk7YnJlYWs7Y2FzZSJlIjp2YXIgYWk9M0R0aGlzLl9wbG90RGlt ZW5zaW9ucy53aWR0aD0KLWFqLnJpZ2h0O3ZhciBhaD0zRChhai50b3ArKHRoaXMuX3Bsb3REaW1l bnNpb25zLmhlaWdodC1hai5ib3R0b20pKS8yLXRoaXMuPQpnZXRIZWlnaHQoKS8yO3RoaXMuX2Vs ZW0uY3NzKHtsZWZ0OmFpLHRvcDphaH0pO2JyZWFrO2Nhc2Uic2UiOnZhciBhaT0zRHRoaXM9Ci5f cGxvdERpbWVuc2lvbnMud2lkdGgtYWoucmlnaHQ7dmFyIGFoPTNEYWouYm90dG9tO3RoaXMuX2Vs ZW0uY3NzKHtsZWZ0OmFpLD0KYm90dG9tOmFofSk7YnJlYWs7Y2FzZSJzIjp2YXIgYWk9M0QoYWou bGVmdCsodGhpcy5fcGxvdERpbWVuc2lvbnMud2lkdGgtYWouPQpyaWdodCkpLzItdGhpcy5nZXRX aWR0aCgpLzI7dmFyIGFoPTNEdGhpcy5fcGxvdERpbWVuc2lvbnMuaGVpZ2h0LWFqLmJvdHRvbTs9 CnRoaXMuX2VsZW0uY3NzKHtsZWZ0OmFpLHRvcDphaH0pO2JyZWFrO2Nhc2Uic3ciOnZhciBhaT0z RHRoaXMuX3Bsb3REaW1lbnNpbz0KbnMud2lkdGgtYWoubGVmdDt2YXIgYWg9M0Rhai5ib3R0b207 dGhpcy5fZWxlbS5jc3Moe3JpZ2h0OmFpLGJvdHRvbTphaH0pO2JyPQplYWs7Y2FzZSJ3Ijp2YXIg YWk9M0R0aGlzLl9wbG90RGltZW5zaW9ucy53aWR0aC1hai5sZWZ0O3ZhciBhaD0zRChhai50b3Ar KHQ9Cmhpcy5fcGxvdERpbWVuc2lvbnMuaGVpZ2h0LWFqLmJvdHRvbSkpLzItdGhpcy5nZXRIZWln aHQoKS8yO3RoaXMuX2VsZW0uY3NzKD0Ke3JpZ2h0OmFpLHRvcDphaH0pO2JyZWFrO2RlZmF1bHQ6 dmFyIGFpPTNEYWoucmlnaHQ7dmFyIGFoPTNEYWouYm90dG9tO3RoaXMuPQpfZWxlbS5jc3Moe3Jp Z2h0OmFpLGJvdHRvbTphaH0pO2JyZWFrfX1lbHNle3N3aXRjaCh0aGlzLmxvY2F0aW9uKXtjYXNl Im53Ijo9CnRoaXMuX2VsZW0uY3NzKHtsZWZ0OjAsdG9wOmFqLnRvcH0pO2JyZWFrO2Nhc2UibiI6 dmFyIGFpPTNEKGFqLmxlZnQrKHRoaXMuXz0KcGxvdERpbWVuc2lvbnMud2lkdGgtYWoucmlnaHQp KS8yLXRoaXMuZ2V0V2lkdGgoKS8yO3RoaXMuX2VsZW0uY3NzKHtsZWZ0OmFpPQosdG9wOmFqLnRv cH0pO2JyZWFrO2Nhc2UibmUiOnRoaXMuX2VsZW0uY3NzKHtyaWdodDowLHRvcDphai50b3B9KTti cmVhaztjYXM9CmUiZSI6dmFyIGFoPTNEKGFqLnRvcCsodGhpcy5fcGxvdERpbWVuc2lvbnMuaGVp Z2h0LWFqLmJvdHRvbSkpLzItdGhpcy5nZXRIZT0KaWdodCgpLzI7dGhpcy5fZWxlbS5jc3Moe3Jp Z2h0OmFqLnJpZ2h0LHRvcDphaH0pO2JyZWFrO2Nhc2Uic2UiOnRoaXMuX2VsZW0uPQpjc3Moe3Jp Z2h0OmFqLnJpZ2h0LGJvdHRvbTphai5ib3R0b219KTticmVhaztjYXNlInMiOnZhciBhaT0zRChh ai5sZWZ0Kyh0aGk9CnMuX3Bsb3REaW1lbnNpb25zLndpZHRoLWFqLnJpZ2h0KSkvMi10aGlzLmdl dFdpZHRoKCkvMjt0aGlzLl9lbGVtLmNzcyh7bGVmdD0KOmFpLGJvdHRvbTphai5ib3R0b219KTti cmVhaztjYXNlInN3Ijp0aGlzLl9lbGVtLmNzcyh7bGVmdDphai5sZWZ0LGJvdHRvbTphPQpqLmJv dHRvbX0pO2JyZWFrO2Nhc2UidyI6dmFyIGFoPTNEKGFqLnRvcCsodGhpcy5fcGxvdERpbWVuc2lv bnMuaGVpZ2h0LWFqLmI9Cm90dG9tKSkvMi10aGlzLmdldEhlaWdodCgpLzI7dGhpcy5fZWxlbS5j c3Moe2xlZnQ6YWoubGVmdCx0b3A6YWh9KTticmVhaztkZT0KZmF1bHQ6dGhpcy5fZWxlbS5jc3Mo e3JpZ2h0OmFqLnJpZ2h0LGJvdHRvbTphai5ib3R0b219KTticmVha319fX19O0wuanFwbG90PQou VGhlbWVFbmdpbmU9M0RmdW5jdGlvbigpe3RoaXMudGhlbWVzPTNEe307dGhpcy5hY3RpdmVUaGVt ZT0zRG51bGx9O0wuanFwbG89CnQuVGhlbWVFbmdpbmUucHJvdG90eXBlLmluaXQ9M0RmdW5jdGlv bigpe3ZhciBhaz0zRG5ldyBMLmpxcGxvdC5UaGVtZSh7X25hbT0KZToiRGVmYXVsdCJ9KTt2YXIg YW4sYWksYW07Zm9yKGFuIGluIGFrLnRhcmdldCl7aWYoYW49M0Q9M0QidGV4dENvbG9yIil7YWsu PQp0YXJnZXRbYW5dPTNEdGhpcy50YXJnZXQuY3NzKCJjb2xvciIpfWVsc2V7YWsudGFyZ2V0W2Fu XT0zRHRoaXMudGFyZ2V0LmNzcyg9CmFuKX19aWYodGhpcy50aXRsZS5zaG93JiZ0aGlzLnRpdGxl Ll9lbGVtKXtmb3IoYW4gaW4gYWsudGl0bGUpe2lmKGFuPTNEPTNEIj0KdGV4dENvbG9yIil7YWsu dGl0bGVbYW5dPTNEdGhpcy50aXRsZS5fZWxlbS5jc3MoImNvbG9yIil9ZWxzZXthay50aXRsZVth bl09Cj0zRHRoaXMudGl0bGUuX2VsZW0uY3NzKGFuKX19fWZvcihhbiBpbiBhay5ncmlkKXthay5n cmlkW2FuXT0zRHRoaXMuZ3JpZFthbj0KXX1pZihhay5ncmlkLmJhY2tncm91bmRDb2xvcj0zRD0z RG51bGwmJnRoaXMuZ3JpZC5iYWNrZ3JvdW5kIT0zRG51bGwpe2FrLmdyPQppZC5iYWNrZ3JvdW5k Q29sb3I9M0R0aGlzLmdyaWQuYmFja2dyb3VuZH1pZih0aGlzLmxlZ2VuZC5zaG93JiZ0aGlzLmxl Z2VuZC49Cl9lbGVtKXtmb3IoYW4gaW4gYWsubGVnZW5kKXtpZihhbj0zRD0zRCJ0ZXh0Q29sb3Ii KXthay5sZWdlbmRbYW5dPTNEdGhpcy5sZT0KZ2VuZC5fZWxlbS5jc3MoImNvbG9yIil9ZWxzZXth ay5sZWdlbmRbYW5dPTNEdGhpcy5sZWdlbmQuX2VsZW0uY3NzKGFuKX19fXZhPQpyIGFqO2Zvcihh aT0zRDA7YWk8dGhpcy5zZXJpZXMubGVuZ3RoO2FpKyspe2FqPTNEdGhpcy5zZXJpZXNbYWldO2lm KGFqLnJlbmQ9CmVyZXIuY29uc3RydWN0b3I9M0Q9M0RMLmpxcGxvdC5MaW5lUmVuZGVyZXIpe2Fr LnNlcmllcy5wdXNoKG5ldyBwKCkpfWVsc2V7aT0KZihhai5yZW5kZXJlci5jb25zdHJ1Y3Rvcj0z RD0zREwuanFwbG90LkJhclJlbmRlcmVyKXthay5zZXJpZXMucHVzaChuZXcgVCgpPQopfWVsc2V7 aWYoYWoucmVuZGVyZXIuY29uc3RydWN0b3I9M0Q9M0RMLmpxcGxvdC5QaWVSZW5kZXJlcil7YWsu c2VyaWVzLnB1c2g9CihuZXcgZigpKX1lbHNle2lmKGFqLnJlbmRlcmVyLmNvbnN0cnVjdG9yPTNE PTNETC5qcXBsb3QuRG9udXRSZW5kZXJlcil7YWsucz0KZXJpZXMucHVzaChuZXcgRygpKX1lbHNl e2lmKGFqLnJlbmRlcmVyLmNvbnN0cnVjdG9yPTNEPTNETC5qcXBsb3QuRnVubmVsUmVuPQpkZXJl cil7YWsuc2VyaWVzLnB1c2gobmV3IFooKSl9ZWxzZXtpZihhai5yZW5kZXJlci5jb25zdHJ1Y3Rv cj0zRD0zREwuanFwbG89CnQuTWV0ZXJHYXVnZVJlbmRlcmVyKXthay5zZXJpZXMucHVzaChuZXcg RCgpKX1lbHNle2FrLnNlcmllcy5wdXNoKHt9KX19fX19fT0KZm9yKGFuIGluIGFrLnNlcmllc1th aV0pe2FrLnNlcmllc1thaV1bYW5dPTNEYWpbYW5dfX12YXIgYWgsYWw7Zm9yKGFuIGluIHRoPQpp cy5heGVzKXthbD0zRHRoaXMuYXhlc1thbl07YWg9M0Rhay5heGVzW2FuXT0zRG5ldyBQKCk7YWgu Ym9yZGVyQ29sb3I9M0RhbC49CmJvcmRlckNvbG9yO2FoLmJvcmRlcldpZHRoPTNEYWwuYm9yZGVy V2lkdGg7aWYoYWwuX3RpY2tzJiZhbC5fdGlja3NbMF0pe2Zvcj0KKGFtIGluIGFoLnRpY2tzKXtp ZihhbC5fdGlja3NbMF0uaGFzT3duUHJvcGVydHkoYW0pKXthaC50aWNrc1thbV09M0RhbC5fdGlj PQprc1swXVthbV19ZWxzZXtpZihhbC5fdGlja3NbMF0uX2VsZW0pe2FoLnRpY2tzW2FtXT0zRGFs Ll90aWNrc1swXS5fZWxlbS5jc3M9CihhbSl9fX19aWYoYWwuX2xhYmVsJiZhbC5fbGFiZWwuc2hv dyl7Zm9yKGFtIGluIGFoLmxhYmVsKXtpZihhbC5fbGFiZWxbYW1dKT0Ke2FoLmxhYmVsW2FtXT0z RGFsLl9sYWJlbFthbV19ZWxzZXtpZihhbC5fbGFiZWwuX2VsZW0pe2lmKGFtPTNEPTNEInRleHRD b2xvPQpyIil7YWgubGFiZWxbYW1dPTNEYWwuX2xhYmVsLl9lbGVtLmNzcygiY29sb3IiKX1lbHNl e2FoLmxhYmVsW2FtXT0zRGFsLl9sYWI9CmVsLl9lbGVtLmNzcyhhbSl9fX19fX10aGlzLnRoZW1l RW5naW5lLl9hZGQoYWspO3RoaXMudGhlbWVFbmdpbmUuYWN0aXZlVGhlbT0KZT0zRHRoaXMudGhl bWVFbmdpbmUudGhlbWVzW2FrLl9uYW1lXX07TC5qcXBsb3QuVGhlbWVFbmdpbmUucHJvdG90eXBl LmdldD0KPTNEZnVuY3Rpb24oYWgpe2lmKCFhaCl7cmV0dXJuIHRoaXMuYWN0aXZlVGhlbWV9ZWxz ZXtyZXR1cm4gdGhpcy50aGVtZXNbYWhdPQp9fTtmdW5jdGlvbiBPKGFpLGFoKXtyZXR1cm4gYWkt YWh9TC5qcXBsb3QuVGhlbWVFbmdpbmUucHJvdG90eXBlLmdldFRoZW1lTmE9Cm1lcz0zRGZ1bmN0 aW9uKCl7dmFyIGFoPTNEW107Zm9yKHZhciBhaSBpbiB0aGlzLnRoZW1lcyl7YWgucHVzaChhaSl9 cmV0dXJuID0KYWguc29ydChPKX07TC5qcXBsb3QuVGhlbWVFbmdpbmUucHJvdG90eXBlLmdldFRo ZW1lcz0zRGZ1bmN0aW9uKCl7dmFyIGFpPTNEPQpbXTt2YXIgYWg9M0RbXTtmb3IodmFyIGFrIGlu IHRoaXMudGhlbWVzKXthaS5wdXNoKGFrKX1haS5zb3J0KE8pO2Zvcih2YXIgYWo9Cj0zRDA7YWo8 YWkubGVuZ3RoO2FqKyspe2FoLnB1c2godGhpcy50aGVtZXNbYWlbYWpdXSl9cmV0dXJuIGFofTtM LmpxcGxvdC5UaD0KZW1lRW5naW5lLnByb3RvdHlwZS5hY3RpdmF0ZT0zRGZ1bmN0aW9uKGF2LGFC KXt2YXIgYWg9M0RmYWxzZTtpZighYUImJnRoaXMuPQphY3RpdmVUaGVtZSYmdGhpcy5hY3RpdmVU aGVtZS5fbmFtZSl7YUI9M0R0aGlzLmFjdGl2ZVRoZW1lLl9uYW1lfWlmKCF0aGlzLnQ9CmhlbWVz Lmhhc093blByb3BlcnR5KGFCKSl7dGhyb3cgbmV3IEVycm9yKCJObyB0aGVtZSBvZiB0aGF0IG5h bWUiKX1lbHNle3Zhcj0KIGFtPTNEdGhpcy50aGVtZXNbYUJdO3RoaXMuYWN0aXZlVGhlbWU9M0Rh bTt2YXIgYUEsYXQ9M0RmYWxzZSxhcj0zRGZhbHNlO3ZhPQpyIGFpPTNEWyJ4YXhpcyIsIngyYXhp cyIsInlheGlzIiwieTJheGlzIl07Zm9yKGF3PTNEMDthdzxhaS5sZW5ndGg7YXcrKyl7dmE9CnIg YW49M0RhaVthd107aWYoYW0uYXhlc1N0eWxlcy5ib3JkZXJDb2xvciE9M0RudWxsKXthdi5heGVz W2FuXS5ib3JkZXJDb2xvcj0KPTNEYW0uYXhlc1N0eWxlcy5ib3JkZXJDb2xvcn1pZihhbS5heGVz U3R5bGVzLmJvcmRlcldpZHRoIT0zRG51bGwpe2F2LmF4ZXNbPQphbl0uYm9yZGVyV2lkdGg9M0Rh bS5heGVzU3R5bGVzLmJvcmRlcldpZHRofX1mb3IodmFyIGF6IGluIGF2LmF4ZXMpe3ZhciBhaz0K PTNEYXYuYXhlc1thel07aWYoYWsuc2hvdyl7dmFyIGFxPTNEYW0uYXhlc1thel18fHt9O3ZhciBh bz0zRGFtLmF4ZXNTdHlsZXM7PQp2YXIgYWw9M0RMLmpxcGxvdC5leHRlbmQodHJ1ZSx7fSxhcSxh byk7YUE9M0QoYW0uYXhlc1N0eWxlcy5ib3JkZXJDb2xvciE9M0Q9Cm51bGwpP2FtLmF4ZXNTdHls ZXMuYm9yZGVyQ29sb3I6YWwuYm9yZGVyQ29sb3I7aWYoYWwuYm9yZGVyQ29sb3IhPTNEbnVsbCl7 YT0Kay5ib3JkZXJDb2xvcj0zRGFsLmJvcmRlckNvbG9yO2FoPTNEdHJ1ZX1hQT0zRChhbS5heGVz U3R5bGVzLmJvcmRlcldpZHRoIT0KPTNEbnVsbCk/YW0uYXhlc1N0eWxlcy5ib3JkZXJXaWR0aDph bC5ib3JkZXJXaWR0aDtpZihhbC5ib3JkZXJXaWR0aCE9M0RudWxsPQope2FrLmJvcmRlcldpZHRo PTNEYWwuYm9yZGVyV2lkdGg7YWg9M0R0cnVlfWlmKGFrLl90aWNrcyYmYWsuX3RpY2tzWzBdKXtm b3I9Cih2YXIgYWogaW4gYWwudGlja3Mpe2FBPTNEYWwudGlja3NbYWpdO2lmKGFBIT0zRG51bGwp e2FrLnRpY2tPcHRpb25zW2FqXT0zRD0KYUE7YWsuX3RpY2tzPTNEW107YWg9M0R0cnVlfX19aWYo YWsuX2xhYmVsJiZhay5fbGFiZWwuc2hvdyl7Zm9yKHZhciBhaiBpbiBhPQpsLmxhYmVsKXthQT0z RGFsLmxhYmVsW2FqXTtpZihhQSE9M0RudWxsKXthay5sYWJlbE9wdGlvbnNbYWpdPTNEYUE7YWg9 M0R0cnU9CmV9fX19fWZvcih2YXIgYXUgaW4gYW0uZ3JpZCl7aWYoYW0uZ3JpZFthdV0hPTNEbnVs bCl7YXYuZ3JpZFthdV09M0RhbS5ncmlkWz0KYXVdfX1pZighYWgpe2F2LmdyaWQuZHJhdygpfWlm KGF2LmxlZ2VuZC5zaG93KXtmb3IoYXUgaW4gYW0ubGVnZW5kKXtpZihhbS5sPQplZ2VuZFthdV0h PTNEbnVsbCl7YXYubGVnZW5kW2F1XT0zRGFtLmxlZ2VuZFthdV19fX1pZihhdi50aXRsZS5zaG93 KXtmb3IoYXU9CiBpbiBhbS50aXRsZSl7aWYoYW0udGl0bGVbYXVdIT0zRG51bGwpe2F2LnRpdGxl W2F1XT0zRGFtLnRpdGxlW2F1XX19fXZhciBhdz0KO2Zvcihhdz0zRDA7YXc8YW0uc2VyaWVzLmxl bmd0aDthdysrKXt2YXIgYXA9M0R7fTt2YXIgYXk9M0RmYWxzZTtmb3IoYXUgaW4gPQphbS5zZXJp ZXNbYXddKXthQT0zRChhbS5zZXJpZXNTdHlsZXNbYXVdIT0zRG51bGwpP2FtLnNlcmllc1N0eWxl c1thdV06YW0uc2U9CnJpZXNbYXddW2F1XTtpZihhQSE9M0RudWxsKXthcFthdV09M0RhQTtpZihh dT0zRD0zRCJjb2xvciIpe2F2LnNlcmllc1thd10ucj0KZW5kZXJlci5zaGFwZVJlbmRlcmVyLmZp bGxTdHlsZT0zRGFBO2F2LnNlcmllc1thd10ucmVuZGVyZXIuc2hhcGVSZW5kZXJlci5zPQp0cm9r ZVN0eWxlPTNEYUE7YXYuc2VyaWVzW2F3XVthdV09M0RhQX1lbHNle2lmKChhdT0zRD0zRCJsaW5l V2lkdGgiKXx8KGF1PQo9M0Q9M0QibGluZVBhdHRlcm4iKSl7YXYuc2VyaWVzW2F3XS5yZW5kZXJl ci5zaGFwZVJlbmRlcmVyW2F1XT0zRGFBO2F2LnNlcmk9CmVzW2F3XVthdV09M0RhQX1lbHNle2lm KGF1PTNEPTNEIm1hcmtlck9wdGlvbnMiKXtWKGF2LnNlcmllc1thd10ubWFya2VyT3B0aT0Kb25z LGFBKTtWKGF2LnNlcmllc1thd10ubWFya2VyUmVuZGVyZXIsYUEpfWVsc2V7YXYuc2VyaWVzW2F3 XVthdV09M0RhQX19fWFoPQo9M0R0cnVlfX19aWYoYWgpe2F2LnRhcmdldC5lbXB0eSgpO2F2LmRy YXcoKX1mb3IoYXUgaW4gYW0udGFyZ2V0KXtpZihhbS50YXI9CmdldFthdV0hPTNEbnVsbCl7YXYu dGFyZ2V0LmNzcyhhdSxhbS50YXJnZXRbYXVdKX19fX07TC5qcXBsb3QuVGhlbWVFbmdpbmUucD0K cm90b3R5cGUuX2FkZD0zRGZ1bmN0aW9uKGFpLGFoKXtpZihhaCl7YWkuX25hbWU9M0RhaH1pZigh YWkuX25hbWUpe2FpLl9uYW1lPQo9M0REYXRlLnBhcnNlKG5ldyBEYXRlKCkpfWlmKCF0aGlzLnRo ZW1lcy5oYXNPd25Qcm9wZXJ0eShhaS5fbmFtZSkpe3RoaXMudGg9CmVtZXNbYWkuX25hbWVdPTNE YWl9ZWxzZXt0aHJvdyBuZXcgRXJyb3IoImpxcGxvdC5UaGVtZUVuZ2luZSBFcnJvcjogVGhlbWUg YT0KbHJlYWR5IGluIHVzZSIpfX07TC5qcXBsb3QuVGhlbWVFbmdpbmUucHJvdG90eXBlLnJlbW92 ZT0zRGZ1bmN0aW9uKGFoKXtpZihhPQpoPTNEPTNEIkRlZmF1bHQiKXtyZXR1cm4gZmFsc2V9cmV0 dXJuIGRlbGV0ZSB0aGlzLnRoZW1lc1thaF19O0wuanFwbG90LlRoZW09CmVFbmdpbmUucHJvdG90 eXBlLm5ld1RoZW1lPTNEZnVuY3Rpb24oYWgsYWope2lmKHR5cGVvZihhaCk9M0Q9M0Qib2JqZWN0 Iil7YT0Kaj0zRGFqfHxhaDthaD0zRG51bGx9aWYoYWomJmFqLl9uYW1lKXthaD0zRGFqLl9uYW1l fWVsc2V7YWg9M0RhaHx8RGF0ZS5wYXJzPQplKG5ldyBEYXRlKCkpfXZhciBhaT0zRHRoaXMuY29w eSh0aGlzLnRoZW1lcy5EZWZhdWx0Ll9uYW1lLGFoKTtMLmpxcGxvdC5leHQ9CmVuZChhaSxhaik7 cmV0dXJuIGFpfTtmdW5jdGlvbiBCKGFqKXtpZihhaj0zRD0zRG51bGx8fHR5cGVvZihhaikhPTNE Im9iamVjdD0KIil7cmV0dXJuIGFqfXZhciBhaD0zRG5ldyBhai5jb25zdHJ1Y3RvcigpO2Zvcih2 YXIgYWkgaW4gYWope2FoW2FpXT0zREIoYWpbPQphaV0pfXJldHVybiBhaH1MLmpxcGxvdC5jbG9u ZT0zREI7ZnVuY3Rpb24gVihhaixhaSl7aWYoYWk9M0Q9M0RudWxsfHx0eXBlb2Y9CihhaSkhPTNE Im9iamVjdCIpe3JldHVybn1mb3IodmFyIGFoIGluIGFpKXtpZihhaD0zRD0zRCJoaWdobGlnaHRD b2xvcnMiKXthaj0KW2FoXT0zREIoYWlbYWhdKX1pZihhaVthaF0hPTNEbnVsbCYmdHlwZW9mKGFp W2FoXSk9M0Q9M0Qib2JqZWN0Iil7aWYoIWFqLmhhPQpzT3duUHJvcGVydHkoYWgpKXthalthaF09 M0R7fX1WKGFqW2FoXSxhaVthaF0pfWVsc2V7YWpbYWhdPTNEYWlbYWhdfX19TC5qcXA9CmxvdC5t ZXJnZT0zRFY7TC5qcXBsb3QuZXh0ZW5kPTNEZnVuY3Rpb24oKXt2YXIgYW09M0Rhcmd1bWVudHNb MF18fHt9LGFrPTNEMT0KLGFsPTNEYXJndW1lbnRzLmxlbmd0aCxhaD0zRGZhbHNlLGFqO2lmKHR5 cGVvZiBhbT0zRD0zRD0zRCJib29sZWFuIil7YWg9M0RhPQptO2FtPTNEYXJndW1lbnRzWzFdfHx7 fTthaz0zRDJ9aWYodHlwZW9mIGFtIT0zRD0zRCJvYmplY3QiJiYhdG9TdHJpbmcuY2FsbCg9CmFt KT0zRD0zRD0zRCJbb2JqZWN0IEZ1bmN0aW9uXSIpe2FtPTNEe319Zm9yKDthazxhbDthaysrKXtp ZigoYWo9M0Rhcmd1bWVudD0Kc1tha10pIT0zRG51bGwpe2Zvcih2YXIgYWkgaW4gYWope3ZhciBh bj0zRGFtW2FpXSxhbz0zRGFqW2FpXTtpZihhbT0zRD0zRD0KPTNEYW8pe2NvbnRpbnVlfWlmKGFo JiZhbyYmdHlwZW9mIGFvPTNEPTNEPTNEIm9iamVjdCImJiFhby5ub2RlVHlwZSl7YW1bYWldPQo9 M0RMLmpxcGxvdC5leHRlbmQoYWgsYW58fChhby5sZW5ndGghPTNEbnVsbD9bXTp7fSksYW8pfWVs c2V7aWYoYW8hPTNEPTNEdSk9CnthbVthaV09M0Rhb319fX19cmV0dXJuIGFtfTtMLmpxcGxvdC5U aGVtZUVuZ2luZS5wcm90b3R5cGUucmVuYW1lPTNEZnVuY3Rpbz0KbihhaSxhaCl7aWYoYWk9M0Q9 M0QiRGVmYXVsdCJ8fGFoPTNEPTNEIkRlZmF1bHQiKXt0aHJvdyBuZXcgRXJyb3IoImpxcGxvdC5U PQpoZW1lRW5naW5lIEVycm9yOiBDYW5ub3QgcmVuYW1lIGZyb20vdG8gRGVmYXVsdCIpfWlmKHRo aXMudGhlbWVzLmhhc093blByb3A9CmVydHkoYWgpKXt0aHJvdyBuZXcgRXJyb3IoImpxcGxvdC5U aGVtZUVuZ2luZSBFcnJvcjogTmV3IG5hbWUgYWxyZWFkeSBpbiB1cz0KZS4iKX1lbHNle2lmKHRo aXMudGhlbWVzLmhhc093blByb3BlcnR5KGFpKSl7dmFyIGFqPTNEdGhpcy5jb3B5KGFpLGFoKTt0 aGlzPQoucmVtb3ZlKGFpKTtyZXR1cm4gYWp9fXRocm93IG5ldyBFcnJvcigianFwbG90LlRoZW1l RW5naW5lIEVycm9yOiBPbGQgbmFtZSA9Cm9yIG5ldyBuYW1lIGludmFsaWQiKX07TC5qcXBsb3Qu VGhlbWVFbmdpbmUucHJvdG90eXBlLmNvcHk9M0RmdW5jdGlvbihhaCxhaj0KLGFsKXtpZihhaj0z RD0zRCJEZWZhdWx0Iil7dGhyb3cgbmV3IEVycm9yKCJqcXBsb3QuVGhlbWVFbmdpbmUgRXJyb3I6 IENhbm5vPQp0IGNvcHkgb3ZlciBEZWZhdWx0IHRoZW1lIil9aWYoIXRoaXMudGhlbWVzLmhhc093 blByb3BlcnR5KGFoKSl7dmFyIGFpPTNEImo9CnFwbG90LlRoZW1lRW5naW5lIEVycm9yOiBTb3Vy Y2UgbmFtZSBpbnZhbGlkIjt0aHJvdyBuZXcgRXJyb3IoYWkpfWlmKHRoaXMudD0KaGVtZXMuaGFz T3duUHJvcGVydHkoYWopKXt2YXIgYWk9M0QianFwbG90LlRoZW1lRW5naW5lIEVycm9yOiBUYXJn ZXQgbmFtZSBpPQpudmFsaWQiO3Rocm93IG5ldyBFcnJvcihhaSl9ZWxzZXt2YXIgYWs9M0RCKHRo aXMudGhlbWVzW2FoXSk7YWsuX25hbWU9M0Rhajs9CkwuanFwbG90LmV4dGVuZCh0cnVlLGFrLGFs KTt0aGlzLl9hZGQoYWspO3JldHVybiBha319O0wuanFwbG90LlRoZW1lPTNEZnVuYz0KdGlvbihh aCxhaSl7aWYodHlwZW9mKGFoKT0zRD0zRCJvYmplY3QiKXthaT0zRGFpfHxhaDthaD0zRG51bGx9 YWg9M0RhaHx8RGF0PQplLnBhcnNlKG5ldyBEYXRlKCkpO3RoaXMuX25hbWU9M0RhaDt0aGlzLnRh cmdldD0zRHtiYWNrZ3JvdW5kQ29sb3I6bnVsbH07dGg9CmlzLmxlZ2VuZD0zRHt0ZXh0Q29sb3I6 bnVsbCxmb250RmFtaWx5Om51bGwsZm9udFNpemU6bnVsbCxib3JkZXI6bnVsbCxiYWNrZz0Kcm91 bmQ6bnVsbH07dGhpcy50aXRsZT0zRHt0ZXh0Q29sb3I6bnVsbCxmb250RmFtaWx5Om51bGwsZm9u dFNpemU6bnVsbCx0ZXh0PQpBbGlnbjpudWxsfTt0aGlzLnNlcmllc1N0eWxlcz0zRHt9O3RoaXMu c2VyaWVzPTNEW107dGhpcy5ncmlkPTNEe2RyYXdHcmlkbGk9Cm5lczpudWxsLGdyaWRMaW5lQ29s b3I6bnVsbCxncmlkTGluZVdpZHRoOm51bGwsYmFja2dyb3VuZENvbG9yOm51bGwsYm9yZGVyQz0K b2xvcjpudWxsLGJvcmRlcldpZHRoOm51bGwsc2hhZG93Om51bGx9O3RoaXMuYXhlc1N0eWxlcz0z RHtsYWJlbDp7fSx0aWNrczp7PQp9fTt0aGlzLmF4ZXM9M0R7fTtpZih0eXBlb2YoYWkpPTNEPTNE InN0cmluZyIpe3RoaXMuX25hbWU9M0RhaX1lbHNle2lmKHR5cGU9Cm9mKGFpKT0zRD0zRCJvYmpl Y3QiKXtMLmpxcGxvdC5leHRlbmQodHJ1ZSx0aGlzLGFpKX19fTt2YXIgUD0zRGZ1bmN0aW9uKCl7 dD0KaGlzLmJvcmRlckNvbG9yPTNEbnVsbDt0aGlzLmJvcmRlcldpZHRoPTNEbnVsbDt0aGlzLnRp Y2tzPTNEbmV3IG8oKTt0aGlzLmxhPQpiZWw9M0RuZXcgdCgpfTt2YXIgbz0zRGZ1bmN0aW9uKCl7 dGhpcy5zaG93PTNEbnVsbDt0aGlzLnNob3dHcmlkbGluZT0zRG51bGw9Cjt0aGlzLnNob3dMYWJl bD0zRG51bGw7dGhpcy5zaG93TWFyaz0zRG51bGw7dGhpcy5zaXplPTNEbnVsbDt0aGlzLnRleHRD b2xvcj0KPTNEbnVsbDt0aGlzLndoaXRlU3BhY2U9M0RudWxsO3RoaXMuZm9udFNpemU9M0RudWxs O3RoaXMuZm9udEZhbWlseT0zRG51bGx9PQo7dmFyIHQ9M0RmdW5jdGlvbigpe3RoaXMudGV4dENv bG9yPTNEbnVsbDt0aGlzLndoaXRlU3BhY2U9M0RudWxsO3RoaXMuZm9udFM9Cml6ZT0zRG51bGw7 dGhpcy5mb250RmFtaWx5PTNEbnVsbDt0aGlzLmZvbnRXZWlnaHQ9M0RudWxsfTt2YXIgcD0zRGZ1 bmN0aW9uKD0KKXt0aGlzLmNvbG9yPTNEbnVsbDt0aGlzLmxpbmVXaWR0aD0zRG51bGw7dGhpcy5s aW5lUGF0dGVybj0zRG51bGw7dGhpcy5zaGFkPQpvdz0zRG51bGw7dGhpcy5maWxsQ29sb3I9M0Ru dWxsO3RoaXMuc2hvd01hcmtlcj0zRG51bGw7dGhpcy5tYXJrZXJPcHRpb25zPQo9M0RuZXcgSSgp fTt2YXIgST0zRGZ1bmN0aW9uKCl7dGhpcy5zaG93PTNEbnVsbDt0aGlzLnN0eWxlPTNEbnVsbDt0 aGlzLmxpbmU9CldpZHRoPTNEbnVsbDt0aGlzLnNpemU9M0RudWxsO3RoaXMuY29sb3I9M0RudWxs O3RoaXMuc2hhZG93PTNEbnVsbH07dmFyIFQ9Cj0zRGZ1bmN0aW9uKCl7dGhpcy5jb2xvcj0zRG51 bGw7dGhpcy5zZXJpZXNDb2xvcnM9M0RudWxsO3RoaXMubGluZVdpZHRoPTNEbj0KdWxsO3RoaXMu c2hhZG93PTNEbnVsbDt0aGlzLmJhclBhZGRpbmc9M0RudWxsO3RoaXMuYmFyTWFyZ2luPTNEbnVs bDt0aGlzLmJhPQpyV2lkdGg9M0RudWxsO3RoaXMuaGlnaGxpZ2h0Q29sb3JzPTNEbnVsbH07dmFy IGY9M0RmdW5jdGlvbigpe3RoaXMuc2VyaWVzQ289CmxvcnM9M0RudWxsO3RoaXMucGFkZGluZz0z RG51bGw7dGhpcy5zbGljZU1hcmdpbj0zRG51bGw7dGhpcy5maWxsPTNEbnVsbDt0aD0KaXMuc2hh ZG93PTNEbnVsbDt0aGlzLnN0YXJ0QW5nbGU9M0RudWxsO3RoaXMubGluZVdpZHRoPTNEbnVsbDt0 aGlzLmhpZ2hsaWdoPQp0Q29sb3JzPTNEbnVsbH07dmFyIEc9M0RmdW5jdGlvbigpe3RoaXMuc2Vy aWVzQ29sb3JzPTNEbnVsbDt0aGlzLnBhZGRpbmc9M0Q9Cm51bGw7dGhpcy5zbGljZU1hcmdpbj0z RG51bGw7dGhpcy5maWxsPTNEbnVsbDt0aGlzLnNoYWRvdz0zRG51bGw7dGhpcy5zdGFydD0KQW5n bGU9M0RudWxsO3RoaXMubGluZVdpZHRoPTNEbnVsbDt0aGlzLmlubmVyRGlhbWV0ZXI9M0RudWxs O3RoaXMudGhpY2tuZXNzPQo9M0RudWxsO3RoaXMucmluZ01hcmdpbj0zRG51bGw7dGhpcy5oaWdo bGlnaHRDb2xvcnM9M0RudWxsfTt2YXIgWj0zRGZ1bmN0aW89Cm4oKXt0aGlzLmNvbG9yPTNEbnVs bDt0aGlzLmxpbmVXaWR0aD0zRG51bGw7dGhpcy5zaGFkb3c9M0RudWxsO3RoaXMucGFkZGluZz0K PTNEbnVsbDt0aGlzLnNlY3Rpb25NYXJnaW49M0RudWxsO3RoaXMuc2VyaWVzQ29sb3JzPTNEbnVs bDt0aGlzLmhpZ2hsaWdodENvPQpsb3JzPTNEbnVsbH07dmFyIEQ9M0RmdW5jdGlvbigpe3RoaXMu cGFkZGluZz0zRG51bGw7dGhpcy5iYWNrZ3JvdW5kQ29sb3I9M0Q9Cm51bGw7dGhpcy5yaW5nQ29s b3I9M0RudWxsO3RoaXMudGlja0NvbG9yPTNEbnVsbDt0aGlzLnJpbmdXaWR0aD0zRG51bGw7dGhp cz0KLmludGVydmFsQ29sb3JzPTNEbnVsbDt0aGlzLmludGVydmFsSW5uZXJSYWRpdXM9M0RudWxs O3RoaXMuaW50ZXJ2YWxPdXRlclJhPQpkaXVzPTNEbnVsbDt0aGlzLmh1YlJhZGl1cz0zRG51bGw7 dGhpcy5uZWVkbGVUaGlja25lc3M9M0RudWxsO3RoaXMubmVlZGxlUGE9CmQ9M0RudWxsfTtMLmZu LmpxcGxvdENoaWxkVGV4dD0zRGZ1bmN0aW9uKCl7cmV0dXJuIEwodGhpcykuY29udGVudHMoKS5m aWx0ZT0KcihmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGVUeXBlPTNEPTNEM30pLnRleHQoKX07 TC5mbi5qcXBsb3RHZXRDb21wdXRlZEZvPQpudFN0eWxlPTNEZnVuY3Rpb24oKXt2YXIgYWs9M0R3 aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZT93aW5kb3cuZ2V0Q29tcHV0ZWRTdHk9CmxlKHRoaXNbMF0s IiIpOnRoaXNbMF0uY3VycmVudFN0eWxlO3ZhciBhaT0zRGFrWyJmb250LXN0eWxlIl0/WyJmb250 LXN0eWxlIj0KLCJmb250LXdlaWdodCIsImZvbnQtc2l6ZSIsImZvbnQtZmFtaWx5Il06WyJmb250 U3R5bGUiLCJmb250V2VpZ2h0IiwiZm9udFNpPQp6ZSIsImZvbnRGYW1pbHkiXTt2YXIgYWw9M0Rb XTtmb3IodmFyIGFqPTNEMDthajxhaS5sZW5ndGg7Kythail7dmFyIGFoPTNEU3Q9CnJpbmcoYWtb YWlbYWpdXSk7aWYoYWgmJmFoIT0zRCJub3JtYWwiKXthbC5wdXNoKGFoKX19cmV0dXJuIGFsLmpv aW4oIiAiKX07TD0KLmZuLmpxcGxvdFRvSW1hZ2VDYW52YXM9M0RmdW5jdGlvbihhail7YWo9M0Rh anx8e307dmFyIGF2PTNEKGFqLnhfb2Zmc2V0PTNEPQo9M0RudWxsKT8wOmFqLnhfb2Zmc2V0O3Zh ciBheD0zRChhai55X29mZnNldD0zRD0zRG51bGwpPzA6YWoueV9vZmZzZXQ7dmFyIGE9Cmw9M0Qo YWouYmFja2dyb3VuZENvbG9yPTNEPTNEbnVsbCk/InJnYigyNTUsMjU1LDI1NSkiOmFqLmJhY2tn cm91bmRDb2xvcjtpZj0KKEwodGhpcykud2lkdGgoKT0zRD0zRDB8fEwodGhpcykuaGVpZ2h0KCk9 M0Q9M0QwKXtyZXR1cm4gbnVsbH1pZihMLmpxcGxvdC51PQpzZV9leGNhbnZhcyl7cmV0dXJuIG51 bGx9dmFyIGFuPTNEZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7dmFyIGFBPQo9M0RM KHRoaXMpLm91dGVySGVpZ2h0KHRydWUpO3ZhciBhdD0zREwodGhpcykub3V0ZXJXaWR0aCh0cnVl KTt2YXIgYW09M0RMKHQ9Cmhpcykub2Zmc2V0KCk7dmFyIGFvPTNEYW0ubGVmdDt2YXIgYXE9M0Rh bS50b3A7dmFyIGF1PTNEMCxhcj0zRDA7dmFyIGF5PTNEWz0KImpxcGxvdC10YWJsZS1sZWdlbmQi LCJqcXBsb3QteGF4aXMtdGljayIsImpxcGxvdC14MmF4aXMtdGljayIsImpxcGxvdC15YXhpPQpz LXRpY2siLCJqcXBsb3QteTJheGlzLXRpY2siLCJqcXBsb3QteTNheGlzLXRpY2siLCJqcXBsb3Qt eTRheGlzLXRpY2siLCJqcXA9CmxvdC15NWF4aXMtdGljayIsImpxcGxvdC15NmF4aXMtdGljayIs ImpxcGxvdC15N2F4aXMtdGljayIsImpxcGxvdC15OGF4aXMtdD0KaWNrIiwianFwbG90LXk5YXhp cy10aWNrIiwianFwbG90LXhheGlzLWxhYmVsIiwianFwbG90LXgyYXhpcy1sYWJlbCIsImpxcGxv PQp0LXlheGlzLWxhYmVsIiwianFwbG90LXkyYXhpcy1sYWJlbCIsImpxcGxvdC15M2F4aXMtbGFi ZWwiLCJqcXBsb3QteTRheGlzLWw9CmFiZWwiLCJqcXBsb3QteTVheGlzLWxhYmVsIiwianFwbG90 LXk2YXhpcy1sYWJlbCIsImpxcGxvdC15N2F4aXMtbGFiZWwiLCJqcT0KcGxvdC15OGF4aXMtbGFi ZWwiLCJqcXBsb3QteTlheGlzLWxhYmVsIl07dmFyIGFwLGFoLGFpLGFCO2Zvcih2YXIgYXo9M0Qw O2F6PQo8YXkubGVuZ3RoO2F6Kyspe0wodGhpcykuZmluZCgiLiIrYXlbYXpdKS5lYWNoKGZ1bmN0 aW9uKCl7YXA9M0RMKHRoaXMpLm9mZnM9CmV0KCkudG9wLWFxO2FoPTNETCh0aGlzKS5vZmZzZXQo KS5sZWZ0LWFvO2FCPTNEYWgrTCh0aGlzKS5vdXRlcldpZHRoKHRydWUpKz0KYXU7YWk9M0RhcCtM KHRoaXMpLm91dGVySGVpZ2h0KHRydWUpK2FyO2lmKGFoPC1hdSl7YXQ9M0RhdC1hdS1haDthdT0z RC1haH1pPQpmKGFwPC1hcil7YUE9M0RhQS1hci1hcDthcj0zRC1hcH1pZihhQj5hdCl7YXQ9M0Rh Qn1pZihhaT5hQSl7YUE9M0RhaX19KX1hbi49CndpZHRoPTNEYXQrTnVtYmVyKGF2KTthbi5oZWln aHQ9M0RhQStOdW1iZXIoYXgpO3ZhciBhaz0zRGFuLmdldENvbnRleHQoIjJkIj0KKTthay5zYXZl KCk7YWsuZmlsbFN0eWxlPTNEYWw7YWsuZmlsbFJlY3QoMCwwLGFuLndpZHRoLGFuLmhlaWdodCk7 YWsucmVzdG9yPQplKCk7YWsudHJhbnNsYXRlKGF1LGFyKTthay50ZXh0QWxpZ249M0QibGVmdCI7 YWsudGV4dEJhc2VsaW5lPTNEInRvcCI7ZnVuY3Q9CmlvbiBhQyhhRSl7dmFyIGFGPTNEcGFyc2VJ bnQoTChhRSkuY3NzKCJsaW5lLWhlaWdodCIpLDEwKTtpZihpc05hTihhRikpe2FGPQo9M0RwYXJz ZUludChMKGFFKS5jc3MoImZvbnQtc2l6ZSIpLDEwKSoxLjJ9cmV0dXJuIGFGfWZ1bmN0aW9uIGFE KGFGLGFFLGFTLGE9CkcsYU8sYUgpe3ZhciBhUT0zRGFDKGFGKTt2YXIgYUs9M0RMKGFGKS5pbm5l cldpZHRoKCk7dmFyIGFMPTNETChhRikuaW5uZXJIZT0KaWdodCgpO3ZhciBhTj0zRGFTLnNwbGl0 KC9ccysvKTt2YXIgYVI9M0RhTi5sZW5ndGg7dmFyIGFQPTNEIiI7dmFyIGFNPTNEW107PQp2YXIg YVU9M0RhTzt2YXIgYVQ9M0RhRztmb3IodmFyIGFKPTNEMDthSjxhUjthSisrKXthUCs9M0RhTlth Sl07aWYoYUUubWVhc3U9CnJlVGV4dChhUCkud2lkdGg+YUspe2FNLnB1c2goYUopO2FQPTNEIiI7 YUotLX19aWYoYU0ubGVuZ3RoPTNEPTNEPTNEMCl7aWYoTD0KKGFGKS5jc3MoInRleHRBbGlnbiIp PTNEPTNEPTNEImNlbnRlciIpe2FUPTNEYUcrKGFILWFFLm1lYXN1cmVUZXh0KGFQKS53aWR0PQpo KS8yLWF1fWFFLmZpbGxUZXh0KGFTLGFULGFPKX1lbHNle2FQPTNEYU4uc2xpY2UoMCxhTVswXSku am9pbigiICIpO2lmKEwoYUY9CikuY3NzKCJ0ZXh0QWxpZ24iKT0zRD0zRD0zRCJjZW50ZXIiKXth VD0zRGFHKyhhSC1hRS5tZWFzdXJlVGV4dChhUCkud2lkdGgpLz0KMi1hdX1hRS5maWxsVGV4dChh UCxhVCxhVSk7YVUrPTNEYVE7Zm9yKHZhciBhSj0zRDEsYUk9M0RhTS5sZW5ndGg7YUo8YUk7YUor PQorKXthUD0zRGFOLnNsaWNlKGFNW2FKLTFdLGFNW2FKXSkuam9pbigiICIpO2lmKEwoYUYpLmNz cygidGV4dEFsaWduIik9M0Q9M0Q9Cj0zRCJjZW50ZXIiKXthVD0zRGFHKyhhSC1hRS5tZWFzdXJl VGV4dChhUCkud2lkdGgpLzItYXV9YUUuZmlsbFRleHQoYVAsYVQsYT0KVSk7YVUrPTNEYVF9YVA9 M0RhTi5zbGljZShhTVthSi0xXSxhTi5sZW5ndGgpLmpvaW4oIiAiKTtpZihMKGFGKS5jc3MoInRl eHRBPQpsaWduIik9M0Q9M0Q9M0QiY2VudGVyIil7YVQ9M0RhRysoYUgtYUUubWVhc3VyZVRleHQo YVApLndpZHRoKS8yLWF1fWFFLmZpbGw9ClRleHQoYVAsYVQsYVUpfX1mdW5jdGlvbiBhdyhhRyxh SixhRSl7dmFyIGFOPTNEYUcudGFnTmFtZS50b0xvd2VyQ2FzZSgpO3Zhcj0KIGFGPTNETChhRyku cG9zaXRpb24oKTt2YXIgYUs9M0R3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZT93aW5kb3cuZ2V0Q29t cHV0ZWRTPQp0eWxlKGFHLCIiKTphRy5jdXJyZW50U3R5bGU7dmFyIGFJPTNEYUorYUYubGVmdCtw YXJzZUludChhSy5tYXJnaW5MZWZ0LDEwKSs9CnBhcnNlSW50KGFLLmJvcmRlckxlZnRXaWR0aCwx MCkrcGFyc2VJbnQoYUsucGFkZGluZ0xlZnQsMTApO3ZhciBhTD0zRGFFK2FGLj0KdG9wK3BhcnNl SW50KGFLLm1hcmdpblRvcCwxMCkrcGFyc2VJbnQoYUsuYm9yZGVyVG9wV2lkdGgsMTApK3BhcnNl SW50KGFLLnBhPQpkZGluZ1RvcCwxMCk7dmFyIGFNPTNEYW4ud2lkdGg7aWYoKGFOPTNEPTNEImRp diJ8fGFOPTNEPTNEInNwYW4iKSYmIUwoYUcpLmg9CmFzQ2xhc3MoImpxcGxvdC1oaWdobGlnaHRl ci10b29sdGlwIikpe0woYUcpLmNoaWxkcmVuKCkuZWFjaChmdW5jdGlvbigpe2F3KD0KdGhpcyxh SSxhTCl9KTt2YXIgYU89M0RMKGFHKS5qcXBsb3RDaGlsZFRleHQoKTtpZihhTyl7YWsuZm9udD0z REwoYUcpLmpxcGxvPQp0R2V0Q29tcHV0ZWRGb250U3R5bGUoKTthay5maWxsU3R5bGU9M0RMKGFH KS5jc3MoImNvbG9yIik7YUQoYUcsYWssYU8sYUksYUw9CixhTSl9fWVsc2V7aWYoYU49M0Q9M0Q9 M0QidGFibGUiJiZMKGFHKS5oYXNDbGFzcygianFwbG90LXRhYmxlLWxlZ2VuZCIpKXthaz0KLnN0 cm9rZVN0eWxlPTNETChhRykuY3NzKCJib3JkZXItdG9wLWNvbG9yIik7YWsuZmlsbFN0eWxlPTNE TChhRykuY3NzKCJiYWNrPQpncm91bmQtY29sb3IiKTthay5maWxsUmVjdChhSSxhTCxMKGFHKS5p bm5lcldpZHRoKCksTChhRykuaW5uZXJIZWlnaHQoKSk7aWY9CihwYXJzZUludChMKGFHKS5jc3Mo ImJvcmRlci10b3Atd2lkdGgiKSwxMCk+MCl7YWsuc3Ryb2tlUmVjdChhSSxhTCxMKGFHKS5pbj0K bmVyV2lkdGgoKSxMKGFHKS5pbm5lckhlaWdodCgpKX1MKGFHKS5maW5kKCJkaXYuanFwbG90LXRh YmxlLWxlZ2VuZC1zd2F0Y2gtPQpvdXRsaW5lIikuZWFjaChmdW5jdGlvbigpe3ZhciBhVT0zREwo dGhpcyk7YWsuc3Ryb2tlU3R5bGU9M0RhVS5jc3MoImJvcmRlci09CnRvcC1jb2xvciIpO3ZhciBh UT0zRGFJK2FVLnBvc2l0aW9uKCkubGVmdDt2YXIgYVI9M0RhTCthVS5wb3NpdGlvbigpLnRvcDth az0KLnN0cm9rZVJlY3QoYVEsYVIsYVUuaW5uZXJXaWR0aCgpLGFVLmlubmVySGVpZ2h0KCkpO2FR Kz0zRHBhcnNlSW50KGFVLmNzcygiPQpwYWRkaW5nLWxlZnQiKSwxMCk7YVIrPTNEcGFyc2VJbnQo YVUuY3NzKCJwYWRkaW5nLXRvcCIpLDEwKTt2YXIgYVQ9M0RhVS5pbm49CmVySGVpZ2h0KCktMipw YXJzZUludChhVS5jc3MoInBhZGRpbmctdG9wIiksMTApO3ZhciBhUD0zRGFVLmlubmVyV2lkdGgo KS0yKj0KcGFyc2VJbnQoYVUuY3NzKCJwYWRkaW5nLWxlZnQiKSwxMCk7dmFyIGFTPTNEYVUuY2hp bGRyZW4oImRpdi5qcXBsb3QtdGFibGUtPQpsZWdlbmQtc3dhdGNoIik7YWsuZmlsbFN0eWxlPTNE YVMuY3NzKCJiYWNrZ3JvdW5kLWNvbG9yIik7YWsuZmlsbFJlY3QoYVEsYVI9CixhUCxhVCl9KTtM KGFHKS5maW5kKCJ0ZC5qcXBsb3QtdGFibGUtbGVnZW5kLWxhYmVsIikuZWFjaChmdW5jdGlvbigp e3ZhciBhUj0KPTNETCh0aGlzKTt2YXIgYVA9M0RhSSthUi5wb3NpdGlvbigpLmxlZnQ7dmFyIGFR PTNEYUwrYVIucG9zaXRpb24oKS50b3ArcGFyPQpzZUludChhUi5jc3MoInBhZGRpbmctdG9wIiks MTApO2FrLmZvbnQ9M0RhUi5qcXBsb3RHZXRDb21wdXRlZEZvbnRTdHlsZSgpO2E9CmsuZmlsbFN0 eWxlPTNEYVIuY3NzKCJjb2xvciIpO2FEKGFSLGFrLGFSLnRleHQoKSxhUCxhUSxhTSl9KTt2YXIg YUg9M0RudWxsfT0KZWxzZXtpZihhTj0zRD0zRCJjYW52YXMiKXthay5kcmF3SW1hZ2UoYUcsYUks YUwpfX19fUwodGhpcykuY2hpbGRyZW4oKS5lYWNoPQooZnVuY3Rpb24oKXthdyh0aGlzLGF2LGF4 KX0pO3JldHVybiBhbn07TC5mbi5qcXBsb3RUb0ltYWdlU3RyPTNEZnVuY3Rpb24oYWk9Cil7dmFy IGFoPTNETCh0aGlzKS5qcXBsb3RUb0ltYWdlQ2FudmFzKGFpKTtpZihhaCl7cmV0dXJuIGFoLnRv RGF0YVVSTCgiaW1hZz0KZS9wbmciKX1lbHNle3JldHVybiBudWxsfX07TC5mbi5qcXBsb3RUb0lt YWdlRWxlbT0zRGZ1bmN0aW9uKGFoKXt2YXIgYWk9M0RkPQpvY3VtZW50LmNyZWF0ZUVsZW1lbnQo ImltZyIpO3ZhciBhaj0zREwodGhpcykuanFwbG90VG9JbWFnZVN0cihhaCk7YWkuc3JjPQo9M0Rh ajtyZXR1cm4gYWl9O0wuZm4uanFwbG90VG9JbWFnZUVsZW1TdHI9M0RmdW5jdGlvbihhaCl7dmFy IGFpPTNEIjxpbWcgc3I9CmM9M0QiK0wodGhpcykuanFwbG90VG9JbWFnZVN0cihhaCkrIiAvPiI7 cmV0dXJuIGFpfTtMLmZuLmpxcGxvdFNhdmVJbWFnZT0zRD0KZnVuY3Rpb24oKXt2YXIgYWg9M0RM KHRoaXMpLmpxcGxvdFRvSW1hZ2VTdHIoe30pO2lmKGFoKXt3aW5kb3cubG9jYXRpb24uaHJlPQpm PTNEYWgucmVwbGFjZSgiaW1hZ2UvcG5nIiwiaW1hZ2Uvb2N0ZXQtc3RyZWFtIil9fTtMLmZuLmpx cGxvdFZpZXdJbWFnZT0zRGY9CnVuY3Rpb24oKXt2YXIgYWk9M0RMKHRoaXMpLmpxcGxvdFRvSW1h Z2VFbGVtU3RyKHt9KTt2YXIgYWo9M0RMKHRoaXMpLmpxcGxvdD0KVG9JbWFnZVN0cih7fSk7aWYo YWkpe3ZhciBhaD0zRHdpbmRvdy5vcGVuKCIiKTthaC5kb2N1bWVudC5vcGVuKCJpbWFnZS9wbmci PQopO2FoLmRvY3VtZW50LndyaXRlKGFpKTthaC5kb2N1bWVudC5jbG9zZSgpO2FoPTNEbnVsbH19 O3ZhciBhZz0zRGZ1bmN0aW9uKCk9Cnt0aGlzLnN5bnRheD0zRGFnLmNvbmZpZy5zeW50YXg7dGhp cy5fdHlwZT0zRCJqc0RhdGUiO3RoaXMucHJveHk9M0RuZXcgRGF0ZT0KKCk7dGhpcy5vcHRpb25z PTNEe307dGhpcy5sb2NhbGU9M0RhZy5yZWdpb25hbC5nZXRMb2NhbGUoKTt0aGlzLmZvcm1hdFN0 cmluPQpnPTNEIiI7dGhpcy5kZWZhdWx0Q2VudHVyeT0zRGFnLmNvbmZpZy5kZWZhdWx0Q2VudHVy eTtzd2l0Y2goYXJndW1lbnRzLmxlbmc9CnRoKXtjYXNlIDA6YnJlYWs7Y2FzZSAxOmlmKGwoYXJn dW1lbnRzWzBdKT0zRD0zRCJbb2JqZWN0IE9iamVjdF0iJiZhcmd1bWVudD0Kc1swXS5fdHlwZSE9 M0QianNEYXRlIil7dmFyIGFqPTNEdGhpcy5vcHRpb25zPTNEYXJndW1lbnRzWzBdO3RoaXMuc3lu dGF4PTNEPQphai5zeW50YXh8fHRoaXMuc3ludGF4O3RoaXMuZGVmYXVsdENlbnR1cnk9M0Rhai5k ZWZhdWx0Q2VudHVyeXx8dGhpcy5kZWZhdWw9CnRDZW50dXJ5O3RoaXMucHJveHk9M0RhZy5jcmVh dGVEYXRlKGFqLmRhdGUpfWVsc2V7dGhpcy5wcm94eT0zRGFnLmNyZWF0ZURhdD0KZShhcmd1bWVu dHNbMF0pfWJyZWFrO2RlZmF1bHQ6dmFyIGFoPTNEW107Zm9yKHZhciBhaT0zRDA7YWk8YXJndW1l bnRzLmxlbmd0PQpoO2FpKyspe2FoLnB1c2goYXJndW1lbnRzW2FpXSl9dGhpcy5wcm94eT0zRG5l dyBEYXRlKCk7dGhpcy5wcm94eS5zZXRGdWxsWWU9CmFyLmFwcGx5KHRoaXMucHJveHksYWguc2xp Y2UoMCwzKSk7aWYoYWguc2xpY2UoMykubGVuZ3RoKXt0aGlzLnByb3h5LnNldEhvdT0KcnMuYXBw bHkodGhpcy5wcm94eSxhaC5zbGljZSgzKSl9YnJlYWt9fTthZy5jb25maWc9M0R7ZGVmYXVsdExv Y2FsZToiZW4iLHN5PQpudGF4OiJwZXJsIixkZWZhdWx0Q2VudHVyeToxOTAwfTthZy5wcm90b3R5 cGUuYWRkPTNEZnVuY3Rpb24oYWosYWkpe3ZhciBhaD0KPTNERVthaV18fEUuZGF5O2lmKHR5cGVv ZiBhaD0zRD0zRCJudW1iZXIiKXt0aGlzLnByb3h5LnNldFRpbWUodGhpcy5wcm94eS5nPQpldFRp bWUoKSsoYWgqYWopKX1lbHNle2FoLmFkZCh0aGlzLGFqKX1yZXR1cm4gdGhpc307YWcucHJvdG90 eXBlLmNsb25lPTNEZnU9Cm5jdGlvbigpe3JldHVybiBuZXcgYWcodGhpcy5wcm94eS5nZXRUaW1l KCkpfTthZy5wcm90b3R5cGUuZ2V0VXRjT2Zmc2V0PTNEZj0KdW5jdGlvbigpe3JldHVybiB0aGlz LnByb3h5LmdldFRpbWV6b25lT2Zmc2V0KCkqNjAwMDB9O2FnLnByb3RvdHlwZS5kaWZmPTNEPQpm dW5jdGlvbihhaSxhbCxhaCl7YWk9M0RuZXcgYWcoYWkpO2lmKGFpPTNEPTNEPTNEbnVsbCl7cmV0 dXJuIG51bGx9dmFyIGFqPQo9M0RFW2FsXXx8RS5kYXk7aWYodHlwZW9mIGFqPTNEPTNEIm51bWJl ciIpe3ZhciBhaz0zRCh0aGlzLnByb3h5LmdldFRpbWUoKS09CmFpLnByb3h5LmdldFRpbWUoKSkv YWp9ZWxzZXt2YXIgYWs9M0Rhai5kaWZmKHRoaXMucHJveHksYWkucHJveHkpfXJldHVybihhaD0K P2FrOk1hdGhbYWs+MD8iZmxvb3IiOiJjZWlsIl0oYWspKX07YWcucHJvdG90eXBlLmdldEFiYnJE YXlOYW1lPTNEZnVuY3Rpb24oPQope3JldHVybiBhZy5yZWdpb25hbFt0aGlzLmxvY2FsZV1bImRh eU5hbWVzU2hvcnQiXVt0aGlzLnByb3h5LmdldERheSgpXX07YWc9Ci5wcm90b3R5cGUuZ2V0QWJi ck1vbnRoTmFtZT0zRGZ1bmN0aW9uKCl7cmV0dXJuIGFnLnJlZ2lvbmFsW3RoaXMubG9jYWxlXVsi bT0Kb250aE5hbWVzU2hvcnQiXVt0aGlzLnByb3h5LmdldE1vbnRoKCldfTthZy5wcm90b3R5cGUu Z2V0QU1QTT0zRGZ1bmN0aW9uKCl7PQpyZXR1cm4gdGhpcy5wcm94eS5nZXRIb3VycygpPj0zRDEy PyJQTSI6IkFNIn07YWcucHJvdG90eXBlLmdldEFtUG09M0RmdW5jdGk9Cm9uKCl7cmV0dXJuIHRo aXMucHJveHkuZ2V0SG91cnMoKT49M0QxMj8icG0iOiJhbSJ9O2FnLnByb3RvdHlwZS5nZXRDZW50 dXJ5PQo9M0RmdW5jdGlvbigpe3JldHVybiBwYXJzZUludCh0aGlzLnByb3h5LmdldEZ1bGxZZWFy KCkvMTAwLDEwKX07YWcucHJvdG90eXA9CmUuZ2V0RGF0ZT0zRGZ1bmN0aW9uKCl7cmV0dXJuIHRo aXMucHJveHkuZ2V0RGF0ZSgpfTthZy5wcm90b3R5cGUuZ2V0RGF5PTNEZj0KdW5jdGlvbigpe3Jl dHVybiB0aGlzLnByb3h5LmdldERheSgpfTthZy5wcm90b3R5cGUuZ2V0RGF5T2ZXZWVrPTNEZnVu Y3Rpb24oPQope3ZhciBhaD0zRHRoaXMucHJveHkuZ2V0RGF5KCk7cmV0dXJuIGFoPTNEPTNEPTNE MD83OmFofTthZy5wcm90b3R5cGUuZ2V0RGE9CnlPZlllYXI9M0RmdW5jdGlvbigpe3ZhciBhaT0z RHRoaXMucHJveHk7dmFyIGFoPTNEYWktbmV3IERhdGUoIiIrYWkuZ2V0RnVsbD0KWWVhcigpKyIv MS8xIEdNVCIpO2FoKz0zRGFpLmdldFRpbWV6b25lT2Zmc2V0KCkqNjAwMDA7YWk9M0RudWxsO3Jl dHVybiBwYXJzPQplSW50KGFoLzYwMDAwLzYwLzI0LDEwKSsxfTthZy5wcm90b3R5cGUuZ2V0RGF5 TmFtZT0zRGZ1bmN0aW9uKCl7cmV0dXJuIGFnLnI9CmVnaW9uYWxbdGhpcy5sb2NhbGVdWyJkYXlO YW1lcyJdW3RoaXMucHJveHkuZ2V0RGF5KCldfTthZy5wcm90b3R5cGUuZ2V0RnVsbD0KV2Vla09m WWVhcj0zRGZ1bmN0aW9uKCl7dmFyIGFrPTNEdGhpcy5wcm94eTt2YXIgYWg9M0R0aGlzLmdldERh eU9mWWVhcigpO3ZhPQpyIGFqPTNENi1hay5nZXREYXkoKTt2YXIgYWk9M0RwYXJzZUludCgoYWgr YWopLzcsMTApO3JldHVybiBhaX07YWcucHJvdG90eXA9CmUuZ2V0RnVsbFllYXI9M0RmdW5jdGlv bigpe3JldHVybiB0aGlzLnByb3h5LmdldEZ1bGxZZWFyKCl9O2FnLnByb3RvdHlwZS5nZT0KdEdt dE9mZnNldD0zRGZ1bmN0aW9uKCl7dmFyIGFoPTNEdGhpcy5wcm94eS5nZXRUaW1lem9uZU9mZnNl dCgpLzYwO3ZhciBhaT0KPTNEYWg8MD8iKyI6Ii0iO2FoPTNETWF0aC5hYnMoYWgpO3JldHVybiBh aStOKE1hdGguZmxvb3IoYWgpLDIpKyI6IitOKChhaCUxPQopKjYwLDIpfTthZy5wcm90b3R5cGUu Z2V0SG91cnM9M0RmdW5jdGlvbigpe3JldHVybiB0aGlzLnByb3h5LmdldEhvdXJzKCl9O2E9Cmcu cHJvdG90eXBlLmdldEhvdXJzMTI9M0RmdW5jdGlvbigpe3ZhciBhaD0zRHRoaXMucHJveHkuZ2V0 SG91cnMoKTtyZXR1cm4gYT0KaD4xMj9haC0xMjooYWg9M0Q9M0QwPzEyOmFoKX07YWcucHJvdG90 eXBlLmdldElzb1dlZWs9M0RmdW5jdGlvbigpe3ZhciBhaz0KPTNEdGhpcy5wcm94eTt2YXIgYWo9 M0R0aGlzLmdldFdlZWtPZlllYXIoKTt2YXIgYWg9M0QobmV3IERhdGUoIiIrYWsuZ2V0RnVsPQps WWVhcigpKyIvMS8xIikpLmdldERheSgpO3ZhciBhaT0zRGFqKyhhaD40fHxhaDw9M0QxPzA6MSk7 aWYoYWk9M0Q9M0Q1MyYmKG49CmV3IERhdGUoIiIrYWsuZ2V0RnVsbFllYXIoKSsiLzEyLzMxIikp LmdldERheSgpPDQpe2FpPTNEMX1lbHNle2lmKGFpPTNEPTNEPQo9M0QwKXthaz0zRG5ldyBhZyhu ZXcgRGF0ZSgiIisoYWsuZ2V0RnVsbFllYXIoKS0xKSsiLzEyLzMxIikpO2FpPTNEYWsuZ2V0SXM9 Cm9XZWVrKCl9fWFrPTNEbnVsbDtyZXR1cm4gYWl9O2FnLnByb3RvdHlwZS5nZXRNaWxsaXNlY29u ZHM9M0RmdW5jdGlvbigpe3JldD0KdXJuIHRoaXMucHJveHkuZ2V0TWlsbGlzZWNvbmRzKCl9O2Fn LnByb3RvdHlwZS5nZXRNaW51dGVzPTNEZnVuY3Rpb24oKXtyZXR1PQpybiB0aGlzLnByb3h5Lmdl dE1pbnV0ZXMoKX07YWcucHJvdG90eXBlLmdldE1vbnRoPTNEZnVuY3Rpb24oKXtyZXR1cm4gdGhp cy49CnByb3h5LmdldE1vbnRoKCl9O2FnLnByb3RvdHlwZS5nZXRNb250aE5hbWU9M0RmdW5jdGlv bigpe3JldHVybiBhZy5yZWdpb25hbD0KW3RoaXMubG9jYWxlXVsibW9udGhOYW1lcyJdW3RoaXMu cHJveHkuZ2V0TW9udGgoKV19O2FnLnByb3RvdHlwZS5nZXRNb250aE51PQptYmVyPTNEZnVuY3Rp b24oKXtyZXR1cm4gdGhpcy5wcm94eS5nZXRNb250aCgpKzF9O2FnLnByb3RvdHlwZS5nZXRTZWNv bmRzPQo9M0RmdW5jdGlvbigpe3JldHVybiB0aGlzLnByb3h5LmdldFNlY29uZHMoKX07YWcucHJv dG90eXBlLmdldFNob3J0WWVhcj0zRGY9CnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcm94eS5nZXRZ ZWFyKCklMTAwfTthZy5wcm90b3R5cGUuZ2V0VGltZT0zRGZ1bmN0aW9uKD0KKXtyZXR1cm4gdGhp cy5wcm94eS5nZXRUaW1lKCl9O2FnLnByb3RvdHlwZS5nZXRUaW1lem9uZUFiYnI9M0RmdW5jdGlv bigpe3JlPQp0dXJuIHRoaXMucHJveHkudG9TdHJpbmcoKS5yZXBsYWNlKC9eLipcKChbXildKylc KSQvLCIkMSIpfTthZy5wcm90b3R5cGUuZ2U9CnRUaW1lem9uZU5hbWU9M0RmdW5jdGlvbigpe3Zh ciBhaD0zRC8oPzpcKCguKylcKSR8IChbQS1aXXszfSkgKS8uZXhlYyh0aGlzLj0KdG9TdHJpbmco KSk7cmV0dXJuIGFoWzFdfHxhaFsyXXx8IkdNVCIrdGhpcy5nZXRHbXRPZmZzZXQoKX07YWcucHJv dG90eXBlLmdlPQp0VGltZXpvbmVPZmZzZXQ9M0RmdW5jdGlvbigpe3JldHVybiB0aGlzLnByb3h5 LmdldFRpbWV6b25lT2Zmc2V0KCl9O2FnLnByb3Q9Cm90eXBlLmdldFdlZWtPZlllYXI9M0RmdW5j dGlvbigpe3ZhciBhaD0zRHRoaXMuZ2V0RGF5T2ZZZWFyKCk7dmFyIGFqPTNENy10aD0KaXMuZ2V0 RGF5T2ZXZWVrKCk7dmFyIGFpPTNEcGFyc2VJbnQoKGFoK2FqKS83LDEwKTtyZXR1cm4gYWl9O2Fn LnByb3RvdHlwZS5nPQpldFVuaXg9M0RmdW5jdGlvbigpe3JldHVybiBNYXRoLnJvdW5kKHRoaXMu cHJveHkuZ2V0VGltZSgpLzEwMDAsMCl9O2FnLnByb3Q9Cm90eXBlLmdldFllYXI9M0RmdW5jdGlv bigpe3JldHVybiB0aGlzLnByb3h5LmdldFllYXIoKX07YWcucHJvdG90eXBlLm5leHQ9Cj0zRGZ1 bmN0aW9uKGFoKXthaD0zRGFofHwiZGF5IjtyZXR1cm4gdGhpcy5jbG9uZSgpLmFkZCgxLGFoKX07 YWcucHJvdG90eXBlLj0Kc2V0PTNEZnVuY3Rpb24oKXtzd2l0Y2goYXJndW1lbnRzLmxlbmd0aCl7 Y2FzZSAwOnRoaXMucHJveHk9M0RuZXcgRGF0ZSgpO2JyPQplYWs7Y2FzZSAxOmlmKGwoYXJndW1l bnRzWzBdKT0zRD0zRCJbb2JqZWN0IE9iamVjdF0iJiZhcmd1bWVudHNbMF0uX3R5cGUhPQo9M0Qi anNEYXRlIil7dmFyIGFqPTNEdGhpcy5vcHRpb25zPTNEYXJndW1lbnRzWzBdO3RoaXMuc3ludGF4 PTNEYWouc3ludGF4fHw9CnRoaXMuc3ludGF4O3RoaXMuZGVmYXVsdENlbnR1cnk9M0Rhai5kZWZh dWx0Q2VudHVyeXx8dGhpcy5kZWZhdWx0Q2VudHVyeTt0aD0KaXMucHJveHk9M0RhZy5jcmVhdGVE YXRlKGFqLmRhdGUpfWVsc2V7dGhpcy5wcm94eT0zRGFnLmNyZWF0ZURhdGUoYXJndW1lbnRzPQpb MF0pfWJyZWFrO2RlZmF1bHQ6dmFyIGFoPTNEW107Zm9yKHZhciBhaT0zRDA7YWk8YXJndW1lbnRz Lmxlbmd0aDthaSsrKXthaC49CnB1c2goYXJndW1lbnRzW2FpXSl9dGhpcy5wcm94eT0zRG5ldyBE YXRlKCk7dGhpcy5wcm94eS5zZXRGdWxsWWVhci5hcHBseSh0aD0KaXMucHJveHksYWguc2xpY2Uo MCwzKSk7aWYoYWguc2xpY2UoMykubGVuZ3RoKXt0aGlzLnByb3h5LnNldEhvdXJzLmFwcGx5KHRo PQppcy5wcm94eSxhaC5zbGljZSgzKSl9YnJlYWt9cmV0dXJuIHRoaXN9O2FnLnByb3RvdHlwZS5z ZXREYXRlPTNEZnVuY3Rpb24oYWg9Cil7dGhpcy5wcm94eS5zZXREYXRlKGFoKTtyZXR1cm4gdGhp c307YWcucHJvdG90eXBlLnNldEZ1bGxZZWFyPTNEZnVuY3Rpb24oKT0Ke3RoaXMucHJveHkuc2V0 RnVsbFllYXIuYXBwbHkodGhpcy5wcm94eSxhcmd1bWVudHMpO3JldHVybiB0aGlzfTthZy5wcm90 b3R5PQpwZS5zZXRIb3Vycz0zRGZ1bmN0aW9uKCl7dGhpcy5wcm94eS5zZXRIb3Vycy5hcHBseSh0 aGlzLnByb3h5LGFyZ3VtZW50cyk7cmU9CnR1cm4gdGhpc307YWcucHJvdG90eXBlLnNldE1pbGxp c2Vjb25kcz0zRGZ1bmN0aW9uKGFoKXt0aGlzLnByb3h5LnNldE1pbGxpcz0KZWNvbmRzKGFoKTty ZXR1cm4gdGhpc307YWcucHJvdG90eXBlLnNldE1pbnV0ZXM9M0RmdW5jdGlvbigpe3RoaXMucHJv eHkuc2V0PQpNaW51dGVzLmFwcGx5KHRoaXMucHJveHksYXJndW1lbnRzKTtyZXR1cm4gdGhpc307 YWcucHJvdG90eXBlLnNldE1vbnRoPTNEZnU9Cm5jdGlvbigpe3RoaXMucHJveHkuc2V0TW9udGgu YXBwbHkodGhpcy5wcm94eSxhcmd1bWVudHMpO3JldHVybiB0aGlzfTthZy5wcj0Kb3RvdHlwZS5z ZXRTZWNvbmRzPTNEZnVuY3Rpb24oKXt0aGlzLnByb3h5LnNldFNlY29uZHMuYXBwbHkodGhpcy5w cm94eSxhcmd1PQptZW50cyk7cmV0dXJuIHRoaXN9O2FnLnByb3RvdHlwZS5zZXRUaW1lPTNEZnVu Y3Rpb24oYWgpe3RoaXMucHJveHkuc2V0VGltZSg9CmFoKTtyZXR1cm4gdGhpc307YWcucHJvdG90 eXBlLnNldFllYXI9M0RmdW5jdGlvbigpe3RoaXMucHJveHkuc2V0WWVhci5hcHBseT0KKHRoaXMu cHJveHksYXJndW1lbnRzKTtyZXR1cm4gdGhpc307YWcucHJvdG90eXBlLnN0cmZ0aW1lPTNEZnVu Y3Rpb24oYWgpe2FoPQo9M0RhaHx8dGhpcy5mb3JtYXRTdHJpbmd8fGFnLnJlZ2lvbmFsW3RoaXMu bG9jYWxlXVsiZm9ybWF0U3RyaW5nIl07cmV0dXJuIGE9Cmcuc3RyZnRpbWUodGhpcyxhaCx0aGlz LnN5bnRheCl9O2FnLnByb3RvdHlwZS50b1N0cmluZz0zRGZ1bmN0aW9uKCl7cmV0dXJuID0KdGhp cy5wcm94eS50b1N0cmluZygpfTthZy5wcm90b3R5cGUudG9ZbWRJbnQ9M0RmdW5jdGlvbigpe3Jl dHVybih0aGlzLnByb3h5PQouZ2V0RnVsbFllYXIoKSoxMDAwMCkrKHRoaXMuZ2V0TW9udGhOdW1i ZXIoKSoxMDApK3RoaXMucHJveHkuZ2V0RGF0ZSgpfTthZy49CnJlZ2lvbmFsPTNEe2VuOnttb250 aE5hbWVzOlsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bj0K ZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNl bWJlciJdLG1vbnRoTmFtZXNTPQpob3J0OlsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5Iiwi SnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGU9CmMiXSxkYXlOYW1lczpbIlN1 bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIs Ij0KU2F0dXJkYXkiXSxkYXlOYW1lc1Nob3J0OlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1 IiwiRnJpIiwiU2F0Il0sZm9ybWF0PQpTdHJpbmc6IiVZLSVtLSVkICVIOiVNOiVTIn0sZnI6e21v bnRoTmFtZXM6WyJKYW52aWVyIiwiRj1DMz1BOXZyaWVyIiwiTWFycyI9CiwiQXZyaWwiLCJNYWki LCJKdWluIiwiSnVpbGxldCIsIkFvPUMzPUJCdCIsIlNlcHRlbWJyZSIsIk9jdG9icmUiLCJOb3Zl bWJyZT0KIiwiRD1DMz1BOWNlbWJyZSJdLG1vbnRoTmFtZXNTaG9ydDpbIkphbiIsIkY9QzM9QTl2 IiwiTWFyIiwiQXZyIiwiTWFpIiwiSnVuPQoiLCJKdWwiLCJBbz1DMz1CQiIsIlNlcCIsIk9jdCIs Ik5vdiIsIkQ9QzM9QTljIl0sZGF5TmFtZXM6WyJEaW1hbmNoZSIsIkx1bmQ9CmkiLCJNYXJkaSIs Ik1lcmNyZWRpIiwiSmV1ZGkiLCJWZW5kcmVkaSIsIlNhbWVkaSJdLGRheU5hbWVzU2hvcnQ6WyJE aW0iLCJMdT0KbiIsIk1hciIsIk1lciIsIkpldSIsIlZlbiIsIlNhbSJdLGZvcm1hdFN0cmluZzoi JVktJW0tJWQgJUg6JU06JVMifSxkZTp7bW9uPQp0aE5hbWVzOlsiSmFudWFyIiwiRmVicnVhciIs Ik09QzM9QTRyeiIsIkFwcmlsIiwiTWFpIiwiSnVuaSIsIkp1bGkiLCJBdWd1c3Q9CiIsIlNlcHRl bWJlciIsIk9rdG9iZXIiLCJOb3ZlbWJlciIsIkRlemVtYmVyIl0sbW9udGhOYW1lc1Nob3J0Olsi SmFuIiwiRmViIj0KLCJNPUMzPUE0ciIsIkFwciIsIk1haSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNl cCIsIk9rdCIsIk5vdiIsIkRleiJdLGRheU5hbWVzPQo6WyJTb25udGFnIiwiTW9udGFnIiwiRGll bnN0YWciLCJNaXR0d29jaCIsIkRvbm5lcnN0YWciLCJGcmVpdGFnIiwiU2Ftc3RhZyI9Cl0sZGF5 TmFtZXNTaG9ydDpbIlNvIiwiTW8iLCJEaSIsIk1pIiwiRG8iLCJGciIsIlNhIl0sZm9ybWF0U3Ry aW5nOiIlWS0lbS0lZD0KICVIOiVNOiVTIn0sZXM6e21vbnRoTmFtZXM6WyJFbmVybyIsIkZlYnJl cm8iLCJNYXJ6byIsIkFicmlsIiwiTWF5byIsIkp1bmlvPQoiLCJKdWxpbyIsIkFnb3N0byIsIlNl cHRpZW1icmUiLCJPY3R1YnJlIiwiTm92aWVtYnJlIiwiRGljaWVtYnJlIl0sbW9udGhOYW09CmVz U2hvcnQ6WyJFbmUiLCJGZWIiLCJNYXIiLCJBYnIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBZ28iLCJT ZXAiLCJPY3QiLCJOb3YiLD0KIkRpYyJdLGRheU5hbWVzOlsiRG9taW5nbyIsIkx1bmVzIiwiTWFy dGVzIiwiTWkmZWFjdXRlO3Jjb2xlcyIsIkp1ZXZlcyIsIlZpPQplcm5lcyIsIlMmYWFjdXRlO2Jh ZG8iXSxkYXlOYW1lc1Nob3J0OlsiRG9tIiwiTHVuIiwiTWFyIiwiTWkmZWFjdXRlOyIsIkp1diI9 CiwiVmllIiwiUyZhYWN1dGU7YiJdLGZvcm1hdFN0cmluZzoiJVktJW0tJWQgJUg6JU06JVMifSxy dTp7bW9udGhOYW1lczpbIj1EMD0KPUFGPUQwPUJEPUQwPUIyPUQwPUIwPUQxPTgwPUQxPThDIiwi PUQwPUE0PUQwPUI1PUQwPUIyPUQxPTgwPUQwPUIwPUQwPUJCPUQxPQo9OEMiLCI9RDA9OUM9RDA9 QjA9RDE9ODA9RDE9ODIiLCI9RDA9OTA9RDA9QkY9RDE9ODA9RDA9QjU9RDA9QkI9RDE9OEMiLCI9 RDA9Cj05Qz1EMD1CMD1EMD1COSIsIj1EMD05OD1EMT04RT1EMD1CRD1EMT04QyIsIj1EMD05OD1E MT04RT1EMD1CQj1EMT04QyIsIj1EMD0KPTkwPUQwPUIyPUQwPUIzPUQxPTgzPUQxPTgxPUQxPTgy IiwiPUQwPUExPUQwPUI1PUQwPUJEPUQxPTgyPUQxPThGPUQwPUIxPUQxPQo9ODA9RDE9OEMiLCI9 RDA9OUU9RDA9QkE9RDE9ODI9RDE9OEY9RDA9QjE9RDE9ODA9RDE9OEMiLCI9RDA9OUQ9RDA9QkU9 RDE9OEY9Cj1EMD1CMT1EMT04MD1EMT04QyIsIj1EMD05ND1EMD1CNT1EMD1CQT1EMD1CMD1EMD1C MT1EMT04MD1EMT04QyJdLG1vbnRoTmFtZT0Kc1Nob3J0OlsiPUQwPUFGPUQwPUJEPUQwPUIyIiwi PUQwPUE0PUQwPUI1PUQwPUIyIiwiPUQwPTlDPUQwPUIwPUQxPTgwIiwiPUQwPQo9OTA9RDA9QkY9 RDE9ODAiLCI9RDA9OUM9RDA9QjA9RDA9QjkiLCI9RDA9OTg9RDE9OEU9RDA9QkQiLCI9RDA9OTg9 RDE9OEU9RDA9Cj1CQiIsIj1EMD05MD1EMD1CMj1EMD1CMyIsIj1EMD1BMT1EMD1CNT1EMD1CRCIs Ij1EMD05RT1EMD1CQT1EMT04MiIsIj1EMD05RD0KPUQwPUJFPUQxPThGIiwiPUQwPTk0PUQwPUI1 PUQwPUJBIl0sZGF5TmFtZXM6WyI9RDA9QjI9RDA9QkU9RDE9ODE9RDA9QkE9RDE9Cj04MD1EMD1C NT1EMT04MT1EMD1CNT1EMD1CRD1EMT04Qz1EMD1CNSIsIj1EMD1CRj1EMD1CRT1EMD1CRD1EMD1C NT1EMD1CND1EMD0KPUI1PUQwPUJCPUQxPThDPUQwPUJEPUQwPUI4PUQwPUJBIiwiPUQwPUIyPUQx PTgyPUQwPUJFPUQxPTgwPUQwPUJEPUQwPUI4PUQwPQo9QkEiLCI9RDE9ODE9RDE9ODA9RDA9QjU9 RDA9QjQ9RDA9QjAiLCI9RDE9ODc9RDA9QjU9RDE9ODI9RDA9QjI9RDA9QjU9RDE9ODA9Cj1EMD1C MyIsIj1EMD1CRj1EMT04Rj1EMT04Mj1EMD1CRD1EMD1COD1EMT04Nj1EMD1CMCIsIj1EMT04MT1E MT04Mz1EMD1CMT1EMD0KPUIxPUQwPUJFPUQxPTgyPUQwPUIwIl0sZGF5TmFtZXNTaG9ydDpbIj1E MD1CMj1EMT04MT1EMD1CQSIsIj1EMD1CRj1EMD1CRD0KPUQwPUI0IiwiPUQwPUIyPUQxPTgyPUQx PTgwIiwiPUQxPTgxPUQxPTgwPUQwPUI0IiwiPUQxPTg3PUQxPTgyPUQwPUIyIiwiPUQwPQo9QkY9 RDE9ODI9RDA9QkQiLCI9RDE9ODE9RDA9QjE9RDE9ODIiXSxmb3JtYXRTdHJpbmc6IiVZLSVtLSVk ICVIOiVNOiVTIn0sYXI9Cjp7bW9udGhOYW1lczpbIj1EOT04Mz1EOD1BNz1EOT04Nj1EOT04OD1E OT04NiA9RDg9QTc9RDk9ODQ9RDg9QUI9RDg9QTc9RDk9Cj04Nj1EOT04QSIsIj1EOD1CND1EOD1B OD1EOD1BNz1EOD1CNyIsIj1EOD1BMj1EOD1CMD1EOD1BNz1EOD1CMSIsIj1EOT04Nj1EOT0KPThB PUQ4PUIzPUQ4PUE3PUQ5PTg2IiwiPUQ4PUEyPUQ4PUIwPUQ4PUE3PUQ4PUIxIiwiPUQ4PUFEPUQ4 PUIyPUQ5PThBPUQ4PUIxPQo9RDg9QTc9RDk9ODYiLCI9RDg9QUE9RDk9ODU9RDk9ODg9RDg9QjIi LCI9RDg9QTI9RDg9QTgiLCI9RDg9QTM9RDk9OEE9RDk9ODQ9Cj1EOT04OD1EOT04NCIsIj1EOD1B QT1EOD1CND1EOD1CMT1EOT04QT1EOT04NiA9RDg9QTc9RDk9ODQ9RDg9QTM9RDk9ODg9RDk9Cj04 NCIsIj1EOD1BQT1EOD1CND1EOD1CMT1EOT04QT1EOT04NiA9RDg9QTc9RDk9ODQ9RDg9QUI9RDg9 QTc9RDk9ODY9RDk9OEEiLD0KIj1EOT04Mz1EOD1BNz1EOT04Nj1EOT04OD1EOT04NiA9RDg9QTc9 RDk9ODQ9RDg9QTM9RDk9ODg9RDk9ODQiXSxtb250aE5hbWVzPQpTaG9ydDpbIjEiLCIyIiwiMyIs IjQiLCI1IiwiNiIsIjciLCI4IiwiOSIsIjEwIiwiMTEiLCIxMiJdLGRheU5hbWVzOlsiPUQ4PQo9 QTc9RDk9ODQ9RDg9QjM9RDg9QTg9RDg9QUEiLCI9RDg9QTc9RDk9ODQ9RDg9QTM9RDg9QUQ9RDg9 QUYiLCI9RDg9QTc9RDk9ODQ9Cj1EOD1BNz1EOD1BQj1EOT04Nj1EOT04QT1EOT04NiIsIj1EOD1B Nz1EOT04ND1EOD1BQj1EOT04ND1EOD1BNz1EOD1BQj1EOD1BNz0KPUQ4PUExIiwiPUQ4PUE3PUQ5 PTg0PUQ4PUEzPUQ4PUIxPUQ4PUE4PUQ4PUI5PUQ4PUE3PUQ4PUExIiwiPUQ4PUE3PUQ5PTg0PUQ4 PQo9QUU9RDk9ODU9RDk9OEE9RDg9QjMiLCI9RDg9QTc9RDk9ODQ9RDg9QUM9RDk9ODU9RDg9Qjk9 RDg9QTkiXSxkYXlOYW1lc1Nob3I9CnQ6WyI9RDg9QjM9RDg9QTg9RDg9QUEiLCI9RDg9QTM9RDg9 QUQ9RDg9QUYiLCI9RDg9QTc9RDg9QUI9RDk9ODY9RDk9OEE9RDk9Cj04NiIsIj1EOD1BQj1EOT04 ND1EOD1BNz1EOD1BQj1EOD1BNz1EOD1BMSIsIj1EOD1BMz1EOD1CMT1EOD1BOD1EOD1COT1EOD1B Nz0KPUQ4PUExIiwiPUQ4PUFFPUQ5PTg1PUQ5PThBPUQ4PUIzIiwiPUQ4PUFDPUQ5PTg1PUQ4PUI5 PUQ4PUE5Il0sZm9ybWF0U3RyaW5nPQo6IiVZLSVtLSVkICVIOiVNOiVTIn0scHQ6e21vbnRoTmFt ZXM6WyJKYW5laXJvIiwiRmV2ZXJlaXJvIiwiTWFyJmNjZWRpbDtvIiw9CiJBYnJpbCIsIk1haW8i LCJKdW5obyIsIkp1bGhvIiwiQWdvc3RvIiwiU2V0ZW1icm8iLCJPdXR1YnJvIiwiTm92ZW1icm8i LCJEZT0KemVtYnJvIl0sbW9udGhOYW1lc1Nob3J0OlsiSmFuIiwiRmV2IiwiTWFyIiwiQWJyIiwi TWFpIiwiSnVuIiwiSnVsIiwiQWdvIiwiPQpTZXQiLCJPdXQiLCJOb3YiLCJEZXoiXSxkYXlOYW1l czpbIkRvbWluZ28iLCJTZWd1bmRhLWZlaXJhIiwiVGVyJmNjZWRpbDthLWY9CmVpcmEiLCJRdWFy dGEtZmVpcmEiLCJRdWludGEtZmVpcmEiLCJTZXh0YS1mZWlyYSIsIlMmYWFjdXRlO2JhZG8iXSxk YXlOYW1lcz0KU2hvcnQ6WyJEb20iLCJTZWciLCJUZXIiLCJRdWEiLCJRdWkiLCJTZXgiLCJTJmFh Y3V0ZTtiIl0sZm9ybWF0U3RyaW5nOiIlWS0lPQptLSVkICVIOiVNOiVTIn0sInB0LUJSIjp7bW9u dGhOYW1lczpbIkphbmVpcm8iLCJGZXZlcmVpcm8iLCJNYXImY2NlZGlsO28iLCI9CkFicmlsIiwi TWFpbyIsIkp1bmhvIiwiSnVsaG8iLCJBZ29zdG8iLCJTZXRlbWJybyIsIk91dHVicm8iLCJOb3Zl bWJybyIsIkRlej0KZW1icm8iXSxtb250aE5hbWVzU2hvcnQ6WyJKYW4iLCJGZXYiLCJNYXIiLCJB YnIiLCJNYWkiLCJKdW4iLCJKdWwiLCJBZ28iLCJTPQpldCIsIk91dCIsIk5vdiIsIkRleiJdLGRh eU5hbWVzOlsiRG9taW5nbyIsIlNlZ3VuZGEtZmVpcmEiLCJUZXImY2NlZGlsO2EtZmU9CmlyYSIs IlF1YXJ0YS1mZWlyYSIsIlF1aW50YS1mZWlyYSIsIlNleHRhLWZlaXJhIiwiUyZhYWN1dGU7YmFk byJdLGRheU5hbWVzUz0KaG9ydDpbIkRvbSIsIlNlZyIsIlRlciIsIlF1YSIsIlF1aSIsIlNleCIs IlMmYWFjdXRlO2IiXSxmb3JtYXRTdHJpbmc6IiVZLSVtPQotJWQgJUg6JU06JVMifSxwbDp7bW9u dGhOYW1lczpbIlN0eWN6ZT1DNT04NCIsIkx1dHkiLCJNYXJ6ZWMiLCJLd2llY2llPUM1PQo9ODQi LCJNYWoiLCJDemVyd2llYyIsIkxpcGllYyIsIlNpZXJwaWU9QzU9ODQiLCJXcnplc2llPUM1PTg0 IiwiUGE9QzU9QkFkemk9CmVybmlrIiwiTGlzdG9wYWQiLCJHcnVkemllPUM1PTg0Il0sbW9udGhO YW1lc1Nob3J0OlsiU3R5IiwiTHV0IiwiTWFyIiwiS3dpIj0KLCJNYWoiLCJDemUiLCJMaXAiLCJT aWUiLCJXcnoiLCJQYT1DNT1CQSIsIkxpcyIsIkdydSJdLGRheU5hbWVzOlsiTmllZHppZWxhPQoi LCJQb25pZWR6aWE9QzU9ODJlayIsIld0b3JlayIsIj1DNT05QXJvZGEiLCJDendhcnRlayIsIlBp PUM0PTg1dGVrIiwiU29ib3Q9CmEiXSxkYXlOYW1lc1Nob3J0OlsiTmkiLCJQbiIsIld0IiwiPUM1 PTlBciIsIkN6IiwiUHQiLCJTYiJdLGZvcm1hdFN0cmluZzoiJT0KWS0lbS0lZCAlSDolTTolUyJ9 LG5sOnttb250aE5hbWVzOlsiSmFudWFyaSIsIkZlYnJ1YXJpIiwiTWFhcnQiLCJBcHJpbCIsIk1l PQppIiwiSnVuaSIsIkp1bHkiLCJBdWd1c3R1cyIsIlNlcHRlbWJlciIsIk9rdG9iZXIiLCJOb3Zl bWJlciIsIkRlY2VtYmVyIl0sbW89Cm50aE5hbWVzU2hvcnQ6WyJKYW4iLCJGZWIiLCJNYXIiLCJB cHIiLCJNZWkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPa3QiLD0KIk5vdiIsIkRlYyJdLGRh eU5hbWVzOiIsIlsiWm9uZGFnIiwiTWFhbmRhZyIsIkRpbnNkYWciLCJXb2Vuc2RhZyIsIkRvbmRl cmRhPQpnIiwiVnJpamRhZyIsIlphdGVyZGFnIl0sZGF5TmFtZXNTaG9ydDpbIlpvIiwiTWEiLCJE aSIsIldvIiwiRG8iLCJWciIsIlphIl09Cixmb3JtYXRTdHJpbmc6IiVZLSVtLSVkICVIOiVNOiVT In0sc3Y6e21vbnRoTmFtZXM6WyJqYW51YXJpIiwiZmVicnVhcmkiLCJtYT0KcnMiLCJhcHJpbCIs Im1haiIsImp1bmkiLCJqdWxpIiwiYXVndXN0aSIsInNlcHRlbWJlciIsIm9rdG9iZXIiLCJub3Zl bWJlciIsPQoiZGVjZW1iZXIiXSxtb250aE5hbWVzU2hvcnQ6WyJqYW4iLCJmZWIiLCJtYXIiLCJh cHIiLCJtYWoiLCJqdW4iLCJqdWwiLCJhdWc9CiIsInNlcCIsIm9rdCIsIm5vdiIsImRlYyJdLGRh eU5hbWVzOlsicz1DMz1CNm5kYWciLCJtPUMzPUE1bmRhZyIsInRpc2RhZyIsIj0Kb25zZGFnIiwi dG9yc2RhZyIsImZyZWRhZyIsImw9QzM9QjZyZGFnIl0sZGF5TmFtZXNTaG9ydDpbInM9QzM9QjZu IiwibT1DMz0KPUE1biIsInRpcyIsIm9ucyIsInRvciIsImZyZSIsImw9QzM9QjZyIl0sZm9ybWF0 U3RyaW5nOiIlWS0lbS0lZCAlSDolTTolUyJ9PQp9O2FnLnJlZ2lvbmFsWyJlbi1VUyJdPTNEYWcu cmVnaW9uYWxbImVuLUdCIl09M0RhZy5yZWdpb25hbC5lbjthZy5yZWdpb25hbC49CmdldExvY2Fs ZT0zRGZ1bmN0aW9uKCl7dmFyIGFoPTNEYWcuY29uZmlnLmRlZmF1bHRMb2NhbGU7aWYoZG9jdW1l bnQmJmRvY3VtZT0KbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImh0bWwiKSYmZG9jdW1lbnQuZ2V0 RWxlbWVudHNCeVRhZ05hbWUoImh0bWwiKVswXS5sPQphbmcpe2FoPTNEZG9jdW1lbnQuZ2V0RWxl bWVudHNCeVRhZ05hbWUoImh0bWwiKVswXS5sYW5nO2lmKCFhZy5yZWdpb25hbC5oYXM9Ck93blBy b3BlcnR5KGFoKSl7YWg9M0RhZy5jb25maWcuZGVmYXVsdExvY2FsZX19cmV0dXJuIGFofTt2YXIg Qz0zRDI0KjYwKjYwKj0KMTAwMDt2YXIgTj0zRGZ1bmN0aW9uKGFoLGFrKXthaD0zRFN0cmluZyhh aCk7dmFyIGFpPTNEYWstYWgubGVuZ3RoO3ZhciBhaj0KPTNEU3RyaW5nKE1hdGgucG93KDEwLGFp KSkuc2xpY2UoMSk7cmV0dXJuIGFqLmNvbmNhdChhaCl9O3ZhciBFPTNEe21pbGxpc2VjPQpvbmQ6 MSxzZWNvbmQ6MTAwMCxtaW51dGU6NjAqMTAwMCxob3VyOjYwKjYwKjEwMDAsZGF5OkMsd2Vlazo3 KkMsbW9udGg6e2FkZDo9CmZ1bmN0aW9uKGFqLGFoKXtFLnllYXIuYWRkKGFqLE1hdGhbYWg+MD8i Zmxvb3IiOiJjZWlsIl0oYWgvMTIpKTt2YXIgYWk9M0Rhaj0KLmdldE1vbnRoKCkrKGFoJTEyKTtp ZihhaT0zRD0zRDEyKXthaT0zRDA7YWouc2V0WWVhcihhai5nZXRGdWxsWWVhcigpKzEpfWVsPQpz ZXtpZihhaT0zRD0zRC0xKXthaT0zRDExO2FqLnNldFllYXIoYWouZ2V0RnVsbFllYXIoKS0xKX19 YWouc2V0TW9udGgoYWkpfSw9CmRpZmY6ZnVuY3Rpb24oYWwsYWope3ZhciBhaD0zRGFsLmdldEZ1 bGxZZWFyKCktYWouZ2V0RnVsbFllYXIoKTt2YXIgYWk9M0RhbD0KLmdldE1vbnRoKCktYWouZ2V0 TW9udGgoKSsoYWgqMTIpO3ZhciBhaz0zRGFsLmdldERhdGUoKS1hai5nZXREYXRlKCk7cmV0dXJu PQogYWkrKGFrLzMwKX19LHllYXI6e2FkZDpmdW5jdGlvbihhaSxhaCl7YWkuc2V0WWVhcihhaS5n ZXRGdWxsWWVhcigpK01hdGhbYWg9Cj4wPyJmbG9vciI6ImNlaWwiXShhaCkpfSxkaWZmOmZ1bmN0 aW9uKGFpLGFoKXtyZXR1cm4gRS5tb250aC5kaWZmKGFpLGFoKS8xMj0KfX19O2Zvcih2YXIgWSBp biBFKXtpZihZLnN1YnN0cmluZyhZLmxlbmd0aC0xKSE9M0QicyIpe0VbWSsicyJdPTNERVtZXX19 dmFyPQogSD0zRGZ1bmN0aW9uKGFsLGFrLGFpKXtpZihhZy5mb3JtYXRzW2FpXVsic2hvcnRjdXRz Il1bYWtdKXtyZXR1cm4gYWcuc3RyZnQ9CmltZShhbCxhZy5mb3JtYXRzW2FpXVsic2hvcnRjdXRz Il1bYWtdLGFpKX1lbHNle3ZhciBhaD0zRChhZy5mb3JtYXRzW2FpXVsiYz0Kb2RlcyJdW2FrXXx8 IiIpLnNwbGl0KCIuIik7dmFyIGFqPTNEYWxbImdldCIrYWhbMF1dP2FsWyJnZXQiK2FoWzBdXSgp OiIiO2lmPQooYWhbMV0pe2FqPTNETihhaixhaFsxXSl9cmV0dXJuIGFqfX07YWcuc3RyZnRpbWU9 M0RmdW5jdGlvbihhbixhayxhaixhbyl7dmE9CnIgYWk9M0QicGVybCI7dmFyIGFtPTNEYWcucmVn aW9uYWwuZ2V0TG9jYWxlKCk7aWYoYWomJmFnLmZvcm1hdHMuaGFzT3duUHJvcD0KZXJ0eShhaikp e2FpPTNEYWp9ZWxzZXtpZihhaiYmYWcucmVnaW9uYWwuaGFzT3duUHJvcGVydHkoYWopKXthbT0z RGFqfX1pZihhPQpvJiZhZy5mb3JtYXRzLmhhc093blByb3BlcnR5KGFvKSl7YWk9M0Rhb31lbHNl e2lmKGFvJiZhZy5yZWdpb25hbC5oYXNPd25Qcm89CnBlcnR5KGFvKSl7YW09M0Rhb319aWYobChh bikhPTNEIltvYmplY3QgT2JqZWN0XSJ8fGFuLl90eXBlIT0zRCJqc0RhdGUiKXthbj0KPTNEbmV3 IGFnKGFuKTthbi5sb2NhbGU9M0RhbX1pZighYWspe2FrPTNEYW4uZm9ybWF0U3RyaW5nfHxhZy5y ZWdpb25hbFthbV1bPQoiZm9ybWF0U3RyaW5nIl19dmFyIGFoPTNEYWt8fCIlWS0lbS0lZCIsYXA9 M0QiIixhbDt3aGlsZShhaC5sZW5ndGg+MCl7aWYoYWw9Cj0zRGFoLm1hdGNoKGFnLmZvcm1hdHNb YWldLmNvZGVzLm1hdGNoZXIpKXthcCs9M0RhaC5zbGljZSgwLGFsLmluZGV4KTthcCs9Cj0zRChh bFsxXXx8IiIpK0goYW4sYWxbMl0sYWkpO2FoPTNEYWguc2xpY2UoYWwuaW5kZXgrYWxbMF0ubGVu Z3RoKX1lbHNle2FwKz0KPTNEYWg7YWg9M0QiIn19cmV0dXJuIGFwfTthZy5mb3JtYXRzPTNEe0lT TzoiJVktJW0tJWRUJUg6JU06JVMuJU4lRyIsU1FMOiIlPQpZLSVtLSVkICVIOiVNOiVTIn07YWcu Zm9ybWF0cy5wZXJsPTNEe2NvZGVzOnttYXRjaGVyOi8oKSUoIz8oJXxbYS16XSkpL2ksWTo9CiJG dWxsWWVhciIseToiU2hvcnRZZWFyLjIiLG06Ik1vbnRoTnVtYmVyLjIiLCIjbSI6Ik1vbnRoTnVt YmVyIixCOiJNb250aE5hbT0KZSIsYjoiQWJick1vbnRoTmFtZSIsZDoiRGF0ZS4yIiwiI2QiOiJE YXRlIixlOiJEYXRlIixBOiJEYXlOYW1lIixhOiJBYmJyRGF5PQpOYW1lIix3OiJEYXkiLEg6Ikhv dXJzLjIiLCIjSCI6IkhvdXJzIixJOiJIb3VyczEyLjIiLCIjSSI6IkhvdXJzMTIiLHA6IkFNUE09 CiIsTToiTWludXRlcy4yIiwiI00iOiJNaW51dGVzIixTOiJTZWNvbmRzLjIiLCIjUyI6IlNlY29u ZHMiLHM6IlVuaXgiLE46Ik1pbD0KbGlzZWNvbmRzLjMiLCIjTiI6Ik1pbGxpc2Vjb25kcyIsTzoi VGltZXpvbmVPZmZzZXQiLFo6IlRpbWV6b25lTmFtZSIsRzoiR210PQpPZmZzZXQifSxzaG9ydGN1 dHM6e0Y6IiVZLSVtLSVkIixUOiIlSDolTTolUyIsWDoiJUg6JU06JVMiLHg6IiVtLyVkLyV5IixE OiI9CiVtLyVkLyV5IiwiI2MiOiIlYSAlYiAlZSAlSDolTTolUyAlWSIsdjoiJWUtJWItJVkiLFI6 IiVIOiVNIixyOiIlSTolTTolUyAlcD0KIix0OiJcdCIsbjoiXG4iLCIlIjoiJSJ9fTthZy5mb3Jt YXRzLnBocD0zRHtjb2Rlczp7bWF0Y2hlcjovKCklKCglfFthLXpdKSkvPQppLGE6IkFiYnJEYXlO YW1lIixBOiJEYXlOYW1lIixkOiJEYXRlLjIiLGU6IkRhdGUiLGo6IkRheU9mWWVhci4zIix1OiJE YXlPZlc9CmVlayIsdzoiRGF5IixVOiJGdWxsV2Vla09mWWVhci4yIixWOiJJc29XZWVrLjIiLFc6 IldlZWtPZlllYXIuMiIsYjoiQWJick1vbj0KdGhOYW1lIixCOiJNb250aE5hbWUiLG06Ik1vbnRo TnVtYmVyLjIiLGg6IkFiYnJNb250aE5hbWUiLEM6IkNlbnR1cnkuMiIseToiPQpTaG9ydFllYXIu MiIsWToiRnVsbFllYXIiLEg6IkhvdXJzLjIiLEk6IkhvdXJzMTIuMiIsbDoiSG91cnMxMiIscDoi QU1QTSIsUDo9CiJBbVBtIixNOiJNaW51dGVzLjIiLFM6IlNlY29uZHMuMiIsczoiVW5peCIsTzoi VGltZXpvbmVPZmZzZXQiLHo6IkdtdE9mZnNldD0KIixaOiJUaW1lem9uZUFiYnIifSxzaG9ydGN1 dHM6e0Q6IiVtLyVkLyV5IixGOiIlWS0lbS0lZCIsVDoiJUg6JU06JVMiLFg6IiVIPQo6JU06JVMi LHg6IiVtLyVkLyV5IixSOiIlSDolTSIscjoiJUk6JU06JVMgJXAiLHQ6Ilx0IixuOiJcbiIsIiUi OiIlIn19O2FnLmM9CnJlYXRlRGF0ZT0zRGZ1bmN0aW9uKGFqKXtpZihhaj0zRD0zRG51bGwpe3Jl dHVybiBuZXcgRGF0ZSgpfWlmKGFqIGluc3RhbmNlbz0KZiBEYXRlKXtyZXR1cm4gYWp9aWYodHlw ZW9mIGFqPTNEPTNEIm51bWJlciIpe3JldHVybiBuZXcgRGF0ZShhail9dmFyIGFvPTNEPQpTdHJp bmcoYWopLnJlcGxhY2UoL15ccyooLispXHMqJC9nLCIkMSIpO2FvPTNEYW8ucmVwbGFjZSgvXihb MC05XXsxLDR9KS0oWzA9Ci05XXsxLDJ9KS0oWzAtOV17MSw0fSkvLCIkMS8kMi8kMyIpO2FvPTNE YW8ucmVwbGFjZSgvXigzWzAxXXxbMC0yXT9cZClbLVwvXT0KKFthLXpdezMsfSlbLVwvXShcZHs0 fSkvaSwiJDEgJDIgJDMiKTt2YXIgYW49M0Rhby5tYXRjaCgvXigzWzAxXXxbMC0yXT9cZClbPQot XC9dKFthLXpdezMsfSlbLVwvXShcZHsyfSlcRCovaSk7aWYoYW4mJmFuLmxlbmd0aD4zKXt2YXIg YXQ9M0RwYXJzZUZsb2F0KGE9Cm5bM10pO3ZhciBhbT0zRGFnLmNvbmZpZy5kZWZhdWx0Q2VudHVy eSthdDthbT0zRFN0cmluZyhhbSk7YW89M0Rhby5yZXBsYWNlKD0KL14oM1swMV18WzAtMl0/XGQp Wy1cL10oW2Etel17Myx9KVstXC9dKFxkezJ9KVxEKi9pLGFuWzFdKyIgIithblsyXSsiICIrYW0p PQp9YW49M0Rhby5tYXRjaCgvXihbMC05XXsxLDJ9KVstXC9dKFswLTldezEsMn0pWy1cL10oWzAt OV17MSwyfSlbXjAtOV0vKTtmdW49CmN0aW9uIGFyKGF4LGF3KXt2YXIgYUM9M0RwYXJzZUZsb2F0 KGF3WzFdKTt2YXIgYUI9M0RwYXJzZUZsb2F0KGF3WzJdKTt2YXIgYT0KQT0zRHBhcnNlRmxvYXQo YXdbM10pO3ZhciBhej0zRGFnLmNvbmZpZy5kZWZhdWx0Q2VudHVyeTt2YXIgYXYsYXUsYUQsYXk7 aWYoPQphQz4zMSl7YXU9M0RhQTthRD0zRGFCO2F2PTNEYXorYUN9ZWxzZXthdT0zRGFCO2FEPTNE YUM7YXY9M0RheithQX1heT0zRGFEKyI9Ci8iK2F1KyIvIithdjtyZXR1cm4gYXgucmVwbGFjZSgv XihbMC05XXsxLDJ9KVstXC9dKFswLTldezEsMn0pWy1cL10oWzAtOV17MT0KLDJ9KS8sYXkpfWlm KGFuJiZhbi5sZW5ndGg+Myl7YW89M0Rhcihhbyxhbil9dmFyIGFuPTNEYW8ubWF0Y2goL14oWzAt OV17MSwyPQp9KVstXC9dKFswLTldezEsMn0pWy1cL10oWzAtOV17MSwyfSkkLyk7aWYoYW4mJmFu Lmxlbmd0aD4zKXthbz0zRGFyKGFvLGFuKX09CnZhciBhbD0zRDA7dmFyIGFpPTNEYWcubWF0Y2hl cnMubGVuZ3RoO3ZhciBhcSxhaCxhcD0zRGFvLGFrO3doaWxlKGFsPGFpKXthaD0KPTNERGF0ZS5w YXJzZShhcCk7aWYoIWlzTmFOKGFoKSl7cmV0dXJuIG5ldyBEYXRlKGFoKX1hcT0zRGFnLm1hdGNo ZXJzW2FsXTtpPQpmKHR5cGVvZiBhcT0zRD0zRCJmdW5jdGlvbiIpe2FrPTNEYXEuY2FsbChhZyxh cCk7aWYoYWsgaW5zdGFuY2VvZiBEYXRlKXtyZXQ9CnVybiBha319ZWxzZXthcD0zRGFvLnJlcGxh Y2UoYXFbMF0sYXFbMV0pfWFsKyt9cmV0dXJuIE5hTn07YWcuZGF5c0luTW9udGg9Cj0zRGZ1bmN0 aW9uKGFoLGFpKXtpZihhaT0zRD0zRDIpe3JldHVybiBuZXcgRGF0ZShhaCwxLDI5KS5nZXREYXRl KCk9M0Q9M0QyOT0KPzI5OjI4fXJldHVyblt1LDMxLHUsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEs MzAsMzFdW2FpXX07YWcubWF0Y2hlcnM9M0RbWy8oPQozWzAxXXxbMC0yXVxkKVxzKlwuXHMqKDFb MC0yXXwwXGQpXHMqXC5ccyooWzEtOV1cZHszfSkvLCIkMi8kMS8kMyJdLFsvKFsxLTk9Cl1cZHsz fSlccyotXHMqKDFbMC0yXXwwXGQpXHMqLVxzKigzWzAxXXxbMC0yXVxkKS8sIiQyLyQzLyQxIl0s ZnVuY3Rpb24oYWspez0KdmFyIGFpPTNEYWsubWF0Y2goL14oPzooLispXHMrKT8oWzAxMl0/XGQp KD86XHMqXDpccyooXGRcZCkpPyg/OlxzKlw6XHMqKFxkPQpcZChcLlxkKik/KSk/XHMqKGFtfHBt KT9ccyokL2kpO2lmKGFpKXtpZihhaVsxXSl7dmFyIGFqPTNEdGhpcy5jcmVhdGVEYXRlKGE9Cmlb MV0pO2lmKGlzTmFOKGFqKSl7cmV0dXJufX1lbHNle3ZhciBhaj0zRG5ldyBEYXRlKCk7YWouc2V0 TWlsbGlzZWNvbmRzKDApfT0KdmFyIGFoPTNEcGFyc2VGbG9hdChhaVsyXSk7aWYoYWlbNl0pe2Fo PTNEYWlbNl0udG9Mb3dlckNhc2UoKT0zRD0zRCJhbSI/KGFoPQo9M0Q9M0QxMj8wOmFoKTooYWg9 M0Q9M0QxMj8xMjphaCsxMil9YWouc2V0SG91cnMoYWgscGFyc2VJbnQoYWlbM118fDAsMTApLHA9 CmFyc2VJbnQoYWlbNF18fDAsMTApLCgocGFyc2VGbG9hdChhaVs1XXx8MCkpfHwwKSoxMDAwKTty ZXR1cm4gYWp9ZWxzZXtyZXR1cj0KbiBha319LGZ1bmN0aW9uKGFrKXt2YXIgYWk9M0Rhay5tYXRj aCgvXig/OiguKykpW1R8XHMrXShbMDEyXVxkKSg/Olw6KFxkXGQpPQopKD86XDooXGRcZCkpKD86 XC5cZCspKFtcK1wtXVxkXGRcOlxkXGQpJC9pKTtpZihhaSl7aWYoYWlbMV0pe3ZhciBhaj0zRHRo aXM9Ci5jcmVhdGVEYXRlKGFpWzFdKTtpZihpc05hTihhaikpe3JldHVybn19ZWxzZXt2YXIgYWo9 M0RuZXcgRGF0ZSgpO2FqLnNldE1pbD0KbGlzZWNvbmRzKDApfXZhciBhaD0zRHBhcnNlRmxvYXQo YWlbMl0pO2FqLnNldEhvdXJzKGFoLHBhcnNlSW50KGFpWzNdLDEwKSxwPQphcnNlSW50KGFpWzRd LDEwKSxwYXJzZUZsb2F0KGFpWzVdKSoxMDAwKTtyZXR1cm4gYWp9ZWxzZXtyZXR1cm4gYWt9fSxm dW5jdGk9Cm9uKGFsKXt2YXIgYWo9M0RhbC5tYXRjaCgvXihbMC0zXT9cZClccypbLVwvLlxzXXsx fVxzKihbYS16QS1aXXszLDl9KVxzKlstXD0KLy5cc117MX1ccyooWzAtM10/XGQpJC8pO2lmKGFq KXt2YXIgYWs9M0RuZXcgRGF0ZSgpO3ZhciBhbT0zRGFnLmNvbmZpZy5kZWZhPQp1bHRDZW50dXJ5 O3ZhciBhbz0zRHBhcnNlRmxvYXQoYWpbMV0pO3ZhciBhbj0zRHBhcnNlRmxvYXQoYWpbM10pO3Zh ciBhaSxhaCw9CmFwO2lmKGFvPjMxKXthaD0zRGFuO2FpPTNEYW0rYW99ZWxzZXthaD0zRGFvO2Fp PTNEYW0rYW59dmFyIGFwPTNEYWIoYWpbMl0sYT0KZy5yZWdpb25hbFthZy5yZWdpb25hbC5nZXRM b2NhbGUoKV1bIm1vbnRoTmFtZXNTaG9ydCJdKTtpZihhcD0zRD0zRC0xKXthcD0KPTNEYWIoYWpb Ml0sYWcucmVnaW9uYWxbYWcucmVnaW9uYWwuZ2V0TG9jYWxlKCldWyJtb250aE5hbWVzIl0pfWFr LnNldEZ1bGxZPQplYXIoYWksYXAsYWgpO2FrLnNldEhvdXJzKDAsMCwwLDApO3JldHVybiBha31l bHNle3JldHVybiBhbH19XTtmdW5jdGlvbiBhYig9CmFqLGFrKXtpZihhay5pbmRleE9mKXtyZXR1 cm4gYWsuaW5kZXhPZihhail9Zm9yKHZhciBhaD0zRDAsYWk9M0Rhay5sZW5ndGg7YT0KaDxhaTth aCsrKXtpZihha1thaF09M0Q9M0Q9M0Rhail7cmV0dXJuIGFofX1yZXR1cm4gLTF9ZnVuY3Rpb24g bChhaCl7aWYoYWg9Cj0zRD0zRD0zRG51bGwpe3JldHVybiJbb2JqZWN0IE51bGxdIn1yZXR1cm4g T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKD0KYWgpfUwuanNEYXRlPTNEYWc7TC5qcXBs b3Quc3ByaW50Zj0zRGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYW4oYXUsYXAsYXEsYXQpe3ZhPQpyIGFy PTNEKGF1Lmxlbmd0aD49M0RhcCk/IiI6QXJyYXkoMSthcC1hdS5sZW5ndGg+Pj4wKS5qb2luKGFx KTtyZXR1cm4gYXQ/YXU9CithcjphcithdX1mdW5jdGlvbiBhayhhcil7dmFyIGFxPTNEbmV3IFN0 cmluZyhhcik7Zm9yKHZhciBhcD0zRDEwO2FwPjA7YXAtLT0KKXtpZihhcT0zRD0zRChhcT0zRGFx LnJlcGxhY2UoL14oXGQrKShcZHszfSkvLCIkMSIrTC5qcXBsb3Quc3ByaW50Zi50aG91c2FuPQpk c1NlcGFyYXRvcisiJDIiKSkpe2JyZWFrfX1yZXR1cm4gYXF9ZnVuY3Rpb24gYWooYXYsYXUsYXgs YXIsYXQsYXEpe3ZhciBhdz0KPTNEYXItYXYubGVuZ3RoO2lmKGF3PjApe3ZhciBhcD0zRCIgIjtp ZihhcSl7YXA9M0QiJm5ic3A7In1pZihheHx8IWF0KXthdj0KPTNEYW4oYXYsYXIsYXAsYXgpfWVs c2V7YXY9M0Rhdi5zbGljZSgwLGF1Lmxlbmd0aCkrYW4oIiIsYXcsIjAiLHRydWUpK2F2LnNsPQpp Y2UoYXUubGVuZ3RoKX19cmV0dXJuIGF2fWZ1bmN0aW9uIGFvKGF5LGFxLGF3LGFyLGFwLGF2LGF4 LGF1KXt2YXIgYXQ9M0RheT49Cj4+MDthdz0zRGF3JiZhdCYmeyIyIjoiMGIiLCI4IjoiMCIsIjE2 IjoiMHgifVthcV18fCIiO2F5PTNEYXcrYW4oYXQudG9TdHJpbj0KZyhhcSksYXZ8fDAsIjAiLGZh bHNlKTtyZXR1cm4gYWooYXksYXcsYXIsYXAsYXgsYXUpfWZ1bmN0aW9uIGFoKGF1LGF2LGFyLGFw PQosYXQsYXEpe2lmKGFwIT0zRG51bGwpe2F1PTNEYXUuc2xpY2UoMCxhcCl9cmV0dXJuIGFqKGF1 LCIiLGF2LGFyLGF0LGFxKX12YXI9CiBhaT0zRGFyZ3VtZW50cyxhbD0zRDAsYW09M0RhaVthbCsr XTtyZXR1cm4gYW0ucmVwbGFjZShMLmpxcGxvdC5zcHJpbnRmLnJlZz0KZXgsZnVuY3Rpb24oYU0s YXgsYXksYUIsYU8sYUosYXYpe2lmKGFNPTNEPTNEIiUlIil7cmV0dXJuIiUifXZhciBhRD0zRGZh bHNlPQosYXo9M0QiIixhQT0zRGZhbHNlLGFMPTNEZmFsc2UsYXc9M0RmYWxzZSxhdT0zRGZhbHNl O2Zvcih2YXIgYUk9M0QwO2F5JiZhSTw9CmF5Lmxlbmd0aDthSSsrKXtzd2l0Y2goYXkuY2hhckF0 KGFJKSl7Y2FzZSIgIjphej0zRCIgIjticmVhaztjYXNlIisiOmF6PTNEIj0KKyI7YnJlYWs7Y2Fz ZSItIjphRD0zRHRydWU7YnJlYWs7Y2FzZSIwIjphQT0zRHRydWU7YnJlYWs7Y2FzZSIjIjphTD0z RHRydWU7PQpicmVhaztjYXNlIiYiOmF3PTNEdHJ1ZTticmVhaztjYXNlIiciOmF1PTNEdHJ1ZTti cmVha319aWYoIWFCKXthQj0zRDB9ZWxzZXs9CmlmKGFCPTNEPTNEIioiKXthQj0zRCthaVthbCsr XX1lbHNle2lmKGFCLmNoYXJBdCgwKT0zRD0zRCIqIil7YUI9M0QrYWlbYUIucz0KbGljZSgxLC0x KV19ZWxzZXthQj0zRCthQn19fWlmKGFCPDApe2FCPTNELWFCO2FEPTNEdHJ1ZX1pZighaXNGaW5p dGUoYUIpKXt0PQpocm93IG5ldyBFcnJvcigiJC5qcXBsb3Quc3ByaW50ZjogKG1pbmltdW0tKXdp ZHRoIG11c3QgYmUgZmluaXRlIil9aWYoIWFKKXs9CmFKPTNEImZGZUUiLmluZGV4T2YoYXYpPi0x PzY6KGF2PTNEPTNEImQiKT8wOnZvaWQgKDApfWVsc2V7aWYoYUo9M0Q9M0QiKiIpez0KYUo9M0Qr YWlbYWwrK119ZWxzZXtpZihhSi5jaGFyQXQoMCk9M0Q9M0QiKiIpe2FKPTNEK2FpW2FKLnNsaWNl KDEsLTEpXX1lbHNlPQp7YUo9M0QrYUp9fX12YXIgYUY9M0RheD9haVtheC5zbGljZSgwLC0xKV06 YWlbYWwrK107c3dpdGNoKGF2KXtjYXNlInMiOmlmKGE9CkY9M0Q9M0RudWxsKXtyZXR1cm4iIn1y ZXR1cm4gYWgoU3RyaW5nKGFGKSxhRCxhQixhSixhQSxhdyk7Y2FzZSJjIjpyZXR1cm4gYT0KaChT dHJpbmcuZnJvbUNoYXJDb2RlKCthRiksYUQsYUIsYUosYUEsYXcpO2Nhc2UiYiI6cmV0dXJuIGFv KGFGLDIsYUwsYUQsYUIsPQphSixhQSxhdyk7Y2FzZSJvIjpyZXR1cm4gYW8oYUYsOCxhTCxhRCxh QixhSixhQSxhdyk7Y2FzZSJ4IjpyZXR1cm4gYW8oYUYsMTY9CixhTCxhRCxhQixhSixhQSxhdyk7 Y2FzZSJYIjpyZXR1cm4gYW8oYUYsMTYsYUwsYUQsYUIsYUosYUEsYXcpLnRvVXBwZXJDYXNlKD0K KTtjYXNlInUiOnJldHVybiBhbyhhRiwxMCxhTCxhRCxhQixhSixhQSxhdyk7Y2FzZSJpIjp2YXIg YXI9M0RwYXJzZUludCgrYUYsPQoxMCk7aWYoaXNOYU4oYXIpKXtyZXR1cm4iIn12YXIgYUg9M0Rh cjwwPyItIjphejt2YXIgYUs9M0RhdT9hayhTdHJpbmcoTWF0aC49CmFicyhhcikpKTpTdHJpbmco TWF0aC5hYnMoYXIpKTthRj0zRGFIK2FuKGFLLGFKLCIwIixmYWxzZSk7cmV0dXJuIGFqKGFGLGFI LD0KYUQsYUIsYUEsYXcpO2Nhc2UiZCI6dmFyIGFyPTNETWF0aC5yb3VuZCgrYUYpO2lmKGlzTmFO KGFyKSl7cmV0dXJuIiJ9dmFyIGFIPQo9M0RhcjwwPyItIjphejt2YXIgYUs9M0RhdT9hayhTdHJp bmcoTWF0aC5hYnMoYXIpKSk6U3RyaW5nKE1hdGguYWJzKGFyKSk7YUY9Cj0zRGFIK2FuKGFLLGFK LCIwIixmYWxzZSk7cmV0dXJuIGFqKGFGLGFILGFELGFCLGFBLGF3KTtjYXNlImUiOmNhc2UiRSI6 Y2FzZT0KImYiOmNhc2UiRiI6Y2FzZSJnIjpjYXNlIkciOnZhciBhcj0zRCthRjtpZihpc05hTihh cikpe3JldHVybiIifXZhciBhSD0zRGFyPQo8MD8iLSI6YXo7dmFyIGF0PTNEWyJ0b0V4cG9uZW50 aWFsIiwidG9GaXhlZCIsInRvUHJlY2lzaW9uIl1bImVmZyIuaW5kZXhPZig9CmF2LnRvTG93ZXJD YXNlKCkpXTt2YXIgYU49M0RbInRvU3RyaW5nIiwidG9VcHBlckNhc2UiXVsiZUVmRmdHIi5pbmRl eE9mKGF2KT0KJTJdO3ZhciBhSz0zRE1hdGguYWJzKGFyKVthdF0oYUopO3ZhciBhRT0zRGFLLnRv U3RyaW5nKCkuc3BsaXQoIi4iKTthRVswXT0KPTNEYXU/YWsoYUVbMF0pOmFFWzBdO2FLPTNEYUUu am9pbihMLmpxcGxvdC5zcHJpbnRmLmRlY2ltYWxNYXJrKTthRj0zRGFIK2FLPQo7dmFyIGFDPTNE YWooYUYsYUgsYUQsYUIsYUEsYXcpW2FOXSgpO3JldHVybiBhQztjYXNlInAiOmNhc2UiUCI6dmFy IGFyPTNEK2E9CkY7aWYoaXNOYU4oYXIpKXtyZXR1cm4iIn12YXIgYUg9M0RhcjwwPyItIjphejt2 YXIgYUU9M0RTdHJpbmcoTnVtYmVyKE1hdGguYT0KYnMoYXIpKS50b0V4cG9uZW50aWFsKCkpLnNw bGl0KC9lfEUvKTt2YXIgYXE9M0QoYUVbMF0uaW5kZXhPZigiLiIpIT0zRC0xKT9hPQpFWzBdLmxl bmd0aC0xOlN0cmluZyhhcikubGVuZ3RoO3ZhciBhRz0zRChhRVsxXTwwKT8tYUVbMV0tMTowO2lm KE1hdGguYWJzKGE9CnIpPDEpe2lmKGFxK2FHPD0zRGFKKXthRj0zRGFIK01hdGguYWJzKGFyKS50 b1ByZWNpc2lvbihhcSl9ZWxzZXtpZihhcTw9M0RhSj0KLTEpe2FGPTNEYUgrTWF0aC5hYnMoYXIp LnRvRXhwb25lbnRpYWwoYXEtMSl9ZWxzZXthRj0zRGFIK01hdGguYWJzKGFyKS50b0V4PQpwb25l bnRpYWwoYUotMSl9fX1lbHNle3ZhciBhcD0zRChhcTw9M0RhSik/YXE6YUo7YUY9M0RhSCtNYXRo LmFicyhhcikudG9QcmU9CmNpc2lvbihhcCl9dmFyIGFOPTNEWyJ0b1N0cmluZyIsInRvVXBwZXJD YXNlIl1bInBQIi5pbmRleE9mKGF2KSUyXTtyZXR1cm4gYT0KaihhRixhSCxhRCxhQixhQSxhdylb YU5dKCk7Y2FzZSJuIjpyZXR1cm4iIjtkZWZhdWx0OnJldHVybiBhTX19KX07TC5qcXBsb3QuPQpz cHJpbnRmLnRob3VzYW5kc1NlcGFyYXRvcj0zRCIsIjtMLmpxcGxvdC5zcHJpbnRmLmRlY2ltYWxN YXJrPTNEIi4iO0wuanFwbG89CnQuc3ByaW50Zi5yZWdleD0zRC8lJXwlKFxkK1wkKT8oWy0rIzAm XCcgXSopKFwqXGQrXCR8XCp8XGQrKT8oXC4oXCpcZCtcJHxcKj0KfFxkKykpPyhbbkFzY2JveFh1 aWRmZWdwRUdQXSkvZztMLmpxcGxvdC5nZXRTaWduaWZpY2FudEZpZ3VyZXM9M0RmdW5jdGlvbihh PQpsKXt2YXIgYW49M0RTdHJpbmcoTnVtYmVyKE1hdGguYWJzKGFsKSkudG9FeHBvbmVudGlhbCgp KS5zcGxpdCgvZXxFLyk7dmFyIGE9Cm09M0QoYW5bMF0uaW5kZXhPZigiLiIpIT0zRC0xKT9hblsw XS5sZW5ndGgtMTphblswXS5sZW5ndGg7dmFyIGFpPTNEKGFuWzFdPD0KMCk/LWFuWzFdLTE6MDt2 YXIgYWg9M0RwYXJzZUludChhblsxXSwxMCk7dmFyIGFqPTNEKGFoKzE+MCk/YWgrMTowO3ZhciBh az0KPTNEKGFtPD0zRGFqKT8wOmFtLWFoLTE7cmV0dXJue3NpZ25pZmljYW50RGlnaXRzOmFtLGRp Z2l0c0xlZnQ6YWosZGlnaXRzUmlnPQpodDphayx6ZXJvczphaSxleHBvbmVudDphaH19O0wuanFw bG90LmdldFByZWNpc2lvbj0zRGZ1bmN0aW9uKGFoKXtyZXR1cm4gTC49CmpxcGxvdC5nZXRTaWdu aWZpY2FudEZpZ3VyZXMoYWgpLmRpZ2l0c1JpZ2h0fTt2YXIgWD0zREwudWlCYWNrQ29tcGF0IT0z RD0zRD0KZmFsc2U7TC5qcXBsb3QuZWZmZWN0cz0zRHtlZmZlY3Q6e319O3ZhciBtPTNEImpxcGxv dC5zdG9yYWdlLiI7TC5leHRlbmQoTC5qPQpxcGxvdC5lZmZlY3RzLHt2ZXJzaW9uOiIxLjlwcmUi LHNhdmU6ZnVuY3Rpb24oYWksYWope2Zvcih2YXIgYWg9M0QwO2FoPGFqLmw9CmVuZ3RoO2FoKysp e2lmKGFqW2FoXSE9M0Q9M0RudWxsKXthaS5kYXRhKG0rYWpbYWhdLGFpWzBdLnN0eWxlW2FqW2Fo XV0pfX19LD0KcmVzdG9yZTpmdW5jdGlvbihhaSxhail7Zm9yKHZhciBhaD0zRDA7YWg8YWoubGVu Z3RoO2FoKyspe2lmKGFqW2FoXSE9M0Q9M0RuPQp1bGwpe2FpLmNzcyhhalthaF0sYWkuZGF0YSht K2FqW2FoXSkpfX19LHNldE1vZGU6ZnVuY3Rpb24oYWgsYWkpe2lmKGFpPTNEPQo9M0Q9M0QidG9n Z2xlIil7YWk9M0RhaC5pcygiOmhpZGRlbiIpPyJzaG93IjoiaGlkZSJ9cmV0dXJuIGFpfSxjcmVh dGVXcmFwcGU9CnI6ZnVuY3Rpb24oYWkpe2lmKGFpLnBhcmVudCgpLmlzKCIudWktZWZmZWN0cy13 cmFwcGVyIikpe3JldHVybiBhaS5wYXJlbnQoKT0KfXZhciBhaj0zRHt3aWR0aDphaS5vdXRlcldp ZHRoKHRydWUpLGhlaWdodDphaS5vdXRlckhlaWdodCh0cnVlKSwiZmxvYXQiOmFpPQouY3NzKCJm bG9hdCIpfSxhbD0zREwoIjxkaXY+PC9kaXY+IikuYWRkQ2xhc3MoInVpLWVmZmVjdHMtd3JhcHBl ciIpLmNzcyh7Zm89Cm50U2l6ZToiMTAwJSIsYmFja2dyb3VuZDoidHJhbnNwYXJlbnQiLGJvcmRl cjoibm9uZSIsbWFyZ2luOjAscGFkZGluZzowfSksYT0KaD0zRHt3aWR0aDphaS53aWR0aCgpLGhl aWdodDphaS5oZWlnaHQoKX0sYWs9M0Rkb2N1bWVudC5hY3RpdmVFbGVtZW50O2FpLndyPQphcChh bCk7aWYoYWlbMF09M0Q9M0Q9M0Rha3x8TC5jb250YWlucyhhaVswXSxhaykpe0woYWspLmZvY3Vz KCl9YWw9M0RhaS5wYXI9CmVudCgpO2lmKGFpLmNzcygicG9zaXRpb24iKT0zRD0zRD0zRCJzdGF0 aWMiKXthbC5jc3Moe3Bvc2l0aW9uOiJyZWxhdGl2ZSJ9KT0KO2FpLmNzcyh7cG9zaXRpb246InJl bGF0aXZlIn0pfWVsc2V7TC5leHRlbmQoYWose3Bvc2l0aW9uOmFpLmNzcygicG9zaXRpb24iPQop LHpJbmRleDphaS5jc3MoInotaW5kZXgiKX0pO0wuZWFjaChbInRvcCIsImxlZnQiLCJib3R0b20i LCJyaWdodCJdLGZ1bmN0aW89Cm4oYW0sYW4pe2FqW2FuXT0zRGFpLmNzcyhhbik7aWYoaXNOYU4o cGFyc2VJbnQoYWpbYW5dLDEwKSkpe2FqW2FuXT0zRCJhdXRvIj0KfX0pO2FpLmNzcyh7cG9zaXRp b246InJlbGF0aXZlIix0b3A6MCxsZWZ0OjAscmlnaHQ6ImF1dG8iLGJvdHRvbToiYXV0byJ9KX1h PQppLmNzcyhhaCk7cmV0dXJuIGFsLmNzcyhhaikuc2hvdygpfSxyZW1vdmVXcmFwcGVyOmZ1bmN0 aW9uKGFoKXt2YXIgYWk9M0Rkb2M9CnVtZW50LmFjdGl2ZUVsZW1lbnQ7aWYoYWgucGFyZW50KCku aXMoIi51aS1lZmZlY3RzLXdyYXBwZXIiKSl7YWgucGFyZW50KCkucj0KZXBsYWNlV2l0aChhaCk7 aWYoYWhbMF09M0Q9M0Q9M0RhaXx8TC5jb250YWlucyhhaFswXSxhaSkpe0woYWkpLmZvY3VzKCl9 fXJlPQp0dXJuIGFofX0pO2Z1bmN0aW9uIGooYWksYWgsYWosYWspe2lmKEwuaXNQbGFpbk9iamVj dChhaSkpe3JldHVybiBhaX1haT0zRHs9CmVmZmVjdDphaX07aWYoYWg9M0Q9M0Q9M0R1KXthaD0z RHt9fWlmKEwuaXNGdW5jdGlvbihhaCkpe2FrPTNEYWg7YWo9M0RudWxsOz0KYWg9M0R7fX1pZihM LnR5cGUoYWgpPTNEPTNEPTNEIm51bWJlciJ8fEwuZnguc3BlZWRzW2FoXSl7YWs9M0Rhajthaj0z RGFoO2FoPQo9M0R7fX1pZihMLmlzRnVuY3Rpb24oYWopKXthaz0zRGFqO2FqPTNEbnVsbH1pZihh aCl7TC5leHRlbmQoYWksYWgpfWFqPTNEYWo9Cnx8YWguZHVyYXRpb247YWkuZHVyYXRpb249M0RM LmZ4Lm9mZj8wOnR5cGVvZiBhaj0zRD0zRD0zRCJudW1iZXIiP2FqOmFqIGluID0KTC5meC5zcGVl ZHM/TC5meC5zcGVlZHNbYWpdOkwuZnguc3BlZWRzLl9kZWZhdWx0O2FpLmNvbXBsZXRlPTNEYWt8 fGFoLmNvbXBsPQpldGU7cmV0dXJuIGFpfWZ1bmN0aW9uIGFlKGFoKXtpZighYWh8fHR5cGVvZiBh aD0zRD0zRD0zRCJudW1iZXIifHxMLmZ4LnNwZWU9CmRzW2FoXSl7cmV0dXJuIHRydWV9aWYodHlw ZW9mIGFoPTNEPTNEPTNEInN0cmluZyImJiFMLmpxcGxvdC5lZmZlY3RzLmVmZmVjdD0KW2FoXSl7 aWYoWCYmTC5qcXBsb3QuZWZmZWN0c1thaF0pe3JldHVybiBmYWxzZX1yZXR1cm4gdHJ1ZX1yZXR1 cm4gZmFsc2V9TC5mPQpuLmV4dGVuZCh7anFwbG90RWZmZWN0OmZ1bmN0aW9uKGFwLGFxLGFpLGFv KXt2YXIgYW49M0RqLmFwcGx5KHRoaXMsYXJndW1lbnQ9CnMpLGFrPTNEYW4ubW9kZSxhbD0zRGFu LnF1ZXVlLGFtPTNETC5qcXBsb3QuZWZmZWN0cy5lZmZlY3RbYW4uZWZmZWN0XSxhaD0zRD0KIWFt JiZYJiZMLmpxcGxvdC5lZmZlY3RzW2FuLmVmZmVjdF07aWYoTC5meC5vZmZ8fCEoYW18fGFoKSl7 aWYoYWspe3JldHVybiB0PQpoaXNbYWtdKGFuLmR1cmF0aW9uLGFuLmNvbXBsZXRlKX1lbHNle3Jl dHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtpZihhbi5jb209CnBsZXRlKXthbi5jb21wbGV0ZS5j YWxsKHRoaXMpfX0pfX1mdW5jdGlvbiBhaihhdSl7dmFyIGF2PTNETCh0aGlzKSxhdD0zRGFuLj0K Y29tcGxldGUsYXc9M0Rhbi5tb2RlO2Z1bmN0aW9uIGFyKCl7aWYoTC5pc0Z1bmN0aW9uKGF0KSl7 YXQuY2FsbChhdlswXSl9aWYoPQpMLmlzRnVuY3Rpb24oYXUpKXthdSgpfX1pZihhdi5pcygiOmhp ZGRlbiIpP2F3PTNEPTNEPTNEImhpZGUiOmF3PTNEPTNEPTNEInM9CmhvdyIpe2FyKCl9ZWxzZXth bS5jYWxsKGF2WzBdLGFuLGFyKX19aWYoYW0pe3JldHVybiBhbD0zRD0zRD0zRGZhbHNlP3RoaXMu ZT0KYWNoKGFqKTp0aGlzLnF1ZXVlKGFsfHwiZngiLGFqKX1lbHNle3JldHVybiBhaC5jYWxsKHRo aXMse29wdGlvbnM6YW4sZHVyYXRpPQpvbjphbi5kdXJhdGlvbixjYWxsYmFjazphbi5jb21wbGV0 ZSxtb2RlOmFuLm1vZGV9KX19fSk7dmFyIGE9M0QvdXB8ZG93bnx2ZXI9CnRpY2FsLyx2PTNEL3Vw fGxlZnR8dmVydGljYWx8aG9yaXpvbnRhbC87TC5qcXBsb3QuZWZmZWN0cy5lZmZlY3QuYmxpbmQ9 M0RmdT0KbmN0aW9uKGFqLGFvKXt2YXIgYWs9M0RMKHRoaXMpLGFyPTNEWyJwb3NpdGlvbiIsInRv cCIsImJvdHRvbSIsImxlZnQiLCJyaWdoPQp0IiwiaGVpZ2h0Iiwid2lkdGgiXSxhcD0zREwuanFw bG90LmVmZmVjdHMuc2V0TW9kZShhayxhai5tb2RlfHwiaGlkZSIpLGF1PQo9M0Rhai5kaXJlY3Rp b258fCJ1cCIsYW09M0RhLnRlc3QoYXUpLGFsPTNEYW0/ImhlaWdodCI6IndpZHRoIixhcT0zRGFt PyJ0b3A9CiI6ImxlZnQiLGF3PTNEdi50ZXN0KGF1KSxhbj0zRHt9LGF2PTNEYXA9M0Q9M0Q9M0Qi c2hvdyIsYWksYWgsYXQ7aWYoYWsucGFyZT0KbnQoKS5pcygiLnVpLWVmZmVjdHMtd3JhcHBlciIp KXtMLmpxcGxvdC5lZmZlY3RzLnNhdmUoYWsucGFyZW50KCksYXIpfWVsc2V7PQpMLmpxcGxvdC5l ZmZlY3RzLnNhdmUoYWssYXIpfWFrLnNob3coKTthdD0zRHBhcnNlSW50KGFrLmNzcygidG9wIiks MTApO2FpPQo9M0RMLmpxcGxvdC5lZmZlY3RzLmNyZWF0ZVdyYXBwZXIoYWspLmNzcyh7b3ZlcmZs b3c6ImhpZGRlbiJ9KTthaD0zRGFtP2FpW2E9CmxdKCkrYXQ6YWlbYWxdKCk7YW5bYWxdPTNEYXY/ U3RyaW5nKGFoKToiMCI7aWYoIWF3KXthay5jc3MoYW0/ImJvdHRvbSI6InJpZz0KaHQiLDApLmNz cyhhbT8idG9wIjoibGVmdCIsIiIpLmNzcyh7cG9zaXRpb246ImFic29sdXRlIn0pO2FuW2FxXT0z RGF2PyIwIjpTPQp0cmluZyhhaCl9aWYoYXYpe2FpLmNzcyhhbCwwKTtpZighYXcpe2FpLmNzcyhh cSxhaCl9fWFpLmFuaW1hdGUoYW4se2R1cmF0aW89Cm46YWouZHVyYXRpb24sZWFzaW5nOmFqLmVh c2luZyxxdWV1ZTpmYWxzZSxjb21wbGV0ZTpmdW5jdGlvbigpe2lmKGFwPTNEPTNEPQo9M0QiaGlk ZSIpe2FrLmhpZGUoKX1MLmpxcGxvdC5lZmZlY3RzLnJlc3RvcmUoYWssYXIpO0wuanFwbG90LmVm ZmVjdHMucmVtb3Y9CmVXcmFwcGVyKGFrKTthbygpfX0pfX0pKGpRdWVyeSk7ClwgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQoKZGlmZiAtciBkYjkyZjZlMTliMzgxODA5N2JkM2Q1YTE0OWFjZjgw Y2VkOTA2NzVjIC1yIGEwZDFhOTFlMDViZWUzMmRkNWYyZmFjPQo5M2Q4MGZiZTkzNWJhOGMyOCBj b25maWcvcGx1Z2lucy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL3BsdWdpbnMvanFwbG89 CnQvanF1ZXJ5LmpxcGxvdC5wbHVnaW5zLmpzCi0tLSAvZGV2L251bGwKKysrIGIvY29uZmlnL3Bs dWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy9wbHVnaW5zL2pxcGxvdC9qcXVlcnku anFwPQpsb3QucGx1Z2lucy5qcwpAQCAtMCwwICsxLDE5IEBACisvKiBqcVBsb3QgMS4wLjhyMTI1 MCB8IChjKSAyMDA5LTIwMTMgQ2hyaXMgTGVvbmVsbG8gfCBqcGxvdC5jb20KKyAgIGpzRGF0ZSB8 IChjKSAyMDEwLTIwMTMgQ2hyaXMgTGVvbmVsbG8KKyAqLyhmdW5jdGlvbihkKXtkLmpxcGxvdC5C YXJSZW5kZXJlcj0zRGZ1bmN0aW9uKCl7ZC5qcXBsb3QuTGluZVJlbmRlcmVyLmNhPQpsbCh0aGlz KX07ZC5qcXBsb3QuQmFyUmVuZGVyZXIucHJvdG90eXBlPTNEbmV3IGQuanFwbG90LkxpbmVSZW5k ZXJlcigpO2QuanE9CnBsb3QuQmFyUmVuZGVyZXIucHJvdG90eXBlLmNvbnN0cnVjdG9yPTNEZC5q cXBsb3QuQmFyUmVuZGVyZXI7ZC5qcXBsb3QuQmFyUj0KZW5kZXJlci5wcm90b3R5cGUuaW5pdD0z RGZ1bmN0aW9uKG8scSl7dGhpcy5iYXJQYWRkaW5nPTNEODt0aGlzLmJhck1hcmdpbj0KPTNEMTA7 dGhpcy5iYXJEaXJlY3Rpb249M0QidmVydGljYWwiO3RoaXMuYmFyV2lkdGg9M0RudWxsO3RoaXMu c2hhZG93T2Zmc2V0PQo9M0QyO3RoaXMuc2hhZG93RGVwdGg9M0Q1O3RoaXMuc2hhZG93QWxwaGE9 M0QwLjA4O3RoaXMud2F0ZXJmYWxsPTNEZmFsc2U7dGg9CmlzLmdyb3Vwcz0zRDE7dGhpcy52YXJ5 QmFyQ29sb3I9M0RmYWxzZTt0aGlzLmhpZ2hsaWdodE1vdXNlT3Zlcj0zRHRydWU7dGhpcz0KLmhp Z2hsaWdodE1vdXNlRG93bj0zRGZhbHNlO3RoaXMuaGlnaGxpZ2h0Q29sb3JzPTNEW107dGhpcy50 cmFuc3Bvc2VkRGF0YT0KPTNEdHJ1ZTt0aGlzLnJlbmRlcmVyLmFuaW1hdGlvbj0zRHtzaG93OmZh bHNlLGRpcmVjdGlvbjoiZG93biIsc3BlZWQ6MzAwMCxfPQpzdXBwb3J0ZWQ6dHJ1ZX07dGhpcy5f dHlwZT0zRCJiYXIiO2lmKG8uaGlnaGxpZ2h0TW91c2VEb3duJiZvLmhpZ2hsaWdodE1vdXM9CmVP dmVyPTNEPTNEbnVsbCl7by5oaWdobGlnaHRNb3VzZU92ZXI9M0RmYWxzZX1kLmV4dGVuZCh0cnVl LHRoaXMsbyk7ZC5leHRlbj0KZCh0cnVlLHRoaXMucmVuZGVyZXIsbyk7dGhpcy5maWxsPTNEdHJ1 ZTtpZih0aGlzLmJhckRpcmVjdGlvbj0zRD0zRD0zRCJob3JpPQp6b250YWwiJiZ0aGlzLnJlbmRl cmVyT3B0aW9ucy5hbmltYXRpb24mJnRoaXMucmVuZGVyZXJPcHRpb25zLmFuaW1hdGlvbi5kaXI9 CmVjdGlvbj0zRD0zRG51bGwpe3RoaXMucmVuZGVyZXIuYW5pbWF0aW9uLmRpcmVjdGlvbj0zRCJs ZWZ0In1pZih0aGlzLndhdGVyZj0KYWxsKXt0aGlzLmZpbGxUb1plcm89M0RmYWxzZTt0aGlzLmRp c2FibGVTdGFjaz0zRHRydWV9aWYodGhpcy5iYXJEaXJlY3Rpb249Cj0zRD0zRCJ2ZXJ0aWNhbCIp e3RoaXMuX3ByaW1hcnlBeGlzPTNEIl94YXhpcyI7dGhpcy5fc3RhY2tBeGlzPTNEInkiO3RoaXMu Zj0KaWxsQXhpcz0zRCJ5In1lbHNle3RoaXMuX3ByaW1hcnlBeGlzPTNEIl95YXhpcyI7dGhpcy5f c3RhY2tBeGlzPTNEIngiO3RoaXMuPQpmaWxsQXhpcz0zRCJ4In10aGlzLl9oaWdobGlnaHRlZFBv aW50PTNEbnVsbDt0aGlzLl9wbG90U2VyaWVzSW5mbz0zRG51bGw7dGg9CmlzLl9kYXRhQ29sb3Jz PTNEW107dGhpcy5fYmFyUG9pbnRzPTNEW107dmFyIHA9M0R7bGluZUpvaW46Im1pdGVyIixsaW5l Q2FwOj0KInJvdW5kIixmaWxsOnRydWUsaXNhcmM6ZmFsc2Usc3Ryb2tlU3R5bGU6dGhpcy5jb2xv cixmaWxsU3R5bGU6dGhpcy5jb2xvcixjPQpsb3NlUGF0aDp0aGlzLmZpbGx9O3RoaXMucmVuZGVy ZXIuc2hhcGVSZW5kZXJlci5pbml0KHApO3ZhciBuPTNEe2xpbmVKb2luOiI9Cm1pdGVyIixsaW5l Q2FwOiJyb3VuZCIsZmlsbDp0cnVlLGlzYXJjOmZhbHNlLGFuZ2xlOnRoaXMuc2hhZG93QW5nbGUs b2Zmc2V0Oj0KdGhpcy5zaGFkb3dPZmZzZXQsYWxwaGE6dGhpcy5zaGFkb3dBbHBoYSxkZXB0aDp0 aGlzLnNoYWRvd0RlcHRoLGNsb3NlUGF0aDp0PQpoaXMuZmlsbH07dGhpcy5yZW5kZXJlci5zaGFk b3dSZW5kZXJlci5pbml0KG4pO3EucG9zdEluaXRIb29rcy5hZGRPbmNlKGgpO3E9Ci5wb3N0RHJh d0hvb2tzLmFkZE9uY2Uoaik7cS5ldmVudExpc3RlbmVySG9va3MuYWRkT25jZSgianFwbG90TW91 c2VNb3ZlIixiKT0KO3EuZXZlbnRMaXN0ZW5lckhvb2tzLmFkZE9uY2UoImpxcGxvdE1vdXNlRG93 biIsYSk7cS5ldmVudExpc3RlbmVySG9va3MuYWRkPQpPbmNlKCJqcXBsb3RNb3VzZVVwIixsKTtx LmV2ZW50TGlzdGVuZXJIb29rcy5hZGRPbmNlKCJqcXBsb3RDbGljayIsZSk7cS5ldmU9Cm50TGlz dGVuZXJIb29rcy5hZGRPbmNlKCJqcXBsb3RSaWdodENsaWNrIixtKX07ZnVuY3Rpb24gZyh0LHAs byx3KXtpZih0aGlzLj0KcmVuZGVyZXJPcHRpb25zLmJhckRpcmVjdGlvbj0zRD0zRCJob3Jpem9u dGFsIil7dGhpcy5fc3RhY2tBeGlzPTNEIngiO3RoaXMuPQpfcHJpbWFyeUF4aXM9M0QiX3lheGlz In1pZih0aGlzLnJlbmRlcmVyT3B0aW9ucy53YXRlcmZhbGw9M0Q9M0R0cnVlKXt0aGlzLl89CmRh dGE9M0RkLmV4dGVuZCh0cnVlLFtdLHRoaXMuZGF0YSk7dmFyIHM9M0QwO3ZhciB1PTNEKCF0aGlz LnJlbmRlcmVyT3B0aW9ucz0KLmJhckRpcmVjdGlvbnx8dGhpcy5yZW5kZXJlck9wdGlvbnMuYmFy RGlyZWN0aW9uPTNEPTNEPTNEInZlcnRpY2FsInx8dGhpcy50PQpyYW5zcG9zZWREYXRhPTNEPTNE PTNEZmFsc2UpPzE6MDtmb3IodmFyIHE9M0QwO3E8dGhpcy5kYXRhLmxlbmd0aDtxKyspe3MrPQo9 M0R0aGlzLmRhdGFbcV1bdV07aWYocT4wKXt0aGlzLmRhdGFbcV1bdV0rPTNEdGhpcy5kYXRhW3Et MV1bdV19fXRoaXMuZGF0YVs9CnRoaXMuZGF0YS5sZW5ndGhdPTNEKHU9M0Q9M0QxKT9bdGhpcy5k YXRhLmxlbmd0aCsxLHNdOltzLHRoaXMuZGF0YS5sZW5ndGgrMT0KXTt0aGlzLl9kYXRhW3RoaXMu X2RhdGEubGVuZ3RoXT0zRCh1PTNEPTNEMSk/W3RoaXMuX2RhdGEubGVuZ3RoKzEsc106W3MsdGhp PQpzLl9kYXRhLmxlbmd0aCsxXX1pZih0aGlzLnJlbmRlcmVyT3B0aW9ucy5ncm91cHM+MSl7dGhp cy5icmVha09uTnVsbD0zRHRydWU9Cjt2YXIgbj0zRHRoaXMuZGF0YS5sZW5ndGg7dmFyIHY9M0Rw YXJzZUludChuL3RoaXMucmVuZGVyZXJPcHRpb25zLmdyb3VwcywxMD0KKTt2YXIgcj0zRDA7Zm9y KHZhciBxPTNEdjtxPG47cSs9M0R2KXt0aGlzLmRhdGEuc3BsaWNlKHErciwwLFtudWxsLG51bGxd KTt0PQpoaXMuX3Bsb3REYXRhLnNwbGljZShxK3IsMCxbbnVsbCxudWxsXSk7dGhpcy5fc3RhY2tE YXRhLnNwbGljZShxK3IsMCxbbnVsbCw9Cm51bGxdKTtyKyt9Zm9yKHE9M0QwO3E8dGhpcy5kYXRh Lmxlbmd0aDtxKyspe2lmKHRoaXMuX3ByaW1hcnlBeGlzPTNEPTNEIl94YT0KeGlzIil7dGhpcy5k YXRhW3FdWzBdPTNEcSsxO3RoaXMuX3Bsb3REYXRhW3FdWzBdPTNEcSsxO3RoaXMuX3N0YWNrRGF0 YVtxXVswPQpdPTNEcSsxfWVsc2V7dGhpcy5kYXRhW3FdWzFdPTNEcSsxO3RoaXMuX3Bsb3REYXRh W3FdWzFdPTNEcSsxO3RoaXMuX3N0YWNrRGE9CnRhW3FdWzFdPTNEcSsxfX19fWQuanFwbG90LnBy ZVNlcmllc0luaXRIb29rcy5wdXNoKGcpO2QuanFwbG90LkJhclJlbmRlcmVyLj0KcHJvdG90eXBl LmNhbGNTZXJpZXNOdW1iZXJzPTNEZnVuY3Rpb24oKXt2YXIgcj0zRDA7dmFyIHQ9M0QwO3ZhciBx PTNEdGhpc1t0PQpoaXMuX3ByaW1hcnlBeGlzXTt2YXIgcCxvLHU7Zm9yKHZhciBuPTNEMDtuPHEu X3Nlcmllcy5sZW5ndGg7bisrKXtvPTNEcS5fc2U9CnJpZXNbbl07aWYobz0zRD0zRD0zRHRoaXMp e3U9M0RufWlmKG8ucmVuZGVyZXIuY29uc3RydWN0b3I9M0Q9M0RkLmpxcGxvdC5CYT0KclJlbmRl cmVyKXtyKz0zRG8uZGF0YS5sZW5ndGg7dCs9M0QxfX1yZXR1cm5bcix0LHVdfTtkLmpxcGxvdC5C YXJSZW5kZXJlci5wPQpyb3RvdHlwZS5zZXRCYXJXaWR0aD0zRGZ1bmN0aW9uKCl7dmFyIHE7dmFy IG49M0QwO3ZhciBvPTNEMDt2YXIgdD0zRHRoaXNbdGg9CmlzLl9wcmltYXJ5QXhpc107dmFyIHgs cix2O3ZhciB3PTNEdGhpcy5fcGxvdFNlcmllc0luZm89M0R0aGlzLnJlbmRlcmVyLmNhbD0KY1Nl cmllc051bWJlcnMuY2FsbCh0aGlzKTtuPTNEd1swXTtvPTNEd1sxXTt2YXIgdT0zRHQubnVtYmVy VGlja3M7dmFyIHA9M0QoPQp1LTEpLzI7aWYodC5uYW1lPTNEPTNEInhheGlzInx8dC5uYW1lPTNE PTNEIngyYXhpcyIpe2lmKHRoaXMuX3N0YWNrKXt0aGlzLmI9CmFyV2lkdGg9M0QodC5fb2Zmc2V0 cy5tYXgtdC5fb2Zmc2V0cy5taW4pL24qby10aGlzLmJhck1hcmdpbn1lbHNle3RoaXMuYmFyVz0K aWR0aD0zRCgodC5fb2Zmc2V0cy5tYXgtdC5fb2Zmc2V0cy5taW4pL3AtdGhpcy5iYXJQYWRkaW5n KihvLTEpLXRoaXMuYmFyTWFyPQpnaW4qMikvb319ZWxzZXtpZih0aGlzLl9zdGFjayl7dGhpcy5i YXJXaWR0aD0zRCh0Ll9vZmZzZXRzLm1pbi10Ll9vZmZzZXRzLm09CmF4KS9uKm8tdGhpcy5iYXJN YXJnaW59ZWxzZXt0aGlzLmJhcldpZHRoPTNEKCh0Ll9vZmZzZXRzLm1pbi10Ll9vZmZzZXRzLm1h eD0KKS9wLXRoaXMuYmFyUGFkZGluZyooby0xKS10aGlzLmJhck1hcmdpbioyKS9vfX1yZXR1cm5b bixvXX07ZnVuY3Rpb24gZihvKXt2PQphciBxPTNEW107Zm9yKHZhciBzPTNEMDtzPG8ubGVuZ3Ro O3MrKyl7dmFyIHI9M0RkLmpxcGxvdC5nZXRDb2xvckNvbXBvbmVudHM9CihvW3NdKTt2YXIgbj0z RFtyWzBdLHJbMV0sclsyXV07dmFyIHQ9M0RuWzBdK25bMV0rblsyXTtmb3IodmFyIHA9M0QwO3A8 MztwKz0KKyl7bltwXT0zRCh0PjU3MCk/bltwXSowLjg6bltwXSswLjMqKDI1NS1uW3BdKTtuW3Bd PTNEcGFyc2VJbnQobltwXSwxMCl9cS5wPQp1c2goInJnYigiK25bMF0rIiwiK25bMV0rIiwiK25b Ml0rIikiKX1yZXR1cm4gcX1mdW5jdGlvbiBpKHYsdSxzLHQsbyl7dmFyIHE9Cj0zRHYsdz0zRHYt MSxuLHAscj0zRChvPTNEPTNEPTNEIngiKT8wOjE7aWYocT4wKXtwPTNEdC5zZXJpZXNbd10uX3Bs b3REYXRhWz0KdV1bcl07aWYoKHMqcCk8MCl7bj0zRGkodyx1LHMsdCxvKX1lbHNle249M0R0LnNl cmllc1t3XS5ncmlkRGF0YVt1XVtyXX19ZWxzPQple249M0Qocj0zRD0zRD0zRDApP3Quc2VyaWVz W3FdLl94YXhpcy5zZXJpZXNfdTJwKDApOnQuc2VyaWVzW3FdLl95YXhpcy5zZXI9Cmllc191MnAo MCl9cmV0dXJuIG59ZC5qcXBsb3QuQmFyUmVuZGVyZXIucHJvdG90eXBlLmRyYXc9M0RmdW5jdGlv bihFLEwscSxHKT0Ke3ZhciBJO3ZhciBBPTNEZC5leHRlbmQoe30scSk7dmFyIHc9M0QoQS5zaGFk b3chPTNEdW5kZWZpbmVkKT9BLnNoYWRvdzp0aGlzPQouc2hhZG93O3ZhciBPPTNEKEEuc2hvd0xp bmUhPTNEdW5kZWZpbmVkKT9BLnNob3dMaW5lOnRoaXMuc2hvd0xpbmU7dmFyIEY9M0Q9CihBLmZp bGwhPTNEdW5kZWZpbmVkKT9BLmZpbGw6dGhpcy5maWxsO3ZhciBwPTNEdGhpcy54YXhpczt2YXIg Sj0zRHRoaXMueWF4aT0Kczt2YXIgeT0zRHRoaXMuX3hheGlzLnNlcmllc191MnA7dmFyIEs9M0R0 aGlzLl95YXhpcy5zZXJpZXNfdTJwO3ZhciBELEM7dGhpPQpzLl9kYXRhQ29sb3JzPTNEW107dGhp cy5fYmFyUG9pbnRzPTNEW107aWYodGhpcy5iYXJXaWR0aD0zRD0zRG51bGwpe3RoaXMucmU9Cm5k ZXJlci5zZXRCYXJXaWR0aC5jYWxsKHRoaXMpfXZhciBOPTNEdGhpcy5fcGxvdFNlcmllc0luZm89 M0R0aGlzLnJlbmRlcmVyLj0KY2FsY1Nlcmllc051bWJlcnMuY2FsbCh0aGlzKTt2YXIgeD0zRE5b MF07dmFyIHY9M0ROWzFdO3ZhciBzPTNETlsyXTt2YXIgSD0KPTNEW107aWYodGhpcy5fc3RhY2sp e3RoaXMuX2Jhck51ZGdlPTNEMH1lbHNle3RoaXMuX2Jhck51ZGdlPTNEKC1NYXRoLmFicyh2PQov Mi0wLjUpK3MpKih0aGlzLmJhcldpZHRoK3RoaXMuYmFyUGFkZGluZyl9aWYoTyl7dmFyIHU9M0Ru ZXcgZC5qcXBsb3QuQ29sb3I9CkdlbmVyYXRvcih0aGlzLm5lZ2F0aXZlU2VyaWVzQ29sb3JzKTt2 YXIgQj0zRG5ldyBkLmpxcGxvdC5Db2xvckdlbmVyYXRvcih0aD0KaXMuc2VyaWVzQ29sb3JzKTt2 YXIgTT0zRHUuZ2V0KHRoaXMuaW5kZXgpO2lmKCF0aGlzLnVzZU5lZ2F0aXZlQ29sb3JzKXtNPTNE PQpBLmZpbGxTdHlsZX12YXIgdD0zREEuZmlsbFN0eWxlO3ZhciByO3ZhciBQO3ZhciBvO2lmKHRo aXMuYmFyRGlyZWN0aW9uPTNEPQo9M0QidmVydGljYWwiKXtmb3IodmFyIEk9M0QwO0k8TC5sZW5n dGg7SSsrKXtpZighdGhpcy5fc3RhY2smJnRoaXMuZGF0YVtJXVs9CjFdPTNEPTNEbnVsbCl7Y29u dGludWV9SD0zRFtdO3I9M0RMW0ldWzBdK3RoaXMuX2Jhck51ZGdlO2lmKHRoaXMuX3N0YWNrJiZ0 aD0KaXMuX3ByZXZHcmlkRGF0YS5sZW5ndGgpe289M0RpKHRoaXMuaW5kZXgsSSx0aGlzLl9wbG90 RGF0YVtJXVsxXSxHLCJ5Iil9ZWxzPQple2lmKHRoaXMuZmlsbFRvWmVybyl7bz0zRHRoaXMuX3lh eGlzLnNlcmllc191MnAoMCl9ZWxzZXtpZih0aGlzLndhdGVyZmFsbCY9CiZJPjAmJkk8dGhpcy5n cmlkRGF0YS5sZW5ndGgtMSl7bz0zRHRoaXMuZ3JpZERhdGFbSS0xXVsxXX1lbHNle2lmKHRoaXMu d2F0ZT0KcmZhbGwmJkk9M0Q9M0QwJiZJPHRoaXMuZ3JpZERhdGEubGVuZ3RoLTEpe2lmKHRoaXMu X3lheGlzLm1pbjw9M0QwJiZ0aGlzLl95PQpheGlzLm1heD49M0QwKXtvPTNEdGhpcy5feWF4aXMu c2VyaWVzX3UycCgwKX1lbHNle2lmKHRoaXMuX3lheGlzLm1pbj4wKXtvPQo9M0RFLmNhbnZhcy5o ZWlnaHR9ZWxzZXtvPTNEMH19fWVsc2V7aWYodGhpcy53YXRlcmZhbGwmJkk9M0Q9M0R0aGlzLmdy aWREYXQ9CmEubGVuZ3RoLTEpe2lmKHRoaXMuX3lheGlzLm1pbjw9M0QwJiZ0aGlzLl95YXhpcy5t YXg+PTNEMCl7bz0zRHRoaXMuX3lheGlzLj0Kc2VyaWVzX3UycCgwKX1lbHNle2lmKHRoaXMuX3lh eGlzLm1pbj4wKXtvPTNERS5jYW52YXMuaGVpZ2h0fWVsc2V7bz0zRDB9fX1lPQpsc2V7bz0zREUu Y2FudmFzLmhlaWdodH19fX19aWYoKHRoaXMuZmlsbFRvWmVybyYmdGhpcy5fcGxvdERhdGFbSV1b MV08MCl8fCg9CnRoaXMud2F0ZXJmYWxsJiZ0aGlzLl9kYXRhW0ldWzFdPDApKXtpZih0aGlzLnZh cnlCYXJDb2xvciYmIXRoaXMuX3N0YWNrKXtpZj0KKHRoaXMudXNlTmVnYXRpdmVDb2xvcnMpe0Eu ZmlsbFN0eWxlPTNEdS5uZXh0KCl9ZWxzZXtBLmZpbGxTdHlsZT0zREIubmV4dCgpPQp9fWVsc2V7 QS5maWxsU3R5bGU9M0RNfX1lbHNle2lmKHRoaXMudmFyeUJhckNvbG9yJiYhdGhpcy5fc3RhY2sp e0EuZmlsbFN0eWw9CmU9M0RCLm5leHQoKX1lbHNle0EuZmlsbFN0eWxlPTNEdH19aWYoIXRoaXMu ZmlsbFRvWmVyb3x8dGhpcy5fcGxvdERhdGFbSV1bMT0KXT49M0QwKXtILnB1c2goW3ItdGhpcy5i YXJXaWR0aC8yLG9dKTtILnB1c2goW3ItdGhpcy5iYXJXaWR0aC8yLExbSV1bMV1dKTtIPQoucHVz aChbcit0aGlzLmJhcldpZHRoLzIsTFtJXVsxXV0pO0gucHVzaChbcit0aGlzLmJhcldpZHRoLzIs b10pfWVsc2V7SC5wdXM9CmgoW3ItdGhpcy5iYXJXaWR0aC8yLExbSV1bMV1dKTtILnB1c2goW3It dGhpcy5iYXJXaWR0aC8yLG9dKTtILnB1c2goW3IrdGhpcz0KLmJhcldpZHRoLzIsb10pO0gucHVz aChbcit0aGlzLmJhcldpZHRoLzIsTFtJXVsxXV0pfXRoaXMuX2JhclBvaW50cy5wdXNoKEgpPQo7 aWYodyYmIXRoaXMuX3N0YWNrKXt2YXIgej0zRGQuZXh0ZW5kKHRydWUse30sQSk7ZGVsZXRlIHou ZmlsbFN0eWxlO3RoaXMucmU9Cm5kZXJlci5zaGFkb3dSZW5kZXJlci5kcmF3KEUsSCx6KX12YXIg bj0zREEuZmlsbFN0eWxlfHx0aGlzLmNvbG9yO3RoaXMuX2RhdD0KYUNvbG9ycy5wdXNoKG4pO3Ro aXMucmVuZGVyZXIuc2hhcGVSZW5kZXJlci5kcmF3KEUsSCxBKX19ZWxzZXtpZih0aGlzLmJhckRp PQpyZWN0aW9uPTNEPTNEImhvcml6b250YWwiKXtmb3IodmFyIEk9M0QwO0k8TC5sZW5ndGg7SSsr KXtpZighdGhpcy5fc3RhY2smJnQ9Cmhpcy5kYXRhW0ldWzBdPTNEPTNEbnVsbCl7Y29udGludWV9 SD0zRFtdO3I9M0RMW0ldWzFdLXRoaXMuX2Jhck51ZGdlO1A7aWYodD0KaGlzLl9zdGFjayYmdGhp cy5fcHJldkdyaWREYXRhLmxlbmd0aCl7UD0zRGkodGhpcy5pbmRleCxJLHRoaXMuX3Bsb3REYXRh W0ldPQpbMF0sRywieCIpfWVsc2V7aWYodGhpcy5maWxsVG9aZXJvKXtQPTNEdGhpcy5feGF4aXMu c2VyaWVzX3UycCgwKX1lbHNle2lmKHQ9Cmhpcy53YXRlcmZhbGwmJkk+MCYmSTx0aGlzLmdyaWRE YXRhLmxlbmd0aC0xKXtQPTNEdGhpcy5ncmlkRGF0YVtJLTFdWzBdfWVscz0KZXtpZih0aGlzLndh dGVyZmFsbCYmST0zRD0zRDAmJkk8dGhpcy5ncmlkRGF0YS5sZW5ndGgtMSl7aWYodGhpcy5feGF4 aXMubWluPQo8PTNEMCYmdGhpcy5feGF4aXMubWF4Pj0zRDApe1A9M0R0aGlzLl94YXhpcy5zZXJp ZXNfdTJwKDApfWVsc2V7aWYodGhpcy5feGE9Cnhpcy5taW4+MCl7UD0zRDB9ZWxzZXtQPTNEMH19 fWVsc2V7aWYodGhpcy53YXRlcmZhbGwmJkk9M0Q9M0R0aGlzLmdyaWREYXRhLj0KbGVuZ3RoLTEp e2lmKHRoaXMuX3hheGlzLm1pbjw9M0QwJiZ0aGlzLl94YXhpcy5tYXg+PTNEMCl7UD0zRHRoaXMu X3hheGlzLnNlPQpyaWVzX3UycCgwKX1lbHNle2lmKHRoaXMuX3hheGlzLm1pbj4wKXtQPTNEMH1l bHNle1A9M0RFLmNhbnZhcy53aWR0aH19fWVsc2U9CntQPTNEMH19fX19aWYoKHRoaXMuZmlsbFRv WmVybyYmdGhpcy5fcGxvdERhdGFbSV1bMF08MCl8fCh0aGlzLndhdGVyZmFsbCYmdD0KaGlzLl9k YXRhW0ldWzBdPDApKXtpZih0aGlzLnZhcnlCYXJDb2xvciYmIXRoaXMuX3N0YWNrKXtpZih0aGlz LnVzZU5lZ2F0aXZlPQpDb2xvcnMpe0EuZmlsbFN0eWxlPTNEdS5uZXh0KCl9ZWxzZXtBLmZpbGxT dHlsZT0zREIubmV4dCgpfX1lbHNle0EuZmlsbFN0eWw9CmU9M0RNfX1lbHNle2lmKHRoaXMudmFy eUJhckNvbG9yJiYhdGhpcy5fc3RhY2spe0EuZmlsbFN0eWxlPTNEQi5uZXh0KCl9ZWxzZT0Ke0Eu ZmlsbFN0eWxlPTNEdH19aWYoIXRoaXMuZmlsbFRvWmVyb3x8dGhpcy5fcGxvdERhdGFbSV1bMF0+ PTNEMCl7SC5wdXNoKFtQPQoscit0aGlzLmJhcldpZHRoLzJdKTtILnB1c2goW1Asci10aGlzLmJh cldpZHRoLzJdKTtILnB1c2goW0xbSV1bMF0sci10aGlzLmI9CmFyV2lkdGgvMl0pO0gucHVzaChb TFtJXVswXSxyK3RoaXMuYmFyV2lkdGgvMl0pfWVsc2V7SC5wdXNoKFtMW0ldWzBdLHIrdGhpcz0K LmJhcldpZHRoLzJdKTtILnB1c2goW0xbSV1bMF0sci10aGlzLmJhcldpZHRoLzJdKTtILnB1c2go W1Asci10aGlzLmJhcldpZHRoPQovMl0pO0gucHVzaChbUCxyK3RoaXMuYmFyV2lkdGgvMl0pfXRo aXMuX2JhclBvaW50cy5wdXNoKEgpO2lmKHcmJiF0aGlzLl9zdGE9CmNrKXt2YXIgej0zRGQuZXh0 ZW5kKHRydWUse30sQSk7ZGVsZXRlIHouZmlsbFN0eWxlO3RoaXMucmVuZGVyZXIuc2hhZG93UmVu ZD0KZXJlci5kcmF3KEUsSCx6KX12YXIgbj0zREEuZmlsbFN0eWxlfHx0aGlzLmNvbG9yO3RoaXMu X2RhdGFDb2xvcnMucHVzaChuKTt0PQpoaXMucmVuZGVyZXIuc2hhcGVSZW5kZXJlci5kcmF3KEUs SCxBKX19fX1pZih0aGlzLmhpZ2hsaWdodENvbG9ycy5sZW5ndGg9M0Q9Cj0zRDApe3RoaXMuaGln aGxpZ2h0Q29sb3JzPTNEZC5qcXBsb3QuY29tcHV0ZUhpZ2hsaWdodENvbG9ycyh0aGlzLl9kYXRh Q29sbz0KcnMpfWVsc2V7aWYodHlwZW9mKHRoaXMuaGlnaGxpZ2h0Q29sb3JzKT0zRD0zRCJzdHJp bmciKXt2YXIgTj0zRHRoaXMuaGlnaGxpPQpnaHRDb2xvcnM7dGhpcy5oaWdobGlnaHRDb2xvcnM9 M0RbXTtmb3IodmFyIEk9M0QwO0k8dGhpcy5fZGF0YUNvbG9ycy5sZW5ndGg9CjtJKyspe3RoaXMu aGlnaGxpZ2h0Q29sb3JzLnB1c2goTil9fX19O2QuanFwbG90LkJhclJlbmRlcmVyLnByb3RvdHlw ZS5kcmF3Uz0KaGFkb3c9M0RmdW5jdGlvbih6LEcscCxCKXt2YXIgRDt2YXIgdz0zRChwIT0zRHVu ZGVmaW5lZCk/cDp7fTt2YXIgdD0zRCh3LnNoPQphZG93IT0zRHVuZGVmaW5lZCk/dy5zaGFkb3c6 dGhpcy5zaGFkb3c7dmFyIEk9M0Qody5zaG93TGluZSE9M0R1bmRlZmluZWQpP3c9Ci5zaG93TGlu ZTp0aGlzLnNob3dMaW5lO3ZhciBBPTNEKHcuZmlsbCE9M0R1bmRlZmluZWQpP3cuZmlsbDp0aGlz LmZpbGw7dmFyID0Kbz0zRHRoaXMueGF4aXM7dmFyIEU9M0R0aGlzLnlheGlzO3ZhciB2PTNEdGhp cy5feGF4aXMuc2VyaWVzX3UycDt2YXIgRj0zRHRoPQppcy5feWF4aXMuc2VyaWVzX3UycDt2YXIg eSxDLHgsdSxzLHI7aWYodGhpcy5fc3RhY2smJnRoaXMuc2hhZG93KXtpZih0aGlzLmI9CmFyV2lk dGg9M0Q9M0RudWxsKXt0aGlzLnJlbmRlcmVyLnNldEJhcldpZHRoLmNhbGwodGhpcyl9dmFyIEg9 M0R0aGlzLl9wbG90Uz0KZXJpZXNJbmZvPTNEdGhpcy5yZW5kZXJlci5jYWxjU2VyaWVzTnVtYmVy cy5jYWxsKHRoaXMpO3U9M0RIWzBdO3M9M0RIWzFdO3I9Cj0zREhbMl07aWYodGhpcy5fc3RhY2sp e3RoaXMuX2Jhck51ZGdlPTNEMH1lbHNle3RoaXMuX2Jhck51ZGdlPTNEKC1NYXRoLmFicz0KKHMv Mi0wLjUpK3IpKih0aGlzLmJhcldpZHRoK3RoaXMuYmFyUGFkZGluZyl9aWYoSSl7aWYodGhpcy5i YXJEaXJlY3Rpb249M0Q9Cj0zRCJ2ZXJ0aWNhbCIpe2Zvcih2YXIgRD0zRDA7RDxHLmxlbmd0aDtE Kyspe2lmKHRoaXMuZGF0YVtEXVsxXT0zRD0zRG51bGwpez0KY29udGludWV9Qz0zRFtdO3ZhciBx PTNER1tEXVswXSt0aGlzLl9iYXJOdWRnZTt2YXIgbjtpZih0aGlzLl9zdGFjayYmdGhpcy5fPQpw cmV2R3JpZERhdGEubGVuZ3RoKXtuPTNEaSh0aGlzLmluZGV4LEQsdGhpcy5fcGxvdERhdGFbRF1b MV0sQiwieSIpfWVsc2V7aWY9Cih0aGlzLmZpbGxUb1plcm8pe249M0R0aGlzLl95YXhpcy5zZXJp ZXNfdTJwKDApfWVsc2V7bj0zRHouY2FudmFzLmhlaWdodH19Qz0KLnB1c2goW3EtdGhpcy5iYXJX aWR0aC8yLG5dKTtDLnB1c2goW3EtdGhpcy5iYXJXaWR0aC8yLEdbRF1bMV1dKTtDLnB1c2goW3Er PQp0aGlzLmJhcldpZHRoLzIsR1tEXVsxXV0pO0MucHVzaChbcSt0aGlzLmJhcldpZHRoLzIsbl0p O3RoaXMucmVuZGVyZXIuc2hhZG89CndSZW5kZXJlci5kcmF3KHosQyx3KX19ZWxzZXtpZih0aGlz LmJhckRpcmVjdGlvbj0zRD0zRCJob3Jpem9udGFsIil7Zm9yKHZhcj0KIEQ9M0QwO0Q8Ry5sZW5n dGg7RCsrKXtpZih0aGlzLmRhdGFbRF1bMF09M0Q9M0RudWxsKXtjb250aW51ZX1DPTNEW107dmFy IHE9Cj0zREdbRF1bMV0tdGhpcy5fYmFyTnVkZ2U7dmFyIEo7aWYodGhpcy5fc3RhY2smJnRoaXMu X3ByZXZHcmlkRGF0YS5sZW5ndGgpez0KSj0zRGkodGhpcy5pbmRleCxELHRoaXMuX3Bsb3REYXRh W0RdWzBdLEIsIngiKX1lbHNle2lmKHRoaXMuZmlsbFRvWmVybyl7Sj0KPTNEdGhpcy5feGF4aXMu c2VyaWVzX3UycCgwKX1lbHNle0o9M0QwfX1DLnB1c2goW0oscSt0aGlzLmJhcldpZHRoLzJdKTtD LnB1PQpzaChbR1tEXVswXSxxK3RoaXMuYmFyV2lkdGgvMl0pO0MucHVzaChbR1tEXVswXSxxLXRo aXMuYmFyV2lkdGgvMl0pO0MucHVzaCg9CltKLHEtdGhpcy5iYXJXaWR0aC8yXSk7dGhpcy5yZW5k ZXJlci5zaGFkb3dSZW5kZXJlci5kcmF3KHosQyx3KX19fX19fTtmdW5jdD0KaW9uIGgocSxwLG4p e2Zvcih2YXIgbz0zRDA7bzx0aGlzLnNlcmllcy5sZW5ndGg7bysrKXtpZih0aGlzLnNlcmllc1tv XS5yZW5kPQplcmVyLmNvbnN0cnVjdG9yPTNEPTNEZC5qcXBsb3QuQmFyUmVuZGVyZXIpe2lmKHRo aXMuc2VyaWVzW29dLmhpZ2hsaWdodE1vdXM9CmVPdmVyKXt0aGlzLnNlcmllc1tvXS5oaWdobGln aHRNb3VzZURvd249M0RmYWxzZX19fX1mdW5jdGlvbiBqKCl7aWYodGhpcy5wbD0KdWdpbnMuYmFy UmVuZGVyZXImJnRoaXMucGx1Z2lucy5iYXJSZW5kZXJlci5oaWdobGlnaHRDYW52YXMpe3RoaXMu cGx1Z2lucy5iPQphclJlbmRlcmVyLmhpZ2hsaWdodENhbnZhcy5yZXNldENhbnZhcygpO3RoaXMu cGx1Z2lucy5iYXJSZW5kZXJlci5oaWdobGlnaHQ9CkNhbnZhcz0zRG51bGx9dGhpcy5wbHVnaW5z LmJhclJlbmRlcmVyPTNEe2hpZ2hsaWdodGVkU2VyaWVzSW5kZXg6bnVsbH07dGhpcz0KLnBsdWdp bnMuYmFyUmVuZGVyZXIuaGlnaGxpZ2h0Q2FudmFzPTNEbmV3IGQuanFwbG90LkdlbmVyaWNDYW52 YXMoKTt0aGlzLmV2PQplbnRDYW52YXMuX2VsZW0uYmVmb3JlKHRoaXMucGx1Z2lucy5iYXJSZW5k ZXJlci5oaWdobGlnaHRDYW52YXMuY3JlYXRlRWxlbWU9Cm50KHRoaXMuX2dyaWRQYWRkaW5nLCJq cXBsb3QtYmFyUmVuZGVyZXItaGlnaGxpZ2h0LWNhbnZhcyIsdGhpcy5fcGxvdERpbWVucz0KaW9u cyx0aGlzKSk7dGhpcy5wbHVnaW5zLmJhclJlbmRlcmVyLmhpZ2hsaWdodENhbnZhcy5zZXRDb250 ZXh0KCk7dGhpcy5ldmVuPQp0Q2FudmFzLl9lbGVtLmJpbmQoIm1vdXNlbGVhdmUiLHtwbG90OnRo aXN9LGZ1bmN0aW9uKG4pe2sobi5kYXRhLnBsb3QpfSl9ZnU9Cm5jdGlvbiBjKHUsdCxxLHApe3Zh ciBvPTNEdS5zZXJpZXNbdF07dmFyIG49M0R1LnBsdWdpbnMuYmFyUmVuZGVyZXIuaGlnaGxpZz0K aHRDYW52YXM7bi5fY3R4LmNsZWFyUmVjdCgwLDAsbi5fY3R4LmNhbnZhcy53aWR0aCxuLl9jdHgu Y2FudmFzLmhlaWdodCk7by5fPQpoaWdobGlnaHRlZFBvaW50PTNEcTt1LnBsdWdpbnMuYmFyUmVu ZGVyZXIuaGlnaGxpZ2h0ZWRTZXJpZXNJbmRleD0zRHQ7dmFyIHI9Cj0zRHtmaWxsU3R5bGU6by5o aWdobGlnaHRDb2xvcnNbcV19O28ucmVuZGVyZXIuc2hhcGVSZW5kZXJlci5kcmF3KG4uX2N0eCxw LD0Kcik7bj0zRG51bGx9ZnVuY3Rpb24gayhwKXt2YXIgbj0zRHAucGx1Z2lucy5iYXJSZW5kZXJl ci5oaWdobGlnaHRDYW52YXM7bi5fPQpjdHguY2xlYXJSZWN0KDAsMCxuLl9jdHguY2FudmFzLndp ZHRoLG4uX2N0eC5jYW52YXMuaGVpZ2h0KTtmb3IodmFyIG89M0QwO289CjxwLnNlcmllcy5sZW5n dGg7bysrKXtwLnNlcmllc1tvXS5faGlnaGxpZ2h0ZWRQb2ludD0zRG51bGx9cC5wbHVnaW5zLmJh clJlbj0KZGVyZXIuaGlnaGxpZ2h0ZWRTZXJpZXNJbmRleD0zRG51bGw7cC50YXJnZXQudHJpZ2dl cigianFwbG90RGF0YVVuaGlnaGxpZ2h0PQoiKTtuPTNEbnVsbH1mdW5jdGlvbiBiKHIscSx1LHQs cyl7aWYodCl7dmFyIHA9M0RbdC5zZXJpZXNJbmRleCx0LnBvaW50SW5kZXg9Cix0LmRhdGFdO3Zh ciBvPTNEalF1ZXJ5LkV2ZW50KCJqcXBsb3REYXRhTW91c2VPdmVyIik7by5wYWdlWD0zRHIucGFn ZVg7by5wYT0KZ2VZPTNEci5wYWdlWTtzLnRhcmdldC50cmlnZ2VyKG8scCk7aWYocy5zZXJpZXNb cFswXV0uc2hvdyYmcy5zZXJpZXNbcFswXV0uPQpoaWdobGlnaHRNb3VzZU92ZXImJiEocFswXT0z RD0zRHMucGx1Z2lucy5iYXJSZW5kZXJlci5oaWdobGlnaHRlZFNlcmllc0luZGU9CngmJnBbMV09 M0Q9M0RzLnNlcmllc1twWzBdXS5faGlnaGxpZ2h0ZWRQb2ludCkpe3ZhciBuPTNEalF1ZXJ5LkV2 ZW50KCJqcXBsbz0KdERhdGFIaWdobGlnaHQiKTtuLndoaWNoPTNEci53aGljaDtuLnBhZ2VYPTNE ci5wYWdlWDtuLnBhZ2VZPTNEci5wYWdlWTtzLnRhPQpyZ2V0LnRyaWdnZXIobixwKTtjKHMsdC5z ZXJpZXNJbmRleCx0LnBvaW50SW5kZXgsdC5wb2ludHMpfX1lbHNle2lmKHQ9M0Q9M0Q9Cm51bGwp e2socyl9fX1mdW5jdGlvbiBhKHEscCx0LHMscil7aWYocyl7dmFyIG89M0Rbcy5zZXJpZXNJbmRl eCxzLnBvaW50SW5kZT0KeCxzLmRhdGFdO2lmKHIuc2VyaWVzW29bMF1dLmhpZ2hsaWdodE1vdXNl RG93biYmIShvWzBdPTNEPTNEci5wbHVnaW5zLmJhclJlPQpuZGVyZXIuaGlnaGxpZ2h0ZWRTZXJp ZXNJbmRleCYmb1sxXT0zRD0zRHIuc2VyaWVzW29bMF1dLl9oaWdobGlnaHRlZFBvaW50KSk9Cnt2 YXIgbj0zRGpRdWVyeS5FdmVudCgianFwbG90RGF0YUhpZ2hsaWdodCIpO24ud2hpY2g9M0RxLndo aWNoO24ucGFnZVg9M0RxLj0KcGFnZVg7bi5wYWdlWT0zRHEucGFnZVk7ci50YXJnZXQudHJpZ2dl cihuLG8pO2MocixzLnNlcmllc0luZGV4LHMucG9pbnRJbmRlPQp4LHMucG9pbnRzKX19ZWxzZXtp ZihzPTNEPTNEbnVsbCl7ayhyKX19fWZ1bmN0aW9uIGwocCxvLHMscixxKXt2YXIgbj0zRHEucGw9 CnVnaW5zLmJhclJlbmRlcmVyLmhpZ2hsaWdodGVkU2VyaWVzSW5kZXg7aWYobiE9M0RudWxsJiZx LnNlcmllc1tuXS5oaWdobGlnaD0KdE1vdXNlRG93bil7ayhxKX19ZnVuY3Rpb24gZShxLHAsdCxz LHIpe2lmKHMpe3ZhciBvPTNEW3Muc2VyaWVzSW5kZXgscy5wb2luPQp0SW5kZXgscy5kYXRhXTt2 YXIgbj0zRGpRdWVyeS5FdmVudCgianFwbG90RGF0YUNsaWNrIik7bi53aGljaD0zRHEud2hpY2g7 bi49CnBhZ2VYPTNEcS5wYWdlWDtuLnBhZ2VZPTNEcS5wYWdlWTtyLnRhcmdldC50cmlnZ2VyKG4s byl9fWZ1bmN0aW9uIG0ocixxLHUsdD0KLHMpe2lmKHQpe3ZhciBwPTNEW3Quc2VyaWVzSW5kZXgs dC5wb2ludEluZGV4LHQuZGF0YV07dmFyIG49M0RzLnBsdWdpbnMuYmFyPQpSZW5kZXJlci5oaWdo bGlnaHRlZFNlcmllc0luZGV4O2lmKG4hPTNEbnVsbCYmcy5zZXJpZXNbbl0uaGlnaGxpZ2h0TW91 c2VEb3c9Cm4pe2socyl9dmFyIG89M0RqUXVlcnkuRXZlbnQoImpxcGxvdERhdGFSaWdodENsaWNr Iik7by53aGljaD0zRHIud2hpY2g7by5wYT0KZ2VYPTNEci5wYWdlWDtvLnBhZ2VZPTNEci5wYWdl WTtzLnRhcmdldC50cmlnZ2VyKG8scCl9fX0pKGpRdWVyeSk7LyoganFQbG90PQogMS4wLjhyMTI1 MCB8IChjKSAyMDA5LTIwMTMgQ2hyaXMgTGVvbmVsbG8gfCBqcGxvdC5jb20KKyAgIGpzRGF0ZSB8 IChjKSAyMDEwLTIwMTMgQ2hyaXMgTGVvbmVsbG8KKyAqLyhmdW5jdGlvbihhKXthLmpxcGxvdC5C bG9ja1JlbmRlcmVyPTNEZnVuY3Rpb24oKXthLmpxcGxvdC5MaW5lUmVuZGVyZXIuPQpjYWxsKHRo aXMpfTthLmpxcGxvdC5CbG9ja1JlbmRlcmVyLnByb3RvdHlwZT0zRG5ldyBhLmpxcGxvdC5MaW5l UmVuZGVyZXIoKTs9CmEuanFwbG90LkJsb2NrUmVuZGVyZXIucHJvdG90eXBlLmNvbnN0cnVjdG9y PTNEYS5qcXBsb3QuQmxvY2tSZW5kZXJlcjthLmpxcD0KbG90LkJsb2NrUmVuZGVyZXIucHJvdG90 eXBlLmluaXQ9M0RmdW5jdGlvbihiKXt0aGlzLmNzcz0zRHtwYWRkaW5nOiIycHgiLGJvPQpyZGVy OiIxcHggc29saWQgIzk5OSIsdGV4dEFsaWduOiJjZW50ZXIifTt0aGlzLmVzY2FwZUh0bWw9M0Rm YWxzZTt0aGlzLmluc2U9CnJ0QnJlYWtzPTNEdHJ1ZTt0aGlzLnZhcnlCbG9ja0NvbG9ycz0zRGZh bHNlO2EuZXh0ZW5kKHRydWUsdGhpcyxiKTtpZih0aGlzLj0KY3NzLmJhY2tncm91bmRDb2xvcil7 dGhpcy5jb2xvcj0zRHRoaXMuY3NzLmJhY2tncm91bmRDb2xvcn1lbHNle2lmKHRoaXMuY3NzPQou YmFja2dyb3VuZCl7dGhpcy5jb2xvcj0zRHRoaXMuY3NzLmJhY2tncm91bmR9ZWxzZXtpZighdGhp cy52YXJ5QmxvY2tDb2xvcnM9Cil7dGhpcy5jc3MuYmFja2dyb3VuZD0zRHRoaXMuY29sb3J9fX10 aGlzLmNhbnZhcz0zRG5ldyBhLmpxcGxvdC5CbG9ja0NhbnZhcz0KKCk7dGhpcy5zaGFkb3dDYW52 YXM9M0RuZXcgYS5qcXBsb3QuQmxvY2tDYW52YXMoKTt0aGlzLmNhbnZhcy5fcGxvdERpbWVuc2lv PQpucz0zRHRoaXMuX3Bsb3REaW1lbnNpb25zO3RoaXMuc2hhZG93Q2FudmFzLl9wbG90RGltZW5z aW9ucz0zRHRoaXMuX3Bsb3REaW09CmVuc2lvbnM7dGhpcy5fdHlwZT0zRCJibG9jayI7dGhpcy5t b3ZlQmxvY2s9M0RmdW5jdGlvbihsLGosaSxlKXt2YXIgYz0zRHRoaT0Kcy5jYW52YXMuX2VsZW0u Y2hpbGRyZW4oIjplcSgiK2wrIikiKTt0aGlzLmRhdGFbbF1bMF09M0RqO3RoaXMuZGF0YVtsXVsx XT0KPTNEaTt0aGlzLl9wbG90RGF0YVtsXVswXT0zRGo7dGhpcy5fcGxvdERhdGFbbF1bMV09M0Rp O3RoaXMuX3N0YWNrRGF0YVtsXVswPQpdPTNEajt0aGlzLl9zdGFja0RhdGFbbF1bMV09M0RpO3Ro aXMuZ3JpZERhdGFbbF1bMF09M0R0aGlzLl94YXhpcy5zZXJpZXNfdTI9CnAoaik7dGhpcy5ncmlk RGF0YVtsXVsxXT0zRHRoaXMuX3lheGlzLnNlcmllc191MnAoaSk7dmFyIGs9M0RjLm91dGVyV2lk dGgoKT0KO3ZhciBmPTNEYy5vdXRlckhlaWdodCgpO3ZhciBkPTNEdGhpcy5ncmlkRGF0YVtsXVsw XS1rLzIrInB4Ijt2YXIgZz0zRHRoaXMuPQpncmlkRGF0YVtsXVsxXS1mLzIrInB4IjtpZihlKXtp ZihwYXJzZUludChlLDEwKSl7ZT0zRHBhcnNlSW50KGUsMTApfWMuYW5pbWE9CnRlKHtsZWZ0OmQs dG9wOmd9LGUpfWVsc2V7Yy5jc3Moe2xlZnQ6ZCx0b3A6Z30pfWM9M0RudWxsfX07YS5qcXBsb3Qu QmxvY2tSZT0KbmRlcmVyLnByb3RvdHlwZS5kcmF3PTNEZnVuY3Rpb24ocSxvLHIpe2lmKHRoaXMu cGx1Z2lucy5wb2ludExhYmVscyl7dGhpcy5wPQpsdWdpbnMucG9pbnRMYWJlbHMuc2hvdz0zRGZh bHNlfXZhciBmLGMsbCxvLHAsayxuLGcsZSxtO3ZhciBiPTNEKHIhPTNEdW5kZWY9CmluZWQpP3I6 e307dmFyIGo9M0RuZXcgYS5qcXBsb3QuQ29sb3JHZW5lcmF0b3IodGhpcy5zZXJpZXNDb2xvcnMp O3RoaXMuY2Fudj0KYXMuX2VsZW0uZW1wdHkoKTtmb3IoZj0zRDA7Zjx0aGlzLmdyaWREYXRhLmxl bmd0aDtmKyspe2w9M0R0aGlzLmRhdGFbZl07bz0KPTNEdGhpcy5ncmlkRGF0YVtmXTtwPTNEIiI7 az0zRHt9O2lmKHR5cGVvZiBsWzJdPTNEPTNEInN0cmluZyIpe3A9M0RsWzJdfWVsPQpzZXtpZih0 eXBlb2YgbFsyXT0zRD0zRCJvYmplY3QiKXtrPTNEbFsyXX19aWYodHlwZW9mIGxbM109M0Q9M0Qi b2JqZWN0Iil7az0KPTNEbFszXX1pZih0aGlzLmluc2VydEJyZWFrcyl7cD0zRHAucmVwbGFjZSgv IC9nLCI8YnIgLz4iKX1rPTNEYS5leHRlbmQodHJ1PQplLHt9LHRoaXMuY3NzLGspO2M9M0RhKCc8 ZGl2IHN0eWxlPTNEInBvc2l0aW9uOmFic29sdXRlO21hcmdpbi1sZWZ0OmF1dG87bWE9CnJnaW4t cmlnaHQ6YXV0bzsiPjwvZGl2PicpO3RoaXMuY2FudmFzLl9lbGVtLmFwcGVuZChjKTt0aGlzLmVz Y2FwZUh0bWw/Yy50ZT0KeHQocCk6Yy5odG1sKHApO2RlbGV0ZSBrLnBvc2l0aW9uO2RlbGV0ZSBr Lm1hcmdpblJpZ2h0O2RlbGV0ZSBrLm1hcmdpbkxlZnQ7PQppZighay5iYWNrZ3JvdW5kJiYhay5i YWNrZ3JvdW5kQ29sb3ImJiFrLmJhY2tncm91bmRJbWFnZSl7ay5iYWNrZ3JvdW5kPTNEai49Cm5l eHQoKX1jLmNzcyhrKTtuPTNEYy5vdXRlcldpZHRoKCk7Zz0zRGMub3V0ZXJIZWlnaHQoKTtlPTNE b1swXS1uLzIrInB4IjttPQo9M0RvWzFdLWcvMisicHgiO2MuY3NzKHtsZWZ0OmUsdG9wOm19KTtj PTNEbnVsbH19O2EuanFwbG90LkJsb2NrQ2FudmFzPTNEZnU9Cm5jdGlvbigpe2EuanFwbG90LkVs ZW1Db250YWluZXIuY2FsbCh0aGlzKTt0aGlzLl9jdHh9O2EuanFwbG90LkJsb2NrQ2FudmFzLj0K cHJvdG90eXBlPTNEbmV3IGEuanFwbG90LkVsZW1Db250YWluZXIoKTthLmpxcGxvdC5CbG9ja0Nh bnZhcy5wcm90b3R5cGUuY29uPQpzdHJ1Y3Rvcj0zRGEuanFwbG90LkJsb2NrQ2FudmFzO2EuanFw bG90LkJsb2NrQ2FudmFzLnByb3RvdHlwZS5jcmVhdGVFbGVtZW49CnQ9M0RmdW5jdGlvbihpLGUs Yyl7dGhpcy5fb2Zmc2V0cz0zRGk7dmFyIGI9M0QianFwbG90LWJsb2NrQ2FudmFzIjtpZihlIT0z RD0KdW5kZWZpbmVkKXtiPTNEZX12YXIgZztpZih0aGlzLl9lbGVtKXtnPTNEdGhpcy5fZWxlbS5n ZXQoMCl9ZWxzZXtnPTNEZG9jdW1lPQpudC5jcmVhdGVFbGVtZW50KCJkaXYiKX1pZihjIT0zRHVu ZGVmaW5lZCl7dGhpcy5fcGxvdERpbWVuc2lvbnM9M0RjfXZhciBkPQo9M0R0aGlzLl9wbG90RGlt ZW5zaW9ucy53aWR0aC10aGlzLl9vZmZzZXRzLmxlZnQtdGhpcy5fb2Zmc2V0cy5yaWdodCsicHgi O3Y9CmFyIGY9M0R0aGlzLl9wbG90RGltZW5zaW9ucy5oZWlnaHQtdGhpcy5fb2Zmc2V0cy50b3At dGhpcy5fb2Zmc2V0cy5ib3R0b20rIj0KcHgiO3RoaXMuX2VsZW09M0RhKGcpO3RoaXMuX2VsZW0u Y3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLHdpZHRoOmQsaGVpZ2h0OmYsPQpsZWZ0OnRoaXMuX29m ZnNldHMubGVmdCx0b3A6dGhpcy5fb2Zmc2V0cy50b3B9KTt0aGlzLl9lbGVtLmFkZENsYXNzKGIp O3JldHU9CnJuIHRoaXMuX2VsZW19O2EuanFwbG90LkJsb2NrQ2FudmFzLnByb3RvdHlwZS5zZXRD b250ZXh0PTNEZnVuY3Rpb24oKXt0aGlzLj0KX2N0eD0zRHtjYW52YXM6e3dpZHRoOjAsaGVpZ2h0 OjB9LGNsZWFyUmVjdDpmdW5jdGlvbigpe3JldHVybiBudWxsfX07cmV0dXJuPQogdGhpcy5fY3R4 fX0pKGpRdWVyeSk7LyoganFQbG90IDEuMC44cjEyNTAgfCAoYykgMjAwOS0yMDEzIENocmlzIExl b25lbGxvIHw9CiBqcGxvdC5jb20KKyAgIGpzRGF0ZSB8IChjKSAyMDEwLTIwMTMgQ2hyaXMgTGVv bmVsbG8KKyAqLyhmdW5jdGlvbihhKXthLmpxcGxvdC5DYW52YXNBeGlzTGFiZWxSZW5kZXJlcj0z RGZ1bmN0aW9uKGIpe3RoaXMuYW5nbGU9Cj0zRDA7dGhpcy5heGlzO3RoaXMuc2hvdz0zRHRydWU7 dGhpcy5zaG93TGFiZWw9M0R0cnVlO3RoaXMubGFiZWw9M0QiIjt0aGlzLj0KZm9udEZhbWlseT0z RCciVHJlYnVjaGV0IE1TIiwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZic7dGhpcy5mb250 U2l6ZT0KPTNEIjExcHQiO3RoaXMuZm9udFdlaWdodD0zRCJub3JtYWwiO3RoaXMuZm9udFN0cmV0 Y2g9M0QxO3RoaXMudGV4dENvbG9yPTNEPQoiIzY2NjY2NiI7dGhpcy5lbmFibGVGb250U3VwcG9y dD0zRHRydWU7dGhpcy5wdDJweD0zRG51bGw7dGhpcy5fZWxlbTt0aGlzLl89CmN0eDt0aGlzLl9w bG90V2lkdGg7dGhpcy5fcGxvdEhlaWdodDt0aGlzLl9wbG90RGltZW5zaW9ucz0zRHtoZWlnaHQ6 bnVsbCx3aT0KZHRoOm51bGx9O2EuZXh0ZW5kKHRydWUsdGhpcyxiKTtpZihiLmFuZ2xlPTNEPTNE bnVsbCYmdGhpcy5heGlzIT0zRCJ4YXhpcyImPQomdGhpcy5heGlzIT0zRCJ4MmF4aXMiKXt0aGlz LmFuZ2xlPTNELTkwfXZhciBjPTNEe2ZvbnRTaXplOnRoaXMuZm9udFNpemUsZm89Cm50V2VpZ2h0 OnRoaXMuZm9udFdlaWdodCxmb250U3RyZXRjaDp0aGlzLmZvbnRTdHJldGNoLGZpbGxTdHlsZTp0 aGlzLnRleHRDbz0KbG9yLGFuZ2xlOnRoaXMuZ2V0QW5nbGVSYWQoKSxmb250RmFtaWx5OnRoaXMu Zm9udEZhbWlseX07aWYodGhpcy5wdDJweCl7Yy5wPQp0MnB4PTNEdGhpcy5wdDJweH1pZih0aGlz LmVuYWJsZUZvbnRTdXBwb3J0KXtpZihhLmpxcGxvdC5zdXBwb3J0X2NhbnZhc190ZXg9CnQoKSl7 dGhpcy5fdGV4dFJlbmRlcmVyPTNEbmV3IGEuanFwbG90LkNhbnZhc0ZvbnRSZW5kZXJlcihjKX1l bHNle3RoaXMuX3RleD0KdFJlbmRlcmVyPTNEbmV3IGEuanFwbG90LkNhbnZhc1RleHRSZW5kZXJl cihjKX19ZWxzZXt0aGlzLl90ZXh0UmVuZGVyZXI9M0RuPQpldyBhLmpxcGxvdC5DYW52YXNUZXh0 UmVuZGVyZXIoYyl9fTthLmpxcGxvdC5DYW52YXNBeGlzTGFiZWxSZW5kZXJlci5wcm90b3Q9Cnlw ZS5pbml0PTNEZnVuY3Rpb24oYil7YS5leHRlbmQodHJ1ZSx0aGlzLGIpO3RoaXMuX3RleHRSZW5k ZXJlci5pbml0KHtmb250Uz0KaXplOnRoaXMuZm9udFNpemUsZm9udFdlaWdodDp0aGlzLmZvbnRX ZWlnaHQsZm9udFN0cmV0Y2g6dGhpcy5mb250U3RyZXRjaCxmPQppbGxTdHlsZTp0aGlzLnRleHRD b2xvcixhbmdsZTp0aGlzLmdldEFuZ2xlUmFkKCksZm9udEZhbWlseTp0aGlzLmZvbnRGYW1pbHk9 Cn0pfTthLmpxcGxvdC5DYW52YXNBeGlzTGFiZWxSZW5kZXJlci5wcm90b3R5cGUuZ2V0V2lkdGg9 M0RmdW5jdGlvbihkKXtpZih0aD0KaXMuX2VsZW0pe3JldHVybiB0aGlzLl9lbGVtLm91dGVyV2lk dGgodHJ1ZSl9ZWxzZXt2YXIgZj0zRHRoaXMuX3RleHRSZW5kZXJlPQpyO3ZhciBjPTNEZi5nZXRX aWR0aChkKTt2YXIgZT0zRGYuZ2V0SGVpZ2h0KGQpO3ZhciBiPTNETWF0aC5hYnMoTWF0aC5zaW4o Zi49CmFuZ2xlKSplKStNYXRoLmFicyhNYXRoLmNvcyhmLmFuZ2xlKSpjKTtyZXR1cm4gYn19O2Eu anFwbG90LkNhbnZhc0F4aXNMYWJlbD0KUmVuZGVyZXIucHJvdG90eXBlLmdldEhlaWdodD0zRGZ1 bmN0aW9uKGQpe2lmKHRoaXMuX2VsZW0pe3JldHVybiB0aGlzLl9lbGVtPQoub3V0ZXJIZWlnaHQo dHJ1ZSl9ZWxzZXt2YXIgZj0zRHRoaXMuX3RleHRSZW5kZXJlcjt2YXIgYz0zRGYuZ2V0V2lkdGgo ZCk7dmE9CnIgZT0zRGYuZ2V0SGVpZ2h0KGQpO3ZhciBiPTNETWF0aC5hYnMoTWF0aC5jb3MoZi5h bmdsZSkqZSkrTWF0aC5hYnMoTWF0aC5zaT0KbihmLmFuZ2xlKSpjKTtyZXR1cm4gYn19O2EuanFw bG90LkNhbnZhc0F4aXNMYWJlbFJlbmRlcmVyLnByb3RvdHlwZS5nZXRBbmdsPQplUmFkPTNEZnVu Y3Rpb24oKXt2YXIgYj0zRHRoaXMuYW5nbGUqTWF0aC5QSS8xODA7cmV0dXJuIGJ9O2EuanFwbG90 LkNhbnZhc0E9Cnhpc0xhYmVsUmVuZGVyZXIucHJvdG90eXBlLmRyYXc9M0RmdW5jdGlvbihjLGYp e2lmKHRoaXMuX2VsZW0pe2lmKGEuanFwbG90Lj0KdXNlX2V4Y2FudmFzJiZ3aW5kb3cuR192bWxD YW52YXNNYW5hZ2VyLnVuaW5pdEVsZW1lbnQhPTNEPTNEdW5kZWZpbmVkKXt3aW5kPQpvdy5HX3Zt bENhbnZhc01hbmFnZXIudW5pbml0RWxlbWVudCh0aGlzLl9lbGVtLmdldCgwKSl9dGhpcy5fZWxl bS5lbXB0eUZvcmM9CmUoKTt0aGlzLl9lbGVtPTNEbnVsbH12YXIgZT0zRGYuY2FudmFzTWFuYWdl ci5nZXRDYW52YXMoKTt0aGlzLl90ZXh0UmVuZGVyZT0Kci5zZXRUZXh0KHRoaXMubGFiZWwsYyk7 dmFyIGI9M0R0aGlzLmdldFdpZHRoKGMpO3ZhciBkPTNEdGhpcy5nZXRIZWlnaHQoYyk7PQplLndp ZHRoPTNEYjtlLmhlaWdodD0zRGQ7ZS5zdHlsZS53aWR0aD0zRGI7ZS5zdHlsZS5oZWlnaHQ9M0Rk O2U9M0RmLmNhbnZhc009CmFuYWdlci5pbml0Q2FudmFzKGUpO3RoaXMuX2VsZW09M0RhKGUpO3Ro aXMuX2VsZW0uY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUifT0KKTt0aGlzLl9lbGVtLmFkZENsYXNz KCJqcXBsb3QtIit0aGlzLmF4aXMrIi1sYWJlbCIpO2U9M0RudWxsO3JldHVybiB0aGlzLl9lPQps ZW19O2EuanFwbG90LkNhbnZhc0F4aXNMYWJlbFJlbmRlcmVyLnByb3RvdHlwZS5wYWNrPTNEZnVu Y3Rpb24oKXt0aGlzLl90ZXg9CnRSZW5kZXJlci5kcmF3KHRoaXMuX2VsZW0uZ2V0KDApLmdldENv bnRleHQoIjJkIiksdGhpcy5sYWJlbCl9fSkoalF1ZXJ5KTsvKj0KIGpxUGxvdCAxLjAuOHIxMjUw IHwgKGMpIDIwMDktMjAxMyBDaHJpcyBMZW9uZWxsbyB8IGpwbG90LmNvbQorICAganNEYXRlIHwg KGMpIDIwMTAtMjAxMyBDaHJpcyBMZW9uZWxsbworICovKGZ1bmN0aW9uKGEpe2EuanFwbG90LkNh bnZhc0F4aXNUaWNrUmVuZGVyZXI9M0RmdW5jdGlvbihiKXt0aGlzLm1hcms9M0Q9CiJvdXRzaWRl Ijt0aGlzLnNob3dNYXJrPTNEdHJ1ZTt0aGlzLnNob3dHcmlkbGluZT0zRHRydWU7dGhpcy5pc01p bm9yVGljaz0zRD0KZmFsc2U7dGhpcy5hbmdsZT0zRDA7dGhpcy5tYXJrU2l6ZT0zRDQ7dGhpcy5z aG93PTNEdHJ1ZTt0aGlzLnNob3dMYWJlbD0zRHRyPQp1ZTt0aGlzLmxhYmVsUG9zaXRpb249M0Qi YXV0byI7dGhpcy5sYWJlbD0zRCIiO3RoaXMudmFsdWU9M0RudWxsO3RoaXMuX3N0eWw9CmVzPTNE e307dGhpcy5mb3JtYXR0ZXI9M0RhLmpxcGxvdC5EZWZhdWx0VGlja0Zvcm1hdHRlcjt0aGlzLmZv cm1hdFN0cmluZz0zRD0KIiI7dGhpcy5wcmVmaXg9M0QiIjt0aGlzLmZvbnRGYW1pbHk9M0QnIlRy ZWJ1Y2hldCBNUyIsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhPQpucy1zZXJpZic7dGhpcy5mb250U2l6 ZT0zRCIxMHB0Ijt0aGlzLmZvbnRXZWlnaHQ9M0Qibm9ybWFsIjt0aGlzLmZvbnRTdHJldGM9Cmg9 M0QxO3RoaXMudGV4dENvbG9yPTNEIiM2NjY2NjYiO3RoaXMuZW5hYmxlRm9udFN1cHBvcnQ9M0R0 cnVlO3RoaXMucHQycHg9Cj0zRG51bGw7dGhpcy5fZWxlbTt0aGlzLl9jdHg7dGhpcy5fcGxvdFdp ZHRoO3RoaXMuX3Bsb3RIZWlnaHQ7dGhpcy5fcGxvdERpbT0KZW5zaW9ucz0zRHtoZWlnaHQ6bnVs bCx3aWR0aDpudWxsfTthLmV4dGVuZCh0cnVlLHRoaXMsYik7dmFyIGM9M0R7Zm9udFNpemU6PQp0 aGlzLmZvbnRTaXplLGZvbnRXZWlnaHQ6dGhpcy5mb250V2VpZ2h0LGZvbnRTdHJldGNoOnRoaXMu Zm9udFN0cmV0Y2gsZmlsbFM9CnR5bGU6dGhpcy50ZXh0Q29sb3IsYW5nbGU6dGhpcy5nZXRBbmds ZVJhZCgpLGZvbnRGYW1pbHk6dGhpcy5mb250RmFtaWx5fTtpZj0KKHRoaXMucHQycHgpe2MucHQy cHg9M0R0aGlzLnB0MnB4fWlmKHRoaXMuZW5hYmxlRm9udFN1cHBvcnQpe2lmKGEuanFwbG90LnN1 PQpwcG9ydF9jYW52YXNfdGV4dCgpKXt0aGlzLl90ZXh0UmVuZGVyZXI9M0RuZXcgYS5qcXBsb3Qu Q2FudmFzRm9udFJlbmRlcmVyKGM9Cil9ZWxzZXt0aGlzLl90ZXh0UmVuZGVyZXI9M0RuZXcgYS5q cXBsb3QuQ2FudmFzVGV4dFJlbmRlcmVyKGMpfX1lbHNle3RoaXMuXz0KdGV4dFJlbmRlcmVyPTNE bmV3IGEuanFwbG90LkNhbnZhc1RleHRSZW5kZXJlcihjKX19O2EuanFwbG90LkNhbnZhc0F4aXNU aWNrPQpSZW5kZXJlci5wcm90b3R5cGUuaW5pdD0zRGZ1bmN0aW9uKGIpe2EuZXh0ZW5kKHRydWUs dGhpcyxiKTt0aGlzLl90ZXh0UmVuZGU9CnJlci5pbml0KHtmb250U2l6ZTp0aGlzLmZvbnRTaXpl LGZvbnRXZWlnaHQ6dGhpcy5mb250V2VpZ2h0LGZvbnRTdHJldGNoOnRoaT0Kcy5mb250U3RyZXRj aCxmaWxsU3R5bGU6dGhpcy50ZXh0Q29sb3IsYW5nbGU6dGhpcy5nZXRBbmdsZVJhZCgpLGZvbnRG YW1pbHk6PQp0aGlzLmZvbnRGYW1pbHl9KX07YS5qcXBsb3QuQ2FudmFzQXhpc1RpY2tSZW5kZXJl ci5wcm90b3R5cGUuZ2V0V2lkdGg9M0RmdW49CmN0aW9uKGQpe2lmKHRoaXMuX2VsZW0pe3JldHVy biB0aGlzLl9lbGVtLm91dGVyV2lkdGgodHJ1ZSl9ZWxzZXt2YXIgZj0zRHRoaT0Kcy5fdGV4dFJl bmRlcmVyO3ZhciBjPTNEZi5nZXRXaWR0aChkKTt2YXIgZT0zRGYuZ2V0SGVpZ2h0KGQpO3ZhciBi PTNETWF0aC5hPQpicyhNYXRoLnNpbihmLmFuZ2xlKSplKStNYXRoLmFicyhNYXRoLmNvcyhmLmFu Z2xlKSpjKTtyZXR1cm4gYn19O2EuanFwbG90LkM9CmFudmFzQXhpc1RpY2tSZW5kZXJlci5wcm90 b3R5cGUuZ2V0SGVpZ2h0PTNEZnVuY3Rpb24oZCl7aWYodGhpcy5fZWxlbSl7cmV0dT0Kcm4gdGhp cy5fZWxlbS5vdXRlckhlaWdodCh0cnVlKX1lbHNle3ZhciBmPTNEdGhpcy5fdGV4dFJlbmRlcmVy O3ZhciBjPTNEZi5nPQpldFdpZHRoKGQpO3ZhciBlPTNEZi5nZXRIZWlnaHQoZCk7dmFyIGI9M0RN YXRoLmFicyhNYXRoLmNvcyhmLmFuZ2xlKSplKStNYXQ9CmguYWJzKE1hdGguc2luKGYuYW5nbGUp KmMpO3JldHVybiBifX07YS5qcXBsb3QuQ2FudmFzQXhpc1RpY2tSZW5kZXJlci5wcm90bz0KdHlw ZS5nZXRUb3A9M0RmdW5jdGlvbihiKXtpZih0aGlzLl9lbGVtKXtyZXR1cm4gdGhpcy5fZWxlbS5w b3NpdGlvbigpLnRvcH1lPQpsc2V7cmV0dXJuIG51bGx9fTthLmpxcGxvdC5DYW52YXNBeGlzVGlj a1JlbmRlcmVyLnByb3RvdHlwZS5nZXRBbmdsZVJhZD0zRGY9CnVuY3Rpb24oKXt2YXIgYj0zRHRo aXMuYW5nbGUqTWF0aC5QSS8xODA7cmV0dXJuIGJ9O2EuanFwbG90LkNhbnZhc0F4aXNUaWNrUj0K ZW5kZXJlci5wcm90b3R5cGUuc2V0VGljaz0zRGZ1bmN0aW9uKGIsZCxjKXt0aGlzLnZhbHVlPTNE YjtpZihjKXt0aGlzLmlzTWluPQpvclRpY2s9M0R0cnVlfXJldHVybiB0aGlzfTthLmpxcGxvdC5D YW52YXNBeGlzVGlja1JlbmRlcmVyLnByb3RvdHlwZS5kcmF3PQo9M0RmdW5jdGlvbihjLGYpe2lm KCF0aGlzLmxhYmVsKXt0aGlzLmxhYmVsPTNEdGhpcy5wcmVmaXgrdGhpcy5mb3JtYXR0ZXIodGg9 CmlzLmZvcm1hdFN0cmluZyx0aGlzLnZhbHVlKX1pZih0aGlzLl9lbGVtKXtpZihhLmpxcGxvdC51 c2VfZXhjYW52YXMmJndpbmRvdz0KLkdfdm1sQ2FudmFzTWFuYWdlci51bmluaXRFbGVtZW50IT0z RD0zRHVuZGVmaW5lZCl7d2luZG93Lkdfdm1sQ2FudmFzTWFuYWdlPQpyLnVuaW5pdEVsZW1lbnQo dGhpcy5fZWxlbS5nZXQoMCkpfXRoaXMuX2VsZW0uZW1wdHlGb3JjZSgpO3RoaXMuX2VsZW09M0Ru dWw9Cmx9dmFyIGU9M0RmLmNhbnZhc01hbmFnZXIuZ2V0Q2FudmFzKCk7dGhpcy5fdGV4dFJlbmRl cmVyLnNldFRleHQodGhpcy5sYWJlbD0KLGMpO3ZhciBiPTNEdGhpcy5nZXRXaWR0aChjKTt2YXIg ZD0zRHRoaXMuZ2V0SGVpZ2h0KGMpO2Uud2lkdGg9M0RiO2UuaGVpZ2h0PQo9M0RkO2Uuc3R5bGUu d2lkdGg9M0RiO2Uuc3R5bGUuaGVpZ2h0PTNEZDtlLnN0eWxlLnRleHRBbGlnbj0zRCJsZWZ0Ijtl LnN0eWw9CmUucG9zaXRpb249M0QiYWJzb2x1dGUiO2U9M0RmLmNhbnZhc01hbmFnZXIuaW5pdENh bnZhcyhlKTt0aGlzLl9lbGVtPTNEYShlKT0KO3RoaXMuX2VsZW0uY3NzKHRoaXMuX3N0eWxlcyk7 dGhpcy5fZWxlbS5hZGRDbGFzcygianFwbG90LSIrdGhpcy5heGlzKyItdGljPQprIik7ZT0zRG51 bGw7cmV0dXJuIHRoaXMuX2VsZW19O2EuanFwbG90LkNhbnZhc0F4aXNUaWNrUmVuZGVyZXIucHJv dG90eXBlLnA9CmFjaz0zRGZ1bmN0aW9uKCl7dGhpcy5fdGV4dFJlbmRlcmVyLmRyYXcodGhpcy5f ZWxlbS5nZXQoMCkuZ2V0Q29udGV4dCgiMmQiKT0KLHRoaXMubGFiZWwpfX0pKGpRdWVyeSk7Lyog anFQbG90IDEuMC44cjEyNTAgfCAoYykgMjAwOS0yMDEzIENocmlzIExlb25lbGxvPQogfCBqcGxv dC5jb20KKyAgIGpzRGF0ZSB8IChjKSAyMDEwLTIwMTMgQ2hyaXMgTGVvbmVsbG8KKyAqLyhmdW5j dGlvbihkKXt2YXIgZj0zRDA7ZC5qcXBsb3QuQ2FudmFzT3ZlcmxheT0zRGZ1bmN0aW9uKHEpe3Zh ciBvPTNEcXx8PQp7fTt0aGlzLm9wdGlvbnM9M0R7c2hvdzpkLmpxcGxvdC5jb25maWcuZW5hYmxl UGx1Z2lucyxkZWZlckRyYXc6ZmFsc2V9O3RoaXM9Ci5vYmplY3RzPTNEW107dGhpcy5vYmplY3RO YW1lcz0zRFtdO3RoaXMuY2FudmFzPTNEbnVsbDt0aGlzLm1hcmtlclJlbmRlcmVyPQo9M0RuZXcg ZC5qcXBsb3QuTWFya2VyUmVuZGVyZXIoe3N0eWxlOiJsaW5lIn0pO3RoaXMubWFya2VyUmVuZGVy ZXIuaW5pdCgpO3Q9Cmhpcy5oaWdobGlnaHRPYmplY3RJbmRleD0zRG51bGw7aWYoby5vYmplY3Rz KXt2YXIgcz0zRG8ub2JqZWN0cyxyO2Zvcih2YXIgcD0KPTNEMDtwPHMubGVuZ3RoO3ArKyl7cj0z RHNbcF07Zm9yKHZhciB0IGluIHIpe3N3aXRjaCh0KXtjYXNlImxpbmUiOnRoaXMuYWRkPQpMaW5l KHJbdF0pO2JyZWFrO2Nhc2UiaG9yaXpvbnRhbExpbmUiOnRoaXMuYWRkSG9yaXpvbnRhbExpbmUo clt0XSk7YnJlYWs7Y2E9CnNlImRhc2hlZEhvcml6b250YWxMaW5lIjp0aGlzLmFkZERhc2hlZEhv cml6b250YWxMaW5lKHJbdF0pO2JyZWFrO2Nhc2UidmVydD0KaWNhbExpbmUiOnRoaXMuYWRkVmVy dGljYWxMaW5lKHJbdF0pO2JyZWFrO2Nhc2UiZGFzaGVkVmVydGljYWxMaW5lIjp0aGlzLmFkPQpk RGFzaGVkVmVydGljYWxMaW5lKHJbdF0pO2JyZWFrO2Nhc2UicmVjdGFuZ2xlIjp0aGlzLmFkZFJl Y3RhbmdsZShyW3RdKTticmU9CmFrO2RlZmF1bHQ6YnJlYWt9fX19ZC5leHRlbmQodHJ1ZSx0aGlz Lm9wdGlvbnMsbyl9O2QuanFwbG90LkNhbnZhc092ZXJsYXkucD0Kb3N0UGxvdEluaXQ9M0RmdW5j dGlvbihxLHAsbyl7dmFyIG49M0RvfHx7fTt0aGlzLnBsdWdpbnMuY2FudmFzT3ZlcmxheT0zRG5l PQp3IGQuanFwbG90LkNhbnZhc092ZXJsYXkobi5jYW52YXNPdmVybGF5KX07ZnVuY3Rpb24gaSgp e3RoaXMudWlkPTNEbnVsbDt0aGk9CnMudHlwZT0zRG51bGw7dGhpcy5ncmlkU3RhcnQ9M0RudWxs O3RoaXMuZ3JpZFN0b3A9M0RudWxsO3RoaXMudG9vbHRpcFdpZHRoRj0KYWN0b3I9M0QwO3RoaXMu b3B0aW9ucz0zRHtuYW1lOm51bGwsc2hvdzp0cnVlLGxpbmVXaWR0aDoyLGxpbmVDYXA6InJvdW5k IixjPQpvbG9yOiIjNjY2NjY2IixzaGFkb3c6dHJ1ZSxzaGFkb3dBbmdsZTo0NSxzaGFkb3dPZmZz ZXQ6MSxzaGFkb3dEZXB0aDozLHNoYWQ9Cm93QWxwaGE6IjAuMDciLHhheGlzOiJ4YXhpcyIseWF4 aXM6InlheGlzIixzaG93VG9vbHRpcDpmYWxzZSxzaG93VG9vbHRpcFByZT0KY2lzaW9uOjAuNix0 b29sdGlwTG9jYXRpb246Im53IixmYWRlVG9vbHRpcDp0cnVlLHRvb2x0aXBGYWRlU3BlZWQ6ImZh c3QiLHRvPQpvbHRpcE9mZnNldDo0LHRvb2x0aXBGb3JtYXRTdHJpbmc6IiVkLCAlZCJ9fWZ1bmN0 aW9uIG0obil7aS5jYWxsKHRoaXMpO3RoaXM9Ci50eXBlPTNEInJlY3RhbmdsZSI7dmFyIG89M0R7 eG1pbjpudWxsLHhtYXg6bnVsbCx4T2Zmc2V0OiI2cHgiLHhtaW5PZmZzZXQ6bj0KdWxsLHhtYXhP ZmZzZXQ6bnVsbCx5bWluOm51bGwseW1heDpudWxsLHlPZmZzZXQ6IjZweCIseW1pbk9mZnNldDpu dWxsLHltYXhPPQpmZnNldDpudWxsfTtkLmV4dGVuZCh0cnVlLHRoaXMub3B0aW9ucyxvLG4pO2lm KHRoaXMub3B0aW9ucy5zaG93VG9vbHRpcFByZWM9CmlzaW9uPDAuMDEpe3RoaXMub3B0aW9ucy5z aG93VG9vbHRpcFByZWNpc2lvbj0zRDAuMDF9fW0ucHJvdG90eXBlPTNEbmV3IGkoKT0KO20ucHJv dG90eXBlLmNvbnN0cnVjdG9yPTNEbTtmdW5jdGlvbiBiKG4pe2kuY2FsbCh0aGlzKTt0aGlzLnR5 cGU9M0QibGluZSI7PQp2YXIgbz0zRHtzdGFydDpbXSxzdG9wOltdfTtkLmV4dGVuZCh0cnVlLHRo aXMub3B0aW9ucyxvLG4pO2lmKHRoaXMub3B0aW9ucy49CnNob3dUb29sdGlwUHJlY2lzaW9uPDAu MDEpe3RoaXMub3B0aW9ucy5zaG93VG9vbHRpcFByZWNpc2lvbj0zRDAuMDF9fWIucHJvdD0Kb3R5 cGU9M0RuZXcgaSgpO2IucHJvdG90eXBlLmNvbnN0cnVjdG9yPTNEYjtmdW5jdGlvbiBlKG4pe2ku Y2FsbCh0aGlzKTt0aGlzPQoudHlwZT0zRCJob3Jpem9udGFsTGluZSI7dmFyIG89M0R7eTpudWxs LHhtaW46bnVsbCx4bWF4Om51bGwseE9mZnNldDoiNnB4Iiw9CnhtaW5PZmZzZXQ6bnVsbCx4bWF4 T2Zmc2V0Om51bGx9O2QuZXh0ZW5kKHRydWUsdGhpcy5vcHRpb25zLG8sbik7aWYodGhpcy5vcD0K dGlvbnMuc2hvd1Rvb2x0aXBQcmVjaXNpb248MC4wMSl7dGhpcy5vcHRpb25zLnNob3dUb29sdGlw UHJlY2lzaW9uPTNEMC4wMX19PQplLnByb3RvdHlwZT0zRG5ldyBpKCk7ZS5wcm90b3R5cGUuY29u c3RydWN0b3I9M0RlO2Z1bmN0aW9uIGoobil7aS5jYWxsKHRoaXM9Cik7dGhpcy50eXBlPTNEImRh c2hlZEhvcml6b250YWxMaW5lIjt2YXIgbz0zRHt5Om51bGwseG1pbjpudWxsLHhtYXg6bnVsbCx4 Tz0KZmZzZXQ6IjZweCIseG1pbk9mZnNldDpudWxsLHhtYXhPZmZzZXQ6bnVsbCxkYXNoUGF0dGVy bjpbOCw4XX07ZC5leHRlbmQodHJ1PQplLHRoaXMub3B0aW9ucyxvLG4pO2lmKHRoaXMub3B0aW9u cy5zaG93VG9vbHRpcFByZWNpc2lvbjwwLjAxKXt0aGlzLm9wdGlvbnM9Ci5zaG93VG9vbHRpcFBy ZWNpc2lvbj0zRDAuMDF9fWoucHJvdG90eXBlPTNEbmV3IGkoKTtqLnByb3RvdHlwZS5jb25zdHJ1 Y3Rvcj0KPTNEajtmdW5jdGlvbiBjKG4pe2kuY2FsbCh0aGlzKTt0aGlzLnR5cGU9M0QidmVydGlj YWxMaW5lIjt2YXIgbz0zRHt4Om51bGwsPQp5bWluOm51bGwseW1heDpudWxsLHlPZmZzZXQ6IjZw eCIseW1pbk9mZnNldDpudWxsLHltYXhPZmZzZXQ6bnVsbH07ZC5leHRlbmQ9Cih0cnVlLHRoaXMu b3B0aW9ucyxvLG4pO2lmKHRoaXMub3B0aW9ucy5zaG93VG9vbHRpcFByZWNpc2lvbjwwLjAxKXt0 aGlzLm9wdD0KaW9ucy5zaG93VG9vbHRpcFByZWNpc2lvbj0zRDAuMDF9fWMucHJvdG90eXBlPTNE bmV3IGkoKTtjLnByb3RvdHlwZS5jb25zdHJ1PQpjdG9yPTNEYztmdW5jdGlvbiBsKG4pe2kuY2Fs bCh0aGlzKTt0aGlzLnR5cGU9M0QiZGFzaGVkVmVydGljYWxMaW5lIjt0aGlzLnM9CnRhcnQ9M0Ru dWxsO3RoaXMuc3RvcD0zRG51bGw7dmFyIG89M0R7eDpudWxsLHltaW46bnVsbCx5bWF4Om51bGws eU9mZnNldDoiNj0KcHgiLHltaW5PZmZzZXQ6bnVsbCx5bWF4T2Zmc2V0Om51bGwsZGFzaFBhdHRl cm46WzgsOF19O2QuZXh0ZW5kKHRydWUsdGhpcy5vPQpwdGlvbnMsbyxuKTtpZih0aGlzLm9wdGlv bnMuc2hvd1Rvb2x0aXBQcmVjaXNpb248MC4wMSl7dGhpcy5vcHRpb25zLnNob3dUb289Cmx0aXBQ cmVjaXNpb249M0QwLjAxfX1sLnByb3RvdHlwZT0zRG5ldyBpKCk7bC5wcm90b3R5cGUuY29uc3Ry dWN0b3I9M0RsO2Quaj0KcXBsb3QuQ2FudmFzT3ZlcmxheS5wcm90b3R5cGUuYWRkTGluZT0zRGZ1 bmN0aW9uKG8pe3ZhciBuPTNEbmV3IGIobyk7bi51aWQ9Cj0zRGYrKzt0aGlzLm9iamVjdHMucHVz aChuKTt0aGlzLm9iamVjdE5hbWVzLnB1c2gobi5vcHRpb25zLm5hbWUpfTtkLmpxcGxvdD0KLkNh bnZhc092ZXJsYXkucHJvdG90eXBlLmFkZEhvcml6b250YWxMaW5lPTNEZnVuY3Rpb24obyl7dmFy IG49M0RuZXcgZShvKTtuPQoudWlkPTNEZisrO3RoaXMub2JqZWN0cy5wdXNoKG4pO3RoaXMub2Jq ZWN0TmFtZXMucHVzaChuLm9wdGlvbnMubmFtZSl9O2QuanE9CnBsb3QuQ2FudmFzT3ZlcmxheS5w cm90b3R5cGUuYWRkRGFzaGVkSG9yaXpvbnRhbExpbmU9M0RmdW5jdGlvbihvKXt2YXIgbj0zRD0K bmV3IGoobyk7bi51aWQ9M0RmKys7dGhpcy5vYmplY3RzLnB1c2gobik7dGhpcy5vYmplY3ROYW1l cy5wdXNoKG4ub3B0aW9ucy5uPQphbWUpfTtkLmpxcGxvdC5DYW52YXNPdmVybGF5LnByb3RvdHlw ZS5hZGRWZXJ0aWNhbExpbmU9M0RmdW5jdGlvbihvKXt2YXIgbj0KPTNEbmV3IGMobyk7bi51aWQ9 M0RmKys7dGhpcy5vYmplY3RzLnB1c2gobik7dGhpcy5vYmplY3ROYW1lcy5wdXNoKG4ub3B0aW9u PQpzLm5hbWUpfTtkLmpxcGxvdC5DYW52YXNPdmVybGF5LnByb3RvdHlwZS5hZGREYXNoZWRWZXJ0 aWNhbExpbmU9M0RmdW5jdGlvbig9Cm8pe3ZhciBuPTNEbmV3IGwobyk7bi51aWQ9M0RmKys7dGhp cy5vYmplY3RzLnB1c2gobik7dGhpcy5vYmplY3ROYW1lcy5wdXNoKD0Kbi5vcHRpb25zLm5hbWUp fTtkLmpxcGxvdC5DYW52YXNPdmVybGF5LnByb3RvdHlwZS5hZGRSZWN0YW5nbGU9M0RmdW5jdGlv bihvPQope3ZhciBuPTNEbmV3IG0obyk7bi51aWQ9M0RmKys7dGhpcy5vYmplY3RzLnB1c2gobik7 dGhpcy5vYmplY3ROYW1lcy5wdXNoKG49Ci5vcHRpb25zLm5hbWUpfTtkLmpxcGxvdC5DYW52YXNP dmVybGF5LnByb3RvdHlwZS5yZW1vdmVPYmplY3Q9M0RmdW5jdGlvbihuKT0Ke2lmKGQudHlwZShu KT0zRD0zRCJudW1iZXIiKXt0aGlzLm9iamVjdHMuc3BsaWNlKG4sMSk7dGhpcy5vYmplY3ROYW1l cy5zcGxpPQpjZShuLDEpfWVsc2V7dmFyIG89M0RkLmluQXJyYXkobix0aGlzLm9iamVjdE5hbWVz KTtpZihvIT0zRC0xKXt0aGlzLm9iamVjdHM9Ci5zcGxpY2UobywxKTt0aGlzLm9iamVjdE5hbWVz LnNwbGljZShvLDEpfX19O2QuanFwbG90LkNhbnZhc092ZXJsYXkucHJvdG90eT0KcGUuZ2V0T2Jq ZWN0PTNEZnVuY3Rpb24obil7aWYoZC50eXBlKG4pPTNEPTNEIm51bWJlciIpe3JldHVybiB0aGlz Lm9iamVjdHNbPQpuXX1lbHNle3ZhciBvPTNEZC5pbkFycmF5KG4sdGhpcy5vYmplY3ROYW1lcyk7 aWYobyE9M0QtMSl7cmV0dXJuIHRoaXMub2JqZWM9CnRzW29dfX19O2QuanFwbG90LkNhbnZhc092 ZXJsYXkucHJvdG90eXBlLmdldD0zRGQuanFwbG90LkNhbnZhc092ZXJsYXkucHJvdD0Kb3R5cGUu Z2V0T2JqZWN0O2QuanFwbG90LkNhbnZhc092ZXJsYXkucHJvdG90eXBlLmNsZWFyPTNEZnVuY3Rp b24obil7dGhpcy5jPQphbnZhcy5fY3R4LmNsZWFyUmVjdCgwLDAsdGhpcy5jYW52YXMuZ2V0V2lk dGgoKSx0aGlzLmNhbnZhcy5nZXRIZWlnaHQoKSl9O2Q9Ci5qcXBsb3QuQ2FudmFzT3ZlcmxheS5w cm90b3R5cGUuZHJhdz0zRGZ1bmN0aW9uKEspe3ZhciBBLHY9M0R0aGlzLm9iamVjdHMsRj0KPTNE dGhpcy5tYXJrZXJSZW5kZXJlcixzLEc7aWYodGhpcy5vcHRpb25zLnNob3cpe3RoaXMuY2FudmFz Ll9jdHguY2xlYXJSZWN0PQooMCwwLHRoaXMuY2FudmFzLmdldFdpZHRoKCksdGhpcy5jYW52YXMu Z2V0SGVpZ2h0KCkpO2Zvcih2YXIgSD0zRDA7SDx2Lmxlbmc9CnRoO0grKyl7QT0zRHZbSF07dmFy IEI9M0RkLmV4dGVuZCh0cnVlLHt9LEEub3B0aW9ucyk7aWYoQS5vcHRpb25zLnNob3cpe0Yucz0K aGFkb3c9M0RBLm9wdGlvbnMuc2hhZG93O0EudG9vbHRpcFdpZHRoRmFjdG9yPTNEQS5vcHRpb25z LmxpbmVXaWR0aC9BLm9wdGlvPQpucy5zaG93VG9vbHRpcFByZWNpc2lvbjtzd2l0Y2goQS50eXBl KXtjYXNlImxpbmUiOkYuc3R5bGU9M0QibGluZSI7Qi5jbG9zZVA9CmF0aD0zRGZhbHNlO3M9M0Rb Sy5heGVzW0Eub3B0aW9ucy54YXhpc10uc2VyaWVzX3UycChBLm9wdGlvbnMuc3RhcnRbMF0pLEsu YT0KeGVzW0Eub3B0aW9ucy55YXhpc10uc2VyaWVzX3UycChBLm9wdGlvbnMuc3RhcnRbMV0pXTtH PTNEW0suYXhlc1tBLm9wdGlvbnMuPQp4YXhpc10uc2VyaWVzX3UycChBLm9wdGlvbnMuc3RvcFsw XSksSy5heGVzW0Eub3B0aW9ucy55YXhpc10uc2VyaWVzX3UycChBLm89CnB0aW9ucy5zdG9wWzFd KV07QS5ncmlkU3RhcnQ9M0RzO0EuZ3JpZFN0b3A9M0RHO0YuZHJhdyhzLEcsdGhpcy5jYW52YXMu X2N0eD0KLEIpO2JyZWFrO2Nhc2UiaG9yaXpvbnRhbExpbmUiOmlmKEEub3B0aW9ucy55IT0zRG51 bGwpe0Yuc3R5bGU9M0QibGluZSI7Qi5jPQpsb3NlUGF0aD0zRGZhbHNlO3ZhciBwPTNESy5heGVz W0Eub3B0aW9ucy54YXhpc10sUyxMLHc9M0RLLmF4ZXNbQS5vcHRpb25zLnk9CmF4aXNdLnNlcmll c191MnAoQS5vcHRpb25zLnkpLEk9M0RBLm9wdGlvbnMueG1pbk9mZnNldHx8QS5vcHRpb25zLnhP ZmZzZXQsdD0KPTNEQS5vcHRpb25zLnhtYXhPZmZzZXR8fEEub3B0aW9ucy54T2Zmc2V0O2lmKEEu b3B0aW9ucy54bWluIT0zRG51bGwpe1M9M0RwPQouc2VyaWVzX3UycChBLm9wdGlvbnMueG1pbil9 ZWxzZXtpZihJIT0zRG51bGwpe2lmKGQudHlwZShJKT0zRD0zRCJudW1iZXIiKXs9ClM9M0RwLnNl cmllc191MnAocC5taW4rSSl9ZWxzZXtpZihkLnR5cGUoSSk9M0Q9M0Qic3RyaW5nIil7Uz0zRHAu c2VyaWVzX3UycD0KKHAubWluKStwYXJzZUZsb2F0KEkpfX19fWlmKEEub3B0aW9ucy54bWF4IT0z RG51bGwpe0w9M0RwLnNlcmllc191MnAoQS5vcHRpPQpvbnMueG1heCl9ZWxzZXtpZih0IT0zRG51 bGwpe2lmKGQudHlwZSh0KT0zRD0zRCJudW1iZXIiKXtMPTNEcC5zZXJpZXNfdTJwKHA9Ci5tYXgt dCl9ZWxzZXtpZihkLnR5cGUodCk9M0Q9M0Qic3RyaW5nIil7TD0zRHAuc2VyaWVzX3UycChwLm1h eCktcGFyc2VGbG9hdD0KKHQpfX19fWlmKEwhPTNEbnVsbCYmUyE9M0RudWxsKXtBLmdyaWRTdGFy dD0zRFtTLHddO0EuZ3JpZFN0b3A9M0RbTCx3XTtGLmRyPQphdyhbUyx3XSxbTCx3XSx0aGlzLmNh bnZhcy5fY3R4LEIpfX1icmVhaztjYXNlImRhc2hlZEhvcml6b250YWxMaW5lIjp2YXIgbz0KPTNE QS5vcHRpb25zLmRhc2hQYXR0ZXJuO3ZhciBFPTNEMDtmb3IodmFyIE09M0QwO008by5sZW5ndGg7 TSsrKXtFKz0zRG9bTV19PQppZihBLm9wdGlvbnMueSE9M0RudWxsKXtGLnN0eWxlPTNEImxpbmUi O0IuY2xvc2VQYXRoPTNEZmFsc2U7dmFyIHA9M0RLLmF4ZXM9CltBLm9wdGlvbnMueGF4aXNdLFMs TCx3PTNESy5heGVzW0Eub3B0aW9ucy55YXhpc10uc2VyaWVzX3UycChBLm9wdGlvbnMueSksST0K PTNEQS5vcHRpb25zLnhtaW5PZmZzZXR8fEEub3B0aW9ucy54T2Zmc2V0LHQ9M0RBLm9wdGlvbnMu eG1heE9mZnNldHx8QS5vcHRpPQpvbnMueE9mZnNldDtpZihBLm9wdGlvbnMueG1pbiE9M0RudWxs KXtTPTNEcC5zZXJpZXNfdTJwKEEub3B0aW9ucy54bWluKX1lbHM9CmV7aWYoSSE9M0RudWxsKXtp ZihkLnR5cGUoSSk9M0Q9M0QibnVtYmVyIil7Uz0zRHAuc2VyaWVzX3UycChwLm1pbitJKX1lbHNl ez0KaWYoZC50eXBlKEkpPTNEPTNEInN0cmluZyIpe1M9M0RwLnNlcmllc191MnAocC5taW4pK3Bh cnNlRmxvYXQoSSl9fX19aWYoQS5vPQpwdGlvbnMueG1heCE9M0RudWxsKXtMPTNEcC5zZXJpZXNf dTJwKEEub3B0aW9ucy54bWF4KX1lbHNle2lmKHQhPTNEbnVsbCl7aWY9CihkLnR5cGUodCk9M0Q9 M0QibnVtYmVyIil7TD0zRHAuc2VyaWVzX3UycChwLm1heC10KX1lbHNle2lmKGQudHlwZSh0KT0z RD0zRD0KInN0cmluZyIpe0w9M0RwLnNlcmllc191MnAocC5tYXgpLXBhcnNlRmxvYXQodCl9fX19 aWYoTCE9M0RudWxsJiZTIT0zRG51bGwpPQp7QS5ncmlkU3RhcnQ9M0RbUyx3XTtBLmdyaWRTdG9w PTNEW0wsd107dmFyIHI9M0RNYXRoLmNlaWwoKEwtUykvRSk7dmFyIFE9M0Q9ClMsTztmb3IodmFy IE09M0QwO008cjtNKyspe2Zvcih2YXIgSj0zRDA7SjxvLmxlbmd0aDtKKz0zRDIpe089M0RRK29b Sl07Ri5kcj0KYXcoW1Esd10sW08sd10sdGhpcy5jYW52YXMuX2N0eCxCKTtRKz0zRG9bSl07aWYo SjxvLmxlbmd0aC0xKXtRKz0zRG9bSisxXX19PQp9fX1icmVhaztjYXNlInZlcnRpY2FsTGluZSI6 aWYoQS5vcHRpb25zLnghPTNEbnVsbCl7Ri5zdHlsZT0zRCJsaW5lIjtCLmNsb3M9CmVQYXRoPTNE ZmFsc2U7dmFyIE49M0RLLmF4ZXNbQS5vcHRpb25zLnlheGlzXSxuLHUsej0zREsuYXhlc1tBLm9w dGlvbnMueGF4aT0Kc10uc2VyaWVzX3UycChBLm9wdGlvbnMueCksRD0zREEub3B0aW9ucy55bWlu T2Zmc2V0fHxBLm9wdGlvbnMueU9mZnNldCxxPTNEPQpBLm9wdGlvbnMueW1heE9mZnNldHx8QS5v cHRpb25zLnlPZmZzZXQ7aWYoQS5vcHRpb25zLnltaW4hPTNEbnVsbCl7bj0zRE4uc2U9CnJpZXNf dTJwKEEub3B0aW9ucy55bWluKX1lbHNle2lmKEQhPTNEbnVsbCl7aWYoZC50eXBlKEQpPTNEPTNE Im51bWJlciIpe249Cj0zRE4uc2VyaWVzX3UycChOLm1pbi1EKX1lbHNle2lmKGQudHlwZShEKT0z RD0zRCJzdHJpbmciKXtuPTNETi5zZXJpZXNfdTJwKD0KTi5taW4pLXBhcnNlRmxvYXQoRCl9fX19 aWYoQS5vcHRpb25zLnltYXghPTNEbnVsbCl7dT0zRE4uc2VyaWVzX3UycChBLm9wdGlvPQpucy55 bWF4KX1lbHNle2lmKHEhPTNEbnVsbCl7aWYoZC50eXBlKHEpPTNEPTNEIm51bWJlciIpe3U9M0RO LnNlcmllc191MnAoTi49Cm1heCtxKX1lbHNle2lmKGQudHlwZShxKT0zRD0zRCJzdHJpbmciKXt1 PTNETi5zZXJpZXNfdTJwKE4ubWF4KStwYXJzZUZsb2F0KD0KcSl9fX19aWYodSE9M0RudWxsJiZu IT0zRG51bGwpe0EuZ3JpZFN0YXJ0PTNEW3osbl07QS5ncmlkU3RvcD0zRFt6LHVdO0YuZHJhPQp3 KFt6LG5dLFt6LHVdLHRoaXMuY2FudmFzLl9jdHgsQil9fWJyZWFrO2Nhc2UiZGFzaGVkVmVydGlj YWxMaW5lIjp2YXIgbz0zREE9Ci5vcHRpb25zLmRhc2hQYXR0ZXJuO3ZhciBFPTNEMDtmb3IodmFy IE09M0QwO008by5sZW5ndGg7TSsrKXtFKz0zRG9bTV19aWYoQT0KLm9wdGlvbnMueCE9M0RudWxs KXtGLnN0eWxlPTNEImxpbmUiO0IuY2xvc2VQYXRoPTNEZmFsc2U7dmFyIE49M0RLLmF4ZXNbQS5v PQpwdGlvbnMueWF4aXNdLG4sdSx6PTNESy5heGVzW0Eub3B0aW9ucy54YXhpc10uc2VyaWVzX3Uy cChBLm9wdGlvbnMueCksRD0zREE9Ci5vcHRpb25zLnltaW5PZmZzZXR8fEEub3B0aW9ucy55T2Zm c2V0LHE9M0RBLm9wdGlvbnMueW1heE9mZnNldHx8QS5vcHRpb25zLj0KeU9mZnNldDtpZihBLm9w dGlvbnMueW1pbiE9M0RudWxsKXtuPTNETi5zZXJpZXNfdTJwKEEub3B0aW9ucy55bWluKX1lbHNl e2lmPQooRCE9M0RudWxsKXtpZihkLnR5cGUoRCk9M0Q9M0QibnVtYmVyIil7bj0zRE4uc2VyaWVz X3UycChOLm1pbi1EKX1lbHNle2lmKGQ9Ci50eXBlKEQpPTNEPTNEInN0cmluZyIpe249M0ROLnNl cmllc191MnAoTi5taW4pLXBhcnNlRmxvYXQoRCl9fX19aWYoQS5vcHRpbz0KbnMueW1heCE9M0Ru dWxsKXt1PTNETi5zZXJpZXNfdTJwKEEub3B0aW9ucy55bWF4KX1lbHNle2lmKHEhPTNEbnVsbCl7 aWYoZC50PQp5cGUocSk9M0Q9M0QibnVtYmVyIil7dT0zRE4uc2VyaWVzX3UycChOLm1heCtxKX1l bHNle2lmKGQudHlwZShxKT0zRD0zRCJzdHI9CmluZyIpe3U9M0ROLnNlcmllc191MnAoTi5tYXgp K3BhcnNlRmxvYXQocSl9fX19aWYodSE9M0RudWxsJiZuIT0zRG51bGwpe0EuZz0KcmlkU3RhcnQ9 M0RbeixuXTtBLmdyaWRTdG9wPTNEW3osdV07dmFyIHI9M0RNYXRoLmNlaWwoKG4tdSkvRSk7dmFy IEM9M0QoKHIqPQpFKS0obi11KSkvMjt2YXIgUT0zRG4sTyxQLFI7Zm9yKHZhciBNPTNEMDtNPHI7 TSsrKXtmb3IodmFyIEo9M0QwO0o8by5sZW5ndGg9CjtKKz0zRDIpe089M0RRLW9bSl07aWYoTzx1 KXtPPTNEdX1pZihRPHUpe1E9M0R1fUYuZHJhdyhbeixRXSxbeixPXSx0aGlzLmNhbj0KdmFzLl9j dHgsQik7US09M0RvW0pdO2lmKEo8by5sZW5ndGgtMSl7US09M0RvW0orMV19fX19fWJyZWFrO2Nh c2UicmVjdGFuZ2xlPQoiOkYuc3R5bGU9M0QibGluZSI7Qi5jbG9zZVBhdGg9M0R0cnVlO3ZhciBw PTNESy5heGVzW0Eub3B0aW9ucy54YXhpc10sUyxMLHc9Cj0zREsuYXhlc1tBLm9wdGlvbnMueWF4 aXNdLnNlcmllc191MnAoQS5vcHRpb25zLnkpLEk9M0RBLm9wdGlvbnMueG1pbk9mZnNldD0KfHxB Lm9wdGlvbnMueE9mZnNldCx0PTNEQS5vcHRpb25zLnhtYXhPZmZzZXR8fEEub3B0aW9ucy54T2Zm c2V0O2lmKEEub3B0aW9uPQpzLnhtaW4hPTNEbnVsbCl7Uz0zRHAuc2VyaWVzX3UycChBLm9wdGlv bnMueG1pbil9ZWxzZXtpZihJIT0zRG51bGwpe2lmKGQudHk9CnBlKEkpPTNEPTNEIm51bWJlciIp e1M9M0RwLnNlcmllc191MnAocC5taW4rSSl9ZWxzZXtpZihkLnR5cGUoSSk9M0Q9M0Qic3RyaT0K bmciKXtTPTNEcC5zZXJpZXNfdTJwKHAubWluKStwYXJzZUZsb2F0KEkpfX19fWlmKEEub3B0aW9u cy54bWF4IT0zRG51bGwpe0w9Cj0zRHAuc2VyaWVzX3UycChBLm9wdGlvbnMueG1heCl9ZWxzZXtp Zih0IT0zRG51bGwpe2lmKGQudHlwZSh0KT0zRD0zRCJudW1iZT0KciIpe0w9M0RwLnNlcmllc191 MnAocC5tYXgtdCl9ZWxzZXtpZihkLnR5cGUodCk9M0Q9M0Qic3RyaW5nIil7TD0zRHAuc2VyaWVz PQpfdTJwKHAubWF4KS1wYXJzZUZsb2F0KHQpfX19fXZhciBOPTNESy5heGVzW0Eub3B0aW9ucy55 YXhpc10sbix1LHo9M0RLLmF4ZXM9CltBLm9wdGlvbnMueGF4aXNdLnNlcmllc191MnAoQS5vcHRp b25zLngpLEQ9M0RBLm9wdGlvbnMueW1pbk9mZnNldHx8QS5vcHRpbz0KbnMueU9mZnNldCxxPTNE QS5vcHRpb25zLnltYXhPZmZzZXR8fEEub3B0aW9ucy55T2Zmc2V0O2lmKEEub3B0aW9ucy55bWlu IT0KPTNEbnVsbCl7bj0zRE4uc2VyaWVzX3UycChBLm9wdGlvbnMueW1pbil9ZWxzZXtpZihEIT0z RG51bGwpe2lmKGQudHlwZShEKT0KPTNEPTNEIm51bWJlciIpe249M0ROLnNlcmllc191MnAoTi5t aW4tRCl9ZWxzZXtpZihkLnR5cGUoRCk9M0Q9M0Qic3RyaW5nIil7PQpuPTNETi5zZXJpZXNfdTJw KE4ubWluKS1wYXJzZUZsb2F0KEQpfX19fWlmKEEub3B0aW9ucy55bWF4IT0zRG51bGwpe3U9M0RO LnM9CmVyaWVzX3UycChBLm9wdGlvbnMueW1heCl9ZWxzZXtpZihxIT0zRG51bGwpe2lmKGQudHlw ZShxKT0zRD0zRCJudW1iZXIiKXt1PQo9M0ROLnNlcmllc191MnAoTi5tYXgrcSl9ZWxzZXtpZihk LnR5cGUocSk9M0Q9M0Qic3RyaW5nIil7dT0zRE4uc2VyaWVzX3UycCg9Ck4ubWF4KStwYXJzZUZs b2F0KHEpfX19fWlmKEwhPTNEbnVsbCYmUyE9M0RudWxsJiZ1IT0zRG51bGwmJm4hPTNEbnVsbCl7 QS5ncj0KaWRTdGFydD0zRFtTLG5dO0EuZ3JpZFN0b3A9M0RbTCx1XTt0aGlzLmNhbnZhcy5fY3R4 LmZpbGxTdHlsZT0zREEub3B0aW9ucy5jPQpvbG9yO3RoaXMuY2FudmFzLl9jdHguZmlsbFJlY3Qo UyxuLEwtUyx1LW4pfWJyZWFrO2RlZmF1bHQ6YnJlYWt9fX19fTtkLmpxcGw9Cm90LkNhbnZhc092 ZXJsYXkucG9zdFBsb3REcmF3PTNEZnVuY3Rpb24oKXt2YXIgbz0zRHRoaXMucGx1Z2lucy5jYW52 YXNPdmVybD0KYXk7aWYobyYmby5oaWdobGlnaHRDYW52YXMpe28uaGlnaGxpZ2h0Q2FudmFzLnJl c2V0Q2FudmFzKCk7by5oaWdobGlnaHRDYW52PQphcz0zRG51bGx9by5jYW52YXM9M0RuZXcgZC5q cXBsb3QuR2VuZXJpY0NhbnZhcygpO3RoaXMuZXZlbnRDYW52YXMuX2VsZW0uYmU9CmZvcmUoby5j YW52YXMuY3JlYXRlRWxlbWVudCh0aGlzLl9ncmlkUGFkZGluZywianFwbG90LW92ZXJsYXlDYW52 YXMtY2FudmFzIj0KLHRoaXMuX3Bsb3REaW1lbnNpb25zLHRoaXMpKTtvLmNhbnZhcy5zZXRDb250 ZXh0KCk7aWYoIW8uZGVmZXJEcmF3KXtvLmRyYXcoPQp0aGlzKX12YXIgbj0zRGRvY3VtZW50LmNy ZWF0ZUVsZW1lbnQoImRpdiIpO28uX3Rvb2x0aXBFbGVtPTNEZChuKTtuPTNEbnVsbDs9Cm8uX3Rv b2x0aXBFbGVtLmFkZENsYXNzKCJqcXBsb3QtY2FudmFzT3ZlcmxheS10b29sdGlwIik7by5fdG9v bHRpcEVsZW0uY3NzKD0Ke3Bvc2l0aW9uOiJhYnNvbHV0ZSIsZGlzcGxheToibm9uZSJ9KTt0aGlz LmV2ZW50Q2FudmFzLl9lbGVtLmJlZm9yZShvLl90b29sPQp0aXBFbGVtKTt0aGlzLmV2ZW50Q2Fu dmFzLl9lbGVtLmJpbmQoIm1vdXNlbGVhdmUiLHtlbGVtOm8uX3Rvb2x0aXBFbGVtfSxmdW49CmN0 aW9uKHApe3AuZGF0YS5lbGVtLmhpZGUoKX0pO3ZhciBvPTNEbnVsbH07ZnVuY3Rpb24gayhzLHEs cixwKXt2YXIgdT0zRHMucD0KbHVnaW5zLmNhbnZhc092ZXJsYXk7dmFyIG89M0R1Ll90b29sdGlw RWxlbTt2YXIgbj0zRHEub3B0aW9ucyx2LHQ7by5odG1sKGQuPQpqcXBsb3Quc3ByaW50ZihuLnRv b2x0aXBGb3JtYXRTdHJpbmcscFswXSxwWzFdKSk7c3dpdGNoKG4udG9vbHRpcExvY2F0aW9uKXs9 CmNhc2UibnciOnY9M0RyWzBdK3MuX2dyaWRQYWRkaW5nLmxlZnQtby5vdXRlcldpZHRoKHRydWUp LW4udG9vbHRpcE9mZnNldDt0PQo9M0RyWzFdK3MuX2dyaWRQYWRkaW5nLnRvcC1uLnRvb2x0aXBP ZmZzZXQtby5vdXRlckhlaWdodCh0cnVlKTticmVhaztjYXNlIm49CiI6dj0zRHJbMF0rcy5fZ3Jp ZFBhZGRpbmcubGVmdC1vLm91dGVyV2lkdGgodHJ1ZSkvMjt0PTNEclsxXStzLl9ncmlkUGFkZGlu Zz0KLnRvcC1uLnRvb2x0aXBPZmZzZXQtby5vdXRlckhlaWdodCh0cnVlKTticmVhaztjYXNlIm5l Ijp2PTNEclswXStzLl9ncmlkUGFkPQpkaW5nLmxlZnQrbi50b29sdGlwT2Zmc2V0O3Q9M0RyWzFd K3MuX2dyaWRQYWRkaW5nLnRvcC1uLnRvb2x0aXBPZmZzZXQtby5vdXQ9CmVySGVpZ2h0KHRydWUp O2JyZWFrO2Nhc2UiZSI6dj0zRHJbMF0rcy5fZ3JpZFBhZGRpbmcubGVmdCtuLnRvb2x0aXBPZmZz ZXQ7dD0KPTNEclsxXStzLl9ncmlkUGFkZGluZy50b3Atby5vdXRlckhlaWdodCh0cnVlKS8yO2Jy ZWFrO2Nhc2Uic2UiOnY9M0RyWzBdK3MuPQpfZ3JpZFBhZGRpbmcubGVmdCtuLnRvb2x0aXBPZmZz ZXQ7dD0zRHJbMV0rcy5fZ3JpZFBhZGRpbmcudG9wK24udG9vbHRpcE9mZnM9CmV0O2JyZWFrO2Nh c2UicyI6dj0zRHJbMF0rcy5fZ3JpZFBhZGRpbmcubGVmdC1vLm91dGVyV2lkdGgodHJ1ZSkvMjt0 PTNEclsxXT0KK3MuX2dyaWRQYWRkaW5nLnRvcCtuLnRvb2x0aXBPZmZzZXQ7YnJlYWs7Y2FzZSJz dyI6dj0zRHJbMF0rcy5fZ3JpZFBhZGRpbmcuPQpsZWZ0LW8ub3V0ZXJXaWR0aCh0cnVlKS1uLnRv b2x0aXBPZmZzZXQ7dD0zRHJbMV0rcy5fZ3JpZFBhZGRpbmcudG9wK24udG9vbHQ9CmlwT2Zmc2V0 O2JyZWFrO2Nhc2UidyI6dj0zRHJbMF0rcy5fZ3JpZFBhZGRpbmcubGVmdC1vLm91dGVyV2lkdGgo dHJ1ZSktbi50bz0Kb2x0aXBPZmZzZXQ7dD0zRHJbMV0rcy5fZ3JpZFBhZGRpbmcudG9wLW8ub3V0 ZXJIZWlnaHQodHJ1ZSkvMjticmVhaztkZWZhdWx0PQo6dj0zRHJbMF0rcy5fZ3JpZFBhZGRpbmcu bGVmdC1vLm91dGVyV2lkdGgodHJ1ZSktbi50b29sdGlwT2Zmc2V0O3Q9M0RyWzFdK3M9Ci5fZ3Jp ZFBhZGRpbmcudG9wLW4udG9vbHRpcE9mZnNldC1vLm91dGVySGVpZ2h0KHRydWUpO2JyZWFrfW8u Y3NzKCJsZWZ0Iix2KT0KO28uY3NzKCJ0b3AiLHQpO2lmKG4uZmFkZVRvb2x0aXApe28uc3RvcCh0 cnVlLHRydWUpLmZhZGVJbihuLnRvb2x0aXBGYWRlU3BlPQplZCl9ZWxzZXtvLnNob3coKX1vPTNE bnVsbH1mdW5jdGlvbiBoKHoscSxzLHApe3ZhciBvPTNEelswXTt2YXIgbj0zRHpbMV07dmE9CnIg eT0zRE1hdGgucm91bmQoc1swXSk7dmFyIHg9M0RNYXRoLnJvdW5kKHNbMV0pO3ZhciB1PTNETWF0 aC5yb3VuZChxWzBdKTt2YT0KciB0PTNETWF0aC5yb3VuZChxWzFdKTt2YXIgcj0zRE1hdGguc3Fy dChNYXRoLnBvdyh5LXUsMikrTWF0aC5wb3coeC10LDIpKTt2PQphciBBPTNEcCpyO3ZhciB3PTNE TWF0aC5hYnMoKHUteSkqKG4teCktKHQteCkqKG8teSkpO3ZhciB2PTNEKHc8QSk/dHJ1ZTpmYWw9 CnNlO3JldHVybiB2fWZ1bmN0aW9uIGcoeCxxLHIscCl7dmFyIG89M0R4WzBdO3ZhciBuPTNEeFsx XTt2YXIgdz0zRE1hdGgucm91bj0KZChyWzBdKTt2YXIgdj0zRE1hdGgucm91bmQoclsxXSk7dmFy IHQ9M0RNYXRoLnJvdW5kKHFbMF0pO3ZhciBzPTNETWF0aC5yb3VuPQpkKHFbMV0pO3ZhciB5O2lm KHc+dCl7eT0zRHc7dz0zRHQ7dD0zRHl9aWYodj5zKXt5PTNEdjt2PTNEcztzPTNEeX12YXIgdT0z RCg9Cm8+PTNEdyYmbzw9M0R0JiZuPj0zRHYmJm48PTNEcyk7cmV0dXJuIHV9ZnVuY3Rpb24gYSh6 LHcscixBLHgpe3ZhciB5PTNEeC5wbD0KdWdpbnMuY2FudmFzT3ZlcmxheTt2YXIgdj0zRHkub2Jq ZWN0czt2YXIgcz0zRHYubGVuZ3RoO3ZhciB1LG89M0RmYWxzZTt2YXIgPQpxO2Zvcih2YXIgdD0z RDA7dDxzO3QrKyl7dT0zRHZbdF07aWYodS5vcHRpb25zLnNob3dUb29sdGlwKXt2YXIgcDtpZih1 LnR5cGU9Cj0zRD0zRD0zRCJyZWN0YW5nbGUiKXtwPTNEZyhbdy54LHcueV0sdS5ncmlkU3RhcnQs dS5ncmlkU3RvcCx1LnRvb2x0aXBXaWR0aD0KRmFjdG9yKX1lbHNle3A9M0RoKFt3Lngsdy55XSx1 LmdyaWRTdGFydCx1LmdyaWRTdG9wLHUudG9vbHRpcFdpZHRoRmFjdG9yKX1yPQo9M0RbeC5heGVz W3Uub3B0aW9ucy54YXhpc10uc2VyaWVzX3AydSh3LngpLHguYXhlc1t1Lm9wdGlvbnMueWF4aXNd LnNlcmllc189CnAydSh3LnkpXTtpZihwJiZ5LmhpZ2hsaWdodE9iamVjdEluZGV4PTNEPTNEbnVs bCl7c3dpdGNoKHUudHlwZSl7Y2FzZSJsaW5lIj0KOmsoeCx1LFt3Lngsdy55XSxyKTticmVhaztj YXNlImhvcml6b250YWxMaW5lIjpjYXNlImRhc2hlZEhvcml6b250YWxMaW5lIjprPQooeCx1LFt3 LngsdS5ncmlkU3RhcnRbMV1dLFtyWzBdLHUub3B0aW9ucy55XSk7YnJlYWs7Y2FzZSJ2ZXJ0aWNh bExpbmUiOmNhc2U9CiJkYXNoZWRWZXJ0aWNhbExpbmUiOmsoeCx1LFt1LmdyaWRTdGFydFswXSx3 LnldLFt1Lm9wdGlvbnMueCxyWzFdXSk7YnJlYWs7Yz0KYXNlInJlY3RhbmdsZSI6ayh4LHUsW3Uu Z3JpZFN0YXJ0WzBdLHcueV0sW3Uub3B0aW9ucy54LHJbMV1dKTticmVhaztkZWZhdWx0PQo6YnJl YWt9eS5oaWdobGlnaHRPYmplY3RJbmRleD0zRHQ7bz0zRHRydWU7YnJlYWt9ZWxzZXtpZihwJiZ5 LmhpZ2hsaWdodE9iamU9CmN0SW5kZXghPTNEPTNEdCl7cT0zRHkuX3Rvb2x0aXBFbGVtO2lmKHUu ZmFkZVRvb2x0aXApe3EuZmFkZU91dCh1LnRvb2x0aXBGYT0KZGVTcGVlZCl9ZWxzZXtxLmhpZGUo KX1zd2l0Y2godS50eXBlKXtjYXNlImxpbmUiOmsoeCx1LFt3Lngsdy55XSxyKTticmVhaztjPQph c2UiaG9yaXpvbnRhbExpbmUiOmNhc2UiZGFzaGVkSG9yaXpvbnRhbExpbmUiOmsoeCx1LFt3Lngs dS5ncmlkU3RhcnRbMV1dLFs9CnJbMF0sdS5vcHRpb25zLnldKTticmVhaztjYXNlInZlcnRpY2Fs TGluZSI6Y2FzZSJkYXNoZWRWZXJ0aWNhbExpbmUiOmsoeCx1LD0KW3UuZ3JpZFN0YXJ0WzBdLHcu eV0sW3Uub3B0aW9ucy54LHJbMV1dKTticmVhaztjYXNlInJlY3RhbmdsZSI6ayh4LHUsW3UuZ3Jp PQpkU3RhcnRbMF0sdy55XSxbdS5vcHRpb25zLngsclsxXV0pO2JyZWFrO2RlZmF1bHQ6YnJlYWt9 eS5oaWdobGlnaHRPYmplY3RJbmQ9CmV4PTNEdDtvPTNEdHJ1ZTticmVha31lbHNle2lmKHApe3N3 aXRjaCh1LnR5cGUpe2Nhc2UibGluZSI6ayh4LHUsW3cueCx3LnldLD0Kcik7YnJlYWs7Y2FzZSJo b3Jpem9udGFsTGluZSI6Y2FzZSJkYXNoZWRIb3Jpem9udGFsTGluZSI6ayh4LHUsW3cueCx1Lmdy aWRTPQp0YXJ0WzFdXSxbclswXSx1Lm9wdGlvbnMueV0pO2JyZWFrO2Nhc2UidmVydGljYWxMaW5l IjpjYXNlImRhc2hlZFZlcnRpY2FsTGk9Cm5lIjprKHgsdSxbdS5ncmlkU3RhcnRbMF0sdy55XSxb dS5vcHRpb25zLngsclsxXV0pO2JyZWFrO2Nhc2UicmVjdGFuZ2xlIjprKD0KeCx1LFt1LmdyaWRT dGFydFswXSx3LnldLFt1Lm9wdGlvbnMueCxyWzFdXSk7YnJlYWs7ZGVmYXVsdDpicmVha31vPTNE dHJ1ZTtiPQpyZWFrfX19fX1pZighbyYmeS5oaWdobGlnaHRPYmplY3RJbmRleCE9M0Q9M0RudWxs KXtxPTNEeS5fdG9vbHRpcEVsZW07dT0zRHk9Ci5nZXRPYmplY3QoeS5oaWdobGlnaHRPYmplY3RJ bmRleCk7aWYodS5mYWRlVG9vbHRpcCl7cS5mYWRlT3V0KHUudG9vbHRpcEZhZD0KZVNwZWVkKX1l bHNle3EuaGlkZSgpfXkuaGlnaGxpZ2h0T2JqZWN0SW5kZXg9M0RudWxsfX1kLmpxcGxvdC5wb3N0 SW5pdEhvb2tzPQoucHVzaChkLmpxcGxvdC5DYW52YXNPdmVybGF5LnBvc3RQbG90SW5pdCk7ZC5q cXBsb3QucG9zdERyYXdIb29rcy5wdXNoKGQuanE9CnBsb3QuQ2FudmFzT3ZlcmxheS5wb3N0UGxv dERyYXcpO2QuanFwbG90LmV2ZW50TGlzdGVuZXJIb29rcy5wdXNoKFsianFwbG90TT0Kb3VzZU1v dmUiLGFdKX0pKGpRdWVyeSk7LyoganFQbG90IDEuMC44cjEyNTAgfCAoYykgMjAwOS0yMDEzIENo cmlzIExlb25lbGxvPQogfCBqcGxvdC5jb20KKyAgIGpzRGF0ZSB8IChjKSAyMDEwLTIwMTMgQ2hy aXMgTGVvbmVsbG8KKyAqLyhmdW5jdGlvbihhKXthLmpxcGxvdC5DYW52YXNUZXh0UmVuZGVyZXI9 M0RmdW5jdGlvbihiKXt0aGlzLmZvbnRTdHlsZT0KPTNEIm5vcm1hbCI7dGhpcy5mb250VmFyaWFu dD0zRCJub3JtYWwiO3RoaXMuZm9udFdlaWdodD0zRCJub3JtYWwiO3RoaXMuZm9uPQp0U2l6ZT0z RCIxMHB4Ijt0aGlzLmZvbnRGYW1pbHk9M0Qic2Fucy1zZXJpZiI7dGhpcy5mb250U3RyZXRjaD0z RDE7dGhpcy5maWw9CmxTdHlsZT0zRCIjNjY2NjY2Ijt0aGlzLmFuZ2xlPTNEMDt0aGlzLnRleHRB bGlnbj0zRCJzdGFydCI7dGhpcy50ZXh0QmFzZWxpbj0KZT0zRCJhbHBoYWJldGljIjt0aGlzLnRl eHQ7dGhpcy53aWR0aDt0aGlzLmhlaWdodDt0aGlzLnB0MnB4PTNEMS4yODthLmV4dGVuPQpkKHRy dWUsdGhpcyxiKTt0aGlzLm5vcm1hbGl6ZWRGb250U2l6ZT0zRHRoaXMubm9ybWFsaXplRm9udFNp emUodGhpcy5mb250U2k9CnplKTt0aGlzLnNldEhlaWdodCgpfTthLmpxcGxvdC5DYW52YXNUZXh0 UmVuZGVyZXIucHJvdG90eXBlLmluaXQ9M0RmdW5jdGlvbj0KKGIpe2EuZXh0ZW5kKHRydWUsdGhp cyxiKTt0aGlzLm5vcm1hbGl6ZWRGb250U2l6ZT0zRHRoaXMubm9ybWFsaXplRm9udFNpemUoPQp0 aGlzLmZvbnRTaXplKTt0aGlzLnNldEhlaWdodCgpfTthLmpxcGxvdC5DYW52YXNUZXh0UmVuZGVy ZXIucHJvdG90eXBlLm5vcm09CmFsaXplRm9udFNpemU9M0RmdW5jdGlvbihiKXtiPTNEU3RyaW5n KGIpO3ZhciBjPTNEcGFyc2VGbG9hdChiKTtpZihiLmluZGV4Tz0KZigicHgiKT4tMSl7cmV0dXJu IGMvdGhpcy5wdDJweH1lbHNle2lmKGIuaW5kZXhPZigicHQiKT4tMSl7cmV0dXJuIGN9ZWxzZXtp PQpmKGIuaW5kZXhPZigiZW0iKT4tMSl7cmV0dXJuIGMqMTJ9ZWxzZXtpZihiLmluZGV4T2YoIiUi KT4tMSl7cmV0dXJuIGMqMTIvMTA9CjB9ZWxzZXtyZXR1cm4gYy90aGlzLnB0MnB4fX19fX07YS5q cXBsb3QuQ2FudmFzVGV4dFJlbmRlcmVyLnByb3RvdHlwZS5mb250Vz0KZWlnaHQyRmxvYXQ9M0Rm dW5jdGlvbihiKXtpZihOdW1iZXIoYikpe3JldHVybiBiLzQwMH1lbHNle3N3aXRjaChiKXtjYXNl Im5vPQpybWFsIjpyZXR1cm4gMTticmVhaztjYXNlImJvbGQiOnJldHVybiAxLjc1O2JyZWFrO2Nh c2UiYm9sZGVyIjpyZXR1cm4gMi4yNTs9CmJyZWFrO2Nhc2UibGlnaHRlciI6cmV0dXJuIDAuNzU7 YnJlYWs7ZGVmYXVsdDpyZXR1cm4gMTticmVha319fTthLmpxcGxvdC5DYT0KbnZhc1RleHRSZW5k ZXJlci5wcm90b3R5cGUuZ2V0VGV4dD0zRGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGV4dH07YS5q cXBsb3QuPQpDYW52YXNUZXh0UmVuZGVyZXIucHJvdG90eXBlLnNldFRleHQ9M0RmdW5jdGlvbihj LGIpe3RoaXMudGV4dD0zRGM7dGhpcy5zZXQ9CldpZHRoKGIpO3JldHVybiB0aGlzfTthLmpxcGxv dC5DYW52YXNUZXh0UmVuZGVyZXIucHJvdG90eXBlLmdldFdpZHRoPTNEZnVuYz0KdGlvbihiKXty ZXR1cm4gdGhpcy53aWR0aH07YS5qcXBsb3QuQ2FudmFzVGV4dFJlbmRlcmVyLnByb3RvdHlwZS5z ZXRXaWR0aD0KPTNEZnVuY3Rpb24oYyxiKXtpZighYil7dGhpcy53aWR0aD0zRHRoaXMubWVhc3Vy ZShjLHRoaXMudGV4dCl9ZWxzZXt0aGlzLndpPQpkdGg9M0RifXJldHVybiB0aGlzfTthLmpxcGxv dC5DYW52YXNUZXh0UmVuZGVyZXIucHJvdG90eXBlLmdldEhlaWdodD0zRGZ1bmM9CnRpb24oYil7 cmV0dXJuIHRoaXMuaGVpZ2h0fTthLmpxcGxvdC5DYW52YXNUZXh0UmVuZGVyZXIucHJvdG90eXBl LnNldEhlaWdodD0KPTNEZnVuY3Rpb24oYil7aWYoIWIpe3RoaXMuaGVpZ2h0PTNEdGhpcy5ub3Jt YWxpemVkRm9udFNpemUqdGhpcy5wdDJweH1lbHNlPQp7dGhpcy5oZWlnaHQ9M0RifXJldHVybiB0 aGlzfTthLmpxcGxvdC5DYW52YXNUZXh0UmVuZGVyZXIucHJvdG90eXBlLmxldHRlcj0KPTNEZnVu Y3Rpb24oYil7cmV0dXJuIHRoaXMubGV0dGVyc1tiXX07YS5qcXBsb3QuQ2FudmFzVGV4dFJlbmRl cmVyLnByb3RvdHlwPQplLmFzY2VudD0zRGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9ybWFsaXpl ZEZvbnRTaXplfTthLmpxcGxvdC5DYW52YXNUZXh0UmU9Cm5kZXJlci5wcm90b3R5cGUuZGVzY2Vu dD0zRGZ1bmN0aW9uKCl7cmV0dXJuIDcqdGhpcy5ub3JtYWxpemVkRm9udFNpemUvMjV9Oz0KYS5q cXBsb3QuQ2FudmFzVGV4dFJlbmRlcmVyLnByb3RvdHlwZS5tZWFzdXJlPTNEZnVuY3Rpb24oZCxn KXt2YXIgZj0zRDA7dmFyPQogYj0zRGcubGVuZ3RoO2Zvcih2YXIgZT0zRDA7ZTxiO2UrKyl7dmFy IGg9M0R0aGlzLmxldHRlcihnLmNoYXJBdChlKSk7aWYoaCk9CntmKz0zRGgud2lkdGgqdGhpcy5u b3JtYWxpemVkRm9udFNpemUvMjUqdGhpcy5mb250U3RyZXRjaH19cmV0dXJuIGZ9O2EuanFwbD0K b3QuQ2FudmFzVGV4dFJlbmRlcmVyLnByb3RvdHlwZS5kcmF3PTNEZnVuY3Rpb24ocyxuKXt2YXIg cj0zRDA7dmFyIG89M0R0aGlzPQouaGVpZ2h0KjAuNzI7dmFyIHA9M0QwO3ZhciBsPTNEbi5sZW5n dGg7dmFyIGs9M0R0aGlzLm5vcm1hbGl6ZWRGb250U2l6ZS8yNTs9CnMuc2F2ZSgpO3ZhciBoLGY7 aWYoKC1NYXRoLlBJLzI8PTNEdGhpcy5hbmdsZSYmdGhpcy5hbmdsZTw9M0QwKXx8KE1hdGguUEkq Mz0KLzI8PTNEdGhpcy5hbmdsZSYmdGhpcy5hbmdsZTw9M0RNYXRoLlBJKjIpKXtoPTNEMDtmPTNE LU1hdGguc2luKHRoaXMuYW5nbGUpPQoqdGhpcy53aWR0aH1lbHNle2lmKCgwPHRoaXMuYW5nbGUm JnRoaXMuYW5nbGU8PTNETWF0aC5QSS8yKXx8KC1NYXRoLlBJKjI8PQo9M0R0aGlzLmFuZ2xlJiZ0 aGlzLmFuZ2xlPD0zRC1NYXRoLlBJKjMvMikpe2g9M0RNYXRoLnNpbih0aGlzLmFuZ2xlKSp0aGlz Lmg9CmVpZ2h0O2Y9M0QwfWVsc2V7aWYoKC1NYXRoLlBJPHRoaXMuYW5nbGUmJnRoaXMuYW5nbGU8 LU1hdGguUEkvMil8fChNYXRoLlBJPD0KPTNEdGhpcy5hbmdsZSYmdGhpcy5hbmdsZTw9M0RNYXRo LlBJKjMvMikpe2g9M0QtTWF0aC5jb3ModGhpcy5hbmdsZSkqdGhpcy53PQppZHRoO2Y9M0QtTWF0 aC5zaW4odGhpcy5hbmdsZSkqdGhpcy53aWR0aC1NYXRoLmNvcyh0aGlzLmFuZ2xlKSp0aGlzLmhl aWdodH09CmVsc2V7aWYoKC1NYXRoLlBJKjMvMjx0aGlzLmFuZ2xlJiZ0aGlzLmFuZ2xlPE1hdGgu UEkpfHwoTWF0aC5QSS8yPHRoaXMuYW5nbD0KZSYmdGhpcy5hbmdsZTxNYXRoLlBJKSl7aD0zRE1h dGguc2luKHRoaXMuYW5nbGUpKnRoaXMuaGVpZ2h0LU1hdGguY29zKHRoaXMuPQphbmdsZSkqdGhp cy53aWR0aDtmPTNELU1hdGguY29zKHRoaXMuYW5nbGUpKnRoaXMuaGVpZ2h0fX19fXMuc3Ryb2tl U3R5bGU9M0Q9CnRoaXMuZmlsbFN0eWxlO3MuZmlsbFN0eWxlPTNEdGhpcy5maWxsU3R5bGU7cy50 cmFuc2xhdGUoaCxmKTtzLnJvdGF0ZSh0aGlzLj0KYW5nbGUpO3MubGluZUNhcD0zRCJyb3VuZCI7 dmFyIHQ9M0QodGhpcy5ub3JtYWxpemVkRm9udFNpemU+MzApPzI6MisoMzAtdGhpPQpzLm5vcm1h bGl6ZWRGb250U2l6ZSkvMjA7cy5saW5lV2lkdGg9M0R0KmsqdGhpcy5mb250V2VpZ2h0MkZsb2F0 KHRoaXMuZm9udFc9CmVpZ2h0KTtmb3IodmFyIGc9M0QwO2c8bDtnKyspe3ZhciBtPTNEdGhpcy5s ZXR0ZXIobi5jaGFyQXQoZykpO2lmKCFtKXtjb250aT0KbnVlfXMuYmVnaW5QYXRoKCk7dmFyIGU9 M0QxO3ZhciBiPTNEMDtmb3IodmFyIGQ9M0QwO2Q8bS5wb2ludHMubGVuZ3RoO2QrKyl7PQp2YXIg cT0zRG0ucG9pbnRzW2RdO2lmKHFbMF09M0Q9M0QtMSYmcVsxXT0zRD0zRC0xKXtlPTNEMTtjb250 aW51ZX1pZihlKXtzLm09Cm92ZVRvKHIrcVswXSprKnRoaXMuZm9udFN0cmV0Y2gsby1xWzFdKmsp O2U9M0RmYWxzZX1lbHNle3MubGluZVRvKHIrcVswXSprKj0KdGhpcy5mb250U3RyZXRjaCxvLXFb MV0qayl9fXMuc3Ryb2tlKCk7cis9M0RtLndpZHRoKmsqdGhpcy5mb250U3RyZXRjaH1zLnJlPQpz dG9yZSgpO3JldHVybiBwfTthLmpxcGxvdC5DYW52YXNUZXh0UmVuZGVyZXIucHJvdG90eXBlLmxl dHRlcnM9M0R7IiAiOnt3aWQ9CnRoOjE2LHBvaW50czpbXX0sIiEiOnt3aWR0aDoxMCxwb2ludHM6 W1s1LDIxXSxbNSw3XSxbLTEsLTFdLFs1LDJdLFs0LDFdLFs1LD0KMF0sWzYsMV0sWzUsMl1dfSwn Iic6e3dpZHRoOjE2LHBvaW50czpbWzQsMjFdLFs0LDE0XSxbLTEsLTFdLFsxMiwyMV0sWzEyLDE0 PQpdXX0sIiMiOnt3aWR0aDoyMSxwb2ludHM6W1sxMSwyNV0sWzQsLTddLFstMSwtMV0sWzE3LDI1 XSxbMTAsLTddLFstMSwtMV0sWzQ9CiwxMl0sWzE4LDEyXSxbLTEsLTFdLFszLDZdLFsxNyw2XV19 LCIkIjp7d2lkdGg6MjAscG9pbnRzOltbOCwyNV0sWzgsLTRdLFstMT0KLC0xXSxbMTIsMjVdLFsx MiwtNF0sWy0xLC0xXSxbMTcsMThdLFsxNSwyMF0sWzEyLDIxXSxbOCwyMV0sWzUsMjBdLFszLDE4 XSxbPQozLDE2XSxbNCwxNF0sWzUsMTNdLFs3LDEyXSxbMTMsMTBdLFsxNSw5XSxbMTYsOF0sWzE3 LDZdLFsxNywzXSxbMTUsMV0sWzEyLDA9Cl0sWzgsMF0sWzUsMV0sWzMsM11dfSwiJSI6e3dpZHRo OjI0LHBvaW50czpbWzIxLDIxXSxbMywwXSxbLTEsLTFdLFs4LDIxXSxbMT0KMCwxOV0sWzEwLDE3 XSxbOSwxNV0sWzcsMTRdLFs1LDE0XSxbMywxNl0sWzMsMThdLFs0LDIwXSxbNiwyMV0sWzgsMjFd LFsxMCwyPQowXSxbMTMsMTldLFsxNiwxOV0sWzE5LDIwXSxbMjEsMjFdLFstMSwtMV0sWzE3LDdd LFsxNSw2XSxbMTQsNF0sWzE0LDJdLFsxNiw9CjBdLFsxOCwwXSxbMjAsMV0sWzIxLDNdLFsyMSw1 XSxbMTksN10sWzE3LDddXX0sIiYiOnt3aWR0aDoyNixwb2ludHM6W1syMywxMj0KXSxbMjMsMTNd LFsyMiwxNF0sWzIxLDE0XSxbMjAsMTNdLFsxOSwxMV0sWzE3LDZdLFsxNSwzXSxbMTMsMV0sWzEx LDBdLFs3LDBdPQosWzUsMV0sWzQsMl0sWzMsNF0sWzMsNl0sWzQsOF0sWzUsOV0sWzEyLDEzXSxb MTMsMTRdLFsxNCwxNl0sWzE0LDE4XSxbMTMsMjA9Cl0sWzExLDIxXSxbOSwyMF0sWzgsMThdLFs4 LDE2XSxbOSwxM10sWzExLDEwXSxbMTYsM10sWzE4LDFdLFsyMCwwXSxbMjIsMF0sWz0KMjMsMV0s WzIzLDJdXX0sIiciOnt3aWR0aDoxMCxwb2ludHM6W1s1LDE5XSxbNCwyMF0sWzUsMjFdLFs2LDIw XSxbNiwxOF0sWzUsPQoxNl0sWzQsMTVdXX0sIigiOnt3aWR0aDoxNCxwb2ludHM6W1sxMSwyNV0s WzksMjNdLFs3LDIwXSxbNSwxNl0sWzQsMTFdLFs0LDc9Cl0sWzUsMl0sWzcsLTJdLFs5LC01XSxb MTEsLTddXX0sIikiOnt3aWR0aDoxNCxwb2ludHM6W1szLDI1XSxbNSwyM10sWzcsMjBdLD0KWzks MTZdLFsxMCwxMV0sWzEwLDddLFs5LDJdLFs3LC0yXSxbNSwtNV0sWzMsLTddXX0sIioiOnt3aWR0 aDoxNixwb2ludHM6W1s4PQosMjFdLFs4LDldLFstMSwtMV0sWzMsMThdLFsxMywxMl0sWy0xLC0x XSxbMTMsMThdLFszLDEyXV19LCIrIjp7d2lkdGg6MjYscG89CmludHM6W1sxMywxOF0sWzEzLDBd LFstMSwtMV0sWzQsOV0sWzIyLDldXX0sIiwiOnt3aWR0aDoxMCxwb2ludHM6W1s2LDFdLFs1LD0K MF0sWzQsMV0sWzUsMl0sWzYsMV0sWzYsLTFdLFs1LC0zXSxbNCwtNF1dfSwiLSI6e3dpZHRoOjE4 LHBvaW50czpbWzYsOV0sWzEyPQosOV1dfSwiLiI6e3dpZHRoOjEwLHBvaW50czpbWzUsMl0sWzQs MV0sWzUsMF0sWzYsMV0sWzUsMl1dfSwiLyI6e3dpZHRoOjIyLHA9Cm9pbnRzOltbMjAsMjVdLFsy LC03XV19LCIwIjp7d2lkdGg6MjAscG9pbnRzOltbOSwyMV0sWzYsMjBdLFs0LDE3XSxbMywxMl0s Wz0KMyw5XSxbNCw0XSxbNiwxXSxbOSwwXSxbMTEsMF0sWzE0LDFdLFsxNiw0XSxbMTcsOV0sWzE3 LDEyXSxbMTYsMTddLFsxNCwyMF0sPQpbMTEsMjFdLFs5LDIxXV19LCIxIjp7d2lkdGg6MjAscG9p bnRzOltbNiwxN10sWzgsMThdLFsxMSwyMV0sWzExLDBdXX0sIjIiOns9CndpZHRoOjIwLHBvaW50 czpbWzQsMTZdLFs0LDE3XSxbNSwxOV0sWzYsMjBdLFs4LDIxXSxbMTIsMjFdLFsxNCwyMF0sWzE1 LDE5XT0KLFsxNiwxN10sWzE2LDE1XSxbMTUsMTNdLFsxMywxMF0sWzMsMF0sWzE3LDBdXX0sIjMi Ont3aWR0aDoyMCxwb2ludHM6W1s1LDIxPQpdLFsxNiwyMV0sWzEwLDEzXSxbMTMsMTNdLFsxNSwx Ml0sWzE2LDExXSxbMTcsOF0sWzE3LDZdLFsxNiwzXSxbMTQsMV0sWzExLDA9Cl0sWzgsMF0sWzUs MV0sWzQsMl0sWzMsNF1dfSwiNCI6e3dpZHRoOjIwLHBvaW50czpbWzEzLDIxXSxbMyw3XSxbMTgs N10sWy0xLD0KLTFdLFsxMywyMV0sWzEzLDBdXX0sIjUiOnt3aWR0aDoyMCxwb2ludHM6W1sxNSwy MV0sWzUsMjFdLFs0LDEyXSxbNSwxM10sWzgsPQoxNF0sWzExLDE0XSxbMTQsMTNdLFsxNiwxMV0s WzE3LDhdLFsxNyw2XSxbMTYsM10sWzE0LDFdLFsxMSwwXSxbOCwwXSxbNSwxXSw9Cls0LDJdLFsz LDRdXX0sIjYiOnt3aWR0aDoyMCxwb2ludHM6W1sxNiwxOF0sWzE1LDIwXSxbMTIsMjFdLFsxMCwy MV0sWzcsMjBdLD0KWzUsMTddLFs0LDEyXSxbNCw3XSxbNSwzXSxbNywxXSxbMTAsMF0sWzExLDBd LFsxNCwxXSxbMTYsM10sWzE3LDZdLFsxNyw3XSxbPQoxNiwxMF0sWzE0LDEyXSxbMTEsMTNdLFsx MCwxM10sWzcsMTJdLFs1LDEwXSxbNCw3XV19LCI3Ijp7d2lkdGg6MjAscG9pbnRzOls9ClsxNywy MV0sWzcsMF0sWy0xLC0xXSxbMywyMV0sWzE3LDIxXV19LCI4Ijp7d2lkdGg6MjAscG9pbnRzOltb OCwyMV0sWzUsMjBdLD0KWzQsMThdLFs0LDE2XSxbNSwxNF0sWzcsMTNdLFsxMSwxMl0sWzE0LDEx XSxbMTYsOV0sWzE3LDddLFsxNyw0XSxbMTYsMl0sWzE1PQosMV0sWzEyLDBdLFs4LDBdLFs1LDFd LFs0LDJdLFszLDRdLFszLDddLFs0LDldLFs2LDExXSxbOSwxMl0sWzEzLDEzXSxbMTUsMTQ9Cl0s WzE2LDE2XSxbMTYsMThdLFsxNSwyMF0sWzEyLDIxXSxbOCwyMV1dfSwiOSI6e3dpZHRoOjIwLHBv aW50czpbWzE2LDE0XSxbMT0KNSwxMV0sWzEzLDldLFsxMCw4XSxbOSw4XSxbNiw5XSxbNCwxMV0s WzMsMTRdLFszLDE1XSxbNCwxOF0sWzYsMjBdLFs5LDIxXSxbPQoxMCwyMV0sWzEzLDIwXSxbMTUs MThdLFsxNiwxNF0sWzE2LDldLFsxNSw0XSxbMTMsMV0sWzEwLDBdLFs4LDBdLFs1LDFdLFs0LDM9 Cl1dfSwiOiI6e3dpZHRoOjEwLHBvaW50czpbWzUsMTRdLFs0LDEzXSxbNSwxMl0sWzYsMTNdLFs1 LDE0XSxbLTEsLTFdLFs1LDJdLD0KWzQsMV0sWzUsMF0sWzYsMV0sWzUsMl1dfSwiOyI6e3dpZHRo OjEwLHBvaW50czpbWzUsMTRdLFs0LDEzXSxbNSwxMl0sWzYsMTNdPQosWzUsMTRdLFstMSwtMV0s WzYsMV0sWzUsMF0sWzQsMV0sWzUsMl0sWzYsMV0sWzYsLTFdLFs1LC0zXSxbNCwtNF1dfSwiPCI6 e3c9CmlkdGg6MjQscG9pbnRzOltbMjAsMThdLFs0LDldLFsyMCwwXV19LCI9M0QiOnt3aWR0aDoy Nixwb2ludHM6W1s0LDEyXSxbMjIsMT0KMl0sWy0xLC0xXSxbNCw2XSxbMjIsNl1dfSwiPiI6e3dp ZHRoOjI0LHBvaW50czpbWzQsMThdLFsyMCw5XSxbNCwwXV19LCI/Ijp7PQp3aWR0aDoxOCxwb2lu dHM6W1szLDE2XSxbMywxN10sWzQsMTldLFs1LDIwXSxbNywyMV0sWzExLDIxXSxbMTMsMjBdLFsx NCwxOV09CixbMTUsMTddLFsxNSwxNV0sWzE0LDEzXSxbMTMsMTJdLFs5LDEwXSxbOSw3XSxbLTEs LTFdLFs5LDJdLFs4LDFdLFs5LDBdLFsxMD0KLDFdLFs5LDJdXX0sIkAiOnt3aWR0aDoyNyxwb2lu dHM6W1sxOCwxM10sWzE3LDE1XSxbMTUsMTZdLFsxMiwxNl0sWzEwLDE1XSxbPQo5LDE0XSxbOCwx MV0sWzgsOF0sWzksNl0sWzExLDVdLFsxNCw1XSxbMTYsNl0sWzE3LDhdLFstMSwtMV0sWzEyLDE2 XSxbMTAsMTQ9Cl0sWzksMTFdLFs5LDhdLFsxMCw2XSxbMTEsNV0sWy0xLC0xXSxbMTgsMTZdLFsx Nyw4XSxbMTcsNl0sWzE5LDVdLFsyMSw1XSxbMj0KMyw3XSxbMjQsMTBdLFsyNCwxMl0sWzIzLDE1 XSxbMjIsMTddLFsyMCwxOV0sWzE4LDIwXSxbMTUsMjFdLFsxMiwyMV0sWzksMjBdPQosWzcsMTld LFs1LDE3XSxbNCwxNV0sWzMsMTJdLFszLDldLFs0LDZdLFs1LDRdLFs3LDJdLFs5LDFdLFsxMiww XSxbMTUsMF0sWzE9CjgsMV0sWzIwLDJdLFsyMSwzXSxbLTEsLTFdLFsxOSwxNl0sWzE4LDhdLFsx OCw2XSxbMTksNV1dfSxBOnt3aWR0aDoxOCxwb2ludD0KczpbWzksMjFdLFsxLDBdLFstMSwtMV0s WzksMjFdLFsxNywwXSxbLTEsLTFdLFs0LDddLFsxNCw3XV19LEI6e3dpZHRoOjIxLHBvPQppbnRz OltbNCwyMV0sWzQsMF0sWy0xLC0xXSxbNCwyMV0sWzEzLDIxXSxbMTYsMjBdLFsxNywxOV0sWzE4 LDE3XSxbMTgsMTVdLFs9CjE3LDEzXSxbMTYsMTJdLFsxMywxMV0sWy0xLC0xXSxbNCwxMV0sWzEz LDExXSxbMTYsMTBdLFsxNyw5XSxbMTgsN10sWzE4LDRdLD0KWzE3LDJdLFsxNiwxXSxbMTMsMF0s WzQsMF1dfSxDOnt3aWR0aDoyMSxwb2ludHM6W1sxOCwxNl0sWzE3LDE4XSxbMTUsMjBdLFsxPQoz LDIxXSxbOSwyMV0sWzcsMjBdLFs1LDE4XSxbNCwxNl0sWzMsMTNdLFszLDhdLFs0LDVdLFs1LDNd LFs3LDFdLFs5LDBdLFsxMyw9CjBdLFsxNSwxXSxbMTcsM10sWzE4LDVdXX0sRDp7d2lkdGg6MjEs cG9pbnRzOltbNCwyMV0sWzQsMF0sWy0xLC0xXSxbNCwyMV0sWz0KMTEsMjFdLFsxNCwyMF0sWzE2 LDE4XSxbMTcsMTZdLFsxOCwxM10sWzE4LDhdLFsxNyw1XSxbMTYsM10sWzE0LDFdLFsxMSwwXSxb PQo0LDBdXX0sRTp7d2lkdGg6MTkscG9pbnRzOltbNCwyMV0sWzQsMF0sWy0xLC0xXSxbNCwyMV0s WzE3LDIxXSxbLTEsLTFdLFs0LDE9CjFdLFsxMiwxMV0sWy0xLC0xXSxbNCwwXSxbMTcsMF1dfSxG Ont3aWR0aDoxOCxwb2ludHM6W1s0LDIxXSxbNCwwXSxbLTEsLTFdLD0KWzQsMjFdLFsxNywyMV0s Wy0xLC0xXSxbNCwxMV0sWzEyLDExXV19LEc6e3dpZHRoOjIxLHBvaW50czpbWzE4LDE2XSxbMTcs MThdPQosWzE1LDIwXSxbMTMsMjFdLFs5LDIxXSxbNywyMF0sWzUsMThdLFs0LDE2XSxbMywxM10s WzMsOF0sWzQsNV0sWzUsM10sWzcsMV09CixbOSwwXSxbMTMsMF0sWzE1LDFdLFsxNywzXSxbMTgs NV0sWzE4LDhdLFstMSwtMV0sWzEzLDhdLFsxOCw4XV19LEg6e3dpZHRoOj0KMjIscG9pbnRzOltb NCwyMV0sWzQsMF0sWy0xLC0xXSxbMTgsMjFdLFsxOCwwXSxbLTEsLTFdLFs0LDExXSxbMTgsMTFd XX0sSTp7PQp3aWR0aDo4LHBvaW50czpbWzQsMjFdLFs0LDBdXX0sSjp7d2lkdGg6MTYscG9pbnRz OltbMTIsMjFdLFsxMiw1XSxbMTEsMl0sWzE9CjAsMV0sWzgsMF0sWzYsMF0sWzQsMV0sWzMsMl0s WzIsNV0sWzIsN11dfSxLOnt3aWR0aDoyMSxwb2ludHM6W1s0LDIxXSxbNCwwXT0KLFstMSwtMV0s WzE4LDIxXSxbNCw3XSxbLTEsLTFdLFs5LDEyXSxbMTgsMF1dfSxMOnt3aWR0aDoxNyxwb2ludHM6 W1s0LDIxXSxbPQo0LDBdLFstMSwtMV0sWzQsMF0sWzE2LDBdXX0sTTp7d2lkdGg6MjQscG9pbnRz OltbNCwyMV0sWzQsMF0sWy0xLC0xXSxbNCwyMV09CixbMTIsMF0sWy0xLC0xXSxbMjAsMjFdLFsx MiwwXSxbLTEsLTFdLFsyMCwyMV0sWzIwLDBdXX0sTjp7d2lkdGg6MjIscG9pbnRzOj0KW1s0LDIx XSxbNCwwXSxbLTEsLTFdLFs0LDIxXSxbMTgsMF0sWy0xLC0xXSxbMTgsMjFdLFsxOCwwXV19LE86 e3dpZHRoOjIyLHBvPQppbnRzOltbOSwyMV0sWzcsMjBdLFs1LDE4XSxbNCwxNl0sWzMsMTNdLFsz LDhdLFs0LDVdLFs1LDNdLFs3LDFdLFs5LDBdLFsxMyw9CjBdLFsxNSwxXSxbMTcsM10sWzE4LDVd LFsxOSw4XSxbMTksMTNdLFsxOCwxNl0sWzE3LDE4XSxbMTUsMjBdLFsxMywyMV0sWzksMj0KMV1d fSxQOnt3aWR0aDoyMSxwb2ludHM6W1s0LDIxXSxbNCwwXSxbLTEsLTFdLFs0LDIxXSxbMTMsMjFd LFsxNiwyMF0sWzE3LDE5PQpdLFsxOCwxN10sWzE4LDE0XSxbMTcsMTJdLFsxNiwxMV0sWzEzLDEw XSxbNCwxMF1dfSxROnt3aWR0aDoyMixwb2ludHM6W1s5LDI9CjFdLFs3LDIwXSxbNSwxOF0sWzQs MTZdLFszLDEzXSxbMyw4XSxbNCw1XSxbNSwzXSxbNywxXSxbOSwwXSxbMTMsMF0sWzE1LDFdLD0K WzE3LDNdLFsxOCw1XSxbMTksOF0sWzE5LDEzXSxbMTgsMTZdLFsxNywxOF0sWzE1LDIwXSxbMTMs MjFdLFs5LDIxXSxbLTEsLTFdPQosWzEyLDRdLFsxOCwtMl1dfSxSOnt3aWR0aDoyMSxwb2ludHM6 W1s0LDIxXSxbNCwwXSxbLTEsLTFdLFs0LDIxXSxbMTMsMjFdLFs9CjE2LDIwXSxbMTcsMTldLFsx OCwxN10sWzE4LDE1XSxbMTcsMTNdLFsxNiwxMl0sWzEzLDExXSxbNCwxMV0sWy0xLC0xXSxbMTEs MT0KMV0sWzE4LDBdXX0sUzp7d2lkdGg6MjAscG9pbnRzOltbMTcsMThdLFsxNSwyMF0sWzEyLDIx XSxbOCwyMV0sWzUsMjBdLFszLDE4PQpdLFszLDE2XSxbNCwxNF0sWzUsMTNdLFs3LDEyXSxbMTMs MTBdLFsxNSw5XSxbMTYsOF0sWzE3LDZdLFsxNywzXSxbMTUsMV0sWzE9CjIsMF0sWzgsMF0sWzUs MV0sWzMsM11dfSxUOnt3aWR0aDoxNixwb2ludHM6W1s4LDIxXSxbOCwwXSxbLTEsLTFdLFsxLDIx XSxbMT0KNSwyMV1dfSxVOnt3aWR0aDoyMixwb2ludHM6W1s0LDIxXSxbNCw2XSxbNSwzXSxbNywx XSxbMTAsMF0sWzEyLDBdLFsxNSwxXSxbPQoxNywzXSxbMTgsNl0sWzE4LDIxXV19LFY6e3dpZHRo OjE4LHBvaW50czpbWzEsMjFdLFs5LDBdLFstMSwtMV0sWzE3LDIxXSxbOSw9CjBdXX0sVzp7d2lk dGg6MjQscG9pbnRzOltbMiwyMV0sWzcsMF0sWy0xLC0xXSxbMTIsMjFdLFs3LDBdLFstMSwtMV0s WzEyLDIxXT0KLFsxNywwXSxbLTEsLTFdLFsyMiwyMV0sWzE3LDBdXX0sWDp7d2lkdGg6MjAscG9p bnRzOltbMywyMV0sWzE3LDBdLFstMSwtMV0sPQpbMTcsMjFdLFszLDBdXX0sWTp7d2lkdGg6MTgs cG9pbnRzOltbMSwyMV0sWzksMTFdLFs5LDBdLFstMSwtMV0sWzE3LDIxXSxbOSw9CjExXV19LFo6 e3dpZHRoOjIwLHBvaW50czpbWzE3LDIxXSxbMywwXSxbLTEsLTFdLFszLDIxXSxbMTcsMjFdLFst MSwtMV0sWzMsMD0KXSxbMTcsMF1dfSwiWyI6e3dpZHRoOjE0LHBvaW50czpbWzQsMjVdLFs0LC03 XSxbLTEsLTFdLFs1LDI1XSxbNSwtN10sWy0xLC0xPQpdLFs0LDI1XSxbMTEsMjVdLFstMSwtMV0s WzQsLTddLFsxMSwtN11dfSwiXFwiOnt3aWR0aDoxNCxwb2ludHM6W1swLDIxXSxbMTQ9CiwtM11d fSwiXSI6e3dpZHRoOjE0LHBvaW50czpbWzksMjVdLFs5LC03XSxbLTEsLTFdLFsxMCwyNV0sWzEw LC03XSxbLTEsLTFdLD0KWzMsMjVdLFsxMCwyNV0sWy0xLC0xXSxbMywtN10sWzEwLC03XV19LCJe Ijp7d2lkdGg6MTYscG9pbnRzOltbNiwxNV0sWzgsMThdPQosWzEwLDE1XSxbLTEsLTFdLFszLDEy XSxbOCwxN10sWzEzLDEyXSxbLTEsLTFdLFs4LDE3XSxbOCwwXV19LF86e3dpZHRoOjE2LHA9Cm9p bnRzOltbMCwtMl0sWzE2LC0yXV19LCJgIjp7d2lkdGg6MTAscG9pbnRzOltbNiwyMV0sWzUsMjBd LFs0LDE4XSxbNCwxNl0sWz0KNSwxNV0sWzYsMTZdLFs1LDE3XV19LGE6e3dpZHRoOjE5LHBvaW50 czpbWzE1LDE0XSxbMTUsMF0sWy0xLC0xXSxbMTUsMTFdLFsxPQozLDEzXSxbMTEsMTRdLFs4LDE0 XSxbNiwxM10sWzQsMTFdLFszLDhdLFszLDZdLFs0LDNdLFs2LDFdLFs4LDBdLFsxMSwwXSxbMTM9 CiwxXSxbMTUsM11dfSxiOnt3aWR0aDoxOSxwb2ludHM6W1s0LDIxXSxbNCwwXSxbLTEsLTFdLFs0 LDExXSxbNiwxM10sWzgsMTRdLD0KWzExLDE0XSxbMTMsMTNdLFsxNSwxMV0sWzE2LDhdLFsxNiw2 XSxbMTUsM10sWzEzLDFdLFsxMSwwXSxbOCwwXSxbNiwxXSxbNCwzPQpdXX0sYzp7d2lkdGg6MTgs cG9pbnRzOltbMTUsMTFdLFsxMywxM10sWzExLDE0XSxbOCwxNF0sWzYsMTNdLFs0LDExXSxbMyw4 XSw9ClszLDZdLFs0LDNdLFs2LDFdLFs4LDBdLFsxMSwwXSxbMTMsMV0sWzE1LDNdXX0sZDp7d2lk dGg6MTkscG9pbnRzOltbMTUsMjFdLD0KWzE1LDBdLFstMSwtMV0sWzE1LDExXSxbMTMsMTNdLFsx MSwxNF0sWzgsMTRdLFs2LDEzXSxbNCwxMV0sWzMsOF0sWzMsNl0sWzQsPQozXSxbNiwxXSxbOCww XSxbMTEsMF0sWzEzLDFdLFsxNSwzXV19LGU6e3dpZHRoOjE4LHBvaW50czpbWzMsOF0sWzE1LDhd LFsxNSw9CjEwXSxbMTQsMTJdLFsxMywxM10sWzExLDE0XSxbOCwxNF0sWzYsMTNdLFs0LDExXSxb Myw4XSxbMyw2XSxbNCwzXSxbNiwxXSxbOD0KLDBdLFsxMSwwXSxbMTMsMV0sWzE1LDNdXX0sZjp7 d2lkdGg6MTIscG9pbnRzOltbMTAsMjFdLFs4LDIxXSxbNiwyMF0sWzUsMTddPQosWzUsMF0sWy0x LC0xXSxbMiwxNF0sWzksMTRdXX0sZzp7d2lkdGg6MTkscG9pbnRzOltbMTUsMTRdLFsxNSwtMl0s WzE0LC01XSw9ClsxMywtNl0sWzExLC03XSxbOCwtN10sWzYsLTZdLFstMSwtMV0sWzE1LDExXSxb MTMsMTNdLFsxMSwxNF0sWzgsMTRdLFs2LDEzXT0KLFs0LDExXSxbMyw4XSxbMyw2XSxbNCwzXSxb NiwxXSxbOCwwXSxbMTEsMF0sWzEzLDFdLFsxNSwzXV19LGg6e3dpZHRoOjE5LHBvPQppbnRzOltb NCwyMV0sWzQsMF0sWy0xLC0xXSxbNCwxMF0sWzcsMTNdLFs5LDE0XSxbMTIsMTRdLFsxNCwxM10s WzE1LDEwXSxbMTU9CiwwXV19LGk6e3dpZHRoOjgscG9pbnRzOltbMywyMV0sWzQsMjBdLFs1LDIx XSxbNCwyMl0sWzMsMjFdLFstMSwtMV0sWzQsMTRdLD0KWzQsMF1dfSxqOnt3aWR0aDoxMCxwb2lu dHM6W1s1LDIxXSxbNiwyMF0sWzcsMjFdLFs2LDIyXSxbNSwyMV0sWy0xLC0xXSxbNiwxPQo0XSxb NiwtM10sWzUsLTZdLFszLC03XSxbMSwtN11dfSxrOnt3aWR0aDoxNyxwb2ludHM6W1s0LDIxXSxb NCwwXSxbLTEsLTFdLFs9CjE0LDE0XSxbNCw0XSxbLTEsLTFdLFs4LDhdLFsxNSwwXV19LGw6e3dp ZHRoOjgscG9pbnRzOltbNCwyMV0sWzQsMF1dfSxtOnt3aT0KZHRoOjMwLHBvaW50czpbWzQsMTRd LFs0LDBdLFstMSwtMV0sWzQsMTBdLFs3LDEzXSxbOSwxNF0sWzEyLDE0XSxbMTQsMTNdLFsxPQo1 LDEwXSxbMTUsMF0sWy0xLC0xXSxbMTUsMTBdLFsxOCwxM10sWzIwLDE0XSxbMjMsMTRdLFsyNSwx M10sWzI2LDEwXSxbMjYsMF09Cl19LG46e3dpZHRoOjE5LHBvaW50czpbWzQsMTRdLFs0LDBdLFst MSwtMV0sWzQsMTBdLFs3LDEzXSxbOSwxNF0sWzEyLDE0XSxbMT0KNCwxM10sWzE1LDEwXSxbMTUs MF1dfSxvOnt3aWR0aDoxOSxwb2ludHM6W1s4LDE0XSxbNiwxM10sWzQsMTFdLFszLDhdLFszLDZd PQosWzQsM10sWzYsMV0sWzgsMF0sWzExLDBdLFsxMywxXSxbMTUsM10sWzE2LDZdLFsxNiw4XSxb MTUsMTFdLFsxMywxM10sWzExLDE9CjRdLFs4LDE0XV19LHA6e3dpZHRoOjE5LHBvaW50czpbWzQs MTRdLFs0LC03XSxbLTEsLTFdLFs0LDExXSxbNiwxM10sWzgsMTRdLD0KWzExLDE0XSxbMTMsMTNd LFsxNSwxMV0sWzE2LDhdLFsxNiw2XSxbMTUsM10sWzEzLDFdLFsxMSwwXSxbOCwwXSxbNiwxXSxb NCwzPQpdXX0scTp7d2lkdGg6MTkscG9pbnRzOltbMTUsMTRdLFsxNSwtN10sWy0xLC0xXSxbMTUs MTFdLFsxMywxM10sWzExLDE0XSxbOCw9CjE0XSxbNiwxM10sWzQsMTFdLFszLDhdLFszLDZdLFs0 LDNdLFs2LDFdLFs4LDBdLFsxMSwwXSxbMTMsMV0sWzE1LDNdXX0scjp7dz0KaWR0aDoxMyxwb2lu dHM6W1s0LDE0XSxbNCwwXSxbLTEsLTFdLFs0LDhdLFs1LDExXSxbNywxM10sWzksMTRdLFsxMiwx NF1dfSxzPQo6e3dpZHRoOjE3LHBvaW50czpbWzE0LDExXSxbMTMsMTNdLFsxMCwxNF0sWzcsMTRd LFs0LDEzXSxbMywxMV0sWzQsOV0sWzYsOF09CixbMTEsN10sWzEzLDZdLFsxNCw0XSxbMTQsM10s WzEzLDFdLFsxMCwwXSxbNywwXSxbNCwxXSxbMywzXV19LHQ6e3dpZHRoOjEyLD0KcG9pbnRzOltb NSwyMV0sWzUsNF0sWzYsMV0sWzgsMF0sWzEwLDBdLFstMSwtMV0sWzIsMTRdLFs5LDE0XV19LHU6 e3dpZHRoOjE5PQoscG9pbnRzOltbNCwxNF0sWzQsNF0sWzUsMV0sWzcsMF0sWzEwLDBdLFsxMiwx XSxbMTUsNF0sWy0xLC0xXSxbMTUsMTRdLFsxNSw9CjBdXX0sdjp7d2lkdGg6MTYscG9pbnRzOltb MiwxNF0sWzgsMF0sWy0xLC0xXSxbMTQsMTRdLFs4LDBdXX0sdzp7d2lkdGg6MjIscD0Kb2ludHM6 W1szLDE0XSxbNywwXSxbLTEsLTFdLFsxMSwxNF0sWzcsMF0sWy0xLC0xXSxbMTEsMTRdLFsxNSww XSxbLTEsLTFdLFsxPQo5LDE0XSxbMTUsMF1dfSx4Ont3aWR0aDoxNyxwb2ludHM6W1szLDE0XSxb MTQsMF0sWy0xLC0xXSxbMTQsMTRdLFszLDBdXX0seTo9Cnt3aWR0aDoxNixwb2ludHM6W1syLDE0 XSxbOCwwXSxbLTEsLTFdLFsxNCwxNF0sWzgsMF0sWzYsLTRdLFs0LC02XSxbMiwtN10sWz0KMSwt N11dfSx6Ont3aWR0aDoxNyxwb2ludHM6W1sxNCwxNF0sWzMsMF0sWy0xLC0xXSxbMywxNF0sWzE0 LDE0XSxbLTEsLTFdLFszPQosMF0sWzE0LDBdXX0sInsiOnt3aWR0aDoxNCxwb2ludHM6W1s5LDI1 XSxbNywyNF0sWzYsMjNdLFs1LDIxXSxbNSwxOV0sWzYsMTc9Cl0sWzcsMTZdLFs4LDE0XSxbOCwx Ml0sWzYsMTBdLFstMSwtMV0sWzcsMjRdLFs2LDIyXSxbNiwyMF0sWzcsMThdLFs4LDE3XSxbOT0K LDE1XSxbOSwxM10sWzgsMTFdLFs0LDldLFs4LDddLFs5LDVdLFs5LDNdLFs4LDFdLFs3LDBdLFs2 LC0yXSxbNiwtNF0sWzcsLTZdPQosWy0xLC0xXSxbNiw4XSxbOCw2XSxbOCw0XSxbNywyXSxbNiwx XSxbNSwtMV0sWzUsLTNdLFs2LC01XSxbNywtNl0sWzksLTddXX09CiwifCI6e3dpZHRoOjgscG9p bnRzOltbNCwyNV0sWzQsLTddXX0sIn0iOnt3aWR0aDoxNCxwb2ludHM6W1s1LDI1XSxbNywyNF0s Wz0KOCwyM10sWzksMjFdLFs5LDE5XSxbOCwxN10sWzcsMTZdLFs2LDE0XSxbNiwxMl0sWzgsMTBd LFstMSwtMV0sWzcsMjRdLFs4LDIyPQpdLFs4LDIwXSxbNywxOF0sWzYsMTddLFs1LDE1XSxbNSwx M10sWzYsMTFdLFsxMCw5XSxbNiw3XSxbNSw1XSxbNSwzXSxbNiwxXSw9Cls3LDBdLFs4LC0yXSxb OCwtNF0sWzcsLTZdLFstMSwtMV0sWzgsOF0sWzYsNl0sWzYsNF0sWzcsMl0sWzgsMV0sWzksLTFd LFs5LD0KLTNdLFs4LC01XSxbNywtNl0sWzUsLTddXX0sIn4iOnt3aWR0aDoyNCxwb2ludHM6W1sz LDZdLFszLDhdLFs0LDExXSxbNiwxMl0sPQpbOCwxMl0sWzEwLDExXSxbMTQsOF0sWzE2LDddLFsx OCw3XSxbMjAsOF0sWzIxLDEwXSxbLTEsLTFdLFszLDhdLFs0LDEwXSxbNiw9CjExXSxbOCwxMV0s WzEwLDEwXSxbMTQsN10sWzE2LDZdLFsxOCw2XSxbMjAsN10sWzIxLDEwXSxbMjEsMTJdXX19O2Eu anFwbG90Lj0KQ2FudmFzRm9udFJlbmRlcmVyPTNEZnVuY3Rpb24oYil7Yj0zRGJ8fHt9O2lmKCFi LnB0MnB4KXtiLnB0MnB4PTNEMS41fWEuanFwPQpsb3QuQ2FudmFzVGV4dFJlbmRlcmVyLmNhbGwo dGhpcyxiKX07YS5qcXBsb3QuQ2FudmFzRm9udFJlbmRlcmVyLnByb3RvdHlwZT0KPTNEbmV3IGEu anFwbG90LkNhbnZhc1RleHRSZW5kZXJlcih7fSk7YS5qcXBsb3QuQ2FudmFzRm9udFJlbmRlcmVy LnByb3RvdHlwPQplLmNvbnN0cnVjdG9yPTNEYS5qcXBsb3QuQ2FudmFzRm9udFJlbmRlcmVyO2Eu anFwbG90LkNhbnZhc0ZvbnRSZW5kZXJlci5wcm89CnRvdHlwZS5tZWFzdXJlPTNEZnVuY3Rpb24o YyxlKXt2YXIgZD0zRHRoaXMuZm9udFNpemUrIiAiK3RoaXMuZm9udEZhbWlseTtjLj0Kc2F2ZSgp O2MuZm9udD0zRGQ7dmFyIGI9M0RjLm1lYXN1cmVUZXh0KGUpLndpZHRoO2MucmVzdG9yZSgpO3Jl dHVybiBifTthLmpxPQpwbG90LkNhbnZhc0ZvbnRSZW5kZXJlci5wcm90b3R5cGUuZHJhdz0zRGZ1 bmN0aW9uKGUsZyl7dmFyIGM9M0QwO3ZhciBoPTNEdGg9CmlzLmhlaWdodCowLjcyO2Uuc2F2ZSgp O3ZhciBkLGI7aWYoKC1NYXRoLlBJLzI8PTNEdGhpcy5hbmdsZSYmdGhpcy5hbmdsZTw9Cj0zRDAp fHwoTWF0aC5QSSozLzI8PTNEdGhpcy5hbmdsZSYmdGhpcy5hbmdsZTw9M0RNYXRoLlBJKjIpKXtk PTNEMDtiPTNELU1hdD0KaC5zaW4odGhpcy5hbmdsZSkqdGhpcy53aWR0aH1lbHNle2lmKCgwPHRo aXMuYW5nbGUmJnRoaXMuYW5nbGU8PTNETWF0aC5QSS8yPQopfHwoLU1hdGguUEkqMjw9M0R0aGlz LmFuZ2xlJiZ0aGlzLmFuZ2xlPD0zRC1NYXRoLlBJKjMvMikpe2Q9M0RNYXRoLnNpbih0aGk9CnMu YW5nbGUpKnRoaXMuaGVpZ2h0O2I9M0QwfWVsc2V7aWYoKC1NYXRoLlBJPHRoaXMuYW5nbGUmJnRo aXMuYW5nbGU8LU1hdGguUD0KSS8yKXx8KE1hdGguUEk8PTNEdGhpcy5hbmdsZSYmdGhpcy5hbmds ZTw9M0RNYXRoLlBJKjMvMikpe2Q9M0QtTWF0aC5jb3ModGhpPQpzLmFuZ2xlKSp0aGlzLndpZHRo O2I9M0QtTWF0aC5zaW4odGhpcy5hbmdsZSkqdGhpcy53aWR0aC1NYXRoLmNvcyh0aGlzLmFuZ2w9 CmUpKnRoaXMuaGVpZ2h0fWVsc2V7aWYoKC1NYXRoLlBJKjMvMjx0aGlzLmFuZ2xlJiZ0aGlzLmFu Z2xlPE1hdGguUEkpfHwoTWF0aD0KLlBJLzI8dGhpcy5hbmdsZSYmdGhpcy5hbmdsZTxNYXRoLlBJ KSl7ZD0zRE1hdGguc2luKHRoaXMuYW5nbGUpKnRoaXMuaGVpZ2h0PQotTWF0aC5jb3ModGhpcy5h bmdsZSkqdGhpcy53aWR0aDtiPTNELU1hdGguY29zKHRoaXMuYW5nbGUpKnRoaXMuaGVpZ2h0fX19 fWU9Ci5zdHJva2VTdHlsZT0zRHRoaXMuZmlsbFN0eWxlO2UuZmlsbFN0eWxlPTNEdGhpcy5maWxs U3R5bGU7dmFyIGY9M0R0aGlzLmZvbj0KdFNpemUrIiAiK3RoaXMuZm9udEZhbWlseTtlLmZvbnQ9 M0RmO2UudHJhbnNsYXRlKGQsYik7ZS5yb3RhdGUodGhpcy5hbmdsZSk7PQplLmZpbGxUZXh0KGcs YyxoKTtlLnJlc3RvcmUoKX19KShqUXVlcnkpOy8qIGpxUGxvdCAxLjAuOHIxMjUwIHwgKGMpIDIw MDktMjA9CjEzIENocmlzIExlb25lbGxvIHwganBsb3QuY29tCisgICBqc0RhdGUgfCAoYykgMjAx MC0yMDEzIENocmlzIExlb25lbGxvCisgKi8oZnVuY3Rpb24oYSl7YS5qcXBsb3QuQ2F0ZWdvcnlB eGlzUmVuZGVyZXI9M0RmdW5jdGlvbihiKXthLmpxcGxvdC5MaW5lYT0KckF4aXNSZW5kZXJlci5j YWxsKHRoaXMpO3RoaXMuc29ydE1lcmdlZExhYmVscz0zRGZhbHNlfTthLmpxcGxvdC5DYXRlZ29y eUF4PQppc1JlbmRlcmVyLnByb3RvdHlwZT0zRG5ldyBhLmpxcGxvdC5MaW5lYXJBeGlzUmVuZGVy ZXIoKTthLmpxcGxvdC5DYXRlZ29yeUE9Cnhpc1JlbmRlcmVyLnByb3RvdHlwZS5jb25zdHJ1Y3Rv cj0zRGEuanFwbG90LkNhdGVnb3J5QXhpc1JlbmRlcmVyO2EuanFwbG90Lj0KQ2F0ZWdvcnlBeGlz UmVuZGVyZXIucHJvdG90eXBlLmluaXQ9M0RmdW5jdGlvbihlKXt0aGlzLmdyb3Vwcz0zRDE7dGhp cy5ncm91PQpwTGFiZWxzPTNEW107dGhpcy5fZ3JvdXBMYWJlbHM9M0RbXTt0aGlzLl9ncm91cGVk PTNEZmFsc2U7dGhpcy5fYmFyc1Blckdyb3U9CnA9M0RudWxsO3RoaXMucmV2ZXJzZT0zRGZhbHNl O2EuZXh0ZW5kKHRydWUsdGhpcyx7dGlja09wdGlvbnM6e2Zvcm1hdFN0cmluZz0KOiIlZCJ9fSxl KTt2YXIgYj0zRHRoaXMuX2RhdGFCb3VuZHM7Zm9yKHZhciBmPTNEMDtmPHRoaXMuX3Nlcmllcy5s ZW5ndGg7ZisrPQope3ZhciBnPTNEdGhpcy5fc2VyaWVzW2ZdO2lmKGcuZ3JvdXBzKXt0aGlzLmdy b3Vwcz0zRGcuZ3JvdXBzfXZhciBoPTNEZy5kYXQ9CmE7Zm9yKHZhciBjPTNEMDtjPGgubGVuZ3Ro O2MrKyl7aWYodGhpcy5uYW1lPTNEPTNEInhheGlzInx8dGhpcy5uYW1lPTNEPTNEIj0KeDJheGlz Iil7aWYoaFtjXVswXTxiLm1pbnx8Yi5taW49M0Q9M0RudWxsKXtiLm1pbj0zRGhbY11bMF19aWYo aFtjXVswXT5iLm1hPQp4fHxiLm1heD0zRD0zRG51bGwpe2IubWF4PTNEaFtjXVswXX19ZWxzZXtp ZihoW2NdWzFdPGIubWlufHxiLm1pbj0zRD0zRG51bGw9Cil7Yi5taW49M0RoW2NdWzFdfWlmKGhb Y11bMV0+Yi5tYXh8fGIubWF4PTNEPTNEbnVsbCl7Yi5tYXg9M0RoW2NdWzFdfX19fWlmKD0KdGhp cy5ncm91cExhYmVscy5sZW5ndGgpe3RoaXMuZ3JvdXBzPTNEdGhpcy5ncm91cExhYmVscy5sZW5n dGh9fTthLmpxcGxvdC5DPQphdGVnb3J5QXhpc1JlbmRlcmVyLnByb3RvdHlwZS5jcmVhdGVUaWNr cz0zRGZ1bmN0aW9uKCl7dmFyIEQ9M0R0aGlzLl90aWNrczs9CnZhciB6PTNEdGhpcy50aWNrczt2 YXIgRj0zRHRoaXMubmFtZTt2YXIgQz0zRHRoaXMuX2RhdGFCb3VuZHM7dmFyIHYsQTt2YXIgcT0K LHc7dmFyIGQsYzt2YXIgYix4O2lmKHoubGVuZ3RoKXtpZih0aGlzLmdyb3Vwcz4xJiYhdGhpcy5f Z3JvdXBlZCl7dmFyIHI9M0R6PQoubGVuZ3RoO3ZhciBwPTNEcGFyc2VJbnQoci90aGlzLmdyb3Vw cywxMCk7dmFyIGU9M0QwO2Zvcih2YXIgeD0zRHA7eDxyO3grPQo9M0RwKXt6LnNwbGljZSh4K2Us MCwiICIpO2UrK310aGlzLl9ncm91cGVkPTNEdHJ1ZX10aGlzLm1pbj0zRDAuNTt0aGlzLm1heD0K PTNEei5sZW5ndGgrMC41O3ZhciBtPTNEdGhpcy5tYXgtdGhpcy5taW47dGhpcy5udW1iZXJUaWNr cz0zRDIqei5sZW5ndGgrMTtmPQpvcih4PTNEMDt4PHoubGVuZ3RoO3grKyl7Yj0zRHRoaXMubWlu KzIqeCptLyh0aGlzLm51bWJlclRpY2tzLTEpO3ZhciBoPTNEbmU9CncgdGhpcy50aWNrUmVuZGVy ZXIodGhpcy50aWNrT3B0aW9ucyk7aC5zaG93TGFiZWw9M0RmYWxzZTtoLnNldFRpY2soYix0aGlz Lj0KbmFtZSk7dGhpcy5fdGlja3MucHVzaChoKTt2YXIgaD0zRG5ldyB0aGlzLnRpY2tSZW5kZXJl cih0aGlzLnRpY2tPcHRpb25zKTtoPQoubGFiZWw9M0R6W3hdO2guc2hvd01hcms9M0RmYWxzZTto LnNob3dHcmlkbGluZT0zRGZhbHNlO2guc2V0VGljayhiKzAuNSx0aGk9CnMubmFtZSk7dGhpcy5f dGlja3MucHVzaChoKX12YXIgaD0zRG5ldyB0aGlzLnRpY2tSZW5kZXJlcih0aGlzLnRpY2tPcHRp b25zKT0KO2guc2hvd0xhYmVsPTNEZmFsc2U7aC5zZXRUaWNrKGIrMSx0aGlzLm5hbWUpO3RoaXMu X3RpY2tzLnB1c2goaCl9ZWxzZXtpZihGPQo9M0Q9M0QieGF4aXMifHxGPTNEPTNEIngyYXhpcyIp e3Y9M0R0aGlzLl9wbG90RGltZW5zaW9ucy53aWR0aH1lbHNle3Y9M0R0aGk9CnMuX3Bsb3REaW1l bnNpb25zLmhlaWdodH1pZih0aGlzLm1pbiE9M0RudWxsJiZ0aGlzLm1heCE9M0RudWxsJiZ0aGlz Lm51bWJlcj0KVGlja3MhPTNEbnVsbCl7dGhpcy50aWNrSW50ZXJ2YWw9M0RudWxsfWlmKHRoaXMu bWluIT0zRG51bGwmJnRoaXMubWF4IT0zRG51PQpsbCYmdGhpcy50aWNrSW50ZXJ2YWwhPTNEbnVs bCl7aWYocGFyc2VJbnQoKHRoaXMubWF4LXRoaXMubWluKS90aGlzLnRpY2tJbnQ9CmVydmFsLDEw KSE9M0QodGhpcy5tYXgtdGhpcy5taW4pL3RoaXMudGlja0ludGVydmFsKXt0aGlzLnRpY2tJbnRl cnZhbD0zRG51bD0KbH19dmFyIHk9M0RbXTt2YXIgQj0zRDA7dmFyIHE9M0QwLjU7dmFyIHcsRTt2 YXIgZj0zRGZhbHNlO2Zvcih2YXIgeD0zRDA7eDx0PQpoaXMuX3Nlcmllcy5sZW5ndGg7eCsrKXt2 YXIgaz0zRHRoaXMuX3Nlcmllc1t4XTtmb3IodmFyIHU9M0QwO3U8ay5kYXRhLmxlbmc9CnRoO3Ur Kyl7aWYodGhpcy5uYW1lPTNEPTNEInhheGlzInx8dGhpcy5uYW1lPTNEPTNEIngyYXhpcyIpe0U9 M0RrLmRhdGFbdV1bMD0KXX1lbHNle0U9M0RrLmRhdGFbdV1bMV19aWYoYS5pbkFycmF5KEUseSk9 M0Q9M0QtMSl7Zj0zRHRydWU7Qis9M0QxO3kucHVzaChFPQopfX19aWYoZiYmdGhpcy5zb3J0TWVy Z2VkTGFiZWxzKXtpZih0eXBlb2YgeVswXT0zRD0zRCJzdHJpbmciKXt5LnNvcnQoKX1lbHM9CmV7 eS5zb3J0KGZ1bmN0aW9uKGosaSl7cmV0dXJuIGotaX0pfX10aGlzLnRpY2tzPTNEeTtmb3IodmFy IHg9M0QwO3g8dGhpcy5fcz0KZXJpZXMubGVuZ3RoO3grKyl7dmFyIGs9M0R0aGlzLl9zZXJpZXNb eF07Zm9yKHZhciB1PTNEMDt1PGsuZGF0YS5sZW5ndGg7dSsrPQope2lmKHRoaXMubmFtZT0zRD0z RCJ4YXhpcyJ8fHRoaXMubmFtZT0zRD0zRCJ4MmF4aXMiKXtFPTNEay5kYXRhW3VdWzBdfWVsc2U9 CntFPTNEay5kYXRhW3VdWzFdfXZhciBuPTNEYS5pbkFycmF5KEUseSkrMTtpZih0aGlzLm5hbWU9 M0Q9M0QieGF4aXMifHx0aGlzLj0KbmFtZT0zRD0zRCJ4MmF4aXMiKXtrLmRhdGFbdV1bMF09M0Ru fWVsc2V7ay5kYXRhW3VdWzFdPTNEbn19fWlmKHRoaXMuZ3JvdXBzPQo+MSYmIXRoaXMuX2dyb3Vw ZWQpe3ZhciByPTNEeS5sZW5ndGg7dmFyIHA9M0RwYXJzZUludChyL3RoaXMuZ3JvdXBzLDEwKTt2 YXI9CiBlPTNEMDtmb3IodmFyIHg9M0RwO3g8cjt4Kz0zRHArMSl7eVt4XT0zRCIgIn10aGlzLl9n cm91cGVkPTNEdHJ1ZX13PTNEQiswLj0KNTtpZih0aGlzLm51bWJlclRpY2tzPTNEPTNEbnVsbCl7 dGhpcy5udW1iZXJUaWNrcz0zRDIqQisxfXZhciBtPTNEdy1xO3RoaXMuPQptaW49M0RxO3RoaXMu bWF4PTNEdzt2YXIgbz0zRDA7dmFyIGc9M0RwYXJzZUludCgzK3YvMTAsMTApO3ZhciBwPTNEcGFy c2VJbnQ9CihCL2csMTApO2lmKHRoaXMudGlja0ludGVydmFsPTNEPTNEbnVsbCl7dGhpcy50aWNr SW50ZXJ2YWw9M0RtLyh0aGlzLm51bWJlcj0KVGlja3MtMSl9Zm9yKHZhciB4PTNEMDt4PHRoaXMu bnVtYmVyVGlja3M7eCsrKXtiPTNEdGhpcy5taW4reCp0aGlzLnRpY2tJbnRlPQpydmFsO3ZhciBo PTNEbmV3IHRoaXMudGlja1JlbmRlcmVyKHRoaXMudGlja09wdGlvbnMpO2lmKHgvMj0zRD0zRHBh cnNlSW50KHg9Ci8yLDEwKSl7aC5zaG93TGFiZWw9M0RmYWxzZTtoLnNob3dNYXJrPTNEdHJ1ZX1l bHNle2lmKHA+MCYmbzxwKXtoLnNob3dMYWJlbD0KPTNEZmFsc2U7bys9M0QxfWVsc2V7aC5zaG93 TGFiZWw9M0R0cnVlO289M0QwfWgubGFiZWw9M0RoLmZvcm1hdHRlcihoLmZvcm1hPQp0U3RyaW5n LHlbKHgtMSkvMl0pO2guc2hvd01hcms9M0RmYWxzZTtoLnNob3dHcmlkbGluZT0zRGZhbHNlfWgu c2V0VGljayhiLHQ9Cmhpcy5uYW1lKTt0aGlzLl90aWNrcy5wdXNoKGgpfX19O2EuanFwbG90LkNh dGVnb3J5QXhpc1JlbmRlcmVyLnByb3RvdHlwZS5kcj0KYXc9M0RmdW5jdGlvbihiLGope2lmKHRo aXMuc2hvdyl7dGhpcy5yZW5kZXJlci5jcmVhdGVUaWNrcy5jYWxsKHRoaXMpO3ZhciBoPQo9M0Qw O3ZhciBjO2lmKHRoaXMuX2VsZW0pe3RoaXMuX2VsZW0uZW1wdHlGb3JjZSgpfXRoaXMuX2VsZW09 M0R0aGlzLl9lbGVtfHw9CmEoJzxkaXYgY2xhc3M9M0QianFwbG90LWF4aXMganFwbG90LScrdGhp cy5uYW1lKyciIHN0eWxlPTNEInBvc2l0aW9uOmFic29sdT0KdGU7Ij48L2Rpdj4nKTtpZih0aGlz Lm5hbWU9M0Q9M0QieGF4aXMifHx0aGlzLm5hbWU9M0Q9M0QieDJheGlzIil7dGhpcy5fZWxlPQpt LndpZHRoKHRoaXMuX3Bsb3REaW1lbnNpb25zLndpZHRoKX1lbHNle3RoaXMuX2VsZW0uaGVpZ2h0 KHRoaXMuX3Bsb3REaW1lbnM9CmlvbnMuaGVpZ2h0KX10aGlzLmxhYmVsT3B0aW9ucy5heGlzPTNE dGhpcy5uYW1lO3RoaXMuX2xhYmVsPTNEbmV3IHRoaXMubGFiZT0KbFJlbmRlcmVyKHRoaXMubGFi ZWxPcHRpb25zKTtpZih0aGlzLl9sYWJlbC5zaG93KXt2YXIgZz0zRHRoaXMuX2xhYmVsLmRyYXco PQpiLGopO2cuYXBwZW5kVG8odGhpcy5fZWxlbSl9dmFyIGY9M0R0aGlzLl90aWNrcztmb3IodmFy IGU9M0QwO2U8Zi5sZW5ndGg7ZSs9Cispe3ZhciBkPTNEZltlXTtpZihkLnNob3dMYWJlbCYmKCFk LmlzTWlub3JUaWNrfHx0aGlzLnNob3dNaW5vclRpY2tzKSl7dmFyID0KZz0zRGQuZHJhdyhiLGop O2cuYXBwZW5kVG8odGhpcy5fZWxlbSl9fXRoaXMuX2dyb3VwTGFiZWxzPTNEW107Zm9yKHZhciBl PTNEPQowO2U8dGhpcy5ncm91cExhYmVscy5sZW5ndGg7ZSsrKXt2YXIgZz0zRGEoJzxkaXYgc3R5 bGU9M0QicG9zaXRpb246YWJzb2x1dGU9CjsiIGNsYXNzPTNEImpxcGxvdC0nK3RoaXMubmFtZSsn LWdyb3VwTGFiZWwiPjwvZGl2PicpO2cuaHRtbCh0aGlzLmdyb3VwTGFiZT0KbHNbZV0pO3RoaXMu X2dyb3VwTGFiZWxzLnB1c2goZyk7Zy5hcHBlbmRUbyh0aGlzLl9lbGVtKX19cmV0dXJuIHRoaXMu X2VsZW19PQo7YS5qcXBsb3QuQ2F0ZWdvcnlBeGlzUmVuZGVyZXIucHJvdG90eXBlLnNldD0zRGZ1 bmN0aW9uKCl7dmFyIGU9M0QwO3ZhciBtO3Y9CmFyIGs9M0QwO3ZhciBmPTNEMDt2YXIgZD0zRCh0 aGlzLl9sYWJlbD0zRD0zRG51bGwpP2ZhbHNlOnRoaXMuX2xhYmVsLnNob3c7aT0KZih0aGlzLnNo b3cpe3ZhciBuPTNEdGhpcy5fdGlja3M7Zm9yKHZhciBjPTNEMDtjPG4ubGVuZ3RoO2MrKyl7dmFy IGc9M0RuW2NdPQo7aWYoZy5zaG93TGFiZWwmJighZy5pc01pbm9yVGlja3x8dGhpcy5zaG93TWlu b3JUaWNrcykpe2lmKHRoaXMubmFtZT0zRD0zRCI9CnhheGlzInx8dGhpcy5uYW1lPTNEPTNEIngy YXhpcyIpe209M0RnLl9lbGVtLm91dGVySGVpZ2h0KHRydWUpfWVsc2V7bT0zRGcuXz0KZWxlbS5v dXRlcldpZHRoKHRydWUpfWlmKG0+ZSl7ZT0zRG19fX12YXIgaj0zRDA7Zm9yKHZhciBjPTNEMDtj PHRoaXMuX2dyb3VwPQpMYWJlbHMubGVuZ3RoO2MrKyl7dmFyIGI9M0R0aGlzLl9ncm91cExhYmVs c1tjXTtpZih0aGlzLm5hbWU9M0Q9M0QieGF4aXMifHw9CnRoaXMubmFtZT0zRD0zRCJ4MmF4aXMi KXttPTNEYi5vdXRlckhlaWdodCh0cnVlKX1lbHNle209M0RiLm91dGVyV2lkdGgodHJ1ZT0KKX1p ZihtPmope2o9M0RtfX1pZihkKXtrPTNEdGhpcy5fbGFiZWwuX2VsZW0ub3V0ZXJXaWR0aCh0cnVl KTtmPTNEdGhpcy5fbGFiPQplbC5fZWxlbS5vdXRlckhlaWdodCh0cnVlKX1pZih0aGlzLm5hbWU9 M0Q9M0QieGF4aXMiKXtlKz0zRGorZjt0aGlzLl9lbGVtLmM9CnNzKHtoZWlnaHQ6ZSsicHgiLGxl ZnQ6IjBweCIsYm90dG9tOiIwcHgifSl9ZWxzZXtpZih0aGlzLm5hbWU9M0Q9M0QieDJheGlzIj0K KXtlKz0zRGorZjt0aGlzLl9lbGVtLmNzcyh7aGVpZ2h0OmUrInB4IixsZWZ0OiIwcHgiLHRvcDoi MHB4In0pfWVsc2V7aWYodGhpPQpzLm5hbWU9M0Q9M0QieWF4aXMiKXtlKz0zRGorazt0aGlzLl9l bGVtLmNzcyh7d2lkdGg6ZSsicHgiLGxlZnQ6IjBweCIsdG9wOiI9CjBweCJ9KTtpZihkJiZ0aGlz Ll9sYWJlbC5jb25zdHJ1Y3Rvcj0zRD0zRGEuanFwbG90LkF4aXNMYWJlbFJlbmRlcmVyKXt0aGlz Lj0KX2xhYmVsLl9lbGVtLmNzcygid2lkdGgiLGsrInB4Iil9fWVsc2V7ZSs9M0RqK2s7dGhpcy5f ZWxlbS5jc3Moe3dpZHRoOmUrInB4PQoiLHJpZ2h0OiIwcHgiLHRvcDoiMHB4In0pO2lmKGQmJnRo aXMuX2xhYmVsLmNvbnN0cnVjdG9yPTNEPTNEYS5qcXBsb3QuQXhpc0w9CmFiZWxSZW5kZXJlcil7 dGhpcy5fbGFiZWwuX2VsZW0uY3NzKCJ3aWR0aCIsaysicHgiKX19fX19fTthLmpxcGxvdC5DYXRl Z29yeT0KQXhpc1JlbmRlcmVyLnByb3RvdHlwZS5wYWNrPTNEZnVuY3Rpb24oZSxjKXt2YXIgQz0z RHRoaXMuX3RpY2tzO3ZhciB2PTNEdGhpPQpzLm1heDt2YXIgcz0zRHRoaXMubWluO3ZhciBuPTNE Yy5tYXg7dmFyIGw9M0RjLm1pbjt2YXIgcT0zRCh0aGlzLl9sYWJlbD0zRD0KPTNEbnVsbCk/ZmFs c2U6dGhpcy5fbGFiZWwuc2hvdzt2YXIgeDtmb3IodmFyIHIgaW4gZSl7dGhpcy5fZWxlbS5jc3Mo cixlW3JdPQopfXRoaXMuX29mZnNldHM9M0RjO3ZhciBnPTNEbi1sO3ZhciBrPTNEdi1zO2lmKCF0 aGlzLnJldmVyc2Upe3RoaXMudTJwPTNEZnU9Cm5jdGlvbihoKXtyZXR1cm4oaC1zKSpnL2srbH07 dGhpcy5wMnU9M0RmdW5jdGlvbihoKXtyZXR1cm4oaC1sKSprL2crc307aWYodD0KaGlzLm5hbWU9 M0Q9M0QieGF4aXMifHx0aGlzLm5hbWU9M0Q9M0QieDJheGlzIil7dGhpcy5zZXJpZXNfdTJwPTNE ZnVuY3Rpb24oPQpoKXtyZXR1cm4oaC1zKSpnL2t9O3RoaXMuc2VyaWVzX3AydT0zRGZ1bmN0aW9u KGgpe3JldHVybiBoKmsvZytzfX1lbHNle3RoaXM9Ci5zZXJpZXNfdTJwPTNEZnVuY3Rpb24oaCl7 cmV0dXJuKGgtdikqZy9rfTt0aGlzLnNlcmllc19wMnU9M0RmdW5jdGlvbihoKXtyZT0KdHVybiBo KmsvZyt2fX19ZWxzZXt0aGlzLnUycD0zRGZ1bmN0aW9uKGgpe3JldHVybiBsKyh2LWgpKmcva307 dGhpcy5wMnU9M0RmPQp1bmN0aW9uKGgpe3JldHVybiBzKyhoLWwpKmsvZ307aWYodGhpcy5uYW1l PTNEPTNEInhheGlzInx8dGhpcy5uYW1lPTNEPTNEIng9CjJheGlzIil7dGhpcy5zZXJpZXNfdTJw PTNEZnVuY3Rpb24oaCl7cmV0dXJuKHYtaCkqZy9rfTt0aGlzLnNlcmllc19wMnU9M0RmdT0KbmN0 aW9uKGgpe3JldHVybiBoKmsvZyt2fX1lbHNle3RoaXMuc2VyaWVzX3UycD0zRGZ1bmN0aW9uKGgp e3JldHVybihzLWgpKmcvPQprfTt0aGlzLnNlcmllc19wMnU9M0RmdW5jdGlvbihoKXtyZXR1cm4g aCprL2crc319fWlmKHRoaXMuc2hvdyl7aWYodGhpcy5uYW09CmU9M0Q9M0QieGF4aXMifHx0aGlz Lm5hbWU9M0Q9M0QieDJheGlzIil7Zm9yKHg9M0QwO3g8Qy5sZW5ndGg7eCsrKXt2YXIgbz0zRD0K Q1t4XTtpZihvLnNob3cmJm8uc2hvd0xhYmVsKXt2YXIgYjtpZihvLmNvbnN0cnVjdG9yPTNEPTNE YS5qcXBsb3QuQ2FudmFzQXhpPQpzVGlja1JlbmRlcmVyJiZvLmFuZ2xlKXt2YXIgQT0zRCh0aGlz Lm5hbWU9M0Q9M0QieGF4aXMiKT8xOi0xO3N3aXRjaChvLmxhYmU9CmxQb3NpdGlvbil7Y2FzZSJh dXRvIjppZihBKm8uYW5nbGU8MCl7Yj0zRC1vLmdldFdpZHRoKCkrby5fdGV4dFJlbmRlcmVyLmhl aT0KZ2h0Kk1hdGguc2luKC1vLl90ZXh0UmVuZGVyZXIuYW5nbGUpLzJ9ZWxzZXtiPTNELW8uX3Rl eHRSZW5kZXJlci5oZWlnaHQqTWF0PQpoLnNpbihvLl90ZXh0UmVuZGVyZXIuYW5nbGUpLzJ9YnJl YWs7Y2FzZSJlbmQiOmI9M0Qtby5nZXRXaWR0aCgpK28uX3RleHRSZW49CmRlcmVyLmhlaWdodCpN YXRoLnNpbigtby5fdGV4dFJlbmRlcmVyLmFuZ2xlKS8yO2JyZWFrO2Nhc2Uic3RhcnQiOmI9M0Qt by5fdD0KZXh0UmVuZGVyZXIuaGVpZ2h0Kk1hdGguc2luKG8uX3RleHRSZW5kZXJlci5hbmdsZSkv MjticmVhaztjYXNlIm1pZGRsZSI6Yj0KPTNELW8uZ2V0V2lkdGgoKS8yK28uX3RleHRSZW5kZXJl ci5oZWlnaHQqTWF0aC5zaW4oLW8uX3RleHRSZW5kZXJlci5hbmdsZSkvPQoyO2JyZWFrO2RlZmF1 bHQ6Yj0zRC1vLmdldFdpZHRoKCkvMitvLl90ZXh0UmVuZGVyZXIuaGVpZ2h0Kk1hdGguc2luKC1v Ll90ZXg9CnRSZW5kZXJlci5hbmdsZSkvMjticmVha319ZWxzZXtiPTNELW8uZ2V0V2lkdGgoKS8y fXZhciBEPTNEdGhpcy51MnAoby52YWx1ZT0KKStiKyJweCI7by5fZWxlbS5jc3MoImxlZnQiLEQp O28ucGFjaygpfX12YXIgej0zRFsiYm90dG9tIiwwXTtpZihxKXt2YXIgbT0KPTNEdGhpcy5fbGFi ZWwuX2VsZW0ub3V0ZXJXaWR0aCh0cnVlKTt0aGlzLl9sYWJlbC5fZWxlbS5jc3MoImxlZnQiLGwr Zy8yLW0vPQoyKyJweCIpO2lmKHRoaXMubmFtZT0zRD0zRCJ4YXhpcyIpe3RoaXMuX2xhYmVsLl9l bGVtLmNzcygiYm90dG9tIiwiMHB4Iik7ej0KPTNEWyJib3R0b20iLHRoaXMuX2xhYmVsLl9lbGVt Lm91dGVySGVpZ2h0KHRydWUpXX1lbHNle3RoaXMuX2xhYmVsLl9lbGVtLmNzPQpzKCJ0b3AiLCIw cHgiKTt6PTNEWyJ0b3AiLHRoaXMuX2xhYmVsLl9lbGVtLm91dGVySGVpZ2h0KHRydWUpXX10aGlz Ll9sYWJlbC49CnBhY2soKX12YXIgZD0zRHBhcnNlSW50KHRoaXMuX3RpY2tzLmxlbmd0aC90aGlz Lmdyb3VwcywxMCkrMTtmb3IoeD0zRDA7eDx0aD0KaXMuX2dyb3VwTGFiZWxzLmxlbmd0aDt4Kysp e3ZhciBCPTNEMDt2YXIgZj0zRDA7Zm9yKHZhciB1PTNEeCpkO3U8KHgrMSkqZDt1PQorKyl7aWYo dT49M0R0aGlzLl90aWNrcy5sZW5ndGgtMSl7Y29udGludWV9aWYodGhpcy5fdGlja3NbdV0uX2Vs ZW0mJnRoaXMuX3Q9Cmlja3NbdV0ubGFiZWwhPTNEIiAiKXt2YXIgbz0zRHRoaXMuX3RpY2tzW3Vd Ll9lbGVtO3ZhciByPTNEby5wb3NpdGlvbigpO0IrPQo9M0RyLmxlZnQrby5vdXRlcldpZHRoKHRy dWUpLzI7ZisrfX1CPTNEQi9mO3RoaXMuX2dyb3VwTGFiZWxzW3hdLmNzcyh7bGVmdDo9CihCLXRo aXMuX2dyb3VwTGFiZWxzW3hdLm91dGVyV2lkdGgodHJ1ZSkvMil9KTt0aGlzLl9ncm91cExhYmVs c1t4XS5jc3MoelswXT0KLHpbMV0pfX1lbHNle2Zvcih4PTNEMDt4PEMubGVuZ3RoO3grKyl7dmFy IG89M0RDW3hdO2lmKG8uc2hvdyYmby5zaG93TGFiZWwpPQp7dmFyIGI7aWYoby5jb25zdHJ1Y3Rv cj0zRD0zRGEuanFwbG90LkNhbnZhc0F4aXNUaWNrUmVuZGVyZXImJm8uYW5nbGUpe3ZhciA9CkE9 M0QodGhpcy5uYW1lPTNEPTNEInlheGlzIik/MTotMTtzd2l0Y2goby5sYWJlbFBvc2l0aW9uKXtj YXNlImF1dG8iOmNhc2UiZT0KbmQiOmlmKEEqby5hbmdsZTwwKXtiPTNELW8uX3RleHRSZW5kZXJl ci5oZWlnaHQqTWF0aC5jb3MoLW8uX3RleHRSZW5kZXJlci5hPQpuZ2xlKS8yfWVsc2V7Yj0zRC1v LmdldEhlaWdodCgpK28uX3RleHRSZW5kZXJlci5oZWlnaHQqTWF0aC5jb3Moby5fdGV4dFJlbmQ9 CmVyZXIuYW5nbGUpLzJ9YnJlYWs7Y2FzZSJzdGFydCI6aWYoby5hbmdsZT4wKXtiPTNELW8uX3Rl eHRSZW5kZXJlci5oZWlnaHQqTT0KYXRoLmNvcygtby5fdGV4dFJlbmRlcmVyLmFuZ2xlKS8yfWVs c2V7Yj0zRC1vLmdldEhlaWdodCgpK28uX3RleHRSZW5kZXJlci5oPQplaWdodCpNYXRoLmNvcyhv Ll90ZXh0UmVuZGVyZXIuYW5nbGUpLzJ9YnJlYWs7Y2FzZSJtaWRkbGUiOmI9M0Qtby5nZXRIZWln aHQ9CigpLzI7YnJlYWs7ZGVmYXVsdDpiPTNELW8uZ2V0SGVpZ2h0KCkvMjticmVha319ZWxzZXti PTNELW8uZ2V0SGVpZ2h0KCkvMn12YT0KciBEPTNEdGhpcy51MnAoby52YWx1ZSkrYisicHgiO28u X2VsZW0uY3NzKCJ0b3AiLEQpO28ucGFjaygpfX12YXIgej0zRFsibGVmPQp0IiwwXTtpZihxKXt2 YXIgeT0zRHRoaXMuX2xhYmVsLl9lbGVtLm91dGVySGVpZ2h0KHRydWUpO3RoaXMuX2xhYmVsLl9l bGVtLmM9CnNzKCJ0b3AiLG4tZy8yLXkvMisicHgiKTtpZih0aGlzLm5hbWU9M0Q9M0QieWF4aXMi KXt0aGlzLl9sYWJlbC5fZWxlbS5jc3MoIj0KbGVmdCIsIjBweCIpO3o9M0RbImxlZnQiLHRoaXMu X2xhYmVsLl9lbGVtLm91dGVyV2lkdGgodHJ1ZSldfWVsc2V7dGhpcy5fbGFiPQplbC5fZWxlbS5j c3MoInJpZ2h0IiwiMHB4Iik7ej0zRFsicmlnaHQiLHRoaXMuX2xhYmVsLl9lbGVtLm91dGVyV2lk dGgodHJ1ZSk9Cl19dGhpcy5fbGFiZWwucGFjaygpfXZhciBkPTNEcGFyc2VJbnQodGhpcy5fdGlj a3MubGVuZ3RoL3RoaXMuZ3JvdXBzLDEwKSsxOz0KZm9yKHg9M0QwO3g8dGhpcy5fZ3JvdXBMYWJl bHMubGVuZ3RoO3grKyl7dmFyIEI9M0QwO3ZhciBmPTNEMDtmb3IodmFyIHU9M0R4PQoqZDt1PCh4 KzEpKmQ7dSsrKXtpZih1Pj0zRHRoaXMuX3RpY2tzLmxlbmd0aC0xKXtjb250aW51ZX1pZih0aGlz Ll90aWNrc1t1XS49Cl9lbGVtJiZ0aGlzLl90aWNrc1t1XS5sYWJlbCE9M0QiICIpe3ZhciBvPTNE dGhpcy5fdGlja3NbdV0uX2VsZW07dmFyIHI9M0RvLj0KcG9zaXRpb24oKTtCKz0zRHIudG9wK28u b3V0ZXJIZWlnaHQoKS8yO2YrK319Qj0zREIvZjt0aGlzLl9ncm91cExhYmVsc1t4XS5jPQpzcyh7 dG9wOkItdGhpcy5fZ3JvdXBMYWJlbHNbeF0ub3V0ZXJIZWlnaHQoKS8yfSk7dGhpcy5fZ3JvdXBM YWJlbHNbeF0uY3NzKHo9ClswXSx6WzFdKX19fX19KShqUXVlcnkpOy8qIGpxUGxvdCAxLjAuOHIx MjUwIHwgKGMpIDIwMDktMjAxMyBDaHJpcyBMZW9uZWxsbz0KIHwganBsb3QuY29tCisgICBqc0Rh dGUgfCAoYykgMjAxMC0yMDEzIENocmlzIExlb25lbGxvCisgKi8oZnVuY3Rpb24oail7ai5qcXBs b3QuQ3Vyc29yPTNEZnVuY3Rpb24ocSl7dGhpcy5zdHlsZT0zRCJjcm9zc2hhaXIiO3RoaT0Kcy5w cmV2aW91c0N1cnNvcj0zRCJhdXRvIjt0aGlzLnNob3c9M0RqLmpxcGxvdC5jb25maWcuZW5hYmxl UGx1Z2luczt0aGlzLnNoPQpvd1Rvb2x0aXA9M0R0cnVlO3RoaXMuZm9sbG93TW91c2U9M0RmYWxz ZTt0aGlzLnRvb2x0aXBMb2NhdGlvbj0zRCJzZSI7dGhpcy49CnRvb2x0aXBPZmZzZXQ9M0Q2O3Ro aXMuc2hvd1Rvb2x0aXBHcmlkUG9zaXRpb249M0RmYWxzZTt0aGlzLnNob3dUb29sdGlwVW5pdD0K UG9zaXRpb249M0R0cnVlO3RoaXMuc2hvd1Rvb2x0aXBEYXRhUG9zaXRpb249M0RmYWxzZTt0aGlz LnRvb2x0aXBGb3JtYXRTdHJpPQpuZz0zRCIlLjRQLCAlLjRQIjt0aGlzLnVzZUF4ZXNGb3JtYXR0 ZXJzPTNEdHJ1ZTt0aGlzLnRvb2x0aXBBeGlzR3JvdXBzPTNEW109Cjt0aGlzLnpvb209M0RmYWxz ZTt0aGlzLnpvb21Qcm94eT0zRGZhbHNlO3RoaXMuem9vbVRhcmdldD0zRGZhbHNlO3RoaXMubG9v cz0KZVpvb209M0R0cnVlO3RoaXMuY2xpY2tSZXNldD0zRGZhbHNlO3RoaXMuZGJsQ2xpY2tSZXNl dD0zRHRydWU7dGhpcy5zaG93VmVyPQp0aWNhbExpbmU9M0RmYWxzZTt0aGlzLnNob3dIb3Jpem9u dGFsTGluZT0zRGZhbHNlO3RoaXMuY29uc3RyYWluWm9vbVRvPTNEIm49Cm9uZSI7dGhpcy5zaGFw ZVJlbmRlcmVyPTNEbmV3IGouanFwbG90LlNoYXBlUmVuZGVyZXIoKTt0aGlzLl96b29tPTNEe3N0 YXJ0Oj0KW10sZW5kOltdLHN0YXJ0ZWQ6ZmFsc2Usem9vbWluZzpmYWxzZSxpc1pvb21lZDpmYWxz ZSxheGVzOntzdGFydDp7fSxlbmQ6e319PQosZ3JpZHBvczp7fSxkYXRhcG9zOnt9fTt0aGlzLl90 b29sdGlwRWxlbTt0aGlzLnpvb21DYW52YXM7dGhpcy5jdXJzb3JDYW52YXM9Cjt0aGlzLmludGVy c2VjdGlvblRocmVzaG9sZD0zRDI7dGhpcy5zaG93Q3Vyc29yTGVnZW5kPTNEZmFsc2U7dGhpcy5j dXJzb3JMZT0KZ2VuZEZvcm1hdFN0cmluZz0zRGouanFwbG90LkN1cnNvci5jdXJzb3JMZWdlbmRG b3JtYXRTdHJpbmc7dGhpcy5fb2xkSGFuZGxlPQpycz0zRHtvbnNlbGVjdHN0YXJ0Om51bGwsb25k cmFnOm51bGwsb25tb3VzZWRvd246bnVsbH07dGhpcy5jb25zdHJhaW5PdXRzaWQ9CmVab29tPTNE dHJ1ZTt0aGlzLnNob3dUb29sdGlwT3V0c2lkZVpvb209M0RmYWxzZTt0aGlzLm9uR3JpZD0zRGZh bHNlO2ouZXh0ZT0KbmQodHJ1ZSx0aGlzLHEpfTtqLmpxcGxvdC5DdXJzb3IuY3Vyc29yTGVnZW5k Rm9ybWF0U3RyaW5nPTNEIiVzIHg6JXMsIHk6JXMiPQo7ai5qcXBsb3QuQ3Vyc29yLmluaXQ9M0Rm dW5jdGlvbih0LHMscil7dmFyIHE9M0RyfHx7fTt0aGlzLnBsdWdpbnMuY3Vyc29yPQo9M0RuZXcg ai5qcXBsb3QuQ3Vyc29yKHEuY3Vyc29yKTt2YXIgdT0zRHRoaXMucGx1Z2lucy5jdXJzb3I7aWYo dS5zaG93KXtqLmo9CnFwbG90LmV2ZW50TGlzdGVuZXJIb29rcy5wdXNoKFsianFwbG90TW91c2VF bnRlciIsYl0pO2ouanFwbG90LmV2ZW50TGlzdGVuZT0Kckhvb2tzLnB1c2goWyJqcXBsb3RNb3Vz ZUxlYXZlIixmXSk7ai5qcXBsb3QuZXZlbnRMaXN0ZW5lckhvb2tzLnB1c2goWyJqcXBsPQpvdE1v dXNlTW92ZSIsaV0pO2lmKHUuc2hvd0N1cnNvckxlZ2VuZCl7ci5sZWdlbmQ9M0RyLmxlZ2VuZHx8 e307ci5sZWdlbmQucmU9Cm5kZXJlcj0zRGouanFwbG90LkN1cnNvckxlZ2VuZFJlbmRlcmVyO3Iu bGVnZW5kLmZvcm1hdFN0cmluZz0zRHRoaXMucGx1Z2lucz0KLmN1cnNvci5jdXJzb3JMZWdlbmRG b3JtYXRTdHJpbmc7ci5sZWdlbmQuc2hvdz0zRHRydWV9aWYodS56b29tKXtqLmpxcGxvdC5lPQp2 ZW50TGlzdGVuZXJIb29rcy5wdXNoKFsianFwbG90TW91c2VEb3duIixhXSk7aWYodS5jbGlja1Jl c2V0KXtqLmpxcGxvdC5ldmU9Cm50TGlzdGVuZXJIb29rcy5wdXNoKFsianFwbG90Q2xpY2siLGtd KX1pZih1LmRibENsaWNrUmVzZXQpe2ouanFwbG90LmV2ZW50TD0KaXN0ZW5lckhvb2tzLnB1c2go WyJqcXBsb3REYmxDbGljayIsY10pfX10aGlzLnJlc2V0Wm9vbT0zRGZ1bmN0aW9uKCl7dmFyIHg9 Cj0zRHRoaXMuYXhlcztpZighdS56b29tUHJveHkpe2Zvcih2YXIgdyBpbiB4KXt4W3ddLnJlc2V0 KCk7eFt3XS5fdGlja3M9M0RbXT0KO2lmKHUuX3pvb20uYXhlc1t3XSE9M0Q9M0R1bmRlZmluZWQp e3hbd10uX2F1dG9Gb3JtYXRTdHJpbmc9M0R1Ll96b29tLmF4ZXNbPQp3XS50aWNrRm9ybWF0U3Ry aW5nfX10aGlzLnJlZHJhdygpfWVsc2V7dmFyIHY9M0R0aGlzLnBsdWdpbnMuY3Vyc29yLnpvb21D YW49CnZhcy5fY3R4O3YuY2xlYXJSZWN0KDAsMCx2LmNhbnZhcy53aWR0aCx2LmNhbnZhcy5oZWln aHQpO3Y9M0RudWxsfXRoaXMucGx1Zz0KaW5zLmN1cnNvci5fem9vbS5pc1pvb21lZD0zRGZhbHNl O3RoaXMudGFyZ2V0LnRyaWdnZXIoImpxcGxvdFJlc2V0Wm9vbSIsW3RoPQppcyx0aGlzLnBsdWdp bnMuY3Vyc29yXSl9O2lmKHUuc2hvd1Rvb2x0aXBEYXRhUG9zaXRpb24pe3Uuc2hvd1Rvb2x0aXBV bml0UG89CnNpdGlvbj0zRGZhbHNlO3Uuc2hvd1Rvb2x0aXBHcmlkUG9zaXRpb249M0RmYWxzZTtp ZihxLmN1cnNvci50b29sdGlwRm9ybWF0Uz0KdHJpbmc9M0Q9M0R1bmRlZmluZWQpe3UudG9vbHRp cEZvcm1hdFN0cmluZz0zRGouanFwbG90LkN1cnNvci5jdXJzb3JMZWdlbmRGPQpvcm1hdFN0cmlu Z319fX07ai5qcXBsb3QuQ3Vyc29yLnBvc3REcmF3PTNEZnVuY3Rpb24oKXt2YXIgeD0zRHRoaXMu cGx1Z2lucy49CmN1cnNvcjtpZih4Lnpvb21DYW52YXMpe3guem9vbUNhbnZhcy5yZXNldENhbnZh cygpO3guem9vbUNhbnZhcz0zRG51bGx9aWYoeD0KLmN1cnNvckNhbnZhcyl7eC5jdXJzb3JDYW52 YXMucmVzZXRDYW52YXMoKTt4LmN1cnNvckNhbnZhcz0zRG51bGx9aWYoeC5fdG9vPQpsdGlwRWxl bSl7eC5fdG9vbHRpcEVsZW0uZW1wdHlGb3JjZSgpO3guX3Rvb2x0aXBFbGVtPTNEbnVsbH1pZih4 Lnpvb20pe3guem89Cm9tQ2FudmFzPTNEbmV3IGouanFwbG90LkdlbmVyaWNDYW52YXMoKTt0aGlz LmV2ZW50Q2FudmFzLl9lbGVtLmJlZm9yZSh4Lnpvbz0KbUNhbnZhcy5jcmVhdGVFbGVtZW50KHRo aXMuX2dyaWRQYWRkaW5nLCJqcXBsb3Qtem9vbS1jYW52YXMiLHRoaXMuX3Bsb3REaW1lPQpuc2lv bnMsdGhpcykpO3guem9vbUNhbnZhcy5zZXRDb250ZXh0KCl9dmFyIHY9M0Rkb2N1bWVudC5jcmVh dGVFbGVtZW50KCJkaXY9CiIpO3guX3Rvb2x0aXBFbGVtPTNEaih2KTt2PTNEbnVsbDt4Ll90b29s dGlwRWxlbS5hZGRDbGFzcygianFwbG90LWN1cnNvci10bz0Kb2x0aXAiKTt4Ll90b29sdGlwRWxl bS5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsZGlzcGxheToibm9uZSJ9KTtpZih4Lnpvb21DPQph bnZhcyl7eC56b29tQ2FudmFzLl9lbGVtLmJlZm9yZSh4Ll90b29sdGlwRWxlbSl9ZWxzZXt0aGlz LmV2ZW50Q2FudmFzLl9lbGU9Cm0uYmVmb3JlKHguX3Rvb2x0aXBFbGVtKX1pZih4LnNob3dWZXJ0 aWNhbExpbmV8fHguc2hvd0hvcml6b250YWxMaW5lKXt4LmN1cj0Kc29yQ2FudmFzPTNEbmV3IGou anFwbG90LkdlbmVyaWNDYW52YXMoKTt0aGlzLmV2ZW50Q2FudmFzLl9lbGVtLmJlZm9yZSh4LmN1 PQpyc29yQ2FudmFzLmNyZWF0ZUVsZW1lbnQodGhpcy5fZ3JpZFBhZGRpbmcsImpxcGxvdC1jdXJz b3ItY2FudmFzIix0aGlzLl9wbG89CnREaW1lbnNpb25zLHRoaXMpKTt4LmN1cnNvckNhbnZhcy5z ZXRDb250ZXh0KCl9aWYoeC5zaG93VG9vbHRpcFVuaXRQb3NpdGlvbj0KKXtpZih4LnRvb2x0aXBB eGlzR3JvdXBzLmxlbmd0aD0zRD0zRD0zRDApe3ZhciB0PTNEdGhpcy5zZXJpZXM7dmFyIHU7dmFy IHE9Cj0zRFtdO2Zvcih2YXIgcj0zRDA7cjx0Lmxlbmd0aDtyKyspe3U9M0R0W3JdO3ZhciB3PTNE dS54YXhpcysiLCIrdS55YXhpcztpZj0KKGouaW5BcnJheSh3LHEpPTNEPTNELTEpe3EucHVzaCh3 KX19Zm9yKHZhciByPTNEMDtyPHEubGVuZ3RoO3IrKyl7eC50b29sdGlwPQpBeGlzR3JvdXBzLnB1 c2gocVtyXS5zcGxpdCgiLCIpKX19fX07ai5qcXBsb3QuQ3Vyc29yLnpvb21Qcm94eT0zRGZ1bmN0 aW9uKHY9CixyKXt2YXIgcT0zRHYucGx1Z2lucy5jdXJzb3I7dmFyIHU9M0RyLnBsdWdpbnMuY3Vy c29yO3Euem9vbVRhcmdldD0zRHRydWU7cT0KLnpvb209M0R0cnVlO3Euc3R5bGU9M0QiYXV0byI7 cS5kYmxDbGlja1Jlc2V0PTNEZmFsc2U7dS56b29tPTNEdHJ1ZTt1Lnpvb21QPQpyb3h5PTNEdHJ1 ZTtyLnRhcmdldC5iaW5kKCJqcXBsb3Rab29tIix0KTtyLnRhcmdldC5iaW5kKCJqcXBsb3RSZXNl dFpvb20iLHM9Cik7ZnVuY3Rpb24gdCh4LHcseix5LEEpe3EuZG9ab29tKHcseix2LEEpfWZ1bmN0 aW9uIHModyx4LHkpe3YucmVzZXRab29tKCl9fT0KO2ouanFwbG90LkN1cnNvci5wcm90b3R5cGUu cmVzZXRab29tPTNEZnVuY3Rpb24odSx2KXt2YXIgdD0zRHUuYXhlczt2YXIgcz0KPTNEdi5fem9v bS5heGVzO2lmKCF1LnBsdWdpbnMuY3Vyc29yLnpvb21Qcm94eSYmdi5fem9vbS5pc1pvb21lZCl7 Zm9yKHZhciByPQogaW4gdCl7dFtyXS5yZXNldCgpO3Rbcl0uX3RpY2tzPTNEW107dFtyXS5fYXV0 b0Zvcm1hdFN0cmluZz0zRHNbcl0udGlja0Zvcm09CmF0U3RyaW5nfXUucmVkcmF3KCk7di5fem9v bS5pc1pvb21lZD0zRGZhbHNlfWVsc2V7dmFyIHE9M0R2Lnpvb21DYW52YXMuX2N0eD0KO3EuY2xl YXJSZWN0KDAsMCxxLmNhbnZhcy53aWR0aCxxLmNhbnZhcy5oZWlnaHQpO3E9M0RudWxsfXUudGFy Z2V0LnRyaWdnZXIoPQoianFwbG90UmVzZXRab29tIixbdSx2XSl9O2ouanFwbG90LkN1cnNvci5y ZXNldFpvb209M0RmdW5jdGlvbihxKXtxLnJlc2V0Wm89Cm9tKCl9O2ouanFwbG90LkN1cnNvci5w cm90b3R5cGUuZG9ab29tPTNEZnVuY3Rpb24oRyx0LEMsdSl7dmFyIEk9M0R1O3ZhciBGPQo9M0RD LmF4ZXM7dmFyIHI9M0RJLl96b29tLmF4ZXM7dmFyIHc9M0RyLnN0YXJ0O3ZhciBzPTNEci5lbmQ7 dmFyIEIsRSx6LEQsdiw9CngscSxILEo7dmFyIEE9M0RDLnBsdWdpbnMuY3Vyc29yLnpvb21DYW52 YXMuX2N0eDtpZigoSS5jb25zdHJhaW5ab29tVG89M0Q9Cj0zRCJub25lIiYmTWF0aC5hYnMoRy54 LUkuX3pvb20uc3RhcnRbMF0pPjYmJk1hdGguYWJzKEcueS1JLl96b29tLnN0YXJ0WzFdKT0KPjYp fHwoSS5jb25zdHJhaW5ab29tVG89M0Q9M0QieCImJk1hdGguYWJzKEcueC1JLl96b29tLnN0YXJ0 WzBdKT42KXx8KEkuY29uPQpzdHJhaW5ab29tVG89M0Q9M0QieSImJk1hdGguYWJzKEcueS1JLl96 b29tLnN0YXJ0WzFdKT42KSl7aWYoIUMucGx1Z2lucy5jdXI9CnNvci56b29tUHJveHkpe2Zvcih2 YXIgeSBpbiB0KXtpZihJLl96b29tLmF4ZXNbeV09M0Q9M0R1bmRlZmluZWQpe0kuX3pvb20uYT0K eGVzW3ldPTNEe307SS5fem9vbS5heGVzW3ldLm51bWJlclRpY2tzPTNERlt5XS5udW1iZXJUaWNr cztJLl96b29tLmF4ZXNbeV0uPQp0aWNrSW50ZXJ2YWw9M0RGW3ldLnRpY2tJbnRlcnZhbDtJLl96 b29tLmF4ZXNbeV0uZGFUaWNrSW50ZXJ2YWw9M0RGW3ldLmRhVGk9CmNrSW50ZXJ2YWw7SS5fem9v bS5heGVzW3ldLm1pbj0zREZbeV0ubWluO0kuX3pvb20uYXhlc1t5XS5tYXg9M0RGW3ldLm1heDtJ Lj0KX3pvb20uYXhlc1t5XS50aWNrRm9ybWF0U3RyaW5nPTNEKEZbeV0udGlja09wdGlvbnMhPTNE bnVsbCk/Rlt5XS50aWNrT3B0aW9uPQpzLmZvcm1hdFN0cmluZzoiIn1pZigoSS5jb25zdHJhaW5a b29tVG89M0Q9M0Qibm9uZSIpfHwoSS5jb25zdHJhaW5ab29tVG89M0Q9Cj0zRCJ4IiYmeS5jaGFy QXQoMCk9M0Q9M0QieCIpfHwoSS5jb25zdHJhaW5ab29tVG89M0Q9M0QieSImJnkuY2hhckF0KDAp PTNEPQo9M0QieSIpKXt6PTNEdFt5XTtpZih6IT0zRG51bGwpe2lmKHo+d1t5XSl7dj0zRHdbeV07 eD0zRHp9ZWxzZXtEPTNEd1t5XS16O3Y9Cj0zRHo7eD0zRHdbeV19cT0zREZbeV07SD0zRG51bGw7 aWYocS5hbGlnblRpY2tzKXtpZihxLm5hbWU9M0Q9M0Q9M0QieDJheGlzIj0KJiZDLmF4ZXMueGF4 aXMuc2hvdyl7SD0zREMuYXhlcy54YXhpcy5udW1iZXJUaWNrc31lbHNle2lmKHEubmFtZS5jaGFy QXQoMCk9Cj0zRD0zRD0zRCJ5IiYmcS5uYW1lIT0zRD0zRCJ5YXhpcyImJnEubmFtZSE9M0Q9M0Qi eU1pZEF4aXMiJiZDLmF4ZXMueWF4aXMucz0KaG93KXtIPTNEQy5heGVzLnlheGlzLm51bWJlclRp Y2tzfX19aWYodGhpcy5sb29zZVpvb20mJihGW3ldLnJlbmRlcmVyLmNvbnN0PQpydWN0b3I9M0Q9 M0Q9M0RqLmpxcGxvdC5MaW5lYXJBeGlzUmVuZGVyZXJ8fEZbeV0ucmVuZGVyZXIuY29uc3RydWN0 b3I9M0Q9M0Q9Cj0zRGouanFwbG90LkxvZ0F4aXNSZW5kZXJlcikpe0o9M0RqLmpxcGxvdC5MaW5l YXJUaWNrR2VuZXJhdG9yKHYseCxxLl9zY2FsZT0KZmFjdCxIKTtpZihGW3ldLnRpY2tJbnNldCYm SlswXTxGW3ldLm1pbitGW3ldLnRpY2tJbnNldCpGW3ldLnRpY2tJbnRlcnZhbCl7PQpKWzBdKz0z REpbNF07SlsyXS09M0QxfWlmKEZbeV0udGlja0luc2V0JiZKWzFdPkZbeV0ubWF4LUZbeV0udGlj a0luc2V0KkZbeV09Ci50aWNrSW50ZXJ2YWwpe0pbMV0tPTNESls0XTtKWzJdLT0zRDF9aWYoRlt5 XS5yZW5kZXJlci5jb25zdHJ1Y3Rvcj0zRD0zRD0zRD0Kai5qcXBsb3QuTG9nQXhpc1JlbmRlcmVy JiZKWzBdPEZbeV0ubWluKXtKWzBdKz0zREpbNF07SlsyXS09M0QxfUZbeV0ubWluPTNEPQpKWzBd O0ZbeV0ubWF4PTNESlsxXTtGW3ldLl9hdXRvRm9ybWF0U3RyaW5nPTNESlszXTtGW3ldLm51bWJl clRpY2tzPTNESlsyXTs9CkZbeV0udGlja0ludGVydmFsPTNESls0XTtGW3ldLmRhVGlja0ludGVy dmFsPTNEW0pbNF0vMTAwMCwic2Vjb25kcyJdfWVsc2V7Rj0KW3ldLm1pbj0zRHY7Rlt5XS5tYXg9 M0R4O0ZbeV0udGlja0ludGVydmFsPTNEbnVsbDtGW3ldLm51bWJlclRpY2tzPTNEbnVsbDtGPQpb eV0uZGFUaWNrSW50ZXJ2YWw9M0RudWxsfUZbeV0uX3RpY2tzPTNEW119fX1BLmNsZWFyUmVjdCgw LDAsQS5jYW52YXMud2lkdGg9CixBLmNhbnZhcy5oZWlnaHQpO0MucmVkcmF3KCk7SS5fem9vbS5p c1pvb21lZD0zRHRydWU7QT0zRG51bGx9Qy50YXJnZXQudHJpZz0KZ2VyKCJqcXBsb3Rab29tIixb Ryx0LEMsdV0pfX07ai5qcXBsb3QucHJlSW5pdEhvb2tzLnB1c2goai5qcXBsb3QuQ3Vyc29yLmlu PQppdCk7ai5qcXBsb3QucG9zdERyYXdIb29rcy5wdXNoKGouanFwbG90LkN1cnNvci5wb3N0RHJh dyk7ZnVuY3Rpb24gZShHLHIsQyk9Cnt2YXIgSj0zREMucGx1Z2lucy5jdXJzb3I7dmFyIHc9M0Qi Ijt2YXIgTj0zRGZhbHNlO2lmKEouc2hvd1Rvb2x0aXBHcmlkUG9zaT0KdGlvbil7dz0zREcueCsi LCAiK0cueTtOPTNEdHJ1ZX1pZihKLnNob3dUb29sdGlwVW5pdFBvc2l0aW9uKXt2YXIgRjtmb3Io dmFyPQogRT0zRDA7RTxKLnRvb2x0aXBBeGlzR3JvdXBzLmxlbmd0aDtFKyspe0Y9M0RKLnRvb2x0 aXBBeGlzR3JvdXBzW0VdO2lmKE4pe3c9Cis9M0QiPGJyIC8+In1pZihKLnVzZUF4ZXNGb3JtYXR0 ZXJzKXtmb3IodmFyIEQ9M0QwO0Q8Ri5sZW5ndGg7RCsrKXtpZihEKXt3Kz0KPTNEIiwgIn12YXIg SD0zREMuYXhlc1tGW0RdXS5fdGlja3NbMF0uZm9ybWF0dGVyO3ZhciBCPTNEQy5heGVzW0ZbRF1d Ll90aWNrPQpzWzBdLmZvcm1hdFN0cmluZzt3Kz0zREgoQixyW0ZbRF1dKX19ZWxzZXt3Kz0zRGou anFwbG90LnNwcmludGYoSi50b29sdGlwRm89CnJtYXRTdHJpbmcscltGWzBdXSxyW0ZbMV1dKX1O PTNEdHJ1ZX19aWYoSi5zaG93VG9vbHRpcERhdGFQb3NpdGlvbil7dmFyIHU9Cj0zREMuc2VyaWVz O3ZhciBNPTNEZChDLEcueCxHLnkpO3ZhciBOPTNEZmFsc2U7Zm9yKHZhciBFPTNEMDtFPHUubGVu Z3RoO0UrKz0KKXtpZih1W0VdLnNob3cpe3ZhciB5PTNEdVtFXS5pbmRleDt2YXIgdD0zRHVbRV0u bGFiZWwudG9TdHJpbmcoKTt2YXIgST0zRGouPQppbkFycmF5KHksTS5pbmRpY2VzKTt2YXIgej0z RHVuZGVmaW5lZDt2YXIgeD0zRHVuZGVmaW5lZDtpZihJIT0zRC0xKXt2YXIgTD0KPTNETS5kYXRh W0ldLmRhdGE7aWYoSi51c2VBeGVzRm9ybWF0dGVycyl7dmFyIEE9M0R1W0VdLl94YXhpcy5fdGlj a3NbMF0uZm9yPQptYXR0ZXI7dmFyIHE9M0R1W0VdLl95YXhpcy5fdGlja3NbMF0uZm9ybWF0dGVy O3ZhciBLPTNEdVtFXS5feGF4aXMuX3RpY2tzWzA9Cl0uZm9ybWF0U3RyaW5nO3ZhciB2PTNEdVtF XS5feWF4aXMuX3RpY2tzWzBdLmZvcm1hdFN0cmluZzt6PTNEQShLLExbMF0pO3g9Cj0zRHEodixM WzFdKX1lbHNle3o9M0RMWzBdO3g9M0RMWzFdfWlmKE4pe3crPTNEIjxiciAvPiJ9dys9M0RqLmpx cGxvdC5zcHJpbj0KdGYoSi50b29sdGlwRm9ybWF0U3RyaW5nLHQseix4KTtOPTNEdHJ1ZX19fX1K Ll90b29sdGlwRWxlbS5odG1sKHcpfWZ1bmN0aW9uPQogZyhDLEEpe3ZhciBFPTNEQS5wbHVnaW5z LmN1cnNvcjt2YXIgej0zREUuY3Vyc29yQ2FudmFzLl9jdHg7ei5jbGVhclJlY3QoMCw9CjAsei5j YW52YXMud2lkdGgsei5jYW52YXMuaGVpZ2h0KTtpZihFLnNob3dWZXJ0aWNhbExpbmUpe0Uuc2hh cGVSZW5kZXJlci5kcj0KYXcoeixbW0MueCwwXSxbQy54LHouY2FudmFzLmhlaWdodF1dKX1pZihF LnNob3dIb3Jpem9udGFsTGluZSl7RS5zaGFwZVJlbmRlPQpyZXIuZHJhdyh6LFtbMCxDLnldLFt6 LmNhbnZhcy53aWR0aCxDLnldXSl9dmFyIEc9M0RkKEEsQy54LEMueSk7aWYoRS5zaG93Q3U9CnJz b3JMZWdlbmQpe3ZhciByPTNEaihBLnRhcmdldElkKyIgdGQuanFwbG90LWN1cnNvci1sZWdlbmQt bGFiZWwiKTtmb3IodmFyID0KQj0zRDA7QjxyLmxlbmd0aDtCKyspe3ZhciB2PTNEaihyW0JdKS5k YXRhKCJzZXJpZXNJbmRleCIpO3ZhciB0PTNEQS5zZXJpZXNbPQp2XTt2YXIgcz0zRHQubGFiZWwu dG9TdHJpbmcoKTt2YXIgRD0zRGouaW5BcnJheSh2LEcuaW5kaWNlcyk7dmFyIHg9M0R1bmRlZmk9 Cm5lZDt2YXIgdz0zRHVuZGVmaW5lZDtpZihEIT0zRC0xKXt2YXIgSD0zREcuZGF0YVtEXS5kYXRh O2lmKEUudXNlQXhlc0Zvcm1hdD0KdGVycyl7dmFyIHk9M0R0Ll94YXhpcy5fdGlja3NbMF0uZm9y bWF0dGVyO3ZhciBxPTNEdC5feWF4aXMuX3RpY2tzWzBdLmZvcm1hPQp0dGVyO3ZhciBGPTNEdC5f eGF4aXMuX3RpY2tzWzBdLmZvcm1hdFN0cmluZzt2YXIgdT0zRHQuX3lheGlzLl90aWNrc1swXS5m b3I9Cm1hdFN0cmluZzt4PTNEeShGLEhbMF0pO3c9M0RxKHUsSFsxXSl9ZWxzZXt4PTNESFswXTt3 PTNESFsxXX19aWYoQS5sZWdlbmQuZT0Kc2NhcGVIdG1sKXtqKHJbQl0pLnRleHQoai5qcXBsb3Qu c3ByaW50ZihFLmN1cnNvckxlZ2VuZEZvcm1hdFN0cmluZyxzLHgsdykpPQp9ZWxzZXtqKHJbQl0p Lmh0bWwoai5qcXBsb3Quc3ByaW50ZihFLmN1cnNvckxlZ2VuZEZvcm1hdFN0cmluZyxzLHgsdykp fX19ej0KPTNEbnVsbH1mdW5jdGlvbiBkKEEsRixFKXt2YXIgQj0zRHtpbmRpY2VzOltdLGRhdGE6 W119O3ZhciBHLHcsdSxDLHYscSx0O3ZhPQpyIHo7dmFyIEQ9M0RBLnBsdWdpbnMuY3Vyc29yO2Zv cih2YXIgdz0zRDA7dzxBLnNlcmllcy5sZW5ndGg7dysrKXtHPTNEQS5zZXI9Cmllc1t3XTtxPTNE Ry5yZW5kZXJlcjtpZihHLnNob3cpe3o9M0RELmludGVyc2VjdGlvblRocmVzaG9sZDtpZihHLnNo b3dNYXJrZT0Kcil7eis9M0RHLm1hcmtlclJlbmRlcmVyLnNpemUvMn1mb3IodmFyIHY9M0QwO3Y8 Ry5ncmlkRGF0YS5sZW5ndGg7disrKXt0PTNEPQpHLmdyaWREYXRhW3ZdO2lmKEQuc2hvd1ZlcnRp Y2FsTGluZSl7aWYoTWF0aC5hYnMoRi10WzBdKTw9M0R6KXtCLmluZGljZXMucHU9CnNoKHcpO0Iu ZGF0YS5wdXNoKHtzZXJpZXNJbmRleDp3LHBvaW50SW5kZXg6dixncmlkRGF0YTp0LGRhdGE6Ry5k YXRhW3ZdfSl9fT0KfX19cmV0dXJuIEJ9ZnVuY3Rpb24gbihyLHQpe3ZhciB2PTNEdC5wbHVnaW5z LmN1cnNvcjt2YXIgcz0zRHYuX3Rvb2x0aXBFbGVtPQo7c3dpdGNoKHYudG9vbHRpcExvY2F0aW9u KXtjYXNlIm53Ijp2YXIgcT0zRHIueCt0Ll9ncmlkUGFkZGluZy5sZWZ0LXMub3V0ZXI9CldpZHRo KHRydWUpLXYudG9vbHRpcE9mZnNldDt2YXIgdT0zRHIueSt0Ll9ncmlkUGFkZGluZy50b3Atdi50 b29sdGlwT2Zmc2V0LT0Kcy5vdXRlckhlaWdodCh0cnVlKTticmVhaztjYXNlIm4iOnZhciBxPTNE ci54K3QuX2dyaWRQYWRkaW5nLmxlZnQtcy5vdXRlcldpPQpkdGgodHJ1ZSkvMjt2YXIgdT0zRHIu eSt0Ll9ncmlkUGFkZGluZy50b3Atdi50b29sdGlwT2Zmc2V0LXMub3V0ZXJIZWlnaHQodHI9CnVl KTticmVhaztjYXNlIm5lIjp2YXIgcT0zRHIueCt0Ll9ncmlkUGFkZGluZy5sZWZ0K3YudG9vbHRp cE9mZnNldDt2YXIgdT0zRD0Kci55K3QuX2dyaWRQYWRkaW5nLnRvcC12LnRvb2x0aXBPZmZzZXQt cy5vdXRlckhlaWdodCh0cnVlKTticmVhaztjYXNlImUiOnZhPQpyIHE9M0RyLngrdC5fZ3JpZFBh ZGRpbmcubGVmdCt2LnRvb2x0aXBPZmZzZXQ7dmFyIHU9M0RyLnkrdC5fZ3JpZFBhZGRpbmcudG89 CnAtcy5vdXRlckhlaWdodCh0cnVlKS8yO2JyZWFrO2Nhc2Uic2UiOnZhciBxPTNEci54K3QuX2dy aWRQYWRkaW5nLmxlZnQrdi50bz0Kb2x0aXBPZmZzZXQ7dmFyIHU9M0RyLnkrdC5fZ3JpZFBhZGRp bmcudG9wK3YudG9vbHRpcE9mZnNldDticmVhaztjYXNlInMiOnZhPQpyIHE9M0RyLngrdC5fZ3Jp ZFBhZGRpbmcubGVmdC1zLm91dGVyV2lkdGgodHJ1ZSkvMjt2YXIgdT0zRHIueSt0Ll9ncmlkUGFk ZGk9Cm5nLnRvcCt2LnRvb2x0aXBPZmZzZXQ7YnJlYWs7Y2FzZSJzdyI6dmFyIHE9M0RyLngrdC5f Z3JpZFBhZGRpbmcubGVmdC1zLm91dD0KZXJXaWR0aCh0cnVlKS12LnRvb2x0aXBPZmZzZXQ7dmFy IHU9M0RyLnkrdC5fZ3JpZFBhZGRpbmcudG9wK3YudG9vbHRpcE9mZnNlPQp0O2JyZWFrO2Nhc2Ui dyI6dmFyIHE9M0RyLngrdC5fZ3JpZFBhZGRpbmcubGVmdC1zLm91dGVyV2lkdGgodHJ1ZSktdi50 b29sdGk9CnBPZmZzZXQ7dmFyIHU9M0RyLnkrdC5fZ3JpZFBhZGRpbmcudG9wLXMub3V0ZXJIZWln aHQodHJ1ZSkvMjticmVhaztkZWZhdWx0Oj0KdmFyIHE9M0RyLngrdC5fZ3JpZFBhZGRpbmcubGVm dCt2LnRvb2x0aXBPZmZzZXQ7dmFyIHU9M0RyLnkrdC5fZ3JpZFBhZGRpbmcuPQp0b3Ardi50b29s dGlwT2Zmc2V0O2JyZWFrfXMuY3NzKCJsZWZ0IixxKTtzLmNzcygidG9wIix1KTtzPTNEbnVsbH1m dW5jdGlvbiA9Cm0odSl7dmFyIHM9M0R1Ll9ncmlkUGFkZGluZzt2YXIgdj0zRHUucGx1Z2lucy5j dXJzb3I7dmFyIHQ9M0R2Ll90b29sdGlwRWxlbT0KO3N3aXRjaCh2LnRvb2x0aXBMb2NhdGlvbil7 Y2FzZSJudyI6dmFyIHI9M0RzLmxlZnQrdi50b29sdGlwT2Zmc2V0O3ZhciBxPTNEPQpzLnRvcCt2 LnRvb2x0aXBPZmZzZXQ7dC5jc3MoImxlZnQiLHIpO3QuY3NzKCJ0b3AiLHEpO2JyZWFrO2Nhc2Ui biI6dmFyIHI9M0Q9CihzLmxlZnQrKHUuX3Bsb3REaW1lbnNpb25zLndpZHRoLXMucmlnaHQpKS8y LXQub3V0ZXJXaWR0aCh0cnVlKS8yO3ZhciBxPTNEcz0KLnRvcCt2LnRvb2x0aXBPZmZzZXQ7dC5j c3MoImxlZnQiLHIpO3QuY3NzKCJ0b3AiLHEpO2JyZWFrO2Nhc2UibmUiOnZhciByPTNEPQpzLnJp Z2h0K3YudG9vbHRpcE9mZnNldDt2YXIgcT0zRHMudG9wK3YudG9vbHRpcE9mZnNldDt0LmNzcyh7 cmlnaHQ6cix0b3A6cX09Cik7YnJlYWs7Y2FzZSJlIjp2YXIgcj0zRHMucmlnaHQrdi50b29sdGlw T2Zmc2V0O3ZhciBxPTNEKHMudG9wKyh1Ll9wbG90RGltZT0KbnNpb25zLmhlaWdodC1zLmJvdHRv bSkpLzItdC5vdXRlckhlaWdodCh0cnVlKS8yO3QuY3NzKHtyaWdodDpyLHRvcDpxfSk7YnJlPQph aztjYXNlInNlIjp2YXIgcj0zRHMucmlnaHQrdi50b29sdGlwT2Zmc2V0O3ZhciBxPTNEcy5ib3R0 b20rdi50b29sdGlwT2Zmc2U9CnQ7dC5jc3Moe3JpZ2h0OnIsYm90dG9tOnF9KTticmVhaztjYXNl InMiOnZhciByPTNEKHMubGVmdCsodS5fcGxvdERpbWVuc2lvbj0Kcy53aWR0aC1zLnJpZ2h0KSkv Mi10Lm91dGVyV2lkdGgodHJ1ZSkvMjt2YXIgcT0zRHMuYm90dG9tK3YudG9vbHRpcE9mZnNldDt0 PQouY3NzKHtsZWZ0OnIsYm90dG9tOnF9KTticmVhaztjYXNlInN3Ijp2YXIgcj0zRHMubGVmdCt2 LnRvb2x0aXBPZmZzZXQ7dmFyIHE9Cj0zRHMuYm90dG9tK3YudG9vbHRpcE9mZnNldDt0LmNzcyh7 bGVmdDpyLGJvdHRvbTpxfSk7YnJlYWs7Y2FzZSJ3Ijp2YXIgcj0zRD0Kcy5sZWZ0K3YudG9vbHRp cE9mZnNldDt2YXIgcT0zRChzLnRvcCsodS5fcGxvdERpbWVuc2lvbnMuaGVpZ2h0LXMuYm90dG9t KSkvPQoyLXQub3V0ZXJIZWlnaHQodHJ1ZSkvMjt0LmNzcyh7bGVmdDpyLHRvcDpxfSk7YnJlYWs7 ZGVmYXVsdDp2YXIgcj0zRHMucmlnaHQ9Ci12LnRvb2x0aXBPZmZzZXQ7dmFyIHE9M0RzLmJvdHRv bSt2LnRvb2x0aXBPZmZzZXQ7dC5jc3Moe3JpZ2h0OnIsYm90dG9tOnF9KT0KO2JyZWFrfXQ9M0Ru dWxsfWZ1bmN0aW9uIGsocixxLHYsdSx0KXtyLnByZXZlbnREZWZhdWx0KCk7ci5zdG9wSW1tZWRp YXRlUHJvPQpwYWdhdGlvbigpO3ZhciB3PTNEdC5wbHVnaW5zLmN1cnNvcjtpZih3LmNsaWNrUmVz ZXQpe3cucmVzZXRab29tKHQsdyl9dmFyIHM9Cj0zRHdpbmRvdy5nZXRTZWxlY3Rpb247aWYoZG9j dW1lbnQuc2VsZWN0aW9uJiZkb2N1bWVudC5zZWxlY3Rpb24uZW1wdHkpe2RvYz0KdW1lbnQuc2Vs ZWN0aW9uLmVtcHR5KCl9ZWxzZXtpZihzJiYhcygpLmlzQ29sbGFwc2VkKXtzKCkuY29sbGFwc2Uo KX19cmV0dXJuPQogZmFsc2V9ZnVuY3Rpb24gYyhyLHEsdix1LHQpe3IucHJldmVudERlZmF1bHQo KTtyLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbig9Cik7dmFyIHc9M0R0LnBsdWdpbnMuY3Vyc29y O2lmKHcuZGJsQ2xpY2tSZXNldCl7dy5yZXNldFpvb20odCx3KX12YXIgcz0zRHdpbj0KZG93Lmdl dFNlbGVjdGlvbjtpZihkb2N1bWVudC5zZWxlY3Rpb24mJmRvY3VtZW50LnNlbGVjdGlvbi5lbXB0 eSl7ZG9jdW1lbnQuPQpzZWxlY3Rpb24uZW1wdHkoKX1lbHNle2lmKHMmJiFzKCkuaXNDb2xsYXBz ZWQpe3MoKS5jb2xsYXBzZSgpfX1yZXR1cm4gZmFsc2U9Cn1mdW5jdGlvbiBmKHcsdCxxLHosdSl7 dmFyIHY9M0R1LnBsdWdpbnMuY3Vyc29yO3Yub25HcmlkPTNEZmFsc2U7aWYodi5zaG93KT0Ke2oo dy50YXJnZXQpLmNzcygiY3Vyc29yIix2LnByZXZpb3VzQ3Vyc29yKTtpZih2LnNob3dUb29sdGlw JiYhKHYuX3pvb20uem9vPQptaW5nJiZ2LnNob3dUb29sdGlwT3V0c2lkZVpvb20mJiF2LmNvbnN0 cmFpbk91dHNpZGVab29tKSl7di5fdG9vbHRpcEVsZW0uZW09CnB0eSgpO3YuX3Rvb2x0aXBFbGVt LmhpZGUoKX1pZih2Lnpvb20pe3YuX3pvb20uZ3JpZHBvcz0zRHQ7di5fem9vbS5kYXRhcG9zPQo9 M0RxfWlmKHYuc2hvd1ZlcnRpY2FsTGluZXx8di5zaG93SG9yaXpvbnRhbExpbmUpe3ZhciBCPTNE di5jdXJzb3JDYW52YXMuX2M9CnR4O0IuY2xlYXJSZWN0KDAsMCxCLmNhbnZhcy53aWR0aCxCLmNh bnZhcy5oZWlnaHQpO0I9M0RudWxsfWlmKHYuc2hvd0N1cnNvcj0KTGVnZW5kKXt2YXIgQT0zRGoo dS50YXJnZXRJZCsiIHRkLmpxcGxvdC1jdXJzb3ItbGVnZW5kLWxhYmVsIik7Zm9yKHZhciBzPTNE PQowO3M8QS5sZW5ndGg7cysrKXt2YXIgeT0zRGooQVtzXSkuZGF0YSgic2VyaWVzSW5kZXgiKTt2 YXIgcj0zRHUuc2VyaWVzW3ldO3Y9CmFyIHg9M0RyLmxhYmVsLnRvU3RyaW5nKCk7aWYodS5sZWdl bmQuZXNjYXBlSHRtbCl7aihBW3NdKS50ZXh0KGouanFwbG90LnNwcj0KaW50Zih2LmN1cnNvckxl Z2VuZEZvcm1hdFN0cmluZyx4LHVuZGVmaW5lZCx1bmRlZmluZWQpKX1lbHNle2ooQVtzXSkuaHRt bChqPQouanFwbG90LnNwcmludGYodi5jdXJzb3JMZWdlbmRGb3JtYXRTdHJpbmcseCx1bmRlZmlu ZWQsdW5kZWZpbmVkKSl9fX19fWZ1bmM9CnRpb24gYihyLHEsdSx0LHMpe3ZhciB2PTNEcy5wbHVn aW5zLmN1cnNvcjt2Lm9uR3JpZD0zRHRydWU7aWYodi5zaG93KXt2LnByZT0KdmlvdXNDdXJzb3I9 M0RyLnRhcmdldC5zdHlsZS5jdXJzb3I7ci50YXJnZXQuc3R5bGUuY3Vyc29yPTNEdi5zdHlsZTtp Zih2LnNoPQpvd1Rvb2x0aXApe2UocSx1LHMpO2lmKHYuZm9sbG93TW91c2Upe24ocSxzKX1lbHNl e20ocyl9di5fdG9vbHRpcEVsZW0uc2hvdyg9Cil9aWYodi5zaG93VmVydGljYWxMaW5lfHx2LnNo b3dIb3Jpem9udGFsTGluZSl7ZyhxLHMpfX19ZnVuY3Rpb24gaShyLHEsdSx0LD0Kcyl7dmFyIHY9 M0RzLnBsdWdpbnMuY3Vyc29yO2lmKHYuc2hvdyl7aWYodi5zaG93VG9vbHRpcCl7ZShxLHUscyk7 aWYodi5mb2xsPQpvd01vdXNlKXtuKHEscyl9fWlmKHYuc2hvd1ZlcnRpY2FsTGluZXx8di5zaG93 SG9yaXpvbnRhbExpbmUpe2cocSxzKX19fWZ1bmM9CnRpb24gbyh5KXt2YXIgeD0zRHkuZGF0YS5w bG90O3ZhciB0PTNEeC5ldmVudENhbnZhcy5fZWxlbS5vZmZzZXQoKTt2YXIgdz0zRD0Ke3g6eS5w YWdlWC10LmxlZnQseTp5LnBhZ2VZLXQudG9wfTt2YXIgdT0zRHt4YXhpczpudWxsLHlheGlzOm51 bGwseDJheGlzOm51PQpsbCx5MmF4aXM6bnVsbCx5M2F4aXM6bnVsbCx5NGF4aXM6bnVsbCx5NWF4 aXM6bnVsbCx5NmF4aXM6bnVsbCx5N2F4aXM6bnVsbCw9Cnk4YXhpczpudWxsLHk5YXhpczpudWxs LHlNaWRBeGlzOm51bGx9O3ZhciB2PTNEWyJ4YXhpcyIsInlheGlzIiwieDJheGlzIiwieT0KMmF4 aXMiLCJ5M2F4aXMiLCJ5NGF4aXMiLCJ5NWF4aXMiLCJ5NmF4aXMiLCJ5N2F4aXMiLCJ5OGF4aXMi LCJ5OWF4aXMiLCJ5TWlkPQpBeGlzIl07dmFyIHE9M0R4LmF4ZXM7dmFyIHIscztmb3Iocj0zRDEx O3I+MDtyLS0pe3M9M0R2W3ItMV07aWYocVtzXS5zaG93KXs9CnVbc109M0RxW3NdLnNlcmllc19w MnUod1tzLmNoYXJBdCgwKV0pfX1yZXR1cm57b2Zmc2V0czp0LGdyaWRQb3M6dyxkYXRhUG9zOj0K dX19ZnVuY3Rpb24gaCh6KXt2YXIgeD0zRHouZGF0YS5wbG90O3ZhciB5PTNEeC5wbHVnaW5zLmN1 cnNvcjtpZih5LnNob3cmJnkuPQp6b29tJiZ5Ll96b29tLnN0YXJ0ZWQmJiF5Lnpvb21UYXJnZXQp e3oucHJldmVudERlZmF1bHQoKTt2YXIgQj0zRHkuem9vbUNhbnY9CmFzLl9jdHg7dmFyIHY9M0Rv KHopO3ZhciB3PTNEdi5ncmlkUG9zO3ZhciB0PTNEdi5kYXRhUG9zO3kuX3pvb20uZ3JpZHBvcz0z RD0Kdzt5Ll96b29tLmRhdGFwb3M9M0R0O3kuX3pvb20uem9vbWluZz0zRHRydWU7dmFyIHU9M0R3 Lng7dmFyIHM9M0R3Lnk7dmFyIEE9Cj0zREIuY2FudmFzLmhlaWdodDt2YXIgcT0zREIuY2FudmFz LndpZHRoO2lmKHkuc2hvd1Rvb2x0aXAmJiF5Lm9uR3JpZCYmeS5zaD0Kb3dUb29sdGlwT3V0c2lk ZVpvb20pe2Uodyx0LHgpO2lmKHkuZm9sbG93TW91c2Upe24odyx4KX19aWYoeS5jb25zdHJhaW5a b29tPQpUbz0zRD0zRCJ4Iil7eS5fem9vbS5lbmQ9M0RbdSxBXX1lbHNle2lmKHkuY29uc3RyYWlu Wm9vbVRvPTNEPTNEInkiKXt5Ll96b289Cm0uZW5kPTNEW3Esc119ZWxzZXt5Ll96b29tLmVuZD0z RFt1LHNdfX12YXIgcj0zRHdpbmRvdy5nZXRTZWxlY3Rpb247aWYoZG9jdT0KbWVudC5zZWxlY3Rp b24mJmRvY3VtZW50LnNlbGVjdGlvbi5lbXB0eSl7ZG9jdW1lbnQuc2VsZWN0aW9uLmVtcHR5KCl9 ZWxzZXtpPQpmKHImJiFyKCkuaXNDb2xsYXBzZWQpe3IoKS5jb2xsYXBzZSgpfX1sLmNhbGwoeSk7 Qj0zRG51bGx9fWZ1bmN0aW9uIGEodyxzLHI9Cix4LHQpe3ZhciB2PTNEdC5wbHVnaW5zLmN1cnNv cjtpZih0LnBsdWdpbnMubW9iaWxlKXtqKGRvY3VtZW50KS5vbmUoInZtb3VzZT0KdXAuanFwbG90 X2N1cnNvciIse3Bsb3Q6dH0scCl9ZWxzZXtqKGRvY3VtZW50KS5vbmUoIm1vdXNldXAuanFwbG90 X2N1cnNvciIsPQp7cGxvdDp0fSxwKX12YXIgdT0zRHQuYXhlcztpZihkb2N1bWVudC5vbnNlbGVj dHN0YXJ0IT0zRHVuZGVmaW5lZCl7di5fb2xkSGE9Cm5kbGVycy5vbnNlbGVjdHN0YXJ0PTNEZG9j dW1lbnQub25zZWxlY3RzdGFydDtkb2N1bWVudC5vbnNlbGVjdHN0YXJ0PTNEZnVuYz0KdGlvbigp e3JldHVybiBmYWxzZX19aWYoZG9jdW1lbnQub25kcmFnIT0zRHVuZGVmaW5lZCl7di5fb2xkSGFu ZGxlcnMub25kcmFnPQo9M0Rkb2N1bWVudC5vbmRyYWc7ZG9jdW1lbnQub25kcmFnPTNEZnVuY3Rp b24oKXtyZXR1cm4gZmFsc2V9fWlmKGRvY3VtZW50Lm89Cm5tb3VzZWRvd24hPTNEdW5kZWZpbmVk KXt2Ll9vbGRIYW5kbGVycy5vbm1vdXNlZG93bj0zRGRvY3VtZW50Lm9ubW91c2Vkb3duOz0KZG9j dW1lbnQub25tb3VzZWRvd249M0RmdW5jdGlvbigpe3JldHVybiBmYWxzZX19aWYodi56b29tKXtp Zighdi56b29tUHJveHkpPQp7dmFyIHk9M0R2Lnpvb21DYW52YXMuX2N0eDt5LmNsZWFyUmVjdCgw LDAseS5jYW52YXMud2lkdGgseS5jYW52YXMuaGVpZ2h0KTs9Cnk9M0RudWxsfWlmKHYuY29uc3Ry YWluWm9vbVRvPTNEPTNEIngiKXt2Ll96b29tLnN0YXJ0PTNEW3MueCwwXX1lbHNle2lmKHYuYz0K b25zdHJhaW5ab29tVG89M0Q9M0QieSIpe3YuX3pvb20uc3RhcnQ9M0RbMCxzLnldfWVsc2V7di5f em9vbS5zdGFydD0zRFtzLngsPQpzLnldfX12Ll96b29tLnN0YXJ0ZWQ9M0R0cnVlO2Zvcih2YXIg cSBpbiByKXt2Ll96b29tLmF4ZXMuc3RhcnRbcV09M0RyW3FdfWk9CmYodC5wbHVnaW5zLm1vYmls ZSl7aihkb2N1bWVudCkuYmluZCgidm1vdXNlbW92ZS5qcXBsb3RDdXJzb3IiLHtwbG90OnR9LGgp fT0KZWxzZXtqKGRvY3VtZW50KS5iaW5kKCJtb3VzZW1vdmUuanFwbG90Q3Vyc29yIix7cGxvdDp0 fSxoKX19fWZ1bmN0aW9uIHAoeSl7PQp2YXIgdj0zRHkuZGF0YS5wbG90O3ZhciB4PTNEdi5wbHVn aW5zLmN1cnNvcjtpZih4Lnpvb20mJnguX3pvb20uem9vbWluZyYmIXg9Ci56b29tVGFyZ2V0KXt2 YXIgdT0zRHguX3pvb20uZ3JpZHBvcy54O3ZhciByPTNEeC5fem9vbS5ncmlkcG9zLnk7dmFyIHQ9 M0R4Lj0KX3pvb20uZGF0YXBvczt2YXIgej0zRHguem9vbUNhbnZhcy5fY3R4LmNhbnZhcy5oZWln aHQ7dmFyIHE9M0R4Lnpvb21DYW52YXMuPQpfY3R4LmNhbnZhcy53aWR0aDt2YXIgdz0zRHYuYXhl cztpZih4LmNvbnN0cmFpbk91dHNpZGVab29tJiYheC5vbkdyaWQpe2lmKHU9CjwwKXt1PTNEMH1l bHNle2lmKHU+cSl7dT0zRHF9fWlmKHI8MCl7cj0zRDB9ZWxzZXtpZihyPnope3I9M0R6fX1mb3Io dmFyIHMgaT0KbiB0KXtpZih0W3NdKXtpZihzLmNoYXJBdCgwKT0zRD0zRCJ4Iil7dFtzXT0zRHdb c10uc2VyaWVzX3AydSh1KX1lbHNle3Rbc109Cj0zRHdbc10uc2VyaWVzX3AydShyKX19fX1pZih4 LmNvbnN0cmFpblpvb21Ubz0zRD0zRCJ4Iil7cj0zRHp9ZWxzZXtpZih4LmNvbj0Kc3RyYWluWm9v bVRvPTNEPTNEInkiKXt1PTNEcX19eC5fem9vbS5lbmQ9M0RbdSxyXTt4Ll96b29tLmdyaWRwb3M9 M0R7eDp1LHk6PQpyfTt4LmRvWm9vbSh4Ll96b29tLmdyaWRwb3MsdCx2LHgpfXguX3pvb20uc3Rh cnRlZD0zRGZhbHNlO3guX3pvb20uem9vbWluZz0KPTNEZmFsc2U7aihkb2N1bWVudCkudW5iaW5k KCJtb3VzZW1vdmUuanFwbG90Q3Vyc29yIixoKTtpZihkb2N1bWVudC5vbnNlbGVjPQp0c3RhcnQh PTNEdW5kZWZpbmVkJiZ4Ll9vbGRIYW5kbGVycy5vbnNlbGVjdHN0YXJ0IT0zRG51bGwpe2RvY3Vt ZW50Lm9uc2VsZWM9CnRzdGFydD0zRHguX29sZEhhbmRsZXJzLm9uc2VsZWN0c3RhcnQ7eC5fb2xk SGFuZGxlcnMub25zZWxlY3RzdGFydD0zRG51bGx9aT0KZihkb2N1bWVudC5vbmRyYWchPTNEdW5k ZWZpbmVkJiZ4Ll9vbGRIYW5kbGVycy5vbmRyYWchPTNEbnVsbCl7ZG9jdW1lbnQub25kPQpyYWc9 M0R4Ll9vbGRIYW5kbGVycy5vbmRyYWc7eC5fb2xkSGFuZGxlcnMub25kcmFnPTNEbnVsbH1pZihk b2N1bWVudC5vbm1vdXM9CmVkb3duIT0zRHVuZGVmaW5lZCYmeC5fb2xkSGFuZGxlcnMub25tb3Vz ZWRvd24hPTNEbnVsbCl7ZG9jdW1lbnQub25tb3VzZWRvdz0Kbj0zRHguX29sZEhhbmRsZXJzLm9u bW91c2Vkb3duO3guX29sZEhhbmRsZXJzLm9ubW91c2Vkb3duPTNEbnVsbH19ZnVuY3Rpb24gPQps KCl7dmFyIHk9M0R0aGlzLl96b29tLnN0YXJ0O3ZhciB1PTNEdGhpcy5fem9vbS5lbmQ7dmFyIHM9 M0R0aGlzLnpvb21DYW52YXM9Ci5fY3R4O3ZhciByLHYseCxxO2lmKHVbMF0+eVswXSl7cj0zRHlb MF07cT0zRHVbMF0teVswXX1lbHNle3I9M0R1WzBdO3E9M0R5Wz0KMF0tdVswXX1pZih1WzFdPnlb MV0pe3Y9M0R5WzFdO3g9M0R1WzFdLXlbMV19ZWxzZXt2PTNEdVsxXTt4PTNEeVsxXS11WzFdfXMu PQpmaWxsU3R5bGU9M0QicmdiYSgwLDAsMCwwLjIpIjtzLnN0cm9rZVN0eWxlPTNEIiM5OTk5OTki O3MubGluZVdpZHRoPTNEMTtzLmM9CmxlYXJSZWN0KDAsMCxzLmNhbnZhcy53aWR0aCxzLmNhbnZh cy5oZWlnaHQpO3MuZmlsbFJlY3QoMCwwLHMuY2FudmFzLndpZHRoLD0Kcy5jYW52YXMuaGVpZ2h0 KTtzLmNsZWFyUmVjdChyLHYscSx4KTtzLnN0cm9rZVJlY3Qocix2LHEseCk7cz0zRG51bGx9ai5q cXBsPQpvdC5DdXJzb3JMZWdlbmRSZW5kZXJlcj0zRGZ1bmN0aW9uKHEpe2ouanFwbG90LlRhYmxl TGVnZW5kUmVuZGVyZXIuY2FsbCh0aGk9CnMscSk7dGhpcy5mb3JtYXRTdHJpbmc9M0QiJXMifTtq LmpxcGxvdC5DdXJzb3JMZWdlbmRSZW5kZXJlci5wcm90b3R5cGU9M0RuZT0KdyBqLmpxcGxvdC5U YWJsZUxlZ2VuZFJlbmRlcmVyKCk7ai5qcXBsb3QuQ3Vyc29yTGVnZW5kUmVuZGVyZXIucHJvdG90 eXBlLmNvPQpuc3RydWN0b3I9M0RqLmpxcGxvdC5DdXJzb3JMZWdlbmRSZW5kZXJlcjtqLmpxcGxv dC5DdXJzb3JMZWdlbmRSZW5kZXJlci5wcm89CnRvdHlwZS5kcmF3PTNEZnVuY3Rpb24oKXtpZih0 aGlzLl9lbGVtKXt0aGlzLl9lbGVtLmVtcHR5Rm9yY2UoKTt0aGlzLl9lbGVtPQo9M0RudWxsfWlm KHRoaXMuc2hvdyl7dmFyIHc9M0R0aGlzLl9zZXJpZXMsQTt2YXIgcj0zRGRvY3VtZW50LmNyZWF0 ZUVsZW1lbnQ9CigidGFibGUiKTt0aGlzLl9lbGVtPTNEaihyKTtyPTNEbnVsbDt0aGlzLl9lbGVt LmFkZENsYXNzKCJqcXBsb3QtbGVnZW5kIGpxcD0KbG90LWN1cnNvci1sZWdlbmQiKTt0aGlzLl9l bGVtLmNzcygicG9zaXRpb24iLCJhYnNvbHV0ZSIpO3ZhciBxPTNEZmFsc2U7Zm9yPQoodmFyIHg9 M0QwO3g8dy5sZW5ndGg7eCsrKXtBPTNEd1t4XTtpZihBLnNob3cmJkEuc2hvd0xhYmVsKXt2YXIg dj0zRGouanFwbG89CnQuc3ByaW50Zih0aGlzLmZvcm1hdFN0cmluZyxBLmxhYmVsLnRvU3RyaW5n KCkpO2lmKHYpe3ZhciB0PTNEQS5jb2xvcjtpZihBLj0KX3N0YWNrJiYhQS5maWxsKXt0PTNEIiJ9 ei5jYWxsKHRoaXMsdix0LHEseCk7cT0zRHRydWV9Zm9yKHZhciB1PTNEMDt1PGouanFwPQpsb3Qu YWRkTGVnZW5kUm93SG9va3MubGVuZ3RoO3UrKyl7dmFyIHk9M0RqLmpxcGxvdC5hZGRMZWdlbmRS b3dIb29rc1t1XS5jYWw9CmwodGhpcyxBKTtpZih5KXt6LmNhbGwodGhpcyx5LmxhYmVsLHkuY29s b3IscSk7cT0zRHRydWV9fX19dz0zREE9M0RudWxsO2RlbD0KZXRlIHc7ZGVsZXRlIEF9ZnVuY3Rp b24geihELEMsRixzKXt2YXIgQj0zRChGKT90aGlzLnJvd1NwYWNpbmc6IjAiO3ZhciBFPTNEPQpq KCc8dHIgY2xhc3M9M0QianFwbG90LWxlZ2VuZCBqcXBsb3QtY3Vyc29yLWxlZ2VuZCI+PC90cj4n KS5hcHBlbmRUbyh0aGlzLl89CmVsZW0pO0UuZGF0YSgic2VyaWVzSW5kZXgiLHMpO2ooJzx0ZCBj bGFzcz0zRCJqcXBsb3QtbGVnZW5kIGpxcGxvdC1jdXJzb3ItbD0KZWdlbmQtc3dhdGNoIiBzdHls ZT0zRCJwYWRkaW5nLXRvcDonK0IrJzsiPjxkaXYgc3R5bGU9M0QiYm9yZGVyOjFweCBzb2xpZCAj PQpjY2NjY2M7cGFkZGluZzowLjJlbTsiPjxkaXYgY2xhc3M9M0QianFwbG90LWN1cnNvci1sZWdl bmQtc3dhdGNoIiBzdHlsZT0zRCI9CmJhY2tncm91bmQtY29sb3I6JytDKyc7Ij48L2Rpdj48L2Rp dj48L3RkPicpLmFwcGVuZFRvKEUpO3ZhciBHPTNEaignPHRkIGNsYT0Kc3M9M0QianFwbG90LWxl Z2VuZCBqcXBsb3QtY3Vyc29yLWxlZ2VuZC1sYWJlbCIgc3R5bGU9M0QidmVydGljYWwtYWxpZ246 bWlkPQpkbGU7cGFkZGluZy10b3A6JytCKyc7Ij48L3RkPicpO0cuYXBwZW5kVG8oRSk7Ry5kYXRh KCJzZXJpZXNJbmRleCIscyk7aWYodGg9CmlzLmVzY2FwZUh0bWwpe0cudGV4dChEKX1lbHNle0cu aHRtbChEKX1FPTNEbnVsbDtHPTNEbnVsbH1yZXR1cm4gdGhpcy5fZWxlbT0KfX0pKGpRdWVyeSk7 LyoganFQbG90IDEuMC44cjEyNTAgfCAoYykgMjAwOS0yMDEzIENocmlzIExlb25lbGxvIHwganBs b3QuY29tCisgICBqc0RhdGUgfCAoYykgMjAxMC0yMDEzIENocmlzIExlb25lbGxvCisgKi8oZnVu Y3Rpb24oZCl7ZC5qcXBsb3QuZXZlbnRMaXN0ZW5lckhvb2tzLnB1c2goWyJqcXBsb3RNb3VzZU1v dmUiLGZdKTtkLj0KanFwbG90LkhpZ2hsaWdodGVyPTNEZnVuY3Rpb24oaCl7dGhpcy5zaG93PTNE ZC5qcXBsb3QuY29uZmlnLmVuYWJsZVBsdWdpbnM7PQp0aGlzLm1hcmtlclJlbmRlcmVyPTNEbmV3 IGQuanFwbG90Lk1hcmtlclJlbmRlcmVyKHtzaGFkb3c6ZmFsc2V9KTt0aGlzLnNob3c9Ck1hcmtl cj0zRHRydWU7dGhpcy5saW5lV2lkdGhBZGp1c3Q9M0QyLjU7dGhpcy5zaXplQWRqdXN0PTNENTt0 aGlzLnNob3dUb29sdD0KaXA9M0R0cnVlO3RoaXMudG9vbHRpcExvY2F0aW9uPTNEIm53Ijt0aGlz LmZhZGVUb29sdGlwPTNEdHJ1ZTt0aGlzLnRvb2x0aXBGPQphZGVTcGVlZD0zRCJmYXN0Ijt0aGlz LnRvb2x0aXBPZmZzZXQ9M0QyO3RoaXMudG9vbHRpcEF4ZXM9M0QiYm90aCI7dGhpcy50b289Cmx0 aXBTZXBhcmF0b3I9M0QiLCAiO3RoaXMudG9vbHRpcENvbnRlbnRFZGl0b3I9M0RudWxsO3RoaXMu dXNlQXhlc0Zvcm1hdHRlcj0Kcz0zRHRydWU7dGhpcy50b29sdGlwRm9ybWF0U3RyaW5nPTNEIiUu NVAiO3RoaXMuZm9ybWF0U3RyaW5nPTNEbnVsbDt0aGlzLnl2PQphbHVlcz0zRDE7dGhpcy5icmlu Z1Nlcmllc1RvRnJvbnQ9M0RmYWxzZTt0aGlzLl90b29sdGlwRWxlbTt0aGlzLmlzSGlnaGxpZ2g9 CnRpbmc9M0RmYWxzZTt0aGlzLmN1cnJlbnROZWlnaGJvcj0zRG51bGw7ZC5leHRlbmQodHJ1ZSx0 aGlzLGgpfTt2YXIgYj0zRFsibj0KdyIsIm4iLCJuZSIsImUiLCJzZSIsInMiLCJzdyIsInciXTt2 YXIgZT0zRHtudzowLG46MSxuZToyLGU6MyxzZTo0LHM6NSxzdzo2PQosdzo3fTt2YXIgYz0zRFsi c2UiLCJzIiwic3ciLCJ3IiwibnciLCJuIiwibmUiLCJlIl07ZC5qcXBsb3QuSGlnaGxpZ2h0ZXIu aW49Cml0PTNEZnVuY3Rpb24oayxqLGkpe3ZhciBoPTNEaXx8e307dGhpcy5wbHVnaW5zLmhpZ2hs aWdodGVyPTNEbmV3IGQuanFwbG90Lj0KSGlnaGxpZ2h0ZXIoaC5oaWdobGlnaHRlcil9O2QuanFw bG90LkhpZ2hsaWdodGVyLnBhcnNlT3B0aW9ucz0zRGZ1bmN0aW9uKGksPQpoKXt0aGlzLnNob3dI aWdobGlnaHQ9M0R0cnVlfTtkLmpxcGxvdC5IaWdobGlnaHRlci5wb3N0UGxvdERyYXc9M0RmdW5j dGlvbig9Cil7aWYodGhpcy5wbHVnaW5zLmhpZ2hsaWdodGVyJiZ0aGlzLnBsdWdpbnMuaGlnaGxp Z2h0ZXIuaGlnaGxpZ2h0Q2FudmFzKXt0aD0KaXMucGx1Z2lucy5oaWdobGlnaHRlci5oaWdobGln aHRDYW52YXMucmVzZXRDYW52YXMoKTt0aGlzLnBsdWdpbnMuaGlnaGxpZ2h0PQplci5oaWdobGln aHRDYW52YXM9M0RudWxsfWlmKHRoaXMucGx1Z2lucy5oaWdobGlnaHRlciYmdGhpcy5wbHVnaW5z LmhpZ2hsaWc9Cmh0ZXIuX3Rvb2x0aXBFbGVtKXt0aGlzLnBsdWdpbnMuaGlnaGxpZ2h0ZXIuX3Rv b2x0aXBFbGVtLmVtcHR5Rm9yY2UoKTt0aGlzLj0KcGx1Z2lucy5oaWdobGlnaHRlci5fdG9vbHRp cEVsZW09M0RudWxsfXRoaXMucGx1Z2lucy5oaWdobGlnaHRlci5oaWdobGlnaHRDPQphbnZhcz0z RG5ldyBkLmpxcGxvdC5HZW5lcmljQ2FudmFzKCk7dGhpcy5ldmVudENhbnZhcy5fZWxlbS5iZWZv cmUodGhpcy5wbHU9CmdpbnMuaGlnaGxpZ2h0ZXIuaGlnaGxpZ2h0Q2FudmFzLmNyZWF0ZUVsZW1l bnQodGhpcy5fZ3JpZFBhZGRpbmcsImpxcGxvdC1oaT0KZ2hsaWdodC1jYW52YXMiLHRoaXMuX3Bs b3REaW1lbnNpb25zLHRoaXMpKTt0aGlzLnBsdWdpbnMuaGlnaGxpZ2h0ZXIuaGlnaGxpPQpnaHRD YW52YXMuc2V0Q29udGV4dCgpO3ZhciBoPTNEZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7 dGhpcy5wbHVnaW5zLmg9CmlnaGxpZ2h0ZXIuX3Rvb2x0aXBFbGVtPTNEZChoKTtoPTNEbnVsbDt0 aGlzLnBsdWdpbnMuaGlnaGxpZ2h0ZXIuX3Rvb2x0aXBFbD0KZW0uYWRkQ2xhc3MoImpxcGxvdC1o aWdobGlnaHRlci10b29sdGlwIik7dGhpcy5wbHVnaW5zLmhpZ2hsaWdodGVyLl90b29sdGlwPQpF bGVtLmNzcyh7cG9zaXRpb246ImFic29sdXRlIixkaXNwbGF5OiJub25lIn0pO3RoaXMuZXZlbnRD YW52YXMuX2VsZW0uYmVmb3I9CmUodGhpcy5wbHVnaW5zLmhpZ2hsaWdodGVyLl90b29sdGlwRWxl bSl9O2QuanFwbG90LnByZUluaXRIb29rcy5wdXNoKGQuanFwbD0Kb3QuSGlnaGxpZ2h0ZXIuaW5p dCk7ZC5qcXBsb3QucHJlUGFyc2VTZXJpZXNPcHRpb25zSG9va3MucHVzaChkLmpxcGxvdC5IaWdo PQpsaWdodGVyLnBhcnNlT3B0aW9ucyk7ZC5qcXBsb3QucG9zdERyYXdIb29rcy5wdXNoKGQuanFw bG90LkhpZ2hsaWdodGVyLnBvc3Q9ClBsb3REcmF3KTtmdW5jdGlvbiBhKG0sbyl7dmFyIGo9M0Rt LnBsdWdpbnMuaGlnaGxpZ2h0ZXI7dmFyIHA9M0RtLnNlcmllc1tvLj0Kc2VyaWVzSW5kZXhdO3Zh ciBoPTNEcC5tYXJrZXJSZW5kZXJlcjt2YXIgaT0zRGoubWFya2VyUmVuZGVyZXI7aS5zdHlsZT0z RGguPQpzdHlsZTtpLmxpbmVXaWR0aD0zRGgubGluZVdpZHRoK2oubGluZVdpZHRoQWRqdXN0O2ku c2l6ZT0zRGguc2l6ZStqLnNpemVBZGo9CnVzdDt2YXIgbD0zRGQuanFwbG90LmdldENvbG9yQ29t cG9uZW50cyhoLmNvbG9yKTt2YXIgbj0zRFtsWzBdLGxbMV0sbFsyXV07dj0KYXIgaz0zRChsWzNd Pj0zRDAuNik/bFszXSowLjY6bFszXSooMi1sWzNdKTtpLmNvbG9yPTNEInJnYmEoIituWzBdKyIs IituWzFdPQorIiwiK25bMl0rIiwiK2srIikiO2kuaW5pdCgpO2kuZHJhdyhwLmdyaWREYXRhW28u cG9pbnRJbmRleF1bMF0scC5ncmlkRGF0YVs9Cm8ucG9pbnRJbmRleF1bMV0sai5oaWdobGlnaHRD YW52YXMuX2N0eCl9ZnVuY3Rpb24gZyhBLHEsbSl7dmFyIGs9M0RBLnBsdWdpbj0Kcy5oaWdobGln aHRlcjt2YXIgRD0zRGsuX3Rvb2x0aXBFbGVtO3ZhciByPTNEcS5oaWdobGlnaHRlcnx8e307dmFy IHQ9M0RkLmV4PQp0ZW5kKHRydWUse30sayxyKTtpZih0LnVzZUF4ZXNGb3JtYXR0ZXJzKXt2YXIg dz0zRHEuX3hheGlzLl90aWNrc1swXS5mb3JtYXQ9CnRlcjt2YXIgaD0zRHEuX3lheGlzLl90aWNr c1swXS5mb3JtYXR0ZXI7dmFyIEU9M0RxLl94YXhpcy5fdGlja3NbMF0uZm9ybWF0Uz0KdHJpbmc7 dmFyIHM9M0RxLl95YXhpcy5fdGlja3NbMF0uZm9ybWF0U3RyaW5nO3ZhciB6O3ZhciB1PTNEdyhF LG0uZGF0YVswXSk7PQp2YXIgbD0zRFtdO2Zvcih2YXIgQj0zRDE7Qjx0Lnl2YWx1ZXMrMTtCKysp e2wucHVzaChoKHMsbS5kYXRhW0JdKSl9aWYodHlwZW89CmYgdC5mb3JtYXRTdHJpbmc9M0Q9M0Q9 M0Qic3RyaW5nIil7c3dpdGNoKHQudG9vbHRpcEF4ZXMpe2Nhc2UiYm90aCI6Y2FzZSJ4eT0KIjps LnVuc2hpZnQodSk7bC51bnNoaWZ0KHQuZm9ybWF0U3RyaW5nKTt6PTNEZC5qcXBsb3Quc3ByaW50 Zi5hcHBseShkLmpxcGxvPQp0LnNwcmludGYsbCk7YnJlYWs7Y2FzZSJ5eCI6bC5wdXNoKHUpO2wu dW5zaGlmdCh0LmZvcm1hdFN0cmluZyk7ej0zRGQuanFwbG89CnQuc3ByaW50Zi5hcHBseShkLmpx cGxvdC5zcHJpbnRmLGwpO2JyZWFrO2Nhc2UieCI6ej0zRGQuanFwbG90LnNwcmludGYuYXBwbD0K eShkLmpxcGxvdC5zcHJpbnRmLFt0LmZvcm1hdFN0cmluZyx1XSk7YnJlYWs7Y2FzZSJ5IjpsLnVu c2hpZnQodC5mb3JtYXRTdHJpPQpuZyk7ej0zRGQuanFwbG90LnNwcmludGYuYXBwbHkoZC5qcXBs b3Quc3ByaW50ZixsKTticmVhaztkZWZhdWx0OmwudW5zaGlmdCg9CnUpO2wudW5zaGlmdCh0LmZv cm1hdFN0cmluZyk7ej0zRGQuanFwbG90LnNwcmludGYuYXBwbHkoZC5qcXBsb3Quc3ByaW50Zixs KT0KO2JyZWFrfX1lbHNle3N3aXRjaCh0LnRvb2x0aXBBeGVzKXtjYXNlImJvdGgiOmNhc2UieHki Ono9M0R1O2Zvcih2YXIgQj0zRDA7PQpCPGwubGVuZ3RoO0IrKyl7eis9M0R0LnRvb2x0aXBTZXBh cmF0b3IrbFtCXX1icmVhaztjYXNlInl4Ijp6PTNEIiI7Zm9yKHZhciA9CkI9M0QwO0I8bC5sZW5n dGg7QisrKXt6Kz0zRGxbQl0rdC50b29sdGlwU2VwYXJhdG9yfXorPTNEdTticmVhaztjYXNlIngi Ono9Cj0zRHU7YnJlYWs7Y2FzZSJ5Ijp6PTNEbC5qb2luKHQudG9vbHRpcFNlcGFyYXRvcik7YnJl YWs7ZGVmYXVsdDp6PTNEdTtmb3Iodj0KYXIgQj0zRDA7QjxsLmxlbmd0aDtCKyspe3orPTNEdC50 b29sdGlwU2VwYXJhdG9yK2xbQl19YnJlYWt9fX1lbHNle3ZhciB6O2lmPQoodHlwZW9mIHQuZm9y bWF0U3RyaW5nPTNEPTNEPTNEInN0cmluZyIpe3o9M0RkLmpxcGxvdC5zcHJpbnRmLmFwcGx5KGQu anFwbG89CnQuc3ByaW50ZixbdC5mb3JtYXRTdHJpbmddLmNvbmNhdChtLmRhdGEpKX1lbHNle2lm KHQudG9vbHRpcEF4ZXM9M0Q9M0QiYm90aD0KInx8dC50b29sdGlwQXhlcz0zRD0zRCJ4eSIpe3o9 M0RkLmpxcGxvdC5zcHJpbnRmKHQudG9vbHRpcEZvcm1hdFN0cmluZyxtLmRhPQp0YVswXSkrdC50 b29sdGlwU2VwYXJhdG9yK2QuanFwbG90LnNwcmludGYodC50b29sdGlwRm9ybWF0U3RyaW5nLG0u ZGF0YVsxXSk9Cn1lbHNle2lmKHQudG9vbHRpcEF4ZXM9M0Q9M0QieXgiKXt6PTNEZC5qcXBsb3Qu c3ByaW50Zih0LnRvb2x0aXBGb3JtYXRTdHJpbj0KZyxtLmRhdGFbMV0pK3QudG9vbHRpcFNlcGFy YXRvcitkLmpxcGxvdC5zcHJpbnRmKHQudG9vbHRpcEZvcm1hdFN0cmluZyxtLmRhPQp0YVswXSl9 ZWxzZXtpZih0LnRvb2x0aXBBeGVzPTNEPTNEIngiKXt6PTNEZC5qcXBsb3Quc3ByaW50Zih0LnRv b2x0aXBGb3JtYXQ9ClN0cmluZyxtLmRhdGFbMF0pfWVsc2V7aWYodC50b29sdGlwQXhlcz0zRD0z RCJ5Iil7ej0zRGQuanFwbG90LnNwcmludGYodC50bz0Kb2x0aXBGb3JtYXRTdHJpbmcsbS5kYXRh WzFdKX19fX19fWlmKGQuaXNGdW5jdGlvbih0LnRvb2x0aXBDb250ZW50RWRpdG9yKSl7PQp6PTNE dC50b29sdGlwQ29udGVudEVkaXRvcih6LG0uc2VyaWVzSW5kZXgsbS5wb2ludEluZGV4LEEpfUQu aHRtbCh6KTt2YXIgQz0KPTNEe3g6bS5ncmlkRGF0YVswXSx5Om0uZ3JpZERhdGFbMV19O3ZhciB2 PTNEMDt2YXIgaj0zRDAuNzA3O2lmKHEubWFya2VyUmVuPQpkZXJlci5zaG93PTNEPTNEdHJ1ZSl7 dj0zRChxLm1hcmtlclJlbmRlcmVyLnNpemUrdC5zaXplQWRqdXN0KS8yfXZhciBvPTNEYjs9Cmlm KHEuZmlsbFRvWmVybyYmcS5maWxsJiZtLmRhdGFbMV08MCl7bz0zRGN9c3dpdGNoKG9bZVt0LnRv b2x0aXBMb2NhdGlvbl1dKT0Ke2Nhc2UibnciOnZhciBwPTNEQy54K0EuX2dyaWRQYWRkaW5nLmxl ZnQtRC5vdXRlcldpZHRoKHRydWUpLXQudG9vbHRpcE9mZnNlPQp0LWoqdjt2YXIgbj0zREMueStB Ll9ncmlkUGFkZGluZy50b3AtdC50b29sdGlwT2Zmc2V0LUQub3V0ZXJIZWlnaHQodHJ1ZSktaio9 CnY7YnJlYWs7Y2FzZSJuIjp2YXIgcD0zREMueCtBLl9ncmlkUGFkZGluZy5sZWZ0LUQub3V0ZXJX aWR0aCh0cnVlKS8yO3ZhciBuPQo9M0RDLnkrQS5fZ3JpZFBhZGRpbmcudG9wLXQudG9vbHRpcE9m ZnNldC1ELm91dGVySGVpZ2h0KHRydWUpLXY7YnJlYWs7Y2FzZSI9Cm5lIjp2YXIgcD0zREMueCtB Ll9ncmlkUGFkZGluZy5sZWZ0K3QudG9vbHRpcE9mZnNldCtqKnY7dmFyIG49M0RDLnkrQS5fZ3Jp ZD0KUGFkZGluZy50b3AtdC50b29sdGlwT2Zmc2V0LUQub3V0ZXJIZWlnaHQodHJ1ZSktaip2O2Jy ZWFrO2Nhc2UiZSI6dmFyIHA9M0RDPQoueCtBLl9ncmlkUGFkZGluZy5sZWZ0K3QudG9vbHRpcE9m ZnNldCt2O3ZhciBuPTNEQy55K0EuX2dyaWRQYWRkaW5nLnRvcC1ELm89CnV0ZXJIZWlnaHQodHJ1 ZSkvMjticmVhaztjYXNlInNlIjp2YXIgcD0zREMueCtBLl9ncmlkUGFkZGluZy5sZWZ0K3QudG9v bHRpcD0KT2Zmc2V0K2oqdjt2YXIgbj0zREMueStBLl9ncmlkUGFkZGluZy50b3ArdC50b29sdGlw T2Zmc2V0K2oqdjticmVhaztjYXNlInMiPQo6dmFyIHA9M0RDLngrQS5fZ3JpZFBhZGRpbmcubGVm dC1ELm91dGVyV2lkdGgodHJ1ZSkvMjt2YXIgbj0zREMueStBLl9ncmlkUGE9CmRkaW5nLnRvcCt0 LnRvb2x0aXBPZmZzZXQrdjticmVhaztjYXNlInN3Ijp2YXIgcD0zREMueCtBLl9ncmlkUGFkZGlu Zy5sZWZ0LT0KRC5vdXRlcldpZHRoKHRydWUpLXQudG9vbHRpcE9mZnNldC1qKnY7dmFyIG49M0RD LnkrQS5fZ3JpZFBhZGRpbmcudG9wK3QudG9vPQpsdGlwT2Zmc2V0K2oqdjticmVhaztjYXNlInci OnZhciBwPTNEQy54K0EuX2dyaWRQYWRkaW5nLmxlZnQtRC5vdXRlcldpZHRoKHQ9CnJ1ZSktdC50 b29sdGlwT2Zmc2V0LXY7dmFyIG49M0RDLnkrQS5fZ3JpZFBhZGRpbmcudG9wLUQub3V0ZXJIZWln aHQodHJ1ZSkvMj0KO2JyZWFrO2RlZmF1bHQ6dmFyIHA9M0RDLngrQS5fZ3JpZFBhZGRpbmcubGVm dC1ELm91dGVyV2lkdGgodHJ1ZSktdC50b29sdGlwPQpPZmZzZXQtaip2O3ZhciBuPTNEQy55K0Eu X2dyaWRQYWRkaW5nLnRvcC10LnRvb2x0aXBPZmZzZXQtRC5vdXRlckhlaWdodCh0cnU9CmUpLWoq djticmVha31ELmNzcygibGVmdCIscCk7RC5jc3MoInRvcCIsbik7aWYodC5mYWRlVG9vbHRpcCl7 RC5zdG9wKHRydWUsdD0KcnVlKS5mYWRlSW4odC50b29sdGlwRmFkZVNwZWVkKX1lbHNle0Quc2hv dygpfUQ9M0RudWxsfWZ1bmN0aW9uIGYobixqLGkscCxsPQope3ZhciBoPTNEbC5wbHVnaW5zLmhp Z2hsaWdodGVyO3ZhciBtPTNEbC5wbHVnaW5zLmN1cnNvcjtpZihoLnNob3cpe2lmKHA9M0Q9Cj0z RG51bGwmJmguaXNIaWdobGlnaHRpbmcpe3ZhciBvPTNEalF1ZXJ5LkV2ZW50KCJqcXBsb3RIaWdo bGlnaHRlclVuaGlnaGxpZz0KaHQiKTtsLnRhcmdldC50cmlnZ2VyKG8pO3ZhciBxPTNEaC5oaWdo bGlnaHRDYW52YXMuX2N0eDtxLmNsZWFyUmVjdCgwLDAscS5jPQphbnZhcy53aWR0aCxxLmNhbnZh cy5oZWlnaHQpO2lmKGguZmFkZVRvb2x0aXApe2guX3Rvb2x0aXBFbGVtLmZhZGVPdXQoaC50b289 Cmx0aXBGYWRlU3BlZWQpfWVsc2V7aC5fdG9vbHRpcEVsZW0uaGlkZSgpfWlmKGguYnJpbmdTZXJp ZXNUb0Zyb250KXtsLnJlc3Rvcj0KZVByZXZpb3VzU2VyaWVzT3JkZXIoKX1oLmlzSGlnaGxpZ2h0 aW5nPTNEZmFsc2U7aC5jdXJyZW50TmVpZ2hib3I9M0RudWxsO3E9Cj0zRG51bGx9ZWxzZXtpZihw IT0zRG51bGwmJmwuc2VyaWVzW3Auc2VyaWVzSW5kZXhdLnNob3dIaWdobGlnaHQmJiFoLmlzSGln aD0KbGlnaHRpbmcpe3ZhciBvPTNEalF1ZXJ5LkV2ZW50KCJqcXBsb3RIaWdobGlnaHRlckhpZ2hs aWdodCIpO28ud2hpY2g9M0RuLndoPQppY2g7by5wYWdlWD0zRG4ucGFnZVg7by5wYWdlWT0zRG4u cGFnZVk7dmFyIGs9M0RbcC5zZXJpZXNJbmRleCxwLnBvaW50SW5kZXg9CixwLmRhdGEsbF07bC50 YXJnZXQudHJpZ2dlcihvLGspO2guaXNIaWdobGlnaHRpbmc9M0R0cnVlO2guY3VycmVudE5laWdo Ym9yPQo9M0RwO2lmKGguc2hvd01hcmtlcil7YShsLHApfWlmKGwuc2VyaWVzW3Auc2VyaWVzSW5k ZXhdLnNob3cmJmguc2hvd1Rvb2x0aXA9CiYmKCFtfHwhbS5fem9vbS5zdGFydGVkKSl7ZyhsLGwu c2VyaWVzW3Auc2VyaWVzSW5kZXhdLHApfWlmKGguYnJpbmdTZXJpZXNUbz0KRnJvbnQpe2wubW92 ZVNlcmllc1RvRnJvbnQocC5zZXJpZXNJbmRleCl9fWVsc2V7aWYocCE9M0RudWxsJiZoLmlzSGln aGxpZ2h0PQppbmcmJmguY3VycmVudE5laWdoYm9yIT0zRHApe2lmKGwuc2VyaWVzW3Auc2VyaWVz SW5kZXhdLnNob3dIaWdobGlnaHQpe3ZhciA9CnE9M0RoLmhpZ2hsaWdodENhbnZhcy5fY3R4O3Eu Y2xlYXJSZWN0KDAsMCxxLmNhbnZhcy53aWR0aCxxLmNhbnZhcy5oZWlnaHQpOz0KaC5pc0hpZ2hs aWdodGluZz0zRHRydWU7aC5jdXJyZW50TmVpZ2hib3I9M0RwO2lmKGguc2hvd01hcmtlcil7YShs LHApfWlmKGwuPQpzZXJpZXNbcC5zZXJpZXNJbmRleF0uc2hvdyYmaC5zaG93VG9vbHRpcCYmKCFt fHwhbS5fem9vbS5zdGFydGVkKSl7ZyhsLGwuc2U9CnJpZXNbcC5zZXJpZXNJbmRleF0scCl9aWYo aC5icmluZ1Nlcmllc1RvRnJvbnQpe2wubW92ZVNlcmllc1RvRnJvbnQocC5zZXJpZT0Kc0luZGV4 KX19fX19fX19KShqUXVlcnkpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKCmRpZmYgLXIg ZGI5MmY2ZTE5YjM4MTgwOTdiZDNkNWExNDlhY2Y4MGNlZDkwNjc1YyAtciBhMGQxYTkxZTA1YmVl MzJkZDVmMmZhYz0KOTNkODBmYmU5MzViYThjMjggY29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlv bnMvY2hhcnRzL3N0YXRpYy9wbHVnaW5zL2pxcGxvPQp0L3BsdWdpbnMvanFwbG90LmJhclJlbmRl cmVyLm1pbi5qcwotLS0gL2Rldi9udWxsCisrKyBiL2NvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRp b25zL2NoYXJ0cy9zdGF0aWMvcGx1Z2lucy9qcXBsb3QvcGx1Z2lucy9qcT0KcGxvdC5iYXJSZW5k ZXJlci5taW4uanMKQEAgLTAsMCArMSwzIEBACisvKiBqcVBsb3QgMS4wLjhyMTI1MCB8IChjKSAy MDA5LTIwMTMgQ2hyaXMgTGVvbmVsbG8gfCBqcGxvdC5jb20KKyAgIGpzRGF0ZSB8IChjKSAyMDEw LTIwMTMgQ2hyaXMgTGVvbmVsbG8KKyAqLyhmdW5jdGlvbihkKXtkLmpxcGxvdC5CYXJSZW5kZXJl cj0zRGZ1bmN0aW9uKCl7ZC5qcXBsb3QuTGluZVJlbmRlcmVyLmNhPQpsbCh0aGlzKX07ZC5qcXBs b3QuQmFyUmVuZGVyZXIucHJvdG90eXBlPTNEbmV3IGQuanFwbG90LkxpbmVSZW5kZXJlcigpO2Qu anE9CnBsb3QuQmFyUmVuZGVyZXIucHJvdG90eXBlLmNvbnN0cnVjdG9yPTNEZC5qcXBsb3QuQmFy UmVuZGVyZXI7ZC5qcXBsb3QuQmFyUj0KZW5kZXJlci5wcm90b3R5cGUuaW5pdD0zRGZ1bmN0aW9u KG8scSl7dGhpcy5iYXJQYWRkaW5nPTNEODt0aGlzLmJhck1hcmdpbj0KPTNEMTA7dGhpcy5iYXJE aXJlY3Rpb249M0QidmVydGljYWwiO3RoaXMuYmFyV2lkdGg9M0RudWxsO3RoaXMuc2hhZG93T2Zm c2V0PQo9M0QyO3RoaXMuc2hhZG93RGVwdGg9M0Q1O3RoaXMuc2hhZG93QWxwaGE9M0QwLjA4O3Ro aXMud2F0ZXJmYWxsPTNEZmFsc2U7dGg9CmlzLmdyb3Vwcz0zRDE7dGhpcy52YXJ5QmFyQ29sb3I9 M0RmYWxzZTt0aGlzLmhpZ2hsaWdodE1vdXNlT3Zlcj0zRHRydWU7dGhpcz0KLmhpZ2hsaWdodE1v dXNlRG93bj0zRGZhbHNlO3RoaXMuaGlnaGxpZ2h0Q29sb3JzPTNEW107dGhpcy50cmFuc3Bvc2Vk RGF0YT0KPTNEdHJ1ZTt0aGlzLnJlbmRlcmVyLmFuaW1hdGlvbj0zRHtzaG93OmZhbHNlLGRpcmVj dGlvbjoiZG93biIsc3BlZWQ6MzAwMCxfPQpzdXBwb3J0ZWQ6dHJ1ZX07dGhpcy5fdHlwZT0zRCJi YXIiO2lmKG8uaGlnaGxpZ2h0TW91c2VEb3duJiZvLmhpZ2hsaWdodE1vdXM9CmVPdmVyPTNEPTNE bnVsbCl7by5oaWdobGlnaHRNb3VzZU92ZXI9M0RmYWxzZX1kLmV4dGVuZCh0cnVlLHRoaXMsbyk7 ZC5leHRlbj0KZCh0cnVlLHRoaXMucmVuZGVyZXIsbyk7dGhpcy5maWxsPTNEdHJ1ZTtpZih0aGlz LmJhckRpcmVjdGlvbj0zRD0zRD0zRCJob3JpPQp6b250YWwiJiZ0aGlzLnJlbmRlcmVyT3B0aW9u cy5hbmltYXRpb24mJnRoaXMucmVuZGVyZXJPcHRpb25zLmFuaW1hdGlvbi5kaXI9CmVjdGlvbj0z RD0zRG51bGwpe3RoaXMucmVuZGVyZXIuYW5pbWF0aW9uLmRpcmVjdGlvbj0zRCJsZWZ0In1pZih0 aGlzLndhdGVyZj0KYWxsKXt0aGlzLmZpbGxUb1plcm89M0RmYWxzZTt0aGlzLmRpc2FibGVTdGFj az0zRHRydWV9aWYodGhpcy5iYXJEaXJlY3Rpb249Cj0zRD0zRCJ2ZXJ0aWNhbCIpe3RoaXMuX3By aW1hcnlBeGlzPTNEIl94YXhpcyI7dGhpcy5fc3RhY2tBeGlzPTNEInkiO3RoaXMuZj0KaWxsQXhp cz0zRCJ5In1lbHNle3RoaXMuX3ByaW1hcnlBeGlzPTNEIl95YXhpcyI7dGhpcy5fc3RhY2tBeGlz PTNEIngiO3RoaXMuPQpmaWxsQXhpcz0zRCJ4In10aGlzLl9oaWdobGlnaHRlZFBvaW50PTNEbnVs bDt0aGlzLl9wbG90U2VyaWVzSW5mbz0zRG51bGw7dGg9CmlzLl9kYXRhQ29sb3JzPTNEW107dGhp cy5fYmFyUG9pbnRzPTNEW107dmFyIHA9M0R7bGluZUpvaW46Im1pdGVyIixsaW5lQ2FwOj0KInJv dW5kIixmaWxsOnRydWUsaXNhcmM6ZmFsc2Usc3Ryb2tlU3R5bGU6dGhpcy5jb2xvcixmaWxsU3R5 bGU6dGhpcy5jb2xvcixjPQpsb3NlUGF0aDp0aGlzLmZpbGx9O3RoaXMucmVuZGVyZXIuc2hhcGVS ZW5kZXJlci5pbml0KHApO3ZhciBuPTNEe2xpbmVKb2luOiI9Cm1pdGVyIixsaW5lQ2FwOiJyb3Vu ZCIsZmlsbDp0cnVlLGlzYXJjOmZhbHNlLGFuZ2xlOnRoaXMuc2hhZG93QW5nbGUsb2Zmc2V0Oj0K dGhpcy5zaGFkb3dPZmZzZXQsYWxwaGE6dGhpcy5zaGFkb3dBbHBoYSxkZXB0aDp0aGlzLnNoYWRv d0RlcHRoLGNsb3NlUGF0aDp0PQpoaXMuZmlsbH07dGhpcy5yZW5kZXJlci5zaGFkb3dSZW5kZXJl ci5pbml0KG4pO3EucG9zdEluaXRIb29rcy5hZGRPbmNlKGgpO3E9Ci5wb3N0RHJhd0hvb2tzLmFk ZE9uY2Uoaik7cS5ldmVudExpc3RlbmVySG9va3MuYWRkT25jZSgianFwbG90TW91c2VNb3ZlIixi KT0KO3EuZXZlbnRMaXN0ZW5lckhvb2tzLmFkZE9uY2UoImpxcGxvdE1vdXNlRG93biIsYSk7cS5l dmVudExpc3RlbmVySG9va3MuYWRkPQpPbmNlKCJqcXBsb3RNb3VzZVVwIixsKTtxLmV2ZW50TGlz dGVuZXJIb29rcy5hZGRPbmNlKCJqcXBsb3RDbGljayIsZSk7cS5ldmU9Cm50TGlzdGVuZXJIb29r cy5hZGRPbmNlKCJqcXBsb3RSaWdodENsaWNrIixtKX07ZnVuY3Rpb24gZyh0LHAsbyx3KXtpZih0 aGlzLj0KcmVuZGVyZXJPcHRpb25zLmJhckRpcmVjdGlvbj0zRD0zRCJob3Jpem9udGFsIil7dGhp cy5fc3RhY2tBeGlzPTNEIngiO3RoaXMuPQpfcHJpbWFyeUF4aXM9M0QiX3lheGlzIn1pZih0aGlz LnJlbmRlcmVyT3B0aW9ucy53YXRlcmZhbGw9M0Q9M0R0cnVlKXt0aGlzLl89CmRhdGE9M0RkLmV4 dGVuZCh0cnVlLFtdLHRoaXMuZGF0YSk7dmFyIHM9M0QwO3ZhciB1PTNEKCF0aGlzLnJlbmRlcmVy T3B0aW9ucz0KLmJhckRpcmVjdGlvbnx8dGhpcy5yZW5kZXJlck9wdGlvbnMuYmFyRGlyZWN0aW9u PTNEPTNEPTNEInZlcnRpY2FsInx8dGhpcy50PQpyYW5zcG9zZWREYXRhPTNEPTNEPTNEZmFsc2Up PzE6MDtmb3IodmFyIHE9M0QwO3E8dGhpcy5kYXRhLmxlbmd0aDtxKyspe3MrPQo9M0R0aGlzLmRh dGFbcV1bdV07aWYocT4wKXt0aGlzLmRhdGFbcV1bdV0rPTNEdGhpcy5kYXRhW3EtMV1bdV19fXRo aXMuZGF0YVs9CnRoaXMuZGF0YS5sZW5ndGhdPTNEKHU9M0Q9M0QxKT9bdGhpcy5kYXRhLmxlbmd0 aCsxLHNdOltzLHRoaXMuZGF0YS5sZW5ndGgrMT0KXTt0aGlzLl9kYXRhW3RoaXMuX2RhdGEubGVu Z3RoXT0zRCh1PTNEPTNEMSk/W3RoaXMuX2RhdGEubGVuZ3RoKzEsc106W3MsdGhpPQpzLl9kYXRh Lmxlbmd0aCsxXX1pZih0aGlzLnJlbmRlcmVyT3B0aW9ucy5ncm91cHM+MSl7dGhpcy5icmVha09u TnVsbD0zRHRydWU9Cjt2YXIgbj0zRHRoaXMuZGF0YS5sZW5ndGg7dmFyIHY9M0RwYXJzZUludChu L3RoaXMucmVuZGVyZXJPcHRpb25zLmdyb3VwcywxMD0KKTt2YXIgcj0zRDA7Zm9yKHZhciBxPTNE djtxPG47cSs9M0R2KXt0aGlzLmRhdGEuc3BsaWNlKHErciwwLFtudWxsLG51bGxdKTt0PQpoaXMu X3Bsb3REYXRhLnNwbGljZShxK3IsMCxbbnVsbCxudWxsXSk7dGhpcy5fc3RhY2tEYXRhLnNwbGlj ZShxK3IsMCxbbnVsbCw9Cm51bGxdKTtyKyt9Zm9yKHE9M0QwO3E8dGhpcy5kYXRhLmxlbmd0aDtx Kyspe2lmKHRoaXMuX3ByaW1hcnlBeGlzPTNEPTNEIl94YT0KeGlzIil7dGhpcy5kYXRhW3FdWzBd PTNEcSsxO3RoaXMuX3Bsb3REYXRhW3FdWzBdPTNEcSsxO3RoaXMuX3N0YWNrRGF0YVtxXVswPQpd PTNEcSsxfWVsc2V7dGhpcy5kYXRhW3FdWzFdPTNEcSsxO3RoaXMuX3Bsb3REYXRhW3FdWzFdPTNE cSsxO3RoaXMuX3N0YWNrRGE9CnRhW3FdWzFdPTNEcSsxfX19fWQuanFwbG90LnByZVNlcmllc0lu aXRIb29rcy5wdXNoKGcpO2QuanFwbG90LkJhclJlbmRlcmVyLj0KcHJvdG90eXBlLmNhbGNTZXJp ZXNOdW1iZXJzPTNEZnVuY3Rpb24oKXt2YXIgcj0zRDA7dmFyIHQ9M0QwO3ZhciBxPTNEdGhpc1t0 PQpoaXMuX3ByaW1hcnlBeGlzXTt2YXIgcCxvLHU7Zm9yKHZhciBuPTNEMDtuPHEuX3Nlcmllcy5s ZW5ndGg7bisrKXtvPTNEcS5fc2U9CnJpZXNbbl07aWYobz0zRD0zRD0zRHRoaXMpe3U9M0RufWlm KG8ucmVuZGVyZXIuY29uc3RydWN0b3I9M0Q9M0RkLmpxcGxvdC5CYT0KclJlbmRlcmVyKXtyKz0z RG8uZGF0YS5sZW5ndGg7dCs9M0QxfX1yZXR1cm5bcix0LHVdfTtkLmpxcGxvdC5CYXJSZW5kZXJl ci5wPQpyb3RvdHlwZS5zZXRCYXJXaWR0aD0zRGZ1bmN0aW9uKCl7dmFyIHE7dmFyIG49M0QwO3Zh ciBvPTNEMDt2YXIgdD0zRHRoaXNbdGg9CmlzLl9wcmltYXJ5QXhpc107dmFyIHgscix2O3ZhciB3 PTNEdGhpcy5fcGxvdFNlcmllc0luZm89M0R0aGlzLnJlbmRlcmVyLmNhbD0KY1Nlcmllc051bWJl cnMuY2FsbCh0aGlzKTtuPTNEd1swXTtvPTNEd1sxXTt2YXIgdT0zRHQubnVtYmVyVGlja3M7dmFy IHA9M0QoPQp1LTEpLzI7aWYodC5uYW1lPTNEPTNEInhheGlzInx8dC5uYW1lPTNEPTNEIngyYXhp cyIpe2lmKHRoaXMuX3N0YWNrKXt0aGlzLmI9CmFyV2lkdGg9M0QodC5fb2Zmc2V0cy5tYXgtdC5f b2Zmc2V0cy5taW4pL24qby10aGlzLmJhck1hcmdpbn1lbHNle3RoaXMuYmFyVz0KaWR0aD0zRCgo dC5fb2Zmc2V0cy5tYXgtdC5fb2Zmc2V0cy5taW4pL3AtdGhpcy5iYXJQYWRkaW5nKihvLTEpLXRo aXMuYmFyTWFyPQpnaW4qMikvb319ZWxzZXtpZih0aGlzLl9zdGFjayl7dGhpcy5iYXJXaWR0aD0z RCh0Ll9vZmZzZXRzLm1pbi10Ll9vZmZzZXRzLm09CmF4KS9uKm8tdGhpcy5iYXJNYXJnaW59ZWxz ZXt0aGlzLmJhcldpZHRoPTNEKCh0Ll9vZmZzZXRzLm1pbi10Ll9vZmZzZXRzLm1heD0KKS9wLXRo aXMuYmFyUGFkZGluZyooby0xKS10aGlzLmJhck1hcmdpbioyKS9vfX1yZXR1cm5bbixvXX07ZnVu Y3Rpb24gZihvKXt2PQphciBxPTNEW107Zm9yKHZhciBzPTNEMDtzPG8ubGVuZ3RoO3MrKyl7dmFy IHI9M0RkLmpxcGxvdC5nZXRDb2xvckNvbXBvbmVudHM9CihvW3NdKTt2YXIgbj0zRFtyWzBdLHJb MV0sclsyXV07dmFyIHQ9M0RuWzBdK25bMV0rblsyXTtmb3IodmFyIHA9M0QwO3A8MztwKz0KKyl7 bltwXT0zRCh0PjU3MCk/bltwXSowLjg6bltwXSswLjMqKDI1NS1uW3BdKTtuW3BdPTNEcGFyc2VJ bnQobltwXSwxMCl9cS5wPQp1c2goInJnYigiK25bMF0rIiwiK25bMV0rIiwiK25bMl0rIikiKX1y ZXR1cm4gcX1mdW5jdGlvbiBpKHYsdSxzLHQsbyl7dmFyIHE9Cj0zRHYsdz0zRHYtMSxuLHAscj0z RChvPTNEPTNEPTNEIngiKT8wOjE7aWYocT4wKXtwPTNEdC5zZXJpZXNbd10uX3Bsb3REYXRhWz0K dV1bcl07aWYoKHMqcCk8MCl7bj0zRGkodyx1LHMsdCxvKX1lbHNle249M0R0LnNlcmllc1t3XS5n cmlkRGF0YVt1XVtyXX19ZWxzPQple249M0Qocj0zRD0zRD0zRDApP3Quc2VyaWVzW3FdLl94YXhp cy5zZXJpZXNfdTJwKDApOnQuc2VyaWVzW3FdLl95YXhpcy5zZXI9Cmllc191MnAoMCl9cmV0dXJu IG59ZC5qcXBsb3QuQmFyUmVuZGVyZXIucHJvdG90eXBlLmRyYXc9M0RmdW5jdGlvbihFLEwscSxH KT0Ke3ZhciBJO3ZhciBBPTNEZC5leHRlbmQoe30scSk7dmFyIHc9M0QoQS5zaGFkb3chPTNEdW5k ZWZpbmVkKT9BLnNoYWRvdzp0aGlzPQouc2hhZG93O3ZhciBPPTNEKEEuc2hvd0xpbmUhPTNEdW5k ZWZpbmVkKT9BLnNob3dMaW5lOnRoaXMuc2hvd0xpbmU7dmFyIEY9M0Q9CihBLmZpbGwhPTNEdW5k ZWZpbmVkKT9BLmZpbGw6dGhpcy5maWxsO3ZhciBwPTNEdGhpcy54YXhpczt2YXIgSj0zRHRoaXMu eWF4aT0Kczt2YXIgeT0zRHRoaXMuX3hheGlzLnNlcmllc191MnA7dmFyIEs9M0R0aGlzLl95YXhp cy5zZXJpZXNfdTJwO3ZhciBELEM7dGhpPQpzLl9kYXRhQ29sb3JzPTNEW107dGhpcy5fYmFyUG9p bnRzPTNEW107aWYodGhpcy5iYXJXaWR0aD0zRD0zRG51bGwpe3RoaXMucmU9Cm5kZXJlci5zZXRC YXJXaWR0aC5jYWxsKHRoaXMpfXZhciBOPTNEdGhpcy5fcGxvdFNlcmllc0luZm89M0R0aGlzLnJl bmRlcmVyLj0KY2FsY1Nlcmllc051bWJlcnMuY2FsbCh0aGlzKTt2YXIgeD0zRE5bMF07dmFyIHY9 M0ROWzFdO3ZhciBzPTNETlsyXTt2YXIgSD0KPTNEW107aWYodGhpcy5fc3RhY2spe3RoaXMuX2Jh ck51ZGdlPTNEMH1lbHNle3RoaXMuX2Jhck51ZGdlPTNEKC1NYXRoLmFicyh2PQovMi0wLjUpK3Mp Kih0aGlzLmJhcldpZHRoK3RoaXMuYmFyUGFkZGluZyl9aWYoTyl7dmFyIHU9M0RuZXcgZC5qcXBs b3QuQ29sb3I9CkdlbmVyYXRvcih0aGlzLm5lZ2F0aXZlU2VyaWVzQ29sb3JzKTt2YXIgQj0zRG5l dyBkLmpxcGxvdC5Db2xvckdlbmVyYXRvcih0aD0KaXMuc2VyaWVzQ29sb3JzKTt2YXIgTT0zRHUu Z2V0KHRoaXMuaW5kZXgpO2lmKCF0aGlzLnVzZU5lZ2F0aXZlQ29sb3JzKXtNPTNEPQpBLmZpbGxT dHlsZX12YXIgdD0zREEuZmlsbFN0eWxlO3ZhciByO3ZhciBQO3ZhciBvO2lmKHRoaXMuYmFyRGly ZWN0aW9uPTNEPQo9M0QidmVydGljYWwiKXtmb3IodmFyIEk9M0QwO0k8TC5sZW5ndGg7SSsrKXtp ZighdGhpcy5fc3RhY2smJnRoaXMuZGF0YVtJXVs9CjFdPTNEPTNEbnVsbCl7Y29udGludWV9SD0z RFtdO3I9M0RMW0ldWzBdK3RoaXMuX2Jhck51ZGdlO2lmKHRoaXMuX3N0YWNrJiZ0aD0KaXMuX3By ZXZHcmlkRGF0YS5sZW5ndGgpe289M0RpKHRoaXMuaW5kZXgsSSx0aGlzLl9wbG90RGF0YVtJXVsx XSxHLCJ5Iil9ZWxzPQple2lmKHRoaXMuZmlsbFRvWmVybyl7bz0zRHRoaXMuX3lheGlzLnNlcmll c191MnAoMCl9ZWxzZXtpZih0aGlzLndhdGVyZmFsbCY9CiZJPjAmJkk8dGhpcy5ncmlkRGF0YS5s ZW5ndGgtMSl7bz0zRHRoaXMuZ3JpZERhdGFbSS0xXVsxXX1lbHNle2lmKHRoaXMud2F0ZT0KcmZh bGwmJkk9M0Q9M0QwJiZJPHRoaXMuZ3JpZERhdGEubGVuZ3RoLTEpe2lmKHRoaXMuX3lheGlzLm1p bjw9M0QwJiZ0aGlzLl95PQpheGlzLm1heD49M0QwKXtvPTNEdGhpcy5feWF4aXMuc2VyaWVzX3Uy cCgwKX1lbHNle2lmKHRoaXMuX3lheGlzLm1pbj4wKXtvPQo9M0RFLmNhbnZhcy5oZWlnaHR9ZWxz ZXtvPTNEMH19fWVsc2V7aWYodGhpcy53YXRlcmZhbGwmJkk9M0Q9M0R0aGlzLmdyaWREYXQ9CmEu bGVuZ3RoLTEpe2lmKHRoaXMuX3lheGlzLm1pbjw9M0QwJiZ0aGlzLl95YXhpcy5tYXg+PTNEMCl7 bz0zRHRoaXMuX3lheGlzLj0Kc2VyaWVzX3UycCgwKX1lbHNle2lmKHRoaXMuX3lheGlzLm1pbj4w KXtvPTNERS5jYW52YXMuaGVpZ2h0fWVsc2V7bz0zRDB9fX1lPQpsc2V7bz0zREUuY2FudmFzLmhl aWdodH19fX19aWYoKHRoaXMuZmlsbFRvWmVybyYmdGhpcy5fcGxvdERhdGFbSV1bMV08MCl8fCg9 CnRoaXMud2F0ZXJmYWxsJiZ0aGlzLl9kYXRhW0ldWzFdPDApKXtpZih0aGlzLnZhcnlCYXJDb2xv ciYmIXRoaXMuX3N0YWNrKXtpZj0KKHRoaXMudXNlTmVnYXRpdmVDb2xvcnMpe0EuZmlsbFN0eWxl PTNEdS5uZXh0KCl9ZWxzZXtBLmZpbGxTdHlsZT0zREIubmV4dCgpPQp9fWVsc2V7QS5maWxsU3R5 bGU9M0RNfX1lbHNle2lmKHRoaXMudmFyeUJhckNvbG9yJiYhdGhpcy5fc3RhY2spe0EuZmlsbFN0 eWw9CmU9M0RCLm5leHQoKX1lbHNle0EuZmlsbFN0eWxlPTNEdH19aWYoIXRoaXMuZmlsbFRvWmVy b3x8dGhpcy5fcGxvdERhdGFbSV1bMT0KXT49M0QwKXtILnB1c2goW3ItdGhpcy5iYXJXaWR0aC8y LG9dKTtILnB1c2goW3ItdGhpcy5iYXJXaWR0aC8yLExbSV1bMV1dKTtIPQoucHVzaChbcit0aGlz LmJhcldpZHRoLzIsTFtJXVsxXV0pO0gucHVzaChbcit0aGlzLmJhcldpZHRoLzIsb10pfWVsc2V7 SC5wdXM9CmgoW3ItdGhpcy5iYXJXaWR0aC8yLExbSV1bMV1dKTtILnB1c2goW3ItdGhpcy5iYXJX aWR0aC8yLG9dKTtILnB1c2goW3IrdGhpcz0KLmJhcldpZHRoLzIsb10pO0gucHVzaChbcit0aGlz LmJhcldpZHRoLzIsTFtJXVsxXV0pfXRoaXMuX2JhclBvaW50cy5wdXNoKEgpPQo7aWYodyYmIXRo aXMuX3N0YWNrKXt2YXIgej0zRGQuZXh0ZW5kKHRydWUse30sQSk7ZGVsZXRlIHouZmlsbFN0eWxl O3RoaXMucmU9Cm5kZXJlci5zaGFkb3dSZW5kZXJlci5kcmF3KEUsSCx6KX12YXIgbj0zREEuZmls bFN0eWxlfHx0aGlzLmNvbG9yO3RoaXMuX2RhdD0KYUNvbG9ycy5wdXNoKG4pO3RoaXMucmVuZGVy ZXIuc2hhcGVSZW5kZXJlci5kcmF3KEUsSCxBKX19ZWxzZXtpZih0aGlzLmJhckRpPQpyZWN0aW9u PTNEPTNEImhvcml6b250YWwiKXtmb3IodmFyIEk9M0QwO0k8TC5sZW5ndGg7SSsrKXtpZighdGhp cy5fc3RhY2smJnQ9Cmhpcy5kYXRhW0ldWzBdPTNEPTNEbnVsbCl7Y29udGludWV9SD0zRFtdO3I9 M0RMW0ldWzFdLXRoaXMuX2Jhck51ZGdlO1A7aWYodD0KaGlzLl9zdGFjayYmdGhpcy5fcHJldkdy aWREYXRhLmxlbmd0aCl7UD0zRGkodGhpcy5pbmRleCxJLHRoaXMuX3Bsb3REYXRhW0ldPQpbMF0s RywieCIpfWVsc2V7aWYodGhpcy5maWxsVG9aZXJvKXtQPTNEdGhpcy5feGF4aXMuc2VyaWVzX3Uy cCgwKX1lbHNle2lmKHQ9Cmhpcy53YXRlcmZhbGwmJkk+MCYmSTx0aGlzLmdyaWREYXRhLmxlbmd0 aC0xKXtQPTNEdGhpcy5ncmlkRGF0YVtJLTFdWzBdfWVscz0KZXtpZih0aGlzLndhdGVyZmFsbCYm ST0zRD0zRDAmJkk8dGhpcy5ncmlkRGF0YS5sZW5ndGgtMSl7aWYodGhpcy5feGF4aXMubWluPQo8 PTNEMCYmdGhpcy5feGF4aXMubWF4Pj0zRDApe1A9M0R0aGlzLl94YXhpcy5zZXJpZXNfdTJwKDAp fWVsc2V7aWYodGhpcy5feGE9Cnhpcy5taW4+MCl7UD0zRDB9ZWxzZXtQPTNEMH19fWVsc2V7aWYo dGhpcy53YXRlcmZhbGwmJkk9M0Q9M0R0aGlzLmdyaWREYXRhLj0KbGVuZ3RoLTEpe2lmKHRoaXMu X3hheGlzLm1pbjw9M0QwJiZ0aGlzLl94YXhpcy5tYXg+PTNEMCl7UD0zRHRoaXMuX3hheGlzLnNl PQpyaWVzX3UycCgwKX1lbHNle2lmKHRoaXMuX3hheGlzLm1pbj4wKXtQPTNEMH1lbHNle1A9M0RF LmNhbnZhcy53aWR0aH19fWVsc2U9CntQPTNEMH19fX19aWYoKHRoaXMuZmlsbFRvWmVybyYmdGhp cy5fcGxvdERhdGFbSV1bMF08MCl8fCh0aGlzLndhdGVyZmFsbCYmdD0KaGlzLl9kYXRhW0ldWzBd PDApKXtpZih0aGlzLnZhcnlCYXJDb2xvciYmIXRoaXMuX3N0YWNrKXtpZih0aGlzLnVzZU5lZ2F0 aXZlPQpDb2xvcnMpe0EuZmlsbFN0eWxlPTNEdS5uZXh0KCl9ZWxzZXtBLmZpbGxTdHlsZT0zREIu bmV4dCgpfX1lbHNle0EuZmlsbFN0eWw9CmU9M0RNfX1lbHNle2lmKHRoaXMudmFyeUJhckNvbG9y JiYhdGhpcy5fc3RhY2spe0EuZmlsbFN0eWxlPTNEQi5uZXh0KCl9ZWxzZT0Ke0EuZmlsbFN0eWxl PTNEdH19aWYoIXRoaXMuZmlsbFRvWmVyb3x8dGhpcy5fcGxvdERhdGFbSV1bMF0+PTNEMCl7SC5w dXNoKFtQPQoscit0aGlzLmJhcldpZHRoLzJdKTtILnB1c2goW1Asci10aGlzLmJhcldpZHRoLzJd KTtILnB1c2goW0xbSV1bMF0sci10aGlzLmI9CmFyV2lkdGgvMl0pO0gucHVzaChbTFtJXVswXSxy K3RoaXMuYmFyV2lkdGgvMl0pfWVsc2V7SC5wdXNoKFtMW0ldWzBdLHIrdGhpcz0KLmJhcldpZHRo LzJdKTtILnB1c2goW0xbSV1bMF0sci10aGlzLmJhcldpZHRoLzJdKTtILnB1c2goW1Asci10aGlz LmJhcldpZHRoPQovMl0pO0gucHVzaChbUCxyK3RoaXMuYmFyV2lkdGgvMl0pfXRoaXMuX2JhclBv aW50cy5wdXNoKEgpO2lmKHcmJiF0aGlzLl9zdGE9CmNrKXt2YXIgej0zRGQuZXh0ZW5kKHRydWUs e30sQSk7ZGVsZXRlIHouZmlsbFN0eWxlO3RoaXMucmVuZGVyZXIuc2hhZG93UmVuZD0KZXJlci5k cmF3KEUsSCx6KX12YXIgbj0zREEuZmlsbFN0eWxlfHx0aGlzLmNvbG9yO3RoaXMuX2RhdGFDb2xv cnMucHVzaChuKTt0PQpoaXMucmVuZGVyZXIuc2hhcGVSZW5kZXJlci5kcmF3KEUsSCxBKX19fX1p Zih0aGlzLmhpZ2hsaWdodENvbG9ycy5sZW5ndGg9M0Q9Cj0zRDApe3RoaXMuaGlnaGxpZ2h0Q29s b3JzPTNEZC5qcXBsb3QuY29tcHV0ZUhpZ2hsaWdodENvbG9ycyh0aGlzLl9kYXRhQ29sbz0KcnMp fWVsc2V7aWYodHlwZW9mKHRoaXMuaGlnaGxpZ2h0Q29sb3JzKT0zRD0zRCJzdHJpbmciKXt2YXIg Tj0zRHRoaXMuaGlnaGxpPQpnaHRDb2xvcnM7dGhpcy5oaWdobGlnaHRDb2xvcnM9M0RbXTtmb3Io dmFyIEk9M0QwO0k8dGhpcy5fZGF0YUNvbG9ycy5sZW5ndGg9CjtJKyspe3RoaXMuaGlnaGxpZ2h0 Q29sb3JzLnB1c2goTil9fX19O2QuanFwbG90LkJhclJlbmRlcmVyLnByb3RvdHlwZS5kcmF3Uz0K aGFkb3c9M0RmdW5jdGlvbih6LEcscCxCKXt2YXIgRDt2YXIgdz0zRChwIT0zRHVuZGVmaW5lZCk/ cDp7fTt2YXIgdD0zRCh3LnNoPQphZG93IT0zRHVuZGVmaW5lZCk/dy5zaGFkb3c6dGhpcy5zaGFk b3c7dmFyIEk9M0Qody5zaG93TGluZSE9M0R1bmRlZmluZWQpP3c9Ci5zaG93TGluZTp0aGlzLnNo b3dMaW5lO3ZhciBBPTNEKHcuZmlsbCE9M0R1bmRlZmluZWQpP3cuZmlsbDp0aGlzLmZpbGw7dmFy ID0Kbz0zRHRoaXMueGF4aXM7dmFyIEU9M0R0aGlzLnlheGlzO3ZhciB2PTNEdGhpcy5feGF4aXMu c2VyaWVzX3UycDt2YXIgRj0zRHRoPQppcy5feWF4aXMuc2VyaWVzX3UycDt2YXIgeSxDLHgsdSxz LHI7aWYodGhpcy5fc3RhY2smJnRoaXMuc2hhZG93KXtpZih0aGlzLmI9CmFyV2lkdGg9M0Q9M0Ru dWxsKXt0aGlzLnJlbmRlcmVyLnNldEJhcldpZHRoLmNhbGwodGhpcyl9dmFyIEg9M0R0aGlzLl9w bG90Uz0KZXJpZXNJbmZvPTNEdGhpcy5yZW5kZXJlci5jYWxjU2VyaWVzTnVtYmVycy5jYWxsKHRo aXMpO3U9M0RIWzBdO3M9M0RIWzFdO3I9Cj0zREhbMl07aWYodGhpcy5fc3RhY2spe3RoaXMuX2Jh ck51ZGdlPTNEMH1lbHNle3RoaXMuX2Jhck51ZGdlPTNEKC1NYXRoLmFicz0KKHMvMi0wLjUpK3Ip Kih0aGlzLmJhcldpZHRoK3RoaXMuYmFyUGFkZGluZyl9aWYoSSl7aWYodGhpcy5iYXJEaXJlY3Rp b249M0Q9Cj0zRCJ2ZXJ0aWNhbCIpe2Zvcih2YXIgRD0zRDA7RDxHLmxlbmd0aDtEKyspe2lmKHRo aXMuZGF0YVtEXVsxXT0zRD0zRG51bGwpez0KY29udGludWV9Qz0zRFtdO3ZhciBxPTNER1tEXVsw XSt0aGlzLl9iYXJOdWRnZTt2YXIgbjtpZih0aGlzLl9zdGFjayYmdGhpcy5fPQpwcmV2R3JpZERh dGEubGVuZ3RoKXtuPTNEaSh0aGlzLmluZGV4LEQsdGhpcy5fcGxvdERhdGFbRF1bMV0sQiwieSIp fWVsc2V7aWY9Cih0aGlzLmZpbGxUb1plcm8pe249M0R0aGlzLl95YXhpcy5zZXJpZXNfdTJwKDAp fWVsc2V7bj0zRHouY2FudmFzLmhlaWdodH19Qz0KLnB1c2goW3EtdGhpcy5iYXJXaWR0aC8yLG5d KTtDLnB1c2goW3EtdGhpcy5iYXJXaWR0aC8yLEdbRF1bMV1dKTtDLnB1c2goW3ErPQp0aGlzLmJh cldpZHRoLzIsR1tEXVsxXV0pO0MucHVzaChbcSt0aGlzLmJhcldpZHRoLzIsbl0pO3RoaXMucmVu ZGVyZXIuc2hhZG89CndSZW5kZXJlci5kcmF3KHosQyx3KX19ZWxzZXtpZih0aGlzLmJhckRpcmVj dGlvbj0zRD0zRCJob3Jpem9udGFsIil7Zm9yKHZhcj0KIEQ9M0QwO0Q8Ry5sZW5ndGg7RCsrKXtp Zih0aGlzLmRhdGFbRF1bMF09M0Q9M0RudWxsKXtjb250aW51ZX1DPTNEW107dmFyIHE9Cj0zREdb RF1bMV0tdGhpcy5fYmFyTnVkZ2U7dmFyIEo7aWYodGhpcy5fc3RhY2smJnRoaXMuX3ByZXZHcmlk RGF0YS5sZW5ndGgpez0KSj0zRGkodGhpcy5pbmRleCxELHRoaXMuX3Bsb3REYXRhW0RdWzBdLEIs IngiKX1lbHNle2lmKHRoaXMuZmlsbFRvWmVybyl7Sj0KPTNEdGhpcy5feGF4aXMuc2VyaWVzX3Uy cCgwKX1lbHNle0o9M0QwfX1DLnB1c2goW0oscSt0aGlzLmJhcldpZHRoLzJdKTtDLnB1PQpzaChb R1tEXVswXSxxK3RoaXMuYmFyV2lkdGgvMl0pO0MucHVzaChbR1tEXVswXSxxLXRoaXMuYmFyV2lk dGgvMl0pO0MucHVzaCg9CltKLHEtdGhpcy5iYXJXaWR0aC8yXSk7dGhpcy5yZW5kZXJlci5zaGFk b3dSZW5kZXJlci5kcmF3KHosQyx3KX19fX19fTtmdW5jdD0KaW9uIGgocSxwLG4pe2Zvcih2YXIg bz0zRDA7bzx0aGlzLnNlcmllcy5sZW5ndGg7bysrKXtpZih0aGlzLnNlcmllc1tvXS5yZW5kPQpl cmVyLmNvbnN0cnVjdG9yPTNEPTNEZC5qcXBsb3QuQmFyUmVuZGVyZXIpe2lmKHRoaXMuc2VyaWVz W29dLmhpZ2hsaWdodE1vdXM9CmVPdmVyKXt0aGlzLnNlcmllc1tvXS5oaWdobGlnaHRNb3VzZURv d249M0RmYWxzZX19fX1mdW5jdGlvbiBqKCl7aWYodGhpcy5wbD0KdWdpbnMuYmFyUmVuZGVyZXIm JnRoaXMucGx1Z2lucy5iYXJSZW5kZXJlci5oaWdobGlnaHRDYW52YXMpe3RoaXMucGx1Z2lucy5i PQphclJlbmRlcmVyLmhpZ2hsaWdodENhbnZhcy5yZXNldENhbnZhcygpO3RoaXMucGx1Z2lucy5i YXJSZW5kZXJlci5oaWdobGlnaHQ9CkNhbnZhcz0zRG51bGx9dGhpcy5wbHVnaW5zLmJhclJlbmRl cmVyPTNEe2hpZ2hsaWdodGVkU2VyaWVzSW5kZXg6bnVsbH07dGhpcz0KLnBsdWdpbnMuYmFyUmVu ZGVyZXIuaGlnaGxpZ2h0Q2FudmFzPTNEbmV3IGQuanFwbG90LkdlbmVyaWNDYW52YXMoKTt0aGlz LmV2PQplbnRDYW52YXMuX2VsZW0uYmVmb3JlKHRoaXMucGx1Z2lucy5iYXJSZW5kZXJlci5oaWdo bGlnaHRDYW52YXMuY3JlYXRlRWxlbWU9Cm50KHRoaXMuX2dyaWRQYWRkaW5nLCJqcXBsb3QtYmFy UmVuZGVyZXItaGlnaGxpZ2h0LWNhbnZhcyIsdGhpcy5fcGxvdERpbWVucz0KaW9ucyx0aGlzKSk7 dGhpcy5wbHVnaW5zLmJhclJlbmRlcmVyLmhpZ2hsaWdodENhbnZhcy5zZXRDb250ZXh0KCk7dGhp cy5ldmVuPQp0Q2FudmFzLl9lbGVtLmJpbmQoIm1vdXNlbGVhdmUiLHtwbG90OnRoaXN9LGZ1bmN0 aW9uKG4pe2sobi5kYXRhLnBsb3QpfSl9ZnU9Cm5jdGlvbiBjKHUsdCxxLHApe3ZhciBvPTNEdS5z ZXJpZXNbdF07dmFyIG49M0R1LnBsdWdpbnMuYmFyUmVuZGVyZXIuaGlnaGxpZz0KaHRDYW52YXM7 bi5fY3R4LmNsZWFyUmVjdCgwLDAsbi5fY3R4LmNhbnZhcy53aWR0aCxuLl9jdHguY2FudmFzLmhl aWdodCk7by5fPQpoaWdobGlnaHRlZFBvaW50PTNEcTt1LnBsdWdpbnMuYmFyUmVuZGVyZXIuaGln aGxpZ2h0ZWRTZXJpZXNJbmRleD0zRHQ7dmFyIHI9Cj0zRHtmaWxsU3R5bGU6by5oaWdobGlnaHRD b2xvcnNbcV19O28ucmVuZGVyZXIuc2hhcGVSZW5kZXJlci5kcmF3KG4uX2N0eCxwLD0Kcik7bj0z RG51bGx9ZnVuY3Rpb24gayhwKXt2YXIgbj0zRHAucGx1Z2lucy5iYXJSZW5kZXJlci5oaWdobGln aHRDYW52YXM7bi5fPQpjdHguY2xlYXJSZWN0KDAsMCxuLl9jdHguY2FudmFzLndpZHRoLG4uX2N0 eC5jYW52YXMuaGVpZ2h0KTtmb3IodmFyIG89M0QwO289CjxwLnNlcmllcy5sZW5ndGg7bysrKXtw LnNlcmllc1tvXS5faGlnaGxpZ2h0ZWRQb2ludD0zRG51bGx9cC5wbHVnaW5zLmJhclJlbj0KZGVy ZXIuaGlnaGxpZ2h0ZWRTZXJpZXNJbmRleD0zRG51bGw7cC50YXJnZXQudHJpZ2dlcigianFwbG90 RGF0YVVuaGlnaGxpZ2h0PQoiKTtuPTNEbnVsbH1mdW5jdGlvbiBiKHIscSx1LHQscyl7aWYodCl7 dmFyIHA9M0RbdC5zZXJpZXNJbmRleCx0LnBvaW50SW5kZXg9Cix0LmRhdGFdO3ZhciBvPTNEalF1 ZXJ5LkV2ZW50KCJqcXBsb3REYXRhTW91c2VPdmVyIik7by5wYWdlWD0zRHIucGFnZVg7by5wYT0K Z2VZPTNEci5wYWdlWTtzLnRhcmdldC50cmlnZ2VyKG8scCk7aWYocy5zZXJpZXNbcFswXV0uc2hv dyYmcy5zZXJpZXNbcFswXV0uPQpoaWdobGlnaHRNb3VzZU92ZXImJiEocFswXT0zRD0zRHMucGx1 Z2lucy5iYXJSZW5kZXJlci5oaWdobGlnaHRlZFNlcmllc0luZGU9CngmJnBbMV09M0Q9M0RzLnNl cmllc1twWzBdXS5faGlnaGxpZ2h0ZWRQb2ludCkpe3ZhciBuPTNEalF1ZXJ5LkV2ZW50KCJqcXBs bz0KdERhdGFIaWdobGlnaHQiKTtuLndoaWNoPTNEci53aGljaDtuLnBhZ2VYPTNEci5wYWdlWDtu LnBhZ2VZPTNEci5wYWdlWTtzLnRhPQpyZ2V0LnRyaWdnZXIobixwKTtjKHMsdC5zZXJpZXNJbmRl eCx0LnBvaW50SW5kZXgsdC5wb2ludHMpfX1lbHNle2lmKHQ9M0Q9M0Q9Cm51bGwpe2socyl9fX1m dW5jdGlvbiBhKHEscCx0LHMscil7aWYocyl7dmFyIG89M0Rbcy5zZXJpZXNJbmRleCxzLnBvaW50 SW5kZT0KeCxzLmRhdGFdO2lmKHIuc2VyaWVzW29bMF1dLmhpZ2hsaWdodE1vdXNlRG93biYmIShv WzBdPTNEPTNEci5wbHVnaW5zLmJhclJlPQpuZGVyZXIuaGlnaGxpZ2h0ZWRTZXJpZXNJbmRleCYm b1sxXT0zRD0zRHIuc2VyaWVzW29bMF1dLl9oaWdobGlnaHRlZFBvaW50KSk9Cnt2YXIgbj0zRGpR dWVyeS5FdmVudCgianFwbG90RGF0YUhpZ2hsaWdodCIpO24ud2hpY2g9M0RxLndoaWNoO24ucGFn ZVg9M0RxLj0KcGFnZVg7bi5wYWdlWT0zRHEucGFnZVk7ci50YXJnZXQudHJpZ2dlcihuLG8pO2Mo cixzLnNlcmllc0luZGV4LHMucG9pbnRJbmRlPQp4LHMucG9pbnRzKX19ZWxzZXtpZihzPTNEPTNE bnVsbCl7ayhyKX19fWZ1bmN0aW9uIGwocCxvLHMscixxKXt2YXIgbj0zRHEucGw9CnVnaW5zLmJh clJlbmRlcmVyLmhpZ2hsaWdodGVkU2VyaWVzSW5kZXg7aWYobiE9M0RudWxsJiZxLnNlcmllc1tu XS5oaWdobGlnaD0KdE1vdXNlRG93bil7ayhxKX19ZnVuY3Rpb24gZShxLHAsdCxzLHIpe2lmKHMp e3ZhciBvPTNEW3Muc2VyaWVzSW5kZXgscy5wb2luPQp0SW5kZXgscy5kYXRhXTt2YXIgbj0zRGpR dWVyeS5FdmVudCgianFwbG90RGF0YUNsaWNrIik7bi53aGljaD0zRHEud2hpY2g7bi49CnBhZ2VY PTNEcS5wYWdlWDtuLnBhZ2VZPTNEcS5wYWdlWTtyLnRhcmdldC50cmlnZ2VyKG4sbyl9fWZ1bmN0 aW9uIG0ocixxLHUsdD0KLHMpe2lmKHQpe3ZhciBwPTNEW3Quc2VyaWVzSW5kZXgsdC5wb2ludElu ZGV4LHQuZGF0YV07dmFyIG49M0RzLnBsdWdpbnMuYmFyPQpSZW5kZXJlci5oaWdobGlnaHRlZFNl cmllc0luZGV4O2lmKG4hPTNEbnVsbCYmcy5zZXJpZXNbbl0uaGlnaGxpZ2h0TW91c2VEb3c9Cm4p e2socyl9dmFyIG89M0RqUXVlcnkuRXZlbnQoImpxcGxvdERhdGFSaWdodENsaWNrIik7by53aGlj aD0zRHIud2hpY2g7by5wYT0KZ2VYPTNEci5wYWdlWDtvLnBhZ2VZPTNEci5wYWdlWTtzLnRhcmdl dC50cmlnZ2VyKG8scCl9fX0pKGpRdWVyeSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQoK ZGlmZiAtciBkYjkyZjZlMTliMzgxODA5N2JkM2Q1YTE0OWFjZjgwY2VkOTA2NzVjIC1yIGEwZDFh OTFlMDViZWUzMmRkNWYyZmFjPQo5M2Q4MGZiZTkzNWJhOGMyOCBjb25maWcvcGx1Z2lucy92aXN1 YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL3BsdWdpbnMvanFwbG89CnQvcGx1Z2lucy9qcXBsb3Qu YmxvY2tSZW5kZXJlci5taW4uanMKLS0tIC9kZXYvbnVsbAorKysgYi9jb25maWcvcGx1Z2lucy92 aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL3BsdWdpbnMvanFwbG90L3BsdWdpbnMvanE9CnBs b3QuYmxvY2tSZW5kZXJlci5taW4uanMKQEAgLTAsMCArMSwzIEBACisvKiBqcVBsb3QgMS4wLjhy MTI1MCB8IChjKSAyMDA5LTIwMTMgQ2hyaXMgTGVvbmVsbG8gfCBqcGxvdC5jb20KKyAgIGpzRGF0 ZSB8IChjKSAyMDEwLTIwMTMgQ2hyaXMgTGVvbmVsbG8KKyAqLyhmdW5jdGlvbihhKXthLmpxcGxv dC5CbG9ja1JlbmRlcmVyPTNEZnVuY3Rpb24oKXthLmpxcGxvdC5MaW5lUmVuZGVyZXIuPQpjYWxs KHRoaXMpfTthLmpxcGxvdC5CbG9ja1JlbmRlcmVyLnByb3RvdHlwZT0zRG5ldyBhLmpxcGxvdC5M aW5lUmVuZGVyZXIoKTs9CmEuanFwbG90LkJsb2NrUmVuZGVyZXIucHJvdG90eXBlLmNvbnN0cnVj dG9yPTNEYS5qcXBsb3QuQmxvY2tSZW5kZXJlcjthLmpxcD0KbG90LkJsb2NrUmVuZGVyZXIucHJv dG90eXBlLmluaXQ9M0RmdW5jdGlvbihiKXt0aGlzLmNzcz0zRHtwYWRkaW5nOiIycHgiLGJvPQpy ZGVyOiIxcHggc29saWQgIzk5OSIsdGV4dEFsaWduOiJjZW50ZXIifTt0aGlzLmVzY2FwZUh0bWw9 M0RmYWxzZTt0aGlzLmluc2U9CnJ0QnJlYWtzPTNEdHJ1ZTt0aGlzLnZhcnlCbG9ja0NvbG9ycz0z RGZhbHNlO2EuZXh0ZW5kKHRydWUsdGhpcyxiKTtpZih0aGlzLj0KY3NzLmJhY2tncm91bmRDb2xv cil7dGhpcy5jb2xvcj0zRHRoaXMuY3NzLmJhY2tncm91bmRDb2xvcn1lbHNle2lmKHRoaXMuY3Nz PQouYmFja2dyb3VuZCl7dGhpcy5jb2xvcj0zRHRoaXMuY3NzLmJhY2tncm91bmR9ZWxzZXtpZigh dGhpcy52YXJ5QmxvY2tDb2xvcnM9Cil7dGhpcy5jc3MuYmFja2dyb3VuZD0zRHRoaXMuY29sb3J9 fX10aGlzLmNhbnZhcz0zRG5ldyBhLmpxcGxvdC5CbG9ja0NhbnZhcz0KKCk7dGhpcy5zaGFkb3dD YW52YXM9M0RuZXcgYS5qcXBsb3QuQmxvY2tDYW52YXMoKTt0aGlzLmNhbnZhcy5fcGxvdERpbWVu c2lvPQpucz0zRHRoaXMuX3Bsb3REaW1lbnNpb25zO3RoaXMuc2hhZG93Q2FudmFzLl9wbG90RGlt ZW5zaW9ucz0zRHRoaXMuX3Bsb3REaW09CmVuc2lvbnM7dGhpcy5fdHlwZT0zRCJibG9jayI7dGhp cy5tb3ZlQmxvY2s9M0RmdW5jdGlvbihsLGosaSxlKXt2YXIgYz0zRHRoaT0Kcy5jYW52YXMuX2Vs ZW0uY2hpbGRyZW4oIjplcSgiK2wrIikiKTt0aGlzLmRhdGFbbF1bMF09M0RqO3RoaXMuZGF0YVts XVsxXT0KPTNEaTt0aGlzLl9wbG90RGF0YVtsXVswXT0zRGo7dGhpcy5fcGxvdERhdGFbbF1bMV09 M0RpO3RoaXMuX3N0YWNrRGF0YVtsXVswPQpdPTNEajt0aGlzLl9zdGFja0RhdGFbbF1bMV09M0Rp O3RoaXMuZ3JpZERhdGFbbF1bMF09M0R0aGlzLl94YXhpcy5zZXJpZXNfdTI9CnAoaik7dGhpcy5n cmlkRGF0YVtsXVsxXT0zRHRoaXMuX3lheGlzLnNlcmllc191MnAoaSk7dmFyIGs9M0RjLm91dGVy V2lkdGgoKT0KO3ZhciBmPTNEYy5vdXRlckhlaWdodCgpO3ZhciBkPTNEdGhpcy5ncmlkRGF0YVts XVswXS1rLzIrInB4Ijt2YXIgZz0zRHRoaXMuPQpncmlkRGF0YVtsXVsxXS1mLzIrInB4IjtpZihl KXtpZihwYXJzZUludChlLDEwKSl7ZT0zRHBhcnNlSW50KGUsMTApfWMuYW5pbWE9CnRlKHtsZWZ0 OmQsdG9wOmd9LGUpfWVsc2V7Yy5jc3Moe2xlZnQ6ZCx0b3A6Z30pfWM9M0RudWxsfX07YS5qcXBs b3QuQmxvY2tSZT0KbmRlcmVyLnByb3RvdHlwZS5kcmF3PTNEZnVuY3Rpb24ocSxvLHIpe2lmKHRo aXMucGx1Z2lucy5wb2ludExhYmVscyl7dGhpcy5wPQpsdWdpbnMucG9pbnRMYWJlbHMuc2hvdz0z RGZhbHNlfXZhciBmLGMsbCxvLHAsayxuLGcsZSxtO3ZhciBiPTNEKHIhPTNEdW5kZWY9CmluZWQp P3I6e307dmFyIGo9M0RuZXcgYS5qcXBsb3QuQ29sb3JHZW5lcmF0b3IodGhpcy5zZXJpZXNDb2xv cnMpO3RoaXMuY2Fudj0KYXMuX2VsZW0uZW1wdHkoKTtmb3IoZj0zRDA7Zjx0aGlzLmdyaWREYXRh Lmxlbmd0aDtmKyspe2w9M0R0aGlzLmRhdGFbZl07bz0KPTNEdGhpcy5ncmlkRGF0YVtmXTtwPTNE IiI7az0zRHt9O2lmKHR5cGVvZiBsWzJdPTNEPTNEInN0cmluZyIpe3A9M0RsWzJdfWVsPQpzZXtp Zih0eXBlb2YgbFsyXT0zRD0zRCJvYmplY3QiKXtrPTNEbFsyXX19aWYodHlwZW9mIGxbM109M0Q9 M0Qib2JqZWN0Iil7az0KPTNEbFszXX1pZih0aGlzLmluc2VydEJyZWFrcyl7cD0zRHAucmVwbGFj ZSgvIC9nLCI8YnIgLz4iKX1rPTNEYS5leHRlbmQodHJ1PQplLHt9LHRoaXMuY3NzLGspO2M9M0Rh KCc8ZGl2IHN0eWxlPTNEInBvc2l0aW9uOmFic29sdXRlO21hcmdpbi1sZWZ0OmF1dG87bWE9CnJn aW4tcmlnaHQ6YXV0bzsiPjwvZGl2PicpO3RoaXMuY2FudmFzLl9lbGVtLmFwcGVuZChjKTt0aGlz LmVzY2FwZUh0bWw/Yy50ZT0KeHQocCk6Yy5odG1sKHApO2RlbGV0ZSBrLnBvc2l0aW9uO2RlbGV0 ZSBrLm1hcmdpblJpZ2h0O2RlbGV0ZSBrLm1hcmdpbkxlZnQ7PQppZighay5iYWNrZ3JvdW5kJiYh ay5iYWNrZ3JvdW5kQ29sb3ImJiFrLmJhY2tncm91bmRJbWFnZSl7ay5iYWNrZ3JvdW5kPTNEai49 Cm5leHQoKX1jLmNzcyhrKTtuPTNEYy5vdXRlcldpZHRoKCk7Zz0zRGMub3V0ZXJIZWlnaHQoKTtl PTNEb1swXS1uLzIrInB4IjttPQo9M0RvWzFdLWcvMisicHgiO2MuY3NzKHtsZWZ0OmUsdG9wOm19 KTtjPTNEbnVsbH19O2EuanFwbG90LkJsb2NrQ2FudmFzPTNEZnU9Cm5jdGlvbigpe2EuanFwbG90 LkVsZW1Db250YWluZXIuY2FsbCh0aGlzKTt0aGlzLl9jdHh9O2EuanFwbG90LkJsb2NrQ2FudmFz Lj0KcHJvdG90eXBlPTNEbmV3IGEuanFwbG90LkVsZW1Db250YWluZXIoKTthLmpxcGxvdC5CbG9j a0NhbnZhcy5wcm90b3R5cGUuY29uPQpzdHJ1Y3Rvcj0zRGEuanFwbG90LkJsb2NrQ2FudmFzO2Eu anFwbG90LkJsb2NrQ2FudmFzLnByb3RvdHlwZS5jcmVhdGVFbGVtZW49CnQ9M0RmdW5jdGlvbihp LGUsYyl7dGhpcy5fb2Zmc2V0cz0zRGk7dmFyIGI9M0QianFwbG90LWJsb2NrQ2FudmFzIjtpZihl IT0zRD0KdW5kZWZpbmVkKXtiPTNEZX12YXIgZztpZih0aGlzLl9lbGVtKXtnPTNEdGhpcy5fZWxl bS5nZXQoMCl9ZWxzZXtnPTNEZG9jdW1lPQpudC5jcmVhdGVFbGVtZW50KCJkaXYiKX1pZihjIT0z RHVuZGVmaW5lZCl7dGhpcy5fcGxvdERpbWVuc2lvbnM9M0RjfXZhciBkPQo9M0R0aGlzLl9wbG90 RGltZW5zaW9ucy53aWR0aC10aGlzLl9vZmZzZXRzLmxlZnQtdGhpcy5fb2Zmc2V0cy5yaWdodCsi cHgiO3Y9CmFyIGY9M0R0aGlzLl9wbG90RGltZW5zaW9ucy5oZWlnaHQtdGhpcy5fb2Zmc2V0cy50 b3AtdGhpcy5fb2Zmc2V0cy5ib3R0b20rIj0KcHgiO3RoaXMuX2VsZW09M0RhKGcpO3RoaXMuX2Vs ZW0uY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLHdpZHRoOmQsaGVpZ2h0OmYsPQpsZWZ0OnRoaXMu X29mZnNldHMubGVmdCx0b3A6dGhpcy5fb2Zmc2V0cy50b3B9KTt0aGlzLl9lbGVtLmFkZENsYXNz KGIpO3JldHU9CnJuIHRoaXMuX2VsZW19O2EuanFwbG90LkJsb2NrQ2FudmFzLnByb3RvdHlwZS5z ZXRDb250ZXh0PTNEZnVuY3Rpb24oKXt0aGlzLj0KX2N0eD0zRHtjYW52YXM6e3dpZHRoOjAsaGVp Z2h0OjB9LGNsZWFyUmVjdDpmdW5jdGlvbigpe3JldHVybiBudWxsfX07cmV0dXJuPQogdGhpcy5f Y3R4fX0pKGpRdWVyeSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQoKZGlmZiAtciBkYjky ZjZlMTliMzgxODA5N2JkM2Q1YTE0OWFjZjgwY2VkOTA2NzVjIC1yIGEwZDFhOTFlMDViZWUzMmRk NWYyZmFjPQo5M2Q4MGZiZTkzNWJhOGMyOCBjb25maWcvcGx1Z2lucy92aXN1YWxpemF0aW9ucy9j aGFydHMvc3RhdGljL3BsdWdpbnMvanFwbG89CnQvcGx1Z2lucy9qcXBsb3QuY2FudmFzQXhpc0xh YmVsUmVuZGVyZXIubWluLmpzCi0tLSAvZGV2L251bGwKKysrIGIvY29uZmlnL3BsdWdpbnMvdmlz dWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy9wbHVnaW5zL2pxcGxvdC9wbHVnaW5zL2pxPQpwbG90 LmNhbnZhc0F4aXNMYWJlbFJlbmRlcmVyLm1pbi5qcwpAQCAtMCwwICsxLDMgQEAKKy8qIGpxUGxv dCAxLjAuOHIxMjUwIHwgKGMpIDIwMDktMjAxMyBDaHJpcyBMZW9uZWxsbyB8IGpwbG90LmNvbQor ICAganNEYXRlIHwgKGMpIDIwMTAtMjAxMyBDaHJpcyBMZW9uZWxsbworICovKGZ1bmN0aW9uKGEp e2EuanFwbG90LkNhbnZhc0F4aXNMYWJlbFJlbmRlcmVyPTNEZnVuY3Rpb24oYil7dGhpcy5hbmds ZT0KPTNEMDt0aGlzLmF4aXM7dGhpcy5zaG93PTNEdHJ1ZTt0aGlzLnNob3dMYWJlbD0zRHRydWU7 dGhpcy5sYWJlbD0zRCIiO3RoaXMuPQpmb250RmFtaWx5PTNEJyJUcmVidWNoZXQgTVMiLCBBcmlh bCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmJzt0aGlzLmZvbnRTaXplPQo9M0QiMTFwdCI7dGhpcy5m b250V2VpZ2h0PTNEIm5vcm1hbCI7dGhpcy5mb250U3RyZXRjaD0zRDE7dGhpcy50ZXh0Q29sb3I9 M0Q9CiIjNjY2NjY2Ijt0aGlzLmVuYWJsZUZvbnRTdXBwb3J0PTNEdHJ1ZTt0aGlzLnB0MnB4PTNE bnVsbDt0aGlzLl9lbGVtO3RoaXMuXz0KY3R4O3RoaXMuX3Bsb3RXaWR0aDt0aGlzLl9wbG90SGVp Z2h0O3RoaXMuX3Bsb3REaW1lbnNpb25zPTNEe2hlaWdodDpudWxsLHdpPQpkdGg6bnVsbH07YS5l eHRlbmQodHJ1ZSx0aGlzLGIpO2lmKGIuYW5nbGU9M0Q9M0RudWxsJiZ0aGlzLmF4aXMhPTNEInhh eGlzIiY9CiZ0aGlzLmF4aXMhPTNEIngyYXhpcyIpe3RoaXMuYW5nbGU9M0QtOTB9dmFyIGM9M0R7 Zm9udFNpemU6dGhpcy5mb250U2l6ZSxmbz0KbnRXZWlnaHQ6dGhpcy5mb250V2VpZ2h0LGZvbnRT dHJldGNoOnRoaXMuZm9udFN0cmV0Y2gsZmlsbFN0eWxlOnRoaXMudGV4dENvPQpsb3IsYW5nbGU6 dGhpcy5nZXRBbmdsZVJhZCgpLGZvbnRGYW1pbHk6dGhpcy5mb250RmFtaWx5fTtpZih0aGlzLnB0 MnB4KXtjLnA9CnQycHg9M0R0aGlzLnB0MnB4fWlmKHRoaXMuZW5hYmxlRm9udFN1cHBvcnQpe2lm KGEuanFwbG90LnN1cHBvcnRfY2FudmFzX3RleD0KdCgpKXt0aGlzLl90ZXh0UmVuZGVyZXI9M0Ru ZXcgYS5qcXBsb3QuQ2FudmFzRm9udFJlbmRlcmVyKGMpfWVsc2V7dGhpcy5fdGV4PQp0UmVuZGVy ZXI9M0RuZXcgYS5qcXBsb3QuQ2FudmFzVGV4dFJlbmRlcmVyKGMpfX1lbHNle3RoaXMuX3RleHRS ZW5kZXJlcj0zRG49CmV3IGEuanFwbG90LkNhbnZhc1RleHRSZW5kZXJlcihjKX19O2EuanFwbG90 LkNhbnZhc0F4aXNMYWJlbFJlbmRlcmVyLnByb3RvdD0KeXBlLmluaXQ9M0RmdW5jdGlvbihiKXth LmV4dGVuZCh0cnVlLHRoaXMsYik7dGhpcy5fdGV4dFJlbmRlcmVyLmluaXQoe2ZvbnRTPQppemU6 dGhpcy5mb250U2l6ZSxmb250V2VpZ2h0OnRoaXMuZm9udFdlaWdodCxmb250U3RyZXRjaDp0aGlz LmZvbnRTdHJldGNoLGY9CmlsbFN0eWxlOnRoaXMudGV4dENvbG9yLGFuZ2xlOnRoaXMuZ2V0QW5n bGVSYWQoKSxmb250RmFtaWx5OnRoaXMuZm9udEZhbWlseT0KfSl9O2EuanFwbG90LkNhbnZhc0F4 aXNMYWJlbFJlbmRlcmVyLnByb3RvdHlwZS5nZXRXaWR0aD0zRGZ1bmN0aW9uKGQpe2lmKHRoPQpp cy5fZWxlbSl7cmV0dXJuIHRoaXMuX2VsZW0ub3V0ZXJXaWR0aCh0cnVlKX1lbHNle3ZhciBmPTNE dGhpcy5fdGV4dFJlbmRlcmU9CnI7dmFyIGM9M0RmLmdldFdpZHRoKGQpO3ZhciBlPTNEZi5nZXRI ZWlnaHQoZCk7dmFyIGI9M0RNYXRoLmFicyhNYXRoLnNpbihmLj0KYW5nbGUpKmUpK01hdGguYWJz KE1hdGguY29zKGYuYW5nbGUpKmMpO3JldHVybiBifX07YS5qcXBsb3QuQ2FudmFzQXhpc0xhYmVs PQpSZW5kZXJlci5wcm90b3R5cGUuZ2V0SGVpZ2h0PTNEZnVuY3Rpb24oZCl7aWYodGhpcy5fZWxl bSl7cmV0dXJuIHRoaXMuX2VsZW09Ci5vdXRlckhlaWdodCh0cnVlKX1lbHNle3ZhciBmPTNEdGhp cy5fdGV4dFJlbmRlcmVyO3ZhciBjPTNEZi5nZXRXaWR0aChkKTt2YT0KciBlPTNEZi5nZXRIZWln aHQoZCk7dmFyIGI9M0RNYXRoLmFicyhNYXRoLmNvcyhmLmFuZ2xlKSplKStNYXRoLmFicyhNYXRo LnNpPQpuKGYuYW5nbGUpKmMpO3JldHVybiBifX07YS5qcXBsb3QuQ2FudmFzQXhpc0xhYmVsUmVu ZGVyZXIucHJvdG90eXBlLmdldEFuZ2w9CmVSYWQ9M0RmdW5jdGlvbigpe3ZhciBiPTNEdGhpcy5h bmdsZSpNYXRoLlBJLzE4MDtyZXR1cm4gYn07YS5qcXBsb3QuQ2FudmFzQT0KeGlzTGFiZWxSZW5k ZXJlci5wcm90b3R5cGUuZHJhdz0zRGZ1bmN0aW9uKGMsZil7aWYodGhpcy5fZWxlbSl7aWYoYS5q cXBsb3QuPQp1c2VfZXhjYW52YXMmJndpbmRvdy5HX3ZtbENhbnZhc01hbmFnZXIudW5pbml0RWxl bWVudCE9M0Q9M0R1bmRlZmluZWQpe3dpbmQ9Cm93Lkdfdm1sQ2FudmFzTWFuYWdlci51bmluaXRF bGVtZW50KHRoaXMuX2VsZW0uZ2V0KDApKX10aGlzLl9lbGVtLmVtcHR5Rm9yYz0KZSgpO3RoaXMu X2VsZW09M0RudWxsfXZhciBlPTNEZi5jYW52YXNNYW5hZ2VyLmdldENhbnZhcygpO3RoaXMuX3Rl eHRSZW5kZXJlPQpyLnNldFRleHQodGhpcy5sYWJlbCxjKTt2YXIgYj0zRHRoaXMuZ2V0V2lkdGgo Yyk7dmFyIGQ9M0R0aGlzLmdldEhlaWdodChjKTs9CmUud2lkdGg9M0RiO2UuaGVpZ2h0PTNEZDtl LnN0eWxlLndpZHRoPTNEYjtlLnN0eWxlLmhlaWdodD0zRGQ7ZT0zRGYuY2FudmFzTT0KYW5hZ2Vy LmluaXRDYW52YXMoZSk7dGhpcy5fZWxlbT0zRGEoZSk7dGhpcy5fZWxlbS5jc3Moe3Bvc2l0aW9u OiJhYnNvbHV0ZSJ9PQopO3RoaXMuX2VsZW0uYWRkQ2xhc3MoImpxcGxvdC0iK3RoaXMuYXhpcysi LWxhYmVsIik7ZT0zRG51bGw7cmV0dXJuIHRoaXMuX2U9CmxlbX07YS5qcXBsb3QuQ2FudmFzQXhp c0xhYmVsUmVuZGVyZXIucHJvdG90eXBlLnBhY2s9M0RmdW5jdGlvbigpe3RoaXMuX3RleD0KdFJl bmRlcmVyLmRyYXcodGhpcy5fZWxlbS5nZXQoMCkuZ2V0Q29udGV4dCgiMmQiKSx0aGlzLmxhYmVs KX19KShqUXVlcnkpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKCmRpZmYgLXIgZGI5MmY2 ZTE5YjM4MTgwOTdiZDNkNWExNDlhY2Y4MGNlZDkwNjc1YyAtciBhMGQxYTkxZTA1YmVlMzJkZDVm MmZhYz0KOTNkODBmYmU5MzViYThjMjggY29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hh cnRzL3N0YXRpYy9wbHVnaW5zL2pxcGxvPQp0L3BsdWdpbnMvanFwbG90LmNhbnZhc0F4aXNUaWNr UmVuZGVyZXIubWluLmpzCi0tLSAvZGV2L251bGwKKysrIGIvY29uZmlnL3BsdWdpbnMvdmlzdWFs aXphdGlvbnMvY2hhcnRzL3N0YXRpYy9wbHVnaW5zL2pxcGxvdC9wbHVnaW5zL2pxPQpwbG90LmNh bnZhc0F4aXNUaWNrUmVuZGVyZXIubWluLmpzCkBAIC0wLDAgKzEsMyBAQAorLyoganFQbG90IDEu MC44cjEyNTAgfCAoYykgMjAwOS0yMDEzIENocmlzIExlb25lbGxvIHwganBsb3QuY29tCisgICBq c0RhdGUgfCAoYykgMjAxMC0yMDEzIENocmlzIExlb25lbGxvCisgKi8oZnVuY3Rpb24oYSl7YS5q cXBsb3QuQ2FudmFzQXhpc1RpY2tSZW5kZXJlcj0zRGZ1bmN0aW9uKGIpe3RoaXMubWFyaz0zRD0K Im91dHNpZGUiO3RoaXMuc2hvd01hcms9M0R0cnVlO3RoaXMuc2hvd0dyaWRsaW5lPTNEdHJ1ZTt0 aGlzLmlzTWlub3JUaWNrPTNEPQpmYWxzZTt0aGlzLmFuZ2xlPTNEMDt0aGlzLm1hcmtTaXplPTNE NDt0aGlzLnNob3c9M0R0cnVlO3RoaXMuc2hvd0xhYmVsPTNEdHI9CnVlO3RoaXMubGFiZWxQb3Np dGlvbj0zRCJhdXRvIjt0aGlzLmxhYmVsPTNEIiI7dGhpcy52YWx1ZT0zRG51bGw7dGhpcy5fc3R5 bD0KZXM9M0R7fTt0aGlzLmZvcm1hdHRlcj0zRGEuanFwbG90LkRlZmF1bHRUaWNrRm9ybWF0dGVy O3RoaXMuZm9ybWF0U3RyaW5nPTNEPQoiIjt0aGlzLnByZWZpeD0zRCIiO3RoaXMuZm9udEZhbWls eT0zRCciVHJlYnVjaGV0IE1TIiwgQXJpYWwsIEhlbHZldGljYSwgc2E9Cm5zLXNlcmlmJzt0aGlz LmZvbnRTaXplPTNEIjEwcHQiO3RoaXMuZm9udFdlaWdodD0zRCJub3JtYWwiO3RoaXMuZm9udFN0 cmV0Yz0KaD0zRDE7dGhpcy50ZXh0Q29sb3I9M0QiIzY2NjY2NiI7dGhpcy5lbmFibGVGb250U3Vw cG9ydD0zRHRydWU7dGhpcy5wdDJweD0KPTNEbnVsbDt0aGlzLl9lbGVtO3RoaXMuX2N0eDt0aGlz Ll9wbG90V2lkdGg7dGhpcy5fcGxvdEhlaWdodDt0aGlzLl9wbG90RGltPQplbnNpb25zPTNEe2hl aWdodDpudWxsLHdpZHRoOm51bGx9O2EuZXh0ZW5kKHRydWUsdGhpcyxiKTt2YXIgYz0zRHtmb250 U2l6ZTo9CnRoaXMuZm9udFNpemUsZm9udFdlaWdodDp0aGlzLmZvbnRXZWlnaHQsZm9udFN0cmV0 Y2g6dGhpcy5mb250U3RyZXRjaCxmaWxsUz0KdHlsZTp0aGlzLnRleHRDb2xvcixhbmdsZTp0aGlz LmdldEFuZ2xlUmFkKCksZm9udEZhbWlseTp0aGlzLmZvbnRGYW1pbHl9O2lmPQoodGhpcy5wdDJw eCl7Yy5wdDJweD0zRHRoaXMucHQycHh9aWYodGhpcy5lbmFibGVGb250U3VwcG9ydCl7aWYoYS5q cXBsb3Quc3U9CnBwb3J0X2NhbnZhc190ZXh0KCkpe3RoaXMuX3RleHRSZW5kZXJlcj0zRG5ldyBh LmpxcGxvdC5DYW52YXNGb250UmVuZGVyZXIoYz0KKX1lbHNle3RoaXMuX3RleHRSZW5kZXJlcj0z RG5ldyBhLmpxcGxvdC5DYW52YXNUZXh0UmVuZGVyZXIoYyl9fWVsc2V7dGhpcy5fPQp0ZXh0UmVu ZGVyZXI9M0RuZXcgYS5qcXBsb3QuQ2FudmFzVGV4dFJlbmRlcmVyKGMpfX07YS5qcXBsb3QuQ2Fu dmFzQXhpc1RpY2s9ClJlbmRlcmVyLnByb3RvdHlwZS5pbml0PTNEZnVuY3Rpb24oYil7YS5leHRl bmQodHJ1ZSx0aGlzLGIpO3RoaXMuX3RleHRSZW5kZT0KcmVyLmluaXQoe2ZvbnRTaXplOnRoaXMu Zm9udFNpemUsZm9udFdlaWdodDp0aGlzLmZvbnRXZWlnaHQsZm9udFN0cmV0Y2g6dGhpPQpzLmZv bnRTdHJldGNoLGZpbGxTdHlsZTp0aGlzLnRleHRDb2xvcixhbmdsZTp0aGlzLmdldEFuZ2xlUmFk KCksZm9udEZhbWlseTo9CnRoaXMuZm9udEZhbWlseX0pfTthLmpxcGxvdC5DYW52YXNBeGlzVGlj a1JlbmRlcmVyLnByb3RvdHlwZS5nZXRXaWR0aD0zRGZ1bj0KY3Rpb24oZCl7aWYodGhpcy5fZWxl bSl7cmV0dXJuIHRoaXMuX2VsZW0ub3V0ZXJXaWR0aCh0cnVlKX1lbHNle3ZhciBmPTNEdGhpPQpz Ll90ZXh0UmVuZGVyZXI7dmFyIGM9M0RmLmdldFdpZHRoKGQpO3ZhciBlPTNEZi5nZXRIZWlnaHQo ZCk7dmFyIGI9M0RNYXRoLmE9CmJzKE1hdGguc2luKGYuYW5nbGUpKmUpK01hdGguYWJzKE1hdGgu Y29zKGYuYW5nbGUpKmMpO3JldHVybiBifX07YS5qcXBsb3QuQz0KYW52YXNBeGlzVGlja1JlbmRl cmVyLnByb3RvdHlwZS5nZXRIZWlnaHQ9M0RmdW5jdGlvbihkKXtpZih0aGlzLl9lbGVtKXtyZXR1 PQpybiB0aGlzLl9lbGVtLm91dGVySGVpZ2h0KHRydWUpfWVsc2V7dmFyIGY9M0R0aGlzLl90ZXh0 UmVuZGVyZXI7dmFyIGM9M0RmLmc9CmV0V2lkdGgoZCk7dmFyIGU9M0RmLmdldEhlaWdodChkKTt2 YXIgYj0zRE1hdGguYWJzKE1hdGguY29zKGYuYW5nbGUpKmUpK01hdD0KaC5hYnMoTWF0aC5zaW4o Zi5hbmdsZSkqYyk7cmV0dXJuIGJ9fTthLmpxcGxvdC5DYW52YXNBeGlzVGlja1JlbmRlcmVyLnBy b3RvPQp0eXBlLmdldFRvcD0zRGZ1bmN0aW9uKGIpe2lmKHRoaXMuX2VsZW0pe3JldHVybiB0aGlz Ll9lbGVtLnBvc2l0aW9uKCkudG9wfWU9CmxzZXtyZXR1cm4gbnVsbH19O2EuanFwbG90LkNhbnZh c0F4aXNUaWNrUmVuZGVyZXIucHJvdG90eXBlLmdldEFuZ2xlUmFkPTNEZj0KdW5jdGlvbigpe3Zh ciBiPTNEdGhpcy5hbmdsZSpNYXRoLlBJLzE4MDtyZXR1cm4gYn07YS5qcXBsb3QuQ2FudmFzQXhp c1RpY2tSPQplbmRlcmVyLnByb3RvdHlwZS5zZXRUaWNrPTNEZnVuY3Rpb24oYixkLGMpe3RoaXMu dmFsdWU9M0RiO2lmKGMpe3RoaXMuaXNNaW49Cm9yVGljaz0zRHRydWV9cmV0dXJuIHRoaXN9O2Eu anFwbG90LkNhbnZhc0F4aXNUaWNrUmVuZGVyZXIucHJvdG90eXBlLmRyYXc9Cj0zRGZ1bmN0aW9u KGMsZil7aWYoIXRoaXMubGFiZWwpe3RoaXMubGFiZWw9M0R0aGlzLnByZWZpeCt0aGlzLmZvcm1h dHRlcih0aD0KaXMuZm9ybWF0U3RyaW5nLHRoaXMudmFsdWUpfWlmKHRoaXMuX2VsZW0pe2lmKGEu anFwbG90LnVzZV9leGNhbnZhcyYmd2luZG93PQouR192bWxDYW52YXNNYW5hZ2VyLnVuaW5pdEVs ZW1lbnQhPTNEPTNEdW5kZWZpbmVkKXt3aW5kb3cuR192bWxDYW52YXNNYW5hZ2U9CnIudW5pbml0 RWxlbWVudCh0aGlzLl9lbGVtLmdldCgwKSl9dGhpcy5fZWxlbS5lbXB0eUZvcmNlKCk7dGhpcy5f ZWxlbT0zRG51bD0KbH12YXIgZT0zRGYuY2FudmFzTWFuYWdlci5nZXRDYW52YXMoKTt0aGlzLl90 ZXh0UmVuZGVyZXIuc2V0VGV4dCh0aGlzLmxhYmVsPQosYyk7dmFyIGI9M0R0aGlzLmdldFdpZHRo KGMpO3ZhciBkPTNEdGhpcy5nZXRIZWlnaHQoYyk7ZS53aWR0aD0zRGI7ZS5oZWlnaHQ9Cj0zRGQ7 ZS5zdHlsZS53aWR0aD0zRGI7ZS5zdHlsZS5oZWlnaHQ9M0RkO2Uuc3R5bGUudGV4dEFsaWduPTNE ImxlZnQiO2Uuc3R5bD0KZS5wb3NpdGlvbj0zRCJhYnNvbHV0ZSI7ZT0zRGYuY2FudmFzTWFuYWdl ci5pbml0Q2FudmFzKGUpO3RoaXMuX2VsZW09M0RhKGUpPQo7dGhpcy5fZWxlbS5jc3ModGhpcy5f c3R5bGVzKTt0aGlzLl9lbGVtLmFkZENsYXNzKCJqcXBsb3QtIit0aGlzLmF4aXMrIi10aWM9Cmsi KTtlPTNEbnVsbDtyZXR1cm4gdGhpcy5fZWxlbX07YS5qcXBsb3QuQ2FudmFzQXhpc1RpY2tSZW5k ZXJlci5wcm90b3R5cGUucD0KYWNrPTNEZnVuY3Rpb24oKXt0aGlzLl90ZXh0UmVuZGVyZXIuZHJh dyh0aGlzLl9lbGVtLmdldCgwKS5nZXRDb250ZXh0KCIyZCIpPQosdGhpcy5sYWJlbCl9fSkoalF1 ZXJ5KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCgpkaWZmIC1yIGRiOTJmNmUxOWIzODE4 MDk3YmQzZDVhMTQ5YWNmODBjZWQ5MDY3NWMgLXIgYTBkMWE5MWUwNWJlZTMyZGQ1ZjJmYWM9Cjkz ZDgwZmJlOTM1YmE4YzI4IGNvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9zdGF0 aWMvcGx1Z2lucy9qcXBsbz0KdC9wbHVnaW5zL2pxcGxvdC5jYW52YXNPdmVybGF5Lm1pbi5qcwot LS0gL2Rldi9udWxsCisrKyBiL2NvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9z dGF0aWMvcGx1Z2lucy9qcXBsb3QvcGx1Z2lucy9qcT0KcGxvdC5jYW52YXNPdmVybGF5Lm1pbi5q cwpAQCAtMCwwICsxLDMgQEAKKy8qIGpxUGxvdCAxLjAuOHIxMjUwIHwgKGMpIDIwMDktMjAxMyBD aHJpcyBMZW9uZWxsbyB8IGpwbG90LmNvbQorICAganNEYXRlIHwgKGMpIDIwMTAtMjAxMyBDaHJp cyBMZW9uZWxsbworICovKGZ1bmN0aW9uKGQpe3ZhciBmPTNEMDtkLmpxcGxvdC5DYW52YXNPdmVy bGF5PTNEZnVuY3Rpb24ocSl7dmFyIG89M0RxfHw9Cnt9O3RoaXMub3B0aW9ucz0zRHtzaG93OmQu anFwbG90LmNvbmZpZy5lbmFibGVQbHVnaW5zLGRlZmVyRHJhdzpmYWxzZX07dGhpcz0KLm9iamVj dHM9M0RbXTt0aGlzLm9iamVjdE5hbWVzPTNEW107dGhpcy5jYW52YXM9M0RudWxsO3RoaXMubWFy a2VyUmVuZGVyZXI9Cj0zRG5ldyBkLmpxcGxvdC5NYXJrZXJSZW5kZXJlcih7c3R5bGU6ImxpbmUi fSk7dGhpcy5tYXJrZXJSZW5kZXJlci5pbml0KCk7dD0KaGlzLmhpZ2hsaWdodE9iamVjdEluZGV4 PTNEbnVsbDtpZihvLm9iamVjdHMpe3ZhciBzPTNEby5vYmplY3RzLHI7Zm9yKHZhciBwPQo9M0Qw O3A8cy5sZW5ndGg7cCsrKXtyPTNEc1twXTtmb3IodmFyIHQgaW4gcil7c3dpdGNoKHQpe2Nhc2Ui bGluZSI6dGhpcy5hZGQ9CkxpbmUoclt0XSk7YnJlYWs7Y2FzZSJob3Jpem9udGFsTGluZSI6dGhp cy5hZGRIb3Jpem9udGFsTGluZShyW3RdKTticmVhaztjYT0Kc2UiZGFzaGVkSG9yaXpvbnRhbExp bmUiOnRoaXMuYWRkRGFzaGVkSG9yaXpvbnRhbExpbmUoclt0XSk7YnJlYWs7Y2FzZSJ2ZXJ0PQpp Y2FsTGluZSI6dGhpcy5hZGRWZXJ0aWNhbExpbmUoclt0XSk7YnJlYWs7Y2FzZSJkYXNoZWRWZXJ0 aWNhbExpbmUiOnRoaXMuYWQ9CmREYXNoZWRWZXJ0aWNhbExpbmUoclt0XSk7YnJlYWs7Y2FzZSJy ZWN0YW5nbGUiOnRoaXMuYWRkUmVjdGFuZ2xlKHJbdF0pO2JyZT0KYWs7ZGVmYXVsdDpicmVha319 fX1kLmV4dGVuZCh0cnVlLHRoaXMub3B0aW9ucyxvKX07ZC5qcXBsb3QuQ2FudmFzT3ZlcmxheS5w PQpvc3RQbG90SW5pdD0zRGZ1bmN0aW9uKHEscCxvKXt2YXIgbj0zRG98fHt9O3RoaXMucGx1Z2lu cy5jYW52YXNPdmVybGF5PTNEbmU9CncgZC5qcXBsb3QuQ2FudmFzT3ZlcmxheShuLmNhbnZhc092 ZXJsYXkpfTtmdW5jdGlvbiBpKCl7dGhpcy51aWQ9M0RudWxsO3RoaT0Kcy50eXBlPTNEbnVsbDt0 aGlzLmdyaWRTdGFydD0zRG51bGw7dGhpcy5ncmlkU3RvcD0zRG51bGw7dGhpcy50b29sdGlwV2lk dGhGPQphY3Rvcj0zRDA7dGhpcy5vcHRpb25zPTNEe25hbWU6bnVsbCxzaG93OnRydWUsbGluZVdp ZHRoOjIsbGluZUNhcDoicm91bmQiLGM9Cm9sb3I6IiM2NjY2NjYiLHNoYWRvdzp0cnVlLHNoYWRv d0FuZ2xlOjQ1LHNoYWRvd09mZnNldDoxLHNoYWRvd0RlcHRoOjMsc2hhZD0Kb3dBbHBoYToiMC4w NyIseGF4aXM6InhheGlzIix5YXhpczoieWF4aXMiLHNob3dUb29sdGlwOmZhbHNlLHNob3dUb29s dGlwUHJlPQpjaXNpb246MC42LHRvb2x0aXBMb2NhdGlvbjoibnciLGZhZGVUb29sdGlwOnRydWUs dG9vbHRpcEZhZGVTcGVlZDoiZmFzdCIsdG89Cm9sdGlwT2Zmc2V0OjQsdG9vbHRpcEZvcm1hdFN0 cmluZzoiJWQsICVkIn19ZnVuY3Rpb24gbShuKXtpLmNhbGwodGhpcyk7dGhpcz0KLnR5cGU9M0Qi cmVjdGFuZ2xlIjt2YXIgbz0zRHt4bWluOm51bGwseG1heDpudWxsLHhPZmZzZXQ6IjZweCIseG1p bk9mZnNldDpuPQp1bGwseG1heE9mZnNldDpudWxsLHltaW46bnVsbCx5bWF4Om51bGwseU9mZnNl dDoiNnB4Iix5bWluT2Zmc2V0Om51bGwseW1heE89CmZmc2V0Om51bGx9O2QuZXh0ZW5kKHRydWUs dGhpcy5vcHRpb25zLG8sbik7aWYodGhpcy5vcHRpb25zLnNob3dUb29sdGlwUHJlYz0KaXNpb248 MC4wMSl7dGhpcy5vcHRpb25zLnNob3dUb29sdGlwUHJlY2lzaW9uPTNEMC4wMX19bS5wcm90b3R5 cGU9M0RuZXcgaSgpPQo7bS5wcm90b3R5cGUuY29uc3RydWN0b3I9M0RtO2Z1bmN0aW9uIGIobil7 aS5jYWxsKHRoaXMpO3RoaXMudHlwZT0zRCJsaW5lIjs9CnZhciBvPTNEe3N0YXJ0OltdLHN0b3A6 W119O2QuZXh0ZW5kKHRydWUsdGhpcy5vcHRpb25zLG8sbik7aWYodGhpcy5vcHRpb25zLj0Kc2hv d1Rvb2x0aXBQcmVjaXNpb248MC4wMSl7dGhpcy5vcHRpb25zLnNob3dUb29sdGlwUHJlY2lzaW9u PTNEMC4wMX19Yi5wcm90PQpvdHlwZT0zRG5ldyBpKCk7Yi5wcm90b3R5cGUuY29uc3RydWN0b3I9 M0RiO2Z1bmN0aW9uIGUobil7aS5jYWxsKHRoaXMpO3RoaXM9Ci50eXBlPTNEImhvcml6b250YWxM aW5lIjt2YXIgbz0zRHt5Om51bGwseG1pbjpudWxsLHhtYXg6bnVsbCx4T2Zmc2V0OiI2cHgiLD0K eG1pbk9mZnNldDpudWxsLHhtYXhPZmZzZXQ6bnVsbH07ZC5leHRlbmQodHJ1ZSx0aGlzLm9wdGlv bnMsbyxuKTtpZih0aGlzLm9wPQp0aW9ucy5zaG93VG9vbHRpcFByZWNpc2lvbjwwLjAxKXt0aGlz Lm9wdGlvbnMuc2hvd1Rvb2x0aXBQcmVjaXNpb249M0QwLjAxfX09CmUucHJvdG90eXBlPTNEbmV3 IGkoKTtlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj0zRGU7ZnVuY3Rpb24gaihuKXtpLmNhbGwodGhp cz0KKTt0aGlzLnR5cGU9M0QiZGFzaGVkSG9yaXpvbnRhbExpbmUiO3ZhciBvPTNEe3k6bnVsbCx4 bWluOm51bGwseG1heDpudWxsLHhPPQpmZnNldDoiNnB4Iix4bWluT2Zmc2V0Om51bGwseG1heE9m ZnNldDpudWxsLGRhc2hQYXR0ZXJuOls4LDhdfTtkLmV4dGVuZCh0cnU9CmUsdGhpcy5vcHRpb25z LG8sbik7aWYodGhpcy5vcHRpb25zLnNob3dUb29sdGlwUHJlY2lzaW9uPDAuMDEpe3RoaXMub3B0 aW9ucz0KLnNob3dUb29sdGlwUHJlY2lzaW9uPTNEMC4wMX19ai5wcm90b3R5cGU9M0RuZXcgaSgp O2oucHJvdG90eXBlLmNvbnN0cnVjdG9yPQo9M0RqO2Z1bmN0aW9uIGMobil7aS5jYWxsKHRoaXMp O3RoaXMudHlwZT0zRCJ2ZXJ0aWNhbExpbmUiO3ZhciBvPTNEe3g6bnVsbCw9CnltaW46bnVsbCx5 bWF4Om51bGwseU9mZnNldDoiNnB4Iix5bWluT2Zmc2V0Om51bGwseW1heE9mZnNldDpudWxsfTtk LmV4dGVuZD0KKHRydWUsdGhpcy5vcHRpb25zLG8sbik7aWYodGhpcy5vcHRpb25zLnNob3dUb29s dGlwUHJlY2lzaW9uPDAuMDEpe3RoaXMub3B0PQppb25zLnNob3dUb29sdGlwUHJlY2lzaW9uPTNE MC4wMX19Yy5wcm90b3R5cGU9M0RuZXcgaSgpO2MucHJvdG90eXBlLmNvbnN0cnU9CmN0b3I9M0Rj O2Z1bmN0aW9uIGwobil7aS5jYWxsKHRoaXMpO3RoaXMudHlwZT0zRCJkYXNoZWRWZXJ0aWNhbExp bmUiO3RoaXMucz0KdGFydD0zRG51bGw7dGhpcy5zdG9wPTNEbnVsbDt2YXIgbz0zRHt4Om51bGws eW1pbjpudWxsLHltYXg6bnVsbCx5T2Zmc2V0OiI2PQpweCIseW1pbk9mZnNldDpudWxsLHltYXhP ZmZzZXQ6bnVsbCxkYXNoUGF0dGVybjpbOCw4XX07ZC5leHRlbmQodHJ1ZSx0aGlzLm89CnB0aW9u cyxvLG4pO2lmKHRoaXMub3B0aW9ucy5zaG93VG9vbHRpcFByZWNpc2lvbjwwLjAxKXt0aGlzLm9w dGlvbnMuc2hvd1Rvbz0KbHRpcFByZWNpc2lvbj0zRDAuMDF9fWwucHJvdG90eXBlPTNEbmV3IGko KTtsLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj0zRGw7ZC5qPQpxcGxvdC5DYW52YXNPdmVybGF5LnBy b3RvdHlwZS5hZGRMaW5lPTNEZnVuY3Rpb24obyl7dmFyIG49M0RuZXcgYihvKTtuLnVpZD0KPTNE ZisrO3RoaXMub2JqZWN0cy5wdXNoKG4pO3RoaXMub2JqZWN0TmFtZXMucHVzaChuLm9wdGlvbnMu bmFtZSl9O2QuanFwbG90PQouQ2FudmFzT3ZlcmxheS5wcm90b3R5cGUuYWRkSG9yaXpvbnRhbExp bmU9M0RmdW5jdGlvbihvKXt2YXIgbj0zRG5ldyBlKG8pO249Ci51aWQ9M0RmKys7dGhpcy5vYmpl Y3RzLnB1c2gobik7dGhpcy5vYmplY3ROYW1lcy5wdXNoKG4ub3B0aW9ucy5uYW1lKX07ZC5qcT0K cGxvdC5DYW52YXNPdmVybGF5LnByb3RvdHlwZS5hZGREYXNoZWRIb3Jpem9udGFsTGluZT0zRGZ1 bmN0aW9uKG8pe3ZhciBuPTNEPQpuZXcgaihvKTtuLnVpZD0zRGYrKzt0aGlzLm9iamVjdHMucHVz aChuKTt0aGlzLm9iamVjdE5hbWVzLnB1c2gobi5vcHRpb25zLm49CmFtZSl9O2QuanFwbG90LkNh bnZhc092ZXJsYXkucHJvdG90eXBlLmFkZFZlcnRpY2FsTGluZT0zRGZ1bmN0aW9uKG8pe3ZhciBu PQo9M0RuZXcgYyhvKTtuLnVpZD0zRGYrKzt0aGlzLm9iamVjdHMucHVzaChuKTt0aGlzLm9iamVj dE5hbWVzLnB1c2gobi5vcHRpb249CnMubmFtZSl9O2QuanFwbG90LkNhbnZhc092ZXJsYXkucHJv dG90eXBlLmFkZERhc2hlZFZlcnRpY2FsTGluZT0zRGZ1bmN0aW9uKD0Kbyl7dmFyIG49M0RuZXcg bChvKTtuLnVpZD0zRGYrKzt0aGlzLm9iamVjdHMucHVzaChuKTt0aGlzLm9iamVjdE5hbWVzLnB1 c2goPQpuLm9wdGlvbnMubmFtZSl9O2QuanFwbG90LkNhbnZhc092ZXJsYXkucHJvdG90eXBlLmFk ZFJlY3RhbmdsZT0zRGZ1bmN0aW9uKG89Cil7dmFyIG49M0RuZXcgbShvKTtuLnVpZD0zRGYrKzt0 aGlzLm9iamVjdHMucHVzaChuKTt0aGlzLm9iamVjdE5hbWVzLnB1c2gobj0KLm9wdGlvbnMubmFt ZSl9O2QuanFwbG90LkNhbnZhc092ZXJsYXkucHJvdG90eXBlLnJlbW92ZU9iamVjdD0zRGZ1bmN0 aW9uKG4pPQp7aWYoZC50eXBlKG4pPTNEPTNEIm51bWJlciIpe3RoaXMub2JqZWN0cy5zcGxpY2Uo biwxKTt0aGlzLm9iamVjdE5hbWVzLnNwbGk9CmNlKG4sMSl9ZWxzZXt2YXIgbz0zRGQuaW5BcnJh eShuLHRoaXMub2JqZWN0TmFtZXMpO2lmKG8hPTNELTEpe3RoaXMub2JqZWN0cz0KLnNwbGljZShv LDEpO3RoaXMub2JqZWN0TmFtZXMuc3BsaWNlKG8sMSl9fX07ZC5qcXBsb3QuQ2FudmFzT3Zlcmxh eS5wcm90b3R5PQpwZS5nZXRPYmplY3Q9M0RmdW5jdGlvbihuKXtpZihkLnR5cGUobik9M0Q9M0Qi bnVtYmVyIil7cmV0dXJuIHRoaXMub2JqZWN0c1s9Cm5dfWVsc2V7dmFyIG89M0RkLmluQXJyYXko bix0aGlzLm9iamVjdE5hbWVzKTtpZihvIT0zRC0xKXtyZXR1cm4gdGhpcy5vYmplYz0KdHNbb119 fX07ZC5qcXBsb3QuQ2FudmFzT3ZlcmxheS5wcm90b3R5cGUuZ2V0PTNEZC5qcXBsb3QuQ2FudmFz T3ZlcmxheS5wcm90PQpvdHlwZS5nZXRPYmplY3Q7ZC5qcXBsb3QuQ2FudmFzT3ZlcmxheS5wcm90 b3R5cGUuY2xlYXI9M0RmdW5jdGlvbihuKXt0aGlzLmM9CmFudmFzLl9jdHguY2xlYXJSZWN0KDAs MCx0aGlzLmNhbnZhcy5nZXRXaWR0aCgpLHRoaXMuY2FudmFzLmdldEhlaWdodCgpKX07ZD0KLmpx cGxvdC5DYW52YXNPdmVybGF5LnByb3RvdHlwZS5kcmF3PTNEZnVuY3Rpb24oSyl7dmFyIEEsdj0z RHRoaXMub2JqZWN0cyxGPQo9M0R0aGlzLm1hcmtlclJlbmRlcmVyLHMsRztpZih0aGlzLm9wdGlv bnMuc2hvdyl7dGhpcy5jYW52YXMuX2N0eC5jbGVhclJlY3Q9CigwLDAsdGhpcy5jYW52YXMuZ2V0 V2lkdGgoKSx0aGlzLmNhbnZhcy5nZXRIZWlnaHQoKSk7Zm9yKHZhciBIPTNEMDtIPHYubGVuZz0K dGg7SCsrKXtBPTNEdltIXTt2YXIgQj0zRGQuZXh0ZW5kKHRydWUse30sQS5vcHRpb25zKTtpZihB Lm9wdGlvbnMuc2hvdyl7Ri5zPQpoYWRvdz0zREEub3B0aW9ucy5zaGFkb3c7QS50b29sdGlwV2lk dGhGYWN0b3I9M0RBLm9wdGlvbnMubGluZVdpZHRoL0Eub3B0aW89Cm5zLnNob3dUb29sdGlwUHJl Y2lzaW9uO3N3aXRjaChBLnR5cGUpe2Nhc2UibGluZSI6Ri5zdHlsZT0zRCJsaW5lIjtCLmNsb3Nl UD0KYXRoPTNEZmFsc2U7cz0zRFtLLmF4ZXNbQS5vcHRpb25zLnhheGlzXS5zZXJpZXNfdTJwKEEu b3B0aW9ucy5zdGFydFswXSksSy5hPQp4ZXNbQS5vcHRpb25zLnlheGlzXS5zZXJpZXNfdTJwKEEu b3B0aW9ucy5zdGFydFsxXSldO0c9M0RbSy5heGVzW0Eub3B0aW9ucy49CnhheGlzXS5zZXJpZXNf dTJwKEEub3B0aW9ucy5zdG9wWzBdKSxLLmF4ZXNbQS5vcHRpb25zLnlheGlzXS5zZXJpZXNfdTJw KEEubz0KcHRpb25zLnN0b3BbMV0pXTtBLmdyaWRTdGFydD0zRHM7QS5ncmlkU3RvcD0zREc7Ri5k cmF3KHMsRyx0aGlzLmNhbnZhcy5fY3R4PQosQik7YnJlYWs7Y2FzZSJob3Jpem9udGFsTGluZSI6 aWYoQS5vcHRpb25zLnkhPTNEbnVsbCl7Ri5zdHlsZT0zRCJsaW5lIjtCLmM9Cmxvc2VQYXRoPTNE ZmFsc2U7dmFyIHA9M0RLLmF4ZXNbQS5vcHRpb25zLnhheGlzXSxTLEwsdz0zREsuYXhlc1tBLm9w dGlvbnMueT0KYXhpc10uc2VyaWVzX3UycChBLm9wdGlvbnMueSksST0zREEub3B0aW9ucy54bWlu T2Zmc2V0fHxBLm9wdGlvbnMueE9mZnNldCx0PQo9M0RBLm9wdGlvbnMueG1heE9mZnNldHx8QS5v cHRpb25zLnhPZmZzZXQ7aWYoQS5vcHRpb25zLnhtaW4hPTNEbnVsbCl7Uz0zRHA9Ci5zZXJpZXNf dTJwKEEub3B0aW9ucy54bWluKX1lbHNle2lmKEkhPTNEbnVsbCl7aWYoZC50eXBlKEkpPTNEPTNE Im51bWJlciIpez0KUz0zRHAuc2VyaWVzX3UycChwLm1pbitJKX1lbHNle2lmKGQudHlwZShJKT0z RD0zRCJzdHJpbmciKXtTPTNEcC5zZXJpZXNfdTJwPQoocC5taW4pK3BhcnNlRmxvYXQoSSl9fX19 aWYoQS5vcHRpb25zLnhtYXghPTNEbnVsbCl7TD0zRHAuc2VyaWVzX3UycChBLm9wdGk9Cm9ucy54 bWF4KX1lbHNle2lmKHQhPTNEbnVsbCl7aWYoZC50eXBlKHQpPTNEPTNEIm51bWJlciIpe0w9M0Rw LnNlcmllc191MnAocD0KLm1heC10KX1lbHNle2lmKGQudHlwZSh0KT0zRD0zRCJzdHJpbmciKXtM PTNEcC5zZXJpZXNfdTJwKHAubWF4KS1wYXJzZUZsb2F0PQoodCl9fX19aWYoTCE9M0RudWxsJiZT IT0zRG51bGwpe0EuZ3JpZFN0YXJ0PTNEW1Msd107QS5ncmlkU3RvcD0zRFtMLHddO0YuZHI9CmF3 KFtTLHddLFtMLHddLHRoaXMuY2FudmFzLl9jdHgsQil9fWJyZWFrO2Nhc2UiZGFzaGVkSG9yaXpv bnRhbExpbmUiOnZhciBvPQo9M0RBLm9wdGlvbnMuZGFzaFBhdHRlcm47dmFyIEU9M0QwO2Zvcih2 YXIgTT0zRDA7TTxvLmxlbmd0aDtNKyspe0UrPTNEb1tNXX09CmlmKEEub3B0aW9ucy55IT0zRG51 bGwpe0Yuc3R5bGU9M0QibGluZSI7Qi5jbG9zZVBhdGg9M0RmYWxzZTt2YXIgcD0zREsuYXhlcz0K W0Eub3B0aW9ucy54YXhpc10sUyxMLHc9M0RLLmF4ZXNbQS5vcHRpb25zLnlheGlzXS5zZXJpZXNf dTJwKEEub3B0aW9ucy55KSxJPQo9M0RBLm9wdGlvbnMueG1pbk9mZnNldHx8QS5vcHRpb25zLnhP ZmZzZXQsdD0zREEub3B0aW9ucy54bWF4T2Zmc2V0fHxBLm9wdGk9Cm9ucy54T2Zmc2V0O2lmKEEu b3B0aW9ucy54bWluIT0zRG51bGwpe1M9M0RwLnNlcmllc191MnAoQS5vcHRpb25zLnhtaW4pfWVs cz0KZXtpZihJIT0zRG51bGwpe2lmKGQudHlwZShJKT0zRD0zRCJudW1iZXIiKXtTPTNEcC5zZXJp ZXNfdTJwKHAubWluK0kpfWVsc2V7PQppZihkLnR5cGUoSSk9M0Q9M0Qic3RyaW5nIil7Uz0zRHAu c2VyaWVzX3UycChwLm1pbikrcGFyc2VGbG9hdChJKX19fX1pZihBLm89CnB0aW9ucy54bWF4IT0z RG51bGwpe0w9M0RwLnNlcmllc191MnAoQS5vcHRpb25zLnhtYXgpfWVsc2V7aWYodCE9M0RudWxs KXtpZj0KKGQudHlwZSh0KT0zRD0zRCJudW1iZXIiKXtMPTNEcC5zZXJpZXNfdTJwKHAubWF4LXQp fWVsc2V7aWYoZC50eXBlKHQpPTNEPTNEPQoic3RyaW5nIil7TD0zRHAuc2VyaWVzX3UycChwLm1h eCktcGFyc2VGbG9hdCh0KX19fX1pZihMIT0zRG51bGwmJlMhPTNEbnVsbCk9CntBLmdyaWRTdGFy dD0zRFtTLHddO0EuZ3JpZFN0b3A9M0RbTCx3XTt2YXIgcj0zRE1hdGguY2VpbCgoTC1TKS9FKTt2 YXIgUT0zRD0KUyxPO2Zvcih2YXIgTT0zRDA7TTxyO00rKyl7Zm9yKHZhciBKPTNEMDtKPG8ubGVu Z3RoO0orPTNEMil7Tz0zRFErb1tKXTtGLmRyPQphdyhbUSx3XSxbTyx3XSx0aGlzLmNhbnZhcy5f Y3R4LEIpO1ErPTNEb1tKXTtpZihKPG8ubGVuZ3RoLTEpe1ErPTNEb1tKKzFdfX09Cn19fWJyZWFr O2Nhc2UidmVydGljYWxMaW5lIjppZihBLm9wdGlvbnMueCE9M0RudWxsKXtGLnN0eWxlPTNEImxp bmUiO0IuY2xvcz0KZVBhdGg9M0RmYWxzZTt2YXIgTj0zREsuYXhlc1tBLm9wdGlvbnMueWF4aXNd LG4sdSx6PTNESy5heGVzW0Eub3B0aW9ucy54YXhpPQpzXS5zZXJpZXNfdTJwKEEub3B0aW9ucy54 KSxEPTNEQS5vcHRpb25zLnltaW5PZmZzZXR8fEEub3B0aW9ucy55T2Zmc2V0LHE9M0Q9CkEub3B0 aW9ucy55bWF4T2Zmc2V0fHxBLm9wdGlvbnMueU9mZnNldDtpZihBLm9wdGlvbnMueW1pbiE9M0Ru dWxsKXtuPTNETi5zZT0Kcmllc191MnAoQS5vcHRpb25zLnltaW4pfWVsc2V7aWYoRCE9M0RudWxs KXtpZihkLnR5cGUoRCk9M0Q9M0QibnVtYmVyIil7bj0KPTNETi5zZXJpZXNfdTJwKE4ubWluLUQp fWVsc2V7aWYoZC50eXBlKEQpPTNEPTNEInN0cmluZyIpe249M0ROLnNlcmllc191MnAoPQpOLm1p biktcGFyc2VGbG9hdChEKX19fX1pZihBLm9wdGlvbnMueW1heCE9M0RudWxsKXt1PTNETi5zZXJp ZXNfdTJwKEEub3B0aW89Cm5zLnltYXgpfWVsc2V7aWYocSE9M0RudWxsKXtpZihkLnR5cGUocSk9 M0Q9M0QibnVtYmVyIil7dT0zRE4uc2VyaWVzX3UycChOLj0KbWF4K3EpfWVsc2V7aWYoZC50eXBl KHEpPTNEPTNEInN0cmluZyIpe3U9M0ROLnNlcmllc191MnAoTi5tYXgpK3BhcnNlRmxvYXQoPQpx KX19fX1pZih1IT0zRG51bGwmJm4hPTNEbnVsbCl7QS5ncmlkU3RhcnQ9M0RbeixuXTtBLmdyaWRT dG9wPTNEW3osdV07Ri5kcmE9CncoW3osbl0sW3osdV0sdGhpcy5jYW52YXMuX2N0eCxCKX19YnJl YWs7Y2FzZSJkYXNoZWRWZXJ0aWNhbExpbmUiOnZhciBvPTNEQT0KLm9wdGlvbnMuZGFzaFBhdHRl cm47dmFyIEU9M0QwO2Zvcih2YXIgTT0zRDA7TTxvLmxlbmd0aDtNKyspe0UrPTNEb1tNXX1pZihB PQoub3B0aW9ucy54IT0zRG51bGwpe0Yuc3R5bGU9M0QibGluZSI7Qi5jbG9zZVBhdGg9M0RmYWxz ZTt2YXIgTj0zREsuYXhlc1tBLm89CnB0aW9ucy55YXhpc10sbix1LHo9M0RLLmF4ZXNbQS5vcHRp b25zLnhheGlzXS5zZXJpZXNfdTJwKEEub3B0aW9ucy54KSxEPTNEQT0KLm9wdGlvbnMueW1pbk9m ZnNldHx8QS5vcHRpb25zLnlPZmZzZXQscT0zREEub3B0aW9ucy55bWF4T2Zmc2V0fHxBLm9wdGlv bnMuPQp5T2Zmc2V0O2lmKEEub3B0aW9ucy55bWluIT0zRG51bGwpe249M0ROLnNlcmllc191MnAo QS5vcHRpb25zLnltaW4pfWVsc2V7aWY9CihEIT0zRG51bGwpe2lmKGQudHlwZShEKT0zRD0zRCJu dW1iZXIiKXtuPTNETi5zZXJpZXNfdTJwKE4ubWluLUQpfWVsc2V7aWYoZD0KLnR5cGUoRCk9M0Q9 M0Qic3RyaW5nIil7bj0zRE4uc2VyaWVzX3UycChOLm1pbiktcGFyc2VGbG9hdChEKX19fX1pZihB Lm9wdGlvPQpucy55bWF4IT0zRG51bGwpe3U9M0ROLnNlcmllc191MnAoQS5vcHRpb25zLnltYXgp fWVsc2V7aWYocSE9M0RudWxsKXtpZihkLnQ9CnlwZShxKT0zRD0zRCJudW1iZXIiKXt1PTNETi5z ZXJpZXNfdTJwKE4ubWF4K3EpfWVsc2V7aWYoZC50eXBlKHEpPTNEPTNEInN0cj0KaW5nIil7dT0z RE4uc2VyaWVzX3UycChOLm1heCkrcGFyc2VGbG9hdChxKX19fX1pZih1IT0zRG51bGwmJm4hPTNE bnVsbCl7QS5nPQpyaWRTdGFydD0zRFt6LG5dO0EuZ3JpZFN0b3A9M0Rbeix1XTt2YXIgcj0zRE1h dGguY2VpbCgobi11KS9FKTt2YXIgQz0zRCgocio9CkUpLShuLXUpKS8yO3ZhciBRPTNEbixPLFAs Ujtmb3IodmFyIE09M0QwO008cjtNKyspe2Zvcih2YXIgSj0zRDA7SjxvLmxlbmd0aD0KO0orPTNE Mil7Tz0zRFEtb1tKXTtpZihPPHUpe089M0R1fWlmKFE8dSl7UT0zRHV9Ri5kcmF3KFt6LFFdLFt6 LE9dLHRoaXMuY2FuPQp2YXMuX2N0eCxCKTtRLT0zRG9bSl07aWYoSjxvLmxlbmd0aC0xKXtRLT0z RG9bSisxXX19fX19YnJlYWs7Y2FzZSJyZWN0YW5nbGU9CiI6Ri5zdHlsZT0zRCJsaW5lIjtCLmNs b3NlUGF0aD0zRHRydWU7dmFyIHA9M0RLLmF4ZXNbQS5vcHRpb25zLnhheGlzXSxTLEwsdz0KPTNE Sy5heGVzW0Eub3B0aW9ucy55YXhpc10uc2VyaWVzX3UycChBLm9wdGlvbnMueSksST0zREEub3B0 aW9ucy54bWluT2Zmc2V0PQp8fEEub3B0aW9ucy54T2Zmc2V0LHQ9M0RBLm9wdGlvbnMueG1heE9m ZnNldHx8QS5vcHRpb25zLnhPZmZzZXQ7aWYoQS5vcHRpb249CnMueG1pbiE9M0RudWxsKXtTPTNE cC5zZXJpZXNfdTJwKEEub3B0aW9ucy54bWluKX1lbHNle2lmKEkhPTNEbnVsbCl7aWYoZC50eT0K cGUoSSk9M0Q9M0QibnVtYmVyIil7Uz0zRHAuc2VyaWVzX3UycChwLm1pbitJKX1lbHNle2lmKGQu dHlwZShJKT0zRD0zRCJzdHJpPQpuZyIpe1M9M0RwLnNlcmllc191MnAocC5taW4pK3BhcnNlRmxv YXQoSSl9fX19aWYoQS5vcHRpb25zLnhtYXghPTNEbnVsbCl7TD0KPTNEcC5zZXJpZXNfdTJwKEEu b3B0aW9ucy54bWF4KX1lbHNle2lmKHQhPTNEbnVsbCl7aWYoZC50eXBlKHQpPTNEPTNEIm51bWJl PQpyIil7TD0zRHAuc2VyaWVzX3UycChwLm1heC10KX1lbHNle2lmKGQudHlwZSh0KT0zRD0zRCJz dHJpbmciKXtMPTNEcC5zZXJpZXM9Cl91MnAocC5tYXgpLXBhcnNlRmxvYXQodCl9fX19dmFyIE49 M0RLLmF4ZXNbQS5vcHRpb25zLnlheGlzXSxuLHUsej0zREsuYXhlcz0KW0Eub3B0aW9ucy54YXhp c10uc2VyaWVzX3UycChBLm9wdGlvbnMueCksRD0zREEub3B0aW9ucy55bWluT2Zmc2V0fHxBLm9w dGlvPQpucy55T2Zmc2V0LHE9M0RBLm9wdGlvbnMueW1heE9mZnNldHx8QS5vcHRpb25zLnlPZmZz ZXQ7aWYoQS5vcHRpb25zLnltaW4hPQo9M0RudWxsKXtuPTNETi5zZXJpZXNfdTJwKEEub3B0aW9u cy55bWluKX1lbHNle2lmKEQhPTNEbnVsbCl7aWYoZC50eXBlKEQpPQo9M0Q9M0QibnVtYmVyIil7 bj0zRE4uc2VyaWVzX3UycChOLm1pbi1EKX1lbHNle2lmKGQudHlwZShEKT0zRD0zRCJzdHJpbmci KXs9Cm49M0ROLnNlcmllc191MnAoTi5taW4pLXBhcnNlRmxvYXQoRCl9fX19aWYoQS5vcHRpb25z LnltYXghPTNEbnVsbCl7dT0zRE4ucz0KZXJpZXNfdTJwKEEub3B0aW9ucy55bWF4KX1lbHNle2lm KHEhPTNEbnVsbCl7aWYoZC50eXBlKHEpPTNEPTNEIm51bWJlciIpe3U9Cj0zRE4uc2VyaWVzX3Uy cChOLm1heCtxKX1lbHNle2lmKGQudHlwZShxKT0zRD0zRCJzdHJpbmciKXt1PTNETi5zZXJpZXNf dTJwKD0KTi5tYXgpK3BhcnNlRmxvYXQocSl9fX19aWYoTCE9M0RudWxsJiZTIT0zRG51bGwmJnUh PTNEbnVsbCYmbiE9M0RudWxsKXtBLmdyPQppZFN0YXJ0PTNEW1Msbl07QS5ncmlkU3RvcD0zRFtM LHVdO3RoaXMuY2FudmFzLl9jdHguZmlsbFN0eWxlPTNEQS5vcHRpb25zLmM9Cm9sb3I7dGhpcy5j YW52YXMuX2N0eC5maWxsUmVjdChTLG4sTC1TLHUtbil9YnJlYWs7ZGVmYXVsdDpicmVha319fX19 O2QuanFwbD0Kb3QuQ2FudmFzT3ZlcmxheS5wb3N0UGxvdERyYXc9M0RmdW5jdGlvbigpe3ZhciBv PTNEdGhpcy5wbHVnaW5zLmNhbnZhc092ZXJsPQpheTtpZihvJiZvLmhpZ2hsaWdodENhbnZhcyl7 by5oaWdobGlnaHRDYW52YXMucmVzZXRDYW52YXMoKTtvLmhpZ2hsaWdodENhbnY9CmFzPTNEbnVs bH1vLmNhbnZhcz0zRG5ldyBkLmpxcGxvdC5HZW5lcmljQ2FudmFzKCk7dGhpcy5ldmVudENhbnZh cy5fZWxlbS5iZT0KZm9yZShvLmNhbnZhcy5jcmVhdGVFbGVtZW50KHRoaXMuX2dyaWRQYWRkaW5n LCJqcXBsb3Qtb3ZlcmxheUNhbnZhcy1jYW52YXMiPQosdGhpcy5fcGxvdERpbWVuc2lvbnMsdGhp cykpO28uY2FudmFzLnNldENvbnRleHQoKTtpZighby5kZWZlckRyYXcpe28uZHJhdyg9CnRoaXMp fXZhciBuPTNEZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7by5fdG9vbHRpcEVsZW09M0Rk KG4pO249M0RudWxsOz0Kby5fdG9vbHRpcEVsZW0uYWRkQ2xhc3MoImpxcGxvdC1jYW52YXNPdmVy bGF5LXRvb2x0aXAiKTtvLl90b29sdGlwRWxlbS5jc3MoPQp7cG9zaXRpb246ImFic29sdXRlIixk aXNwbGF5OiJub25lIn0pO3RoaXMuZXZlbnRDYW52YXMuX2VsZW0uYmVmb3JlKG8uX3Rvb2w9CnRp cEVsZW0pO3RoaXMuZXZlbnRDYW52YXMuX2VsZW0uYmluZCgibW91c2VsZWF2ZSIse2VsZW06by5f dG9vbHRpcEVsZW19LGZ1bj0KY3Rpb24ocCl7cC5kYXRhLmVsZW0uaGlkZSgpfSk7dmFyIG89M0Ru dWxsfTtmdW5jdGlvbiBrKHMscSxyLHApe3ZhciB1PTNEcy5wPQpsdWdpbnMuY2FudmFzT3Zlcmxh eTt2YXIgbz0zRHUuX3Rvb2x0aXBFbGVtO3ZhciBuPTNEcS5vcHRpb25zLHYsdDtvLmh0bWwoZC49 CmpxcGxvdC5zcHJpbnRmKG4udG9vbHRpcEZvcm1hdFN0cmluZyxwWzBdLHBbMV0pKTtzd2l0Y2go bi50b29sdGlwTG9jYXRpb24pez0KY2FzZSJudyI6dj0zRHJbMF0rcy5fZ3JpZFBhZGRpbmcubGVm dC1vLm91dGVyV2lkdGgodHJ1ZSktbi50b29sdGlwT2Zmc2V0O3Q9Cj0zRHJbMV0rcy5fZ3JpZFBh ZGRpbmcudG9wLW4udG9vbHRpcE9mZnNldC1vLm91dGVySGVpZ2h0KHRydWUpO2JyZWFrO2Nhc2Ui bj0KIjp2PTNEclswXStzLl9ncmlkUGFkZGluZy5sZWZ0LW8ub3V0ZXJXaWR0aCh0cnVlKS8yO3Q9 M0RyWzFdK3MuX2dyaWRQYWRkaW5nPQoudG9wLW4udG9vbHRpcE9mZnNldC1vLm91dGVySGVpZ2h0 KHRydWUpO2JyZWFrO2Nhc2UibmUiOnY9M0RyWzBdK3MuX2dyaWRQYWQ9CmRpbmcubGVmdCtuLnRv b2x0aXBPZmZzZXQ7dD0zRHJbMV0rcy5fZ3JpZFBhZGRpbmcudG9wLW4udG9vbHRpcE9mZnNldC1v Lm91dD0KZXJIZWlnaHQodHJ1ZSk7YnJlYWs7Y2FzZSJlIjp2PTNEclswXStzLl9ncmlkUGFkZGlu Zy5sZWZ0K24udG9vbHRpcE9mZnNldDt0PQo9M0RyWzFdK3MuX2dyaWRQYWRkaW5nLnRvcC1vLm91 dGVySGVpZ2h0KHRydWUpLzI7YnJlYWs7Y2FzZSJzZSI6dj0zRHJbMF0rcy49Cl9ncmlkUGFkZGlu Zy5sZWZ0K24udG9vbHRpcE9mZnNldDt0PTNEclsxXStzLl9ncmlkUGFkZGluZy50b3Arbi50b29s dGlwT2Zmcz0KZXQ7YnJlYWs7Y2FzZSJzIjp2PTNEclswXStzLl9ncmlkUGFkZGluZy5sZWZ0LW8u b3V0ZXJXaWR0aCh0cnVlKS8yO3Q9M0RyWzFdPQorcy5fZ3JpZFBhZGRpbmcudG9wK24udG9vbHRp cE9mZnNldDticmVhaztjYXNlInN3Ijp2PTNEclswXStzLl9ncmlkUGFkZGluZy49CmxlZnQtby5v dXRlcldpZHRoKHRydWUpLW4udG9vbHRpcE9mZnNldDt0PTNEclsxXStzLl9ncmlkUGFkZGluZy50 b3Arbi50b29sdD0KaXBPZmZzZXQ7YnJlYWs7Y2FzZSJ3Ijp2PTNEclswXStzLl9ncmlkUGFkZGlu Zy5sZWZ0LW8ub3V0ZXJXaWR0aCh0cnVlKS1uLnRvPQpvbHRpcE9mZnNldDt0PTNEclsxXStzLl9n cmlkUGFkZGluZy50b3Atby5vdXRlckhlaWdodCh0cnVlKS8yO2JyZWFrO2RlZmF1bHQ9Cjp2PTNE clswXStzLl9ncmlkUGFkZGluZy5sZWZ0LW8ub3V0ZXJXaWR0aCh0cnVlKS1uLnRvb2x0aXBPZmZz ZXQ7dD0zRHJbMV0rcz0KLl9ncmlkUGFkZGluZy50b3Atbi50b29sdGlwT2Zmc2V0LW8ub3V0ZXJI ZWlnaHQodHJ1ZSk7YnJlYWt9by5jc3MoImxlZnQiLHYpPQo7by5jc3MoInRvcCIsdCk7aWYobi5m YWRlVG9vbHRpcCl7by5zdG9wKHRydWUsdHJ1ZSkuZmFkZUluKG4udG9vbHRpcEZhZGVTcGU9CmVk KX1lbHNle28uc2hvdygpfW89M0RudWxsfWZ1bmN0aW9uIGgoeixxLHMscCl7dmFyIG89M0R6WzBd O3ZhciBuPTNEelsxXTt2YT0KciB5PTNETWF0aC5yb3VuZChzWzBdKTt2YXIgeD0zRE1hdGgucm91 bmQoc1sxXSk7dmFyIHU9M0RNYXRoLnJvdW5kKHFbMF0pO3ZhPQpyIHQ9M0RNYXRoLnJvdW5kKHFb MV0pO3ZhciByPTNETWF0aC5zcXJ0KE1hdGgucG93KHktdSwyKStNYXRoLnBvdyh4LXQsMikpO3Y9 CmFyIEE9M0RwKnI7dmFyIHc9M0RNYXRoLmFicygodS15KSoobi14KS0odC14KSooby15KSk7dmFy IHY9M0QodzxBKT90cnVlOmZhbD0Kc2U7cmV0dXJuIHZ9ZnVuY3Rpb24gZyh4LHEscixwKXt2YXIg bz0zRHhbMF07dmFyIG49M0R4WzFdO3ZhciB3PTNETWF0aC5yb3VuPQpkKHJbMF0pO3ZhciB2PTNE TWF0aC5yb3VuZChyWzFdKTt2YXIgdD0zRE1hdGgucm91bmQocVswXSk7dmFyIHM9M0RNYXRoLnJv dW49CmQocVsxXSk7dmFyIHk7aWYodz50KXt5PTNEdzt3PTNEdDt0PTNEeX1pZih2PnMpe3k9M0R2 O3Y9M0RzO3M9M0R5fXZhciB1PTNEKD0Kbz49M0R3JiZvPD0zRHQmJm4+PTNEdiYmbjw9M0RzKTty ZXR1cm4gdX1mdW5jdGlvbiBhKHosdyxyLEEseCl7dmFyIHk9M0R4LnBsPQp1Z2lucy5jYW52YXNP dmVybGF5O3ZhciB2PTNEeS5vYmplY3RzO3ZhciBzPTNEdi5sZW5ndGg7dmFyIHUsbz0zRGZhbHNl O3ZhciA9CnE7Zm9yKHZhciB0PTNEMDt0PHM7dCsrKXt1PTNEdlt0XTtpZih1Lm9wdGlvbnMuc2hv d1Rvb2x0aXApe3ZhciBwO2lmKHUudHlwZT0KPTNEPTNEPTNEInJlY3RhbmdsZSIpe3A9M0RnKFt3 Lngsdy55XSx1LmdyaWRTdGFydCx1LmdyaWRTdG9wLHUudG9vbHRpcFdpZHRoPQpGYWN0b3IpfWVs c2V7cD0zRGgoW3cueCx3LnldLHUuZ3JpZFN0YXJ0LHUuZ3JpZFN0b3AsdS50b29sdGlwV2lkdGhG YWN0b3IpfXI9Cj0zRFt4LmF4ZXNbdS5vcHRpb25zLnhheGlzXS5zZXJpZXNfcDJ1KHcueCkseC5h eGVzW3Uub3B0aW9ucy55YXhpc10uc2VyaWVzXz0KcDJ1KHcueSldO2lmKHAmJnkuaGlnaGxpZ2h0 T2JqZWN0SW5kZXg9M0Q9M0RudWxsKXtzd2l0Y2godS50eXBlKXtjYXNlImxpbmUiPQo6ayh4LHUs W3cueCx3LnldLHIpO2JyZWFrO2Nhc2UiaG9yaXpvbnRhbExpbmUiOmNhc2UiZGFzaGVkSG9yaXpv bnRhbExpbmUiOms9Cih4LHUsW3cueCx1LmdyaWRTdGFydFsxXV0sW3JbMF0sdS5vcHRpb25zLnld KTticmVhaztjYXNlInZlcnRpY2FsTGluZSI6Y2FzZT0KImRhc2hlZFZlcnRpY2FsTGluZSI6ayh4 LHUsW3UuZ3JpZFN0YXJ0WzBdLHcueV0sW3Uub3B0aW9ucy54LHJbMV1dKTticmVhaztjPQphc2Ui cmVjdGFuZ2xlIjprKHgsdSxbdS5ncmlkU3RhcnRbMF0sdy55XSxbdS5vcHRpb25zLngsclsxXV0p O2JyZWFrO2RlZmF1bHQ9CjpicmVha315LmhpZ2hsaWdodE9iamVjdEluZGV4PTNEdDtvPTNEdHJ1 ZTticmVha31lbHNle2lmKHAmJnkuaGlnaGxpZ2h0T2JqZT0KY3RJbmRleCE9M0Q9M0R0KXtxPTNE eS5fdG9vbHRpcEVsZW07aWYodS5mYWRlVG9vbHRpcCl7cS5mYWRlT3V0KHUudG9vbHRpcEZhPQpk ZVNwZWVkKX1lbHNle3EuaGlkZSgpfXN3aXRjaCh1LnR5cGUpe2Nhc2UibGluZSI6ayh4LHUsW3cu eCx3LnldLHIpO2JyZWFrO2M9CmFzZSJob3Jpem9udGFsTGluZSI6Y2FzZSJkYXNoZWRIb3Jpem9u dGFsTGluZSI6ayh4LHUsW3cueCx1LmdyaWRTdGFydFsxXV0sWz0KclswXSx1Lm9wdGlvbnMueV0p O2JyZWFrO2Nhc2UidmVydGljYWxMaW5lIjpjYXNlImRhc2hlZFZlcnRpY2FsTGluZSI6ayh4LHUs PQpbdS5ncmlkU3RhcnRbMF0sdy55XSxbdS5vcHRpb25zLngsclsxXV0pO2JyZWFrO2Nhc2UicmVj dGFuZ2xlIjprKHgsdSxbdS5ncmk9CmRTdGFydFswXSx3LnldLFt1Lm9wdGlvbnMueCxyWzFdXSk7 YnJlYWs7ZGVmYXVsdDpicmVha315LmhpZ2hsaWdodE9iamVjdEluZD0KZXg9M0R0O289M0R0cnVl O2JyZWFrfWVsc2V7aWYocCl7c3dpdGNoKHUudHlwZSl7Y2FzZSJsaW5lIjprKHgsdSxbdy54LHcu eV0sPQpyKTticmVhaztjYXNlImhvcml6b250YWxMaW5lIjpjYXNlImRhc2hlZEhvcml6b250YWxM aW5lIjprKHgsdSxbdy54LHUuZ3JpZFM9CnRhcnRbMV1dLFtyWzBdLHUub3B0aW9ucy55XSk7YnJl YWs7Y2FzZSJ2ZXJ0aWNhbExpbmUiOmNhc2UiZGFzaGVkVmVydGljYWxMaT0KbmUiOmsoeCx1LFt1 LmdyaWRTdGFydFswXSx3LnldLFt1Lm9wdGlvbnMueCxyWzFdXSk7YnJlYWs7Y2FzZSJyZWN0YW5n bGUiOmsoPQp4LHUsW3UuZ3JpZFN0YXJ0WzBdLHcueV0sW3Uub3B0aW9ucy54LHJbMV1dKTticmVh aztkZWZhdWx0OmJyZWFrfW89M0R0cnVlO2I9CnJlYWt9fX19fWlmKCFvJiZ5LmhpZ2hsaWdodE9i amVjdEluZGV4IT0zRD0zRG51bGwpe3E9M0R5Ll90b29sdGlwRWxlbTt1PTNEeT0KLmdldE9iamVj dCh5LmhpZ2hsaWdodE9iamVjdEluZGV4KTtpZih1LmZhZGVUb29sdGlwKXtxLmZhZGVPdXQodS50 b29sdGlwRmFkPQplU3BlZWQpfWVsc2V7cS5oaWRlKCl9eS5oaWdobGlnaHRPYmplY3RJbmRleD0z RG51bGx9fWQuanFwbG90LnBvc3RJbml0SG9va3M9Ci5wdXNoKGQuanFwbG90LkNhbnZhc092ZXJs YXkucG9zdFBsb3RJbml0KTtkLmpxcGxvdC5wb3N0RHJhd0hvb2tzLnB1c2goZC5qcT0KcGxvdC5D YW52YXNPdmVybGF5LnBvc3RQbG90RHJhdyk7ZC5qcXBsb3QuZXZlbnRMaXN0ZW5lckhvb2tzLnB1 c2goWyJqcXBsb3RNPQpvdXNlTW92ZSIsYV0pfSkoalF1ZXJ5KTsKXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCgpkaWZmIC1yIGRiOTJmNmUxOWIzODE4MDk3YmQzZDVhMTQ5YWNmODBjZWQ5MDY3 NWMgLXIgYTBkMWE5MWUwNWJlZTMyZGQ1ZjJmYWM9CjkzZDgwZmJlOTM1YmE4YzI4IGNvbmZpZy9w bHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9zdGF0aWMvcGx1Z2lucy9qcXBsbz0KdC9wbHVn aW5zL2pxcGxvdC5jYW52YXNUZXh0UmVuZGVyZXIubWluLmpzCi0tLSAvZGV2L251bGwKKysrIGIv Y29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy9wbHVnaW5zL2pxcGxv dC9wbHVnaW5zL2pxPQpwbG90LmNhbnZhc1RleHRSZW5kZXJlci5taW4uanMKQEAgLTAsMCArMSwz IEBACisvKiBqcVBsb3QgMS4wLjhyMTI1MCB8IChjKSAyMDA5LTIwMTMgQ2hyaXMgTGVvbmVsbG8g fCBqcGxvdC5jb20KKyAgIGpzRGF0ZSB8IChjKSAyMDEwLTIwMTMgQ2hyaXMgTGVvbmVsbG8KKyAq LyhmdW5jdGlvbihhKXthLmpxcGxvdC5DYW52YXNUZXh0UmVuZGVyZXI9M0RmdW5jdGlvbihiKXt0 aGlzLmZvbnRTdHlsZT0KPTNEIm5vcm1hbCI7dGhpcy5mb250VmFyaWFudD0zRCJub3JtYWwiO3Ro aXMuZm9udFdlaWdodD0zRCJub3JtYWwiO3RoaXMuZm9uPQp0U2l6ZT0zRCIxMHB4Ijt0aGlzLmZv bnRGYW1pbHk9M0Qic2Fucy1zZXJpZiI7dGhpcy5mb250U3RyZXRjaD0zRDE7dGhpcy5maWw9CmxT dHlsZT0zRCIjNjY2NjY2Ijt0aGlzLmFuZ2xlPTNEMDt0aGlzLnRleHRBbGlnbj0zRCJzdGFydCI7 dGhpcy50ZXh0QmFzZWxpbj0KZT0zRCJhbHBoYWJldGljIjt0aGlzLnRleHQ7dGhpcy53aWR0aDt0 aGlzLmhlaWdodDt0aGlzLnB0MnB4PTNEMS4yODthLmV4dGVuPQpkKHRydWUsdGhpcyxiKTt0aGlz Lm5vcm1hbGl6ZWRGb250U2l6ZT0zRHRoaXMubm9ybWFsaXplRm9udFNpemUodGhpcy5mb250U2k9 CnplKTt0aGlzLnNldEhlaWdodCgpfTthLmpxcGxvdC5DYW52YXNUZXh0UmVuZGVyZXIucHJvdG90 eXBlLmluaXQ9M0RmdW5jdGlvbj0KKGIpe2EuZXh0ZW5kKHRydWUsdGhpcyxiKTt0aGlzLm5vcm1h bGl6ZWRGb250U2l6ZT0zRHRoaXMubm9ybWFsaXplRm9udFNpemUoPQp0aGlzLmZvbnRTaXplKTt0 aGlzLnNldEhlaWdodCgpfTthLmpxcGxvdC5DYW52YXNUZXh0UmVuZGVyZXIucHJvdG90eXBlLm5v cm09CmFsaXplRm9udFNpemU9M0RmdW5jdGlvbihiKXtiPTNEU3RyaW5nKGIpO3ZhciBjPTNEcGFy c2VGbG9hdChiKTtpZihiLmluZGV4Tz0KZigicHgiKT4tMSl7cmV0dXJuIGMvdGhpcy5wdDJweH1l bHNle2lmKGIuaW5kZXhPZigicHQiKT4tMSl7cmV0dXJuIGN9ZWxzZXtpPQpmKGIuaW5kZXhPZigi ZW0iKT4tMSl7cmV0dXJuIGMqMTJ9ZWxzZXtpZihiLmluZGV4T2YoIiUiKT4tMSl7cmV0dXJuIGMq MTIvMTA9CjB9ZWxzZXtyZXR1cm4gYy90aGlzLnB0MnB4fX19fX07YS5qcXBsb3QuQ2FudmFzVGV4 dFJlbmRlcmVyLnByb3RvdHlwZS5mb250Vz0KZWlnaHQyRmxvYXQ9M0RmdW5jdGlvbihiKXtpZihO dW1iZXIoYikpe3JldHVybiBiLzQwMH1lbHNle3N3aXRjaChiKXtjYXNlIm5vPQpybWFsIjpyZXR1 cm4gMTticmVhaztjYXNlImJvbGQiOnJldHVybiAxLjc1O2JyZWFrO2Nhc2UiYm9sZGVyIjpyZXR1 cm4gMi4yNTs9CmJyZWFrO2Nhc2UibGlnaHRlciI6cmV0dXJuIDAuNzU7YnJlYWs7ZGVmYXVsdDpy ZXR1cm4gMTticmVha319fTthLmpxcGxvdC5DYT0KbnZhc1RleHRSZW5kZXJlci5wcm90b3R5cGUu Z2V0VGV4dD0zRGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGV4dH07YS5qcXBsb3QuPQpDYW52YXNU ZXh0UmVuZGVyZXIucHJvdG90eXBlLnNldFRleHQ9M0RmdW5jdGlvbihjLGIpe3RoaXMudGV4dD0z RGM7dGhpcy5zZXQ9CldpZHRoKGIpO3JldHVybiB0aGlzfTthLmpxcGxvdC5DYW52YXNUZXh0UmVu ZGVyZXIucHJvdG90eXBlLmdldFdpZHRoPTNEZnVuYz0KdGlvbihiKXtyZXR1cm4gdGhpcy53aWR0 aH07YS5qcXBsb3QuQ2FudmFzVGV4dFJlbmRlcmVyLnByb3RvdHlwZS5zZXRXaWR0aD0KPTNEZnVu Y3Rpb24oYyxiKXtpZighYil7dGhpcy53aWR0aD0zRHRoaXMubWVhc3VyZShjLHRoaXMudGV4dCl9 ZWxzZXt0aGlzLndpPQpkdGg9M0RifXJldHVybiB0aGlzfTthLmpxcGxvdC5DYW52YXNUZXh0UmVu ZGVyZXIucHJvdG90eXBlLmdldEhlaWdodD0zRGZ1bmM9CnRpb24oYil7cmV0dXJuIHRoaXMuaGVp Z2h0fTthLmpxcGxvdC5DYW52YXNUZXh0UmVuZGVyZXIucHJvdG90eXBlLnNldEhlaWdodD0KPTNE ZnVuY3Rpb24oYil7aWYoIWIpe3RoaXMuaGVpZ2h0PTNEdGhpcy5ub3JtYWxpemVkRm9udFNpemUq dGhpcy5wdDJweH1lbHNlPQp7dGhpcy5oZWlnaHQ9M0RifXJldHVybiB0aGlzfTthLmpxcGxvdC5D YW52YXNUZXh0UmVuZGVyZXIucHJvdG90eXBlLmxldHRlcj0KPTNEZnVuY3Rpb24oYil7cmV0dXJu IHRoaXMubGV0dGVyc1tiXX07YS5qcXBsb3QuQ2FudmFzVGV4dFJlbmRlcmVyLnByb3RvdHlwPQpl LmFzY2VudD0zRGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9ybWFsaXplZEZvbnRTaXplfTthLmpx cGxvdC5DYW52YXNUZXh0UmU9Cm5kZXJlci5wcm90b3R5cGUuZGVzY2VudD0zRGZ1bmN0aW9uKCl7 cmV0dXJuIDcqdGhpcy5ub3JtYWxpemVkRm9udFNpemUvMjV9Oz0KYS5qcXBsb3QuQ2FudmFzVGV4 dFJlbmRlcmVyLnByb3RvdHlwZS5tZWFzdXJlPTNEZnVuY3Rpb24oZCxnKXt2YXIgZj0zRDA7dmFy PQogYj0zRGcubGVuZ3RoO2Zvcih2YXIgZT0zRDA7ZTxiO2UrKyl7dmFyIGg9M0R0aGlzLmxldHRl cihnLmNoYXJBdChlKSk7aWYoaCk9CntmKz0zRGgud2lkdGgqdGhpcy5ub3JtYWxpemVkRm9udFNp emUvMjUqdGhpcy5mb250U3RyZXRjaH19cmV0dXJuIGZ9O2EuanFwbD0Kb3QuQ2FudmFzVGV4dFJl bmRlcmVyLnByb3RvdHlwZS5kcmF3PTNEZnVuY3Rpb24ocyxuKXt2YXIgcj0zRDA7dmFyIG89M0R0 aGlzPQouaGVpZ2h0KjAuNzI7dmFyIHA9M0QwO3ZhciBsPTNEbi5sZW5ndGg7dmFyIGs9M0R0aGlz Lm5vcm1hbGl6ZWRGb250U2l6ZS8yNTs9CnMuc2F2ZSgpO3ZhciBoLGY7aWYoKC1NYXRoLlBJLzI8 PTNEdGhpcy5hbmdsZSYmdGhpcy5hbmdsZTw9M0QwKXx8KE1hdGguUEkqMz0KLzI8PTNEdGhpcy5h bmdsZSYmdGhpcy5hbmdsZTw9M0RNYXRoLlBJKjIpKXtoPTNEMDtmPTNELU1hdGguc2luKHRoaXMu YW5nbGUpPQoqdGhpcy53aWR0aH1lbHNle2lmKCgwPHRoaXMuYW5nbGUmJnRoaXMuYW5nbGU8PTNE TWF0aC5QSS8yKXx8KC1NYXRoLlBJKjI8PQo9M0R0aGlzLmFuZ2xlJiZ0aGlzLmFuZ2xlPD0zRC1N YXRoLlBJKjMvMikpe2g9M0RNYXRoLnNpbih0aGlzLmFuZ2xlKSp0aGlzLmg9CmVpZ2h0O2Y9M0Qw fWVsc2V7aWYoKC1NYXRoLlBJPHRoaXMuYW5nbGUmJnRoaXMuYW5nbGU8LU1hdGguUEkvMil8fChN YXRoLlBJPD0KPTNEdGhpcy5hbmdsZSYmdGhpcy5hbmdsZTw9M0RNYXRoLlBJKjMvMikpe2g9M0Qt TWF0aC5jb3ModGhpcy5hbmdsZSkqdGhpcy53PQppZHRoO2Y9M0QtTWF0aC5zaW4odGhpcy5hbmds ZSkqdGhpcy53aWR0aC1NYXRoLmNvcyh0aGlzLmFuZ2xlKSp0aGlzLmhlaWdodH09CmVsc2V7aWYo KC1NYXRoLlBJKjMvMjx0aGlzLmFuZ2xlJiZ0aGlzLmFuZ2xlPE1hdGguUEkpfHwoTWF0aC5QSS8y PHRoaXMuYW5nbD0KZSYmdGhpcy5hbmdsZTxNYXRoLlBJKSl7aD0zRE1hdGguc2luKHRoaXMuYW5n bGUpKnRoaXMuaGVpZ2h0LU1hdGguY29zKHRoaXMuPQphbmdsZSkqdGhpcy53aWR0aDtmPTNELU1h dGguY29zKHRoaXMuYW5nbGUpKnRoaXMuaGVpZ2h0fX19fXMuc3Ryb2tlU3R5bGU9M0Q9CnRoaXMu ZmlsbFN0eWxlO3MuZmlsbFN0eWxlPTNEdGhpcy5maWxsU3R5bGU7cy50cmFuc2xhdGUoaCxmKTtz LnJvdGF0ZSh0aGlzLj0KYW5nbGUpO3MubGluZUNhcD0zRCJyb3VuZCI7dmFyIHQ9M0QodGhpcy5u b3JtYWxpemVkRm9udFNpemU+MzApPzI6MisoMzAtdGhpPQpzLm5vcm1hbGl6ZWRGb250U2l6ZSkv MjA7cy5saW5lV2lkdGg9M0R0KmsqdGhpcy5mb250V2VpZ2h0MkZsb2F0KHRoaXMuZm9udFc9CmVp Z2h0KTtmb3IodmFyIGc9M0QwO2c8bDtnKyspe3ZhciBtPTNEdGhpcy5sZXR0ZXIobi5jaGFyQXQo ZykpO2lmKCFtKXtjb250aT0KbnVlfXMuYmVnaW5QYXRoKCk7dmFyIGU9M0QxO3ZhciBiPTNEMDtm b3IodmFyIGQ9M0QwO2Q8bS5wb2ludHMubGVuZ3RoO2QrKyl7PQp2YXIgcT0zRG0ucG9pbnRzW2Rd O2lmKHFbMF09M0Q9M0QtMSYmcVsxXT0zRD0zRC0xKXtlPTNEMTtjb250aW51ZX1pZihlKXtzLm09 Cm92ZVRvKHIrcVswXSprKnRoaXMuZm9udFN0cmV0Y2gsby1xWzFdKmspO2U9M0RmYWxzZX1lbHNl e3MubGluZVRvKHIrcVswXSprKj0KdGhpcy5mb250U3RyZXRjaCxvLXFbMV0qayl9fXMuc3Ryb2tl KCk7cis9M0RtLndpZHRoKmsqdGhpcy5mb250U3RyZXRjaH1zLnJlPQpzdG9yZSgpO3JldHVybiBw fTthLmpxcGxvdC5DYW52YXNUZXh0UmVuZGVyZXIucHJvdG90eXBlLmxldHRlcnM9M0R7IiAiOnt3 aWQ9CnRoOjE2LHBvaW50czpbXX0sIiEiOnt3aWR0aDoxMCxwb2ludHM6W1s1LDIxXSxbNSw3XSxb LTEsLTFdLFs1LDJdLFs0LDFdLFs1LD0KMF0sWzYsMV0sWzUsMl1dfSwnIic6e3dpZHRoOjE2LHBv aW50czpbWzQsMjFdLFs0LDE0XSxbLTEsLTFdLFsxMiwyMV0sWzEyLDE0PQpdXX0sIiMiOnt3aWR0 aDoyMSxwb2ludHM6W1sxMSwyNV0sWzQsLTddLFstMSwtMV0sWzE3LDI1XSxbMTAsLTddLFstMSwt MV0sWzQ9CiwxMl0sWzE4LDEyXSxbLTEsLTFdLFszLDZdLFsxNyw2XV19LCIkIjp7d2lkdGg6MjAs cG9pbnRzOltbOCwyNV0sWzgsLTRdLFstMT0KLC0xXSxbMTIsMjVdLFsxMiwtNF0sWy0xLC0xXSxb MTcsMThdLFsxNSwyMF0sWzEyLDIxXSxbOCwyMV0sWzUsMjBdLFszLDE4XSxbPQozLDE2XSxbNCwx NF0sWzUsMTNdLFs3LDEyXSxbMTMsMTBdLFsxNSw5XSxbMTYsOF0sWzE3LDZdLFsxNywzXSxbMTUs MV0sWzEyLDA9Cl0sWzgsMF0sWzUsMV0sWzMsM11dfSwiJSI6e3dpZHRoOjI0LHBvaW50czpbWzIx LDIxXSxbMywwXSxbLTEsLTFdLFs4LDIxXSxbMT0KMCwxOV0sWzEwLDE3XSxbOSwxNV0sWzcsMTRd LFs1LDE0XSxbMywxNl0sWzMsMThdLFs0LDIwXSxbNiwyMV0sWzgsMjFdLFsxMCwyPQowXSxbMTMs MTldLFsxNiwxOV0sWzE5LDIwXSxbMjEsMjFdLFstMSwtMV0sWzE3LDddLFsxNSw2XSxbMTQsNF0s WzE0LDJdLFsxNiw9CjBdLFsxOCwwXSxbMjAsMV0sWzIxLDNdLFsyMSw1XSxbMTksN10sWzE3LDdd XX0sIiYiOnt3aWR0aDoyNixwb2ludHM6W1syMywxMj0KXSxbMjMsMTNdLFsyMiwxNF0sWzIxLDE0 XSxbMjAsMTNdLFsxOSwxMV0sWzE3LDZdLFsxNSwzXSxbMTMsMV0sWzExLDBdLFs3LDBdPQosWzUs MV0sWzQsMl0sWzMsNF0sWzMsNl0sWzQsOF0sWzUsOV0sWzEyLDEzXSxbMTMsMTRdLFsxNCwxNl0s WzE0LDE4XSxbMTMsMjA9Cl0sWzExLDIxXSxbOSwyMF0sWzgsMThdLFs4LDE2XSxbOSwxM10sWzEx LDEwXSxbMTYsM10sWzE4LDFdLFsyMCwwXSxbMjIsMF0sWz0KMjMsMV0sWzIzLDJdXX0sIiciOnt3 aWR0aDoxMCxwb2ludHM6W1s1LDE5XSxbNCwyMF0sWzUsMjFdLFs2LDIwXSxbNiwxOF0sWzUsPQox Nl0sWzQsMTVdXX0sIigiOnt3aWR0aDoxNCxwb2ludHM6W1sxMSwyNV0sWzksMjNdLFs3LDIwXSxb NSwxNl0sWzQsMTFdLFs0LDc9Cl0sWzUsMl0sWzcsLTJdLFs5LC01XSxbMTEsLTddXX0sIikiOnt3 aWR0aDoxNCxwb2ludHM6W1szLDI1XSxbNSwyM10sWzcsMjBdLD0KWzksMTZdLFsxMCwxMV0sWzEw LDddLFs5LDJdLFs3LC0yXSxbNSwtNV0sWzMsLTddXX0sIioiOnt3aWR0aDoxNixwb2ludHM6W1s4 PQosMjFdLFs4LDldLFstMSwtMV0sWzMsMThdLFsxMywxMl0sWy0xLC0xXSxbMTMsMThdLFszLDEy XV19LCIrIjp7d2lkdGg6MjYscG89CmludHM6W1sxMywxOF0sWzEzLDBdLFstMSwtMV0sWzQsOV0s WzIyLDldXX0sIiwiOnt3aWR0aDoxMCxwb2ludHM6W1s2LDFdLFs1LD0KMF0sWzQsMV0sWzUsMl0s WzYsMV0sWzYsLTFdLFs1LC0zXSxbNCwtNF1dfSwiLSI6e3dpZHRoOjE4LHBvaW50czpbWzYsOV0s WzEyPQosOV1dfSwiLiI6e3dpZHRoOjEwLHBvaW50czpbWzUsMl0sWzQsMV0sWzUsMF0sWzYsMV0s WzUsMl1dfSwiLyI6e3dpZHRoOjIyLHA9Cm9pbnRzOltbMjAsMjVdLFsyLC03XV19LCIwIjp7d2lk dGg6MjAscG9pbnRzOltbOSwyMV0sWzYsMjBdLFs0LDE3XSxbMywxMl0sWz0KMyw5XSxbNCw0XSxb NiwxXSxbOSwwXSxbMTEsMF0sWzE0LDFdLFsxNiw0XSxbMTcsOV0sWzE3LDEyXSxbMTYsMTddLFsx NCwyMF0sPQpbMTEsMjFdLFs5LDIxXV19LCIxIjp7d2lkdGg6MjAscG9pbnRzOltbNiwxN10sWzgs MThdLFsxMSwyMV0sWzExLDBdXX0sIjIiOns9CndpZHRoOjIwLHBvaW50czpbWzQsMTZdLFs0LDE3 XSxbNSwxOV0sWzYsMjBdLFs4LDIxXSxbMTIsMjFdLFsxNCwyMF0sWzE1LDE5XT0KLFsxNiwxN10s WzE2LDE1XSxbMTUsMTNdLFsxMywxMF0sWzMsMF0sWzE3LDBdXX0sIjMiOnt3aWR0aDoyMCxwb2lu dHM6W1s1LDIxPQpdLFsxNiwyMV0sWzEwLDEzXSxbMTMsMTNdLFsxNSwxMl0sWzE2LDExXSxbMTcs OF0sWzE3LDZdLFsxNiwzXSxbMTQsMV0sWzExLDA9Cl0sWzgsMF0sWzUsMV0sWzQsMl0sWzMsNF1d fSwiNCI6e3dpZHRoOjIwLHBvaW50czpbWzEzLDIxXSxbMyw3XSxbMTgsN10sWy0xLD0KLTFdLFsx MywyMV0sWzEzLDBdXX0sIjUiOnt3aWR0aDoyMCxwb2ludHM6W1sxNSwyMV0sWzUsMjFdLFs0LDEy XSxbNSwxM10sWzgsPQoxNF0sWzExLDE0XSxbMTQsMTNdLFsxNiwxMV0sWzE3LDhdLFsxNyw2XSxb MTYsM10sWzE0LDFdLFsxMSwwXSxbOCwwXSxbNSwxXSw9Cls0LDJdLFszLDRdXX0sIjYiOnt3aWR0 aDoyMCxwb2ludHM6W1sxNiwxOF0sWzE1LDIwXSxbMTIsMjFdLFsxMCwyMV0sWzcsMjBdLD0KWzUs MTddLFs0LDEyXSxbNCw3XSxbNSwzXSxbNywxXSxbMTAsMF0sWzExLDBdLFsxNCwxXSxbMTYsM10s WzE3LDZdLFsxNyw3XSxbPQoxNiwxMF0sWzE0LDEyXSxbMTEsMTNdLFsxMCwxM10sWzcsMTJdLFs1 LDEwXSxbNCw3XV19LCI3Ijp7d2lkdGg6MjAscG9pbnRzOls9ClsxNywyMV0sWzcsMF0sWy0xLC0x XSxbMywyMV0sWzE3LDIxXV19LCI4Ijp7d2lkdGg6MjAscG9pbnRzOltbOCwyMV0sWzUsMjBdLD0K WzQsMThdLFs0LDE2XSxbNSwxNF0sWzcsMTNdLFsxMSwxMl0sWzE0LDExXSxbMTYsOV0sWzE3LDdd LFsxNyw0XSxbMTYsMl0sWzE1PQosMV0sWzEyLDBdLFs4LDBdLFs1LDFdLFs0LDJdLFszLDRdLFsz LDddLFs0LDldLFs2LDExXSxbOSwxMl0sWzEzLDEzXSxbMTUsMTQ9Cl0sWzE2LDE2XSxbMTYsMThd LFsxNSwyMF0sWzEyLDIxXSxbOCwyMV1dfSwiOSI6e3dpZHRoOjIwLHBvaW50czpbWzE2LDE0XSxb MT0KNSwxMV0sWzEzLDldLFsxMCw4XSxbOSw4XSxbNiw5XSxbNCwxMV0sWzMsMTRdLFszLDE1XSxb NCwxOF0sWzYsMjBdLFs5LDIxXSxbPQoxMCwyMV0sWzEzLDIwXSxbMTUsMThdLFsxNiwxNF0sWzE2 LDldLFsxNSw0XSxbMTMsMV0sWzEwLDBdLFs4LDBdLFs1LDFdLFs0LDM9Cl1dfSwiOiI6e3dpZHRo OjEwLHBvaW50czpbWzUsMTRdLFs0LDEzXSxbNSwxMl0sWzYsMTNdLFs1LDE0XSxbLTEsLTFdLFs1 LDJdLD0KWzQsMV0sWzUsMF0sWzYsMV0sWzUsMl1dfSwiOyI6e3dpZHRoOjEwLHBvaW50czpbWzUs MTRdLFs0LDEzXSxbNSwxMl0sWzYsMTNdPQosWzUsMTRdLFstMSwtMV0sWzYsMV0sWzUsMF0sWzQs MV0sWzUsMl0sWzYsMV0sWzYsLTFdLFs1LC0zXSxbNCwtNF1dfSwiPCI6e3c9CmlkdGg6MjQscG9p bnRzOltbMjAsMThdLFs0LDldLFsyMCwwXV19LCI9M0QiOnt3aWR0aDoyNixwb2ludHM6W1s0LDEy XSxbMjIsMT0KMl0sWy0xLC0xXSxbNCw2XSxbMjIsNl1dfSwiPiI6e3dpZHRoOjI0LHBvaW50czpb WzQsMThdLFsyMCw5XSxbNCwwXV19LCI/Ijp7PQp3aWR0aDoxOCxwb2ludHM6W1szLDE2XSxbMywx N10sWzQsMTldLFs1LDIwXSxbNywyMV0sWzExLDIxXSxbMTMsMjBdLFsxNCwxOV09CixbMTUsMTdd LFsxNSwxNV0sWzE0LDEzXSxbMTMsMTJdLFs5LDEwXSxbOSw3XSxbLTEsLTFdLFs5LDJdLFs4LDFd LFs5LDBdLFsxMD0KLDFdLFs5LDJdXX0sIkAiOnt3aWR0aDoyNyxwb2ludHM6W1sxOCwxM10sWzE3 LDE1XSxbMTUsMTZdLFsxMiwxNl0sWzEwLDE1XSxbPQo5LDE0XSxbOCwxMV0sWzgsOF0sWzksNl0s WzExLDVdLFsxNCw1XSxbMTYsNl0sWzE3LDhdLFstMSwtMV0sWzEyLDE2XSxbMTAsMTQ9Cl0sWzks MTFdLFs5LDhdLFsxMCw2XSxbMTEsNV0sWy0xLC0xXSxbMTgsMTZdLFsxNyw4XSxbMTcsNl0sWzE5 LDVdLFsyMSw1XSxbMj0KMyw3XSxbMjQsMTBdLFsyNCwxMl0sWzIzLDE1XSxbMjIsMTddLFsyMCwx OV0sWzE4LDIwXSxbMTUsMjFdLFsxMiwyMV0sWzksMjBdPQosWzcsMTldLFs1LDE3XSxbNCwxNV0s WzMsMTJdLFszLDldLFs0LDZdLFs1LDRdLFs3LDJdLFs5LDFdLFsxMiwwXSxbMTUsMF0sWzE9Cjgs MV0sWzIwLDJdLFsyMSwzXSxbLTEsLTFdLFsxOSwxNl0sWzE4LDhdLFsxOCw2XSxbMTksNV1dfSxB Ont3aWR0aDoxOCxwb2ludD0KczpbWzksMjFdLFsxLDBdLFstMSwtMV0sWzksMjFdLFsxNywwXSxb LTEsLTFdLFs0LDddLFsxNCw3XV19LEI6e3dpZHRoOjIxLHBvPQppbnRzOltbNCwyMV0sWzQsMF0s Wy0xLC0xXSxbNCwyMV0sWzEzLDIxXSxbMTYsMjBdLFsxNywxOV0sWzE4LDE3XSxbMTgsMTVdLFs9 CjE3LDEzXSxbMTYsMTJdLFsxMywxMV0sWy0xLC0xXSxbNCwxMV0sWzEzLDExXSxbMTYsMTBdLFsx Nyw5XSxbMTgsN10sWzE4LDRdLD0KWzE3LDJdLFsxNiwxXSxbMTMsMF0sWzQsMF1dfSxDOnt3aWR0 aDoyMSxwb2ludHM6W1sxOCwxNl0sWzE3LDE4XSxbMTUsMjBdLFsxPQozLDIxXSxbOSwyMV0sWzcs MjBdLFs1LDE4XSxbNCwxNl0sWzMsMTNdLFszLDhdLFs0LDVdLFs1LDNdLFs3LDFdLFs5LDBdLFsx Myw9CjBdLFsxNSwxXSxbMTcsM10sWzE4LDVdXX0sRDp7d2lkdGg6MjEscG9pbnRzOltbNCwyMV0s WzQsMF0sWy0xLC0xXSxbNCwyMV0sWz0KMTEsMjFdLFsxNCwyMF0sWzE2LDE4XSxbMTcsMTZdLFsx OCwxM10sWzE4LDhdLFsxNyw1XSxbMTYsM10sWzE0LDFdLFsxMSwwXSxbPQo0LDBdXX0sRTp7d2lk dGg6MTkscG9pbnRzOltbNCwyMV0sWzQsMF0sWy0xLC0xXSxbNCwyMV0sWzE3LDIxXSxbLTEsLTFd LFs0LDE9CjFdLFsxMiwxMV0sWy0xLC0xXSxbNCwwXSxbMTcsMF1dfSxGOnt3aWR0aDoxOCxwb2lu dHM6W1s0LDIxXSxbNCwwXSxbLTEsLTFdLD0KWzQsMjFdLFsxNywyMV0sWy0xLC0xXSxbNCwxMV0s WzEyLDExXV19LEc6e3dpZHRoOjIxLHBvaW50czpbWzE4LDE2XSxbMTcsMThdPQosWzE1LDIwXSxb MTMsMjFdLFs5LDIxXSxbNywyMF0sWzUsMThdLFs0LDE2XSxbMywxM10sWzMsOF0sWzQsNV0sWzUs M10sWzcsMV09CixbOSwwXSxbMTMsMF0sWzE1LDFdLFsxNywzXSxbMTgsNV0sWzE4LDhdLFstMSwt MV0sWzEzLDhdLFsxOCw4XV19LEg6e3dpZHRoOj0KMjIscG9pbnRzOltbNCwyMV0sWzQsMF0sWy0x LC0xXSxbMTgsMjFdLFsxOCwwXSxbLTEsLTFdLFs0LDExXSxbMTgsMTFdXX0sSTp7PQp3aWR0aDo4 LHBvaW50czpbWzQsMjFdLFs0LDBdXX0sSjp7d2lkdGg6MTYscG9pbnRzOltbMTIsMjFdLFsxMiw1 XSxbMTEsMl0sWzE9CjAsMV0sWzgsMF0sWzYsMF0sWzQsMV0sWzMsMl0sWzIsNV0sWzIsN11dfSxL Ont3aWR0aDoyMSxwb2ludHM6W1s0LDIxXSxbNCwwXT0KLFstMSwtMV0sWzE4LDIxXSxbNCw3XSxb LTEsLTFdLFs5LDEyXSxbMTgsMF1dfSxMOnt3aWR0aDoxNyxwb2ludHM6W1s0LDIxXSxbPQo0LDBd LFstMSwtMV0sWzQsMF0sWzE2LDBdXX0sTTp7d2lkdGg6MjQscG9pbnRzOltbNCwyMV0sWzQsMF0s Wy0xLC0xXSxbNCwyMV09CixbMTIsMF0sWy0xLC0xXSxbMjAsMjFdLFsxMiwwXSxbLTEsLTFdLFsy MCwyMV0sWzIwLDBdXX0sTjp7d2lkdGg6MjIscG9pbnRzOj0KW1s0LDIxXSxbNCwwXSxbLTEsLTFd LFs0LDIxXSxbMTgsMF0sWy0xLC0xXSxbMTgsMjFdLFsxOCwwXV19LE86e3dpZHRoOjIyLHBvPQpp bnRzOltbOSwyMV0sWzcsMjBdLFs1LDE4XSxbNCwxNl0sWzMsMTNdLFszLDhdLFs0LDVdLFs1LDNd LFs3LDFdLFs5LDBdLFsxMyw9CjBdLFsxNSwxXSxbMTcsM10sWzE4LDVdLFsxOSw4XSxbMTksMTNd LFsxOCwxNl0sWzE3LDE4XSxbMTUsMjBdLFsxMywyMV0sWzksMj0KMV1dfSxQOnt3aWR0aDoyMSxw b2ludHM6W1s0LDIxXSxbNCwwXSxbLTEsLTFdLFs0LDIxXSxbMTMsMjFdLFsxNiwyMF0sWzE3LDE5 PQpdLFsxOCwxN10sWzE4LDE0XSxbMTcsMTJdLFsxNiwxMV0sWzEzLDEwXSxbNCwxMF1dfSxROnt3 aWR0aDoyMixwb2ludHM6W1s5LDI9CjFdLFs3LDIwXSxbNSwxOF0sWzQsMTZdLFszLDEzXSxbMyw4 XSxbNCw1XSxbNSwzXSxbNywxXSxbOSwwXSxbMTMsMF0sWzE1LDFdLD0KWzE3LDNdLFsxOCw1XSxb MTksOF0sWzE5LDEzXSxbMTgsMTZdLFsxNywxOF0sWzE1LDIwXSxbMTMsMjFdLFs5LDIxXSxbLTEs LTFdPQosWzEyLDRdLFsxOCwtMl1dfSxSOnt3aWR0aDoyMSxwb2ludHM6W1s0LDIxXSxbNCwwXSxb LTEsLTFdLFs0LDIxXSxbMTMsMjFdLFs9CjE2LDIwXSxbMTcsMTldLFsxOCwxN10sWzE4LDE1XSxb MTcsMTNdLFsxNiwxMl0sWzEzLDExXSxbNCwxMV0sWy0xLC0xXSxbMTEsMT0KMV0sWzE4LDBdXX0s Uzp7d2lkdGg6MjAscG9pbnRzOltbMTcsMThdLFsxNSwyMF0sWzEyLDIxXSxbOCwyMV0sWzUsMjBd LFszLDE4PQpdLFszLDE2XSxbNCwxNF0sWzUsMTNdLFs3LDEyXSxbMTMsMTBdLFsxNSw5XSxbMTYs OF0sWzE3LDZdLFsxNywzXSxbMTUsMV0sWzE9CjIsMF0sWzgsMF0sWzUsMV0sWzMsM11dfSxUOnt3 aWR0aDoxNixwb2ludHM6W1s4LDIxXSxbOCwwXSxbLTEsLTFdLFsxLDIxXSxbMT0KNSwyMV1dfSxV Ont3aWR0aDoyMixwb2ludHM6W1s0LDIxXSxbNCw2XSxbNSwzXSxbNywxXSxbMTAsMF0sWzEyLDBd LFsxNSwxXSxbPQoxNywzXSxbMTgsNl0sWzE4LDIxXV19LFY6e3dpZHRoOjE4LHBvaW50czpbWzEs MjFdLFs5LDBdLFstMSwtMV0sWzE3LDIxXSxbOSw9CjBdXX0sVzp7d2lkdGg6MjQscG9pbnRzOltb MiwyMV0sWzcsMF0sWy0xLC0xXSxbMTIsMjFdLFs3LDBdLFstMSwtMV0sWzEyLDIxXT0KLFsxNyww XSxbLTEsLTFdLFsyMiwyMV0sWzE3LDBdXX0sWDp7d2lkdGg6MjAscG9pbnRzOltbMywyMV0sWzE3 LDBdLFstMSwtMV0sPQpbMTcsMjFdLFszLDBdXX0sWTp7d2lkdGg6MTgscG9pbnRzOltbMSwyMV0s WzksMTFdLFs5LDBdLFstMSwtMV0sWzE3LDIxXSxbOSw9CjExXV19LFo6e3dpZHRoOjIwLHBvaW50 czpbWzE3LDIxXSxbMywwXSxbLTEsLTFdLFszLDIxXSxbMTcsMjFdLFstMSwtMV0sWzMsMD0KXSxb MTcsMF1dfSwiWyI6e3dpZHRoOjE0LHBvaW50czpbWzQsMjVdLFs0LC03XSxbLTEsLTFdLFs1LDI1 XSxbNSwtN10sWy0xLC0xPQpdLFs0LDI1XSxbMTEsMjVdLFstMSwtMV0sWzQsLTddLFsxMSwtN11d fSwiXFwiOnt3aWR0aDoxNCxwb2ludHM6W1swLDIxXSxbMTQ9CiwtM11dfSwiXSI6e3dpZHRoOjE0 LHBvaW50czpbWzksMjVdLFs5LC03XSxbLTEsLTFdLFsxMCwyNV0sWzEwLC03XSxbLTEsLTFdLD0K WzMsMjVdLFsxMCwyNV0sWy0xLC0xXSxbMywtN10sWzEwLC03XV19LCJeIjp7d2lkdGg6MTYscG9p bnRzOltbNiwxNV0sWzgsMThdPQosWzEwLDE1XSxbLTEsLTFdLFszLDEyXSxbOCwxN10sWzEzLDEy XSxbLTEsLTFdLFs4LDE3XSxbOCwwXV19LF86e3dpZHRoOjE2LHA9Cm9pbnRzOltbMCwtMl0sWzE2 LC0yXV19LCJgIjp7d2lkdGg6MTAscG9pbnRzOltbNiwyMV0sWzUsMjBdLFs0LDE4XSxbNCwxNl0s Wz0KNSwxNV0sWzYsMTZdLFs1LDE3XV19LGE6e3dpZHRoOjE5LHBvaW50czpbWzE1LDE0XSxbMTUs MF0sWy0xLC0xXSxbMTUsMTFdLFsxPQozLDEzXSxbMTEsMTRdLFs4LDE0XSxbNiwxM10sWzQsMTFd LFszLDhdLFszLDZdLFs0LDNdLFs2LDFdLFs4LDBdLFsxMSwwXSxbMTM9CiwxXSxbMTUsM11dfSxi Ont3aWR0aDoxOSxwb2ludHM6W1s0LDIxXSxbNCwwXSxbLTEsLTFdLFs0LDExXSxbNiwxM10sWzgs MTRdLD0KWzExLDE0XSxbMTMsMTNdLFsxNSwxMV0sWzE2LDhdLFsxNiw2XSxbMTUsM10sWzEzLDFd LFsxMSwwXSxbOCwwXSxbNiwxXSxbNCwzPQpdXX0sYzp7d2lkdGg6MTgscG9pbnRzOltbMTUsMTFd LFsxMywxM10sWzExLDE0XSxbOCwxNF0sWzYsMTNdLFs0LDExXSxbMyw4XSw9ClszLDZdLFs0LDNd LFs2LDFdLFs4LDBdLFsxMSwwXSxbMTMsMV0sWzE1LDNdXX0sZDp7d2lkdGg6MTkscG9pbnRzOltb MTUsMjFdLD0KWzE1LDBdLFstMSwtMV0sWzE1LDExXSxbMTMsMTNdLFsxMSwxNF0sWzgsMTRdLFs2 LDEzXSxbNCwxMV0sWzMsOF0sWzMsNl0sWzQsPQozXSxbNiwxXSxbOCwwXSxbMTEsMF0sWzEzLDFd LFsxNSwzXV19LGU6e3dpZHRoOjE4LHBvaW50czpbWzMsOF0sWzE1LDhdLFsxNSw9CjEwXSxbMTQs MTJdLFsxMywxM10sWzExLDE0XSxbOCwxNF0sWzYsMTNdLFs0LDExXSxbMyw4XSxbMyw2XSxbNCwz XSxbNiwxXSxbOD0KLDBdLFsxMSwwXSxbMTMsMV0sWzE1LDNdXX0sZjp7d2lkdGg6MTIscG9pbnRz OltbMTAsMjFdLFs4LDIxXSxbNiwyMF0sWzUsMTddPQosWzUsMF0sWy0xLC0xXSxbMiwxNF0sWzks MTRdXX0sZzp7d2lkdGg6MTkscG9pbnRzOltbMTUsMTRdLFsxNSwtMl0sWzE0LC01XSw9ClsxMywt Nl0sWzExLC03XSxbOCwtN10sWzYsLTZdLFstMSwtMV0sWzE1LDExXSxbMTMsMTNdLFsxMSwxNF0s WzgsMTRdLFs2LDEzXT0KLFs0LDExXSxbMyw4XSxbMyw2XSxbNCwzXSxbNiwxXSxbOCwwXSxbMTEs MF0sWzEzLDFdLFsxNSwzXV19LGg6e3dpZHRoOjE5LHBvPQppbnRzOltbNCwyMV0sWzQsMF0sWy0x LC0xXSxbNCwxMF0sWzcsMTNdLFs5LDE0XSxbMTIsMTRdLFsxNCwxM10sWzE1LDEwXSxbMTU9Ciww XV19LGk6e3dpZHRoOjgscG9pbnRzOltbMywyMV0sWzQsMjBdLFs1LDIxXSxbNCwyMl0sWzMsMjFd LFstMSwtMV0sWzQsMTRdLD0KWzQsMF1dfSxqOnt3aWR0aDoxMCxwb2ludHM6W1s1LDIxXSxbNiwy MF0sWzcsMjFdLFs2LDIyXSxbNSwyMV0sWy0xLC0xXSxbNiwxPQo0XSxbNiwtM10sWzUsLTZdLFsz LC03XSxbMSwtN11dfSxrOnt3aWR0aDoxNyxwb2ludHM6W1s0LDIxXSxbNCwwXSxbLTEsLTFdLFs9 CjE0LDE0XSxbNCw0XSxbLTEsLTFdLFs4LDhdLFsxNSwwXV19LGw6e3dpZHRoOjgscG9pbnRzOltb NCwyMV0sWzQsMF1dfSxtOnt3aT0KZHRoOjMwLHBvaW50czpbWzQsMTRdLFs0LDBdLFstMSwtMV0s WzQsMTBdLFs3LDEzXSxbOSwxNF0sWzEyLDE0XSxbMTQsMTNdLFsxPQo1LDEwXSxbMTUsMF0sWy0x LC0xXSxbMTUsMTBdLFsxOCwxM10sWzIwLDE0XSxbMjMsMTRdLFsyNSwxM10sWzI2LDEwXSxbMjYs MF09Cl19LG46e3dpZHRoOjE5LHBvaW50czpbWzQsMTRdLFs0LDBdLFstMSwtMV0sWzQsMTBdLFs3 LDEzXSxbOSwxNF0sWzEyLDE0XSxbMT0KNCwxM10sWzE1LDEwXSxbMTUsMF1dfSxvOnt3aWR0aDox OSxwb2ludHM6W1s4LDE0XSxbNiwxM10sWzQsMTFdLFszLDhdLFszLDZdPQosWzQsM10sWzYsMV0s WzgsMF0sWzExLDBdLFsxMywxXSxbMTUsM10sWzE2LDZdLFsxNiw4XSxbMTUsMTFdLFsxMywxM10s WzExLDE9CjRdLFs4LDE0XV19LHA6e3dpZHRoOjE5LHBvaW50czpbWzQsMTRdLFs0LC03XSxbLTEs LTFdLFs0LDExXSxbNiwxM10sWzgsMTRdLD0KWzExLDE0XSxbMTMsMTNdLFsxNSwxMV0sWzE2LDhd LFsxNiw2XSxbMTUsM10sWzEzLDFdLFsxMSwwXSxbOCwwXSxbNiwxXSxbNCwzPQpdXX0scTp7d2lk dGg6MTkscG9pbnRzOltbMTUsMTRdLFsxNSwtN10sWy0xLC0xXSxbMTUsMTFdLFsxMywxM10sWzEx LDE0XSxbOCw9CjE0XSxbNiwxM10sWzQsMTFdLFszLDhdLFszLDZdLFs0LDNdLFs2LDFdLFs4LDBd LFsxMSwwXSxbMTMsMV0sWzE1LDNdXX0scjp7dz0KaWR0aDoxMyxwb2ludHM6W1s0LDE0XSxbNCww XSxbLTEsLTFdLFs0LDhdLFs1LDExXSxbNywxM10sWzksMTRdLFsxMiwxNF1dfSxzPQo6e3dpZHRo OjE3LHBvaW50czpbWzE0LDExXSxbMTMsMTNdLFsxMCwxNF0sWzcsMTRdLFs0LDEzXSxbMywxMV0s WzQsOV0sWzYsOF09CixbMTEsN10sWzEzLDZdLFsxNCw0XSxbMTQsM10sWzEzLDFdLFsxMCwwXSxb NywwXSxbNCwxXSxbMywzXV19LHQ6e3dpZHRoOjEyLD0KcG9pbnRzOltbNSwyMV0sWzUsNF0sWzYs MV0sWzgsMF0sWzEwLDBdLFstMSwtMV0sWzIsMTRdLFs5LDE0XV19LHU6e3dpZHRoOjE5PQoscG9p bnRzOltbNCwxNF0sWzQsNF0sWzUsMV0sWzcsMF0sWzEwLDBdLFsxMiwxXSxbMTUsNF0sWy0xLC0x XSxbMTUsMTRdLFsxNSw9CjBdXX0sdjp7d2lkdGg6MTYscG9pbnRzOltbMiwxNF0sWzgsMF0sWy0x LC0xXSxbMTQsMTRdLFs4LDBdXX0sdzp7d2lkdGg6MjIscD0Kb2ludHM6W1szLDE0XSxbNywwXSxb LTEsLTFdLFsxMSwxNF0sWzcsMF0sWy0xLC0xXSxbMTEsMTRdLFsxNSwwXSxbLTEsLTFdLFsxPQo5 LDE0XSxbMTUsMF1dfSx4Ont3aWR0aDoxNyxwb2ludHM6W1szLDE0XSxbMTQsMF0sWy0xLC0xXSxb MTQsMTRdLFszLDBdXX0seTo9Cnt3aWR0aDoxNixwb2ludHM6W1syLDE0XSxbOCwwXSxbLTEsLTFd LFsxNCwxNF0sWzgsMF0sWzYsLTRdLFs0LC02XSxbMiwtN10sWz0KMSwtN11dfSx6Ont3aWR0aDox Nyxwb2ludHM6W1sxNCwxNF0sWzMsMF0sWy0xLC0xXSxbMywxNF0sWzE0LDE0XSxbLTEsLTFdLFsz PQosMF0sWzE0LDBdXX0sInsiOnt3aWR0aDoxNCxwb2ludHM6W1s5LDI1XSxbNywyNF0sWzYsMjNd LFs1LDIxXSxbNSwxOV0sWzYsMTc9Cl0sWzcsMTZdLFs4LDE0XSxbOCwxMl0sWzYsMTBdLFstMSwt MV0sWzcsMjRdLFs2LDIyXSxbNiwyMF0sWzcsMThdLFs4LDE3XSxbOT0KLDE1XSxbOSwxM10sWzgs MTFdLFs0LDldLFs4LDddLFs5LDVdLFs5LDNdLFs4LDFdLFs3LDBdLFs2LC0yXSxbNiwtNF0sWzcs LTZdPQosWy0xLC0xXSxbNiw4XSxbOCw2XSxbOCw0XSxbNywyXSxbNiwxXSxbNSwtMV0sWzUsLTNd LFs2LC01XSxbNywtNl0sWzksLTddXX09CiwifCI6e3dpZHRoOjgscG9pbnRzOltbNCwyNV0sWzQs LTddXX0sIn0iOnt3aWR0aDoxNCxwb2ludHM6W1s1LDI1XSxbNywyNF0sWz0KOCwyM10sWzksMjFd LFs5LDE5XSxbOCwxN10sWzcsMTZdLFs2LDE0XSxbNiwxMl0sWzgsMTBdLFstMSwtMV0sWzcsMjRd LFs4LDIyPQpdLFs4LDIwXSxbNywxOF0sWzYsMTddLFs1LDE1XSxbNSwxM10sWzYsMTFdLFsxMCw5 XSxbNiw3XSxbNSw1XSxbNSwzXSxbNiwxXSw9Cls3LDBdLFs4LC0yXSxbOCwtNF0sWzcsLTZdLFst MSwtMV0sWzgsOF0sWzYsNl0sWzYsNF0sWzcsMl0sWzgsMV0sWzksLTFdLFs5LD0KLTNdLFs4LC01 XSxbNywtNl0sWzUsLTddXX0sIn4iOnt3aWR0aDoyNCxwb2ludHM6W1szLDZdLFszLDhdLFs0LDEx XSxbNiwxMl0sPQpbOCwxMl0sWzEwLDExXSxbMTQsOF0sWzE2LDddLFsxOCw3XSxbMjAsOF0sWzIx LDEwXSxbLTEsLTFdLFszLDhdLFs0LDEwXSxbNiw9CjExXSxbOCwxMV0sWzEwLDEwXSxbMTQsN10s WzE2LDZdLFsxOCw2XSxbMjAsN10sWzIxLDEwXSxbMjEsMTJdXX19O2EuanFwbG90Lj0KQ2FudmFz Rm9udFJlbmRlcmVyPTNEZnVuY3Rpb24oYil7Yj0zRGJ8fHt9O2lmKCFiLnB0MnB4KXtiLnB0MnB4 PTNEMS41fWEuanFwPQpsb3QuQ2FudmFzVGV4dFJlbmRlcmVyLmNhbGwodGhpcyxiKX07YS5qcXBs b3QuQ2FudmFzRm9udFJlbmRlcmVyLnByb3RvdHlwZT0KPTNEbmV3IGEuanFwbG90LkNhbnZhc1Rl eHRSZW5kZXJlcih7fSk7YS5qcXBsb3QuQ2FudmFzRm9udFJlbmRlcmVyLnByb3RvdHlwPQplLmNv bnN0cnVjdG9yPTNEYS5qcXBsb3QuQ2FudmFzRm9udFJlbmRlcmVyO2EuanFwbG90LkNhbnZhc0Zv bnRSZW5kZXJlci5wcm89CnRvdHlwZS5tZWFzdXJlPTNEZnVuY3Rpb24oYyxlKXt2YXIgZD0zRHRo aXMuZm9udFNpemUrIiAiK3RoaXMuZm9udEZhbWlseTtjLj0Kc2F2ZSgpO2MuZm9udD0zRGQ7dmFy IGI9M0RjLm1lYXN1cmVUZXh0KGUpLndpZHRoO2MucmVzdG9yZSgpO3JldHVybiBifTthLmpxPQpw bG90LkNhbnZhc0ZvbnRSZW5kZXJlci5wcm90b3R5cGUuZHJhdz0zRGZ1bmN0aW9uKGUsZyl7dmFy IGM9M0QwO3ZhciBoPTNEdGg9CmlzLmhlaWdodCowLjcyO2Uuc2F2ZSgpO3ZhciBkLGI7aWYoKC1N YXRoLlBJLzI8PTNEdGhpcy5hbmdsZSYmdGhpcy5hbmdsZTw9Cj0zRDApfHwoTWF0aC5QSSozLzI8 PTNEdGhpcy5hbmdsZSYmdGhpcy5hbmdsZTw9M0RNYXRoLlBJKjIpKXtkPTNEMDtiPTNELU1hdD0K aC5zaW4odGhpcy5hbmdsZSkqdGhpcy53aWR0aH1lbHNle2lmKCgwPHRoaXMuYW5nbGUmJnRoaXMu YW5nbGU8PTNETWF0aC5QSS8yPQopfHwoLU1hdGguUEkqMjw9M0R0aGlzLmFuZ2xlJiZ0aGlzLmFu Z2xlPD0zRC1NYXRoLlBJKjMvMikpe2Q9M0RNYXRoLnNpbih0aGk9CnMuYW5nbGUpKnRoaXMuaGVp Z2h0O2I9M0QwfWVsc2V7aWYoKC1NYXRoLlBJPHRoaXMuYW5nbGUmJnRoaXMuYW5nbGU8LU1hdGgu UD0KSS8yKXx8KE1hdGguUEk8PTNEdGhpcy5hbmdsZSYmdGhpcy5hbmdsZTw9M0RNYXRoLlBJKjMv Mikpe2Q9M0QtTWF0aC5jb3ModGhpPQpzLmFuZ2xlKSp0aGlzLndpZHRoO2I9M0QtTWF0aC5zaW4o dGhpcy5hbmdsZSkqdGhpcy53aWR0aC1NYXRoLmNvcyh0aGlzLmFuZ2w9CmUpKnRoaXMuaGVpZ2h0 fWVsc2V7aWYoKC1NYXRoLlBJKjMvMjx0aGlzLmFuZ2xlJiZ0aGlzLmFuZ2xlPE1hdGguUEkpfHwo TWF0aD0KLlBJLzI8dGhpcy5hbmdsZSYmdGhpcy5hbmdsZTxNYXRoLlBJKSl7ZD0zRE1hdGguc2lu KHRoaXMuYW5nbGUpKnRoaXMuaGVpZ2h0PQotTWF0aC5jb3ModGhpcy5hbmdsZSkqdGhpcy53aWR0 aDtiPTNELU1hdGguY29zKHRoaXMuYW5nbGUpKnRoaXMuaGVpZ2h0fX19fWU9Ci5zdHJva2VTdHls ZT0zRHRoaXMuZmlsbFN0eWxlO2UuZmlsbFN0eWxlPTNEdGhpcy5maWxsU3R5bGU7dmFyIGY9M0R0 aGlzLmZvbj0KdFNpemUrIiAiK3RoaXMuZm9udEZhbWlseTtlLmZvbnQ9M0RmO2UudHJhbnNsYXRl KGQsYik7ZS5yb3RhdGUodGhpcy5hbmdsZSk7PQplLmZpbGxUZXh0KGcsYyxoKTtlLnJlc3RvcmUo KX19KShqUXVlcnkpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKCmRpZmYgLXIgZGI5MmY2 ZTE5YjM4MTgwOTdiZDNkNWExNDlhY2Y4MGNlZDkwNjc1YyAtciBhMGQxYTkxZTA1YmVlMzJkZDVm MmZhYz0KOTNkODBmYmU5MzViYThjMjggY29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hh cnRzL3N0YXRpYy9wbHVnaW5zL2pxcGxvPQp0L3BsdWdpbnMvanFwbG90LmNhdGVnb3J5QXhpc1Jl bmRlcmVyLm1pbi5qcwotLS0gL2Rldi9udWxsCisrKyBiL2NvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6 YXRpb25zL2NoYXJ0cy9zdGF0aWMvcGx1Z2lucy9qcXBsb3QvcGx1Z2lucy9qcT0KcGxvdC5jYXRl Z29yeUF4aXNSZW5kZXJlci5taW4uanMKQEAgLTAsMCArMSwzIEBACisvKiBqcVBsb3QgMS4wLjhy MTI1MCB8IChjKSAyMDA5LTIwMTMgQ2hyaXMgTGVvbmVsbG8gfCBqcGxvdC5jb20KKyAgIGpzRGF0 ZSB8IChjKSAyMDEwLTIwMTMgQ2hyaXMgTGVvbmVsbG8KKyAqLyhmdW5jdGlvbihhKXthLmpxcGxv dC5DYXRlZ29yeUF4aXNSZW5kZXJlcj0zRGZ1bmN0aW9uKGIpe2EuanFwbG90LkxpbmVhPQpyQXhp c1JlbmRlcmVyLmNhbGwodGhpcyk7dGhpcy5zb3J0TWVyZ2VkTGFiZWxzPTNEZmFsc2V9O2EuanFw bG90LkNhdGVnb3J5QXg9CmlzUmVuZGVyZXIucHJvdG90eXBlPTNEbmV3IGEuanFwbG90LkxpbmVh ckF4aXNSZW5kZXJlcigpO2EuanFwbG90LkNhdGVnb3J5QT0KeGlzUmVuZGVyZXIucHJvdG90eXBl LmNvbnN0cnVjdG9yPTNEYS5qcXBsb3QuQ2F0ZWdvcnlBeGlzUmVuZGVyZXI7YS5qcXBsb3QuPQpD YXRlZ29yeUF4aXNSZW5kZXJlci5wcm90b3R5cGUuaW5pdD0zRGZ1bmN0aW9uKGUpe3RoaXMuZ3Jv dXBzPTNEMTt0aGlzLmdyb3U9CnBMYWJlbHM9M0RbXTt0aGlzLl9ncm91cExhYmVscz0zRFtdO3Ro aXMuX2dyb3VwZWQ9M0RmYWxzZTt0aGlzLl9iYXJzUGVyR3JvdT0KcD0zRG51bGw7dGhpcy5yZXZl cnNlPTNEZmFsc2U7YS5leHRlbmQodHJ1ZSx0aGlzLHt0aWNrT3B0aW9uczp7Zm9ybWF0U3RyaW5n PQo6IiVkIn19LGUpO3ZhciBiPTNEdGhpcy5fZGF0YUJvdW5kcztmb3IodmFyIGY9M0QwO2Y8dGhp cy5fc2VyaWVzLmxlbmd0aDtmKys9Cil7dmFyIGc9M0R0aGlzLl9zZXJpZXNbZl07aWYoZy5ncm91 cHMpe3RoaXMuZ3JvdXBzPTNEZy5ncm91cHN9dmFyIGg9M0RnLmRhdD0KYTtmb3IodmFyIGM9M0Qw O2M8aC5sZW5ndGg7YysrKXtpZih0aGlzLm5hbWU9M0Q9M0QieGF4aXMifHx0aGlzLm5hbWU9M0Q9 M0QiPQp4MmF4aXMiKXtpZihoW2NdWzBdPGIubWlufHxiLm1pbj0zRD0zRG51bGwpe2IubWluPTNE aFtjXVswXX1pZihoW2NdWzBdPmIubWE9Cnh8fGIubWF4PTNEPTNEbnVsbCl7Yi5tYXg9M0RoW2Nd WzBdfX1lbHNle2lmKGhbY11bMV08Yi5taW58fGIubWluPTNEPTNEbnVsbD0KKXtiLm1pbj0zRGhb Y11bMV19aWYoaFtjXVsxXT5iLm1heHx8Yi5tYXg9M0Q9M0RudWxsKXtiLm1heD0zRGhbY11bMV19 fX19aWYoPQp0aGlzLmdyb3VwTGFiZWxzLmxlbmd0aCl7dGhpcy5ncm91cHM9M0R0aGlzLmdyb3Vw TGFiZWxzLmxlbmd0aH19O2EuanFwbG90LkM9CmF0ZWdvcnlBeGlzUmVuZGVyZXIucHJvdG90eXBl LmNyZWF0ZVRpY2tzPTNEZnVuY3Rpb24oKXt2YXIgRD0zRHRoaXMuX3RpY2tzOz0KdmFyIHo9M0R0 aGlzLnRpY2tzO3ZhciBGPTNEdGhpcy5uYW1lO3ZhciBDPTNEdGhpcy5fZGF0YUJvdW5kczt2YXIg dixBO3ZhciBxPQosdzt2YXIgZCxjO3ZhciBiLHg7aWYoei5sZW5ndGgpe2lmKHRoaXMuZ3JvdXBz PjEmJiF0aGlzLl9ncm91cGVkKXt2YXIgcj0zRHo9Ci5sZW5ndGg7dmFyIHA9M0RwYXJzZUludChy L3RoaXMuZ3JvdXBzLDEwKTt2YXIgZT0zRDA7Zm9yKHZhciB4PTNEcDt4PHI7eCs9Cj0zRHApe3ou c3BsaWNlKHgrZSwwLCIgIik7ZSsrfXRoaXMuX2dyb3VwZWQ9M0R0cnVlfXRoaXMubWluPTNEMC41 O3RoaXMubWF4PQo9M0R6Lmxlbmd0aCswLjU7dmFyIG09M0R0aGlzLm1heC10aGlzLm1pbjt0aGlz Lm51bWJlclRpY2tzPTNEMip6Lmxlbmd0aCsxO2Y9Cm9yKHg9M0QwO3g8ei5sZW5ndGg7eCsrKXti PTNEdGhpcy5taW4rMip4Km0vKHRoaXMubnVtYmVyVGlja3MtMSk7dmFyIGg9M0RuZT0KdyB0aGlz LnRpY2tSZW5kZXJlcih0aGlzLnRpY2tPcHRpb25zKTtoLnNob3dMYWJlbD0zRGZhbHNlO2guc2V0 VGljayhiLHRoaXMuPQpuYW1lKTt0aGlzLl90aWNrcy5wdXNoKGgpO3ZhciBoPTNEbmV3IHRoaXMu dGlja1JlbmRlcmVyKHRoaXMudGlja09wdGlvbnMpO2g9Ci5sYWJlbD0zRHpbeF07aC5zaG93TWFy az0zRGZhbHNlO2guc2hvd0dyaWRsaW5lPTNEZmFsc2U7aC5zZXRUaWNrKGIrMC41LHRoaT0Kcy5u YW1lKTt0aGlzLl90aWNrcy5wdXNoKGgpfXZhciBoPTNEbmV3IHRoaXMudGlja1JlbmRlcmVyKHRo aXMudGlja09wdGlvbnMpPQo7aC5zaG93TGFiZWw9M0RmYWxzZTtoLnNldFRpY2soYisxLHRoaXMu bmFtZSk7dGhpcy5fdGlja3MucHVzaChoKX1lbHNle2lmKEY9Cj0zRD0zRCJ4YXhpcyJ8fEY9M0Q9 M0QieDJheGlzIil7dj0zRHRoaXMuX3Bsb3REaW1lbnNpb25zLndpZHRofWVsc2V7dj0zRHRoaT0K cy5fcGxvdERpbWVuc2lvbnMuaGVpZ2h0fWlmKHRoaXMubWluIT0zRG51bGwmJnRoaXMubWF4IT0z RG51bGwmJnRoaXMubnVtYmVyPQpUaWNrcyE9M0RudWxsKXt0aGlzLnRpY2tJbnRlcnZhbD0zRG51 bGx9aWYodGhpcy5taW4hPTNEbnVsbCYmdGhpcy5tYXghPTNEbnU9CmxsJiZ0aGlzLnRpY2tJbnRl cnZhbCE9M0RudWxsKXtpZihwYXJzZUludCgodGhpcy5tYXgtdGhpcy5taW4pL3RoaXMudGlja0lu dD0KZXJ2YWwsMTApIT0zRCh0aGlzLm1heC10aGlzLm1pbikvdGhpcy50aWNrSW50ZXJ2YWwpe3Ro aXMudGlja0ludGVydmFsPTNEbnVsPQpsfX12YXIgeT0zRFtdO3ZhciBCPTNEMDt2YXIgcT0zRDAu NTt2YXIgdyxFO3ZhciBmPTNEZmFsc2U7Zm9yKHZhciB4PTNEMDt4PHQ9Cmhpcy5fc2VyaWVzLmxl bmd0aDt4Kyspe3ZhciBrPTNEdGhpcy5fc2VyaWVzW3hdO2Zvcih2YXIgdT0zRDA7dTxrLmRhdGEu bGVuZz0KdGg7dSsrKXtpZih0aGlzLm5hbWU9M0Q9M0QieGF4aXMifHx0aGlzLm5hbWU9M0Q9M0Qi eDJheGlzIil7RT0zRGsuZGF0YVt1XVswPQpdfWVsc2V7RT0zRGsuZGF0YVt1XVsxXX1pZihhLmlu QXJyYXkoRSx5KT0zRD0zRC0xKXtmPTNEdHJ1ZTtCKz0zRDE7eS5wdXNoKEU9Cil9fX1pZihmJiZ0 aGlzLnNvcnRNZXJnZWRMYWJlbHMpe2lmKHR5cGVvZiB5WzBdPTNEPTNEInN0cmluZyIpe3kuc29y dCgpfWVscz0KZXt5LnNvcnQoZnVuY3Rpb24oaixpKXtyZXR1cm4gai1pfSl9fXRoaXMudGlja3M9 M0R5O2Zvcih2YXIgeD0zRDA7eDx0aGlzLl9zPQplcmllcy5sZW5ndGg7eCsrKXt2YXIgaz0zRHRo aXMuX3Nlcmllc1t4XTtmb3IodmFyIHU9M0QwO3U8ay5kYXRhLmxlbmd0aDt1Kys9Cil7aWYodGhp cy5uYW1lPTNEPTNEInhheGlzInx8dGhpcy5uYW1lPTNEPTNEIngyYXhpcyIpe0U9M0RrLmRhdGFb dV1bMF19ZWxzZT0Ke0U9M0RrLmRhdGFbdV1bMV19dmFyIG49M0RhLmluQXJyYXkoRSx5KSsxO2lm KHRoaXMubmFtZT0zRD0zRCJ4YXhpcyJ8fHRoaXMuPQpuYW1lPTNEPTNEIngyYXhpcyIpe2suZGF0 YVt1XVswXT0zRG59ZWxzZXtrLmRhdGFbdV1bMV09M0RufX19aWYodGhpcy5ncm91cHM9Cj4xJiYh dGhpcy5fZ3JvdXBlZCl7dmFyIHI9M0R5Lmxlbmd0aDt2YXIgcD0zRHBhcnNlSW50KHIvdGhpcy5n cm91cHMsMTApO3Zhcj0KIGU9M0QwO2Zvcih2YXIgeD0zRHA7eDxyO3grPTNEcCsxKXt5W3hdPTNE IiAifXRoaXMuX2dyb3VwZWQ9M0R0cnVlfXc9M0RCKzAuPQo1O2lmKHRoaXMubnVtYmVyVGlja3M9 M0Q9M0RudWxsKXt0aGlzLm51bWJlclRpY2tzPTNEMipCKzF9dmFyIG09M0R3LXE7dGhpcy49Cm1p bj0zRHE7dGhpcy5tYXg9M0R3O3ZhciBvPTNEMDt2YXIgZz0zRHBhcnNlSW50KDMrdi8xMCwxMCk7 dmFyIHA9M0RwYXJzZUludD0KKEIvZywxMCk7aWYodGhpcy50aWNrSW50ZXJ2YWw9M0Q9M0RudWxs KXt0aGlzLnRpY2tJbnRlcnZhbD0zRG0vKHRoaXMubnVtYmVyPQpUaWNrcy0xKX1mb3IodmFyIHg9 M0QwO3g8dGhpcy5udW1iZXJUaWNrczt4Kyspe2I9M0R0aGlzLm1pbit4KnRoaXMudGlja0ludGU9 CnJ2YWw7dmFyIGg9M0RuZXcgdGhpcy50aWNrUmVuZGVyZXIodGhpcy50aWNrT3B0aW9ucyk7aWYo eC8yPTNEPTNEcGFyc2VJbnQoeD0KLzIsMTApKXtoLnNob3dMYWJlbD0zRGZhbHNlO2guc2hvd01h cms9M0R0cnVlfWVsc2V7aWYocD4wJiZvPHApe2guc2hvd0xhYmVsPQo9M0RmYWxzZTtvKz0zRDF9 ZWxzZXtoLnNob3dMYWJlbD0zRHRydWU7bz0zRDB9aC5sYWJlbD0zRGguZm9ybWF0dGVyKGguZm9y bWE9CnRTdHJpbmcseVsoeC0xKS8yXSk7aC5zaG93TWFyaz0zRGZhbHNlO2guc2hvd0dyaWRsaW5l PTNEZmFsc2V9aC5zZXRUaWNrKGIsdD0KaGlzLm5hbWUpO3RoaXMuX3RpY2tzLnB1c2goaCl9fX07 YS5qcXBsb3QuQ2F0ZWdvcnlBeGlzUmVuZGVyZXIucHJvdG90eXBlLmRyPQphdz0zRGZ1bmN0aW9u KGIsail7aWYodGhpcy5zaG93KXt0aGlzLnJlbmRlcmVyLmNyZWF0ZVRpY2tzLmNhbGwodGhpcyk7 dmFyIGg9Cj0zRDA7dmFyIGM7aWYodGhpcy5fZWxlbSl7dGhpcy5fZWxlbS5lbXB0eUZvcmNlKCl9 dGhpcy5fZWxlbT0zRHRoaXMuX2VsZW18fD0KYSgnPGRpdiBjbGFzcz0zRCJqcXBsb3QtYXhpcyBq cXBsb3QtJyt0aGlzLm5hbWUrJyIgc3R5bGU9M0QicG9zaXRpb246YWJzb2x1PQp0ZTsiPjwvZGl2 PicpO2lmKHRoaXMubmFtZT0zRD0zRCJ4YXhpcyJ8fHRoaXMubmFtZT0zRD0zRCJ4MmF4aXMiKXt0 aGlzLl9lbGU9Cm0ud2lkdGgodGhpcy5fcGxvdERpbWVuc2lvbnMud2lkdGgpfWVsc2V7dGhpcy5f ZWxlbS5oZWlnaHQodGhpcy5fcGxvdERpbWVucz0KaW9ucy5oZWlnaHQpfXRoaXMubGFiZWxPcHRp b25zLmF4aXM9M0R0aGlzLm5hbWU7dGhpcy5fbGFiZWw9M0RuZXcgdGhpcy5sYWJlPQpsUmVuZGVy ZXIodGhpcy5sYWJlbE9wdGlvbnMpO2lmKHRoaXMuX2xhYmVsLnNob3cpe3ZhciBnPTNEdGhpcy5f bGFiZWwuZHJhdyg9CmIsaik7Zy5hcHBlbmRUbyh0aGlzLl9lbGVtKX12YXIgZj0zRHRoaXMuX3Rp Y2tzO2Zvcih2YXIgZT0zRDA7ZTxmLmxlbmd0aDtlKz0KKyl7dmFyIGQ9M0RmW2VdO2lmKGQuc2hv d0xhYmVsJiYoIWQuaXNNaW5vclRpY2t8fHRoaXMuc2hvd01pbm9yVGlja3MpKXt2YXIgPQpnPTNE ZC5kcmF3KGIsaik7Zy5hcHBlbmRUbyh0aGlzLl9lbGVtKX19dGhpcy5fZ3JvdXBMYWJlbHM9M0Rb XTtmb3IodmFyIGU9M0Q9CjA7ZTx0aGlzLmdyb3VwTGFiZWxzLmxlbmd0aDtlKyspe3ZhciBnPTNE YSgnPGRpdiBzdHlsZT0zRCJwb3NpdGlvbjphYnNvbHV0ZT0KOyIgY2xhc3M9M0QianFwbG90LScr dGhpcy5uYW1lKyctZ3JvdXBMYWJlbCI+PC9kaXY+Jyk7Zy5odG1sKHRoaXMuZ3JvdXBMYWJlPQps c1tlXSk7dGhpcy5fZ3JvdXBMYWJlbHMucHVzaChnKTtnLmFwcGVuZFRvKHRoaXMuX2VsZW0pfX1y ZXR1cm4gdGhpcy5fZWxlbX09CjthLmpxcGxvdC5DYXRlZ29yeUF4aXNSZW5kZXJlci5wcm90b3R5 cGUuc2V0PTNEZnVuY3Rpb24oKXt2YXIgZT0zRDA7dmFyIG07dj0KYXIgaz0zRDA7dmFyIGY9M0Qw O3ZhciBkPTNEKHRoaXMuX2xhYmVsPTNEPTNEbnVsbCk/ZmFsc2U6dGhpcy5fbGFiZWwuc2hvdztp PQpmKHRoaXMuc2hvdyl7dmFyIG49M0R0aGlzLl90aWNrcztmb3IodmFyIGM9M0QwO2M8bi5sZW5n dGg7YysrKXt2YXIgZz0zRG5bY109CjtpZihnLnNob3dMYWJlbCYmKCFnLmlzTWlub3JUaWNrfHx0 aGlzLnNob3dNaW5vclRpY2tzKSl7aWYodGhpcy5uYW1lPTNEPTNEIj0KeGF4aXMifHx0aGlzLm5h bWU9M0Q9M0QieDJheGlzIil7bT0zRGcuX2VsZW0ub3V0ZXJIZWlnaHQodHJ1ZSl9ZWxzZXttPTNE Zy5fPQplbGVtLm91dGVyV2lkdGgodHJ1ZSl9aWYobT5lKXtlPTNEbX19fXZhciBqPTNEMDtmb3Io dmFyIGM9M0QwO2M8dGhpcy5fZ3JvdXA9CkxhYmVscy5sZW5ndGg7YysrKXt2YXIgYj0zRHRoaXMu X2dyb3VwTGFiZWxzW2NdO2lmKHRoaXMubmFtZT0zRD0zRCJ4YXhpcyJ8fD0KdGhpcy5uYW1lPTNE PTNEIngyYXhpcyIpe209M0RiLm91dGVySGVpZ2h0KHRydWUpfWVsc2V7bT0zRGIub3V0ZXJXaWR0 aCh0cnVlPQopfWlmKG0+ail7aj0zRG19fWlmKGQpe2s9M0R0aGlzLl9sYWJlbC5fZWxlbS5vdXRl cldpZHRoKHRydWUpO2Y9M0R0aGlzLl9sYWI9CmVsLl9lbGVtLm91dGVySGVpZ2h0KHRydWUpfWlm KHRoaXMubmFtZT0zRD0zRCJ4YXhpcyIpe2UrPTNEaitmO3RoaXMuX2VsZW0uYz0Kc3Moe2hlaWdo dDplKyJweCIsbGVmdDoiMHB4Iixib3R0b206IjBweCJ9KX1lbHNle2lmKHRoaXMubmFtZT0zRD0z RCJ4MmF4aXMiPQope2UrPTNEaitmO3RoaXMuX2VsZW0uY3NzKHtoZWlnaHQ6ZSsicHgiLGxlZnQ6 IjBweCIsdG9wOiIwcHgifSl9ZWxzZXtpZih0aGk9CnMubmFtZT0zRD0zRCJ5YXhpcyIpe2UrPTNE aitrO3RoaXMuX2VsZW0uY3NzKHt3aWR0aDplKyJweCIsbGVmdDoiMHB4Iix0b3A6Ij0KMHB4In0p O2lmKGQmJnRoaXMuX2xhYmVsLmNvbnN0cnVjdG9yPTNEPTNEYS5qcXBsb3QuQXhpc0xhYmVsUmVu ZGVyZXIpe3RoaXMuPQpfbGFiZWwuX2VsZW0uY3NzKCJ3aWR0aCIsaysicHgiKX19ZWxzZXtlKz0z RGorazt0aGlzLl9lbGVtLmNzcyh7d2lkdGg6ZSsicHg9CiIscmlnaHQ6IjBweCIsdG9wOiIwcHgi fSk7aWYoZCYmdGhpcy5fbGFiZWwuY29uc3RydWN0b3I9M0Q9M0RhLmpxcGxvdC5BeGlzTD0KYWJl bFJlbmRlcmVyKXt0aGlzLl9sYWJlbC5fZWxlbS5jc3MoIndpZHRoIixrKyJweCIpfX19fX19O2Eu anFwbG90LkNhdGVnb3J5PQpBeGlzUmVuZGVyZXIucHJvdG90eXBlLnBhY2s9M0RmdW5jdGlvbihl LGMpe3ZhciBDPTNEdGhpcy5fdGlja3M7dmFyIHY9M0R0aGk9CnMubWF4O3ZhciBzPTNEdGhpcy5t aW47dmFyIG49M0RjLm1heDt2YXIgbD0zRGMubWluO3ZhciBxPTNEKHRoaXMuX2xhYmVsPTNEPQo9 M0RudWxsKT9mYWxzZTp0aGlzLl9sYWJlbC5zaG93O3ZhciB4O2Zvcih2YXIgciBpbiBlKXt0aGlz Ll9lbGVtLmNzcyhyLGVbcl09Cil9dGhpcy5fb2Zmc2V0cz0zRGM7dmFyIGc9M0RuLWw7dmFyIGs9 M0R2LXM7aWYoIXRoaXMucmV2ZXJzZSl7dGhpcy51MnA9M0RmdT0KbmN0aW9uKGgpe3JldHVybiho LXMpKmcvaytsfTt0aGlzLnAydT0zRGZ1bmN0aW9uKGgpe3JldHVybihoLWwpKmsvZytzfTtpZih0 PQpoaXMubmFtZT0zRD0zRCJ4YXhpcyJ8fHRoaXMubmFtZT0zRD0zRCJ4MmF4aXMiKXt0aGlzLnNl cmllc191MnA9M0RmdW5jdGlvbig9Cmgpe3JldHVybihoLXMpKmcva307dGhpcy5zZXJpZXNfcDJ1 PTNEZnVuY3Rpb24oaCl7cmV0dXJuIGgqay9nK3N9fWVsc2V7dGhpcz0KLnNlcmllc191MnA9M0Rm dW5jdGlvbihoKXtyZXR1cm4oaC12KSpnL2t9O3RoaXMuc2VyaWVzX3AydT0zRGZ1bmN0aW9uKGgp e3JlPQp0dXJuIGgqay9nK3Z9fX1lbHNle3RoaXMudTJwPTNEZnVuY3Rpb24oaCl7cmV0dXJuIGwr KHYtaCkqZy9rfTt0aGlzLnAydT0zRGY9CnVuY3Rpb24oaCl7cmV0dXJuIHMrKGgtbCkqay9nfTtp Zih0aGlzLm5hbWU9M0Q9M0QieGF4aXMifHx0aGlzLm5hbWU9M0Q9M0QieD0KMmF4aXMiKXt0aGlz LnNlcmllc191MnA9M0RmdW5jdGlvbihoKXtyZXR1cm4odi1oKSpnL2t9O3RoaXMuc2VyaWVzX3Ay dT0zRGZ1PQpuY3Rpb24oaCl7cmV0dXJuIGgqay9nK3Z9fWVsc2V7dGhpcy5zZXJpZXNfdTJwPTNE ZnVuY3Rpb24oaCl7cmV0dXJuKHMtaCkqZy89Cmt9O3RoaXMuc2VyaWVzX3AydT0zRGZ1bmN0aW9u KGgpe3JldHVybiBoKmsvZytzfX19aWYodGhpcy5zaG93KXtpZih0aGlzLm5hbT0KZT0zRD0zRCJ4 YXhpcyJ8fHRoaXMubmFtZT0zRD0zRCJ4MmF4aXMiKXtmb3IoeD0zRDA7eDxDLmxlbmd0aDt4Kysp e3ZhciBvPTNEPQpDW3hdO2lmKG8uc2hvdyYmby5zaG93TGFiZWwpe3ZhciBiO2lmKG8uY29uc3Ry dWN0b3I9M0Q9M0RhLmpxcGxvdC5DYW52YXNBeGk9CnNUaWNrUmVuZGVyZXImJm8uYW5nbGUpe3Zh ciBBPTNEKHRoaXMubmFtZT0zRD0zRCJ4YXhpcyIpPzE6LTE7c3dpdGNoKG8ubGFiZT0KbFBvc2l0 aW9uKXtjYXNlImF1dG8iOmlmKEEqby5hbmdsZTwwKXtiPTNELW8uZ2V0V2lkdGgoKStvLl90ZXh0 UmVuZGVyZXIuaGVpPQpnaHQqTWF0aC5zaW4oLW8uX3RleHRSZW5kZXJlci5hbmdsZSkvMn1lbHNl e2I9M0Qtby5fdGV4dFJlbmRlcmVyLmhlaWdodCpNYXQ9Cmguc2luKG8uX3RleHRSZW5kZXJlci5h bmdsZSkvMn1icmVhaztjYXNlImVuZCI6Yj0zRC1vLmdldFdpZHRoKCkrby5fdGV4dFJlbj0KZGVy ZXIuaGVpZ2h0Kk1hdGguc2luKC1vLl90ZXh0UmVuZGVyZXIuYW5nbGUpLzI7YnJlYWs7Y2FzZSJz dGFydCI6Yj0zRC1vLl90PQpleHRSZW5kZXJlci5oZWlnaHQqTWF0aC5zaW4oby5fdGV4dFJlbmRl cmVyLmFuZ2xlKS8yO2JyZWFrO2Nhc2UibWlkZGxlIjpiPQo9M0Qtby5nZXRXaWR0aCgpLzIrby5f dGV4dFJlbmRlcmVyLmhlaWdodCpNYXRoLnNpbigtby5fdGV4dFJlbmRlcmVyLmFuZ2xlKS89CjI7 YnJlYWs7ZGVmYXVsdDpiPTNELW8uZ2V0V2lkdGgoKS8yK28uX3RleHRSZW5kZXJlci5oZWlnaHQq TWF0aC5zaW4oLW8uX3RleD0KdFJlbmRlcmVyLmFuZ2xlKS8yO2JyZWFrfX1lbHNle2I9M0Qtby5n ZXRXaWR0aCgpLzJ9dmFyIEQ9M0R0aGlzLnUycChvLnZhbHVlPQopK2IrInB4IjtvLl9lbGVtLmNz cygibGVmdCIsRCk7by5wYWNrKCl9fXZhciB6PTNEWyJib3R0b20iLDBdO2lmKHEpe3ZhciBtPQo9 M0R0aGlzLl9sYWJlbC5fZWxlbS5vdXRlcldpZHRoKHRydWUpO3RoaXMuX2xhYmVsLl9lbGVtLmNz cygibGVmdCIsbCtnLzItbS89CjIrInB4Iik7aWYodGhpcy5uYW1lPTNEPTNEInhheGlzIil7dGhp cy5fbGFiZWwuX2VsZW0uY3NzKCJib3R0b20iLCIwcHgiKTt6PQo9M0RbImJvdHRvbSIsdGhpcy5f bGFiZWwuX2VsZW0ub3V0ZXJIZWlnaHQodHJ1ZSldfWVsc2V7dGhpcy5fbGFiZWwuX2VsZW0uY3M9 CnMoInRvcCIsIjBweCIpO3o9M0RbInRvcCIsdGhpcy5fbGFiZWwuX2VsZW0ub3V0ZXJIZWlnaHQo dHJ1ZSldfXRoaXMuX2xhYmVsLj0KcGFjaygpfXZhciBkPTNEcGFyc2VJbnQodGhpcy5fdGlja3Mu bGVuZ3RoL3RoaXMuZ3JvdXBzLDEwKSsxO2Zvcih4PTNEMDt4PHRoPQppcy5fZ3JvdXBMYWJlbHMu bGVuZ3RoO3grKyl7dmFyIEI9M0QwO3ZhciBmPTNEMDtmb3IodmFyIHU9M0R4KmQ7dTwoeCsxKSpk O3U9CisrKXtpZih1Pj0zRHRoaXMuX3RpY2tzLmxlbmd0aC0xKXtjb250aW51ZX1pZih0aGlzLl90 aWNrc1t1XS5fZWxlbSYmdGhpcy5fdD0KaWNrc1t1XS5sYWJlbCE9M0QiICIpe3ZhciBvPTNEdGhp cy5fdGlja3NbdV0uX2VsZW07dmFyIHI9M0RvLnBvc2l0aW9uKCk7Qis9Cj0zRHIubGVmdCtvLm91 dGVyV2lkdGgodHJ1ZSkvMjtmKyt9fUI9M0RCL2Y7dGhpcy5fZ3JvdXBMYWJlbHNbeF0uY3NzKHts ZWZ0Oj0KKEItdGhpcy5fZ3JvdXBMYWJlbHNbeF0ub3V0ZXJXaWR0aCh0cnVlKS8yKX0pO3RoaXMu X2dyb3VwTGFiZWxzW3hdLmNzcyh6WzBdPQoselsxXSl9fWVsc2V7Zm9yKHg9M0QwO3g8Qy5sZW5n dGg7eCsrKXt2YXIgbz0zRENbeF07aWYoby5zaG93JiZvLnNob3dMYWJlbCk9Cnt2YXIgYjtpZihv LmNvbnN0cnVjdG9yPTNEPTNEYS5qcXBsb3QuQ2FudmFzQXhpc1RpY2tSZW5kZXJlciYmby5hbmds ZSl7dmFyID0KQT0zRCh0aGlzLm5hbWU9M0Q9M0QieWF4aXMiKT8xOi0xO3N3aXRjaChvLmxhYmVs UG9zaXRpb24pe2Nhc2UiYXV0byI6Y2FzZSJlPQpuZCI6aWYoQSpvLmFuZ2xlPDApe2I9M0Qtby5f dGV4dFJlbmRlcmVyLmhlaWdodCpNYXRoLmNvcygtby5fdGV4dFJlbmRlcmVyLmE9Cm5nbGUpLzJ9 ZWxzZXtiPTNELW8uZ2V0SGVpZ2h0KCkrby5fdGV4dFJlbmRlcmVyLmhlaWdodCpNYXRoLmNvcyhv Ll90ZXh0UmVuZD0KZXJlci5hbmdsZSkvMn1icmVhaztjYXNlInN0YXJ0IjppZihvLmFuZ2xlPjAp e2I9M0Qtby5fdGV4dFJlbmRlcmVyLmhlaWdodCpNPQphdGguY29zKC1vLl90ZXh0UmVuZGVyZXIu YW5nbGUpLzJ9ZWxzZXtiPTNELW8uZ2V0SGVpZ2h0KCkrby5fdGV4dFJlbmRlcmVyLmg9CmVpZ2h0 Kk1hdGguY29zKG8uX3RleHRSZW5kZXJlci5hbmdsZSkvMn1icmVhaztjYXNlIm1pZGRsZSI6Yj0z RC1vLmdldEhlaWdodD0KKCkvMjticmVhaztkZWZhdWx0OmI9M0Qtby5nZXRIZWlnaHQoKS8yO2Jy ZWFrfX1lbHNle2I9M0Qtby5nZXRIZWlnaHQoKS8yfXZhPQpyIEQ9M0R0aGlzLnUycChvLnZhbHVl KStiKyJweCI7by5fZWxlbS5jc3MoInRvcCIsRCk7by5wYWNrKCl9fXZhciB6PTNEWyJsZWY9CnQi LDBdO2lmKHEpe3ZhciB5PTNEdGhpcy5fbGFiZWwuX2VsZW0ub3V0ZXJIZWlnaHQodHJ1ZSk7dGhp cy5fbGFiZWwuX2VsZW0uYz0Kc3MoInRvcCIsbi1nLzIteS8yKyJweCIpO2lmKHRoaXMubmFtZT0z RD0zRCJ5YXhpcyIpe3RoaXMuX2xhYmVsLl9lbGVtLmNzcygiPQpsZWZ0IiwiMHB4Iik7ej0zRFsi bGVmdCIsdGhpcy5fbGFiZWwuX2VsZW0ub3V0ZXJXaWR0aCh0cnVlKV19ZWxzZXt0aGlzLl9sYWI9 CmVsLl9lbGVtLmNzcygicmlnaHQiLCIwcHgiKTt6PTNEWyJyaWdodCIsdGhpcy5fbGFiZWwuX2Vs ZW0ub3V0ZXJXaWR0aCh0cnVlKT0KXX10aGlzLl9sYWJlbC5wYWNrKCl9dmFyIGQ9M0RwYXJzZUlu dCh0aGlzLl90aWNrcy5sZW5ndGgvdGhpcy5ncm91cHMsMTApKzE7PQpmb3IoeD0zRDA7eDx0aGlz Ll9ncm91cExhYmVscy5sZW5ndGg7eCsrKXt2YXIgQj0zRDA7dmFyIGY9M0QwO2Zvcih2YXIgdT0z RHg9CipkO3U8KHgrMSkqZDt1Kyspe2lmKHU+PTNEdGhpcy5fdGlja3MubGVuZ3RoLTEpe2NvbnRp bnVlfWlmKHRoaXMuX3RpY2tzW3VdLj0KX2VsZW0mJnRoaXMuX3RpY2tzW3VdLmxhYmVsIT0zRCIg Iil7dmFyIG89M0R0aGlzLl90aWNrc1t1XS5fZWxlbTt2YXIgcj0zRG8uPQpwb3NpdGlvbigpO0Ir PTNEci50b3Arby5vdXRlckhlaWdodCgpLzI7ZisrfX1CPTNEQi9mO3RoaXMuX2dyb3VwTGFiZWxz W3hdLmM9CnNzKHt0b3A6Qi10aGlzLl9ncm91cExhYmVsc1t4XS5vdXRlckhlaWdodCgpLzJ9KTt0 aGlzLl9ncm91cExhYmVsc1t4XS5jc3Moej0KWzBdLHpbMV0pfX19fX0pKGpRdWVyeSk7ClwgTm8g bmV3bGluZSBhdCBlbmQgb2YgZmlsZQoKZGlmZiAtciBkYjkyZjZlMTliMzgxODA5N2JkM2Q1YTE0 OWFjZjgwY2VkOTA2NzVjIC1yIGEwZDFhOTFlMDViZWUzMmRkNWYyZmFjPQo5M2Q4MGZiZTkzNWJh OGMyOCBjb25maWcvcGx1Z2lucy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL3BsdWdpbnMv anFwbG89CnQvcGx1Z2lucy9qcXBsb3QuY3Vyc29yLm1pbi5qcwotLS0gL2Rldi9udWxsCisrKyBi L2NvbmZpZy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9zdGF0aWMvcGx1Z2lucy9qcXBs b3QvcGx1Z2lucy9qcT0KcGxvdC5jdXJzb3IubWluLmpzCkBAIC0wLDAgKzEsMyBAQAorLyoganFQ bG90IDEuMC44cjEyNTAgfCAoYykgMjAwOS0yMDEzIENocmlzIExlb25lbGxvIHwganBsb3QuY29t CisgICBqc0RhdGUgfCAoYykgMjAxMC0yMDEzIENocmlzIExlb25lbGxvCisgKi8oZnVuY3Rpb24o ail7ai5qcXBsb3QuQ3Vyc29yPTNEZnVuY3Rpb24ocSl7dGhpcy5zdHlsZT0zRCJjcm9zc2hhaXIi O3RoaT0Kcy5wcmV2aW91c0N1cnNvcj0zRCJhdXRvIjt0aGlzLnNob3c9M0RqLmpxcGxvdC5jb25m aWcuZW5hYmxlUGx1Z2luczt0aGlzLnNoPQpvd1Rvb2x0aXA9M0R0cnVlO3RoaXMuZm9sbG93TW91 c2U9M0RmYWxzZTt0aGlzLnRvb2x0aXBMb2NhdGlvbj0zRCJzZSI7dGhpcy49CnRvb2x0aXBPZmZz ZXQ9M0Q2O3RoaXMuc2hvd1Rvb2x0aXBHcmlkUG9zaXRpb249M0RmYWxzZTt0aGlzLnNob3dUb29s dGlwVW5pdD0KUG9zaXRpb249M0R0cnVlO3RoaXMuc2hvd1Rvb2x0aXBEYXRhUG9zaXRpb249M0Rm YWxzZTt0aGlzLnRvb2x0aXBGb3JtYXRTdHJpPQpuZz0zRCIlLjRQLCAlLjRQIjt0aGlzLnVzZUF4 ZXNGb3JtYXR0ZXJzPTNEdHJ1ZTt0aGlzLnRvb2x0aXBBeGlzR3JvdXBzPTNEW109Cjt0aGlzLnpv b209M0RmYWxzZTt0aGlzLnpvb21Qcm94eT0zRGZhbHNlO3RoaXMuem9vbVRhcmdldD0zRGZhbHNl O3RoaXMubG9vcz0KZVpvb209M0R0cnVlO3RoaXMuY2xpY2tSZXNldD0zRGZhbHNlO3RoaXMuZGJs Q2xpY2tSZXNldD0zRHRydWU7dGhpcy5zaG93VmVyPQp0aWNhbExpbmU9M0RmYWxzZTt0aGlzLnNo b3dIb3Jpem9udGFsTGluZT0zRGZhbHNlO3RoaXMuY29uc3RyYWluWm9vbVRvPTNEIm49Cm9uZSI7 dGhpcy5zaGFwZVJlbmRlcmVyPTNEbmV3IGouanFwbG90LlNoYXBlUmVuZGVyZXIoKTt0aGlzLl96 b29tPTNEe3N0YXJ0Oj0KW10sZW5kOltdLHN0YXJ0ZWQ6ZmFsc2Usem9vbWluZzpmYWxzZSxpc1pv b21lZDpmYWxzZSxheGVzOntzdGFydDp7fSxlbmQ6e319PQosZ3JpZHBvczp7fSxkYXRhcG9zOnt9 fTt0aGlzLl90b29sdGlwRWxlbTt0aGlzLnpvb21DYW52YXM7dGhpcy5jdXJzb3JDYW52YXM9Cjt0 aGlzLmludGVyc2VjdGlvblRocmVzaG9sZD0zRDI7dGhpcy5zaG93Q3Vyc29yTGVnZW5kPTNEZmFs c2U7dGhpcy5jdXJzb3JMZT0KZ2VuZEZvcm1hdFN0cmluZz0zRGouanFwbG90LkN1cnNvci5jdXJz b3JMZWdlbmRGb3JtYXRTdHJpbmc7dGhpcy5fb2xkSGFuZGxlPQpycz0zRHtvbnNlbGVjdHN0YXJ0 Om51bGwsb25kcmFnOm51bGwsb25tb3VzZWRvd246bnVsbH07dGhpcy5jb25zdHJhaW5PdXRzaWQ9 CmVab29tPTNEdHJ1ZTt0aGlzLnNob3dUb29sdGlwT3V0c2lkZVpvb209M0RmYWxzZTt0aGlzLm9u R3JpZD0zRGZhbHNlO2ouZXh0ZT0KbmQodHJ1ZSx0aGlzLHEpfTtqLmpxcGxvdC5DdXJzb3IuY3Vy c29yTGVnZW5kRm9ybWF0U3RyaW5nPTNEIiVzIHg6JXMsIHk6JXMiPQo7ai5qcXBsb3QuQ3Vyc29y LmluaXQ9M0RmdW5jdGlvbih0LHMscil7dmFyIHE9M0RyfHx7fTt0aGlzLnBsdWdpbnMuY3Vyc29y PQo9M0RuZXcgai5qcXBsb3QuQ3Vyc29yKHEuY3Vyc29yKTt2YXIgdT0zRHRoaXMucGx1Z2lucy5j dXJzb3I7aWYodS5zaG93KXtqLmo9CnFwbG90LmV2ZW50TGlzdGVuZXJIb29rcy5wdXNoKFsianFw bG90TW91c2VFbnRlciIsYl0pO2ouanFwbG90LmV2ZW50TGlzdGVuZT0Kckhvb2tzLnB1c2goWyJq cXBsb3RNb3VzZUxlYXZlIixmXSk7ai5qcXBsb3QuZXZlbnRMaXN0ZW5lckhvb2tzLnB1c2goWyJq cXBsPQpvdE1vdXNlTW92ZSIsaV0pO2lmKHUuc2hvd0N1cnNvckxlZ2VuZCl7ci5sZWdlbmQ9M0Ry LmxlZ2VuZHx8e307ci5sZWdlbmQucmU9Cm5kZXJlcj0zRGouanFwbG90LkN1cnNvckxlZ2VuZFJl bmRlcmVyO3IubGVnZW5kLmZvcm1hdFN0cmluZz0zRHRoaXMucGx1Z2lucz0KLmN1cnNvci5jdXJz b3JMZWdlbmRGb3JtYXRTdHJpbmc7ci5sZWdlbmQuc2hvdz0zRHRydWV9aWYodS56b29tKXtqLmpx cGxvdC5lPQp2ZW50TGlzdGVuZXJIb29rcy5wdXNoKFsianFwbG90TW91c2VEb3duIixhXSk7aWYo dS5jbGlja1Jlc2V0KXtqLmpxcGxvdC5ldmU9Cm50TGlzdGVuZXJIb29rcy5wdXNoKFsianFwbG90 Q2xpY2siLGtdKX1pZih1LmRibENsaWNrUmVzZXQpe2ouanFwbG90LmV2ZW50TD0KaXN0ZW5lckhv b2tzLnB1c2goWyJqcXBsb3REYmxDbGljayIsY10pfX10aGlzLnJlc2V0Wm9vbT0zRGZ1bmN0aW9u KCl7dmFyIHg9Cj0zRHRoaXMuYXhlcztpZighdS56b29tUHJveHkpe2Zvcih2YXIgdyBpbiB4KXt4 W3ddLnJlc2V0KCk7eFt3XS5fdGlja3M9M0RbXT0KO2lmKHUuX3pvb20uYXhlc1t3XSE9M0Q9M0R1 bmRlZmluZWQpe3hbd10uX2F1dG9Gb3JtYXRTdHJpbmc9M0R1Ll96b29tLmF4ZXNbPQp3XS50aWNr Rm9ybWF0U3RyaW5nfX10aGlzLnJlZHJhdygpfWVsc2V7dmFyIHY9M0R0aGlzLnBsdWdpbnMuY3Vy c29yLnpvb21DYW49CnZhcy5fY3R4O3YuY2xlYXJSZWN0KDAsMCx2LmNhbnZhcy53aWR0aCx2LmNh bnZhcy5oZWlnaHQpO3Y9M0RudWxsfXRoaXMucGx1Zz0KaW5zLmN1cnNvci5fem9vbS5pc1pvb21l ZD0zRGZhbHNlO3RoaXMudGFyZ2V0LnRyaWdnZXIoImpxcGxvdFJlc2V0Wm9vbSIsW3RoPQppcyx0 aGlzLnBsdWdpbnMuY3Vyc29yXSl9O2lmKHUuc2hvd1Rvb2x0aXBEYXRhUG9zaXRpb24pe3Uuc2hv d1Rvb2x0aXBVbml0UG89CnNpdGlvbj0zRGZhbHNlO3Uuc2hvd1Rvb2x0aXBHcmlkUG9zaXRpb249 M0RmYWxzZTtpZihxLmN1cnNvci50b29sdGlwRm9ybWF0Uz0KdHJpbmc9M0Q9M0R1bmRlZmluZWQp e3UudG9vbHRpcEZvcm1hdFN0cmluZz0zRGouanFwbG90LkN1cnNvci5jdXJzb3JMZWdlbmRGPQpv cm1hdFN0cmluZ319fX07ai5qcXBsb3QuQ3Vyc29yLnBvc3REcmF3PTNEZnVuY3Rpb24oKXt2YXIg eD0zRHRoaXMucGx1Z2lucy49CmN1cnNvcjtpZih4Lnpvb21DYW52YXMpe3guem9vbUNhbnZhcy5y ZXNldENhbnZhcygpO3guem9vbUNhbnZhcz0zRG51bGx9aWYoeD0KLmN1cnNvckNhbnZhcyl7eC5j dXJzb3JDYW52YXMucmVzZXRDYW52YXMoKTt4LmN1cnNvckNhbnZhcz0zRG51bGx9aWYoeC5fdG9v PQpsdGlwRWxlbSl7eC5fdG9vbHRpcEVsZW0uZW1wdHlGb3JjZSgpO3guX3Rvb2x0aXBFbGVtPTNE bnVsbH1pZih4Lnpvb20pe3guem89Cm9tQ2FudmFzPTNEbmV3IGouanFwbG90LkdlbmVyaWNDYW52 YXMoKTt0aGlzLmV2ZW50Q2FudmFzLl9lbGVtLmJlZm9yZSh4Lnpvbz0KbUNhbnZhcy5jcmVhdGVF bGVtZW50KHRoaXMuX2dyaWRQYWRkaW5nLCJqcXBsb3Qtem9vbS1jYW52YXMiLHRoaXMuX3Bsb3RE aW1lPQpuc2lvbnMsdGhpcykpO3guem9vbUNhbnZhcy5zZXRDb250ZXh0KCl9dmFyIHY9M0Rkb2N1 bWVudC5jcmVhdGVFbGVtZW50KCJkaXY9CiIpO3guX3Rvb2x0aXBFbGVtPTNEaih2KTt2PTNEbnVs bDt4Ll90b29sdGlwRWxlbS5hZGRDbGFzcygianFwbG90LWN1cnNvci10bz0Kb2x0aXAiKTt4Ll90 b29sdGlwRWxlbS5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsZGlzcGxheToibm9uZSJ9KTtpZih4 Lnpvb21DPQphbnZhcyl7eC56b29tQ2FudmFzLl9lbGVtLmJlZm9yZSh4Ll90b29sdGlwRWxlbSl9 ZWxzZXt0aGlzLmV2ZW50Q2FudmFzLl9lbGU9Cm0uYmVmb3JlKHguX3Rvb2x0aXBFbGVtKX1pZih4 LnNob3dWZXJ0aWNhbExpbmV8fHguc2hvd0hvcml6b250YWxMaW5lKXt4LmN1cj0Kc29yQ2FudmFz PTNEbmV3IGouanFwbG90LkdlbmVyaWNDYW52YXMoKTt0aGlzLmV2ZW50Q2FudmFzLl9lbGVtLmJl Zm9yZSh4LmN1PQpyc29yQ2FudmFzLmNyZWF0ZUVsZW1lbnQodGhpcy5fZ3JpZFBhZGRpbmcsImpx cGxvdC1jdXJzb3ItY2FudmFzIix0aGlzLl9wbG89CnREaW1lbnNpb25zLHRoaXMpKTt4LmN1cnNv ckNhbnZhcy5zZXRDb250ZXh0KCl9aWYoeC5zaG93VG9vbHRpcFVuaXRQb3NpdGlvbj0KKXtpZih4 LnRvb2x0aXBBeGlzR3JvdXBzLmxlbmd0aD0zRD0zRD0zRDApe3ZhciB0PTNEdGhpcy5zZXJpZXM7 dmFyIHU7dmFyIHE9Cj0zRFtdO2Zvcih2YXIgcj0zRDA7cjx0Lmxlbmd0aDtyKyspe3U9M0R0W3Jd O3ZhciB3PTNEdS54YXhpcysiLCIrdS55YXhpcztpZj0KKGouaW5BcnJheSh3LHEpPTNEPTNELTEp e3EucHVzaCh3KX19Zm9yKHZhciByPTNEMDtyPHEubGVuZ3RoO3IrKyl7eC50b29sdGlwPQpBeGlz R3JvdXBzLnB1c2gocVtyXS5zcGxpdCgiLCIpKX19fX07ai5qcXBsb3QuQ3Vyc29yLnpvb21Qcm94 eT0zRGZ1bmN0aW9uKHY9CixyKXt2YXIgcT0zRHYucGx1Z2lucy5jdXJzb3I7dmFyIHU9M0RyLnBs dWdpbnMuY3Vyc29yO3Euem9vbVRhcmdldD0zRHRydWU7cT0KLnpvb209M0R0cnVlO3Euc3R5bGU9 M0QiYXV0byI7cS5kYmxDbGlja1Jlc2V0PTNEZmFsc2U7dS56b29tPTNEdHJ1ZTt1Lnpvb21QPQpy b3h5PTNEdHJ1ZTtyLnRhcmdldC5iaW5kKCJqcXBsb3Rab29tIix0KTtyLnRhcmdldC5iaW5kKCJq cXBsb3RSZXNldFpvb20iLHM9Cik7ZnVuY3Rpb24gdCh4LHcseix5LEEpe3EuZG9ab29tKHcseix2 LEEpfWZ1bmN0aW9uIHModyx4LHkpe3YucmVzZXRab29tKCl9fT0KO2ouanFwbG90LkN1cnNvci5w cm90b3R5cGUucmVzZXRab29tPTNEZnVuY3Rpb24odSx2KXt2YXIgdD0zRHUuYXhlczt2YXIgcz0K PTNEdi5fem9vbS5heGVzO2lmKCF1LnBsdWdpbnMuY3Vyc29yLnpvb21Qcm94eSYmdi5fem9vbS5p c1pvb21lZCl7Zm9yKHZhciByPQogaW4gdCl7dFtyXS5yZXNldCgpO3Rbcl0uX3RpY2tzPTNEW107 dFtyXS5fYXV0b0Zvcm1hdFN0cmluZz0zRHNbcl0udGlja0Zvcm09CmF0U3RyaW5nfXUucmVkcmF3 KCk7di5fem9vbS5pc1pvb21lZD0zRGZhbHNlfWVsc2V7dmFyIHE9M0R2Lnpvb21DYW52YXMuX2N0 eD0KO3EuY2xlYXJSZWN0KDAsMCxxLmNhbnZhcy53aWR0aCxxLmNhbnZhcy5oZWlnaHQpO3E9M0Ru dWxsfXUudGFyZ2V0LnRyaWdnZXIoPQoianFwbG90UmVzZXRab29tIixbdSx2XSl9O2ouanFwbG90 LkN1cnNvci5yZXNldFpvb209M0RmdW5jdGlvbihxKXtxLnJlc2V0Wm89Cm9tKCl9O2ouanFwbG90 LkN1cnNvci5wcm90b3R5cGUuZG9ab29tPTNEZnVuY3Rpb24oRyx0LEMsdSl7dmFyIEk9M0R1O3Zh ciBGPQo9M0RDLmF4ZXM7dmFyIHI9M0RJLl96b29tLmF4ZXM7dmFyIHc9M0RyLnN0YXJ0O3ZhciBz PTNEci5lbmQ7dmFyIEIsRSx6LEQsdiw9CngscSxILEo7dmFyIEE9M0RDLnBsdWdpbnMuY3Vyc29y Lnpvb21DYW52YXMuX2N0eDtpZigoSS5jb25zdHJhaW5ab29tVG89M0Q9Cj0zRCJub25lIiYmTWF0 aC5hYnMoRy54LUkuX3pvb20uc3RhcnRbMF0pPjYmJk1hdGguYWJzKEcueS1JLl96b29tLnN0YXJ0 WzFdKT0KPjYpfHwoSS5jb25zdHJhaW5ab29tVG89M0Q9M0QieCImJk1hdGguYWJzKEcueC1JLl96 b29tLnN0YXJ0WzBdKT42KXx8KEkuY29uPQpzdHJhaW5ab29tVG89M0Q9M0QieSImJk1hdGguYWJz KEcueS1JLl96b29tLnN0YXJ0WzFdKT42KSl7aWYoIUMucGx1Z2lucy5jdXI9CnNvci56b29tUHJv eHkpe2Zvcih2YXIgeSBpbiB0KXtpZihJLl96b29tLmF4ZXNbeV09M0Q9M0R1bmRlZmluZWQpe0ku X3pvb20uYT0KeGVzW3ldPTNEe307SS5fem9vbS5heGVzW3ldLm51bWJlclRpY2tzPTNERlt5XS5u dW1iZXJUaWNrcztJLl96b29tLmF4ZXNbeV0uPQp0aWNrSW50ZXJ2YWw9M0RGW3ldLnRpY2tJbnRl cnZhbDtJLl96b29tLmF4ZXNbeV0uZGFUaWNrSW50ZXJ2YWw9M0RGW3ldLmRhVGk9CmNrSW50ZXJ2 YWw7SS5fem9vbS5heGVzW3ldLm1pbj0zREZbeV0ubWluO0kuX3pvb20uYXhlc1t5XS5tYXg9M0RG W3ldLm1heDtJLj0KX3pvb20uYXhlc1t5XS50aWNrRm9ybWF0U3RyaW5nPTNEKEZbeV0udGlja09w dGlvbnMhPTNEbnVsbCk/Rlt5XS50aWNrT3B0aW9uPQpzLmZvcm1hdFN0cmluZzoiIn1pZigoSS5j b25zdHJhaW5ab29tVG89M0Q9M0Qibm9uZSIpfHwoSS5jb25zdHJhaW5ab29tVG89M0Q9Cj0zRCJ4 IiYmeS5jaGFyQXQoMCk9M0Q9M0QieCIpfHwoSS5jb25zdHJhaW5ab29tVG89M0Q9M0QieSImJnku Y2hhckF0KDApPTNEPQo9M0QieSIpKXt6PTNEdFt5XTtpZih6IT0zRG51bGwpe2lmKHo+d1t5XSl7 dj0zRHdbeV07eD0zRHp9ZWxzZXtEPTNEd1t5XS16O3Y9Cj0zRHo7eD0zRHdbeV19cT0zREZbeV07 SD0zRG51bGw7aWYocS5hbGlnblRpY2tzKXtpZihxLm5hbWU9M0Q9M0Q9M0QieDJheGlzIj0KJiZD LmF4ZXMueGF4aXMuc2hvdyl7SD0zREMuYXhlcy54YXhpcy5udW1iZXJUaWNrc31lbHNle2lmKHEu bmFtZS5jaGFyQXQoMCk9Cj0zRD0zRD0zRCJ5IiYmcS5uYW1lIT0zRD0zRCJ5YXhpcyImJnEubmFt ZSE9M0Q9M0QieU1pZEF4aXMiJiZDLmF4ZXMueWF4aXMucz0KaG93KXtIPTNEQy5heGVzLnlheGlz Lm51bWJlclRpY2tzfX19aWYodGhpcy5sb29zZVpvb20mJihGW3ldLnJlbmRlcmVyLmNvbnN0PQpy dWN0b3I9M0Q9M0Q9M0RqLmpxcGxvdC5MaW5lYXJBeGlzUmVuZGVyZXJ8fEZbeV0ucmVuZGVyZXIu Y29uc3RydWN0b3I9M0Q9M0Q9Cj0zRGouanFwbG90LkxvZ0F4aXNSZW5kZXJlcikpe0o9M0RqLmpx cGxvdC5MaW5lYXJUaWNrR2VuZXJhdG9yKHYseCxxLl9zY2FsZT0KZmFjdCxIKTtpZihGW3ldLnRp Y2tJbnNldCYmSlswXTxGW3ldLm1pbitGW3ldLnRpY2tJbnNldCpGW3ldLnRpY2tJbnRlcnZhbCl7 PQpKWzBdKz0zREpbNF07SlsyXS09M0QxfWlmKEZbeV0udGlja0luc2V0JiZKWzFdPkZbeV0ubWF4 LUZbeV0udGlja0luc2V0KkZbeV09Ci50aWNrSW50ZXJ2YWwpe0pbMV0tPTNESls0XTtKWzJdLT0z RDF9aWYoRlt5XS5yZW5kZXJlci5jb25zdHJ1Y3Rvcj0zRD0zRD0zRD0Kai5qcXBsb3QuTG9nQXhp c1JlbmRlcmVyJiZKWzBdPEZbeV0ubWluKXtKWzBdKz0zREpbNF07SlsyXS09M0QxfUZbeV0ubWlu PTNEPQpKWzBdO0ZbeV0ubWF4PTNESlsxXTtGW3ldLl9hdXRvRm9ybWF0U3RyaW5nPTNESlszXTtG W3ldLm51bWJlclRpY2tzPTNESlsyXTs9CkZbeV0udGlja0ludGVydmFsPTNESls0XTtGW3ldLmRh VGlja0ludGVydmFsPTNEW0pbNF0vMTAwMCwic2Vjb25kcyJdfWVsc2V7Rj0KW3ldLm1pbj0zRHY7 Rlt5XS5tYXg9M0R4O0ZbeV0udGlja0ludGVydmFsPTNEbnVsbDtGW3ldLm51bWJlclRpY2tzPTNE bnVsbDtGPQpbeV0uZGFUaWNrSW50ZXJ2YWw9M0RudWxsfUZbeV0uX3RpY2tzPTNEW119fX1BLmNs ZWFyUmVjdCgwLDAsQS5jYW52YXMud2lkdGg9CixBLmNhbnZhcy5oZWlnaHQpO0MucmVkcmF3KCk7 SS5fem9vbS5pc1pvb21lZD0zRHRydWU7QT0zRG51bGx9Qy50YXJnZXQudHJpZz0KZ2VyKCJqcXBs b3Rab29tIixbRyx0LEMsdV0pfX07ai5qcXBsb3QucHJlSW5pdEhvb2tzLnB1c2goai5qcXBsb3Qu Q3Vyc29yLmluPQppdCk7ai5qcXBsb3QucG9zdERyYXdIb29rcy5wdXNoKGouanFwbG90LkN1cnNv ci5wb3N0RHJhdyk7ZnVuY3Rpb24gZShHLHIsQyk9Cnt2YXIgSj0zREMucGx1Z2lucy5jdXJzb3I7 dmFyIHc9M0QiIjt2YXIgTj0zRGZhbHNlO2lmKEouc2hvd1Rvb2x0aXBHcmlkUG9zaT0KdGlvbil7 dz0zREcueCsiLCAiK0cueTtOPTNEdHJ1ZX1pZihKLnNob3dUb29sdGlwVW5pdFBvc2l0aW9uKXt2 YXIgRjtmb3IodmFyPQogRT0zRDA7RTxKLnRvb2x0aXBBeGlzR3JvdXBzLmxlbmd0aDtFKyspe0Y9 M0RKLnRvb2x0aXBBeGlzR3JvdXBzW0VdO2lmKE4pe3c9Cis9M0QiPGJyIC8+In1pZihKLnVzZUF4 ZXNGb3JtYXR0ZXJzKXtmb3IodmFyIEQ9M0QwO0Q8Ri5sZW5ndGg7RCsrKXtpZihEKXt3Kz0KPTNE IiwgIn12YXIgSD0zREMuYXhlc1tGW0RdXS5fdGlja3NbMF0uZm9ybWF0dGVyO3ZhciBCPTNEQy5h eGVzW0ZbRF1dLl90aWNrPQpzWzBdLmZvcm1hdFN0cmluZzt3Kz0zREgoQixyW0ZbRF1dKX19ZWxz ZXt3Kz0zRGouanFwbG90LnNwcmludGYoSi50b29sdGlwRm89CnJtYXRTdHJpbmcscltGWzBdXSxy W0ZbMV1dKX1OPTNEdHJ1ZX19aWYoSi5zaG93VG9vbHRpcERhdGFQb3NpdGlvbil7dmFyIHU9Cj0z REMuc2VyaWVzO3ZhciBNPTNEZChDLEcueCxHLnkpO3ZhciBOPTNEZmFsc2U7Zm9yKHZhciBFPTNE MDtFPHUubGVuZ3RoO0UrKz0KKXtpZih1W0VdLnNob3cpe3ZhciB5PTNEdVtFXS5pbmRleDt2YXIg dD0zRHVbRV0ubGFiZWwudG9TdHJpbmcoKTt2YXIgST0zRGouPQppbkFycmF5KHksTS5pbmRpY2Vz KTt2YXIgej0zRHVuZGVmaW5lZDt2YXIgeD0zRHVuZGVmaW5lZDtpZihJIT0zRC0xKXt2YXIgTD0K PTNETS5kYXRhW0ldLmRhdGE7aWYoSi51c2VBeGVzRm9ybWF0dGVycyl7dmFyIEE9M0R1W0VdLl94 YXhpcy5fdGlja3NbMF0uZm9yPQptYXR0ZXI7dmFyIHE9M0R1W0VdLl95YXhpcy5fdGlja3NbMF0u Zm9ybWF0dGVyO3ZhciBLPTNEdVtFXS5feGF4aXMuX3RpY2tzWzA9Cl0uZm9ybWF0U3RyaW5nO3Zh ciB2PTNEdVtFXS5feWF4aXMuX3RpY2tzWzBdLmZvcm1hdFN0cmluZzt6PTNEQShLLExbMF0pO3g9 Cj0zRHEodixMWzFdKX1lbHNle3o9M0RMWzBdO3g9M0RMWzFdfWlmKE4pe3crPTNEIjxiciAvPiJ9 dys9M0RqLmpxcGxvdC5zcHJpbj0KdGYoSi50b29sdGlwRm9ybWF0U3RyaW5nLHQseix4KTtOPTNE dHJ1ZX19fX1KLl90b29sdGlwRWxlbS5odG1sKHcpfWZ1bmN0aW9uPQogZyhDLEEpe3ZhciBFPTNE QS5wbHVnaW5zLmN1cnNvcjt2YXIgej0zREUuY3Vyc29yQ2FudmFzLl9jdHg7ei5jbGVhclJlY3Qo MCw9CjAsei5jYW52YXMud2lkdGgsei5jYW52YXMuaGVpZ2h0KTtpZihFLnNob3dWZXJ0aWNhbExp bmUpe0Uuc2hhcGVSZW5kZXJlci5kcj0KYXcoeixbW0MueCwwXSxbQy54LHouY2FudmFzLmhlaWdo dF1dKX1pZihFLnNob3dIb3Jpem9udGFsTGluZSl7RS5zaGFwZVJlbmRlPQpyZXIuZHJhdyh6LFtb MCxDLnldLFt6LmNhbnZhcy53aWR0aCxDLnldXSl9dmFyIEc9M0RkKEEsQy54LEMueSk7aWYoRS5z aG93Q3U9CnJzb3JMZWdlbmQpe3ZhciByPTNEaihBLnRhcmdldElkKyIgdGQuanFwbG90LWN1cnNv ci1sZWdlbmQtbGFiZWwiKTtmb3IodmFyID0KQj0zRDA7QjxyLmxlbmd0aDtCKyspe3ZhciB2PTNE aihyW0JdKS5kYXRhKCJzZXJpZXNJbmRleCIpO3ZhciB0PTNEQS5zZXJpZXNbPQp2XTt2YXIgcz0z RHQubGFiZWwudG9TdHJpbmcoKTt2YXIgRD0zRGouaW5BcnJheSh2LEcuaW5kaWNlcyk7dmFyIHg9 M0R1bmRlZmk9Cm5lZDt2YXIgdz0zRHVuZGVmaW5lZDtpZihEIT0zRC0xKXt2YXIgSD0zREcuZGF0 YVtEXS5kYXRhO2lmKEUudXNlQXhlc0Zvcm1hdD0KdGVycyl7dmFyIHk9M0R0Ll94YXhpcy5fdGlj a3NbMF0uZm9ybWF0dGVyO3ZhciBxPTNEdC5feWF4aXMuX3RpY2tzWzBdLmZvcm1hPQp0dGVyO3Zh ciBGPTNEdC5feGF4aXMuX3RpY2tzWzBdLmZvcm1hdFN0cmluZzt2YXIgdT0zRHQuX3lheGlzLl90 aWNrc1swXS5mb3I9Cm1hdFN0cmluZzt4PTNEeShGLEhbMF0pO3c9M0RxKHUsSFsxXSl9ZWxzZXt4 PTNESFswXTt3PTNESFsxXX19aWYoQS5sZWdlbmQuZT0Kc2NhcGVIdG1sKXtqKHJbQl0pLnRleHQo ai5qcXBsb3Quc3ByaW50ZihFLmN1cnNvckxlZ2VuZEZvcm1hdFN0cmluZyxzLHgsdykpPQp9ZWxz ZXtqKHJbQl0pLmh0bWwoai5qcXBsb3Quc3ByaW50ZihFLmN1cnNvckxlZ2VuZEZvcm1hdFN0cmlu ZyxzLHgsdykpfX19ej0KPTNEbnVsbH1mdW5jdGlvbiBkKEEsRixFKXt2YXIgQj0zRHtpbmRpY2Vz OltdLGRhdGE6W119O3ZhciBHLHcsdSxDLHYscSx0O3ZhPQpyIHo7dmFyIEQ9M0RBLnBsdWdpbnMu Y3Vyc29yO2Zvcih2YXIgdz0zRDA7dzxBLnNlcmllcy5sZW5ndGg7dysrKXtHPTNEQS5zZXI9Cmll c1t3XTtxPTNERy5yZW5kZXJlcjtpZihHLnNob3cpe3o9M0RELmludGVyc2VjdGlvblRocmVzaG9s ZDtpZihHLnNob3dNYXJrZT0Kcil7eis9M0RHLm1hcmtlclJlbmRlcmVyLnNpemUvMn1mb3IodmFy IHY9M0QwO3Y8Ry5ncmlkRGF0YS5sZW5ndGg7disrKXt0PTNEPQpHLmdyaWREYXRhW3ZdO2lmKEQu c2hvd1ZlcnRpY2FsTGluZSl7aWYoTWF0aC5hYnMoRi10WzBdKTw9M0R6KXtCLmluZGljZXMucHU9 CnNoKHcpO0IuZGF0YS5wdXNoKHtzZXJpZXNJbmRleDp3LHBvaW50SW5kZXg6dixncmlkRGF0YTp0 LGRhdGE6Ry5kYXRhW3ZdfSl9fT0KfX19cmV0dXJuIEJ9ZnVuY3Rpb24gbihyLHQpe3ZhciB2PTNE dC5wbHVnaW5zLmN1cnNvcjt2YXIgcz0zRHYuX3Rvb2x0aXBFbGVtPQo7c3dpdGNoKHYudG9vbHRp cExvY2F0aW9uKXtjYXNlIm53Ijp2YXIgcT0zRHIueCt0Ll9ncmlkUGFkZGluZy5sZWZ0LXMub3V0 ZXI9CldpZHRoKHRydWUpLXYudG9vbHRpcE9mZnNldDt2YXIgdT0zRHIueSt0Ll9ncmlkUGFkZGlu Zy50b3Atdi50b29sdGlwT2Zmc2V0LT0Kcy5vdXRlckhlaWdodCh0cnVlKTticmVhaztjYXNlIm4i OnZhciBxPTNEci54K3QuX2dyaWRQYWRkaW5nLmxlZnQtcy5vdXRlcldpPQpkdGgodHJ1ZSkvMjt2 YXIgdT0zRHIueSt0Ll9ncmlkUGFkZGluZy50b3Atdi50b29sdGlwT2Zmc2V0LXMub3V0ZXJIZWln aHQodHI9CnVlKTticmVhaztjYXNlIm5lIjp2YXIgcT0zRHIueCt0Ll9ncmlkUGFkZGluZy5sZWZ0 K3YudG9vbHRpcE9mZnNldDt2YXIgdT0zRD0Kci55K3QuX2dyaWRQYWRkaW5nLnRvcC12LnRvb2x0 aXBPZmZzZXQtcy5vdXRlckhlaWdodCh0cnVlKTticmVhaztjYXNlImUiOnZhPQpyIHE9M0RyLngr dC5fZ3JpZFBhZGRpbmcubGVmdCt2LnRvb2x0aXBPZmZzZXQ7dmFyIHU9M0RyLnkrdC5fZ3JpZFBh ZGRpbmcudG89CnAtcy5vdXRlckhlaWdodCh0cnVlKS8yO2JyZWFrO2Nhc2Uic2UiOnZhciBxPTNE ci54K3QuX2dyaWRQYWRkaW5nLmxlZnQrdi50bz0Kb2x0aXBPZmZzZXQ7dmFyIHU9M0RyLnkrdC5f Z3JpZFBhZGRpbmcudG9wK3YudG9vbHRpcE9mZnNldDticmVhaztjYXNlInMiOnZhPQpyIHE9M0Ry LngrdC5fZ3JpZFBhZGRpbmcubGVmdC1zLm91dGVyV2lkdGgodHJ1ZSkvMjt2YXIgdT0zRHIueSt0 Ll9ncmlkUGFkZGk9Cm5nLnRvcCt2LnRvb2x0aXBPZmZzZXQ7YnJlYWs7Y2FzZSJzdyI6dmFyIHE9 M0RyLngrdC5fZ3JpZFBhZGRpbmcubGVmdC1zLm91dD0KZXJXaWR0aCh0cnVlKS12LnRvb2x0aXBP ZmZzZXQ7dmFyIHU9M0RyLnkrdC5fZ3JpZFBhZGRpbmcudG9wK3YudG9vbHRpcE9mZnNlPQp0O2Jy ZWFrO2Nhc2UidyI6dmFyIHE9M0RyLngrdC5fZ3JpZFBhZGRpbmcubGVmdC1zLm91dGVyV2lkdGgo dHJ1ZSktdi50b29sdGk9CnBPZmZzZXQ7dmFyIHU9M0RyLnkrdC5fZ3JpZFBhZGRpbmcudG9wLXMu b3V0ZXJIZWlnaHQodHJ1ZSkvMjticmVhaztkZWZhdWx0Oj0KdmFyIHE9M0RyLngrdC5fZ3JpZFBh ZGRpbmcubGVmdCt2LnRvb2x0aXBPZmZzZXQ7dmFyIHU9M0RyLnkrdC5fZ3JpZFBhZGRpbmcuPQp0 b3Ardi50b29sdGlwT2Zmc2V0O2JyZWFrfXMuY3NzKCJsZWZ0IixxKTtzLmNzcygidG9wIix1KTtz PTNEbnVsbH1mdW5jdGlvbiA9Cm0odSl7dmFyIHM9M0R1Ll9ncmlkUGFkZGluZzt2YXIgdj0zRHUu cGx1Z2lucy5jdXJzb3I7dmFyIHQ9M0R2Ll90b29sdGlwRWxlbT0KO3N3aXRjaCh2LnRvb2x0aXBM b2NhdGlvbil7Y2FzZSJudyI6dmFyIHI9M0RzLmxlZnQrdi50b29sdGlwT2Zmc2V0O3ZhciBxPTNE PQpzLnRvcCt2LnRvb2x0aXBPZmZzZXQ7dC5jc3MoImxlZnQiLHIpO3QuY3NzKCJ0b3AiLHEpO2Jy ZWFrO2Nhc2UibiI6dmFyIHI9M0Q9CihzLmxlZnQrKHUuX3Bsb3REaW1lbnNpb25zLndpZHRoLXMu cmlnaHQpKS8yLXQub3V0ZXJXaWR0aCh0cnVlKS8yO3ZhciBxPTNEcz0KLnRvcCt2LnRvb2x0aXBP ZmZzZXQ7dC5jc3MoImxlZnQiLHIpO3QuY3NzKCJ0b3AiLHEpO2JyZWFrO2Nhc2UibmUiOnZhciBy PTNEPQpzLnJpZ2h0K3YudG9vbHRpcE9mZnNldDt2YXIgcT0zRHMudG9wK3YudG9vbHRpcE9mZnNl dDt0LmNzcyh7cmlnaHQ6cix0b3A6cX09Cik7YnJlYWs7Y2FzZSJlIjp2YXIgcj0zRHMucmlnaHQr di50b29sdGlwT2Zmc2V0O3ZhciBxPTNEKHMudG9wKyh1Ll9wbG90RGltZT0KbnNpb25zLmhlaWdo dC1zLmJvdHRvbSkpLzItdC5vdXRlckhlaWdodCh0cnVlKS8yO3QuY3NzKHtyaWdodDpyLHRvcDpx fSk7YnJlPQphaztjYXNlInNlIjp2YXIgcj0zRHMucmlnaHQrdi50b29sdGlwT2Zmc2V0O3ZhciBx PTNEcy5ib3R0b20rdi50b29sdGlwT2Zmc2U9CnQ7dC5jc3Moe3JpZ2h0OnIsYm90dG9tOnF9KTti cmVhaztjYXNlInMiOnZhciByPTNEKHMubGVmdCsodS5fcGxvdERpbWVuc2lvbj0Kcy53aWR0aC1z LnJpZ2h0KSkvMi10Lm91dGVyV2lkdGgodHJ1ZSkvMjt2YXIgcT0zRHMuYm90dG9tK3YudG9vbHRp cE9mZnNldDt0PQouY3NzKHtsZWZ0OnIsYm90dG9tOnF9KTticmVhaztjYXNlInN3Ijp2YXIgcj0z RHMubGVmdCt2LnRvb2x0aXBPZmZzZXQ7dmFyIHE9Cj0zRHMuYm90dG9tK3YudG9vbHRpcE9mZnNl dDt0LmNzcyh7bGVmdDpyLGJvdHRvbTpxfSk7YnJlYWs7Y2FzZSJ3Ijp2YXIgcj0zRD0Kcy5sZWZ0 K3YudG9vbHRpcE9mZnNldDt2YXIgcT0zRChzLnRvcCsodS5fcGxvdERpbWVuc2lvbnMuaGVpZ2h0 LXMuYm90dG9tKSkvPQoyLXQub3V0ZXJIZWlnaHQodHJ1ZSkvMjt0LmNzcyh7bGVmdDpyLHRvcDpx fSk7YnJlYWs7ZGVmYXVsdDp2YXIgcj0zRHMucmlnaHQ9Ci12LnRvb2x0aXBPZmZzZXQ7dmFyIHE9 M0RzLmJvdHRvbSt2LnRvb2x0aXBPZmZzZXQ7dC5jc3Moe3JpZ2h0OnIsYm90dG9tOnF9KT0KO2Jy ZWFrfXQ9M0RudWxsfWZ1bmN0aW9uIGsocixxLHYsdSx0KXtyLnByZXZlbnREZWZhdWx0KCk7ci5z dG9wSW1tZWRpYXRlUHJvPQpwYWdhdGlvbigpO3ZhciB3PTNEdC5wbHVnaW5zLmN1cnNvcjtpZih3 LmNsaWNrUmVzZXQpe3cucmVzZXRab29tKHQsdyl9dmFyIHM9Cj0zRHdpbmRvdy5nZXRTZWxlY3Rp b247aWYoZG9jdW1lbnQuc2VsZWN0aW9uJiZkb2N1bWVudC5zZWxlY3Rpb24uZW1wdHkpe2RvYz0K dW1lbnQuc2VsZWN0aW9uLmVtcHR5KCl9ZWxzZXtpZihzJiYhcygpLmlzQ29sbGFwc2VkKXtzKCku Y29sbGFwc2UoKX19cmV0dXJuPQogZmFsc2V9ZnVuY3Rpb24gYyhyLHEsdix1LHQpe3IucHJldmVu dERlZmF1bHQoKTtyLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbig9Cik7dmFyIHc9M0R0LnBsdWdp bnMuY3Vyc29yO2lmKHcuZGJsQ2xpY2tSZXNldCl7dy5yZXNldFpvb20odCx3KX12YXIgcz0zRHdp bj0KZG93LmdldFNlbGVjdGlvbjtpZihkb2N1bWVudC5zZWxlY3Rpb24mJmRvY3VtZW50LnNlbGVj dGlvbi5lbXB0eSl7ZG9jdW1lbnQuPQpzZWxlY3Rpb24uZW1wdHkoKX1lbHNle2lmKHMmJiFzKCku aXNDb2xsYXBzZWQpe3MoKS5jb2xsYXBzZSgpfX1yZXR1cm4gZmFsc2U9Cn1mdW5jdGlvbiBmKHcs dCxxLHosdSl7dmFyIHY9M0R1LnBsdWdpbnMuY3Vyc29yO3Yub25HcmlkPTNEZmFsc2U7aWYodi5z aG93KT0Ke2oody50YXJnZXQpLmNzcygiY3Vyc29yIix2LnByZXZpb3VzQ3Vyc29yKTtpZih2LnNo b3dUb29sdGlwJiYhKHYuX3pvb20uem9vPQptaW5nJiZ2LnNob3dUb29sdGlwT3V0c2lkZVpvb20m JiF2LmNvbnN0cmFpbk91dHNpZGVab29tKSl7di5fdG9vbHRpcEVsZW0uZW09CnB0eSgpO3YuX3Rv b2x0aXBFbGVtLmhpZGUoKX1pZih2Lnpvb20pe3YuX3pvb20uZ3JpZHBvcz0zRHQ7di5fem9vbS5k YXRhcG9zPQo9M0RxfWlmKHYuc2hvd1ZlcnRpY2FsTGluZXx8di5zaG93SG9yaXpvbnRhbExpbmUp e3ZhciBCPTNEdi5jdXJzb3JDYW52YXMuX2M9CnR4O0IuY2xlYXJSZWN0KDAsMCxCLmNhbnZhcy53 aWR0aCxCLmNhbnZhcy5oZWlnaHQpO0I9M0RudWxsfWlmKHYuc2hvd0N1cnNvcj0KTGVnZW5kKXt2 YXIgQT0zRGoodS50YXJnZXRJZCsiIHRkLmpxcGxvdC1jdXJzb3ItbGVnZW5kLWxhYmVsIik7Zm9y KHZhciBzPTNEPQowO3M8QS5sZW5ndGg7cysrKXt2YXIgeT0zRGooQVtzXSkuZGF0YSgic2VyaWVz SW5kZXgiKTt2YXIgcj0zRHUuc2VyaWVzW3ldO3Y9CmFyIHg9M0RyLmxhYmVsLnRvU3RyaW5nKCk7 aWYodS5sZWdlbmQuZXNjYXBlSHRtbCl7aihBW3NdKS50ZXh0KGouanFwbG90LnNwcj0KaW50Zih2 LmN1cnNvckxlZ2VuZEZvcm1hdFN0cmluZyx4LHVuZGVmaW5lZCx1bmRlZmluZWQpKX1lbHNle2oo QVtzXSkuaHRtbChqPQouanFwbG90LnNwcmludGYodi5jdXJzb3JMZWdlbmRGb3JtYXRTdHJpbmcs eCx1bmRlZmluZWQsdW5kZWZpbmVkKSl9fX19fWZ1bmM9CnRpb24gYihyLHEsdSx0LHMpe3ZhciB2 PTNEcy5wbHVnaW5zLmN1cnNvcjt2Lm9uR3JpZD0zRHRydWU7aWYodi5zaG93KXt2LnByZT0Kdmlv dXNDdXJzb3I9M0RyLnRhcmdldC5zdHlsZS5jdXJzb3I7ci50YXJnZXQuc3R5bGUuY3Vyc29yPTNE di5zdHlsZTtpZih2LnNoPQpvd1Rvb2x0aXApe2UocSx1LHMpO2lmKHYuZm9sbG93TW91c2Upe24o cSxzKX1lbHNle20ocyl9di5fdG9vbHRpcEVsZW0uc2hvdyg9Cil9aWYodi5zaG93VmVydGljYWxM aW5lfHx2LnNob3dIb3Jpem9udGFsTGluZSl7ZyhxLHMpfX19ZnVuY3Rpb24gaShyLHEsdSx0LD0K cyl7dmFyIHY9M0RzLnBsdWdpbnMuY3Vyc29yO2lmKHYuc2hvdyl7aWYodi5zaG93VG9vbHRpcCl7 ZShxLHUscyk7aWYodi5mb2xsPQpvd01vdXNlKXtuKHEscyl9fWlmKHYuc2hvd1ZlcnRpY2FsTGlu ZXx8di5zaG93SG9yaXpvbnRhbExpbmUpe2cocSxzKX19fWZ1bmM9CnRpb24gbyh5KXt2YXIgeD0z RHkuZGF0YS5wbG90O3ZhciB0PTNEeC5ldmVudENhbnZhcy5fZWxlbS5vZmZzZXQoKTt2YXIgdz0z RD0Ke3g6eS5wYWdlWC10LmxlZnQseTp5LnBhZ2VZLXQudG9wfTt2YXIgdT0zRHt4YXhpczpudWxs LHlheGlzOm51bGwseDJheGlzOm51PQpsbCx5MmF4aXM6bnVsbCx5M2F4aXM6bnVsbCx5NGF4aXM6 bnVsbCx5NWF4aXM6bnVsbCx5NmF4aXM6bnVsbCx5N2F4aXM6bnVsbCw9Cnk4YXhpczpudWxsLHk5 YXhpczpudWxsLHlNaWRBeGlzOm51bGx9O3ZhciB2PTNEWyJ4YXhpcyIsInlheGlzIiwieDJheGlz IiwieT0KMmF4aXMiLCJ5M2F4aXMiLCJ5NGF4aXMiLCJ5NWF4aXMiLCJ5NmF4aXMiLCJ5N2F4aXMi LCJ5OGF4aXMiLCJ5OWF4aXMiLCJ5TWlkPQpBeGlzIl07dmFyIHE9M0R4LmF4ZXM7dmFyIHIscztm b3Iocj0zRDExO3I+MDtyLS0pe3M9M0R2W3ItMV07aWYocVtzXS5zaG93KXs9CnVbc109M0RxW3Nd LnNlcmllc19wMnUod1tzLmNoYXJBdCgwKV0pfX1yZXR1cm57b2Zmc2V0czp0LGdyaWRQb3M6dyxk YXRhUG9zOj0KdX19ZnVuY3Rpb24gaCh6KXt2YXIgeD0zRHouZGF0YS5wbG90O3ZhciB5PTNEeC5w bHVnaW5zLmN1cnNvcjtpZih5LnNob3cmJnkuPQp6b29tJiZ5Ll96b29tLnN0YXJ0ZWQmJiF5Lnpv b21UYXJnZXQpe3oucHJldmVudERlZmF1bHQoKTt2YXIgQj0zRHkuem9vbUNhbnY9CmFzLl9jdHg7 dmFyIHY9M0RvKHopO3ZhciB3PTNEdi5ncmlkUG9zO3ZhciB0PTNEdi5kYXRhUG9zO3kuX3pvb20u Z3JpZHBvcz0zRD0Kdzt5Ll96b29tLmRhdGFwb3M9M0R0O3kuX3pvb20uem9vbWluZz0zRHRydWU7 dmFyIHU9M0R3Lng7dmFyIHM9M0R3Lnk7dmFyIEE9Cj0zREIuY2FudmFzLmhlaWdodDt2YXIgcT0z REIuY2FudmFzLndpZHRoO2lmKHkuc2hvd1Rvb2x0aXAmJiF5Lm9uR3JpZCYmeS5zaD0Kb3dUb29s dGlwT3V0c2lkZVpvb20pe2Uodyx0LHgpO2lmKHkuZm9sbG93TW91c2Upe24odyx4KX19aWYoeS5j b25zdHJhaW5ab29tPQpUbz0zRD0zRCJ4Iil7eS5fem9vbS5lbmQ9M0RbdSxBXX1lbHNle2lmKHku Y29uc3RyYWluWm9vbVRvPTNEPTNEInkiKXt5Ll96b289Cm0uZW5kPTNEW3Esc119ZWxzZXt5Ll96 b29tLmVuZD0zRFt1LHNdfX12YXIgcj0zRHdpbmRvdy5nZXRTZWxlY3Rpb247aWYoZG9jdT0KbWVu dC5zZWxlY3Rpb24mJmRvY3VtZW50LnNlbGVjdGlvbi5lbXB0eSl7ZG9jdW1lbnQuc2VsZWN0aW9u LmVtcHR5KCl9ZWxzZXtpPQpmKHImJiFyKCkuaXNDb2xsYXBzZWQpe3IoKS5jb2xsYXBzZSgpfX1s LmNhbGwoeSk7Qj0zRG51bGx9fWZ1bmN0aW9uIGEodyxzLHI9Cix4LHQpe3ZhciB2PTNEdC5wbHVn aW5zLmN1cnNvcjtpZih0LnBsdWdpbnMubW9iaWxlKXtqKGRvY3VtZW50KS5vbmUoInZtb3VzZT0K dXAuanFwbG90X2N1cnNvciIse3Bsb3Q6dH0scCl9ZWxzZXtqKGRvY3VtZW50KS5vbmUoIm1vdXNl dXAuanFwbG90X2N1cnNvciIsPQp7cGxvdDp0fSxwKX12YXIgdT0zRHQuYXhlcztpZihkb2N1bWVu dC5vbnNlbGVjdHN0YXJ0IT0zRHVuZGVmaW5lZCl7di5fb2xkSGE9Cm5kbGVycy5vbnNlbGVjdHN0 YXJ0PTNEZG9jdW1lbnQub25zZWxlY3RzdGFydDtkb2N1bWVudC5vbnNlbGVjdHN0YXJ0PTNEZnVu Yz0KdGlvbigpe3JldHVybiBmYWxzZX19aWYoZG9jdW1lbnQub25kcmFnIT0zRHVuZGVmaW5lZCl7 di5fb2xkSGFuZGxlcnMub25kcmFnPQo9M0Rkb2N1bWVudC5vbmRyYWc7ZG9jdW1lbnQub25kcmFn PTNEZnVuY3Rpb24oKXtyZXR1cm4gZmFsc2V9fWlmKGRvY3VtZW50Lm89Cm5tb3VzZWRvd24hPTNE dW5kZWZpbmVkKXt2Ll9vbGRIYW5kbGVycy5vbm1vdXNlZG93bj0zRGRvY3VtZW50Lm9ubW91c2Vk b3duOz0KZG9jdW1lbnQub25tb3VzZWRvd249M0RmdW5jdGlvbigpe3JldHVybiBmYWxzZX19aWYo di56b29tKXtpZighdi56b29tUHJveHkpPQp7dmFyIHk9M0R2Lnpvb21DYW52YXMuX2N0eDt5LmNs ZWFyUmVjdCgwLDAseS5jYW52YXMud2lkdGgseS5jYW52YXMuaGVpZ2h0KTs9Cnk9M0RudWxsfWlm KHYuY29uc3RyYWluWm9vbVRvPTNEPTNEIngiKXt2Ll96b29tLnN0YXJ0PTNEW3MueCwwXX1lbHNl e2lmKHYuYz0Kb25zdHJhaW5ab29tVG89M0Q9M0QieSIpe3YuX3pvb20uc3RhcnQ9M0RbMCxzLnld fWVsc2V7di5fem9vbS5zdGFydD0zRFtzLngsPQpzLnldfX12Ll96b29tLnN0YXJ0ZWQ9M0R0cnVl O2Zvcih2YXIgcSBpbiByKXt2Ll96b29tLmF4ZXMuc3RhcnRbcV09M0RyW3FdfWk9CmYodC5wbHVn aW5zLm1vYmlsZSl7aihkb2N1bWVudCkuYmluZCgidm1vdXNlbW92ZS5qcXBsb3RDdXJzb3IiLHtw bG90OnR9LGgpfT0KZWxzZXtqKGRvY3VtZW50KS5iaW5kKCJtb3VzZW1vdmUuanFwbG90Q3Vyc29y Iix7cGxvdDp0fSxoKX19fWZ1bmN0aW9uIHAoeSl7PQp2YXIgdj0zRHkuZGF0YS5wbG90O3ZhciB4 PTNEdi5wbHVnaW5zLmN1cnNvcjtpZih4Lnpvb20mJnguX3pvb20uem9vbWluZyYmIXg9Ci56b29t VGFyZ2V0KXt2YXIgdT0zRHguX3pvb20uZ3JpZHBvcy54O3ZhciByPTNEeC5fem9vbS5ncmlkcG9z Lnk7dmFyIHQ9M0R4Lj0KX3pvb20uZGF0YXBvczt2YXIgej0zRHguem9vbUNhbnZhcy5fY3R4LmNh bnZhcy5oZWlnaHQ7dmFyIHE9M0R4Lnpvb21DYW52YXMuPQpfY3R4LmNhbnZhcy53aWR0aDt2YXIg dz0zRHYuYXhlcztpZih4LmNvbnN0cmFpbk91dHNpZGVab29tJiYheC5vbkdyaWQpe2lmKHU9Cjww KXt1PTNEMH1lbHNle2lmKHU+cSl7dT0zRHF9fWlmKHI8MCl7cj0zRDB9ZWxzZXtpZihyPnope3I9 M0R6fX1mb3IodmFyIHMgaT0KbiB0KXtpZih0W3NdKXtpZihzLmNoYXJBdCgwKT0zRD0zRCJ4Iil7 dFtzXT0zRHdbc10uc2VyaWVzX3AydSh1KX1lbHNle3Rbc109Cj0zRHdbc10uc2VyaWVzX3AydShy KX19fX1pZih4LmNvbnN0cmFpblpvb21Ubz0zRD0zRCJ4Iil7cj0zRHp9ZWxzZXtpZih4LmNvbj0K c3RyYWluWm9vbVRvPTNEPTNEInkiKXt1PTNEcX19eC5fem9vbS5lbmQ9M0RbdSxyXTt4Ll96b29t LmdyaWRwb3M9M0R7eDp1LHk6PQpyfTt4LmRvWm9vbSh4Ll96b29tLmdyaWRwb3MsdCx2LHgpfXgu X3pvb20uc3RhcnRlZD0zRGZhbHNlO3guX3pvb20uem9vbWluZz0KPTNEZmFsc2U7aihkb2N1bWVu dCkudW5iaW5kKCJtb3VzZW1vdmUuanFwbG90Q3Vyc29yIixoKTtpZihkb2N1bWVudC5vbnNlbGVj PQp0c3RhcnQhPTNEdW5kZWZpbmVkJiZ4Ll9vbGRIYW5kbGVycy5vbnNlbGVjdHN0YXJ0IT0zRG51 bGwpe2RvY3VtZW50Lm9uc2VsZWM9CnRzdGFydD0zRHguX29sZEhhbmRsZXJzLm9uc2VsZWN0c3Rh cnQ7eC5fb2xkSGFuZGxlcnMub25zZWxlY3RzdGFydD0zRG51bGx9aT0KZihkb2N1bWVudC5vbmRy YWchPTNEdW5kZWZpbmVkJiZ4Ll9vbGRIYW5kbGVycy5vbmRyYWchPTNEbnVsbCl7ZG9jdW1lbnQu b25kPQpyYWc9M0R4Ll9vbGRIYW5kbGVycy5vbmRyYWc7eC5fb2xkSGFuZGxlcnMub25kcmFnPTNE bnVsbH1pZihkb2N1bWVudC5vbm1vdXM9CmVkb3duIT0zRHVuZGVmaW5lZCYmeC5fb2xkSGFuZGxl cnMub25tb3VzZWRvd24hPTNEbnVsbCl7ZG9jdW1lbnQub25tb3VzZWRvdz0Kbj0zRHguX29sZEhh bmRsZXJzLm9ubW91c2Vkb3duO3guX29sZEhhbmRsZXJzLm9ubW91c2Vkb3duPTNEbnVsbH19ZnVu Y3Rpb24gPQpsKCl7dmFyIHk9M0R0aGlzLl96b29tLnN0YXJ0O3ZhciB1PTNEdGhpcy5fem9vbS5l bmQ7dmFyIHM9M0R0aGlzLnpvb21DYW52YXM9Ci5fY3R4O3ZhciByLHYseCxxO2lmKHVbMF0+eVsw XSl7cj0zRHlbMF07cT0zRHVbMF0teVswXX1lbHNle3I9M0R1WzBdO3E9M0R5Wz0KMF0tdVswXX1p Zih1WzFdPnlbMV0pe3Y9M0R5WzFdO3g9M0R1WzFdLXlbMV19ZWxzZXt2PTNEdVsxXTt4PTNEeVsx XS11WzFdfXMuPQpmaWxsU3R5bGU9M0QicmdiYSgwLDAsMCwwLjIpIjtzLnN0cm9rZVN0eWxlPTNE IiM5OTk5OTkiO3MubGluZVdpZHRoPTNEMTtzLmM9CmxlYXJSZWN0KDAsMCxzLmNhbnZhcy53aWR0 aCxzLmNhbnZhcy5oZWlnaHQpO3MuZmlsbFJlY3QoMCwwLHMuY2FudmFzLndpZHRoLD0Kcy5jYW52 YXMuaGVpZ2h0KTtzLmNsZWFyUmVjdChyLHYscSx4KTtzLnN0cm9rZVJlY3Qocix2LHEseCk7cz0z RG51bGx9ai5qcXBsPQpvdC5DdXJzb3JMZWdlbmRSZW5kZXJlcj0zRGZ1bmN0aW9uKHEpe2ouanFw bG90LlRhYmxlTGVnZW5kUmVuZGVyZXIuY2FsbCh0aGk9CnMscSk7dGhpcy5mb3JtYXRTdHJpbmc9 M0QiJXMifTtqLmpxcGxvdC5DdXJzb3JMZWdlbmRSZW5kZXJlci5wcm90b3R5cGU9M0RuZT0KdyBq LmpxcGxvdC5UYWJsZUxlZ2VuZFJlbmRlcmVyKCk7ai5qcXBsb3QuQ3Vyc29yTGVnZW5kUmVuZGVy ZXIucHJvdG90eXBlLmNvPQpuc3RydWN0b3I9M0RqLmpxcGxvdC5DdXJzb3JMZWdlbmRSZW5kZXJl cjtqLmpxcGxvdC5DdXJzb3JMZWdlbmRSZW5kZXJlci5wcm89CnRvdHlwZS5kcmF3PTNEZnVuY3Rp b24oKXtpZih0aGlzLl9lbGVtKXt0aGlzLl9lbGVtLmVtcHR5Rm9yY2UoKTt0aGlzLl9lbGVtPQo9 M0RudWxsfWlmKHRoaXMuc2hvdyl7dmFyIHc9M0R0aGlzLl9zZXJpZXMsQTt2YXIgcj0zRGRvY3Vt ZW50LmNyZWF0ZUVsZW1lbnQ9CigidGFibGUiKTt0aGlzLl9lbGVtPTNEaihyKTtyPTNEbnVsbDt0 aGlzLl9lbGVtLmFkZENsYXNzKCJqcXBsb3QtbGVnZW5kIGpxcD0KbG90LWN1cnNvci1sZWdlbmQi KTt0aGlzLl9lbGVtLmNzcygicG9zaXRpb24iLCJhYnNvbHV0ZSIpO3ZhciBxPTNEZmFsc2U7Zm9y PQoodmFyIHg9M0QwO3g8dy5sZW5ndGg7eCsrKXtBPTNEd1t4XTtpZihBLnNob3cmJkEuc2hvd0xh YmVsKXt2YXIgdj0zRGouanFwbG89CnQuc3ByaW50Zih0aGlzLmZvcm1hdFN0cmluZyxBLmxhYmVs LnRvU3RyaW5nKCkpO2lmKHYpe3ZhciB0PTNEQS5jb2xvcjtpZihBLj0KX3N0YWNrJiYhQS5maWxs KXt0PTNEIiJ9ei5jYWxsKHRoaXMsdix0LHEseCk7cT0zRHRydWV9Zm9yKHZhciB1PTNEMDt1PGou anFwPQpsb3QuYWRkTGVnZW5kUm93SG9va3MubGVuZ3RoO3UrKyl7dmFyIHk9M0RqLmpxcGxvdC5h ZGRMZWdlbmRSb3dIb29rc1t1XS5jYWw9CmwodGhpcyxBKTtpZih5KXt6LmNhbGwodGhpcyx5Lmxh YmVsLHkuY29sb3IscSk7cT0zRHRydWV9fX19dz0zREE9M0RudWxsO2RlbD0KZXRlIHc7ZGVsZXRl IEF9ZnVuY3Rpb24geihELEMsRixzKXt2YXIgQj0zRChGKT90aGlzLnJvd1NwYWNpbmc6IjAiO3Zh ciBFPTNEPQpqKCc8dHIgY2xhc3M9M0QianFwbG90LWxlZ2VuZCBqcXBsb3QtY3Vyc29yLWxlZ2Vu ZCI+PC90cj4nKS5hcHBlbmRUbyh0aGlzLl89CmVsZW0pO0UuZGF0YSgic2VyaWVzSW5kZXgiLHMp O2ooJzx0ZCBjbGFzcz0zRCJqcXBsb3QtbGVnZW5kIGpxcGxvdC1jdXJzb3ItbD0KZWdlbmQtc3dh dGNoIiBzdHlsZT0zRCJwYWRkaW5nLXRvcDonK0IrJzsiPjxkaXYgc3R5bGU9M0QiYm9yZGVyOjFw eCBzb2xpZCAjPQpjY2NjY2M7cGFkZGluZzowLjJlbTsiPjxkaXYgY2xhc3M9M0QianFwbG90LWN1 cnNvci1sZWdlbmQtc3dhdGNoIiBzdHlsZT0zRCI9CmJhY2tncm91bmQtY29sb3I6JytDKyc7Ij48 L2Rpdj48L2Rpdj48L3RkPicpLmFwcGVuZFRvKEUpO3ZhciBHPTNEaignPHRkIGNsYT0Kc3M9M0Qi anFwbG90LWxlZ2VuZCBqcXBsb3QtY3Vyc29yLWxlZ2VuZC1sYWJlbCIgc3R5bGU9M0QidmVydGlj YWwtYWxpZ246bWlkPQpkbGU7cGFkZGluZy10b3A6JytCKyc7Ij48L3RkPicpO0cuYXBwZW5kVG8o RSk7Ry5kYXRhKCJzZXJpZXNJbmRleCIscyk7aWYodGg9CmlzLmVzY2FwZUh0bWwpe0cudGV4dChE KX1lbHNle0cuaHRtbChEKX1FPTNEbnVsbDtHPTNEbnVsbH1yZXR1cm4gdGhpcy5fZWxlbT0KfX0p KGpRdWVyeSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQoKZGlmZiAtciBkYjkyZjZlMTli MzgxODA5N2JkM2Q1YTE0OWFjZjgwY2VkOTA2NzVjIC1yIGEwZDFhOTFlMDViZWUzMmRkNWYyZmFj PQo5M2Q4MGZiZTkzNWJhOGMyOCBjb25maWcvcGx1Z2lucy92aXN1YWxpemF0aW9ucy9jaGFydHMv c3RhdGljL3BsdWdpbnMvanFwbG89CnQvcGx1Z2lucy9qcXBsb3QuaGlnaGxpZ2h0ZXIubWluLmpz Ci0tLSAvZGV2L251bGwKKysrIGIvY29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRz L3N0YXRpYy9wbHVnaW5zL2pxcGxvdC9wbHVnaW5zL2pxPQpwbG90LmhpZ2hsaWdodGVyLm1pbi5q cwpAQCAtMCwwICsxLDMgQEAKKy8qIGpxUGxvdCAxLjAuOHIxMjUwIHwgKGMpIDIwMDktMjAxMyBD aHJpcyBMZW9uZWxsbyB8IGpwbG90LmNvbQorICAganNEYXRlIHwgKGMpIDIwMTAtMjAxMyBDaHJp cyBMZW9uZWxsbworICovKGZ1bmN0aW9uKGQpe2QuanFwbG90LmV2ZW50TGlzdGVuZXJIb29rcy5w dXNoKFsianFwbG90TW91c2VNb3ZlIixmXSk7ZC49CmpxcGxvdC5IaWdobGlnaHRlcj0zRGZ1bmN0 aW9uKGgpe3RoaXMuc2hvdz0zRGQuanFwbG90LmNvbmZpZy5lbmFibGVQbHVnaW5zOz0KdGhpcy5t YXJrZXJSZW5kZXJlcj0zRG5ldyBkLmpxcGxvdC5NYXJrZXJSZW5kZXJlcih7c2hhZG93OmZhbHNl fSk7dGhpcy5zaG93PQpNYXJrZXI9M0R0cnVlO3RoaXMubGluZVdpZHRoQWRqdXN0PTNEMi41O3Ro aXMuc2l6ZUFkanVzdD0zRDU7dGhpcy5zaG93VG9vbHQ9CmlwPTNEdHJ1ZTt0aGlzLnRvb2x0aXBM b2NhdGlvbj0zRCJudyI7dGhpcy5mYWRlVG9vbHRpcD0zRHRydWU7dGhpcy50b29sdGlwRj0KYWRl U3BlZWQ9M0QiZmFzdCI7dGhpcy50b29sdGlwT2Zmc2V0PTNEMjt0aGlzLnRvb2x0aXBBeGVzPTNE ImJvdGgiO3RoaXMudG9vPQpsdGlwU2VwYXJhdG9yPTNEIiwgIjt0aGlzLnRvb2x0aXBDb250ZW50 RWRpdG9yPTNEbnVsbDt0aGlzLnVzZUF4ZXNGb3JtYXR0ZXI9CnM9M0R0cnVlO3RoaXMudG9vbHRp cEZvcm1hdFN0cmluZz0zRCIlLjVQIjt0aGlzLmZvcm1hdFN0cmluZz0zRG51bGw7dGhpcy55dj0K YWx1ZXM9M0QxO3RoaXMuYnJpbmdTZXJpZXNUb0Zyb250PTNEZmFsc2U7dGhpcy5fdG9vbHRpcEVs ZW07dGhpcy5pc0hpZ2hsaWdoPQp0aW5nPTNEZmFsc2U7dGhpcy5jdXJyZW50TmVpZ2hib3I9M0Ru dWxsO2QuZXh0ZW5kKHRydWUsdGhpcyxoKX07dmFyIGI9M0RbIm49CnciLCJuIiwibmUiLCJlIiwi c2UiLCJzIiwic3ciLCJ3Il07dmFyIGU9M0R7bnc6MCxuOjEsbmU6MixlOjMsc2U6NCxzOjUsc3c6 Nj0KLHc6N307dmFyIGM9M0RbInNlIiwicyIsInN3IiwidyIsIm53IiwibiIsIm5lIiwiZSJdO2Qu anFwbG90LkhpZ2hsaWdodGVyLmluPQppdD0zRGZ1bmN0aW9uKGssaixpKXt2YXIgaD0zRGl8fHt9 O3RoaXMucGx1Z2lucy5oaWdobGlnaHRlcj0zRG5ldyBkLmpxcGxvdC49CkhpZ2hsaWdodGVyKGgu aGlnaGxpZ2h0ZXIpfTtkLmpxcGxvdC5IaWdobGlnaHRlci5wYXJzZU9wdGlvbnM9M0RmdW5jdGlv bihpLD0KaCl7dGhpcy5zaG93SGlnaGxpZ2h0PTNEdHJ1ZX07ZC5qcXBsb3QuSGlnaGxpZ2h0ZXIu cG9zdFBsb3REcmF3PTNEZnVuY3Rpb24oPQope2lmKHRoaXMucGx1Z2lucy5oaWdobGlnaHRlciYm dGhpcy5wbHVnaW5zLmhpZ2hsaWdodGVyLmhpZ2hsaWdodENhbnZhcyl7dGg9CmlzLnBsdWdpbnMu aGlnaGxpZ2h0ZXIuaGlnaGxpZ2h0Q2FudmFzLnJlc2V0Q2FudmFzKCk7dGhpcy5wbHVnaW5zLmhp Z2hsaWdodD0KZXIuaGlnaGxpZ2h0Q2FudmFzPTNEbnVsbH1pZih0aGlzLnBsdWdpbnMuaGlnaGxp Z2h0ZXImJnRoaXMucGx1Z2lucy5oaWdobGlnPQpodGVyLl90b29sdGlwRWxlbSl7dGhpcy5wbHVn aW5zLmhpZ2hsaWdodGVyLl90b29sdGlwRWxlbS5lbXB0eUZvcmNlKCk7dGhpcy49CnBsdWdpbnMu aGlnaGxpZ2h0ZXIuX3Rvb2x0aXBFbGVtPTNEbnVsbH10aGlzLnBsdWdpbnMuaGlnaGxpZ2h0ZXIu aGlnaGxpZ2h0Qz0KYW52YXM9M0RuZXcgZC5qcXBsb3QuR2VuZXJpY0NhbnZhcygpO3RoaXMuZXZl bnRDYW52YXMuX2VsZW0uYmVmb3JlKHRoaXMucGx1PQpnaW5zLmhpZ2hsaWdodGVyLmhpZ2hsaWdo dENhbnZhcy5jcmVhdGVFbGVtZW50KHRoaXMuX2dyaWRQYWRkaW5nLCJqcXBsb3QtaGk9CmdobGln aHQtY2FudmFzIix0aGlzLl9wbG90RGltZW5zaW9ucyx0aGlzKSk7dGhpcy5wbHVnaW5zLmhpZ2hs aWdodGVyLmhpZ2hsaT0KZ2h0Q2FudmFzLnNldENvbnRleHQoKTt2YXIgaD0zRGRvY3VtZW50LmNy ZWF0ZUVsZW1lbnQoImRpdiIpO3RoaXMucGx1Z2lucy5oPQppZ2hsaWdodGVyLl90b29sdGlwRWxl bT0zRGQoaCk7aD0zRG51bGw7dGhpcy5wbHVnaW5zLmhpZ2hsaWdodGVyLl90b29sdGlwRWw9CmVt LmFkZENsYXNzKCJqcXBsb3QtaGlnaGxpZ2h0ZXItdG9vbHRpcCIpO3RoaXMucGx1Z2lucy5oaWdo bGlnaHRlci5fdG9vbHRpcD0KRWxlbS5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsZGlzcGxheToi bm9uZSJ9KTt0aGlzLmV2ZW50Q2FudmFzLl9lbGVtLmJlZm9yPQplKHRoaXMucGx1Z2lucy5oaWdo bGlnaHRlci5fdG9vbHRpcEVsZW0pfTtkLmpxcGxvdC5wcmVJbml0SG9va3MucHVzaChkLmpxcGw9 Cm90LkhpZ2hsaWdodGVyLmluaXQpO2QuanFwbG90LnByZVBhcnNlU2VyaWVzT3B0aW9uc0hvb2tz LnB1c2goZC5qcXBsb3QuSGlnaD0KbGlnaHRlci5wYXJzZU9wdGlvbnMpO2QuanFwbG90LnBvc3RE cmF3SG9va3MucHVzaChkLmpxcGxvdC5IaWdobGlnaHRlci5wb3N0PQpQbG90RHJhdyk7ZnVuY3Rp b24gYShtLG8pe3ZhciBqPTNEbS5wbHVnaW5zLmhpZ2hsaWdodGVyO3ZhciBwPTNEbS5zZXJpZXNb by49CnNlcmllc0luZGV4XTt2YXIgaD0zRHAubWFya2VyUmVuZGVyZXI7dmFyIGk9M0RqLm1hcmtl clJlbmRlcmVyO2kuc3R5bGU9M0RoLj0Kc3R5bGU7aS5saW5lV2lkdGg9M0RoLmxpbmVXaWR0aCtq LmxpbmVXaWR0aEFkanVzdDtpLnNpemU9M0RoLnNpemUrai5zaXplQWRqPQp1c3Q7dmFyIGw9M0Rk LmpxcGxvdC5nZXRDb2xvckNvbXBvbmVudHMoaC5jb2xvcik7dmFyIG49M0RbbFswXSxsWzFdLGxb Ml1dO3Y9CmFyIGs9M0QobFszXT49M0QwLjYpP2xbM10qMC42OmxbM10qKDItbFszXSk7aS5jb2xv cj0zRCJyZ2JhKCIrblswXSsiLCIrblsxXT0KKyIsIituWzJdKyIsIitrKyIpIjtpLmluaXQoKTtp LmRyYXcocC5ncmlkRGF0YVtvLnBvaW50SW5kZXhdWzBdLHAuZ3JpZERhdGFbPQpvLnBvaW50SW5k ZXhdWzFdLGouaGlnaGxpZ2h0Q2FudmFzLl9jdHgpfWZ1bmN0aW9uIGcoQSxxLG0pe3ZhciBrPTNE QS5wbHVnaW49CnMuaGlnaGxpZ2h0ZXI7dmFyIEQ9M0RrLl90b29sdGlwRWxlbTt2YXIgcj0zRHEu aGlnaGxpZ2h0ZXJ8fHt9O3ZhciB0PTNEZC5leD0KdGVuZCh0cnVlLHt9LGsscik7aWYodC51c2VB eGVzRm9ybWF0dGVycyl7dmFyIHc9M0RxLl94YXhpcy5fdGlja3NbMF0uZm9ybWF0PQp0ZXI7dmFy IGg9M0RxLl95YXhpcy5fdGlja3NbMF0uZm9ybWF0dGVyO3ZhciBFPTNEcS5feGF4aXMuX3RpY2tz WzBdLmZvcm1hdFM9CnRyaW5nO3ZhciBzPTNEcS5feWF4aXMuX3RpY2tzWzBdLmZvcm1hdFN0cmlu Zzt2YXIgejt2YXIgdT0zRHcoRSxtLmRhdGFbMF0pOz0KdmFyIGw9M0RbXTtmb3IodmFyIEI9M0Qx O0I8dC55dmFsdWVzKzE7QisrKXtsLnB1c2goaChzLG0uZGF0YVtCXSkpfWlmKHR5cGVvPQpmIHQu Zm9ybWF0U3RyaW5nPTNEPTNEPTNEInN0cmluZyIpe3N3aXRjaCh0LnRvb2x0aXBBeGVzKXtjYXNl ImJvdGgiOmNhc2UieHk9CiI6bC51bnNoaWZ0KHUpO2wudW5zaGlmdCh0LmZvcm1hdFN0cmluZyk7 ej0zRGQuanFwbG90LnNwcmludGYuYXBwbHkoZC5qcXBsbz0KdC5zcHJpbnRmLGwpO2JyZWFrO2Nh c2UieXgiOmwucHVzaCh1KTtsLnVuc2hpZnQodC5mb3JtYXRTdHJpbmcpO3o9M0RkLmpxcGxvPQp0 LnNwcmludGYuYXBwbHkoZC5qcXBsb3Quc3ByaW50ZixsKTticmVhaztjYXNlIngiOno9M0RkLmpx cGxvdC5zcHJpbnRmLmFwcGw9CnkoZC5qcXBsb3Quc3ByaW50ZixbdC5mb3JtYXRTdHJpbmcsdV0p O2JyZWFrO2Nhc2UieSI6bC51bnNoaWZ0KHQuZm9ybWF0U3RyaT0KbmcpO3o9M0RkLmpxcGxvdC5z cHJpbnRmLmFwcGx5KGQuanFwbG90LnNwcmludGYsbCk7YnJlYWs7ZGVmYXVsdDpsLnVuc2hpZnQo PQp1KTtsLnVuc2hpZnQodC5mb3JtYXRTdHJpbmcpO3o9M0RkLmpxcGxvdC5zcHJpbnRmLmFwcGx5 KGQuanFwbG90LnNwcmludGYsbCk9CjticmVha319ZWxzZXtzd2l0Y2godC50b29sdGlwQXhlcyl7 Y2FzZSJib3RoIjpjYXNlInh5Ijp6PTNEdTtmb3IodmFyIEI9M0QwOz0KQjxsLmxlbmd0aDtCKysp e3orPTNEdC50b29sdGlwU2VwYXJhdG9yK2xbQl19YnJlYWs7Y2FzZSJ5eCI6ej0zRCIiO2Zvcih2 YXIgPQpCPTNEMDtCPGwubGVuZ3RoO0IrKyl7eis9M0RsW0JdK3QudG9vbHRpcFNlcGFyYXRvcn16 Kz0zRHU7YnJlYWs7Y2FzZSJ4Ijp6PQo9M0R1O2JyZWFrO2Nhc2UieSI6ej0zRGwuam9pbih0LnRv b2x0aXBTZXBhcmF0b3IpO2JyZWFrO2RlZmF1bHQ6ej0zRHU7Zm9yKHY9CmFyIEI9M0QwO0I8bC5s ZW5ndGg7QisrKXt6Kz0zRHQudG9vbHRpcFNlcGFyYXRvcitsW0JdfWJyZWFrfX19ZWxzZXt2YXIg ejtpZj0KKHR5cGVvZiB0LmZvcm1hdFN0cmluZz0zRD0zRD0zRCJzdHJpbmciKXt6PTNEZC5qcXBs b3Quc3ByaW50Zi5hcHBseShkLmpxcGxvPQp0LnNwcmludGYsW3QuZm9ybWF0U3RyaW5nXS5jb25j YXQobS5kYXRhKSl9ZWxzZXtpZih0LnRvb2x0aXBBeGVzPTNEPTNEImJvdGg9CiJ8fHQudG9vbHRp cEF4ZXM9M0Q9M0QieHkiKXt6PTNEZC5qcXBsb3Quc3ByaW50Zih0LnRvb2x0aXBGb3JtYXRTdHJp bmcsbS5kYT0KdGFbMF0pK3QudG9vbHRpcFNlcGFyYXRvcitkLmpxcGxvdC5zcHJpbnRmKHQudG9v bHRpcEZvcm1hdFN0cmluZyxtLmRhdGFbMV0pPQp9ZWxzZXtpZih0LnRvb2x0aXBBeGVzPTNEPTNE Inl4Iil7ej0zRGQuanFwbG90LnNwcmludGYodC50b29sdGlwRm9ybWF0U3RyaW49CmcsbS5kYXRh WzFdKSt0LnRvb2x0aXBTZXBhcmF0b3IrZC5qcXBsb3Quc3ByaW50Zih0LnRvb2x0aXBGb3JtYXRT dHJpbmcsbS5kYT0KdGFbMF0pfWVsc2V7aWYodC50b29sdGlwQXhlcz0zRD0zRCJ4Iil7ej0zRGQu anFwbG90LnNwcmludGYodC50b29sdGlwRm9ybWF0PQpTdHJpbmcsbS5kYXRhWzBdKX1lbHNle2lm KHQudG9vbHRpcEF4ZXM9M0Q9M0QieSIpe3o9M0RkLmpxcGxvdC5zcHJpbnRmKHQudG89Cm9sdGlw Rm9ybWF0U3RyaW5nLG0uZGF0YVsxXSl9fX19fX1pZihkLmlzRnVuY3Rpb24odC50b29sdGlwQ29u dGVudEVkaXRvcikpez0Kej0zRHQudG9vbHRpcENvbnRlbnRFZGl0b3IoeixtLnNlcmllc0luZGV4 LG0ucG9pbnRJbmRleCxBKX1ELmh0bWwoeik7dmFyIEM9Cj0zRHt4Om0uZ3JpZERhdGFbMF0seTpt LmdyaWREYXRhWzFdfTt2YXIgdj0zRDA7dmFyIGo9M0QwLjcwNztpZihxLm1hcmtlclJlbj0KZGVy ZXIuc2hvdz0zRD0zRHRydWUpe3Y9M0QocS5tYXJrZXJSZW5kZXJlci5zaXplK3Quc2l6ZUFkanVz dCkvMn12YXIgbz0zRGI7PQppZihxLmZpbGxUb1plcm8mJnEuZmlsbCYmbS5kYXRhWzFdPDApe289 M0RjfXN3aXRjaChvW2VbdC50b29sdGlwTG9jYXRpb25dXSk9CntjYXNlIm53Ijp2YXIgcD0zREMu eCtBLl9ncmlkUGFkZGluZy5sZWZ0LUQub3V0ZXJXaWR0aCh0cnVlKS10LnRvb2x0aXBPZmZzZT0K dC1qKnY7dmFyIG49M0RDLnkrQS5fZ3JpZFBhZGRpbmcudG9wLXQudG9vbHRpcE9mZnNldC1ELm91 dGVySGVpZ2h0KHRydWUpLWoqPQp2O2JyZWFrO2Nhc2UibiI6dmFyIHA9M0RDLngrQS5fZ3JpZFBh ZGRpbmcubGVmdC1ELm91dGVyV2lkdGgodHJ1ZSkvMjt2YXIgbj0KPTNEQy55K0EuX2dyaWRQYWRk aW5nLnRvcC10LnRvb2x0aXBPZmZzZXQtRC5vdXRlckhlaWdodCh0cnVlKS12O2JyZWFrO2Nhc2Ui PQpuZSI6dmFyIHA9M0RDLngrQS5fZ3JpZFBhZGRpbmcubGVmdCt0LnRvb2x0aXBPZmZzZXQraip2 O3ZhciBuPTNEQy55K0EuX2dyaWQ9ClBhZGRpbmcudG9wLXQudG9vbHRpcE9mZnNldC1ELm91dGVy SGVpZ2h0KHRydWUpLWoqdjticmVhaztjYXNlImUiOnZhciBwPTNEQz0KLngrQS5fZ3JpZFBhZGRp bmcubGVmdCt0LnRvb2x0aXBPZmZzZXQrdjt2YXIgbj0zREMueStBLl9ncmlkUGFkZGluZy50b3At RC5vPQp1dGVySGVpZ2h0KHRydWUpLzI7YnJlYWs7Y2FzZSJzZSI6dmFyIHA9M0RDLngrQS5fZ3Jp ZFBhZGRpbmcubGVmdCt0LnRvb2x0aXA9Ck9mZnNldCtqKnY7dmFyIG49M0RDLnkrQS5fZ3JpZFBh ZGRpbmcudG9wK3QudG9vbHRpcE9mZnNldCtqKnY7YnJlYWs7Y2FzZSJzIj0KOnZhciBwPTNEQy54 K0EuX2dyaWRQYWRkaW5nLmxlZnQtRC5vdXRlcldpZHRoKHRydWUpLzI7dmFyIG49M0RDLnkrQS5f Z3JpZFBhPQpkZGluZy50b3ArdC50b29sdGlwT2Zmc2V0K3Y7YnJlYWs7Y2FzZSJzdyI6dmFyIHA9 M0RDLngrQS5fZ3JpZFBhZGRpbmcubGVmdC09CkQub3V0ZXJXaWR0aCh0cnVlKS10LnRvb2x0aXBP ZmZzZXQtaip2O3ZhciBuPTNEQy55K0EuX2dyaWRQYWRkaW5nLnRvcCt0LnRvbz0KbHRpcE9mZnNl dCtqKnY7YnJlYWs7Y2FzZSJ3Ijp2YXIgcD0zREMueCtBLl9ncmlkUGFkZGluZy5sZWZ0LUQub3V0 ZXJXaWR0aCh0PQpydWUpLXQudG9vbHRpcE9mZnNldC12O3ZhciBuPTNEQy55K0EuX2dyaWRQYWRk aW5nLnRvcC1ELm91dGVySGVpZ2h0KHRydWUpLzI9CjticmVhaztkZWZhdWx0OnZhciBwPTNEQy54 K0EuX2dyaWRQYWRkaW5nLmxlZnQtRC5vdXRlcldpZHRoKHRydWUpLXQudG9vbHRpcD0KT2Zmc2V0 LWoqdjt2YXIgbj0zREMueStBLl9ncmlkUGFkZGluZy50b3AtdC50b29sdGlwT2Zmc2V0LUQub3V0 ZXJIZWlnaHQodHJ1PQplKS1qKnY7YnJlYWt9RC5jc3MoImxlZnQiLHApO0QuY3NzKCJ0b3AiLG4p O2lmKHQuZmFkZVRvb2x0aXApe0Quc3RvcCh0cnVlLHQ9CnJ1ZSkuZmFkZUluKHQudG9vbHRpcEZh ZGVTcGVlZCl9ZWxzZXtELnNob3coKX1EPTNEbnVsbH1mdW5jdGlvbiBmKG4saixpLHAsbD0KKXt2 YXIgaD0zRGwucGx1Z2lucy5oaWdobGlnaHRlcjt2YXIgbT0zRGwucGx1Z2lucy5jdXJzb3I7aWYo aC5zaG93KXtpZihwPTNEPQo9M0RudWxsJiZoLmlzSGlnaGxpZ2h0aW5nKXt2YXIgbz0zRGpRdWVy eS5FdmVudCgianFwbG90SGlnaGxpZ2h0ZXJVbmhpZ2hsaWc9Cmh0Iik7bC50YXJnZXQudHJpZ2dl cihvKTt2YXIgcT0zRGguaGlnaGxpZ2h0Q2FudmFzLl9jdHg7cS5jbGVhclJlY3QoMCwwLHEuYz0K YW52YXMud2lkdGgscS5jYW52YXMuaGVpZ2h0KTtpZihoLmZhZGVUb29sdGlwKXtoLl90b29sdGlw RWxlbS5mYWRlT3V0KGgudG9vPQpsdGlwRmFkZVNwZWVkKX1lbHNle2guX3Rvb2x0aXBFbGVtLmhp ZGUoKX1pZihoLmJyaW5nU2VyaWVzVG9Gcm9udCl7bC5yZXN0b3I9CmVQcmV2aW91c1Nlcmllc09y ZGVyKCl9aC5pc0hpZ2hsaWdodGluZz0zRGZhbHNlO2guY3VycmVudE5laWdoYm9yPTNEbnVsbDtx PQo9M0RudWxsfWVsc2V7aWYocCE9M0RudWxsJiZsLnNlcmllc1twLnNlcmllc0luZGV4XS5zaG93 SGlnaGxpZ2h0JiYhaC5pc0hpZ2g9CmxpZ2h0aW5nKXt2YXIgbz0zRGpRdWVyeS5FdmVudCgianFw bG90SGlnaGxpZ2h0ZXJIaWdobGlnaHQiKTtvLndoaWNoPTNEbi53aD0KaWNoO28ucGFnZVg9M0Ru LnBhZ2VYO28ucGFnZVk9M0RuLnBhZ2VZO3ZhciBrPTNEW3Auc2VyaWVzSW5kZXgscC5wb2ludElu ZGV4PQoscC5kYXRhLGxdO2wudGFyZ2V0LnRyaWdnZXIobyxrKTtoLmlzSGlnaGxpZ2h0aW5nPTNE dHJ1ZTtoLmN1cnJlbnROZWlnaGJvcj0KPTNEcDtpZihoLnNob3dNYXJrZXIpe2EobCxwKX1pZihs LnNlcmllc1twLnNlcmllc0luZGV4XS5zaG93JiZoLnNob3dUb29sdGlwPQomJighbXx8IW0uX3pv b20uc3RhcnRlZCkpe2cobCxsLnNlcmllc1twLnNlcmllc0luZGV4XSxwKX1pZihoLmJyaW5nU2Vy aWVzVG89CkZyb250KXtsLm1vdmVTZXJpZXNUb0Zyb250KHAuc2VyaWVzSW5kZXgpfX1lbHNle2lm KHAhPTNEbnVsbCYmaC5pc0hpZ2hsaWdodD0KaW5nJiZoLmN1cnJlbnROZWlnaGJvciE9M0RwKXtp ZihsLnNlcmllc1twLnNlcmllc0luZGV4XS5zaG93SGlnaGxpZ2h0KXt2YXIgPQpxPTNEaC5oaWdo bGlnaHRDYW52YXMuX2N0eDtxLmNsZWFyUmVjdCgwLDAscS5jYW52YXMud2lkdGgscS5jYW52YXMu aGVpZ2h0KTs9CmguaXNIaWdobGlnaHRpbmc9M0R0cnVlO2guY3VycmVudE5laWdoYm9yPTNEcDtp ZihoLnNob3dNYXJrZXIpe2EobCxwKX1pZihsLj0Kc2VyaWVzW3Auc2VyaWVzSW5kZXhdLnNob3cm Jmguc2hvd1Rvb2x0aXAmJighbXx8IW0uX3pvb20uc3RhcnRlZCkpe2cobCxsLnNlPQpyaWVzW3Au c2VyaWVzSW5kZXhdLHApfWlmKGguYnJpbmdTZXJpZXNUb0Zyb250KXtsLm1vdmVTZXJpZXNUb0Zy b250KHAuc2VyaWU9CnNJbmRleCl9fX19fX19fSkoalF1ZXJ5KTsKXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCgpkaWZmIC1yIGRiOTJmNmUxOWIzODE4MDk3YmQzZDVhMTQ5YWNmODBjZWQ5MDY3 NWMgLXIgYTBkMWE5MWUwNWJlZTMyZGQ1ZjJmYWM9CjkzZDgwZmJlOTM1YmE4YzI4IGNvbmZpZy9w bHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy9zdGF0aWMvdmlld3MvdHlwZXMuanMKLS0tIGEv Y29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRzL3N0YXRpYy92aWV3cy90eXBlcy5q cworKysgYi9jb25maWcvcGx1Z2lucy92aXN1YWxpemF0aW9ucy9jaGFydHMvc3RhdGljL3ZpZXdz L3R5cGVzLmpzCkBAIC0yOSwxNCArMjksMjYgQEAKICAgICAgICAgLy8gY3JlYXRlIG5ldyBlbGVt ZW50CiAgICAgICAgIHZhciAkZWwgPTNEICQoJzxkaXYgY2xhc3M9M0QiY2hhcnRzLWdyaWQiLz4n KTsKICAgICAgICA9MjAKKyAgICAgICAgLy8gY29uc3RydWN0IGNoYXJ0IHR5cGUgc3Vic2V0IHNl bGVjdGlvbiBidXR0b25zCisgICAgICAgIHRoaXMubGlicmFyeSA9M0QgbmV3IFVpLlJhZGlvQnV0 dG9uKHsKKyAgICAgICAgICAgIGRhdGEgICAgOiBbIHsgbGFiZWw6ICdEZWZhdWx0JywgdmFsdWU6 ICdkZWZhdWx0JyB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogJ1NtYWxsICg8 MWsgbGluZXMpJywgdmFsdWU6ICdzbWFsbCcgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsg bGFiZWw6ICdNZWRpdW0gKDwxMGsgbGluZXMpJywgdmFsdWU6ICdtZWRpdW0nIH0sCisgICAgICAg ICAgICAgICAgICAgICAgICB7IGxhYmVsOiAnTGFyZ2UgKD4xMGsgbGluZXMpJywgdmFsdWU6ICds YXJnZScgfV0sCisgICAgICAgICAgICBvbmNoYW5nZTogZnVuY3Rpb24odmFsdWUpIHsKKyAgICAg ICAgICAgICAgICAgICAgc2VsZi5fZmlsdGVyKHZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAg ICAgfSk7CisgICAgICAgICRlbC5hcHBlbmQoVXRpbHMud3JhcCh0aGlzLmxpYnJhcnkuJGVsKSk7 CisgICAgICAgPTIwCiAgICAgICAgIC8vIHNldCBlbGVtZW50CiAgICAgICAgIHRoaXMuc2V0RWxl bWVudCgkZWwpOwogICAgICAgID0yMAogICAgICAgICAvLyByZW5kZXIKICAgICAgICAgdGhpcy5f cmVuZGVyKCk7CiAgICAgICAgPTIwCi0gICAgICAgIC8vIHNob3cgb25seSBkZWZhdWx0IGNoYXJ0 IHR5cGVzCi0gICAgICAgIHRoaXMuX2ZpbHRlcignZGVmYXVsdCcpOworICAgICAgICAvLyBzZXQK KyAgICAgICAgdGhpcy5saWJyYXJ5LnZhbHVlKCdkZWZhdWx0Jyk7CiAgICAgfSwKICAgID0yMAog ICAgIC8vIHZhbHVlCgpkaWZmIC1yIGRiOTJmNmUxOWIzODE4MDk3YmQzZDVhMTQ5YWNmODBjZWQ5 MDY3NWMgLXIgYTBkMWE5MWUwNWJlZTMyZGQ1ZjJmYWM9CjkzZDgwZmJlOTM1YmE4YzI4IGNvbmZp Zy9wbHVnaW5zL3Zpc3VhbGl6YXRpb25zL2NoYXJ0cy90ZW1wbGF0ZXMvY2hhcnRzLm1ha28KLS0t IGEvY29uZmlnL3BsdWdpbnMvdmlzdWFsaXphdGlvbnMvY2hhcnRzL3RlbXBsYXRlcy9jaGFydHMu bWFrbworKysgYi9jb25maWcvcGx1Z2lucy92aXN1YWxpemF0aW9ucy9jaGFydHMvdGVtcGxhdGVz L2NoYXJ0cy5tYWtvCkBAIC0yMSw5ICsyMSwxNCBAQAogICAgICAgICAjIyBzaGFyZWQgY3NzCiAg ICAgICAgICR7aC5jc3MoICdiYXNlJyApfQo9MjAKLSAgICAgICAgIyMgY3NzCisgICAgICAgICMj IG52ZDMKICAgICAgICAgJHtoLnN0eWxlc2hlZXRfbGluayggYXBwX3Jvb3QgKyAicGx1Z2lucy9u dmQzL252LmQzLmNzcyIgKX0KPTIwCisgICAgICAgICMjIGpxcGxvdAorICAgICAgICAke2guc3R5 bGVzaGVldF9saW5rKCBhcHBfcm9vdCArICJwbHVnaW5zL2pxcGxvdC9qcXVlcnkuanFwbG90LmNz cyI9CiApfQorICAgICAgICAke2guamF2YXNjcmlwdF9saW5rKCBhcHBfcm9vdCArICJwbHVnaW5z L2pxcGxvdC9qcXVlcnkuanFwbG90LmpzIiA9Cil9CisgICAgICAgICR7aC5qYXZhc2NyaXB0X2xp bmsoIGFwcF9yb290ICsgInBsdWdpbnMvanFwbG90L2pxdWVyeS5qcXBsb3QucGx1Zz0KaW5zLmpz IiApfQorCiAgICAgICAgICMjIGxvYWQgbWVyZ2VkL21pbmlmaWVkIGNvZGUKICAgICAgICAgJHto LmphdmFzY3JpcHRfbGluayggYXBwX3Jvb3QgKyAiYnVpbGQtYXBwLmpzIiApfQogICAgICAgID0y MApAQCAtNTYsMTUgKzYxLDEzIEBACiAgICAgICAgICAgICByZXF1aXJlLmNvbmZpZyh7CiAgICAg ICAgICAgICAgICAgYmFzZVVybDogY29uZmlnLnJvb3QgKyAic3RhdGljL3NjcmlwdHMvIiwKICAg ICAgICAgICAgICAgICBwYXRoczogewotICAgICAgICAgICAgICAgICAgICAicGx1Z2luIiAgICAg ICAgOiAiJHthcHBfcm9vdH0iLAotICAgICAgICAgICAgICAgICAgICAiYmVhbiIgICAgICAgICAg OiAiJHthcHBfcm9vdH0vcGx1Z2lucy9mbG90cjIvYmVhbiIsCi0gICAgICAgICAgICAgICAgICAg ICJmbG90cjIiICAgICAgICA6ICIke2FwcF9yb290fS9wbHVnaW5zL2Zsb3RyMi9mbG90cjItYT0K bWQiLAotICAgICAgICAgICAgICAgICAgICAiZDMiICAgICAgICAgICAgOiAibGlicy9kMyIKKyAg ICAgICAgICAgICAgICAgICAgInBsdWdpbiIgICAgICAgIDogIiR7YXBwX3Jvb3R9IgogICAgICAg ICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgc2hpbTogewogICAgICAgICAgICAgICAgICAg ICAibGlicy91bmRlcnNjb3JlIjogeyBleHBvcnRzOiAiXyIgfSwKICAgICAgICAgICAgICAgICAg ICAgImxpYnMvYmFja2JvbmUvYmFja2JvbmUiOiB7IGV4cG9ydHM6ICJCYWNrYm9uZSIgfSwKLSAg ICAgICAgICAgICAgICAgICAgImQzIjogeyBleHBvcnRzOiAiZDMifQorICAgICAgICAgICAgICAg ICAgICAiZDMiOiB7IGV4cG9ydHM6ICJkMyJ9LAorCiAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgfSk7CgpSZXBvc2l0b3J5IFVSTDogaHR0cHM6Ly9iaXRidWNrZXQub3JnL2dhbGF4eS9n YWxheHktY2VudHJhbC8KCi0tCgpUaGlzIGlzIGEgY29tbWl0IG5vdGlmaWNhdGlvbiBmcm9tIGJp dGJ1Y2tldC5vcmcuIFlvdSBhcmUgcmVjZWl2aW5nCnRoaXMgYmVjYXVzZSB5b3UgaGF2ZSB0aGUg c2VydmljZSBlbmFibGVkLCBhZGRyZXNzaW5nIHRoZSByZWNpcGllbnQgb2YKdGhpcyBlbWFpbC4K
participants (1)
-
commits-noreply@bitbucket.org