julia-intellij
julia-intellij copied to clipboard
[auto-generated:1776339738] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Linux
- Java Version: 11.0.13
- App Name: PyCharm
- App Full Name: PyCharm
- App Version name: PyCharm
- Is EAP: false
- App Build: PY-213.6461.77
- App Version: 2021.3.1
- Last Action: Unknown
- title: [auto-generated:1776339738] null
Full StackTrace
com.intellij.diagnostic.PluginException: The default implementation of method 'getId' is deprecated, you need to override it in 'class org.ice1000.julia.lang.execution.JuliaRunConfigurationFactory'. The default implementation delegates to 'getName' which may be localized, but return value of this method must not depend on current localization. [Plugin: org.ice1000.julia]
at com.intellij.ide.plugins.PluginManagerCore.createPluginException(PluginManagerCore.java:270)
at com.intellij.diagnostic.PluginProblemReporterImpl.createPluginExceptionByClass(PluginProblemReporterImpl.java:12)
at com.intellij.diagnostic.PluginException.createByClass(PluginException.java:83)
at com.intellij.diagnostic.PluginException.reportDeprecatedDefault(PluginException.java:110)
at com.intellij.execution.configurations.ConfigurationFactory.getId(ConfigurationFactory.java:75)
at com.intellij.execution.impl.RunnerAndConfigurationSettingsImpl.writeExternal(RunnerAndConfigurationSettingsImpl.kt:267)
at com.intellij.execution.impl.RunnerAndConfigurationSettingsImpl.writeScheme(RunnerAndConfigurationSettingsImpl.kt:323)
at com.intellij.execution.impl.TemplateDifferenceHelper.isTemplateModified(RunConfigurationSchemeManager.kt:142)
at com.intellij.execution.impl.RunConfigurationSchemeManager.writeScheme(RunConfigurationSchemeManager.kt:129)
at com.intellij.execution.impl.RunConfigurationSchemeManager.writeScheme(RunConfigurationSchemeManager.kt:21)
at com.intellij.configurationStore.schemeManager.SchemeManagerImpl.saveScheme(SchemeManagerImpl.kt:395)
at com.intellij.configurationStore.schemeManager.SchemeManagerImpl.save(SchemeManagerImpl.kt:335)
at com.intellij.configurationStore.Scheme_implKt.save(scheme-impl.kt:164)
at com.intellij.execution.impl.RunManagerImpl.getState(RunManagerImpl.kt:625)
at com.intellij.execution.impl.RunManagerImpl.getState(RunManagerImpl.kt:69)
at com.intellij.configurationStore.ComponentStoreImpl.commitComponent(ComponentStoreImpl.kt:324)
at com.intellij.configurationStore.ComponentStoreImpl.commitComponents$intellij_platform_configurationStore_impl(ComponentStoreImpl.kt:230)
at com.intellij.configurationStore.ComponentStoreWithExtraComponents.commitComponents$intellij_platform_configurationStore_impl(ComponentStoreWithExtraComponents.kt:95)
at com.intellij.configurationStore.ComponentStoreImpl$commitComponentsOnEdt$$inlined$withEdtContext$intellij_platform_configurationStore_impl$1.invokeSuspend(ComponentStoreImpl.kt:719)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at com.intellij.openapi.application.constraints.BaseConstrainedExecution$Companion$scheduleWithinConstraints$1.invoke(BaseConstrainedExecution.kt:68)
at com.intellij.openapi.application.constraints.BaseConstrainedExecution$Companion.scheduleWithinConstraints(BaseConstrainedExecution.kt:71)
at com.intellij.openapi.application.constraints.BaseConstrainedExecution.scheduleWithinConstraints(BaseConstrainedExecution.kt:38)
at com.intellij.openapi.application.impl.BaseExpirableExecutorMixinImpl.access$scheduleWithinConstraints$s1153900543(BaseExpirableExecutorMixinImpl.kt:12)
at com.intellij.openapi.application.impl.BaseExpirableExecutorMixinImpl$scheduleWithinConstraints$$inlined$Runnable$1.run(Runnable.kt:19)
at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:214)
at com.intellij.openapi.application.TransactionGuardImpl.access$200(TransactionGuardImpl.java:21)
at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:196)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:805)
at com.intellij.openapi.application.impl.ApplicationImpl.lambda$invokeLater$4(ApplicationImpl.java:348)
at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:82)
at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:131)
at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:47)
at com.intellij.openapi.application.impl.FlushQueue$FlushNow.run(FlushQueue.java:187)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:891)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:760)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:447)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:818)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:446)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:805)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:492)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
- Julia Version: 1.7.1
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Windows 7
- Java Version: 11.0.13
- App Name: PyCharm
- App Full Name: PyCharm
- App Version name: PyCharm
- Is EAP: false
- App Build: PC-213.6461.77
- App Version: 2021.3.1
- Last Action: Unknown
- title: [auto-generated:1776339738] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Linux
- Java Version: 11.0.13
- App Name: CLion
- App Full Name: CLion
- App Version name: CLion
- Is EAP: false
- App Build: CL-213.6461.75
- App Version: 2021.3.2
- Last Action: Unknown
- title: [auto-generated:1776339738] null
- Julia Version: 1.7.1
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Mac OS X
- Java Version: 11.0.13
- App Name: PyCharm
- App Full Name: PyCharm
- App Version name: PyCharm
- Is EAP: false
- App Build: PY-213.6461.77
- App Version: 2021.3.1
- Last Action: Unknown
- title: [auto-generated:1776339738] null
- Julia Version: 1.7.1
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Linux
- Java Version: 11.0.13
- App Name: PyCharm
- App Full Name: PyCharm
- App Version name: PyCharm
- Is EAP: false
- App Build: PC-213.6461.77
- App Version: 2021.3.1
- Last Action: Unknown
- Attachment induced.txt: Rm9sbG93aW5nIGV4Y2VwdGlvbnMgaGFwcGVuZWQgc29vbiBhZnRlciB0aGlzIG9uZSwgbW9zdCBwcm9iYWJseSB0aGV5IGFyZSBpbmR1Y2VkLgoKCjIwMjItMDEtMTRUMTc6NDA6NDQuODMyCmNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpbkV4Y2VwdGlvbjogVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgbWV0aG9kICdnZXRJZCcgaXMgZGVwcmVjYXRlZCwgeW91IG5lZWQgdG8gb3ZlcnJpZGUgaXQgaW4gJ2NsYXNzIG9yZy5pY2UxMDAwLmp1bGlhLmxhbmcuZXhlY3V0aW9uLkp1bGlhUnVuQ29uZmlndXJhdGlvbkZhY3RvcnknLiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBkZWxlZ2F0ZXMgdG8gJ2dldE5hbWUnIHdoaWNoIG1heSBiZSBsb2NhbGl6ZWQsIGJ1dCByZXR1cm4gdmFsdWUgb2YgdGhpcyBtZXRob2QgbXVzdCBub3QgZGVwZW5kIG9uIGN1cnJlbnQgbG9jYWxpemF0aW9uLiBbUGx1Z2luOiBvcmcuaWNlMTAwMC5qdWxpYV0KCWF0IGNvbS5pbnRlbGxpai5pZGUucGx1Z2lucy5QbHVnaW5NYW5hZ2VyQ29yZS5jcmVhdGVQbHVnaW5FeGNlcHRpb24oUGx1Z2luTWFuYWdlckNvcmUuamF2YToyNzApCglhdCBjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5Qcm9ibGVtUmVwb3J0ZXJJbXBsLmNyZWF0ZVBsdWdpbkV4Y2VwdGlvbkJ5Q2xhc3MoUGx1Z2luUHJvYmxlbVJlcG9ydGVySW1wbC5qYXZhOjEyKQoJYXQgY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luRXhjZXB0aW9uLmNyZWF0ZUJ5Q2xhc3MoUGx1Z2luRXhjZXB0aW9uLmphdmE6ODMpCglhdCBjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5FeGNlcHRpb24ucmVwb3J0RGVwcmVjYXRlZERlZmF1bHQoUGx1Z2luRXhjZXB0aW9uLmphdmE6MTEwKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5jb25maWd1cmF0aW9ucy5Db25maWd1cmF0aW9uRmFjdG9yeS5nZXRJZChDb25maWd1cmF0aW9uRmFjdG9yeS5qYXZhOjc1KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bm5lckFuZENvbmZpZ3VyYXRpb25TZXR0aW5nc0ltcGwuZ2V0TmFtZShSdW5uZXJBbmRDb25maWd1cmF0aW9uU2V0dGluZ3NJbXBsLmt0OjE1NCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5Db25maWd1cmF0aW9uU2NoZW1lTWFuYWdlci5nZXRTY2hlbWVLZXkoUnVuQ29uZmlndXJhdGlvblNjaGVtZU1hbmFnZXIua3Q6MzcpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuQ29uZmlndXJhdGlvblNjaGVtZU1hbmFnZXIuZ2V0U2NoZW1lS2V5KFJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmt0OjIxKQoJYXQgY29tLmludGVsbGlqLmNvbmZpZ3VyYXRpb25TdG9yZS5zY2hlbWVNYW5hZ2VyLlNjaGVtZU1hbmFnZXJCYXNlLnByb2Nlc3NQZW5kaW5nQ3VycmVudFNjaGVtZU5hbWUkaW50ZWxsaWpfcGxhdGZvcm1fY29uZmlndXJhdGlvblN0b3JlX2ltcGwoU2NoZW1lTWFuYWdlckJhc2Uua3Q6MjMpCglhdCBjb20uaW50ZWxsaWouY29uZmlndXJhdGlvblN0b3JlLnNjaGVtZU1hbmFnZXIuU2NoZW1lTGlzdE1hbmFnZXIuYWRkU2NoZW1lKFNjaGVtZUxpc3RNYW5hZ2VyLmt0Ojc4KQoJYXQgY29tLmludGVsbGlqLmNvbmZpZ3VyYXRpb25TdG9yZS5zY2hlbWVNYW5hZ2VyLlNjaGVtZU1hbmFnZXJJbXBsLmFkZFNjaGVtZShTY2hlbWVNYW5hZ2VySW1wbC5rdDo2MTUpCglhdCBjb20uaW50ZWxsaWouY29uZmlndXJhdGlvblN0b3JlLnNjaGVtZU1hbmFnZXIuU2NoZW1lTWFuYWdlckltcGwuYWRkU2NoZW1lKFNjaGVtZU1hbmFnZXJJbXBsLmt0OjQyKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkub3B0aW9ucy5TY2hlbWVNYW5hZ2VyLmFkZFNjaGVtZShTY2hlbWVNYW5hZ2VyLmt0OjM4KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bk1hbmFnZXJJbXBsLmdldENvbmZpZ3VyYXRpb25UZW1wbGF0ZShSdW5NYW5hZ2VySW1wbC5rdDozMzcpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuTWFuYWdlckltcGwuY3JlYXRlQ29uZmlndXJhdGlvbihSdW5NYW5hZ2VySW1wbC5rdDoyNjEpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmNsb25lVGVtcGxhdGVDb25maWd1cmF0aW9uU3RhdGljKFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjI1OSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuY2xvbmVUZW1wbGF0ZUNvbmZpZ3VyYXRpb24oUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmphdmE6MjQ5KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5jcmVhdGVDb25maWd1cmF0aW9uRnJvbUNvbnRleHQoUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmphdmE6OTgpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmZpbmRPckNyZWF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ29udGV4dChSdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuamF2YToxOTkpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUHJlZmVycmVkUHJvZHVjZXJGaW5kLmRvR2V0Q29uZmlndXJhdGlvbnNGcm9tQ29udGV4dChQcmVmZXJyZWRQcm9kdWNlckZpbmQuamF2YToxMTApCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUHJlZmVycmVkUHJvZHVjZXJGaW5kLmdldENvbmZpZ3VyYXRpb25zRnJvbUNvbnRleHQoUHJlZmVycmVkUHJvZHVjZXJGaW5kLmphdmE6OTMpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQ29uZmlndXJhdGlvbkNvbnRleHQuZ2V0Q29uZmlndXJhdGlvbnNGcm9tQ29udGV4dChDb25maWd1cmF0aW9uQ29udGV4dC5qYXZhOjQxNCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5Db25maWd1cmF0aW9uQ29udGV4dC5maW5kUHJlZmVycmVkQ29uZmlndXJhdGlvbihDb25maWd1cmF0aW9uQ29udGV4dC5qYXZhOjI5MikKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5Db25maWd1cmF0aW9uQ29udGV4dC5maW5kRXhpc3RpbmcoQ29uZmlndXJhdGlvbkNvbnRleHQuamF2YToyODUpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uZmluZEV4aXN0aW5nKEJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmphdmE6NjIpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uZnVsbFVwZGF0ZShCYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5qYXZhOjIzMikKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5CYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi51cGRhdGUoQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uamF2YToxOTgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uZXguQWN0aW9uVXRpbC5sYW1iZGEkcGVyZm9ybUR1bWJBd2FyZVVwZGF0ZSQwKEFjdGlvblV0aWwuamF2YToxMzEpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uZXguQWN0aW9uVXRpbC5wZXJmb3JtRHVtYkF3YXJlVXBkYXRlKEFjdGlvblV0aWwuamF2YToxNDUpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvVXBkYXRlKEFjdGlvblVwZGF0ZXIuamF2YTo2MDIpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSR1cGRhdGVBY3Rpb25SZWFsJDcoQWN0aW9uVXBkYXRlci5qYXZhOjEyNikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuY2FsbEFjdGlvbihBY3Rpb25VcGRhdGVyLmphdmE6MTcwKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci51cGRhdGVBY3Rpb25SZWFsKEFjdGlvblVwZGF0ZXIuamF2YToxMjcpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRuZXckMChBY3Rpb25VcGRhdGVyLmphdmE6MTA5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci51cGRhdGUoQWN0aW9uVXBkYXRlci5qYXZhOjU4OCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDM0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMShBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQ1NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0ODkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQ4OSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjEoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0NTQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDg5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMShBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQ1NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0ODkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YToyMzMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDEzKEFjdGlvblVwZGF0ZXIuamF2YToyODYpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDE1KEFjdGlvblVwZGF0ZXIuamF2YTozMDkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hcHBsaWNhdGlvbi5pbXBsLkFwcGxpY2F0aW9uSW1wbC50cnlSdW5SZWFkQWN0aW9uKEFwcGxpY2F0aW9uSW1wbC5qYXZhOjEwODQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDE2KEFjdGlvblVwZGF0ZXIuamF2YTozMDkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy51dGlsLlByb2dyZXNzSW5kaWNhdG9yVXRpbHMucnVuQWN0aW9uQW5kQ2FuY2VsQmVmb3JlV3JpdGUoUHJvZ3Jlc3NJbmRpY2F0b3JVdGlscy5qYXZhOjE1OCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTcoQWN0aW9uVXBkYXRlci5qYXZhOjMwNSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5sYW1iZGEkcnVuUHJvY2VzcyQyKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YToxODgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIubGFtYmRhJGV4ZWN1dGVQcm9jZXNzVW5kZXJQcm9ncmVzcyQxMihDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6NjI0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLnJlZ2lzdGVySW5kaWNhdG9yQW5kUnVuKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YTo2OTgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIuY29tcHV0ZVVuZGVyUHJvZ3Jlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjY0NikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5leGVjdXRlUHJvY2Vzc1VuZGVyUHJvZ3Jlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjYyMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuUHJvZ3Jlc3NNYW5hZ2VySW1wbC5leGVjdXRlUHJvY2Vzc1VuZGVyUHJvZ3Jlc3MoUHJvZ3Jlc3NNYW5hZ2VySW1wbC5qYXZhOjY2KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLnJ1blByb2Nlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjE3NSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLnV0aWwuQmFja2dyb3VuZFRhc2tVdGlsLnJ1blVuZGVyRGlzcG9zZUF3YXJlSW5kaWNhdG9yKEJhY2tncm91bmRUYXNrVXRpbC5qYXZhOjI3NykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTgoQWN0aW9uVXBkYXRlci5qYXZhOjMwNCkKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IuZG9SdW4oQm91bmRlZFRhc2tFeGVjdXRvci5qYXZhOjI0NikKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IuYWNjZXNzJDIwMChCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MzIpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yJDEuZXhlY3V0ZShCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MjI1KQoJYXQgY29tLmludGVsbGlqLnV0aWwuQ29uY3VycmVuY3lVdGlsLnJ1blVuZGVyVGhyZWFkTmFtZShDb25jdXJyZW5jeVV0aWwuamF2YToyMTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yJDEucnVuKEJvdW5kZWRUYXNrRXhlY3V0b3IuamF2YToyMTQpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTI4KQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYyOCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMSQxLnJ1bihFeGVjdXRvcnMuamF2YTo2NjgpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFByaXZpbGVnZWRUaHJlYWRGYWN0b3J5JDEkMS5ydW4oRXhlY3V0b3JzLmphdmE6NjY1KQoJYXQgamF2YS5iYXNlL2phdmEuc2VjdXJpdHkuQWNjZXNzQ29udHJvbGxlci5kb1ByaXZpbGVnZWQoTmF0aXZlIE1ldGhvZCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMS5ydW4oRXhlY3V0b3JzLmphdmE6NjY1KQoJYXQgamF2YS5iYXNlL2phdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjgyOSkKCgoyMDIyLTAxLTE0VDE3OjQwOjQ0LjgzNQpjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5FeGNlcHRpb246IFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIG1ldGhvZCAnZ2V0SWQnIGlzIGRlcHJlY2F0ZWQsIHlvdSBuZWVkIHRvIG92ZXJyaWRlIGl0IGluICdjbGFzcyBvcmcuaWNlMTAwMC5qdWxpYS5sYW5nLmV4ZWN1dGlvbi5KdWxpYVJ1bkNvbmZpZ3VyYXRpb25GYWN0b3J5Jy4gVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gZGVsZWdhdGVzIHRvICdnZXROYW1lJyB3aGljaCBtYXkgYmUgbG9jYWxpemVkLCBidXQgcmV0dXJuIHZhbHVlIG9mIHRoaXMgbWV0aG9kIG11c3Qgbm90IGRlcGVuZCBvbiBjdXJyZW50IGxvY2FsaXphdGlvbi4gW1BsdWdpbjogb3JnLmljZTEwMDAuanVsaWFdCglhdCBjb20uaW50ZWxsaWouaWRlLnBsdWdpbnMuUGx1Z2luTWFuYWdlckNvcmUuY3JlYXRlUGx1Z2luRXhjZXB0aW9uKFBsdWdpbk1hbmFnZXJDb3JlLmphdmE6MjcwKQoJYXQgY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luUHJvYmxlbVJlcG9ydGVySW1wbC5jcmVhdGVQbHVnaW5FeGNlcHRpb25CeUNsYXNzKFBsdWdpblByb2JsZW1SZXBvcnRlckltcGwuamF2YToxMikKCWF0IGNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpbkV4Y2VwdGlvbi5jcmVhdGVCeUNsYXNzKFBsdWdpbkV4Y2VwdGlvbi5qYXZhOjgzKQoJYXQgY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luRXhjZXB0aW9uLnJlcG9ydERlcHJlY2F0ZWREZWZhdWx0KFBsdWdpbkV4Y2VwdGlvbi5qYXZhOjExMCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uY29uZmlndXJhdGlvbnMuQ29uZmlndXJhdGlvbkZhY3RvcnkuZ2V0SWQoQ29uZmlndXJhdGlvbkZhY3RvcnkuamF2YTo3NSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5uZXJBbmRDb25maWd1cmF0aW9uU2V0dGluZ3NJbXBsLmdldE5hbWUoUnVubmVyQW5kQ29uZmlndXJhdGlvblNldHRpbmdzSW1wbC5rdDoxNTQpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuQ29uZmlndXJhdGlvblNjaGVtZU1hbmFnZXIuZ2V0U2NoZW1lS2V5KFJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmt0OjM3KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmdldFNjaGVtZUtleShSdW5Db25maWd1cmF0aW9uU2NoZW1lTWFuYWdlci5rdDoyMSkKCWF0IGNvbS5pbnRlbGxpai5jb25maWd1cmF0aW9uU3RvcmUuc2NoZW1lTWFuYWdlci5TY2hlbWVMaXN0TWFuYWdlci5hZGRTY2hlbWUoU2NoZW1lTGlzdE1hbmFnZXIua3Q6MzUpCglhdCBjb20uaW50ZWxsaWouY29uZmlndXJhdGlvblN0b3JlLnNjaGVtZU1hbmFnZXIuU2NoZW1lTWFuYWdlckltcGwuYWRkU2NoZW1lKFNjaGVtZU1hbmFnZXJJbXBsLmt0OjYxNSkKCWF0IGNvbS5pbnRlbGxpai5jb25maWd1cmF0aW9uU3RvcmUuc2NoZW1lTWFuYWdlci5TY2hlbWVNYW5hZ2VySW1wbC5hZGRTY2hlbWUoU2NoZW1lTWFuYWdlckltcGwua3Q6NDIpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5vcHRpb25zLlNjaGVtZU1hbmFnZXIuYWRkU2NoZW1lKFNjaGVtZU1hbmFnZXIua3Q6MzgpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuTWFuYWdlckltcGwuZ2V0Q29uZmlndXJhdGlvblRlbXBsYXRlKFJ1bk1hbmFnZXJJbXBsLmt0OjMzNykKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5NYW5hZ2VySW1wbC5jcmVhdGVDb25maWd1cmF0aW9uKFJ1bk1hbmFnZXJJbXBsLmt0OjI2MSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuY2xvbmVUZW1wbGF0ZUNvbmZpZ3VyYXRpb25TdGF0aWMoUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmphdmE6MjU5KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5jbG9uZVRlbXBsYXRlQ29uZmlndXJhdGlvbihSdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuamF2YToyNDkpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmNyZWF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ29udGV4dChSdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuamF2YTo5OCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuZmluZE9yQ3JlYXRlQ29uZmlndXJhdGlvbkZyb21Db250ZXh0KFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjE5OSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5QcmVmZXJyZWRQcm9kdWNlckZpbmQuZG9HZXRDb25maWd1cmF0aW9uc0Zyb21Db250ZXh0KFByZWZlcnJlZFByb2R1Y2VyRmluZC5qYXZhOjExMCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5QcmVmZXJyZWRQcm9kdWNlckZpbmQuZ2V0Q29uZmlndXJhdGlvbnNGcm9tQ29udGV4dChQcmVmZXJyZWRQcm9kdWNlckZpbmQuamF2YTo5MykKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5Db25maWd1cmF0aW9uQ29udGV4dC5nZXRDb25maWd1cmF0aW9uc0Zyb21Db250ZXh0KENvbmZpZ3VyYXRpb25Db250ZXh0LmphdmE6NDE0KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkNvbmZpZ3VyYXRpb25Db250ZXh0LmZpbmRQcmVmZXJyZWRDb25maWd1cmF0aW9uKENvbmZpZ3VyYXRpb25Db250ZXh0LmphdmE6MjkyKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkNvbmZpZ3VyYXRpb25Db250ZXh0LmZpbmRFeGlzdGluZyhDb25maWd1cmF0aW9uQ29udGV4dC5qYXZhOjI4NSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5CYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5maW5kRXhpc3RpbmcoQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uamF2YTo2MikKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5CYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5mdWxsVXBkYXRlKEJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmphdmE6MjMyKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLnVwZGF0ZShCYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5qYXZhOjE5OCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5leC5BY3Rpb25VdGlsLmxhbWJkYSRwZXJmb3JtRHVtYkF3YXJlVXBkYXRlJDAoQWN0aW9uVXRpbC5qYXZhOjEzMSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5leC5BY3Rpb25VdGlsLnBlcmZvcm1EdW1iQXdhcmVVcGRhdGUoQWN0aW9uVXRpbC5qYXZhOjE0NSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9VcGRhdGUoQWN0aW9uVXBkYXRlci5qYXZhOjYwMikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJHVwZGF0ZUFjdGlvblJlYWwkNyhBY3Rpb25VcGRhdGVyLmphdmE6MTI2KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5jYWxsQWN0aW9uKEFjdGlvblVwZGF0ZXIuamF2YToxNzApCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLnVwZGF0ZUFjdGlvblJlYWwoQWN0aW9uVXBkYXRlci5qYXZhOjEyNykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJG5ldyQwKEFjdGlvblVwZGF0ZXIuamF2YToxMDkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLnVwZGF0ZShBY3Rpb25VcGRhdGVyLmphdmE6NTg4KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0MzQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQ4OSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjEoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0NTQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDg5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMShBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQ1NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0ODkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQ4OSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjEoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0NTQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjIzMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTMoQWN0aW9uVXBkYXRlci5qYXZhOjI4NikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTUoQWN0aW9uVXBkYXRlci5qYXZhOjMwOSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFwcGxpY2F0aW9uLmltcGwuQXBwbGljYXRpb25JbXBsLnRyeVJ1blJlYWRBY3Rpb24oQXBwbGljYXRpb25JbXBsLmphdmE6MTA4NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTYoQWN0aW9uVXBkYXRlci5qYXZhOjMwOSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLnV0aWwuUHJvZ3Jlc3NJbmRpY2F0b3JVdGlscy5ydW5BY3Rpb25BbmRDYW5jZWxCZWZvcmVXcml0ZShQcm9ncmVzc0luZGljYXRvclV0aWxzLmphdmE6MTU4KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZXhwYW5kQWN0aW9uR3JvdXBBc3luYyQxNyhBY3Rpb25VcGRhdGVyLmphdmE6MzA1KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLmxhbWJkYSRydW5Qcm9jZXNzJDIoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjE4OCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5sYW1iZGEkZXhlY3V0ZVByb2Nlc3NVbmRlclByb2dyZXNzJDEyKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YTo2MjQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIucmVnaXN0ZXJJbmRpY2F0b3JBbmRSdW4oQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjY5OCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5jb21wdXRlVW5kZXJQcm9ncmVzcyhDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6NjQ2KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLmV4ZWN1dGVQcm9jZXNzVW5kZXJQcm9ncmVzcyhDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6NjIzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Qcm9ncmVzc01hbmFnZXJJbXBsLmV4ZWN1dGVQcm9jZXNzVW5kZXJQcm9ncmVzcyhQcm9ncmVzc01hbmFnZXJJbXBsLmphdmE6NjYpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIucnVuUHJvY2VzcyhDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6MTc1KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MudXRpbC5CYWNrZ3JvdW5kVGFza1V0aWwucnVuVW5kZXJEaXNwb3NlQXdhcmVJbmRpY2F0b3IoQmFja2dyb3VuZFRhc2tVdGlsLmphdmE6Mjc3KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZXhwYW5kQWN0aW9uR3JvdXBBc3luYyQxOChBY3Rpb25VcGRhdGVyLmphdmE6MzA0KQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29uY3VycmVuY3kuQm91bmRlZFRhc2tFeGVjdXRvci5kb1J1bihCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MjQ2KQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29uY3VycmVuY3kuQm91bmRlZFRhc2tFeGVjdXRvci5hY2Nlc3MkMjAwKEJvdW5kZWRUYXNrRXhlY3V0b3IuamF2YTozMikKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IkMS5leGVjdXRlKEJvdW5kZWRUYXNrRXhlY3V0b3IuamF2YToyMjUpCglhdCBjb20uaW50ZWxsaWoudXRpbC5Db25jdXJyZW5jeVV0aWwucnVuVW5kZXJUaHJlYWROYW1lKENvbmN1cnJlbmN5VXRpbC5qYXZhOjIxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IkMS5ydW4oQm91bmRlZFRhc2tFeGVjdXRvci5qYXZhOjIxNCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjExMjgpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjI4KQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LkV4ZWN1dG9ycyRQcml2aWxlZ2VkVGhyZWFkRmFjdG9yeSQxJDEucnVuKEV4ZWN1dG9ycy5qYXZhOjY2OCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMSQxLnJ1bihFeGVjdXRvcnMuamF2YTo2NjUpCglhdCBqYXZhLmJhc2UvamF2YS5zZWN1cml0eS5BY2Nlc3NDb250cm9sbGVyLmRvUHJpdmlsZWdlZChOYXRpdmUgTWV0aG9kKQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LkV4ZWN1dG9ycyRQcml2aWxlZ2VkVGhyZWFkRmFjdG9yeSQxLnJ1bihFeGVjdXRvcnMuamF2YTo2NjUpCglhdCBqYXZhLmJhc2UvamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6ODI5KQoKCjIwMjItMDEtMTRUMTc6NDA6NDQuODUyCmNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpbkV4Y2VwdGlvbjogVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgbWV0aG9kICdnZXRJZCcgaXMgZGVwcmVjYXRlZCwgeW91IG5lZWQgdG8gb3ZlcnJpZGUgaXQgaW4gJ2NsYXNzIG9yZy5pY2UxMDAwLmp1bGlhLmxhbmcuZXhlY3V0aW9uLkp1bGlhUnVuQ29uZmlndXJhdGlvbkZhY3RvcnknLiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBkZWxlZ2F0ZXMgdG8gJ2dldE5hbWUnIHdoaWNoIG1heSBiZSBsb2NhbGl6ZWQsIGJ1dCByZXR1cm4gdmFsdWUgb2YgdGhpcyBtZXRob2QgbXVzdCBub3QgZGVwZW5kIG9uIGN1cnJlbnQgbG9jYWxpemF0aW9uLiBbUGx1Z2luOiBvcmcuaWNlMTAwMC5qdWxpYV0KCWF0IGNvbS5pbnRlbGxpai5pZGUucGx1Z2lucy5QbHVnaW5NYW5hZ2VyQ29yZS5jcmVhdGVQbHVnaW5FeGNlcHRpb24oUGx1Z2luTWFuYWdlckNvcmUuamF2YToyNzApCglhdCBjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5Qcm9ibGVtUmVwb3J0ZXJJbXBsLmNyZWF0ZVBsdWdpbkV4Y2VwdGlvbkJ5Q2xhc3MoUGx1Z2luUHJvYmxlbVJlcG9ydGVySW1wbC5qYXZhOjEyKQoJYXQgY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luRXhjZXB0aW9uLmNyZWF0ZUJ5Q2xhc3MoUGx1Z2luRXhjZXB0aW9uLmphdmE6ODMpCglhdCBjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5FeGNlcHRpb24ucmVwb3J0RGVwcmVjYXRlZERlZmF1bHQoUGx1Z2luRXhjZXB0aW9uLmphdmE6MTEwKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5jb25maWd1cmF0aW9ucy5Db25maWd1cmF0aW9uRmFjdG9yeS5nZXRJZChDb25maWd1cmF0aW9uRmFjdG9yeS5qYXZhOjc1KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bm5lckFuZENvbmZpZ3VyYXRpb25TZXR0aW5nc0ltcGwuZ2V0TmFtZShSdW5uZXJBbmRDb25maWd1cmF0aW9uU2V0dGluZ3NJbXBsLmt0OjE1NCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5Db25maWd1cmF0aW9uU2NoZW1lTWFuYWdlci5nZXRTY2hlbWVLZXkoUnVuQ29uZmlndXJhdGlvblNjaGVtZU1hbmFnZXIua3Q6MzcpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuQ29uZmlndXJhdGlvblNjaGVtZU1hbmFnZXIuZ2V0U2NoZW1lS2V5KFJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmt0OjIxKQoJYXQgY29tLmludGVsbGlqLmNvbmZpZ3VyYXRpb25TdG9yZS5zY2hlbWVNYW5hZ2VyLlNjaGVtZUxpc3RNYW5hZ2VyLmFkZFNjaGVtZShTY2hlbWVMaXN0TWFuYWdlci5rdDozNSkKCWF0IGNvbS5pbnRlbGxpai5jb25maWd1cmF0aW9uU3RvcmUuc2NoZW1lTWFuYWdlci5TY2hlbWVNYW5hZ2VySW1wbC5hZGRTY2hlbWUoU2NoZW1lTWFuYWdlckltcGwua3Q6NjE1KQoJYXQgY29tLmludGVsbGlqLmNvbmZpZ3VyYXRpb25TdG9yZS5zY2hlbWVNYW5hZ2VyLlNjaGVtZU1hbmFnZXJJbXBsLmFkZFNjaGVtZShTY2hlbWVNYW5hZ2VySW1wbC5rdDo0MikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLm9wdGlvbnMuU2NoZW1lTWFuYWdlci5hZGRTY2hlbWUoU2NoZW1lTWFuYWdlci5rdDozOCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5NYW5hZ2VySW1wbC5nZXRDb25maWd1cmF0aW9uVGVtcGxhdGUoUnVuTWFuYWdlckltcGwua3Q6MzM3KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bk1hbmFnZXJJbXBsLmNyZWF0ZUNvbmZpZ3VyYXRpb24oUnVuTWFuYWdlckltcGwua3Q6MjYxKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5jbG9uZVRlbXBsYXRlQ29uZmlndXJhdGlvblN0YXRpYyhSdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuamF2YToyNTkpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmNsb25lVGVtcGxhdGVDb25maWd1cmF0aW9uKFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjI0OSkKCWF0IGNvbS5qZXRicmFpbnMucHl0aG9uLnRlc3RpbmcuQWJzdHJhY3RQeXRob25UZXN0Q29uZmlndXJhdGlvblByb2R1Y2VyLmNyZWF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ29udGV4dChBYnN0cmFjdFB5dGhvblRlc3RDb25maWd1cmF0aW9uUHJvZHVjZXIua3Q6MjcpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmZpbmRPckNyZWF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ29udGV4dChSdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuamF2YToxOTkpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUHJlZmVycmVkUHJvZHVjZXJGaW5kLmRvR2V0Q29uZmlndXJhdGlvbnNGcm9tQ29udGV4dChQcmVmZXJyZWRQcm9kdWNlckZpbmQuamF2YToxMTApCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUHJlZmVycmVkUHJvZHVjZXJGaW5kLmdldENvbmZpZ3VyYXRpb25zRnJvbUNvbnRleHQoUHJlZmVycmVkUHJvZHVjZXJGaW5kLmphdmE6OTMpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQ29uZmlndXJhdGlvbkNvbnRleHQuZ2V0Q29uZmlndXJhdGlvbnNGcm9tQ29udGV4dChDb25maWd1cmF0aW9uQ29udGV4dC5qYXZhOjQxNCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5Db25maWd1cmF0aW9uQ29udGV4dC5maW5kUHJlZmVycmVkQ29uZmlndXJhdGlvbihDb25maWd1cmF0aW9uQ29udGV4dC5qYXZhOjI5MikKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5Db25maWd1cmF0aW9uQ29udGV4dC5maW5kRXhpc3RpbmcoQ29uZmlndXJhdGlvbkNvbnRleHQuamF2YToyODUpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uZmluZEV4aXN0aW5nKEJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmphdmE6NjIpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uZnVsbFVwZGF0ZShCYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5qYXZhOjIzMikKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5CYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi51cGRhdGUoQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uamF2YToxOTgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uZXguQWN0aW9uVXRpbC5sYW1iZGEkcGVyZm9ybUR1bWJBd2FyZVVwZGF0ZSQwKEFjdGlvblV0aWwuamF2YToxMzEpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uZXguQWN0aW9uVXRpbC5wZXJmb3JtRHVtYkF3YXJlVXBkYXRlKEFjdGlvblV0aWwuamF2YToxNDUpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvVXBkYXRlKEFjdGlvblVwZGF0ZXIuamF2YTo2MDIpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSR1cGRhdGVBY3Rpb25SZWFsJDcoQWN0aW9uVXBkYXRlci5qYXZhOjEyNikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuY2FsbEFjdGlvbihBY3Rpb25VcGRhdGVyLmphdmE6MTcwKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci51cGRhdGVBY3Rpb25SZWFsKEFjdGlvblVwZGF0ZXIuamF2YToxMjcpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRuZXckMChBY3Rpb25VcGRhdGVyLmphdmE6MTA5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci51cGRhdGUoQWN0aW9uVXBkYXRlci5qYXZhOjU4OCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDM0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMShBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQ1NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0ODkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQ4OSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjEoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0NTQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDg5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMShBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQ1NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0ODkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YToyMzMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDEzKEFjdGlvblVwZGF0ZXIuamF2YToyODYpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDE1KEFjdGlvblVwZGF0ZXIuamF2YTozMDkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hcHBsaWNhdGlvbi5pbXBsLkFwcGxpY2F0aW9uSW1wbC50cnlSdW5SZWFkQWN0aW9uKEFwcGxpY2F0aW9uSW1wbC5qYXZhOjEwODQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDE2KEFjdGlvblVwZGF0ZXIuamF2YTozMDkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy51dGlsLlByb2dyZXNzSW5kaWNhdG9yVXRpbHMucnVuQWN0aW9uQW5kQ2FuY2VsQmVmb3JlV3JpdGUoUHJvZ3Jlc3NJbmRpY2F0b3JVdGlscy5qYXZhOjE1OCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTcoQWN0aW9uVXBkYXRlci5qYXZhOjMwNSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5sYW1iZGEkcnVuUHJvY2VzcyQyKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YToxODgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIubGFtYmRhJGV4ZWN1dGVQcm9jZXNzVW5kZXJQcm9ncmVzcyQxMihDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6NjI0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLnJlZ2lzdGVySW5kaWNhdG9yQW5kUnVuKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YTo2OTgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIuY29tcHV0ZVVuZGVyUHJvZ3Jlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjY0NikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5leGVjdXRlUHJvY2Vzc1VuZGVyUHJvZ3Jlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjYyMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuUHJvZ3Jlc3NNYW5hZ2VySW1wbC5leGVjdXRlUHJvY2Vzc1VuZGVyUHJvZ3Jlc3MoUHJvZ3Jlc3NNYW5hZ2VySW1wbC5qYXZhOjY2KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLnJ1blByb2Nlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjE3NSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLnV0aWwuQmFja2dyb3VuZFRhc2tVdGlsLnJ1blVuZGVyRGlzcG9zZUF3YXJlSW5kaWNhdG9yKEJhY2tncm91bmRUYXNrVXRpbC5qYXZhOjI3NykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTgoQWN0aW9uVXBkYXRlci5qYXZhOjMwNCkKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IuZG9SdW4oQm91bmRlZFRhc2tFeGVjdXRvci5qYXZhOjI0NikKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IuYWNjZXNzJDIwMChCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MzIpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yJDEuZXhlY3V0ZShCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MjI1KQoJYXQgY29tLmludGVsbGlqLnV0aWwuQ29uY3VycmVuY3lVdGlsLnJ1blVuZGVyVGhyZWFkTmFtZShDb25jdXJyZW5jeVV0aWwuamF2YToyMTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yJDEucnVuKEJvdW5kZWRUYXNrRXhlY3V0b3IuamF2YToyMTQpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTI4KQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYyOCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMSQxLnJ1bihFeGVjdXRvcnMuamF2YTo2NjgpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFByaXZpbGVnZWRUaHJlYWRGYWN0b3J5JDEkMS5ydW4oRXhlY3V0b3JzLmphdmE6NjY1KQoJYXQgamF2YS5iYXNlL2phdmEuc2VjdXJpdHkuQWNjZXNzQ29udHJvbGxlci5kb1ByaXZpbGVnZWQoTmF0aXZlIE1ldGhvZCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMS5ydW4oRXhlY3V0b3JzLmphdmE6NjY1KQoJYXQgamF2YS5iYXNlL2phdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjgyOSkKCgoyMDIyLTAxLTE0VDE3OjQwOjQ0Ljg3MApjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5FeGNlcHRpb246IFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIG1ldGhvZCAnZ2V0SWQnIGlzIGRlcHJlY2F0ZWQsIHlvdSBuZWVkIHRvIG92ZXJyaWRlIGl0IGluICdjbGFzcyBvcmcuaWNlMTAwMC5qdWxpYS5sYW5nLmV4ZWN1dGlvbi5KdWxpYVJ1bkNvbmZpZ3VyYXRpb25GYWN0b3J5Jy4gVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gZGVsZWdhdGVzIHRvICdnZXROYW1lJyB3aGljaCBtYXkgYmUgbG9jYWxpemVkLCBidXQgcmV0dXJuIHZhbHVlIG9mIHRoaXMgbWV0aG9kIG11c3Qgbm90IGRlcGVuZCBvbiBjdXJyZW50IGxvY2FsaXphdGlvbi4gW1BsdWdpbjogb3JnLmljZTEwMDAuanVsaWFdCglhdCBjb20uaW50ZWxsaWouaWRlLnBsdWdpbnMuUGx1Z2luTWFuYWdlckNvcmUuY3JlYXRlUGx1Z2luRXhjZXB0aW9uKFBsdWdpbk1hbmFnZXJDb3JlLmphdmE6MjcwKQoJYXQgY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luUHJvYmxlbVJlcG9ydGVySW1wbC5jcmVhdGVQbHVnaW5FeGNlcHRpb25CeUNsYXNzKFBsdWdpblByb2JsZW1SZXBvcnRlckltcGwuamF2YToxMikKCWF0IGNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpbkV4Y2VwdGlvbi5jcmVhdGVCeUNsYXNzKFBsdWdpbkV4Y2VwdGlvbi5qYXZhOjgzKQoJYXQgY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luRXhjZXB0aW9uLnJlcG9ydERlcHJlY2F0ZWREZWZhdWx0KFBsdWdpbkV4Y2VwdGlvbi5qYXZhOjExMCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uY29uZmlndXJhdGlvbnMuQ29uZmlndXJhdGlvbkZhY3RvcnkuZ2V0SWQoQ29uZmlndXJhdGlvbkZhY3RvcnkuamF2YTo3NSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5uZXJBbmRDb25maWd1cmF0aW9uU2V0dGluZ3NJbXBsLmdldE5hbWUoUnVubmVyQW5kQ29uZmlndXJhdGlvblNldHRpbmdzSW1wbC5rdDoxNTQpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuQ29uZmlndXJhdGlvblNjaGVtZU1hbmFnZXIuZ2V0U2NoZW1lS2V5KFJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmt0OjM3KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmdldFNjaGVtZUtleShSdW5Db25maWd1cmF0aW9uU2NoZW1lTWFuYWdlci5rdDoyMSkKCWF0IGNvbS5pbnRlbGxpai5jb25maWd1cmF0aW9uU3RvcmUuc2NoZW1lTWFuYWdlci5TY2hlbWVMaXN0TWFuYWdlci5hZGRTY2hlbWUoU2NoZW1lTGlzdE1hbmFnZXIua3Q6MzUpCglhdCBjb20uaW50ZWxsaWouY29uZmlndXJhdGlvblN0b3JlLnNjaGVtZU1hbmFnZXIuU2NoZW1lTWFuYWdlckltcGwuYWRkU2NoZW1lKFNjaGVtZU1hbmFnZXJJbXBsLmt0OjYxNSkKCWF0IGNvbS5pbnRlbGxpai5jb25maWd1cmF0aW9uU3RvcmUuc2NoZW1lTWFuYWdlci5TY2hlbWVNYW5hZ2VySW1wbC5hZGRTY2hlbWUoU2NoZW1lTWFuYWdlckltcGwua3Q6NDIpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5vcHRpb25zLlNjaGVtZU1hbmFnZXIuYWRkU2NoZW1lKFNjaGVtZU1hbmFnZXIua3Q6MzgpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuTWFuYWdlckltcGwuZ2V0Q29uZmlndXJhdGlvblRlbXBsYXRlKFJ1bk1hbmFnZXJJbXBsLmt0OjMzNykKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5NYW5hZ2VySW1wbC5jcmVhdGVDb25maWd1cmF0aW9uKFJ1bk1hbmFnZXJJbXBsLmt0OjI2MSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuY2xvbmVUZW1wbGF0ZUNvbmZpZ3VyYXRpb25TdGF0aWMoUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmphdmE6MjU5KQoJYXQgY29tLmpldGJyYWlucy5weXRob24udGVzdGluZy5QeVRlc3RzQ29uZmlndXJhdGlvblByb2R1Y2VyLmFjY2VzcyRjbG9uZVRlbXBsYXRlQ29uZmlndXJhdGlvblN0YXRpYyRzLTEzNDU2NzUwMTEoUHlUZXN0c1NoYXJlZC5rdDo3MDMpCglhdCBjb20uamV0YnJhaW5zLnB5dGhvbi50ZXN0aW5nLlB5VGVzdHNDb25maWd1cmF0aW9uUHJvZHVjZXIuY2xvbmVUZW1wbGF0ZUNvbmZpZ3VyYXRpb24oUHlUZXN0c1NoYXJlZC5rdDo3ODQpCglhdCBjb20uamV0YnJhaW5zLnB5dGhvbi50ZXN0aW5nLkFic3RyYWN0UHl0aG9uVGVzdENvbmZpZ3VyYXRpb25Qcm9kdWNlci5jcmVhdGVDb25maWd1cmF0aW9uRnJvbUNvbnRleHQoQWJzdHJhY3RQeXRob25UZXN0Q29uZmlndXJhdGlvblByb2R1Y2VyLmt0OjI3KQoJYXQgY29tLmpldGJyYWlucy5weXRob24udGVzdGluZy5QeVRlc3RzQ29uZmlndXJhdGlvblByb2R1Y2VyLmNyZWF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ29udGV4dChQeVRlc3RzU2hhcmVkLmt0Ojc5MCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuZmluZE9yQ3JlYXRlQ29uZmlndXJhdGlvbkZyb21Db250ZXh0KFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjE5OSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5QcmVmZXJyZWRQcm9kdWNlckZpbmQuZG9HZXRDb25maWd1cmF0aW9uc0Zyb21Db250ZXh0KFByZWZlcnJlZFByb2R1Y2VyRmluZC5qYXZhOjExMCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5QcmVmZXJyZWRQcm9kdWNlckZpbmQuZ2V0Q29uZmlndXJhdGlvbnNGcm9tQ29udGV4dChQcmVmZXJyZWRQcm9kdWNlckZpbmQuamF2YTo5MykKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5Db25maWd1cmF0aW9uQ29udGV4dC5nZXRDb25maWd1cmF0aW9uc0Zyb21Db250ZXh0KENvbmZpZ3VyYXRpb25Db250ZXh0LmphdmE6NDE0KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkNvbmZpZ3VyYXRpb25Db250ZXh0LmZpbmRQcmVmZXJyZWRDb25maWd1cmF0aW9uKENvbmZpZ3VyYXRpb25Db250ZXh0LmphdmE6MjkyKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkNvbmZpZ3VyYXRpb25Db250ZXh0LmZpbmRFeGlzdGluZyhDb25maWd1cmF0aW9uQ29udGV4dC5qYXZhOjI4NSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5CYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5maW5kRXhpc3RpbmcoQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uamF2YTo2MikKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5CYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5mdWxsVXBkYXRlKEJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmphdmE6MjMyKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLnVwZGF0ZShCYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5qYXZhOjE5OCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5leC5BY3Rpb25VdGlsLmxhbWJkYSRwZXJmb3JtRHVtYkF3YXJlVXBkYXRlJDAoQWN0aW9uVXRpbC5qYXZhOjEzMSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5leC5BY3Rpb25VdGlsLnBlcmZvcm1EdW1iQXdhcmVVcGRhdGUoQWN0aW9uVXRpbC5qYXZhOjE0NSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9VcGRhdGUoQWN0aW9uVXBkYXRlci5qYXZhOjYwMikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJHVwZGF0ZUFjdGlvblJlYWwkNyhBY3Rpb25VcGRhdGVyLmphdmE6MTI2KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5jYWxsQWN0aW9uKEFjdGlvblVwZGF0ZXIuamF2YToxNzApCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLnVwZGF0ZUFjdGlvblJlYWwoQWN0aW9uVXBkYXRlci5qYXZhOjEyNykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJG5ldyQwKEFjdGlvblVwZGF0ZXIuamF2YToxMDkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLnVwZGF0ZShBY3Rpb25VcGRhdGVyLmphdmE6NTg4KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0MzQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQ4OSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjEoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0NTQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDg5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMShBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQ1NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0ODkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQ4OSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjEoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0NTQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjIzMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTMoQWN0aW9uVXBkYXRlci5qYXZhOjI4NikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTUoQWN0aW9uVXBkYXRlci5qYXZhOjMwOSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFwcGxpY2F0aW9uLmltcGwuQXBwbGljYXRpb25JbXBsLnRyeVJ1blJlYWRBY3Rpb24oQXBwbGljYXRpb25JbXBsLmphdmE6MTA4NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTYoQWN0aW9uVXBkYXRlci5qYXZhOjMwOSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLnV0aWwuUHJvZ3Jlc3NJbmRpY2F0b3JVdGlscy5ydW5BY3Rpb25BbmRDYW5jZWxCZWZvcmVXcml0ZShQcm9ncmVzc0luZGljYXRvclV0aWxzLmphdmE6MTU4KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZXhwYW5kQWN0aW9uR3JvdXBBc3luYyQxNyhBY3Rpb25VcGRhdGVyLmphdmE6MzA1KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLmxhbWJkYSRydW5Qcm9jZXNzJDIoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjE4OCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5sYW1iZGEkZXhlY3V0ZVByb2Nlc3NVbmRlclByb2dyZXNzJDEyKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YTo2MjQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIucmVnaXN0ZXJJbmRpY2F0b3JBbmRSdW4oQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjY5OCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5jb21wdXRlVW5kZXJQcm9ncmVzcyhDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6NjQ2KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLmV4ZWN1dGVQcm9jZXNzVW5kZXJQcm9ncmVzcyhDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6NjIzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Qcm9ncmVzc01hbmFnZXJJbXBsLmV4ZWN1dGVQcm9jZXNzVW5kZXJQcm9ncmVzcyhQcm9ncmVzc01hbmFnZXJJbXBsLmphdmE6NjYpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIucnVuUHJvY2VzcyhDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6MTc1KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MudXRpbC5CYWNrZ3JvdW5kVGFza1V0aWwucnVuVW5kZXJEaXNwb3NlQXdhcmVJbmRpY2F0b3IoQmFja2dyb3VuZFRhc2tVdGlsLmphdmE6Mjc3KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZXhwYW5kQWN0aW9uR3JvdXBBc3luYyQxOChBY3Rpb25VcGRhdGVyLmphdmE6MzA0KQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29uY3VycmVuY3kuQm91bmRlZFRhc2tFeGVjdXRvci5kb1J1bihCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MjQ2KQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29uY3VycmVuY3kuQm91bmRlZFRhc2tFeGVjdXRvci5hY2Nlc3MkMjAwKEJvdW5kZWRUYXNrRXhlY3V0b3IuamF2YTozMikKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IkMS5leGVjdXRlKEJvdW5kZWRUYXNrRXhlY3V0b3IuamF2YToyMjUpCglhdCBjb20uaW50ZWxsaWoudXRpbC5Db25jdXJyZW5jeVV0aWwucnVuVW5kZXJUaHJlYWROYW1lKENvbmN1cnJlbmN5VXRpbC5qYXZhOjIxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IkMS5ydW4oQm91bmRlZFRhc2tFeGVjdXRvci5qYXZhOjIxNCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjExMjgpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjI4KQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LkV4ZWN1dG9ycyRQcml2aWxlZ2VkVGhyZWFkRmFjdG9yeSQxJDEucnVuKEV4ZWN1dG9ycy5qYXZhOjY2OCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMSQxLnJ1bihFeGVjdXRvcnMuamF2YTo2NjUpCglhdCBqYXZhLmJhc2UvamF2YS5zZWN1cml0eS5BY2Nlc3NDb250cm9sbGVyLmRvUHJpdmlsZWdlZChOYXRpdmUgTWV0aG9kKQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LkV4ZWN1dG9ycyRQcml2aWxlZ2VkVGhyZWFkRmFjdG9yeSQxLnJ1bihFeGVjdXRvcnMuamF2YTo2NjUpCglhdCBqYXZhLmJhc2UvamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6ODI5KQoKCjIwMjItMDEtMTRUMTc6NDA6NDUuMDQ1CmNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpbkV4Y2VwdGlvbjogVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgbWV0aG9kICdnZXRJZCcgaXMgZGVwcmVjYXRlZCwgeW91IG5lZWQgdG8gb3ZlcnJpZGUgaXQgaW4gJ2NsYXNzIG9yZy5pY2UxMDAwLmp1bGlhLmxhbmcuZXhlY3V0aW9uLkp1bGlhUnVuQ29uZmlndXJhdGlvbkZhY3RvcnknLiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBkZWxlZ2F0ZXMgdG8gJ2dldE5hbWUnIHdoaWNoIG1heSBiZSBsb2NhbGl6ZWQsIGJ1dCByZXR1cm4gdmFsdWUgb2YgdGhpcyBtZXRob2QgbXVzdCBub3QgZGVwZW5kIG9uIGN1cnJlbnQgbG9jYWxpemF0aW9uLiBbUGx1Z2luOiBvcmcuaWNlMTAwMC5qdWxpYV0KCWF0IGNvbS5pbnRlbGxpai5pZGUucGx1Z2lucy5QbHVnaW5NYW5hZ2VyQ29yZS5jcmVhdGVQbHVnaW5FeGNlcHRpb24oUGx1Z2luTWFuYWdlckNvcmUuamF2YToyNzApCglhdCBjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5Qcm9ibGVtUmVwb3J0ZXJJbXBsLmNyZWF0ZVBsdWdpbkV4Y2VwdGlvbkJ5Q2xhc3MoUGx1Z2luUHJvYmxlbVJlcG9ydGVySW1wbC5qYXZhOjEyKQoJYXQgY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luRXhjZXB0aW9uLmNyZWF0ZUJ5Q2xhc3MoUGx1Z2luRXhjZXB0aW9uLmphdmE6ODMpCglhdCBjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5FeGNlcHRpb24ucmVwb3J0RGVwcmVjYXRlZERlZmF1bHQoUGx1Z2luRXhjZXB0aW9uLmphdmE6MTEwKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5jb25maWd1cmF0aW9ucy5Db25maWd1cmF0aW9uRmFjdG9yeS5nZXRJZChDb25maWd1cmF0aW9uRmFjdG9yeS5qYXZhOjc1KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bk1hbmFnZXJJbXBsS3QuZ2V0RmFjdG9yeUtleShSdW5NYW5hZ2VySW1wbC5rdDoxMzc0KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bk1hbmFnZXJJbXBsS3QuYWNjZXNzJGdldEZhY3RvcnlLZXkoUnVuTWFuYWdlckltcGwua3Q6MSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5NYW5hZ2VySW1wbC5nZXRDb25maWd1cmF0aW9uVGVtcGxhdGUoUnVuTWFuYWdlckltcGwua3Q6MzMzKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bk1hbmFnZXJJbXBsLmNyZWF0ZUNvbmZpZ3VyYXRpb24oUnVuTWFuYWdlckltcGwua3Q6MjYxKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5jbG9uZVRlbXBsYXRlQ29uZmlndXJhdGlvblN0YXRpYyhSdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuamF2YToyNTkpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmNsb25lVGVtcGxhdGVDb25maWd1cmF0aW9uKFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjI0OSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuY3JlYXRlQ29uZmlndXJhdGlvbkZyb21Db250ZXh0KFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjk4KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5maW5kT3JDcmVhdGVDb25maWd1cmF0aW9uRnJvbUNvbnRleHQoUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmphdmE6MTk5KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlByZWZlcnJlZFByb2R1Y2VyRmluZC5kb0dldENvbmZpZ3VyYXRpb25zRnJvbUNvbnRleHQoUHJlZmVycmVkUHJvZHVjZXJGaW5kLmphdmE6MTEwKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlByZWZlcnJlZFByb2R1Y2VyRmluZC5nZXRDb25maWd1cmF0aW9uc0Zyb21Db250ZXh0KFByZWZlcnJlZFByb2R1Y2VyRmluZC5qYXZhOjkzKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlByZWZlcnJlZFByb2R1Y2VyRmluZC5maW5kQ29uZmlndXJhdGlvbkZyb21Db250ZXh0KFByZWZlcnJlZFByb2R1Y2VyRmluZC5qYXZhOjEzNSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5QcmVmZXJyZWRQcm9kdWNlckZpbmQuY3JlYXRlQ29uZmlndXJhdGlvbihQcmVmZXJyZWRQcm9kdWNlckZpbmQuamF2YTozMikKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5Db25maWd1cmF0aW9uQ29udGV4dC5jcmVhdGVDb25maWd1cmF0aW9uKENvbmZpZ3VyYXRpb25Db250ZXh0LmphdmE6MjA0KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkNvbmZpZ3VyYXRpb25Db250ZXh0LmdldENvbmZpZ3VyYXRpb24oQ29uZmlndXJhdGlvbkNvbnRleHQuamF2YToxOTUpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uZnVsbFVwZGF0ZShCYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5qYXZhOjIzNSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5CYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi51cGRhdGUoQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uamF2YToxOTgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uZXguQWN0aW9uVXRpbC5sYW1iZGEkcGVyZm9ybUR1bWJBd2FyZVVwZGF0ZSQwKEFjdGlvblV0aWwuamF2YToxMzEpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uZXguQWN0aW9uVXRpbC5wZXJmb3JtRHVtYkF3YXJlVXBkYXRlKEFjdGlvblV0aWwuamF2YToxNDUpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvVXBkYXRlKEFjdGlvblVwZGF0ZXIuamF2YTo2MDIpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSR1cGRhdGVBY3Rpb25SZWFsJDcoQWN0aW9uVXBkYXRlci5qYXZhOjEyNikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuY2FsbEFjdGlvbihBY3Rpb25VcGRhdGVyLmphdmE6MTcwKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci51cGRhdGVBY3Rpb25SZWFsKEFjdGlvblVwZGF0ZXIuamF2YToxMjcpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRuZXckMChBY3Rpb25VcGRhdGVyLmphdmE6MTA5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci51cGRhdGUoQWN0aW9uVXBkYXRlci5qYXZhOjU4OCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDM0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMShBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQ1NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0ODkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQ4OSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjEoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0NTQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDg5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMShBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQ1NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0ODkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YToyMzMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDEzKEFjdGlvblVwZGF0ZXIuamF2YToyODYpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDE1KEFjdGlvblVwZGF0ZXIuamF2YTozMDkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hcHBsaWNhdGlvbi5pbXBsLkFwcGxpY2F0aW9uSW1wbC50cnlSdW5SZWFkQWN0aW9uKEFwcGxpY2F0aW9uSW1wbC5qYXZhOjEwODQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDE2KEFjdGlvblVwZGF0ZXIuamF2YTozMDkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy51dGlsLlByb2dyZXNzSW5kaWNhdG9yVXRpbHMucnVuQWN0aW9uQW5kQ2FuY2VsQmVmb3JlV3JpdGUoUHJvZ3Jlc3NJbmRpY2F0b3JVdGlscy5qYXZhOjE1OCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTcoQWN0aW9uVXBkYXRlci5qYXZhOjMwNSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5sYW1iZGEkcnVuUHJvY2VzcyQyKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YToxODgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIubGFtYmRhJGV4ZWN1dGVQcm9jZXNzVW5kZXJQcm9ncmVzcyQxMihDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6NjI0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLnJlZ2lzdGVySW5kaWNhdG9yQW5kUnVuKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YTo2OTgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIuY29tcHV0ZVVuZGVyUHJvZ3Jlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjY0NikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5leGVjdXRlUHJvY2Vzc1VuZGVyUHJvZ3Jlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjYyMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuUHJvZ3Jlc3NNYW5hZ2VySW1wbC5leGVjdXRlUHJvY2Vzc1VuZGVyUHJvZ3Jlc3MoUHJvZ3Jlc3NNYW5hZ2VySW1wbC5qYXZhOjY2KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLnJ1blByb2Nlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjE3NSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLnV0aWwuQmFja2dyb3VuZFRhc2tVdGlsLnJ1blVuZGVyRGlzcG9zZUF3YXJlSW5kaWNhdG9yKEJhY2tncm91bmRUYXNrVXRpbC5qYXZhOjI3NykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTgoQWN0aW9uVXBkYXRlci5qYXZhOjMwNCkKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IuZG9SdW4oQm91bmRlZFRhc2tFeGVjdXRvci5qYXZhOjI0NikKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IuYWNjZXNzJDIwMChCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MzIpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yJDEuZXhlY3V0ZShCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MjI1KQoJYXQgY29tLmludGVsbGlqLnV0aWwuQ29uY3VycmVuY3lVdGlsLnJ1blVuZGVyVGhyZWFkTmFtZShDb25jdXJyZW5jeVV0aWwuamF2YToyMTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yJDEucnVuKEJvdW5kZWRUYXNrRXhlY3V0b3IuamF2YToyMTQpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTI4KQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYyOCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMSQxLnJ1bihFeGVjdXRvcnMuamF2YTo2NjgpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFByaXZpbGVnZWRUaHJlYWRGYWN0b3J5JDEkMS5ydW4oRXhlY3V0b3JzLmphdmE6NjY1KQoJYXQgamF2YS5iYXNlL2phdmEuc2VjdXJpdHkuQWNjZXNzQ29udHJvbGxlci5kb1ByaXZpbGVnZWQoTmF0aXZlIE1ldGhvZCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMS5ydW4oRXhlY3V0b3JzLmphdmE6NjY1KQoJYXQgamF2YS5iYXNlL2phdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjgyOSk=
- title: [auto-generated:1776339738] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Linux
- Java Version: 11.0.13
- App Name: PyCharm
- App Full Name: PyCharm
- App Version name: PyCharm
- Is EAP: false
- App Build: PC-213.6461.77
- App Version: 2021.3.1
- Last Action: Unknown
- title: [auto-generated:1776339738] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Mac OS X
- Java Version: 11.0.13
- App Name: PyCharm
- App Full Name: PyCharm
- App Version name: PyCharm
- Is EAP: false
- App Build: PY-213.6461.77
- App Version: 2021.3.1
- Last Action: Unknown
- title: [auto-generated:1776339738] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Mac OS X
- Java Version: 11.0.13
- App Name: PyCharm
- App Full Name: PyCharm
- App Version name: PyCharm
- Is EAP: false
- App Build: PY-213.6461.77
- App Version: 2021.3.1
- Last Action: Unknown
- title: [auto-generated:1776339738] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Mac OS X
- Java Version: 11.0.13
- App Name: PyCharm
- App Full Name: PyCharm
- App Version name: PyCharm
- Is EAP: false
- App Build: PY-213.6461.77
- App Version: 2021.3.1
- Last Action: Unknown
- title: [auto-generated:1776339738] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Linux
- Java Version: 11.0.13
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IU-213.6461.79
- App Version: 2021.3.1
- Last Action: Unknown
- title: [auto-generated:1776339738] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Linux
- Java Version: 11.0.13
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IU-213.6461.79
- App Version: 2021.3.1
- Last Action: Unknown
- title: [auto-generated:1776339738] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Linux
- Java Version: 11.0.13
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IU-213.6461.79
- App Version: 2021.3.1
- Last Action: Unknown
- title: [auto-generated:1776339738] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Linux
- Java Version: 11.0.13
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IU-213.6461.79
- App Version: 2021.3.1
- Last Action: Unknown
- title: [auto-generated:1776339738] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Linux
- Java Version: 11.0.13
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IU-213.6461.79
- App Version: 2021.3.1
- Last Action: Unknown
- title: [auto-generated:1776339738] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Linux
- Java Version: 11.0.13
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IU-213.6461.79
- App Version: 2021.3.1
- Last Action: Unknown
- Attachment induced.txt: Rm9sbG93aW5nIGV4Y2VwdGlvbnMgaGFwcGVuZWQgc29vbiBhZnRlciB0aGlzIG9uZSwgbW9zdCBwcm9iYWJseSB0aGV5IGFyZSBpbmR1Y2VkLgoKCjIwMjItMDEtMjFUMDk6MTI6MjIuMTcyCmNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpbkV4Y2VwdGlvbjogVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgbWV0aG9kICdnZXRJZCcgaXMgZGVwcmVjYXRlZCwgeW91IG5lZWQgdG8gb3ZlcnJpZGUgaXQgaW4gJ2NsYXNzIG9yZy5pY2UxMDAwLmp1bGlhLmxhbmcuZXhlY3V0aW9uLkp1bGlhUnVuQ29uZmlndXJhdGlvbkZhY3RvcnknLiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBkZWxlZ2F0ZXMgdG8gJ2dldE5hbWUnIHdoaWNoIG1heSBiZSBsb2NhbGl6ZWQsIGJ1dCByZXR1cm4gdmFsdWUgb2YgdGhpcyBtZXRob2QgbXVzdCBub3QgZGVwZW5kIG9uIGN1cnJlbnQgbG9jYWxpemF0aW9uLiBbUGx1Z2luOiBvcmcuaWNlMTAwMC5qdWxpYV0KCWF0IGNvbS5pbnRlbGxpai5pZGUucGx1Z2lucy5QbHVnaW5NYW5hZ2VyQ29yZS5jcmVhdGVQbHVnaW5FeGNlcHRpb24oUGx1Z2luTWFuYWdlckNvcmUuamF2YToyNzApCglhdCBjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5Qcm9ibGVtUmVwb3J0ZXJJbXBsLmNyZWF0ZVBsdWdpbkV4Y2VwdGlvbkJ5Q2xhc3MoUGx1Z2luUHJvYmxlbVJlcG9ydGVySW1wbC5qYXZhOjEyKQoJYXQgY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luRXhjZXB0aW9uLmNyZWF0ZUJ5Q2xhc3MoUGx1Z2luRXhjZXB0aW9uLmphdmE6ODMpCglhdCBjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5FeGNlcHRpb24ucmVwb3J0RGVwcmVjYXRlZERlZmF1bHQoUGx1Z2luRXhjZXB0aW9uLmphdmE6MTEwKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5jb25maWd1cmF0aW9ucy5Db25maWd1cmF0aW9uRmFjdG9yeS5nZXRJZChDb25maWd1cmF0aW9uRmFjdG9yeS5qYXZhOjc1KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bm5lckFuZENvbmZpZ3VyYXRpb25TZXR0aW5nc0ltcGwuZ2V0TmFtZShSdW5uZXJBbmRDb25maWd1cmF0aW9uU2V0dGluZ3NJbXBsLmt0OjE1NCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5Db25maWd1cmF0aW9uU2NoZW1lTWFuYWdlci5nZXRTY2hlbWVLZXkoUnVuQ29uZmlndXJhdGlvblNjaGVtZU1hbmFnZXIua3Q6MzcpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuQ29uZmlndXJhdGlvblNjaGVtZU1hbmFnZXIuZ2V0U2NoZW1lS2V5KFJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmt0OjIxKQoJYXQgY29tLmludGVsbGlqLmNvbmZpZ3VyYXRpb25TdG9yZS5zY2hlbWVNYW5hZ2VyLlNjaGVtZUxpc3RNYW5hZ2VyLmFkZFNjaGVtZShTY2hlbWVMaXN0TWFuYWdlci5rdDozNSkKCWF0IGNvbS5pbnRlbGxpai5jb25maWd1cmF0aW9uU3RvcmUuc2NoZW1lTWFuYWdlci5TY2hlbWVNYW5hZ2VySW1wbC5hZGRTY2hlbWUoU2NoZW1lTWFuYWdlckltcGwua3Q6NjE1KQoJYXQgY29tLmludGVsbGlqLmNvbmZpZ3VyYXRpb25TdG9yZS5zY2hlbWVNYW5hZ2VyLlNjaGVtZU1hbmFnZXJJbXBsLmFkZFNjaGVtZShTY2hlbWVNYW5hZ2VySW1wbC5rdDo0MikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLm9wdGlvbnMuU2NoZW1lTWFuYWdlci5hZGRTY2hlbWUoU2NoZW1lTWFuYWdlci5rdDozOCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5NYW5hZ2VySW1wbC5nZXRDb25maWd1cmF0aW9uVGVtcGxhdGUoUnVuTWFuYWdlckltcGwua3Q6MzM3KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bk1hbmFnZXJJbXBsLmNyZWF0ZUNvbmZpZ3VyYXRpb24oUnVuTWFuYWdlckltcGwua3Q6MjYxKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5jbG9uZVRlbXBsYXRlQ29uZmlndXJhdGlvblN0YXRpYyhSdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuamF2YToyNTkpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmNsb25lVGVtcGxhdGVDb25maWd1cmF0aW9uKFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjI0OSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuY3JlYXRlQ29uZmlndXJhdGlvbkZyb21Db250ZXh0KFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjk4KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5maW5kT3JDcmVhdGVDb25maWd1cmF0aW9uRnJvbUNvbnRleHQoUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmphdmE6MTk5KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlByZWZlcnJlZFByb2R1Y2VyRmluZC5kb0dldENvbmZpZ3VyYXRpb25zRnJvbUNvbnRleHQoUHJlZmVycmVkUHJvZHVjZXJGaW5kLmphdmE6MTEwKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlByZWZlcnJlZFByb2R1Y2VyRmluZC5nZXRDb25maWd1cmF0aW9uc0Zyb21Db250ZXh0KFByZWZlcnJlZFByb2R1Y2VyRmluZC5qYXZhOjkzKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkNvbmZpZ3VyYXRpb25Db250ZXh0LmdldENvbmZpZ3VyYXRpb25zRnJvbUNvbnRleHQoQ29uZmlndXJhdGlvbkNvbnRleHQuamF2YTo0MTQpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQ29uZmlndXJhdGlvbkNvbnRleHQuZmluZFByZWZlcnJlZENvbmZpZ3VyYXRpb24oQ29uZmlndXJhdGlvbkNvbnRleHQuamF2YToyOTIpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQ29uZmlndXJhdGlvbkNvbnRleHQuZmluZEV4aXN0aW5nKENvbmZpZ3VyYXRpb25Db250ZXh0LmphdmE6Mjg1KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmZpbmRFeGlzdGluZyhCYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5qYXZhOjYyKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmZ1bGxVcGRhdGUoQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uamF2YToyMzIpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24udXBkYXRlKEJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmphdmE6MTk4KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmV4LkFjdGlvblV0aWwubGFtYmRhJHBlcmZvcm1EdW1iQXdhcmVVcGRhdGUkMChBY3Rpb25VdGlsLmphdmE6MTMxKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmV4LkFjdGlvblV0aWwucGVyZm9ybUR1bWJBd2FyZVVwZGF0ZShBY3Rpb25VdGlsLmphdmE6MTQ1KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb1VwZGF0ZShBY3Rpb25VcGRhdGVyLmphdmE6NjAyKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkdXBkYXRlQWN0aW9uUmVhbCQ3KEFjdGlvblVwZGF0ZXIuamF2YToxMjYpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmNhbGxBY3Rpb24oQWN0aW9uVXBkYXRlci5qYXZhOjE3MCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIudXBkYXRlQWN0aW9uUmVhbChBY3Rpb25VcGRhdGVyLmphdmE6MTI3KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkbmV3JDAoQWN0aW9uVXBkYXRlci5qYXZhOjEwOSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIudXBkYXRlKEFjdGlvblVwZGF0ZXIuamF2YTo1ODgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQzNCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjEoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0NTQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDg5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMShBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQ1NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0ODkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQ4OSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjEoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0NTQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDg5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMShBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQ1NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0ODkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YToyMzMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDEzKEFjdGlvblVwZGF0ZXIuamF2YToyODYpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDE1KEFjdGlvblVwZGF0ZXIuamF2YTozMDkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hcHBsaWNhdGlvbi5pbXBsLkFwcGxpY2F0aW9uSW1wbC50cnlSdW5SZWFkQWN0aW9uKEFwcGxpY2F0aW9uSW1wbC5qYXZhOjEwODQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDE2KEFjdGlvblVwZGF0ZXIuamF2YTozMDkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy51dGlsLlByb2dyZXNzSW5kaWNhdG9yVXRpbHMucnVuQWN0aW9uQW5kQ2FuY2VsQmVmb3JlV3JpdGUoUHJvZ3Jlc3NJbmRpY2F0b3JVdGlscy5qYXZhOjE1OCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTcoQWN0aW9uVXBkYXRlci5qYXZhOjMwNSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5sYW1iZGEkcnVuUHJvY2VzcyQyKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YToxODgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIubGFtYmRhJGV4ZWN1dGVQcm9jZXNzVW5kZXJQcm9ncmVzcyQxMihDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6NjI0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLnJlZ2lzdGVySW5kaWNhdG9yQW5kUnVuKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YTo2OTgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIuY29tcHV0ZVVuZGVyUHJvZ3Jlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjY0NikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5leGVjdXRlUHJvY2Vzc1VuZGVyUHJvZ3Jlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjYyMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuUHJvZ3Jlc3NNYW5hZ2VySW1wbC5leGVjdXRlUHJvY2Vzc1VuZGVyUHJvZ3Jlc3MoUHJvZ3Jlc3NNYW5hZ2VySW1wbC5qYXZhOjY2KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLnJ1blByb2Nlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjE3NSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLnV0aWwuQmFja2dyb3VuZFRhc2tVdGlsLnJ1blVuZGVyRGlzcG9zZUF3YXJlSW5kaWNhdG9yKEJhY2tncm91bmRUYXNrVXRpbC5qYXZhOjI3NykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTgoQWN0aW9uVXBkYXRlci5qYXZhOjMwNCkKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IuZG9SdW4oQm91bmRlZFRhc2tFeGVjdXRvci5qYXZhOjI0NikKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IuYWNjZXNzJDIwMChCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MzIpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yJDEuZXhlY3V0ZShCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MjI1KQoJYXQgY29tLmludGVsbGlqLnV0aWwuQ29uY3VycmVuY3lVdGlsLnJ1blVuZGVyVGhyZWFkTmFtZShDb25jdXJyZW5jeVV0aWwuamF2YToyMTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yJDEucnVuKEJvdW5kZWRUYXNrRXhlY3V0b3IuamF2YToyMTQpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTI4KQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYyOCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMSQxLnJ1bihFeGVjdXRvcnMuamF2YTo2NjgpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFByaXZpbGVnZWRUaHJlYWRGYWN0b3J5JDEkMS5ydW4oRXhlY3V0b3JzLmphdmE6NjY1KQoJYXQgamF2YS5iYXNlL2phdmEuc2VjdXJpdHkuQWNjZXNzQ29udHJvbGxlci5kb1ByaXZpbGVnZWQoTmF0aXZlIE1ldGhvZCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMS5ydW4oRXhlY3V0b3JzLmphdmE6NjY1KQoJYXQgamF2YS5iYXNlL2phdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjgyOSkKCgoyMDIyLTAxLTIxVDA5OjEyOjIyLjE3OApjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5FeGNlcHRpb246IFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIG1ldGhvZCAnZ2V0SWQnIGlzIGRlcHJlY2F0ZWQsIHlvdSBuZWVkIHRvIG92ZXJyaWRlIGl0IGluICdjbGFzcyBvcmcuaWNlMTAwMC5qdWxpYS5sYW5nLmV4ZWN1dGlvbi5KdWxpYVJ1bkNvbmZpZ3VyYXRpb25GYWN0b3J5Jy4gVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gZGVsZWdhdGVzIHRvICdnZXROYW1lJyB3aGljaCBtYXkgYmUgbG9jYWxpemVkLCBidXQgcmV0dXJuIHZhbHVlIG9mIHRoaXMgbWV0aG9kIG11c3Qgbm90IGRlcGVuZCBvbiBjdXJyZW50IGxvY2FsaXphdGlvbi4gW1BsdWdpbjogb3JnLmljZTEwMDAuanVsaWFdCglhdCBjb20uaW50ZWxsaWouaWRlLnBsdWdpbnMuUGx1Z2luTWFuYWdlckNvcmUuY3JlYXRlUGx1Z2luRXhjZXB0aW9uKFBsdWdpbk1hbmFnZXJDb3JlLmphdmE6MjcwKQoJYXQgY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luUHJvYmxlbVJlcG9ydGVySW1wbC5jcmVhdGVQbHVnaW5FeGNlcHRpb25CeUNsYXNzKFBsdWdpblByb2JsZW1SZXBvcnRlckltcGwuamF2YToxMikKCWF0IGNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpbkV4Y2VwdGlvbi5jcmVhdGVCeUNsYXNzKFBsdWdpbkV4Y2VwdGlvbi5qYXZhOjgzKQoJYXQgY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luRXhjZXB0aW9uLnJlcG9ydERlcHJlY2F0ZWREZWZhdWx0KFBsdWdpbkV4Y2VwdGlvbi5qYXZhOjExMCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uY29uZmlndXJhdGlvbnMuQ29uZmlndXJhdGlvbkZhY3RvcnkuZ2V0SWQoQ29uZmlndXJhdGlvbkZhY3RvcnkuamF2YTo3NSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5uZXJBbmRDb25maWd1cmF0aW9uU2V0dGluZ3NJbXBsLmdldE5hbWUoUnVubmVyQW5kQ29uZmlndXJhdGlvblNldHRpbmdzSW1wbC5rdDoxNTQpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuQ29uZmlndXJhdGlvblNjaGVtZU1hbmFnZXIuZ2V0U2NoZW1lS2V5KFJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmt0OjM3KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmdldFNjaGVtZUtleShSdW5Db25maWd1cmF0aW9uU2NoZW1lTWFuYWdlci5rdDoyMSkKCWF0IGNvbS5pbnRlbGxpai5jb25maWd1cmF0aW9uU3RvcmUuc2NoZW1lTWFuYWdlci5TY2hlbWVNYW5hZ2VyQmFzZS5wcm9jZXNzUGVuZGluZ0N1cnJlbnRTY2hlbWVOYW1lJGludGVsbGlqX3BsYXRmb3JtX2NvbmZpZ3VyYXRpb25TdG9yZV9pbXBsKFNjaGVtZU1hbmFnZXJCYXNlLmt0OjIzKQoJYXQgY29tLmludGVsbGlqLmNvbmZpZ3VyYXRpb25TdG9yZS5zY2hlbWVNYW5hZ2VyLlNjaGVtZUxpc3RNYW5hZ2VyLmFkZFNjaGVtZShTY2hlbWVMaXN0TWFuYWdlci5rdDo3OCkKCWF0IGNvbS5pbnRlbGxpai5jb25maWd1cmF0aW9uU3RvcmUuc2NoZW1lTWFuYWdlci5TY2hlbWVNYW5hZ2VySW1wbC5hZGRTY2hlbWUoU2NoZW1lTWFuYWdlckltcGwua3Q6NjE1KQoJYXQgY29tLmludGVsbGlqLmNvbmZpZ3VyYXRpb25TdG9yZS5zY2hlbWVNYW5hZ2VyLlNjaGVtZU1hbmFnZXJJbXBsLmFkZFNjaGVtZShTY2hlbWVNYW5hZ2VySW1wbC5rdDo0MikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLm9wdGlvbnMuU2NoZW1lTWFuYWdlci5hZGRTY2hlbWUoU2NoZW1lTWFuYWdlci5rdDozOCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5NYW5hZ2VySW1wbC5nZXRDb25maWd1cmF0aW9uVGVtcGxhdGUoUnVuTWFuYWdlckltcGwua3Q6MzM3KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bk1hbmFnZXJJbXBsLmNyZWF0ZUNvbmZpZ3VyYXRpb24oUnVuTWFuYWdlckltcGwua3Q6MjYxKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5jbG9uZVRlbXBsYXRlQ29uZmlndXJhdGlvblN0YXRpYyhSdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuamF2YToyNTkpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmNsb25lVGVtcGxhdGVDb25maWd1cmF0aW9uKFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjI0OSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuY3JlYXRlQ29uZmlndXJhdGlvbkZyb21Db250ZXh0KFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjk4KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5maW5kT3JDcmVhdGVDb25maWd1cmF0aW9uRnJvbUNvbnRleHQoUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmphdmE6MTk5KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlByZWZlcnJlZFByb2R1Y2VyRmluZC5kb0dldENvbmZpZ3VyYXRpb25zRnJvbUNvbnRleHQoUHJlZmVycmVkUHJvZHVjZXJGaW5kLmphdmE6MTEwKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlByZWZlcnJlZFByb2R1Y2VyRmluZC5nZXRDb25maWd1cmF0aW9uc0Zyb21Db250ZXh0KFByZWZlcnJlZFByb2R1Y2VyRmluZC5qYXZhOjkzKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkNvbmZpZ3VyYXRpb25Db250ZXh0LmdldENvbmZpZ3VyYXRpb25zRnJvbUNvbnRleHQoQ29uZmlndXJhdGlvbkNvbnRleHQuamF2YTo0MTQpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQ29uZmlndXJhdGlvbkNvbnRleHQuZmluZFByZWZlcnJlZENvbmZpZ3VyYXRpb24oQ29uZmlndXJhdGlvbkNvbnRleHQuamF2YToyOTIpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQ29uZmlndXJhdGlvbkNvbnRleHQuZmluZEV4aXN0aW5nKENvbmZpZ3VyYXRpb25Db250ZXh0LmphdmE6Mjg1KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmZpbmRFeGlzdGluZyhCYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5qYXZhOjYyKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmZ1bGxVcGRhdGUoQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uamF2YToyMzIpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24udXBkYXRlKEJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmphdmE6MTk4KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmV4LkFjdGlvblV0aWwubGFtYmRhJHBlcmZvcm1EdW1iQXdhcmVVcGRhdGUkMChBY3Rpb25VdGlsLmphdmE6MTMxKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmV4LkFjdGlvblV0aWwucGVyZm9ybUR1bWJBd2FyZVVwZGF0ZShBY3Rpb25VdGlsLmphdmE6MTQ1KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb1VwZGF0ZShBY3Rpb25VcGRhdGVyLmphdmE6NjAyKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkdXBkYXRlQWN0aW9uUmVhbCQ3KEFjdGlvblVwZGF0ZXIuamF2YToxMjYpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmNhbGxBY3Rpb24oQWN0aW9uVXBkYXRlci5qYXZhOjE3MCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIudXBkYXRlQWN0aW9uUmVhbChBY3Rpb25VcGRhdGVyLmphdmE6MTI3KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkbmV3JDAoQWN0aW9uVXBkYXRlci5qYXZhOjEwOSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIudXBkYXRlKEFjdGlvblVwZGF0ZXIuamF2YTo1ODgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQzNCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjEoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0NTQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDg5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMShBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQ1NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0ODkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQ4OSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjEoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0NTQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDg5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMShBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQ1NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0ODkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YToyMzMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDEzKEFjdGlvblVwZGF0ZXIuamF2YToyODYpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDE1KEFjdGlvblVwZGF0ZXIuamF2YTozMDkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hcHBsaWNhdGlvbi5pbXBsLkFwcGxpY2F0aW9uSW1wbC50cnlSdW5SZWFkQWN0aW9uKEFwcGxpY2F0aW9uSW1wbC5qYXZhOjEwODQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDE2KEFjdGlvblVwZGF0ZXIuamF2YTozMDkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy51dGlsLlByb2dyZXNzSW5kaWNhdG9yVXRpbHMucnVuQWN0aW9uQW5kQ2FuY2VsQmVmb3JlV3JpdGUoUHJvZ3Jlc3NJbmRpY2F0b3JVdGlscy5qYXZhOjE1OCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTcoQWN0aW9uVXBkYXRlci5qYXZhOjMwNSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5sYW1iZGEkcnVuUHJvY2VzcyQyKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YToxODgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIubGFtYmRhJGV4ZWN1dGVQcm9jZXNzVW5kZXJQcm9ncmVzcyQxMihDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6NjI0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLnJlZ2lzdGVySW5kaWNhdG9yQW5kUnVuKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YTo2OTgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIuY29tcHV0ZVVuZGVyUHJvZ3Jlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjY0NikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5leGVjdXRlUHJvY2Vzc1VuZGVyUHJvZ3Jlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjYyMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuUHJvZ3Jlc3NNYW5hZ2VySW1wbC5leGVjdXRlUHJvY2Vzc1VuZGVyUHJvZ3Jlc3MoUHJvZ3Jlc3NNYW5hZ2VySW1wbC5qYXZhOjY2KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLnJ1blByb2Nlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjE3NSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLnV0aWwuQmFja2dyb3VuZFRhc2tVdGlsLnJ1blVuZGVyRGlzcG9zZUF3YXJlSW5kaWNhdG9yKEJhY2tncm91bmRUYXNrVXRpbC5qYXZhOjI3NykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTgoQWN0aW9uVXBkYXRlci5qYXZhOjMwNCkKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IuZG9SdW4oQm91bmRlZFRhc2tFeGVjdXRvci5qYXZhOjI0NikKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IuYWNjZXNzJDIwMChCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MzIpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yJDEuZXhlY3V0ZShCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MjI1KQoJYXQgY29tLmludGVsbGlqLnV0aWwuQ29uY3VycmVuY3lVdGlsLnJ1blVuZGVyVGhyZWFkTmFtZShDb25jdXJyZW5jeVV0aWwuamF2YToyMTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yJDEucnVuKEJvdW5kZWRUYXNrRXhlY3V0b3IuamF2YToyMTQpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTI4KQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYyOCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMSQxLnJ1bihFeGVjdXRvcnMuamF2YTo2NjgpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFByaXZpbGVnZWRUaHJlYWRGYWN0b3J5JDEkMS5ydW4oRXhlY3V0b3JzLmphdmE6NjY1KQoJYXQgamF2YS5iYXNlL2phdmEuc2VjdXJpdHkuQWNjZXNzQ29udHJvbGxlci5kb1ByaXZpbGVnZWQoTmF0aXZlIE1ldGhvZCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMS5ydW4oRXhlY3V0b3JzLmphdmE6NjY1KQoJYXQgamF2YS5iYXNlL2phdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjgyOSkKCgoyMDIyLTAxLTIxVDA5OjEyOjIyLjIxNwpjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5FeGNlcHRpb246IFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIG1ldGhvZCAnZ2V0SWQnIGlzIGRlcHJlY2F0ZWQsIHlvdSBuZWVkIHRvIG92ZXJyaWRlIGl0IGluICdjbGFzcyBvcmcuaWNlMTAwMC5qdWxpYS5sYW5nLmV4ZWN1dGlvbi5KdWxpYVJ1bkNvbmZpZ3VyYXRpb25GYWN0b3J5Jy4gVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gZGVsZWdhdGVzIHRvICdnZXROYW1lJyB3aGljaCBtYXkgYmUgbG9jYWxpemVkLCBidXQgcmV0dXJuIHZhbHVlIG9mIHRoaXMgbWV0aG9kIG11c3Qgbm90IGRlcGVuZCBvbiBjdXJyZW50IGxvY2FsaXphdGlvbi4gW1BsdWdpbjogb3JnLmljZTEwMDAuanVsaWFdCglhdCBjb20uaW50ZWxsaWouaWRlLnBsdWdpbnMuUGx1Z2luTWFuYWdlckNvcmUuY3JlYXRlUGx1Z2luRXhjZXB0aW9uKFBsdWdpbk1hbmFnZXJDb3JlLmphdmE6MjcwKQoJYXQgY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luUHJvYmxlbVJlcG9ydGVySW1wbC5jcmVhdGVQbHVnaW5FeGNlcHRpb25CeUNsYXNzKFBsdWdpblByb2JsZW1SZXBvcnRlckltcGwuamF2YToxMikKCWF0IGNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpbkV4Y2VwdGlvbi5jcmVhdGVCeUNsYXNzKFBsdWdpbkV4Y2VwdGlvbi5qYXZhOjgzKQoJYXQgY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luRXhjZXB0aW9uLnJlcG9ydERlcHJlY2F0ZWREZWZhdWx0KFBsdWdpbkV4Y2VwdGlvbi5qYXZhOjExMCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uY29uZmlndXJhdGlvbnMuQ29uZmlndXJhdGlvbkZhY3RvcnkuZ2V0SWQoQ29uZmlndXJhdGlvbkZhY3RvcnkuamF2YTo3NSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5uZXJBbmRDb25maWd1cmF0aW9uU2V0dGluZ3NJbXBsLmdldE5hbWUoUnVubmVyQW5kQ29uZmlndXJhdGlvblNldHRpbmdzSW1wbC5rdDoxNTQpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuQ29uZmlndXJhdGlvblNjaGVtZU1hbmFnZXIuZ2V0U2NoZW1lS2V5KFJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmt0OjM3KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmdldFNjaGVtZUtleShSdW5Db25maWd1cmF0aW9uU2NoZW1lTWFuYWdlci5rdDoyMSkKCWF0IGNvbS5pbnRlbGxpai5jb25maWd1cmF0aW9uU3RvcmUuc2NoZW1lTWFuYWdlci5TY2hlbWVMaXN0TWFuYWdlci5hZGRTY2hlbWUoU2NoZW1lTGlzdE1hbmFnZXIua3Q6MzUpCglhdCBjb20uaW50ZWxsaWouY29uZmlndXJhdGlvblN0b3JlLnNjaGVtZU1hbmFnZXIuU2NoZW1lTWFuYWdlckltcGwuYWRkU2NoZW1lKFNjaGVtZU1hbmFnZXJJbXBsLmt0OjYxNSkKCWF0IGNvbS5pbnRlbGxpai5jb25maWd1cmF0aW9uU3RvcmUuc2NoZW1lTWFuYWdlci5TY2hlbWVNYW5hZ2VySW1wbC5hZGRTY2hlbWUoU2NoZW1lTWFuYWdlckltcGwua3Q6NDIpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5vcHRpb25zLlNjaGVtZU1hbmFnZXIuYWRkU2NoZW1lKFNjaGVtZU1hbmFnZXIua3Q6MzgpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuTWFuYWdlckltcGwuZ2V0Q29uZmlndXJhdGlvblRlbXBsYXRlKFJ1bk1hbmFnZXJJbXBsLmt0OjMzNykKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5NYW5hZ2VySW1wbC5jcmVhdGVDb25maWd1cmF0aW9uKFJ1bk1hbmFnZXJJbXBsLmt0OjI2MSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuY2xvbmVUZW1wbGF0ZUNvbmZpZ3VyYXRpb25TdGF0aWMoUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmphdmE6MjU5KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5jbG9uZVRlbXBsYXRlQ29uZmlndXJhdGlvbihSdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuamF2YToyNDkpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmNyZWF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ29udGV4dChSdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuamF2YTo5OCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuZmluZE9yQ3JlYXRlQ29uZmlndXJhdGlvbkZyb21Db250ZXh0KFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjE5OSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5QcmVmZXJyZWRQcm9kdWNlckZpbmQuZG9HZXRDb25maWd1cmF0aW9uc0Zyb21Db250ZXh0KFByZWZlcnJlZFByb2R1Y2VyRmluZC5qYXZhOjExMCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5QcmVmZXJyZWRQcm9kdWNlckZpbmQuZ2V0Q29uZmlndXJhdGlvbnNGcm9tQ29udGV4dChQcmVmZXJyZWRQcm9kdWNlckZpbmQuamF2YTo5MykKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5Db25maWd1cmF0aW9uQ29udGV4dC5nZXRDb25maWd1cmF0aW9uc0Zyb21Db250ZXh0KENvbmZpZ3VyYXRpb25Db250ZXh0LmphdmE6NDE0KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkNvbmZpZ3VyYXRpb25Db250ZXh0LmZpbmRQcmVmZXJyZWRDb25maWd1cmF0aW9uKENvbmZpZ3VyYXRpb25Db250ZXh0LmphdmE6MjkyKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkNvbmZpZ3VyYXRpb25Db250ZXh0LmZpbmRFeGlzdGluZyhDb25maWd1cmF0aW9uQ29udGV4dC5qYXZhOjI4NSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5CYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5maW5kRXhpc3RpbmcoQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uamF2YTo2MikKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5CYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5mdWxsVXBkYXRlKEJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmphdmE6MjMyKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLnVwZGF0ZShCYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5qYXZhOjE5OCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5leC5BY3Rpb25VdGlsLmxhbWJkYSRwZXJmb3JtRHVtYkF3YXJlVXBkYXRlJDAoQWN0aW9uVXRpbC5qYXZhOjEzMSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5leC5BY3Rpb25VdGlsLnBlcmZvcm1EdW1iQXdhcmVVcGRhdGUoQWN0aW9uVXRpbC5qYXZhOjE0NSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9VcGRhdGUoQWN0aW9uVXBkYXRlci5qYXZhOjYwMikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJHVwZGF0ZUFjdGlvblJlYWwkNyhBY3Rpb25VcGRhdGVyLmphdmE6MTI2KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5jYWxsQWN0aW9uKEFjdGlvblVwZGF0ZXIuamF2YToxNzApCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLnVwZGF0ZUFjdGlvblJlYWwoQWN0aW9uVXBkYXRlci5qYXZhOjEyNykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJG5ldyQwKEFjdGlvblVwZGF0ZXIuamF2YToxMDkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLnVwZGF0ZShBY3Rpb25VcGRhdGVyLmphdmE6NTg4KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0MzQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQ4OSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjEoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0NTQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDg5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMShBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQ1NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0ODkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQ4OSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjEoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0NTQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDg5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMShBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQ1NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6MjMzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZXhwYW5kQWN0aW9uR3JvdXBBc3luYyQxMyhBY3Rpb25VcGRhdGVyLmphdmE6Mjg2KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZXhwYW5kQWN0aW9uR3JvdXBBc3luYyQxNShBY3Rpb25VcGRhdGVyLmphdmE6MzA5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYXBwbGljYXRpb24uaW1wbC5BcHBsaWNhdGlvbkltcGwudHJ5UnVuUmVhZEFjdGlvbihBcHBsaWNhdGlvbkltcGwuamF2YToxMDg0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZXhwYW5kQWN0aW9uR3JvdXBBc3luYyQxNihBY3Rpb25VcGRhdGVyLmphdmE6MzA5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MudXRpbC5Qcm9ncmVzc0luZGljYXRvclV0aWxzLnJ1bkFjdGlvbkFuZENhbmNlbEJlZm9yZVdyaXRlKFByb2dyZXNzSW5kaWNhdG9yVXRpbHMuamF2YToxNTgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDE3KEFjdGlvblVwZGF0ZXIuamF2YTozMDUpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIubGFtYmRhJHJ1blByb2Nlc3MkMihDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6MTg4KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLmxhbWJkYSRleGVjdXRlUHJvY2Vzc1VuZGVyUHJvZ3Jlc3MkMTIoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjYyNCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5yZWdpc3RlckluZGljYXRvckFuZFJ1bihDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6Njk4KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLmNvbXB1dGVVbmRlclByb2dyZXNzKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YTo2NDYpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIuZXhlY3V0ZVByb2Nlc3NVbmRlclByb2dyZXNzKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YTo2MjMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLlByb2dyZXNzTWFuYWdlckltcGwuZXhlY3V0ZVByb2Nlc3NVbmRlclByb2dyZXNzKFByb2dyZXNzTWFuYWdlckltcGwuamF2YTo2NikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5ydW5Qcm9jZXNzKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YToxNzUpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy51dGlsLkJhY2tncm91bmRUYXNrVXRpbC5ydW5VbmRlckRpc3Bvc2VBd2FyZUluZGljYXRvcihCYWNrZ3JvdW5kVGFza1V0aWwuamF2YToyNzcpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDE4KEFjdGlvblVwZGF0ZXIuamF2YTozMDQpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yLmRvUnVuKEJvdW5kZWRUYXNrRXhlY3V0b3IuamF2YToyNDYpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yLmFjY2VzcyQyMDAoQm91bmRlZFRhc2tFeGVjdXRvci5qYXZhOjMyKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29uY3VycmVuY3kuQm91bmRlZFRhc2tFeGVjdXRvciQxLmV4ZWN1dGUoQm91bmRlZFRhc2tFeGVjdXRvci5qYXZhOjIyNSkKCWF0IGNvbS5pbnRlbGxpai51dGlsLkNvbmN1cnJlbmN5VXRpbC5ydW5VbmRlclRocmVhZE5hbWUoQ29uY3VycmVuY3lVdGlsLmphdmE6MjEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29uY3VycmVuY3kuQm91bmRlZFRhc2tFeGVjdXRvciQxLnJ1bihCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MjE0KQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTEyOCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bihUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2MjgpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFByaXZpbGVnZWRUaHJlYWRGYWN0b3J5JDEkMS5ydW4oRXhlY3V0b3JzLmphdmE6NjY4KQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LkV4ZWN1dG9ycyRQcml2aWxlZ2VkVGhyZWFkRmFjdG9yeSQxJDEucnVuKEV4ZWN1dG9ycy5qYXZhOjY2NSkKCWF0IGphdmEuYmFzZS9qYXZhLnNlY3VyaXR5LkFjY2Vzc0NvbnRyb2xsZXIuZG9Qcml2aWxlZ2VkKE5hdGl2ZSBNZXRob2QpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFByaXZpbGVnZWRUaHJlYWRGYWN0b3J5JDEucnVuKEV4ZWN1dG9ycy5qYXZhOjY2NSkKCWF0IGphdmEuYmFzZS9qYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo4MjkpCgoKMjAyMi0wMS0yMVQwOToxMjoyMi4zNDEKY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luRXhjZXB0aW9uOiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBtZXRob2QgJ2dldElkJyBpcyBkZXByZWNhdGVkLCB5b3UgbmVlZCB0byBvdmVycmlkZSBpdCBpbiAnY2xhc3Mgb3JnLmljZTEwMDAuanVsaWEubGFuZy5leGVjdXRpb24uSnVsaWFSdW5Db25maWd1cmF0aW9uRmFjdG9yeScuIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGRlbGVnYXRlcyB0byAnZ2V0TmFtZScgd2hpY2ggbWF5IGJlIGxvY2FsaXplZCwgYnV0IHJldHVybiB2YWx1ZSBvZiB0aGlzIG1ldGhvZCBtdXN0IG5vdCBkZXBlbmQgb24gY3VycmVudCBsb2NhbGl6YXRpb24uIFtQbHVnaW46IG9yZy5pY2UxMDAwLmp1bGlhXQoJYXQgY29tLmludGVsbGlqLmlkZS5wbHVnaW5zLlBsdWdpbk1hbmFnZXJDb3JlLmNyZWF0ZVBsdWdpbkV4Y2VwdGlvbihQbHVnaW5NYW5hZ2VyQ29yZS5qYXZhOjI3MCkKCWF0IGNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpblByb2JsZW1SZXBvcnRlckltcGwuY3JlYXRlUGx1Z2luRXhjZXB0aW9uQnlDbGFzcyhQbHVnaW5Qcm9ibGVtUmVwb3J0ZXJJbXBsLmphdmE6MTIpCglhdCBjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5FeGNlcHRpb24uY3JlYXRlQnlDbGFzcyhQbHVnaW5FeGNlcHRpb24uamF2YTo4MykKCWF0IGNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpbkV4Y2VwdGlvbi5yZXBvcnREZXByZWNhdGVkRGVmYXVsdChQbHVnaW5FeGNlcHRpb24uamF2YToxMTApCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmNvbmZpZ3VyYXRpb25zLkNvbmZpZ3VyYXRpb25GYWN0b3J5LmdldElkKENvbmZpZ3VyYXRpb25GYWN0b3J5LmphdmE6NzUpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVubmVyQW5kQ29uZmlndXJhdGlvblNldHRpbmdzSW1wbC5nZXROYW1lKFJ1bm5lckFuZENvbmZpZ3VyYXRpb25TZXR0aW5nc0ltcGwua3Q6MTU0KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmdldFNjaGVtZUtleShSdW5Db25maWd1cmF0aW9uU2NoZW1lTWFuYWdlci5rdDozNykKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5Db25maWd1cmF0aW9uU2NoZW1lTWFuYWdlci5nZXRTY2hlbWVLZXkoUnVuQ29uZmlndXJhdGlvblNjaGVtZU1hbmFnZXIua3Q6MjEpCglhdCBjb20uaW50ZWxsaWouY29uZmlndXJhdGlvblN0b3JlLnNjaGVtZU1hbmFnZXIuU2NoZW1lTGlzdE1hbmFnZXIuYWRkU2NoZW1lKFNjaGVtZUxpc3RNYW5hZ2VyLmt0OjM1KQoJYXQgY29tLmludGVsbGlqLmNvbmZpZ3VyYXRpb25TdG9yZS5zY2hlbWVNYW5hZ2VyLlNjaGVtZU1hbmFnZXJJbXBsLmFkZFNjaGVtZShTY2hlbWVNYW5hZ2VySW1wbC5rdDo2MTUpCglhdCBjb20uaW50ZWxsaWouY29uZmlndXJhdGlvblN0b3JlLnNjaGVtZU1hbmFnZXIuU2NoZW1lTWFuYWdlckltcGwuYWRkU2NoZW1lKFNjaGVtZU1hbmFnZXJJbXBsLmt0OjQyKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkub3B0aW9ucy5TY2hlbWVNYW5hZ2VyLmFkZFNjaGVtZShTY2hlbWVNYW5hZ2VyLmt0OjM4KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bk1hbmFnZXJJbXBsLmdldENvbmZpZ3VyYXRpb25UZW1wbGF0ZShSdW5NYW5hZ2VySW1wbC5rdDozMzcpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuTWFuYWdlckltcGwuY3JlYXRlQ29uZmlndXJhdGlvbihSdW5NYW5hZ2VySW1wbC5rdDoyNjEpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmNsb25lVGVtcGxhdGVDb25maWd1cmF0aW9uU3RhdGljKFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjI1OSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuY2xvbmVUZW1wbGF0ZUNvbmZpZ3VyYXRpb24oUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmphdmE6MjQ5KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5jcmVhdGVDb25maWd1cmF0aW9uRnJvbUNvbnRleHQoUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmphdmE6OTgpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmp1bml0LkphdmFSdW5Db25maWd1cmF0aW9uUHJvZHVjZXJCYXNlLmNyZWF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ29udGV4dChKYXZhUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyQmFzZS5qYXZhOjgxKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5maW5kT3JDcmVhdGVDb25maWd1cmF0aW9uRnJvbUNvbnRleHQoUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmphdmE6MTk5KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlByZWZlcnJlZFByb2R1Y2VyRmluZC5kb0dldENvbmZpZ3VyYXRpb25zRnJvbUNvbnRleHQoUHJlZmVycmVkUHJvZHVjZXJGaW5kLmphdmE6MTEwKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlByZWZlcnJlZFByb2R1Y2VyRmluZC5nZXRDb25maWd1cmF0aW9uc0Zyb21Db250ZXh0KFByZWZlcnJlZFByb2R1Y2VyRmluZC5qYXZhOjkzKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkNvbmZpZ3VyYXRpb25Db250ZXh0LmdldENvbmZpZ3VyYXRpb25zRnJvbUNvbnRleHQoQ29uZmlndXJhdGlvbkNvbnRleHQuamF2YTo0MTQpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQ29uZmlndXJhdGlvbkNvbnRleHQuZmluZFByZWZlcnJlZENvbmZpZ3VyYXRpb24oQ29uZmlndXJhdGlvbkNvbnRleHQuamF2YToyOTIpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQ29uZmlndXJhdGlvbkNvbnRleHQuZmluZEV4aXN0aW5nKENvbmZpZ3VyYXRpb25Db250ZXh0LmphdmE6Mjg1KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmZpbmRFeGlzdGluZyhCYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5qYXZhOjYyKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmZ1bGxVcGRhdGUoQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uamF2YToyMzIpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24udXBkYXRlKEJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmphdmE6MTk4KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmV4LkFjdGlvblV0aWwubGFtYmRhJHBlcmZvcm1EdW1iQXdhcmVVcGRhdGUkMChBY3Rpb25VdGlsLmphdmE6MTMxKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmV4LkFjdGlvblV0aWwucGVyZm9ybUR1bWJBd2FyZVVwZGF0ZShBY3Rpb25VdGlsLmphdmE6MTQ1KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb1VwZGF0ZShBY3Rpb25VcGRhdGVyLmphdmE6NjAyKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkdXBkYXRlQWN0aW9uUmVhbCQ3KEFjdGlvblVwZGF0ZXIuamF2YToxMjYpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmNhbGxBY3Rpb24oQWN0aW9uVXBkYXRlci5qYXZhOjE3MCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIudXBkYXRlQWN0aW9uUmVhbChBY3Rpb25VcGRhdGVyLmphdmE6MTI3KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkbmV3JDAoQWN0aW9uVXBkYXRlci5qYXZhOjEwOSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIudXBkYXRlKEFjdGlvblVwZGF0ZXIuamF2YTo1ODgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQzNCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjEoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0NTQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDg5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMShBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQ1NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0ODkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQ4OSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjEoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0NTQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDg5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMShBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQ1NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0ODkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YToyMzMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDEzKEFjdGlvblVwZGF0ZXIuamF2YToyODYpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDE1KEFjdGlvblVwZGF0ZXIuamF2YTozMDkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hcHBsaWNhdGlvbi5pbXBsLkFwcGxpY2F0aW9uSW1wbC50cnlSdW5SZWFkQWN0aW9uKEFwcGxpY2F0aW9uSW1wbC5qYXZhOjEwODQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDE2KEFjdGlvblVwZGF0ZXIuamF2YTozMDkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy51dGlsLlByb2dyZXNzSW5kaWNhdG9yVXRpbHMucnVuQWN0aW9uQW5kQ2FuY2VsQmVmb3JlV3JpdGUoUHJvZ3Jlc3NJbmRpY2F0b3JVdGlscy5qYXZhOjE1OCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTcoQWN0aW9uVXBkYXRlci5qYXZhOjMwNSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5sYW1iZGEkcnVuUHJvY2VzcyQyKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YToxODgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIubGFtYmRhJGV4ZWN1dGVQcm9jZXNzVW5kZXJQcm9ncmVzcyQxMihDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6NjI0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLnJlZ2lzdGVySW5kaWNhdG9yQW5kUnVuKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YTo2OTgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIuY29tcHV0ZVVuZGVyUHJvZ3Jlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjY0NikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5leGVjdXRlUHJvY2Vzc1VuZGVyUHJvZ3Jlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjYyMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuUHJvZ3Jlc3NNYW5hZ2VySW1wbC5leGVjdXRlUHJvY2Vzc1VuZGVyUHJvZ3Jlc3MoUHJvZ3Jlc3NNYW5hZ2VySW1wbC5qYXZhOjY2KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLnJ1blByb2Nlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjE3NSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLnV0aWwuQmFja2dyb3VuZFRhc2tVdGlsLnJ1blVuZGVyRGlzcG9zZUF3YXJlSW5kaWNhdG9yKEJhY2tncm91bmRUYXNrVXRpbC5qYXZhOjI3NykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTgoQWN0aW9uVXBkYXRlci5qYXZhOjMwNCkKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IuZG9SdW4oQm91bmRlZFRhc2tFeGVjdXRvci5qYXZhOjI0NikKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IuYWNjZXNzJDIwMChCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MzIpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yJDEuZXhlY3V0ZShCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MjI1KQoJYXQgY29tLmludGVsbGlqLnV0aWwuQ29uY3VycmVuY3lVdGlsLnJ1blVuZGVyVGhyZWFkTmFtZShDb25jdXJyZW5jeVV0aWwuamF2YToyMTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yJDEucnVuKEJvdW5kZWRUYXNrRXhlY3V0b3IuamF2YToyMTQpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTI4KQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYyOCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMSQxLnJ1bihFeGVjdXRvcnMuamF2YTo2NjgpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFByaXZpbGVnZWRUaHJlYWRGYWN0b3J5JDEkMS5ydW4oRXhlY3V0b3JzLmphdmE6NjY1KQoJYXQgamF2YS5iYXNlL2phdmEuc2VjdXJpdHkuQWNjZXNzQ29udHJvbGxlci5kb1ByaXZpbGVnZWQoTmF0aXZlIE1ldGhvZCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMS5ydW4oRXhlY3V0b3JzLmphdmE6NjY1KQoJYXQgamF2YS5iYXNlL2phdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjgyOSkKCgoyMDIyLTAxLTIxVDA5OjEyOjIyLjY4OApjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5FeGNlcHRpb246IFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIG1ldGhvZCAnZ2V0SWQnIGlzIGRlcHJlY2F0ZWQsIHlvdSBuZWVkIHRvIG92ZXJyaWRlIGl0IGluICdjbGFzcyBvcmcuaWNlMTAwMC5qdWxpYS5sYW5nLmV4ZWN1dGlvbi5KdWxpYVJ1bkNvbmZpZ3VyYXRpb25GYWN0b3J5Jy4gVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gZGVsZWdhdGVzIHRvICdnZXROYW1lJyB3aGljaCBtYXkgYmUgbG9jYWxpemVkLCBidXQgcmV0dXJuIHZhbHVlIG9mIHRoaXMgbWV0aG9kIG11c3Qgbm90IGRlcGVuZCBvbiBjdXJyZW50IGxvY2FsaXphdGlvbi4gW1BsdWdpbjogb3JnLmljZTEwMDAuanVsaWFdCglhdCBjb20uaW50ZWxsaWouaWRlLnBsdWdpbnMuUGx1Z2luTWFuYWdlckNvcmUuY3JlYXRlUGx1Z2luRXhjZXB0aW9uKFBsdWdpbk1hbmFnZXJDb3JlLmphdmE6MjcwKQoJYXQgY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luUHJvYmxlbVJlcG9ydGVySW1wbC5jcmVhdGVQbHVnaW5FeGNlcHRpb25CeUNsYXNzKFBsdWdpblByb2JsZW1SZXBvcnRlckltcGwuamF2YToxMikKCWF0IGNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpbkV4Y2VwdGlvbi5jcmVhdGVCeUNsYXNzKFBsdWdpbkV4Y2VwdGlvbi5qYXZhOjgzKQoJYXQgY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luRXhjZXB0aW9uLnJlcG9ydERlcHJlY2F0ZWREZWZhdWx0KFBsdWdpbkV4Y2VwdGlvbi5qYXZhOjExMCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uY29uZmlndXJhdGlvbnMuQ29uZmlndXJhdGlvbkZhY3RvcnkuZ2V0SWQoQ29uZmlndXJhdGlvbkZhY3RvcnkuamF2YTo3NSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5uZXJBbmRDb25maWd1cmF0aW9uU2V0dGluZ3NJbXBsLmdldE5hbWUoUnVubmVyQW5kQ29uZmlndXJhdGlvblNldHRpbmdzSW1wbC5rdDoxNTQpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuQ29uZmlndXJhdGlvblNjaGVtZU1hbmFnZXIuZ2V0U2NoZW1lS2V5KFJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmt0OjM3KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmdldFNjaGVtZUtleShSdW5Db25maWd1cmF0aW9uU2NoZW1lTWFuYWdlci5rdDoyMSkKCWF0IGNvbS5pbnRlbGxpai5jb25maWd1cmF0aW9uU3RvcmUuc2NoZW1lTWFuYWdlci5TY2hlbWVMaXN0TWFuYWdlci5hZGRTY2hlbWUoU2NoZW1lTGlzdE1hbmFnZXIua3Q6MzUpCglhdCBjb20uaW50ZWxsaWouY29uZmlndXJhdGlvblN0b3JlLnNjaGVtZU1hbmFnZXIuU2NoZW1lTWFuYWdlckltcGwuYWRkU2NoZW1lKFNjaGVtZU1hbmFnZXJJbXBsLmt0OjYxNSkKCWF0IGNvbS5pbnRlbGxpai5jb25maWd1cmF0aW9uU3RvcmUuc2NoZW1lTWFuYWdlci5TY2hlbWVNYW5hZ2VySW1wbC5hZGRTY2hlbWUoU2NoZW1lTWFuYWdlckltcGwua3Q6NDIpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5vcHRpb25zLlNjaGVtZU1hbmFnZXIuYWRkU2NoZW1lKFNjaGVtZU1hbmFnZXIua3Q6MzgpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuTWFuYWdlckltcGwuZ2V0Q29uZmlndXJhdGlvblRlbXBsYXRlKFJ1bk1hbmFnZXJJbXBsLmt0OjMzNykKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5NYW5hZ2VySW1wbC5jcmVhdGVDb25maWd1cmF0aW9uKFJ1bk1hbmFnZXJJbXBsLmt0OjI2MSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuY2xvbmVUZW1wbGF0ZUNvbmZpZ3VyYXRpb25TdGF0aWMoUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmphdmE6MjU5KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5jbG9uZVRlbXBsYXRlQ29uZmlndXJhdGlvbihSdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuamF2YToyNDkpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmNyZWF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ29udGV4dChSdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuamF2YTo5OCkKCWF0IGNvbS5pbnRlbGxpai5kYXRhYmFzZS5jb25zb2xlLnJ1bkNvbmZpZ3VyYXRpb24uRGF0YWJhc2VTY3JpcHRSdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuY3JlYXRlQ29uZmlndXJhdGlvbkZyb21Db250ZXh0KERhdGFiYXNlU2NyaXB0UnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmt0OjI4KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5maW5kT3JDcmVhdGVDb25maWd1cmF0aW9uRnJvbUNvbnRleHQoUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmphdmE6MTk5KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlByZWZlcnJlZFByb2R1Y2VyRmluZC5kb0dldENvbmZpZ3VyYXRpb25zRnJvbUNvbnRleHQoUHJlZmVycmVkUHJvZHVjZXJGaW5kLmphdmE6MTEwKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlByZWZlcnJlZFByb2R1Y2VyRmluZC5nZXRDb25maWd1cmF0aW9uc0Zyb21Db250ZXh0KFByZWZlcnJlZFByb2R1Y2VyRmluZC5qYXZhOjkzKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkNvbmZpZ3VyYXRpb25Db250ZXh0LmdldENvbmZpZ3VyYXRpb25zRnJvbUNvbnRleHQoQ29uZmlndXJhdGlvbkNvbnRleHQuamF2YTo0MTQpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQ29uZmlndXJhdGlvbkNvbnRleHQuZmluZFByZWZlcnJlZENvbmZpZ3VyYXRpb24oQ29uZmlndXJhdGlvbkNvbnRleHQuamF2YToyOTIpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQ29uZmlndXJhdGlvbkNvbnRleHQuZmluZEV4aXN0aW5nKENvbmZpZ3VyYXRpb25Db250ZXh0LmphdmE6Mjg1KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmZpbmRFeGlzdGluZyhCYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5qYXZhOjYyKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmZ1bGxVcGRhdGUoQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uamF2YToyMzIpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24udXBkYXRlKEJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmphdmE6MTk4KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmV4LkFjdGlvblV0aWwubGFtYmRhJHBlcmZvcm1EdW1iQXdhcmVVcGRhdGUkMChBY3Rpb25VdGlsLmphdmE6MTMxKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmV4LkFjdGlvblV0aWwucGVyZm9ybUR1bWJBd2FyZVVwZGF0ZShBY3Rpb25VdGlsLmphdmE6MTQ1KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb1VwZGF0ZShBY3Rpb25VcGRhdGVyLmphdmE6NjAyKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkdXBkYXRlQWN0aW9uUmVhbCQ3KEFjdGlvblVwZGF0ZXIuamF2YToxMjYpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmNhbGxBY3Rpb24oQWN0aW9uVXBkYXRlci5qYXZhOjE3MCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIudXBkYXRlQWN0aW9uUmVhbChBY3Rpb25VcGRhdGVyLmphdmE6MTI3KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkbmV3JDAoQWN0aW9uVXBkYXRlci5qYXZhOjEwOSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIudXBkYXRlKEFjdGlvblVwZGF0ZXIuamF2YTo1ODgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQzNCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjEoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0NTQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDg5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMShBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQ1NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0ODkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQ4OSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjEoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0NTQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDg5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMShBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQ1NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0ODkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YToyMzMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDEzKEFjdGlvblVwZGF0ZXIuamF2YToyODYpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDE1KEFjdGlvblVwZGF0ZXIuamF2YTozMDkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hcHBsaWNhdGlvbi5pbXBsLkFwcGxpY2F0aW9uSW1wbC50cnlSdW5SZWFkQWN0aW9uKEFwcGxpY2F0aW9uSW1wbC5qYXZhOjEwODQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDE2KEFjdGlvblVwZGF0ZXIuamF2YTozMDkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy51dGlsLlByb2dyZXNzSW5kaWNhdG9yVXRpbHMucnVuQWN0aW9uQW5kQ2FuY2VsQmVmb3JlV3JpdGUoUHJvZ3Jlc3NJbmRpY2F0b3JVdGlscy5qYXZhOjE1OCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTcoQWN0aW9uVXBkYXRlci5qYXZhOjMwNSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5sYW1iZGEkcnVuUHJvY2VzcyQyKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YToxODgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIubGFtYmRhJGV4ZWN1dGVQcm9jZXNzVW5kZXJQcm9ncmVzcyQxMihDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6NjI0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLnJlZ2lzdGVySW5kaWNhdG9yQW5kUnVuKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YTo2OTgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIuY29tcHV0ZVVuZGVyUHJvZ3Jlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjY0NikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5leGVjdXRlUHJvY2Vzc1VuZGVyUHJvZ3Jlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjYyMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuUHJvZ3Jlc3NNYW5hZ2VySW1wbC5leGVjdXRlUHJvY2Vzc1VuZGVyUHJvZ3Jlc3MoUHJvZ3Jlc3NNYW5hZ2VySW1wbC5qYXZhOjY2KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLnJ1blByb2Nlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjE3NSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLnV0aWwuQmFja2dyb3VuZFRhc2tVdGlsLnJ1blVuZGVyRGlzcG9zZUF3YXJlSW5kaWNhdG9yKEJhY2tncm91bmRUYXNrVXRpbC5qYXZhOjI3NykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTgoQWN0aW9uVXBkYXRlci5qYXZhOjMwNCkKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IuZG9SdW4oQm91bmRlZFRhc2tFeGVjdXRvci5qYXZhOjI0NikKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IuYWNjZXNzJDIwMChCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MzIpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yJDEuZXhlY3V0ZShCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MjI1KQoJYXQgY29tLmludGVsbGlqLnV0aWwuQ29uY3VycmVuY3lVdGlsLnJ1blVuZGVyVGhyZWFkTmFtZShDb25jdXJyZW5jeVV0aWwuamF2YToyMTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yJDEucnVuKEJvdW5kZWRUYXNrRXhlY3V0b3IuamF2YToyMTQpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTI4KQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYyOCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMSQxLnJ1bihFeGVjdXRvcnMuamF2YTo2NjgpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFByaXZpbGVnZWRUaHJlYWRGYWN0b3J5JDEkMS5ydW4oRXhlY3V0b3JzLmphdmE6NjY1KQoJYXQgamF2YS5iYXNlL2phdmEuc2VjdXJpdHkuQWNjZXNzQ29udHJvbGxlci5kb1ByaXZpbGVnZWQoTmF0aXZlIE1ldGhvZCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMS5ydW4oRXhlY3V0b3JzLmphdmE6NjY1KQoJYXQgamF2YS5iYXNlL2phdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjgyOSk=
- title: [auto-generated:1776339738] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Linux
- Java Version: 11.0.13
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IU-213.6461.79
- App Version: 2021.3.1
- Last Action: Unknown
- title: [auto-generated:1776339738] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Linux
- Java Version: 11.0.13
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IU-213.6461.79
- App Version: 2021.3.1
- Last Action: Unknown
- title: [auto-generated:1776339738] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Linux
- Java Version: 11.0.13
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IU-213.6461.79
- App Version: 2021.3.1
- Last Action: Unknown
- title: [auto-generated:1776339738] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Linux
- Java Version: 11.0.13
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IU-213.6461.79
- App Version: 2021.3.1
- Last Action: Unknown
- title: [auto-generated:1776339738] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Linux
- Java Version: 11.0.13
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IU-213.6461.79
- App Version: 2021.3.1
- Last Action: Unknown
- title: [auto-generated:1776339738] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Windows 10
- Java Version: 11.0.13
- App Name: PyCharm
- App Full Name: PyCharm
- App Version name: PyCharm
- Is EAP: false
- App Build: PY-213.6461.77
- App Version: 2021.3.1
- Last Action: Unknown
- title: [auto-generated:1776339738] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Mac OS X
- Java Version: 11.0.13
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IC-213.6461.79
- App Version: 2021.3.1
- Last Action: Unknown
- title: [auto-generated:1776339738] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Mac OS X
- Java Version: 11.0.13
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IC-213.6461.79
- App Version: 2021.3.1
- Last Action: Unknown
- title: [auto-generated:1776339738] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Mac OS X
- Java Version: 11.0.13
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IC-213.6461.79
- App Version: 2021.3.1
- Last Action: Unknown
- title: [auto-generated:1776339738] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Mac OS X
- Java Version: 11.0.13
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IC-213.6461.79
- App Version: 2021.3.1
- Last Action: Unknown
- title: [auto-generated:1776339738] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Mac OS X
- Java Version: 11.0.13
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IC-213.6461.79
- App Version: 2021.3.1
- Last Action: Unknown
- title: [auto-generated:1776339738] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Windows 10
- Java Version: 11.0.13
- App Name: PyCharm
- App Full Name: PyCharm
- App Version name: PyCharm
- Is EAP: false
- App Build: PY-213.6461.77
- App Version: 2021.3.1
- Last Action: Unknown
- title: [auto-generated:1776339738] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Mac OS X
- Java Version: 11.0.13
- App Name: PyCharm
- App Full Name: PyCharm
- App Version name: PyCharm
- Is EAP: false
- App Build: PY-213.6461.77
- App Version: 2021.3.1
- Last Action: Unknown
- title: [auto-generated:1776339738] null
- Julia Version: 1.7.1
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Windows 10
- Java Version: 11.0.13
- App Name: PyCharm
- App Full Name: PyCharm
- App Version name: PyCharm
- Is EAP: false
- App Build: PC-213.6461.77
- App Version: 2021.3.1
- Last Action: Unknown
- title: [auto-generated:1776339738] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Linux
- Java Version: 11.0.13
- App Name: PyCharm
- App Full Name: PyCharm
- App Version name: PyCharm
- Is EAP: false
- App Build: PY-213.6461.77
- App Version: 2021.3.1
- Last Action: Unknown
- Attachment induced.txt: Rm9sbG93aW5nIGV4Y2VwdGlvbnMgaGFwcGVuZWQgc29vbiBhZnRlciB0aGlzIG9uZSwgbW9zdCBwcm9iYWJseSB0aGV5IGFyZSBpbmR1Y2VkLgoKCjIwMjItMDEtMjdUMTg6MTg6MDQuMjkyCmNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpbkV4Y2VwdGlvbjogVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgbWV0aG9kICdnZXRJZCcgaXMgZGVwcmVjYXRlZCwgeW91IG5lZWQgdG8gb3ZlcnJpZGUgaXQgaW4gJ2NsYXNzIG9yZy5pY2UxMDAwLmp1bGlhLmxhbmcuZXhlY3V0aW9uLkp1bGlhUnVuQ29uZmlndXJhdGlvbkZhY3RvcnknLiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBkZWxlZ2F0ZXMgdG8gJ2dldE5hbWUnIHdoaWNoIG1heSBiZSBsb2NhbGl6ZWQsIGJ1dCByZXR1cm4gdmFsdWUgb2YgdGhpcyBtZXRob2QgbXVzdCBub3QgZGVwZW5kIG9uIGN1cnJlbnQgbG9jYWxpemF0aW9uLiBbUGx1Z2luOiBvcmcuaWNlMTAwMC5qdWxpYV0KCWF0IGNvbS5pbnRlbGxpai5pZGUucGx1Z2lucy5QbHVnaW5NYW5hZ2VyQ29yZS5jcmVhdGVQbHVnaW5FeGNlcHRpb24oUGx1Z2luTWFuYWdlckNvcmUuamF2YToyNzApCglhdCBjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5Qcm9ibGVtUmVwb3J0ZXJJbXBsLmNyZWF0ZVBsdWdpbkV4Y2VwdGlvbkJ5Q2xhc3MoUGx1Z2luUHJvYmxlbVJlcG9ydGVySW1wbC5qYXZhOjEyKQoJYXQgY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luRXhjZXB0aW9uLmNyZWF0ZUJ5Q2xhc3MoUGx1Z2luRXhjZXB0aW9uLmphdmE6ODMpCglhdCBjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5FeGNlcHRpb24ucmVwb3J0RGVwcmVjYXRlZERlZmF1bHQoUGx1Z2luRXhjZXB0aW9uLmphdmE6MTEwKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5jb25maWd1cmF0aW9ucy5Db25maWd1cmF0aW9uRmFjdG9yeS5nZXRJZChDb25maWd1cmF0aW9uRmFjdG9yeS5qYXZhOjc1KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bm5lckFuZENvbmZpZ3VyYXRpb25TZXR0aW5nc0ltcGwuZ2V0TmFtZShSdW5uZXJBbmRDb25maWd1cmF0aW9uU2V0dGluZ3NJbXBsLmt0OjE1NCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5Db25maWd1cmF0aW9uU2NoZW1lTWFuYWdlci5nZXRTY2hlbWVLZXkoUnVuQ29uZmlndXJhdGlvblNjaGVtZU1hbmFnZXIua3Q6MzcpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuQ29uZmlndXJhdGlvblNjaGVtZU1hbmFnZXIuZ2V0U2NoZW1lS2V5KFJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmt0OjIxKQoJYXQgY29tLmludGVsbGlqLmNvbmZpZ3VyYXRpb25TdG9yZS5zY2hlbWVNYW5hZ2VyLlNjaGVtZUxpc3RNYW5hZ2VyLmFkZFNjaGVtZShTY2hlbWVMaXN0TWFuYWdlci5rdDozNSkKCWF0IGNvbS5pbnRlbGxpai5jb25maWd1cmF0aW9uU3RvcmUuc2NoZW1lTWFuYWdlci5TY2hlbWVNYW5hZ2VySW1wbC5hZGRTY2hlbWUoU2NoZW1lTWFuYWdlckltcGwua3Q6NjE1KQoJYXQgY29tLmludGVsbGlqLmNvbmZpZ3VyYXRpb25TdG9yZS5zY2hlbWVNYW5hZ2VyLlNjaGVtZU1hbmFnZXJJbXBsLmFkZFNjaGVtZShTY2hlbWVNYW5hZ2VySW1wbC5rdDo0MikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLm9wdGlvbnMuU2NoZW1lTWFuYWdlci5hZGRTY2hlbWUoU2NoZW1lTWFuYWdlci5rdDozOCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5NYW5hZ2VySW1wbC5nZXRDb25maWd1cmF0aW9uVGVtcGxhdGUoUnVuTWFuYWdlckltcGwua3Q6MzM3KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bk1hbmFnZXJJbXBsLmNyZWF0ZUNvbmZpZ3VyYXRpb24oUnVuTWFuYWdlckltcGwua3Q6MjYxKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5jbG9uZVRlbXBsYXRlQ29uZmlndXJhdGlvblN0YXRpYyhSdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuamF2YToyNTkpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmNsb25lVGVtcGxhdGVDb25maWd1cmF0aW9uKFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjI0OSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuY3JlYXRlQ29uZmlndXJhdGlvbkZyb21Db250ZXh0KFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjk4KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5maW5kT3JDcmVhdGVDb25maWd1cmF0aW9uRnJvbUNvbnRleHQoUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmphdmE6MTk5KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlByZWZlcnJlZFByb2R1Y2VyRmluZC5kb0dldENvbmZpZ3VyYXRpb25zRnJvbUNvbnRleHQoUHJlZmVycmVkUHJvZHVjZXJGaW5kLmphdmE6MTEwKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlByZWZlcnJlZFByb2R1Y2VyRmluZC5nZXRDb25maWd1cmF0aW9uc0Zyb21Db250ZXh0KFByZWZlcnJlZFByb2R1Y2VyRmluZC5qYXZhOjkzKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkNvbmZpZ3VyYXRpb25Db250ZXh0LmdldENvbmZpZ3VyYXRpb25zRnJvbUNvbnRleHQoQ29uZmlndXJhdGlvbkNvbnRleHQuamF2YTo0MTQpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQ29uZmlndXJhdGlvbkNvbnRleHQuZmluZFByZWZlcnJlZENvbmZpZ3VyYXRpb24oQ29uZmlndXJhdGlvbkNvbnRleHQuamF2YToyOTIpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQ29uZmlndXJhdGlvbkNvbnRleHQuZmluZEV4aXN0aW5nKENvbmZpZ3VyYXRpb25Db250ZXh0LmphdmE6Mjg1KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmZpbmRFeGlzdGluZyhCYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5qYXZhOjYyKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmZ1bGxVcGRhdGUoQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uamF2YToyMzIpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24udXBkYXRlKEJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmphdmE6MTk4KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmV4LkFjdGlvblV0aWwubGFtYmRhJHBlcmZvcm1EdW1iQXdhcmVVcGRhdGUkMChBY3Rpb25VdGlsLmphdmE6MTMxKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmV4LkFjdGlvblV0aWwucGVyZm9ybUR1bWJBd2FyZVVwZGF0ZShBY3Rpb25VdGlsLmphdmE6MTQ1KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb1VwZGF0ZShBY3Rpb25VcGRhdGVyLmphdmE6NjAyKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkdXBkYXRlQWN0aW9uUmVhbCQ3KEFjdGlvblVwZGF0ZXIuamF2YToxMjYpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmNhbGxBY3Rpb24oQWN0aW9uVXBkYXRlci5qYXZhOjE3MCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIudXBkYXRlQWN0aW9uUmVhbChBY3Rpb25VcGRhdGVyLmphdmE6MTI3KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkbmV3JDAoQWN0aW9uVXBkYXRlci5qYXZhOjEwOSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIudXBkYXRlKEFjdGlvblVwZGF0ZXIuamF2YTo1ODgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQzNCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjEoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0NTQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDg5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMShBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQ1NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0ODkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQ4OSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjEoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0NTQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDg5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMShBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQ1NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0ODkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YToyMzMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDEzKEFjdGlvblVwZGF0ZXIuamF2YToyODYpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDE1KEFjdGlvblVwZGF0ZXIuamF2YTozMDkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hcHBsaWNhdGlvbi5pbXBsLkFwcGxpY2F0aW9uSW1wbC50cnlSdW5SZWFkQWN0aW9uKEFwcGxpY2F0aW9uSW1wbC5qYXZhOjEwODQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDE2KEFjdGlvblVwZGF0ZXIuamF2YTozMDkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy51dGlsLlByb2dyZXNzSW5kaWNhdG9yVXRpbHMucnVuQWN0aW9uQW5kQ2FuY2VsQmVmb3JlV3JpdGUoUHJvZ3Jlc3NJbmRpY2F0b3JVdGlscy5qYXZhOjE1OCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTcoQWN0aW9uVXBkYXRlci5qYXZhOjMwNSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5sYW1iZGEkcnVuUHJvY2VzcyQyKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YToxODgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIubGFtYmRhJGV4ZWN1dGVQcm9jZXNzVW5kZXJQcm9ncmVzcyQxMihDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6NjI0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLnJlZ2lzdGVySW5kaWNhdG9yQW5kUnVuKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YTo2OTgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIuY29tcHV0ZVVuZGVyUHJvZ3Jlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjY0NikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5leGVjdXRlUHJvY2Vzc1VuZGVyUHJvZ3Jlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjYyMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuUHJvZ3Jlc3NNYW5hZ2VySW1wbC5leGVjdXRlUHJvY2Vzc1VuZGVyUHJvZ3Jlc3MoUHJvZ3Jlc3NNYW5hZ2VySW1wbC5qYXZhOjY2KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLnJ1blByb2Nlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjE3NSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLnV0aWwuQmFja2dyb3VuZFRhc2tVdGlsLnJ1blVuZGVyRGlzcG9zZUF3YXJlSW5kaWNhdG9yKEJhY2tncm91bmRUYXNrVXRpbC5qYXZhOjI3NykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTgoQWN0aW9uVXBkYXRlci5qYXZhOjMwNCkKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IuZG9SdW4oQm91bmRlZFRhc2tFeGVjdXRvci5qYXZhOjI0NikKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IuYWNjZXNzJDIwMChCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MzIpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yJDEuZXhlY3V0ZShCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MjI1KQoJYXQgY29tLmludGVsbGlqLnV0aWwuQ29uY3VycmVuY3lVdGlsLnJ1blVuZGVyVGhyZWFkTmFtZShDb25jdXJyZW5jeVV0aWwuamF2YToyMTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yJDEucnVuKEJvdW5kZWRUYXNrRXhlY3V0b3IuamF2YToyMTQpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTI4KQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYyOCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMSQxLnJ1bihFeGVjdXRvcnMuamF2YTo2NjgpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFByaXZpbGVnZWRUaHJlYWRGYWN0b3J5JDEkMS5ydW4oRXhlY3V0b3JzLmphdmE6NjY1KQoJYXQgamF2YS5iYXNlL2phdmEuc2VjdXJpdHkuQWNjZXNzQ29udHJvbGxlci5kb1ByaXZpbGVnZWQoTmF0aXZlIE1ldGhvZCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMS5ydW4oRXhlY3V0b3JzLmphdmE6NjY1KQoJYXQgamF2YS5iYXNlL2phdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjgyOSkKCgoyMDIyLTAxLTI3VDE4OjE4OjA0LjMxMQpjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5FeGNlcHRpb246IFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIG1ldGhvZCAnZ2V0SWQnIGlzIGRlcHJlY2F0ZWQsIHlvdSBuZWVkIHRvIG92ZXJyaWRlIGl0IGluICdjbGFzcyBvcmcuaWNlMTAwMC5qdWxpYS5sYW5nLmV4ZWN1dGlvbi5KdWxpYVJ1bkNvbmZpZ3VyYXRpb25GYWN0b3J5Jy4gVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gZGVsZWdhdGVzIHRvICdnZXROYW1lJyB3aGljaCBtYXkgYmUgbG9jYWxpemVkLCBidXQgcmV0dXJuIHZhbHVlIG9mIHRoaXMgbWV0aG9kIG11c3Qgbm90IGRlcGVuZCBvbiBjdXJyZW50IGxvY2FsaXphdGlvbi4gW1BsdWdpbjogb3JnLmljZTEwMDAuanVsaWFdCglhdCBjb20uaW50ZWxsaWouaWRlLnBsdWdpbnMuUGx1Z2luTWFuYWdlckNvcmUuY3JlYXRlUGx1Z2luRXhjZXB0aW9uKFBsdWdpbk1hbmFnZXJDb3JlLmphdmE6MjcwKQoJYXQgY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luUHJvYmxlbVJlcG9ydGVySW1wbC5jcmVhdGVQbHVnaW5FeGNlcHRpb25CeUNsYXNzKFBsdWdpblByb2JsZW1SZXBvcnRlckltcGwuamF2YToxMikKCWF0IGNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpbkV4Y2VwdGlvbi5jcmVhdGVCeUNsYXNzKFBsdWdpbkV4Y2VwdGlvbi5qYXZhOjgzKQoJYXQgY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luRXhjZXB0aW9uLnJlcG9ydERlcHJlY2F0ZWREZWZhdWx0KFBsdWdpbkV4Y2VwdGlvbi5qYXZhOjExMCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uY29uZmlndXJhdGlvbnMuQ29uZmlndXJhdGlvbkZhY3RvcnkuZ2V0SWQoQ29uZmlndXJhdGlvbkZhY3RvcnkuamF2YTo3NSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5uZXJBbmRDb25maWd1cmF0aW9uU2V0dGluZ3NJbXBsLmdldE5hbWUoUnVubmVyQW5kQ29uZmlndXJhdGlvblNldHRpbmdzSW1wbC5rdDoxNTQpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuQ29uZmlndXJhdGlvblNjaGVtZU1hbmFnZXIuZ2V0U2NoZW1lS2V5KFJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmt0OjM3KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmdldFNjaGVtZUtleShSdW5Db25maWd1cmF0aW9uU2NoZW1lTWFuYWdlci5rdDoyMSkKCWF0IGNvbS5pbnRlbGxpai5jb25maWd1cmF0aW9uU3RvcmUuc2NoZW1lTWFuYWdlci5TY2hlbWVNYW5hZ2VyQmFzZS5wcm9jZXNzUGVuZGluZ0N1cnJlbnRTY2hlbWVOYW1lJGludGVsbGlqX3BsYXRmb3JtX2NvbmZpZ3VyYXRpb25TdG9yZV9pbXBsKFNjaGVtZU1hbmFnZXJCYXNlLmt0OjIzKQoJYXQgY29tLmludGVsbGlqLmNvbmZpZ3VyYXRpb25TdG9yZS5zY2hlbWVNYW5hZ2VyLlNjaGVtZUxpc3RNYW5hZ2VyLmFkZFNjaGVtZShTY2hlbWVMaXN0TWFuYWdlci5rdDo3OCkKCWF0IGNvbS5pbnRlbGxpai5jb25maWd1cmF0aW9uU3RvcmUuc2NoZW1lTWFuYWdlci5TY2hlbWVNYW5hZ2VySW1wbC5hZGRTY2hlbWUoU2NoZW1lTWFuYWdlckltcGwua3Q6NjE1KQoJYXQgY29tLmludGVsbGlqLmNvbmZpZ3VyYXRpb25TdG9yZS5zY2hlbWVNYW5hZ2VyLlNjaGVtZU1hbmFnZXJJbXBsLmFkZFNjaGVtZShTY2hlbWVNYW5hZ2VySW1wbC5rdDo0MikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLm9wdGlvbnMuU2NoZW1lTWFuYWdlci5hZGRTY2hlbWUoU2NoZW1lTWFuYWdlci5rdDozOCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5NYW5hZ2VySW1wbC5nZXRDb25maWd1cmF0aW9uVGVtcGxhdGUoUnVuTWFuYWdlckltcGwua3Q6MzM3KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bk1hbmFnZXJJbXBsLmNyZWF0ZUNvbmZpZ3VyYXRpb24oUnVuTWFuYWdlckltcGwua3Q6MjYxKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5jbG9uZVRlbXBsYXRlQ29uZmlndXJhdGlvblN0YXRpYyhSdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuamF2YToyNTkpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmNsb25lVGVtcGxhdGVDb25maWd1cmF0aW9uKFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjI0OSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuY3JlYXRlQ29uZmlndXJhdGlvbkZyb21Db250ZXh0KFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjk4KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5maW5kT3JDcmVhdGVDb25maWd1cmF0aW9uRnJvbUNvbnRleHQoUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmphdmE6MTk5KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlByZWZlcnJlZFByb2R1Y2VyRmluZC5kb0dldENvbmZpZ3VyYXRpb25zRnJvbUNvbnRleHQoUHJlZmVycmVkUHJvZHVjZXJGaW5kLmphdmE6MTEwKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlByZWZlcnJlZFByb2R1Y2VyRmluZC5nZXRDb25maWd1cmF0aW9uc0Zyb21Db250ZXh0KFByZWZlcnJlZFByb2R1Y2VyRmluZC5qYXZhOjkzKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkNvbmZpZ3VyYXRpb25Db250ZXh0LmdldENvbmZpZ3VyYXRpb25zRnJvbUNvbnRleHQoQ29uZmlndXJhdGlvbkNvbnRleHQuamF2YTo0MTQpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQ29uZmlndXJhdGlvbkNvbnRleHQuZmluZFByZWZlcnJlZENvbmZpZ3VyYXRpb24oQ29uZmlndXJhdGlvbkNvbnRleHQuamF2YToyOTIpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQ29uZmlndXJhdGlvbkNvbnRleHQuZmluZEV4aXN0aW5nKENvbmZpZ3VyYXRpb25Db250ZXh0LmphdmE6Mjg1KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmZpbmRFeGlzdGluZyhCYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5qYXZhOjYyKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmZ1bGxVcGRhdGUoQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uamF2YToyMzIpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24udXBkYXRlKEJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmphdmE6MTk4KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmV4LkFjdGlvblV0aWwubGFtYmRhJHBlcmZvcm1EdW1iQXdhcmVVcGRhdGUkMChBY3Rpb25VdGlsLmphdmE6MTMxKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmV4LkFjdGlvblV0aWwucGVyZm9ybUR1bWJBd2FyZVVwZGF0ZShBY3Rpb25VdGlsLmphdmE6MTQ1KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb1VwZGF0ZShBY3Rpb25VcGRhdGVyLmphdmE6NjAyKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkdXBkYXRlQWN0aW9uUmVhbCQ3KEFjdGlvblVwZGF0ZXIuamF2YToxMjYpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmNhbGxBY3Rpb24oQWN0aW9uVXBkYXRlci5qYXZhOjE3MCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIudXBkYXRlQWN0aW9uUmVhbChBY3Rpb25VcGRhdGVyLmphdmE6MTI3KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkbmV3JDAoQWN0aW9uVXBkYXRlci5qYXZhOjEwOSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIudXBkYXRlKEFjdGlvblVwZGF0ZXIuamF2YTo1ODgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQzNCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjEoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0NTQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDg5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMShBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQ1NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0ODkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQ4OSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjEoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0NTQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDg5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMShBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQ1NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0ODkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YToyMzMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDEzKEFjdGlvblVwZGF0ZXIuamF2YToyODYpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDE1KEFjdGlvblVwZGF0ZXIuamF2YTozMDkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hcHBsaWNhdGlvbi5pbXBsLkFwcGxpY2F0aW9uSW1wbC50cnlSdW5SZWFkQWN0aW9uKEFwcGxpY2F0aW9uSW1wbC5qYXZhOjEwODQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDE2KEFjdGlvblVwZGF0ZXIuamF2YTozMDkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy51dGlsLlByb2dyZXNzSW5kaWNhdG9yVXRpbHMucnVuQWN0aW9uQW5kQ2FuY2VsQmVmb3JlV3JpdGUoUHJvZ3Jlc3NJbmRpY2F0b3JVdGlscy5qYXZhOjE1OCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTcoQWN0aW9uVXBkYXRlci5qYXZhOjMwNSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5sYW1iZGEkcnVuUHJvY2VzcyQyKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YToxODgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIubGFtYmRhJGV4ZWN1dGVQcm9jZXNzVW5kZXJQcm9ncmVzcyQxMihDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6NjI0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLnJlZ2lzdGVySW5kaWNhdG9yQW5kUnVuKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YTo2OTgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIuY29tcHV0ZVVuZGVyUHJvZ3Jlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjY0NikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5leGVjdXRlUHJvY2Vzc1VuZGVyUHJvZ3Jlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjYyMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuUHJvZ3Jlc3NNYW5hZ2VySW1wbC5leGVjdXRlUHJvY2Vzc1VuZGVyUHJvZ3Jlc3MoUHJvZ3Jlc3NNYW5hZ2VySW1wbC5qYXZhOjY2KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLnJ1blByb2Nlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjE3NSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLnV0aWwuQmFja2dyb3VuZFRhc2tVdGlsLnJ1blVuZGVyRGlzcG9zZUF3YXJlSW5kaWNhdG9yKEJhY2tncm91bmRUYXNrVXRpbC5qYXZhOjI3NykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTgoQWN0aW9uVXBkYXRlci5qYXZhOjMwNCkKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IuZG9SdW4oQm91bmRlZFRhc2tFeGVjdXRvci5qYXZhOjI0NikKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IuYWNjZXNzJDIwMChCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MzIpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yJDEuZXhlY3V0ZShCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MjI1KQoJYXQgY29tLmludGVsbGlqLnV0aWwuQ29uY3VycmVuY3lVdGlsLnJ1blVuZGVyVGhyZWFkTmFtZShDb25jdXJyZW5jeVV0aWwuamF2YToyMTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yJDEucnVuKEJvdW5kZWRUYXNrRXhlY3V0b3IuamF2YToyMTQpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTI4KQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYyOCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMSQxLnJ1bihFeGVjdXRvcnMuamF2YTo2NjgpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFByaXZpbGVnZWRUaHJlYWRGYWN0b3J5JDEkMS5ydW4oRXhlY3V0b3JzLmphdmE6NjY1KQoJYXQgamF2YS5iYXNlL2phdmEuc2VjdXJpdHkuQWNjZXNzQ29udHJvbGxlci5kb1ByaXZpbGVnZWQoTmF0aXZlIE1ldGhvZCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMS5ydW4oRXhlY3V0b3JzLmphdmE6NjY1KQoJYXQgamF2YS5iYXNlL2phdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjgyOSkKCgoyMDIyLTAxLTI3VDE4OjE4OjA0LjMzNQpjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5FeGNlcHRpb246IFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIG1ldGhvZCAnZ2V0SWQnIGlzIGRlcHJlY2F0ZWQsIHlvdSBuZWVkIHRvIG92ZXJyaWRlIGl0IGluICdjbGFzcyBvcmcuaWNlMTAwMC5qdWxpYS5sYW5nLmV4ZWN1dGlvbi5KdWxpYVJ1bkNvbmZpZ3VyYXRpb25GYWN0b3J5Jy4gVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gZGVsZWdhdGVzIHRvICdnZXROYW1lJyB3aGljaCBtYXkgYmUgbG9jYWxpemVkLCBidXQgcmV0dXJuIHZhbHVlIG9mIHRoaXMgbWV0aG9kIG11c3Qgbm90IGRlcGVuZCBvbiBjdXJyZW50IGxvY2FsaXphdGlvbi4gW1BsdWdpbjogb3JnLmljZTEwMDAuanVsaWFdCglhdCBjb20uaW50ZWxsaWouaWRlLnBsdWdpbnMuUGx1Z2luTWFuYWdlckNvcmUuY3JlYXRlUGx1Z2luRXhjZXB0aW9uKFBsdWdpbk1hbmFnZXJDb3JlLmphdmE6MjcwKQoJYXQgY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luUHJvYmxlbVJlcG9ydGVySW1wbC5jcmVhdGVQbHVnaW5FeGNlcHRpb25CeUNsYXNzKFBsdWdpblByb2JsZW1SZXBvcnRlckltcGwuamF2YToxMikKCWF0IGNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpbkV4Y2VwdGlvbi5jcmVhdGVCeUNsYXNzKFBsdWdpbkV4Y2VwdGlvbi5qYXZhOjgzKQoJYXQgY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luRXhjZXB0aW9uLnJlcG9ydERlcHJlY2F0ZWREZWZhdWx0KFBsdWdpbkV4Y2VwdGlvbi5qYXZhOjExMCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uY29uZmlndXJhdGlvbnMuQ29uZmlndXJhdGlvbkZhY3RvcnkuZ2V0SWQoQ29uZmlndXJhdGlvbkZhY3RvcnkuamF2YTo3NSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5uZXJBbmRDb25maWd1cmF0aW9uU2V0dGluZ3NJbXBsLmdldE5hbWUoUnVubmVyQW5kQ29uZmlndXJhdGlvblNldHRpbmdzSW1wbC5rdDoxNTQpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuQ29uZmlndXJhdGlvblNjaGVtZU1hbmFnZXIuZ2V0U2NoZW1lS2V5KFJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmt0OjM3KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmdldFNjaGVtZUtleShSdW5Db25maWd1cmF0aW9uU2NoZW1lTWFuYWdlci5rdDoyMSkKCWF0IGNvbS5pbnRlbGxpai5jb25maWd1cmF0aW9uU3RvcmUuc2NoZW1lTWFuYWdlci5TY2hlbWVMaXN0TWFuYWdlci5hZGRTY2hlbWUoU2NoZW1lTGlzdE1hbmFnZXIua3Q6MzUpCglhdCBjb20uaW50ZWxsaWouY29uZmlndXJhdGlvblN0b3JlLnNjaGVtZU1hbmFnZXIuU2NoZW1lTWFuYWdlckltcGwuYWRkU2NoZW1lKFNjaGVtZU1hbmFnZXJJbXBsLmt0OjYxNSkKCWF0IGNvbS5pbnRlbGxpai5jb25maWd1cmF0aW9uU3RvcmUuc2NoZW1lTWFuYWdlci5TY2hlbWVNYW5hZ2VySW1wbC5hZGRTY2hlbWUoU2NoZW1lTWFuYWdlckltcGwua3Q6NDIpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5vcHRpb25zLlNjaGVtZU1hbmFnZXIuYWRkU2NoZW1lKFNjaGVtZU1hbmFnZXIua3Q6MzgpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuTWFuYWdlckltcGwuZ2V0Q29uZmlndXJhdGlvblRlbXBsYXRlKFJ1bk1hbmFnZXJJbXBsLmt0OjMzNykKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5NYW5hZ2VySW1wbC5jcmVhdGVDb25maWd1cmF0aW9uKFJ1bk1hbmFnZXJJbXBsLmt0OjI2MSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuY2xvbmVUZW1wbGF0ZUNvbmZpZ3VyYXRpb25TdGF0aWMoUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmphdmE6MjU5KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5jbG9uZVRlbXBsYXRlQ29uZmlndXJhdGlvbihSdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuamF2YToyNDkpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmNyZWF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ29udGV4dChSdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuamF2YTo5OCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuZmluZE9yQ3JlYXRlQ29uZmlndXJhdGlvbkZyb21Db250ZXh0KFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjE5OSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5QcmVmZXJyZWRQcm9kdWNlckZpbmQuZG9HZXRDb25maWd1cmF0aW9uc0Zyb21Db250ZXh0KFByZWZlcnJlZFByb2R1Y2VyRmluZC5qYXZhOjExMCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5QcmVmZXJyZWRQcm9kdWNlckZpbmQuZ2V0Q29uZmlndXJhdGlvbnNGcm9tQ29udGV4dChQcmVmZXJyZWRQcm9kdWNlckZpbmQuamF2YTo5MykKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5Db25maWd1cmF0aW9uQ29udGV4dC5nZXRDb25maWd1cmF0aW9uc0Zyb21Db250ZXh0KENvbmZpZ3VyYXRpb25Db250ZXh0LmphdmE6NDE0KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkNvbmZpZ3VyYXRpb25Db250ZXh0LmZpbmRQcmVmZXJyZWRDb25maWd1cmF0aW9uKENvbmZpZ3VyYXRpb25Db250ZXh0LmphdmE6MjkyKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkNvbmZpZ3VyYXRpb25Db250ZXh0LmZpbmRFeGlzdGluZyhDb25maWd1cmF0aW9uQ29udGV4dC5qYXZhOjI4NSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5CYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5maW5kRXhpc3RpbmcoQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uamF2YTo2MikKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5CYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5mdWxsVXBkYXRlKEJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmphdmE6MjMyKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLnVwZGF0ZShCYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5qYXZhOjE5OCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5leC5BY3Rpb25VdGlsLmxhbWJkYSRwZXJmb3JtRHVtYkF3YXJlVXBkYXRlJDAoQWN0aW9uVXRpbC5qYXZhOjEzMSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5leC5BY3Rpb25VdGlsLnBlcmZvcm1EdW1iQXdhcmVVcGRhdGUoQWN0aW9uVXRpbC5qYXZhOjE0NSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9VcGRhdGUoQWN0aW9uVXBkYXRlci5qYXZhOjYwMikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJHVwZGF0ZUFjdGlvblJlYWwkNyhBY3Rpb25VcGRhdGVyLmphdmE6MTI2KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5jYWxsQWN0aW9uKEFjdGlvblVwZGF0ZXIuamF2YToxNzApCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLnVwZGF0ZUFjdGlvblJlYWwoQWN0aW9uVXBkYXRlci5qYXZhOjEyNykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJG5ldyQwKEFjdGlvblVwZGF0ZXIuamF2YToxMDkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLnVwZGF0ZShBY3Rpb25VcGRhdGVyLmphdmE6NTg4KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0MzQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQ4OSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjEoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0NTQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDg5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMShBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQ1NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0ODkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQ4OSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjEoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0NTQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDg5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMShBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQ1NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6MjMzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZXhwYW5kQWN0aW9uR3JvdXBBc3luYyQxMyhBY3Rpb25VcGRhdGVyLmphdmE6Mjg2KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZXhwYW5kQWN0aW9uR3JvdXBBc3luYyQxNShBY3Rpb25VcGRhdGVyLmphdmE6MzA5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYXBwbGljYXRpb24uaW1wbC5BcHBsaWNhdGlvbkltcGwudHJ5UnVuUmVhZEFjdGlvbihBcHBsaWNhdGlvbkltcGwuamF2YToxMDg0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZXhwYW5kQWN0aW9uR3JvdXBBc3luYyQxNihBY3Rpb25VcGRhdGVyLmphdmE6MzA5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MudXRpbC5Qcm9ncmVzc0luZGljYXRvclV0aWxzLnJ1bkFjdGlvbkFuZENhbmNlbEJlZm9yZVdyaXRlKFByb2dyZXNzSW5kaWNhdG9yVXRpbHMuamF2YToxNTgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDE3KEFjdGlvblVwZGF0ZXIuamF2YTozMDUpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIubGFtYmRhJHJ1blByb2Nlc3MkMihDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6MTg4KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLmxhbWJkYSRleGVjdXRlUHJvY2Vzc1VuZGVyUHJvZ3Jlc3MkMTIoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjYyNCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5yZWdpc3RlckluZGljYXRvckFuZFJ1bihDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6Njk4KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLmNvbXB1dGVVbmRlclByb2dyZXNzKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YTo2NDYpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIuZXhlY3V0ZVByb2Nlc3NVbmRlclByb2dyZXNzKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YTo2MjMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLlByb2dyZXNzTWFuYWdlckltcGwuZXhlY3V0ZVByb2Nlc3NVbmRlclByb2dyZXNzKFByb2dyZXNzTWFuYWdlckltcGwuamF2YTo2NikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5ydW5Qcm9jZXNzKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YToxNzUpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy51dGlsLkJhY2tncm91bmRUYXNrVXRpbC5ydW5VbmRlckRpc3Bvc2VBd2FyZUluZGljYXRvcihCYWNrZ3JvdW5kVGFza1V0aWwuamF2YToyNzcpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDE4KEFjdGlvblVwZGF0ZXIuamF2YTozMDQpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yLmRvUnVuKEJvdW5kZWRUYXNrRXhlY3V0b3IuamF2YToyNDYpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yLmFjY2VzcyQyMDAoQm91bmRlZFRhc2tFeGVjdXRvci5qYXZhOjMyKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29uY3VycmVuY3kuQm91bmRlZFRhc2tFeGVjdXRvciQxLmV4ZWN1dGUoQm91bmRlZFRhc2tFeGVjdXRvci5qYXZhOjIyNSkKCWF0IGNvbS5pbnRlbGxpai51dGlsLkNvbmN1cnJlbmN5VXRpbC5ydW5VbmRlclRocmVhZE5hbWUoQ29uY3VycmVuY3lVdGlsLmphdmE6MjEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29uY3VycmVuY3kuQm91bmRlZFRhc2tFeGVjdXRvciQxLnJ1bihCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MjE0KQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTEyOCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bihUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2MjgpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFByaXZpbGVnZWRUaHJlYWRGYWN0b3J5JDEkMS5ydW4oRXhlY3V0b3JzLmphdmE6NjY4KQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LkV4ZWN1dG9ycyRQcml2aWxlZ2VkVGhyZWFkRmFjdG9yeSQxJDEucnVuKEV4ZWN1dG9ycy5qYXZhOjY2NSkKCWF0IGphdmEuYmFzZS9qYXZhLnNlY3VyaXR5LkFjY2Vzc0NvbnRyb2xsZXIuZG9Qcml2aWxlZ2VkKE5hdGl2ZSBNZXRob2QpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFByaXZpbGVnZWRUaHJlYWRGYWN0b3J5JDEucnVuKEV4ZWN1dG9ycy5qYXZhOjY2NSkKCWF0IGphdmEuYmFzZS9qYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo4MjkpCgoKMjAyMi0wMS0yN1QxODoxODowNC40NjEKY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luRXhjZXB0aW9uOiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBtZXRob2QgJ2dldElkJyBpcyBkZXByZWNhdGVkLCB5b3UgbmVlZCB0byBvdmVycmlkZSBpdCBpbiAnY2xhc3Mgb3JnLmljZTEwMDAuanVsaWEubGFuZy5leGVjdXRpb24uSnVsaWFSdW5Db25maWd1cmF0aW9uRmFjdG9yeScuIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGRlbGVnYXRlcyB0byAnZ2V0TmFtZScgd2hpY2ggbWF5IGJlIGxvY2FsaXplZCwgYnV0IHJldHVybiB2YWx1ZSBvZiB0aGlzIG1ldGhvZCBtdXN0IG5vdCBkZXBlbmQgb24gY3VycmVudCBsb2NhbGl6YXRpb24uIFtQbHVnaW46IG9yZy5pY2UxMDAwLmp1bGlhXQoJYXQgY29tLmludGVsbGlqLmlkZS5wbHVnaW5zLlBsdWdpbk1hbmFnZXJDb3JlLmNyZWF0ZVBsdWdpbkV4Y2VwdGlvbihQbHVnaW5NYW5hZ2VyQ29yZS5qYXZhOjI3MCkKCWF0IGNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpblByb2JsZW1SZXBvcnRlckltcGwuY3JlYXRlUGx1Z2luRXhjZXB0aW9uQnlDbGFzcyhQbHVnaW5Qcm9ibGVtUmVwb3J0ZXJJbXBsLmphdmE6MTIpCglhdCBjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5FeGNlcHRpb24uY3JlYXRlQnlDbGFzcyhQbHVnaW5FeGNlcHRpb24uamF2YTo4MykKCWF0IGNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpbkV4Y2VwdGlvbi5yZXBvcnREZXByZWNhdGVkRGVmYXVsdChQbHVnaW5FeGNlcHRpb24uamF2YToxMTApCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmNvbmZpZ3VyYXRpb25zLkNvbmZpZ3VyYXRpb25GYWN0b3J5LmdldElkKENvbmZpZ3VyYXRpb25GYWN0b3J5LmphdmE6NzUpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVubmVyQW5kQ29uZmlndXJhdGlvblNldHRpbmdzSW1wbC5nZXROYW1lKFJ1bm5lckFuZENvbmZpZ3VyYXRpb25TZXR0aW5nc0ltcGwua3Q6MTU0KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmdldFNjaGVtZUtleShSdW5Db25maWd1cmF0aW9uU2NoZW1lTWFuYWdlci5rdDozNykKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5Db25maWd1cmF0aW9uU2NoZW1lTWFuYWdlci5nZXRTY2hlbWVLZXkoUnVuQ29uZmlndXJhdGlvblNjaGVtZU1hbmFnZXIua3Q6MjEpCglhdCBjb20uaW50ZWxsaWouY29uZmlndXJhdGlvblN0b3JlLnNjaGVtZU1hbmFnZXIuU2NoZW1lTGlzdE1hbmFnZXIuYWRkU2NoZW1lKFNjaGVtZUxpc3RNYW5hZ2VyLmt0OjM1KQoJYXQgY29tLmludGVsbGlqLmNvbmZpZ3VyYXRpb25TdG9yZS5zY2hlbWVNYW5hZ2VyLlNjaGVtZU1hbmFnZXJJbXBsLmFkZFNjaGVtZShTY2hlbWVNYW5hZ2VySW1wbC5rdDo2MTUpCglhdCBjb20uaW50ZWxsaWouY29uZmlndXJhdGlvblN0b3JlLnNjaGVtZU1hbmFnZXIuU2NoZW1lTWFuYWdlckltcGwuYWRkU2NoZW1lKFNjaGVtZU1hbmFnZXJJbXBsLmt0OjQyKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkub3B0aW9ucy5TY2hlbWVNYW5hZ2VyLmFkZFNjaGVtZShTY2hlbWVNYW5hZ2VyLmt0OjM4KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bk1hbmFnZXJJbXBsLmdldENvbmZpZ3VyYXRpb25UZW1wbGF0ZShSdW5NYW5hZ2VySW1wbC5rdDozMzcpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuTWFuYWdlckltcGwuY3JlYXRlQ29uZmlndXJhdGlvbihSdW5NYW5hZ2VySW1wbC5rdDoyNjEpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmNsb25lVGVtcGxhdGVDb25maWd1cmF0aW9uU3RhdGljKFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjI1OSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuY2xvbmVUZW1wbGF0ZUNvbmZpZ3VyYXRpb24oUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmphdmE6MjQ5KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5jcmVhdGVDb25maWd1cmF0aW9uRnJvbUNvbnRleHQoUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmphdmE6OTgpCglhdCBjb20uaW50ZWxsaWouZGF0YWJhc2UuY29uc29sZS5ydW5Db25maWd1cmF0aW9uLkRhdGFiYXNlU2NyaXB0UnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmNyZWF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ29udGV4dChEYXRhYmFzZVNjcmlwdFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5rdDoyOCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuZmluZE9yQ3JlYXRlQ29uZmlndXJhdGlvbkZyb21Db250ZXh0KFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjE5OSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5QcmVmZXJyZWRQcm9kdWNlckZpbmQuZG9HZXRDb25maWd1cmF0aW9uc0Zyb21Db250ZXh0KFByZWZlcnJlZFByb2R1Y2VyRmluZC5qYXZhOjExMCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5QcmVmZXJyZWRQcm9kdWNlckZpbmQuZ2V0Q29uZmlndXJhdGlvbnNGcm9tQ29udGV4dChQcmVmZXJyZWRQcm9kdWNlckZpbmQuamF2YTo5MykKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5Db25maWd1cmF0aW9uQ29udGV4dC5nZXRDb25maWd1cmF0aW9uc0Zyb21Db250ZXh0KENvbmZpZ3VyYXRpb25Db250ZXh0LmphdmE6NDE0KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkNvbmZpZ3VyYXRpb25Db250ZXh0LmZpbmRQcmVmZXJyZWRDb25maWd1cmF0aW9uKENvbmZpZ3VyYXRpb25Db250ZXh0LmphdmE6MjkyKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkNvbmZpZ3VyYXRpb25Db250ZXh0LmZpbmRFeGlzdGluZyhDb25maWd1cmF0aW9uQ29udGV4dC5qYXZhOjI4NSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5CYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5maW5kRXhpc3RpbmcoQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uamF2YTo2MikKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5CYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5mdWxsVXBkYXRlKEJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmphdmE6MjMyKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLnVwZGF0ZShCYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5qYXZhOjE5OCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5leC5BY3Rpb25VdGlsLmxhbWJkYSRwZXJmb3JtRHVtYkF3YXJlVXBkYXRlJDAoQWN0aW9uVXRpbC5qYXZhOjEzMSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5leC5BY3Rpb25VdGlsLnBlcmZvcm1EdW1iQXdhcmVVcGRhdGUoQWN0aW9uVXRpbC5qYXZhOjE0NSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9VcGRhdGUoQWN0aW9uVXBkYXRlci5qYXZhOjYwMikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJHVwZGF0ZUFjdGlvblJlYWwkNyhBY3Rpb25VcGRhdGVyLmphdmE6MTI2KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5jYWxsQWN0aW9uKEFjdGlvblVwZGF0ZXIuamF2YToxNzApCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLnVwZGF0ZUFjdGlvblJlYWwoQWN0aW9uVXBkYXRlci5qYXZhOjEyNykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJG5ldyQwKEFjdGlvblVwZGF0ZXIuamF2YToxMDkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLnVwZGF0ZShBY3Rpb25VcGRhdGVyLmphdmE6NTg4KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0MzQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQ4OSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjEoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0NTQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDg5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMShBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQ1NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0ODkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQ4OSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjEoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0NTQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDg5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMShBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQ1NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6MjMzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZXhwYW5kQWN0aW9uR3JvdXBBc3luYyQxMyhBY3Rpb25VcGRhdGVyLmphdmE6Mjg2KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZXhwYW5kQWN0aW9uR3JvdXBBc3luYyQxNShBY3Rpb25VcGRhdGVyLmphdmE6MzA5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYXBwbGljYXRpb24uaW1wbC5BcHBsaWNhdGlvbkltcGwudHJ5UnVuUmVhZEFjdGlvbihBcHBsaWNhdGlvbkltcGwuamF2YToxMDg0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZXhwYW5kQWN0aW9uR3JvdXBBc3luYyQxNihBY3Rpb25VcGRhdGVyLmphdmE6MzA5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MudXRpbC5Qcm9ncmVzc0luZGljYXRvclV0aWxzLnJ1bkFjdGlvbkFuZENhbmNlbEJlZm9yZVdyaXRlKFByb2dyZXNzSW5kaWNhdG9yVXRpbHMuamF2YToxNTgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDE3KEFjdGlvblVwZGF0ZXIuamF2YTozMDUpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIubGFtYmRhJHJ1blByb2Nlc3MkMihDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6MTg4KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLmxhbWJkYSRleGVjdXRlUHJvY2Vzc1VuZGVyUHJvZ3Jlc3MkMTIoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjYyNCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5yZWdpc3RlckluZGljYXRvckFuZFJ1bihDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6Njk4KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLmNvbXB1dGVVbmRlclByb2dyZXNzKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YTo2NDYpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIuZXhlY3V0ZVByb2Nlc3NVbmRlclByb2dyZXNzKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YTo2MjMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLlByb2dyZXNzTWFuYWdlckltcGwuZXhlY3V0ZVByb2Nlc3NVbmRlclByb2dyZXNzKFByb2dyZXNzTWFuYWdlckltcGwuamF2YTo2NikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5ydW5Qcm9jZXNzKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YToxNzUpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy51dGlsLkJhY2tncm91bmRUYXNrVXRpbC5ydW5VbmRlckRpc3Bvc2VBd2FyZUluZGljYXRvcihCYWNrZ3JvdW5kVGFza1V0aWwuamF2YToyNzcpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDE4KEFjdGlvblVwZGF0ZXIuamF2YTozMDQpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yLmRvUnVuKEJvdW5kZWRUYXNrRXhlY3V0b3IuamF2YToyNDYpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yLmFjY2VzcyQyMDAoQm91bmRlZFRhc2tFeGVjdXRvci5qYXZhOjMyKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29uY3VycmVuY3kuQm91bmRlZFRhc2tFeGVjdXRvciQxLmV4ZWN1dGUoQm91bmRlZFRhc2tFeGVjdXRvci5qYXZhOjIyNSkKCWF0IGNvbS5pbnRlbGxpai51dGlsLkNvbmN1cnJlbmN5VXRpbC5ydW5VbmRlclRocmVhZE5hbWUoQ29uY3VycmVuY3lVdGlsLmphdmE6MjEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29uY3VycmVuY3kuQm91bmRlZFRhc2tFeGVjdXRvciQxLnJ1bihCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MjE0KQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTEyOCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bihUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2MjgpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFByaXZpbGVnZWRUaHJlYWRGYWN0b3J5JDEkMS5ydW4oRXhlY3V0b3JzLmphdmE6NjY4KQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LkV4ZWN1dG9ycyRQcml2aWxlZ2VkVGhyZWFkRmFjdG9yeSQxJDEucnVuKEV4ZWN1dG9ycy5qYXZhOjY2NSkKCWF0IGphdmEuYmFzZS9qYXZhLnNlY3VyaXR5LkFjY2Vzc0NvbnRyb2xsZXIuZG9Qcml2aWxlZ2VkKE5hdGl2ZSBNZXRob2QpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFByaXZpbGVnZWRUaHJlYWRGYWN0b3J5JDEucnVuKEV4ZWN1dG9ycy5qYXZhOjY2NSkKCWF0IGphdmEuYmFzZS9qYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo4MjkpCgoKMjAyMi0wMS0yN1QxODoxODowNC41NTEKY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luRXhjZXB0aW9uOiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBtZXRob2QgJ2dldElkJyBpcyBkZXByZWNhdGVkLCB5b3UgbmVlZCB0byBvdmVycmlkZSBpdCBpbiAnY2xhc3Mgb3JnLmljZTEwMDAuanVsaWEubGFuZy5leGVjdXRpb24uSnVsaWFSdW5Db25maWd1cmF0aW9uRmFjdG9yeScuIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGRlbGVnYXRlcyB0byAnZ2V0TmFtZScgd2hpY2ggbWF5IGJlIGxvY2FsaXplZCwgYnV0IHJldHVybiB2YWx1ZSBvZiB0aGlzIG1ldGhvZCBtdXN0IG5vdCBkZXBlbmQgb24gY3VycmVudCBsb2NhbGl6YXRpb24uIFtQbHVnaW46IG9yZy5pY2UxMDAwLmp1bGlhXQoJYXQgY29tLmludGVsbGlqLmlkZS5wbHVnaW5zLlBsdWdpbk1hbmFnZXJDb3JlLmNyZWF0ZVBsdWdpbkV4Y2VwdGlvbihQbHVnaW5NYW5hZ2VyQ29yZS5qYXZhOjI3MCkKCWF0IGNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpblByb2JsZW1SZXBvcnRlckltcGwuY3JlYXRlUGx1Z2luRXhjZXB0aW9uQnlDbGFzcyhQbHVnaW5Qcm9ibGVtUmVwb3J0ZXJJbXBsLmphdmE6MTIpCglhdCBjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5FeGNlcHRpb24uY3JlYXRlQnlDbGFzcyhQbHVnaW5FeGNlcHRpb24uamF2YTo4MykKCWF0IGNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpbkV4Y2VwdGlvbi5yZXBvcnREZXByZWNhdGVkRGVmYXVsdChQbHVnaW5FeGNlcHRpb24uamF2YToxMTApCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmNvbmZpZ3VyYXRpb25zLkNvbmZpZ3VyYXRpb25GYWN0b3J5LmdldElkKENvbmZpZ3VyYXRpb25GYWN0b3J5LmphdmE6NzUpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVubmVyQW5kQ29uZmlndXJhdGlvblNldHRpbmdzSW1wbC5nZXROYW1lKFJ1bm5lckFuZENvbmZpZ3VyYXRpb25TZXR0aW5nc0ltcGwua3Q6MTU0KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmdldFNjaGVtZUtleShSdW5Db25maWd1cmF0aW9uU2NoZW1lTWFuYWdlci5rdDozNykKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5Db25maWd1cmF0aW9uU2NoZW1lTWFuYWdlci5nZXRTY2hlbWVLZXkoUnVuQ29uZmlndXJhdGlvblNjaGVtZU1hbmFnZXIua3Q6MjEpCglhdCBjb20uaW50ZWxsaWouY29uZmlndXJhdGlvblN0b3JlLnNjaGVtZU1hbmFnZXIuU2NoZW1lTGlzdE1hbmFnZXIuYWRkU2NoZW1lKFNjaGVtZUxpc3RNYW5hZ2VyLmt0OjM1KQoJYXQgY29tLmludGVsbGlqLmNvbmZpZ3VyYXRpb25TdG9yZS5zY2hlbWVNYW5hZ2VyLlNjaGVtZU1hbmFnZXJJbXBsLmFkZFNjaGVtZShTY2hlbWVNYW5hZ2VySW1wbC5rdDo2MTUpCglhdCBjb20uaW50ZWxsaWouY29uZmlndXJhdGlvblN0b3JlLnNjaGVtZU1hbmFnZXIuU2NoZW1lTWFuYWdlckltcGwuYWRkU2NoZW1lKFNjaGVtZU1hbmFnZXJJbXBsLmt0OjQyKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkub3B0aW9ucy5TY2hlbWVNYW5hZ2VyLmFkZFNjaGVtZShTY2hlbWVNYW5hZ2VyLmt0OjM4KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bk1hbmFnZXJJbXBsLmdldENvbmZpZ3VyYXRpb25UZW1wbGF0ZShSdW5NYW5hZ2VySW1wbC5rdDozMzcpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuTWFuYWdlckltcGwuY3JlYXRlQ29uZmlndXJhdGlvbihSdW5NYW5hZ2VySW1wbC5rdDoyNjEpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmNsb25lVGVtcGxhdGVDb25maWd1cmF0aW9uU3RhdGljKFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjI1OSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuY2xvbmVUZW1wbGF0ZUNvbmZpZ3VyYXRpb24oUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmphdmE6MjQ5KQoJYXQgY29tLmpldGJyYWlucy5weXRob24udGVzdGluZy5BYnN0cmFjdFB5dGhvblRlc3RDb25maWd1cmF0aW9uUHJvZHVjZXIuY3JlYXRlQ29uZmlndXJhdGlvbkZyb21Db250ZXh0KEFic3RyYWN0UHl0aG9uVGVzdENvbmZpZ3VyYXRpb25Qcm9kdWNlci5rdDoyNykKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuZmluZE9yQ3JlYXRlQ29uZmlndXJhdGlvbkZyb21Db250ZXh0KFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjE5OSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5QcmVmZXJyZWRQcm9kdWNlckZpbmQuZG9HZXRDb25maWd1cmF0aW9uc0Zyb21Db250ZXh0KFByZWZlcnJlZFByb2R1Y2VyRmluZC5qYXZhOjExMCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5QcmVmZXJyZWRQcm9kdWNlckZpbmQuZ2V0Q29uZmlndXJhdGlvbnNGcm9tQ29udGV4dChQcmVmZXJyZWRQcm9kdWNlckZpbmQuamF2YTo5MykKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5Db25maWd1cmF0aW9uQ29udGV4dC5nZXRDb25maWd1cmF0aW9uc0Zyb21Db250ZXh0KENvbmZpZ3VyYXRpb25Db250ZXh0LmphdmE6NDE0KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkNvbmZpZ3VyYXRpb25Db250ZXh0LmZpbmRQcmVmZXJyZWRDb25maWd1cmF0aW9uKENvbmZpZ3VyYXRpb25Db250ZXh0LmphdmE6MjkyKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkNvbmZpZ3VyYXRpb25Db250ZXh0LmZpbmRFeGlzdGluZyhDb25maWd1cmF0aW9uQ29udGV4dC5qYXZhOjI4NSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5CYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5maW5kRXhpc3RpbmcoQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uamF2YTo2MikKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5CYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5mdWxsVXBkYXRlKEJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmphdmE6MjMyKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLnVwZGF0ZShCYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5qYXZhOjE5OCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5leC5BY3Rpb25VdGlsLmxhbWJkYSRwZXJmb3JtRHVtYkF3YXJlVXBkYXRlJDAoQWN0aW9uVXRpbC5qYXZhOjEzMSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5leC5BY3Rpb25VdGlsLnBlcmZvcm1EdW1iQXdhcmVVcGRhdGUoQWN0aW9uVXRpbC5qYXZhOjE0NSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9VcGRhdGUoQWN0aW9uVXBkYXRlci5qYXZhOjYwMikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJHVwZGF0ZUFjdGlvblJlYWwkNyhBY3Rpb25VcGRhdGVyLmphdmE6MTI2KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5jYWxsQWN0aW9uKEFjdGlvblVwZGF0ZXIuamF2YToxNzApCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLnVwZGF0ZUFjdGlvblJlYWwoQWN0aW9uVXBkYXRlci5qYXZhOjEyNykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJG5ldyQwKEFjdGlvblVwZGF0ZXIuamF2YToxMDkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLnVwZGF0ZShBY3Rpb25VcGRhdGVyLmphdmE6NTg4KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0MzQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQ4OSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjEoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0NTQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDg5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMShBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQ1NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0ODkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQ4OSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjEoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0NTQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDg5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMShBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQ1NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6MjMzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZXhwYW5kQWN0aW9uR3JvdXBBc3luYyQxMyhBY3Rpb25VcGRhdGVyLmphdmE6Mjg2KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZXhwYW5kQWN0aW9uR3JvdXBBc3luYyQxNShBY3Rpb25VcGRhdGVyLmphdmE6MzA5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYXBwbGljYXRpb24uaW1wbC5BcHBsaWNhdGlvbkltcGwudHJ5UnVuUmVhZEFjdGlvbihBcHBsaWNhdGlvbkltcGwuamF2YToxMDg0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZXhwYW5kQWN0aW9uR3JvdXBBc3luYyQxNihBY3Rpb25VcGRhdGVyLmphdmE6MzA5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MudXRpbC5Qcm9ncmVzc0luZGljYXRvclV0aWxzLnJ1bkFjdGlvbkFuZENhbmNlbEJlZm9yZVdyaXRlKFByb2dyZXNzSW5kaWNhdG9yVXRpbHMuamF2YToxNTgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDE3KEFjdGlvblVwZGF0ZXIuamF2YTozMDUpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIubGFtYmRhJHJ1blByb2Nlc3MkMihDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6MTg4KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLmxhbWJkYSRleGVjdXRlUHJvY2Vzc1VuZGVyUHJvZ3Jlc3MkMTIoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjYyNCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5yZWdpc3RlckluZGljYXRvckFuZFJ1bihDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6Njk4KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLmNvbXB1dGVVbmRlclByb2dyZXNzKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YTo2NDYpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIuZXhlY3V0ZVByb2Nlc3NVbmRlclByb2dyZXNzKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YTo2MjMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLlByb2dyZXNzTWFuYWdlckltcGwuZXhlY3V0ZVByb2Nlc3NVbmRlclByb2dyZXNzKFByb2dyZXNzTWFuYWdlckltcGwuamF2YTo2NikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5ydW5Qcm9jZXNzKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YToxNzUpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy51dGlsLkJhY2tncm91bmRUYXNrVXRpbC5ydW5VbmRlckRpc3Bvc2VBd2FyZUluZGljYXRvcihCYWNrZ3JvdW5kVGFza1V0aWwuamF2YToyNzcpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDE4KEFjdGlvblVwZGF0ZXIuamF2YTozMDQpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yLmRvUnVuKEJvdW5kZWRUYXNrRXhlY3V0b3IuamF2YToyNDYpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yLmFjY2VzcyQyMDAoQm91bmRlZFRhc2tFeGVjdXRvci5qYXZhOjMyKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29uY3VycmVuY3kuQm91bmRlZFRhc2tFeGVjdXRvciQxLmV4ZWN1dGUoQm91bmRlZFRhc2tFeGVjdXRvci5qYXZhOjIyNSkKCWF0IGNvbS5pbnRlbGxpai51dGlsLkNvbmN1cnJlbmN5VXRpbC5ydW5VbmRlclRocmVhZE5hbWUoQ29uY3VycmVuY3lVdGlsLmphdmE6MjEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29uY3VycmVuY3kuQm91bmRlZFRhc2tFeGVjdXRvciQxLnJ1bihCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MjE0KQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTEyOCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bihUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2MjgpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFByaXZpbGVnZWRUaHJlYWRGYWN0b3J5JDEkMS5ydW4oRXhlY3V0b3JzLmphdmE6NjY4KQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LkV4ZWN1dG9ycyRQcml2aWxlZ2VkVGhyZWFkRmFjdG9yeSQxJDEucnVuKEV4ZWN1dG9ycy5qYXZhOjY2NSkKCWF0IGphdmEuYmFzZS9qYXZhLnNlY3VyaXR5LkFjY2Vzc0NvbnRyb2xsZXIuZG9Qcml2aWxlZ2VkKE5hdGl2ZSBNZXRob2QpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFByaXZpbGVnZWRUaHJlYWRGYWN0b3J5JDEucnVuKEV4ZWN1dG9ycy5qYXZhOjY2NSkKCWF0IGphdmEuYmFzZS9qYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo4MjkpCgoKMjAyMi0wMS0yN1QxODoxODowNC42MTQKY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luRXhjZXB0aW9uOiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBtZXRob2QgJ2dldElkJyBpcyBkZXByZWNhdGVkLCB5b3UgbmVlZCB0byBvdmVycmlkZSBpdCBpbiAnY2xhc3Mgb3JnLmljZTEwMDAuanVsaWEubGFuZy5leGVjdXRpb24uSnVsaWFSdW5Db25maWd1cmF0aW9uRmFjdG9yeScuIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGRlbGVnYXRlcyB0byAnZ2V0TmFtZScgd2hpY2ggbWF5IGJlIGxvY2FsaXplZCwgYnV0IHJldHVybiB2YWx1ZSBvZiB0aGlzIG1ldGhvZCBtdXN0IG5vdCBkZXBlbmQgb24gY3VycmVudCBsb2NhbGl6YXRpb24uIFtQbHVnaW46IG9yZy5pY2UxMDAwLmp1bGlhXQoJYXQgY29tLmludGVsbGlqLmlkZS5wbHVnaW5zLlBsdWdpbk1hbmFnZXJDb3JlLmNyZWF0ZVBsdWdpbkV4Y2VwdGlvbihQbHVnaW5NYW5hZ2VyQ29yZS5qYXZhOjI3MCkKCWF0IGNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpblByb2JsZW1SZXBvcnRlckltcGwuY3JlYXRlUGx1Z2luRXhjZXB0aW9uQnlDbGFzcyhQbHVnaW5Qcm9ibGVtUmVwb3J0ZXJJbXBsLmphdmE6MTIpCglhdCBjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5FeGNlcHRpb24uY3JlYXRlQnlDbGFzcyhQbHVnaW5FeGNlcHRpb24uamF2YTo4MykKCWF0IGNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpbkV4Y2VwdGlvbi5yZXBvcnREZXByZWNhdGVkRGVmYXVsdChQbHVnaW5FeGNlcHRpb24uamF2YToxMTApCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmNvbmZpZ3VyYXRpb25zLkNvbmZpZ3VyYXRpb25GYWN0b3J5LmdldElkKENvbmZpZ3VyYXRpb25GYWN0b3J5LmphdmE6NzUpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVubmVyQW5kQ29uZmlndXJhdGlvblNldHRpbmdzSW1wbC5nZXROYW1lKFJ1bm5lckFuZENvbmZpZ3VyYXRpb25TZXR0aW5nc0ltcGwua3Q6MTU0KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmdldFNjaGVtZUtleShSdW5Db25maWd1cmF0aW9uU2NoZW1lTWFuYWdlci5rdDozNykKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5Db25maWd1cmF0aW9uU2NoZW1lTWFuYWdlci5nZXRTY2hlbWVLZXkoUnVuQ29uZmlndXJhdGlvblNjaGVtZU1hbmFnZXIua3Q6MjEpCglhdCBjb20uaW50ZWxsaWouY29uZmlndXJhdGlvblN0b3JlLnNjaGVtZU1hbmFnZXIuU2NoZW1lTGlzdE1hbmFnZXIuYWRkU2NoZW1lKFNjaGVtZUxpc3RNYW5hZ2VyLmt0OjM1KQoJYXQgY29tLmludGVsbGlqLmNvbmZpZ3VyYXRpb25TdG9yZS5zY2hlbWVNYW5hZ2VyLlNjaGVtZU1hbmFnZXJJbXBsLmFkZFNjaGVtZShTY2hlbWVNYW5hZ2VySW1wbC5rdDo2MTUpCglhdCBjb20uaW50ZWxsaWouY29uZmlndXJhdGlvblN0b3JlLnNjaGVtZU1hbmFnZXIuU2NoZW1lTWFuYWdlckltcGwuYWRkU2NoZW1lKFNjaGVtZU1hbmFnZXJJbXBsLmt0OjQyKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkub3B0aW9ucy5TY2hlbWVNYW5hZ2VyLmFkZFNjaGVtZShTY2hlbWVNYW5hZ2VyLmt0OjM4KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bk1hbmFnZXJJbXBsLmdldENvbmZpZ3VyYXRpb25UZW1wbGF0ZShSdW5NYW5hZ2VySW1wbC5rdDozMzcpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuTWFuYWdlckltcGwuY3JlYXRlQ29uZmlndXJhdGlvbihSdW5NYW5hZ2VySW1wbC5rdDoyNjEpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmNsb25lVGVtcGxhdGVDb25maWd1cmF0aW9uU3RhdGljKFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjI1OSkKCWF0IGNvbS5qZXRicmFpbnMucHl0aG9uLnRlc3RpbmcuUHlUZXN0c0NvbmZpZ3VyYXRpb25Qcm9kdWNlci5hY2Nlc3MkY2xvbmVUZW1wbGF0ZUNvbmZpZ3VyYXRpb25TdGF0aWMkcy0xMzQ1Njc1MDExKFB5VGVzdHNTaGFyZWQua3Q6NzAzKQoJYXQgY29tLmpldGJyYWlucy5weXRob24udGVzdGluZy5QeVRlc3RzQ29uZmlndXJhdGlvblByb2R1Y2VyLmNsb25lVGVtcGxhdGVDb25maWd1cmF0aW9uKFB5VGVzdHNTaGFyZWQua3Q6Nzg0KQoJYXQgY29tLmpldGJyYWlucy5weXRob24udGVzdGluZy5BYnN0cmFjdFB5dGhvblRlc3RDb25maWd1cmF0aW9uUHJvZHVjZXIuY3JlYXRlQ29uZmlndXJhdGlvbkZyb21Db250ZXh0KEFic3RyYWN0UHl0aG9uVGVzdENvbmZpZ3VyYXRpb25Qcm9kdWNlci5rdDoyNykKCWF0IGNvbS5qZXRicmFpbnMucHl0aG9uLnRlc3RpbmcuUHlUZXN0c0NvbmZpZ3VyYXRpb25Qcm9kdWNlci5jcmVhdGVDb25maWd1cmF0aW9uRnJvbUNvbnRleHQoUHlUZXN0c1NoYXJlZC5rdDo3OTApCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmZpbmRPckNyZWF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ29udGV4dChSdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuamF2YToxOTkpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUHJlZmVycmVkUHJvZHVjZXJGaW5kLmRvR2V0Q29uZmlndXJhdGlvbnNGcm9tQ29udGV4dChQcmVmZXJyZWRQcm9kdWNlckZpbmQuamF2YToxMTApCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUHJlZmVycmVkUHJvZHVjZXJGaW5kLmdldENvbmZpZ3VyYXRpb25zRnJvbUNvbnRleHQoUHJlZmVycmVkUHJvZHVjZXJGaW5kLmphdmE6OTMpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQ29uZmlndXJhdGlvbkNvbnRleHQuZ2V0Q29uZmlndXJhdGlvbnNGcm9tQ29udGV4dChDb25maWd1cmF0aW9uQ29udGV4dC5qYXZhOjQxNCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5Db25maWd1cmF0aW9uQ29udGV4dC5maW5kUHJlZmVycmVkQ29uZmlndXJhdGlvbihDb25maWd1cmF0aW9uQ29udGV4dC5qYXZhOjI5MikKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5Db25maWd1cmF0aW9uQ29udGV4dC5maW5kRXhpc3RpbmcoQ29uZmlndXJhdGlvbkNvbnRleHQuamF2YToyODUpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uZmluZEV4aXN0aW5nKEJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmphdmE6NjIpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uZnVsbFVwZGF0ZShCYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5qYXZhOjIzMikKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5CYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi51cGRhdGUoQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uamF2YToxOTgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uZXguQWN0aW9uVXRpbC5sYW1iZGEkcGVyZm9ybUR1bWJBd2FyZVVwZGF0ZSQwKEFjdGlvblV0aWwuamF2YToxMzEpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uZXguQWN0aW9uVXRpbC5wZXJmb3JtRHVtYkF3YXJlVXBkYXRlKEFjdGlvblV0aWwuamF2YToxNDUpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvVXBkYXRlKEFjdGlvblVwZGF0ZXIuamF2YTo2MDIpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSR1cGRhdGVBY3Rpb25SZWFsJDcoQWN0aW9uVXBkYXRlci5qYXZhOjEyNikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuY2FsbEFjdGlvbihBY3Rpb25VcGRhdGVyLmphdmE6MTcwKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci51cGRhdGVBY3Rpb25SZWFsKEFjdGlvblVwZGF0ZXIuamF2YToxMjcpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRuZXckMChBY3Rpb25VcGRhdGVyLmphdmE6MTA5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci51cGRhdGUoQWN0aW9uVXBkYXRlci5qYXZhOjU4OCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDM0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMShBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQ1NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0ODkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQ4OSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjEoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0NTQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDg5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMShBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQ1NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDEzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0ODkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIxKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDU0KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0MTMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQ4OSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjEoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0NTQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQxMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjIzMykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTMoQWN0aW9uVXBkYXRlci5qYXZhOjI4NikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTUoQWN0aW9uVXBkYXRlci5qYXZhOjMwOSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFwcGxpY2F0aW9uLmltcGwuQXBwbGljYXRpb25JbXBsLnRyeVJ1blJlYWRBY3Rpb24oQXBwbGljYXRpb25JbXBsLmphdmE6MTA4NCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTYoQWN0aW9uVXBkYXRlci5qYXZhOjMwOSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLnV0aWwuUHJvZ3Jlc3NJbmRpY2F0b3JVdGlscy5ydW5BY3Rpb25BbmRDYW5jZWxCZWZvcmVXcml0ZShQcm9ncmVzc0luZGljYXRvclV0aWxzLmphdmE6MTU4KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZXhwYW5kQWN0aW9uR3JvdXBBc3luYyQxNyhBY3Rpb25VcGRhdGVyLmphdmE6MzA1KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLmxhbWJkYSRydW5Qcm9jZXNzJDIoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjE4OCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5sYW1iZGEkZXhlY3V0ZVByb2Nlc3NVbmRlclByb2dyZXNzJDEyKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YTo2MjQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIucmVnaXN0ZXJJbmRpY2F0b3JBbmRSdW4oQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjY5OCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5jb21wdXRlVW5kZXJQcm9ncmVzcyhDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6NjQ2KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLmV4ZWN1dGVQcm9jZXNzVW5kZXJQcm9ncmVzcyhDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6NjIzKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Qcm9ncmVzc01hbmFnZXJJbXBsLmV4ZWN1dGVQcm9jZXNzVW5kZXJQcm9ncmVzcyhQcm9ncmVzc01hbmFnZXJJbXBsLmphdmE6NjYpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIucnVuUHJvY2VzcyhDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6MTc1KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MudXRpbC5CYWNrZ3JvdW5kVGFza1V0aWwucnVuVW5kZXJEaXNwb3NlQXdhcmVJbmRpY2F0b3IoQmFja2dyb3VuZFRhc2tVdGlsLmphdmE6Mjc3KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZXhwYW5kQWN0aW9uR3JvdXBBc3luYyQxOChBY3Rpb25VcGRhdGVyLmphdmE6MzA0KQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29uY3VycmVuY3kuQm91bmRlZFRhc2tFeGVjdXRvci5kb1J1bihCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MjQ2KQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29uY3VycmVuY3kuQm91bmRlZFRhc2tFeGVjdXRvci5hY2Nlc3MkMjAwKEJvdW5kZWRUYXNrRXhlY3V0b3IuamF2YTozMikKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IkMS5leGVjdXRlKEJvdW5kZWRUYXNrRXhlY3V0b3IuamF2YToyMjUpCglhdCBjb20uaW50ZWxsaWoudXRpbC5Db25jdXJyZW5jeVV0aWwucnVuVW5kZXJUaHJlYWROYW1lKENvbmN1cnJlbmN5VXRpbC5qYXZhOjIxMykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IkMS5ydW4oQm91bmRlZFRhc2tFeGVjdXRvci5qYXZhOjIxNCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjExMjgpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjI4KQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LkV4ZWN1dG9ycyRQcml2aWxlZ2VkVGhyZWFkRmFjdG9yeSQxJDEucnVuKEV4ZWN1dG9ycy5qYXZhOjY2OCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMSQxLnJ1bihFeGVjdXRvcnMuamF2YTo2NjUpCglhdCBqYXZhLmJhc2UvamF2YS5zZWN1cml0eS5BY2Nlc3NDb250cm9sbGVyLmRvUHJpdmlsZWdlZChOYXRpdmUgTWV0aG9kKQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LkV4ZWN1dG9ycyRQcml2aWxlZ2VkVGhyZWFkRmFjdG9yeSQxLnJ1bihFeGVjdXRvcnMuamF2YTo2NjUpCglhdCBqYXZhLmJhc2UvamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6ODI5KQ==
- title: [auto-generated:1776339738] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Windows 10
- Java Version: 11.0.13
- App Name: PyCharm
- App Full Name: PyCharm
- App Version name: PyCharm
- Is EAP: false
- App Build: PY-213.6461.77
- App Version: 2021.3.1
- Last Action: Unknown
- title: [auto-generated:1776339738] null