1752026087 waR3U4bTeM%3A0051072bbfdd605f38f6c937893a4827-75aa77c6e372507b206138a904f635db s:37180:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MzI6IlN5bmRldGljcyByZXZpZXcgY29udGVudCBsb2FkZXIuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjY3NjoiUEhQIHZlcnNpb24gOAoKQ29weXJpZ2h0IChDKSBWaWxsYW5vdmEgVW5pdmVyc2l0eSAyMDEwLgoKVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIsCmFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgoKVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCmFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjU6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6ODoiY2F0ZWdvcnkiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjY6IlZ1RmluZCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoicGFja2FnZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NzoiQ29udGVudCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czoxMToiRGVtaWFuIEthdHoiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MjU6ImRlbWlhbi5rYXR6QHZpbGxhbm92YS5lZHUiO31pOjM7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImxpY2Vuc2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjY5OiJodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvZ3BsLTIuMC5waHAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjQ7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTGluayI6Mzp7czo3OiIAKgBuYW1lIjtzOjQ6ImxpbmsiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjQ6Ildpa2kiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xMaW5rAGxpbmsiO3M6MzU6Imh0dHBzOi8vdnVmaW5kLm9yZy93aWtpL2RldmVsb3BtZW50Ijt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MDoiIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBoYXNoIjtzOjMyOiI3NWFhNzdjNmUzNzI1MDdiMjA2MTM4YTkwNGY2MzVkYiI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjEzOiJTeW5kZXRpY3MucGhwIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6NDc6IlZ1RmluZC9zcmMvVnVGaW5kL0NvbnRlbnQvUmV2aWV3cy9TeW5kZXRpY3MucGhwIjtzOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHNvdXJjZSI7czo3ODk1OiI8P3BocAoKLyoqCiAqIFN5bmRldGljcyByZXZpZXcgY29udGVudCBsb2FkZXIuCiAqCiAqIFBIUCB2ZXJzaW9uIDgKICoKICogQ29weXJpZ2h0IChDKSBWaWxsYW5vdmEgVW5pdmVyc2l0eSAyMDEwLgogKgogKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiwKICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCiAqCiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQogKgogKiBAY2F0ZWdvcnkgVnVGaW5kCiAqIEBwYWNrYWdlICBDb250ZW50CiAqIEBhdXRob3IgICBEZW1pYW4gS2F0eiA8ZGVtaWFuLmthdHpAdmlsbGFub3ZhLmVkdT4KICogQGxpY2Vuc2UgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ncGwtMi4wLnBocCBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogKiBAbGluayAgICAgaHR0cHM6Ly92dWZpbmQub3JnL3dpa2kvZGV2ZWxvcG1lbnQgV2lraQogKi8KCm5hbWVzcGFjZSBWdUZpbmRcQ29udGVudFxSZXZpZXdzOwoKLyoqCiAqIFN5bmRldGljcyByZXZpZXcgY29udGVudCBsb2FkZXIuCiAqCiAqIEBjYXRlZ29yeSBWdUZpbmQKICogQHBhY2thZ2UgIENvbnRlbnQKICogQGF1dGhvciAgIERlbWlhbiBLYXR6IDxkZW1pYW4ua2F0ekB2aWxsYW5vdmEuZWR1PgogKiBAbGljZW5zZSAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2dwbC0yLjAucGhwIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAqIEBsaW5rICAgICBodHRwczovL3Z1ZmluZC5vcmcvd2lraS9kZXZlbG9wbWVudCBXaWtpCiAqLwpjbGFzcyBTeW5kZXRpY3MgZXh0ZW5kcyBcVnVGaW5kXENvbnRlbnRcQWJzdHJhY3RTeW5kZXRpY3MKewogICAgLyoqCiAgICAgKiBMaXN0IG9mIHN5bmRldGljIHJldmlldyBzb3VyY2VzCiAgICAgKgogICAgICogQHZhciBhcnJheQogICAgICovCiAgICBwcm90ZWN0ZWQgJHNvdXJjZUxpc3QgPSBbCiAgICAgICAgJ0NIUkVWSUVXJyA9PiBbJ3RpdGxlJyA9PiAnQ2hvaWNlIFJldmlldycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmlsZScgPT4gJ0NIUkVWSUVXLlhNTCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGl2JyA9PiAnPGRpdiBpZD0ic3luX2NocmV2aWV3Ij48L2Rpdj4nXSwKICAgICAgICAnTllSRVZJRVcnID0+IFsndGl0bGUnID0+ICdOZXcgWW9yayBUaW1lcyBSZXZpZXcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpbGUnID0+ICdOWVJFVklFVy5YTUwnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RpdicgPT4gJzxkaXYgaWQ9InN5bl9ueXJldmlldyI+PC9kaXY+J10sCiAgICAgICAgJ0JMUkVWSUVXJyA9PiBbJ3RpdGxlJyA9PiAnQm9va2xpc3QgUmV2aWV3JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWxlJyA9PiAnQkxSRVZJRVcuWE1MJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkaXYnID0+ICc8ZGl2IGlkPSJzeW5fYmxyZXZpZXciPjwvZGl2PiddLAogICAgICAgICdQV1JFVklFVycgPT4gWyd0aXRsZScgPT4gIlB1Ymxpc2hlcidzIFdlZWtseSBSZXZpZXciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpbGUnID0+ICdQV1JFVklFVy5YTUwnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RpdicgPT4gJzxkaXYgaWQ9InN5bl9wd3JldmlldyI+PC9kaXY+J10sCiAgICAgICAgJ0xKUkVWSUVXJyA9PiBbJ3RpdGxlJyA9PiAnTGlicmFyeSBKb3VybmFsIFJldmlldycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmlsZScgPT4gJ0xKUkVWSUVXLlhNTCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGl2JyA9PiAnPGRpdiBpZD0ic3luX2xqcmV2aWV3Ij48L2Rpdj4nXSwKICAgICAgICAnU0xKUkVWSUVXJyA9PiBbJ3RpdGxlJyA9PiAnU2Nob29sIExpYnJhcnkgSm91cm5hbCBSZXZpZXcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpbGUnID0+ICdTTEpSRVZJRVcuWE1MJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkaXYnID0+ICc8ZGl2IGlkPSJzeW5fc2xqcmV2aWV3Ij48L2Rpdj4nXSwKICAgICAgICAnSEJSRVZJRVcnID0+IFsndGl0bGUnID0+ICdIb3JuIEJvb2sgUmV2aWV3JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWxlJyA9PiAnSEJSRVZJRVcuWE1MJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkaXYnID0+ICc8ZGl2IGlkPSJzeW5faGJyZXZpZXciPjwvZGl2PiddLAogICAgICAgICdLSVJLUkVWSUVXJyA9PiBbJ3RpdGxlJyA9PiAnS2lya3VzIEJvb2sgUmV2aWV3JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWxlJyA9PiAnS0lSS1JFVklFVy5YTUwnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RpdicgPT4gJzxkaXYgaWQ9InN5bl9raXJldmlldyI+PC9kaXY+J10sCiAgICAgICAgJ0NSSVRJQ0FTUkVWSUVXJyA9PiBbJ3RpdGxlJyA9PiAnQ3JpdGljYXMgUmV2aWV3JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWxlJyA9PiAnQ1JJVElDQVNSRVZJRVcuWE1MJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkaXYnID0+ICc8ZGl2IGlkPSJzeW5fY3JpdGljYXNyZXZpZXciPjwvZGl2PiddLAogICAgICAgIC8vIFRoZXNlIGxhc3QgdHdvIGVudHJpZXMgYXJlIHByb2JhYmx5IHR5cG9zIC0tIHJldGFpbmVkIGZvciBsZWdhY3kKICAgICAgICAvLyBjb21wYXRpYmlsaXR5IGp1c3QgaW4gY2FzZSB0aGV5J3JlIGFjdHVhbGx5IHVzZWQgZm9yIHNvbWV0aGluZyEKICAgICAgICAnS0lSRVZJRVcnID0+IFsndGl0bGUnID0+ICdLaXJrdXMgQm9vayBSZXZpZXcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpbGUnID0+ICdLSVJFVklFVy5YTUwnXSwKICAgICAgICAnQ1JJVElDQVNFUkVWSUVXJyA9PiBbJ3RpdGxlJyA9PiAnQ3JpdGkgQ2FzZSBSZXZpZXcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpbGUnID0+ICdDUklUSUNBU0VSRVZJRVcuWE1MJ10sCiAgICBdOwoKICAgIC8qKgogICAgICogVGhpcyBtZXRob2QgaXMgcmVzcG9uc2libGUgZm9yIGNvbm5lY3RpbmcgdG8gU3luZGV0aWNzIGFuZCBhYnN0cmFjdGluZwogICAgICogcmV2aWV3cyBmcm9tIG11bHRpcGxlIHByb3ZpZGVycy4KICAgICAqCiAgICAgKiBJdCBmaXJzdCBxdWVyaWVzIHRoZSBtYXN0ZXIgdXJsIGZvciB0aGUgSVNCTiBlbnRyeSBzZWVraW5nIGEgcmV2aWV3IFVSTC4KICAgICAqIElmIGEgcmV2aWV3IFVSTCBpcyBmb3VuZCwgdGhlIHNjcmlwdCB3aWxsIHRoZW4gdXNlIEhUVFAgcmVxdWVzdCB0bwogICAgICogcmV0cmlldmUgdGhlIHNjcmlwdC4gVGhlIHNjcmlwdCB3aWxsIHRoZW4gcGFyc2UgdGhlIHJldmlldyBhY2NvcmRpbmcgdG8KICAgICAqIFVTIE1BUkMgKEkgYmVsaWV2ZSkuIEl0IHdpbGwgcHJvdmlkZSBhIGxpbmsgdG8gdGhlIFVSTCBtYXN0ZXIgSFRNTCBwYWdlCiAgICAgKiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KICAgICAqIENvbmZpZ3VyYXRpb246ICBTb3VyY2VzIGFyZSBwcm9jZXNzZWQgaW4gb3JkZXIgLSByZWZlciB0byAkc291cmNlTGlzdCBhYm92ZS4KICAgICAqIElmIHlvdXIgbGlicmFyeSBwcmVmZXJzIG9uZSByZXZpZXdlciBvdmVyIGFub3RoZXIgY2hhbmdlIHRoZSBvcmRlci4KICAgICAqIElmIHlvdXIgbGlicmFyeSBkb2VzIG5vdCBsaWtlIGEgcmV2aWV3ZXIsIHJlbW92ZSBpdC4gSWYgdGhlcmUgYXJlIG1vcmUKICAgICAqIHN5bmRldGljcyByZXZpZXdlcnMgYWRkIGFub3RoZXIgZW50cnkuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAgICAgICAgICAgJGtleSAgICAgQVBJIGtleSAodW51c2VkIGhlcmUpCiAgICAgKiBAcGFyYW0gXFZ1RmluZENvZGVcSVNCTiAkaXNibk9iaiBJU0JOIG9iamVjdAogICAgICoKICAgICAqIEB0aHJvd3MgXEV4Y2VwdGlvbgogICAgICogQHJldHVybiBhcnJheSAgICAgUmV0dXJucyBhcnJheSB3aXRoIHJldmlldyBkYXRhLgogICAgICogQGF1dGhvciBKb2VsIFRpbW90aHkgTm9ybWFuIDxqb2VsLnQubm9ybWFuQHdtaWNoLmVkdT4KICAgICAqIEBhdXRob3IgQW5kcmV3IE5hZ3kgPHZ1ZmluZC10ZWNoQGxpc3RzLnNvdXJjZWZvcmdlLm5ldD4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGxvYWRCeUlzYm4oJGtleSwgXFZ1RmluZENvZGVcSVNCTiAkaXNibk9iaikKICAgIHsKICAgICAgICAvLyBJbml0aWFsaXplIHJldHVybiB2YWx1ZQogICAgICAgICRyZXZpZXcgPSBbXTsKCiAgICAgICAgLy8gRmluZCBvdXQgaWYgdGhlcmUgYXJlIGFueSByZXZpZXdzCiAgICAgICAgJGlzYm4gPSAkdGhpcy0+Z2V0SXNibjEwKCRpc2JuT2JqKTsKICAgICAgICAkdXJsID0gJHRoaXMtPmdldElzYm5VcmwoJGlzYm4sICRrZXkpOwogICAgICAgICRyZXN1bHQgPSAkdGhpcy0+Z2V0SHR0cENsaWVudCgkdXJsKS0+c2VuZCgpOwogICAgICAgIGlmICghJHJlc3VsdC0+aXNTdWNjZXNzKCkpIHsKICAgICAgICAgICAgcmV0dXJuICRyZXZpZXc7CiAgICAgICAgfQoKICAgICAgICAvLyBUZXN0IFhNTCBSZXNwb25zZQogICAgICAgIGlmICghKCR4bWxkb2MgPSAkdGhpcy0+eG1sVG9ET01Eb2N1bWVudCgkcmVzdWx0LT5nZXRCb2R5KCkpKSkgewogICAgICAgICAgICB0aHJvdyBuZXcgXEV4Y2VwdGlvbignSW52YWxpZCBYTUwnKTsKICAgICAgICB9CgogICAgICAgICRpID0gMDsKICAgICAgICBmb3JlYWNoICgkdGhpcy0+c291cmNlTGlzdCBhcyAkc291cmNlID0+ICRzb3VyY2VJbmZvKSB7CiAgICAgICAgICAgICRub2RlcyA9ICR4bWxkb2MtPmdldEVsZW1lbnRzQnlUYWdOYW1lKCRzb3VyY2UpOwogICAgICAgICAgICBpZiAoJG5vZGVzLT5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIC8vIExvYWQgcmV2aWV3cwogICAgICAgICAgICAgICAgJHVybCA9ICR0aGlzLT5nZXRJc2JuVXJsKCRpc2JuLCAka2V5LCAkc291cmNlSW5mb1snZmlsZSddKTsKICAgICAgICAgICAgICAgICRyZXN1bHQyID0gJHRoaXMtPmdldEh0dHBDbGllbnQoJHVybCktPnNlbmQoKTsKICAgICAgICAgICAgICAgIGlmICghJHJlc3VsdDItPmlzU3VjY2VzcygpKSB7CiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gVGVzdCBYTUwgUmVzcG9uc2UKICAgICAgICAgICAgICAgICR4bWxkb2MyID0gJHRoaXMtPnhtbFRvRE9NRG9jdW1lbnQoJHJlc3VsdDItPmdldEJvZHkoKSk7CiAgICAgICAgICAgICAgICBpZiAoISR4bWxkb2MyKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFxFeGNlcHRpb24oJ0ludmFsaWQgWE1MJyk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gSWYgd2UgaGF2ZSBzeW5kZXRpY3MgcGx1cywgd2UgZG9uJ3QgYWN0dWFsbHkgd2FudCB0aGUgY29udGVudAogICAgICAgICAgICAgICAgLy8gd2UnbGwganVzdCBzdGljayBpbiB0aGUgcmVsZXZhbnQgZGl2CiAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPnVzZVBsdXMpIHsKICAgICAgICAgICAgICAgICAgICAkcmV2aWV3WyRpXVsnQ29udGVudCddID0gJHNvdXJjZUluZm9bJ2RpdiddOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvLyBHZXQgdGhlIG1hcmMgZmllbGQgZm9yIHJldmlld3MgKDUyMCkKICAgICAgICAgICAgICAgICAgICAkbm9kZXMgPSAkeG1sZG9jMi0+R2V0RWxlbWVudHNieVRhZ05hbWUoJ0ZsZDUyMCcpOwogICAgICAgICAgICAgICAgICAgIGlmICghJG5vZGVzLT5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2tpcCByZXZpZXdzIHdpdGggbWlzc2luZyB0ZXh0CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAvLyBEZWNvZGUgdGhlIGNvbnRlbnQgYW5kIHN0cmlwIHVud2FudGVkIDxhPiB0YWdzOgogICAgICAgICAgICAgICAgICAgICRyZXZpZXdbJGldWydDb250ZW50J10gPSBwcmVnX3JlcGxhY2UoCiAgICAgICAgICAgICAgICAgICAgICAgICcvPGE+fDxhIFtePl0qPnw8XC9hPi8nLAogICAgICAgICAgICAgICAgICAgICAgICAnJywKICAgICAgICAgICAgICAgICAgICAgICAgaHRtbF9lbnRpdHlfZGVjb2RlKCR4bWxkb2MyLT5zYXZlWE1MKCRub2Rlcy0+aXRlbSgwKSkpCiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgLy8gR2V0IHRoZSBtYXJjIGZpZWxkIGZvciBjb3B5cmlnaHQgKDk5NykKICAgICAgICAgICAgICAgICAgICAkbm9kZXMgPSAkeG1sZG9jMi0+R2V0RWxlbWVudHNieVRhZ05hbWUoJ0ZsZDk5NycpOwogICAgICAgICAgICAgICAgICAgIGlmICgkbm9kZXMtPmxlbmd0aCkgewogICAgICAgICAgICAgICAgICAgICAgICAkcmV2aWV3WyRpXVsnQ29weXJpZ2h0J10KICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gaHRtbF9lbnRpdHlfZGVjb2RlKCR4bWxkb2MyLT5zYXZlWE1MKCRub2Rlcy0+aXRlbSgwKSkpOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRyZXZpZXdbJGldWydDb3B5cmlnaHQnXSA9IG51bGw7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBpZiAoJHJldmlld1skaV1bJ0NvcHlyaWdodCddKSB7ICAvL3N0b3AgZHVwbGljYXRlIGNvcHlyaWdodHMKICAgICAgICAgICAgICAgICAgICAgICAgJGxvY2F0aW9uID0gc3Rycmlwb3MoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmV2aWV3WzBdWydDb250ZW50J10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nKSRyZXZpZXdbMF1bJ0NvcHlyaWdodCddCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbG9jYXRpb24gPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmV2aWV3WyRpXVsnQ29udGVudCddCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBzdWJzdHIoJHJldmlld1swXVsnQ29udGVudCddLCAwLCAkbG9jYXRpb24pOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vY2hhbmdlIHRoZSB4bWwgdG8gYWN0dWFsIHRpdGxlOgogICAgICAgICAgICAgICAgJHJldmlld1skaV1bJ1NvdXJjZSddID0gJHNvdXJjZUluZm9bJ3RpdGxlJ107CgogICAgICAgICAgICAgICAgJHJldmlld1skaV1bJ0lTQk4nXSA9ICRpc2JuOwoKICAgICAgICAgICAgICAgICRpKys7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiAkcmV2aWV3OwogICAgfQp9CiI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjE6e3M6MjM6IlxWdUZpbmRcQ29udGVudFxSZXZpZXdzIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjM6IlxWdUZpbmRcQ29udGVudFxSZXZpZXdzIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NzoiUmV2aWV3cyI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGluY2x1ZGVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGZ1bmN0aW9ucyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjb25zdGFudHMiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY2xhc3NlcyI7YToxOntzOjMzOiJcVnVGaW5kXENvbnRlbnRcUmV2aWV3c1xTeW5kZXRpY3MiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfIjoxMzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzM6IlxWdUZpbmRcQ29udGVudFxSZXZpZXdzXFN5bmRldGljcyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjk6IlN5bmRldGljcyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MzI6IlN5bmRldGljcyByZXZpZXcgY29udGVudCBsb2FkZXIuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjU6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6ODoiY2F0ZWdvcnkiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjY6IlZ1RmluZCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoicGFja2FnZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NzoiQ29udGVudCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czoxMToiRGVtaWFuIEthdHoiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MjU6ImRlbWlhbi5rYXR6QHZpbGxhbm92YS5lZHUiO31pOjM7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImxpY2Vuc2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjY5OiJodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvZ3BsLTIuMC5waHAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjQ7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTGluayI6Mzp7czo3OiIAKgBuYW1lIjtzOjQ6ImxpbmsiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjQ6Ildpa2kiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xMaW5rAGxpbmsiO3M6MzU6Imh0dHBzOi8vdnVmaW5kLm9yZy93aWtpL2RldmVsb3BtZW50Ijt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MjI6IlZ1RmluZFxDb250ZW50XFJldmlld3MiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjA6e319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcGFyZW50IjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzM6IlxWdUZpbmRcQ29udGVudFxBYnN0cmFjdFN5bmRldGljcyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE3OiJBYnN0cmFjdFN5bmRldGljcyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBpbXBsZW1lbnRzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AY29uc3RhbnRzIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcHJvcGVydGllcyI7YToxOntzOjQ2OiJcVnVGaW5kXENvbnRlbnRcUmV2aWV3c1xTeW5kZXRpY3M6OiRzb3VyY2VMaXN0IjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5IjoxMTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NjoiXFZ1RmluZFxDb250ZW50XFJldmlld3NcU3luZGV0aWNzOjokc291cmNlTGlzdCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEwOiJzb3VyY2VMaXN0Ijt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjMxOiJMaXN0IG9mIHN5bmRldGljIHJldmlldyBzb3VyY2VzIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjA6IiI7fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6ODg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czoxNDQzOiJbCiAgICAnQ0hSRVZJRVcnID0+IFsndGl0bGUnID0+ICdDaG9pY2UgUmV2aWV3JywgJ2ZpbGUnID0+ICdDSFJFVklFVy5YTUwnLCAnZGl2JyA9PiAnPGRpdiBpZD0ic3luX2NocmV2aWV3Ij48L2Rpdj4nXSwKICAgICdOWVJFVklFVycgPT4gWyd0aXRsZScgPT4gJ05ldyBZb3JrIFRpbWVzIFJldmlldycsICdmaWxlJyA9PiAnTllSRVZJRVcuWE1MJywgJ2RpdicgPT4gJzxkaXYgaWQ9InN5bl9ueXJldmlldyI+PC9kaXY+J10sCiAgICAnQkxSRVZJRVcnID0+IFsndGl0bGUnID0+ICdCb29rbGlzdCBSZXZpZXcnLCAnZmlsZScgPT4gJ0JMUkVWSUVXLlhNTCcsICdkaXYnID0+ICc8ZGl2IGlkPSJzeW5fYmxyZXZpZXciPjwvZGl2PiddLAogICAgJ1BXUkVWSUVXJyA9PiBbJ3RpdGxlJyA9PiAiUHVibGlzaGVyJ3MgV2Vla2x5IFJldmlldyIsICdmaWxlJyA9PiAnUFdSRVZJRVcuWE1MJywgJ2RpdicgPT4gJzxkaXYgaWQ9InN5bl9wd3JldmlldyI+PC9kaXY+J10sCiAgICAnTEpSRVZJRVcnID0+IFsndGl0bGUnID0+ICdMaWJyYXJ5IEpvdXJuYWwgUmV2aWV3JywgJ2ZpbGUnID0+ICdMSlJFVklFVy5YTUwnLCAnZGl2JyA9PiAnPGRpdiBpZD0ic3luX2xqcmV2aWV3Ij48L2Rpdj4nXSwKICAgICdTTEpSRVZJRVcnID0+IFsndGl0bGUnID0+ICdTY2hvb2wgTGlicmFyeSBKb3VybmFsIFJldmlldycsICdmaWxlJyA9PiAnU0xKUkVWSUVXLlhNTCcsICdkaXYnID0+ICc8ZGl2IGlkPSJzeW5fc2xqcmV2aWV3Ij48L2Rpdj4nXSwKICAgICdIQlJFVklFVycgPT4gWyd0aXRsZScgPT4gJ0hvcm4gQm9vayBSZXZpZXcnLCAnZmlsZScgPT4gJ0hCUkVWSUVXLlhNTCcsICdkaXYnID0+ICc8ZGl2IGlkPSJzeW5faGJyZXZpZXciPjwvZGl2PiddLAogICAgJ0tJUktSRVZJRVcnID0+IFsndGl0bGUnID0+ICdLaXJrdXMgQm9vayBSZXZpZXcnLCAnZmlsZScgPT4gJ0tJUktSRVZJRVcuWE1MJywgJ2RpdicgPT4gJzxkaXYgaWQ9InN5bl9raXJldmlldyI+PC9kaXY+J10sCiAgICAnQ1JJVElDQVNSRVZJRVcnID0+IFsndGl0bGUnID0+ICdDcml0aWNhcyBSZXZpZXcnLCAnZmlsZScgPT4gJ0NSSVRJQ0FTUkVWSUVXLlhNTCcsICdkaXYnID0+ICc8ZGl2IGlkPSJzeW5fY3JpdGljYXNyZXZpZXciPjwvZGl2PiddLAogICAgLy8gVGhlc2UgbGFzdCB0d28gZW50cmllcyBhcmUgcHJvYmFibHkgdHlwb3MgLS0gcmV0YWluZWQgZm9yIGxlZ2FjeQogICAgLy8gY29tcGF0aWJpbGl0eSBqdXN0IGluIGNhc2UgdGhleSdyZSBhY3R1YWxseSB1c2VkIGZvciBzb21ldGhpbmchCiAgICAnS0lSRVZJRVcnID0+IFsndGl0bGUnID0+ICdLaXJrdXMgQm9vayBSZXZpZXcnLCAnZmlsZScgPT4gJ0tJUkVWSUVXLlhNTCddLAogICAgJ0NSSVRJQ0FTRVJFVklFVycgPT4gWyd0aXRsZScgPT4gJ0NyaXRpIENhc2UgUmV2aWV3JywgJ2ZpbGUnID0+ICdDUklUSUNBU0VSRVZJRVcuWE1MJ10sCl0iO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0ODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6ODI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQByZWFkT25seSI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AG1ldGFkYXRhIjthOjA6e319fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRob2RzIjthOjE6e3M6NDc6IlxWdUZpbmRcQ29udGVudFxSZXZpZXdzXFN5bmRldGljczo6bG9hZEJ5SXNibigpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTAzOiJUaGlzIG1ldGhvZCBpcyByZXNwb25zaWJsZSBmb3IgY29ubmVjdGluZyB0byBTeW5kZXRpY3MgYW5kIGFic3RyYWN0aW5nCnJldmlld3MgZnJvbSBtdWx0aXBsZSBwcm92aWRlcnMuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjU2MDoiSXQgZmlyc3QgcXVlcmllcyB0aGUgbWFzdGVyIHVybCBmb3IgdGhlIElTQk4gZW50cnkgc2Vla2luZyBhIHJldmlldyBVUkwuCklmIGEgcmV2aWV3IFVSTCBpcyBmb3VuZCwgdGhlIHNjcmlwdCB3aWxsIHRoZW4gdXNlIEhUVFAgcmVxdWVzdCB0bwpyZXRyaWV2ZSB0aGUgc2NyaXB0LiBUaGUgc2NyaXB0IHdpbGwgdGhlbiBwYXJzZSB0aGUgcmV2aWV3IGFjY29yZGluZyB0bwpVUyBNQVJDIChJIGJlbGlldmUpLiBJdCB3aWxsIHByb3ZpZGUgYSBsaW5rIHRvIHRoZSBVUkwgbWFzdGVyIEhUTUwgcGFnZQpmb3IgbW9yZSBpbmZvcm1hdGlvbi4KQ29uZmlndXJhdGlvbjogIFNvdXJjZXMgYXJlIHByb2Nlc3NlZCBpbiBvcmRlciAtIHJlZmVyIHRvICRzb3VyY2VMaXN0IGFib3ZlLgpJZiB5b3VyIGxpYnJhcnkgcHJlZmVycyBvbmUgcmV2aWV3ZXIgb3ZlciBhbm90aGVyIGNoYW5nZSB0aGUgb3JkZXIuCklmIHlvdXIgbGlicmFyeSBkb2VzIG5vdCBsaWtlIGEgcmV2aWV3ZXIsIHJlbW92ZSBpdC4gSWYgdGhlcmUgYXJlIG1vcmUKc3luZGV0aWNzIHJldmlld2VycyBhZGQgYW5vdGhlciBlbnRyeS4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTo2OntpOjA7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjE6IkFQSSBrZXkgKHVudXNlZCBoZXJlKSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6Mzoia2V5IjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO31pOjE7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTE6IklTQk4gb2JqZWN0IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxNjoiXFZ1RmluZENvZGVcSVNCTiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjQ6IklTQk4iO319czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo3OiJpc2JuT2JqIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO31pOjI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVGhyb3dzIjozOntzOjc6IgAqAG5hbWUiO3M6NjoidGhyb3dzIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjEwOiJcRXhjZXB0aW9uIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6OToiRXhjZXB0aW9uIjt9fX1pOjM7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MzE6IlJldHVybnMgYXJyYXkgd2l0aCByZXZpZXcgZGF0YS4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319fWk6NDtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czoxOToiSm9lbCBUaW1vdGh5IE5vcm1hbiI7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JFbWFpbCI7czoyMzoiam9lbC50Lm5vcm1hbkB3bWljaC5lZHUiO31pOjU7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yIjo0OntzOjc6IgAqAG5hbWUiO3M6NjoiYXV0aG9yIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7TjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvck5hbWUiO3M6MTE6IkFuZHJldyBOYWd5IjtzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvckVtYWlsIjtzOjMzOiJ2dWZpbmQtdGVjaEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQiO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjg4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDc6IlxWdUZpbmRcQ29udGVudFxSZXZpZXdzXFN5bmRldGljczo6bG9hZEJ5SXNibigpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6ImxvYWRCeUlzYm4iO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mjp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6Mzoia2V5IjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NzoiaXNibk9iaiI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjE2OiJcVnVGaW5kQ29kZVxJU0JOIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NDoiSVNCTiI7fX1zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMDY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxOTA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX19czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHVzZWRUcmFpdHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxOTE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGFkYXRhIjthOjA6e319fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fXM6NDA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZW51bXMiO2E6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbWV0YWRhdGEiO2E6MDp7fX0=";