<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<comments
  xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
  xsi:noNamespaceSchemaLocation='comments.xsd'
  name="v1_to_v2"
  jdversion="1.1.1">

<!-- This file contains comments for a JDiff report. -->
<!-- It is used only in generating the report, and does not need to ship with the final report. -->

<!-- The id attribute in an identifier element identifies the change as noted in the report. -->
<!-- An id has the form package[.class[.[ctor|method|field].signature]], where [] indicates optional text. -->
<!-- A comment element can have multiple identifier elements, which will -->
<!-- will cause the same text to appear at each place in the report, but -->
<!-- will be converted to separate comments when the comments file is used. -->
<!-- HTML tags in the text field will appear in the report. -->
<!-- You also need to close p HTML elements, used for paragraphs - see the top-level documentation. -->
<comment>
  <identifier id="com.google.inject"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.AbstractModule"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.AbstractModule.addError_added(com.google.inject.spi.Message)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.AbstractModule.convertToTypes_added(com.google.inject.matcher.Matcher&lt;? super com.google.inject.TypeLiteral&lt;?&gt;&gt;, com.google.inject.spi.TypeConverter)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.AbstractModule.currentStage_added()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.AbstractModule.getProvider_added(com.google.inject.Key&lt;T&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.AbstractModule.getProvider_added(java.lang.Class&lt;T&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.AbstractModule.requestInjection_added(java.lang.Object[])"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.AbstractModule.requireBinding_added(com.google.inject.Key&lt;?&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.AbstractModule.requireBinding_added(java.lang.Class&lt;?&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Binder"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Binder.addError_added(com.google.inject.spi.Message)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Binder.bindConstant_changed()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Binder.bind_changed(com.google.inject.Key&lt;T&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Binder.bind_changed(com.google.inject.TypeLiteral&lt;T&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Binder.bind_changed(java.lang.Class&lt;T&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Binder.convertToTypes_added(com.google.inject.matcher.Matcher&lt;? super com.google.inject.TypeLiteral&lt;?&gt;&gt;, com.google.inject.spi.TypeConverter)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Binder.getProvider_added(com.google.inject.Key&lt;T&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Binder.getProvider_added(java.lang.Class&lt;T&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Binder.newPrivateBinder_added()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Binder.requestInjection_added(java.lang.Object[])"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Binder.skipSources_added(java.lang.Class[])"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Binder.withSource_added(java.lang.Object)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Binding"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Binding.acceptScopingVisitor_added(com.google.inject.spi.BindingScopingVisitor&lt;V&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Binding.acceptTargetVisitor_added(com.google.inject.spi.BindingTargetVisitor&lt;? super T, V&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Binding.getProvider_changed()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Binding.getSource_removed()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.BindingAnnotation"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.ConfigurationException"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.CreationException"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.CreationException.ctor_changed(java.lang.Iterable&lt;com.google.inject.spi.Message&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.CreationException.getErrorMessages_changed()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Exposed"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Guice"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Guice.createInjector_added(com.google.inject.Stage, java.lang.Iterable&lt;? extends com.google.inject.Module&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Guice.createInjector_added(java.lang.Iterable&lt;? extends com.google.inject.Module&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Guice.createInjector_changed(com.google.inject.Module[])"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Guice.createInjector_changed(com.google.inject.Stage, com.google.inject.Module[])"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Guice.createInjector_removed(com.google.inject.Stage, java.lang.Iterable&lt;com.google.inject.Module&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Guice.createInjector_removed(java.lang.Iterable&lt;com.google.inject.Module&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Injector"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Injector.createChildInjector_added(com.google.inject.Module[])"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Injector.createChildInjector_added(java.lang.Iterable&lt;? extends com.google.inject.Module&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Injector.findBindingsByType_changed(com.google.inject.TypeLiteral&lt;T&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Injector.getBinding_added(java.lang.Class&lt;T&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Injector.getBinding_changed(com.google.inject.Key&lt;T&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Injector.getBindings_changed()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Injector.getInstance_changed(com.google.inject.Key&lt;T&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Injector.getInstance_changed(java.lang.Class&lt;T&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Injector.getParent_added()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Injector.getProvider_changed(com.google.inject.Key&lt;T&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Injector.getProvider_changed(java.lang.Class&lt;T&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Injector.injectMembers_changed(java.lang.Object)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Key"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Key.equals_changed(java.lang.Object)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Key.getAnnotationType_changed()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Key.getAnnotation_changed()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Key.getTypeLiteral_changed()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Key.hashCode_changed()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Key.readObject_added(java.io.ObjectInputStream)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Key.toString_changed()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Key.writeReplace_added()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Module"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Module.configure_changed(com.google.inject.Binder)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.OutOfScopeException"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.PrivateModule"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Provider"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Provider.get_changed()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Provides"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.ProvisionException"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Scope"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Scope.scope_changed(com.google.inject.Key&lt;T&gt;, com.google.inject.Provider&lt;T&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Scopes"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.Scopes.NO_SCOPE"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.TypeLiteral"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.TypeLiteral.equals_changed(java.lang.Object)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.TypeLiteral.getExceptionTypes_added(java.lang.reflect.Member)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.TypeLiteral.getFieldType_added(java.lang.reflect.Field)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.TypeLiteral.getParameterTypes_added(java.lang.reflect.Member)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.TypeLiteral.getRawType_added()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.TypeLiteral.getReturnType_added(java.lang.reflect.Method)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.TypeLiteral.getSupertype_added(java.lang.Class&lt;?&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.TypeLiteral.getType_changed()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.TypeLiteral.hashCode_changed()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.TypeLiteral.toString_changed()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.assistedinject"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder.AnnotatedBindingBuilder"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder.AnnotatedBindingBuilder.annotatedWith_changed(java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder.AnnotatedBindingBuilder.annotatedWith_changed(java.lang.annotation.Annotation)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder.AnnotatedConstantBindingBuilder"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder.AnnotatedConstantBindingBuilder.annotatedWith_changed(java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder.AnnotatedConstantBindingBuilder.annotatedWith_changed(java.lang.annotation.Annotation)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder.AnnotatedElementBuilder"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder.LinkedBindingBuilder"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder.LinkedBindingBuilder.toInstance_changed(T)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder.LinkedBindingBuilder.toProvider_changed(com.google.inject.Key&lt;? extends com.google.inject.Provider&lt;? extends T&gt;&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder.LinkedBindingBuilder.toProvider_changed(com.google.inject.Provider&lt;? extends T&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder.LinkedBindingBuilder.toProvider_changed(java.lang.Class&lt;? extends com.google.inject.Provider&lt;? extends T&gt;&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder.LinkedBindingBuilder.to_changed(com.google.inject.Key&lt;? extends T&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder.LinkedBindingBuilder.to_changed(com.google.inject.TypeLiteral&lt;? extends T&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder.LinkedBindingBuilder.to_changed(java.lang.Class&lt;? extends T&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder.PrivateBinder"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder.ScopedBindingBuilder"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder.ScopedBindingBuilder.asEagerSingleton_changed()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder.ScopedBindingBuilder.in_changed(com.google.inject.Scope)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.binder.ScopedBindingBuilder.in_changed(java.lang.Class&lt;? extends java.lang.annotation.Annotation&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.commands.intercepting"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.matcher"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.matcher.Matchers"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.matcher.Matchers.inPackage_changed(java.lang.Package)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.matcher.Matchers.inSubpackage_added(java.lang.String)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.multibindings"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.name"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.name.Names"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.name.Names.bindProperties_changed(com.google.inject.Binder, java.util.Map&lt;java.lang.String, java.lang.String&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.name.Names.bindProperties_changed(com.google.inject.Binder, java.util.Properties)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.servlet"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.servlet.GuiceServletContextListener"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.servlet.InjectedHttpServlet"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.BindingScopingVisitor"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.BindingTargetVisitor"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.DefaultBindingScopingVisitor"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.DefaultBindingTargetVisitor"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.DefaultElementVisitor"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.Dependency"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.Element"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.ElementVisitor"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.Elements"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.InjectionPoint"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.InjectionRequest"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.InterceptorBinding"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.Message"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.Message.acceptVisitor_added(com.google.inject.spi.ElementVisitor&lt;T&gt;)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.Message.ctor_added(java.util.List&lt;java.lang.Object&gt;, java.lang.String, java.lang.Throwable)"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.Message.getCause_added()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.Message.getSourceString_removed()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.Message.getSource_changed()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.Message.getSources_added()"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.ModuleWriter"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.PrivateEnvironment"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.ProviderLookup"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.ScopeBinding"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.SourceProvider"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.SourceProviders"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.StaticInjectionRequest"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.TypeConverter"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.spi.TypeConverterBinding"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.throwingproviders"/>
  <text>
    InsertCommentsHere
  </text>
</comment>
<comment>
  <identifier id="com.google.inject.util"/>
  <text>
    InsertCommentsHere
  </text>
</comment>

</comments>
