Merge branch 'master' into idea13

This commit is contained in:
Erokhin Stanislav
2013-07-09 19:52:06 +04:00
1228 changed files with 38971 additions and 4361 deletions
+10
View File
@@ -0,0 +1,10 @@
<component name="ProjectDictionaryState">
<dictionary name="Nikolay.Krasko">
<words>
<w>kdoc</w>
<w>redeclarations</w>
<w>subclassed</w>
<w>subgraph</w>
</words>
</dictionary>
</component>
+3
View File
@@ -59,6 +59,9 @@
<inspection_tool class="DuplicateCondition" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoreMethodCalls" value="false" />
</inspection_tool>
<inspection_tool class="EmptyStatementBody" enabled="true" level="WARNING" enabled_by_default="true">
<option name="m_reportEmptyBlocks" value="false" />
</inspection_tool>
<inspection_tool class="EmptySynchronizedStatement" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="EnumSwitchStatementWhichMissesCases" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoreSwitchStatementsWithDefault" value="true" />
@@ -0,0 +1,23 @@
<root>
<item name='android.accessibilityservice.AccessibilityService android.os.IBinder onBind(android.content.Intent)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accessibilityservice.AccessibilityService SERVICE_INTERFACE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accessibilityservice.AccessibilityServiceInfo java.lang.String feedbackTypeToString(int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accessibilityservice.AccessibilityServiceInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accessibilityservice.AccessibilityServiceInfo java.lang.String loadDescription(android.content.pm.PackageManager) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accessibilityservice.AccessibilityService android.os.IBinder onBind(android.content.Intent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accessibilityservice.AccessibilityService SERVICE_META_DATA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,122 @@
<root>
<item name='android.accounts.AccountManager KEY_ERROR_MESSAGE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountManager android.accounts.AccountManagerFuture&lt;android.os.Bundle&gt; getAuthToken(android.accounts.Account, java.lang.String, android.os.Bundle, android.app.Activity, android.accounts.AccountManagerCallback&lt;android.os.Bundle&gt;, android.os.Handler)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountManager android.accounts.AccountManagerFuture&lt;android.os.Bundle&gt; editProperties(java.lang.String, android.app.Activity, android.accounts.AccountManagerCallback&lt;android.os.Bundle&gt;, android.os.Handler)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountManager KEY_BOOLEAN_RESULT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountManager android.accounts.AccountManagerFuture&lt;android.os.Bundle&gt; addAccount(java.lang.String, java.lang.String, java.lang.String[], android.os.Bundle, android.app.Activity, android.accounts.AccountManagerCallback&lt;android.os.Bundle&gt;, android.os.Handler)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountManager AUTHENTICATOR_ATTRIBUTES_NAME'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountManager KEY_ACCOUNT_NAME'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountManager KEY_AUTHTOKEN'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountManager KEY_PASSWORD'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountManager android.accounts.AccountManagerFuture&lt;android.os.Bundle&gt; getAuthToken(android.accounts.Account, java.lang.String, boolean, android.accounts.AccountManagerCallback&lt;android.os.Bundle&gt;, android.os.Handler)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountManager KEY_ERROR_CODE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountManager KEY_INTENT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountManager android.accounts.AccountManagerFuture&lt;java.lang.Boolean&gt; hasFeatures(android.accounts.Account, java.lang.String[], android.accounts.AccountManagerCallback&lt;java.lang.Boolean&gt;, android.os.Handler)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountManager KEY_AUTHENTICATOR_TYPES'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountManager KEY_ACCOUNTS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AuthenticatorDescription void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountManager KEY_CALLER_PID'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountManager android.accounts.AccountManagerFuture&lt;android.os.Bundle&gt; confirmCredentials(android.accounts.Account, android.os.Bundle, android.app.Activity, android.accounts.AccountManagerCallback&lt;android.os.Bundle&gt;, android.os.Handler)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountAuthenticatorResponse AccountAuthenticatorResponse(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountManager android.accounts.AccountManagerFuture&lt;android.os.Bundle&gt; updateCredentials(android.accounts.Account, java.lang.String, android.os.Bundle, android.app.Activity, android.accounts.AccountManagerCallback&lt;android.os.Bundle&gt;, android.os.Handler)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountManager android.accounts.AccountManagerFuture&lt;android.os.Bundle&gt; getAuthToken(android.accounts.Account, java.lang.String, android.os.Bundle, boolean, android.accounts.AccountManagerCallback&lt;android.os.Bundle&gt;, android.os.Handler)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountManager KEY_USERDATA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountManager KEY_ANDROID_PACKAGE_NAME'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.Account Account(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountManager KEY_AUTH_TOKEN_LABEL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountManager KEY_CALLER_UID'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.Account void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AuthenticatorDescription android.accounts.AuthenticatorDescription newKey(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountManager ACTION_AUTHENTICATOR_INTENT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountManager android.accounts.AccountManagerFuture&lt;java.lang.Boolean&gt; removeAccount(android.accounts.Account, android.accounts.AccountManagerCallback&lt;java.lang.Boolean&gt;, android.os.Handler)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountAuthenticatorResponse void onResult(android.os.Bundle) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AbstractAccountAuthenticator android.os.Bundle getAccountRemovalAllowed(android.accounts.AccountAuthenticatorResponse, android.accounts.Account)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountManager KEY_ACCOUNT_AUTHENTICATOR_RESPONSE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountAuthenticatorResponse void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountManager LOGIN_ACCOUNTS_CHANGED_ACTION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountManager AUTHENTICATOR_META_DATA_NAME'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountManager KEY_ACCOUNT_MANAGER_RESPONSE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountManager KEY_AUTH_FAILED_MESSAGE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountManager android.content.Intent newChooseAccountIntent(android.accounts.Account, java.util.ArrayList&lt;android.accounts.Account&gt;, java.lang.String[], boolean, java.lang.String, java.lang.String, java.lang.String[], android.os.Bundle)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.accounts.AccountManager KEY_ACCOUNT_TYPE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,245 @@
<root>
<item name='android.animation.AnimatorSet java.lang.Object clone()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.ObjectAnimator android.animation.ObjectAnimator ofObject(java.lang.Object, java.lang.String, android.animation.TypeEvaluator, java.lang.Object...)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.ObjectAnimator android.animation.ObjectAnimator clone()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.FloatEvaluator java.lang.Object evaluate(float, java.lang.Object, java.lang.Object)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.Animator android.animation.Animator setDuration(long)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.ObjectAnimator android.animation.ObjectAnimator setDuration(long)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.ObjectAnimator android.animation.Animator clone()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.FloatEvaluator java.lang.Object evaluate(float, java.lang.Object, java.lang.Object) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.Animator android.animation.Animator clone()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.ValueAnimator android.animation.Animator clone()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.Keyframe android.animation.Keyframe ofObject(float, java.lang.Object)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.ValueAnimator android.animation.ValueAnimator ofFloat(float...)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.PropertyValuesHolder android.animation.PropertyValuesHolder ofKeyframe(java.lang.String, android.animation.Keyframe...)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.ObjectAnimator android.animation.ObjectAnimator ofPropertyValuesHolder(java.lang.Object, android.animation.PropertyValuesHolder...)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.IntEvaluator java.lang.Object evaluate(float, java.lang.Object, java.lang.Object) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.IntEvaluator java.lang.Integer evaluate(float, java.lang.Integer, java.lang.Integer)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.FloatEvaluator java.lang.Float evaluate(float, java.lang.Number, java.lang.Number)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.AnimatorSet.Builder android.animation.AnimatorSet.Builder with(android.animation.Animator)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.ValueAnimator android.animation.ValueAnimator clone()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.TypeEvaluator T evaluate(float, T, T)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.ArgbEvaluator java.lang.Object evaluate(float, java.lang.Object, java.lang.Object) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.ObjectAnimator android.animation.Animator setDuration(long)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.PropertyValuesHolder android.animation.PropertyValuesHolder ofObject(java.lang.String, android.animation.TypeEvaluator, java.lang.Object...)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.ObjectAnimator android.animation.ObjectAnimator ofFloat(java.lang.Object, java.lang.String, float...)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.Keyframe android.animation.Keyframe ofInt(float, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.Animator java.lang.Object clone()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.LayoutTransition void showChild(android.view.ViewGroup, android.view.View, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.ValueAnimator java.lang.Object clone()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.PropertyValuesHolder android.animation.PropertyValuesHolder ofKeyframe(android.util.Property, android.animation.Keyframe...)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.Keyframe android.animation.Keyframe ofInt(float)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.ValueAnimator android.animation.ValueAnimator ofInt(int...)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.ObjectAnimator java.lang.Object clone()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.ArgbEvaluator java.lang.Object evaluate(float, java.lang.Object, java.lang.Object)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.ObjectAnimator android.animation.ObjectAnimator ofInt(java.lang.Object, java.lang.String, int...)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.PropertyValuesHolder android.animation.PropertyValuesHolder ofInt(java.lang.String, int...)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.IntEvaluator java.lang.Object evaluate(float, java.lang.Object, java.lang.Object)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.PropertyValuesHolder android.animation.PropertyValuesHolder ofFloat(java.lang.String, float...)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.ObjectAnimator void setProperty(android.util.Property) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.ArgbEvaluator java.lang.Object evaluate(float, java.lang.Object, java.lang.Object) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.LayoutTransition void hideChild(android.view.ViewGroup, android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.AnimatorSet.Builder android.animation.AnimatorSet.Builder after(android.animation.Animator)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.LayoutTransition void removeChild(android.view.ViewGroup, android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.FloatEvaluator java.lang.Float evaluate(float, java.lang.Number, java.lang.Number) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.ValueAnimator android.animation.Animator setDuration(long)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.TypeEvaluator T evaluate(float, T, T) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.ObjectAnimator android.animation.ObjectAnimator ofInt(T, android.util.Property&lt;T,java.lang.Integer&gt;, int...) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.LayoutTransition void hideChild(android.view.ViewGroup, android.view.View, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.LayoutTransition void removeChild(android.view.ViewGroup, android.view.View) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.ValueAnimator android.animation.ValueAnimator setDuration(long)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.ObjectAnimator android.animation.ObjectAnimator ofObject(T, android.util.Property&lt;T,V&gt;, android.animation.TypeEvaluator&lt;V&gt;, V...)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.FloatEvaluator java.lang.Float evaluate(float, java.lang.Number, java.lang.Number) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.ObjectAnimator android.animation.ObjectAnimator ofInt(T, android.util.Property&lt;T,java.lang.Integer&gt;, int...)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.LayoutTransition void hideChild(android.view.ViewGroup, android.view.View) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.ObjectAnimator android.animation.ValueAnimator setDuration(long)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.ValueAnimator void setValues(android.animation.PropertyValuesHolder...) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.TypeEvaluator T evaluate(float, T, T) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.PropertyValuesHolder void setKeyframes(android.animation.Keyframe...) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.AnimatorSet android.animation.Animator setDuration(long)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.ValueAnimator android.animation.ValueAnimator ofObject(android.animation.TypeEvaluator, java.lang.Object...)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.ObjectAnimator android.animation.ObjectAnimator ofFloat(T, android.util.Property&lt;T,java.lang.Float&gt;, float...) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.PropertyValuesHolder android.animation.PropertyValuesHolder ofFloat(android.util.Property&lt;?,java.lang.Float&gt;, float...)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.FloatEvaluator java.lang.Object evaluate(float, java.lang.Object, java.lang.Object) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.ObjectAnimator android.animation.ObjectAnimator ofObject(T, android.util.Property&lt;T,V&gt;, android.animation.TypeEvaluator&lt;V&gt;, V...) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.AnimatorSet.Builder android.animation.AnimatorSet.Builder after(long)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.AnimatorSet.Builder android.animation.AnimatorSet.Builder before(android.animation.Animator)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.ObjectAnimator android.animation.ValueAnimator clone()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.AnimatorInflater android.animation.Animator loadAnimator(android.content.Context, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.LayoutTransition void addChild(android.view.ViewGroup, android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.AnimatorSet java.util.ArrayList&lt;android.animation.Animator&gt; getChildAnimations()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.AnimatorSet android.animation.AnimatorSet clone()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.PropertyValuesHolder android.animation.PropertyValuesHolder ofInt(android.util.Property&lt;?,java.lang.Integer&gt;, int...)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.ObjectAnimator android.animation.ObjectAnimator ofFloat(T, android.util.Property&lt;T,java.lang.Float&gt;, float...)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.AnimatorSet android.animation.AnimatorSet setDuration(long)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.LayoutTransition void hideChild(android.view.ViewGroup, android.view.View, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.AnimatorSet android.animation.Animator clone()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.PropertyValuesHolder android.animation.PropertyValuesHolder ofObject(android.util.Property, android.animation.TypeEvaluator&lt;V&gt;, V...)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.IntEvaluator java.lang.Object evaluate(float, java.lang.Object, java.lang.Object) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.Keyframe android.animation.Keyframe ofFloat(float)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.Keyframe android.animation.Keyframe ofFloat(float, float)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.LayoutTransition void showChild(android.view.ViewGroup, android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.animation.ValueAnimator android.animation.ValueAnimator ofPropertyValuesHolder(android.animation.PropertyValuesHolder...)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,482 @@
<root>
<item name='android.Manifest.permission SET_ORIENTATION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission BROADCAST_WAP_PUSH'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission_group AUDIO_SETTINGS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission INTERNET'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission BIND_TEXT_SERVICE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission WRITE_SECURE_SETTINGS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission VIBRATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission REBOOT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission_group BOOKMARKS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission SET_DEBUG_APP'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission WRITE_SETTINGS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission_group SOCIAL_INFO'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission SUBSCRIBED_FEEDS_WRITE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission READ_LOGS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission INSTALL_LOCATION_PROVIDER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission RECEIVE_WAP_PUSH'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission BIND_DEVICE_ADMIN'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission_group LOCATION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission BLUETOOTH_ADMIN'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission_group PHONE_CALLS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission DUMP'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission SET_TIME_ZONE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission CHANGE_CONFIGURATION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission_group BLUETOOTH_NETWORK'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission DELETE_CACHE_FILES'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission BIND_ACCESSIBILITY_SERVICE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission BRICK'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission_group PERSONAL_INFO'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission READ_EXTERNAL_STORAGE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission_group DEVELOPMENT_TOOLS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission READ_SMS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission CHANGE_COMPONENT_ENABLED_STATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission_group COST_MONEY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission WRITE_PROFILE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission WRITE_APN_SETTINGS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission MANAGE_ACCOUNTS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission DIAGNOSTIC'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission_group DEVICE_ALARMS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission CAMERA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission ACCESS_MOCK_LOCATION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission_group WRITE_USER_DICTIONARY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission_group SCREENLOCK'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission_group CALENDAR'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission FORCE_BACK'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission ADD_VOICEMAIL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission ACCESS_SURFACE_FLINGER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission_group WALLPAPER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission CLEAR_APP_USER_DATA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission CHANGE_WIFI_MULTICAST_STATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission READ_FRAME_BUFFER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission_group ACCOUNTS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission BLUETOOTH'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission_group USER_DICTIONARY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission ACCESS_LOCATION_EXTRA_COMMANDS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission GLOBAL_SEARCH'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission SET_ALWAYS_FINISH'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission SIGNAL_PERSISTENT_PROCESSES'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission ACCESS_COARSE_LOCATION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission READ_HISTORY_BOOKMARKS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission SET_ACTIVITY_WATCHER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission STATUS_BAR'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission ACCESS_CHECKIN_PROPERTIES'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission PROCESS_OUTGOING_CALLS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission SET_TIME'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission CLEAR_APP_CACHE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission READ_SOCIAL_STREAM'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission MOUNT_UNMOUNT_FILESYSTEMS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission KILL_BACKGROUND_PROCESSES'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission_group MESSAGES'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission SUBSCRIBED_FEEDS_READ'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission BIND_REMOTEVIEWS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission EXPAND_STATUS_BAR'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission FACTORY_TEST'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission MANAGE_APP_TOKENS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission_group AFFECTS_BATTERY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission AUTHENTICATE_ACCOUNTS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission MOUNT_FORMAT_FILESYSTEMS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission_group STATUS_BAR'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission DISABLE_KEYGUARD'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission READ_PHONE_STATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission WRITE_CALENDAR'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission BROADCAST_PACKAGE_REMOVED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission WRITE_GSERVICES'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission SET_PREFERRED_APPLICATIONS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission RECEIVE_BOOT_COMPLETED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission SET_WALLPAPER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission ACCESS_WIFI_STATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission INTERNAL_SYSTEM_WINDOW'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission DEVICE_POWER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission CONTROL_LOCATION_UPDATES'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission SEND_SMS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission WAKE_LOCK'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission BIND_VPN_SERVICE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission HARDWARE_TEST'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission ACCESS_NETWORK_STATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission WRITE_HISTORY_BOOKMARKS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission SYSTEM_ALERT_WINDOW'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission ACCOUNT_MANAGER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission_group CAMERA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission_group NETWORK'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission WRITE_USER_DICTIONARY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission CALL_PRIVILEGED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission BROADCAST_SMS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission BIND_WALLPAPER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission RECEIVE_MMS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission READ_PROFILE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission NFC'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission READ_CALL_LOG'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission SET_ANIMATION_SCALE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission ACCESS_FINE_LOCATION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission RECEIVE_SMS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission SET_WALLPAPER_HINTS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission GET_TASKS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission RECORD_AUDIO'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission USE_SIP'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission DELETE_PACKAGES'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission GET_PACKAGE_SIZE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission_group SYSTEM_TOOLS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission_group DISPLAY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission CHANGE_WIFI_STATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission SET_POINTER_SPEED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission READ_CALENDAR'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission SET_ALARM'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission USE_CREDENTIALS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission BIND_APPWIDGET'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission MODIFY_AUDIO_SETTINGS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission CALL_PHONE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission BATTERY_STATS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission PERSISTENT_ACTIVITY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission READ_INPUT_STATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission READ_USER_DICTIONARY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission WRITE_CONTACTS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission UPDATE_DEVICE_STATS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission INSTALL_PACKAGES'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission REORDER_TASKS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission WRITE_CALL_LOG'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission SET_PROCESS_LIMIT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission_group MICROPHONE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission READ_SYNC_SETTINGS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission_group SYSTEM_CLOCK'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission_group APP_INFO'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission_group STORAGE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission WRITE_SYNC_SETTINGS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission WRITE_SMS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission WRITE_EXTERNAL_STORAGE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission MODIFY_PHONE_STATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission_group HARDWARE_CONTROLS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission GET_ACCOUNTS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission READ_SYNC_STATS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission FLASHLIGHT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission CHANGE_NETWORK_STATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission BROADCAST_STICKY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission_group VOICEMAIL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission MASTER_CLEAR'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission READ_CONTACTS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission_group SYNC_SETTINGS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission WRITE_SOCIAL_STREAM'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission BIND_INPUT_METHOD'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission INJECT_EVENTS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.Manifest.permission RESTART_PACKAGES'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,71 @@
<root>
<item name='android.app.admin.DeviceAdminReceiver DEVICE_ADMIN_META_DATA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.admin.DeviceAdminInfo java.lang.CharSequence loadDescription(android.content.pm.PackageManager) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.admin.DevicePolicyManager EXTRA_DEVICE_ADMIN'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.admin.DeviceAdminReceiver android.app.admin.DevicePolicyManager getManager(android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.admin.DeviceAdminReceiver EXTRA_DISABLE_WARNING'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.admin.DeviceAdminReceiver ACTION_PASSWORD_EXPIRING'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.admin.DevicePolicyManager ACTION_START_ENCRYPTION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.admin.DeviceAdminReceiver ACTION_PASSWORD_FAILED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.admin.DeviceAdminReceiver void onReceive(android.content.Context, android.content.Intent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.admin.DeviceAdminInfo DeviceAdminInfo(android.content.Context, android.content.pm.ResolveInfo) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.admin.DeviceAdminInfo void dump(android.util.Printer, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.admin.DeviceAdminInfo DeviceAdminInfo(android.content.Context, android.content.pm.ResolveInfo) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.admin.DeviceAdminReceiver ACTION_DEVICE_ADMIN_DISABLED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.admin.DevicePolicyManager ACTION_ADD_DEVICE_ADMIN'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.admin.DeviceAdminReceiver void onReceive(android.content.Context, android.content.Intent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.admin.DeviceAdminReceiver ACTION_PASSWORD_CHANGED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.admin.DeviceAdminReceiver ACTION_DEVICE_ADMIN_DISABLE_REQUESTED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.admin.DevicePolicyManager EXTRA_ADD_EXPLANATION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.admin.DeviceAdminInfo android.content.ComponentName getComponent()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.admin.DeviceAdminReceiver ACTION_DEVICE_ADMIN_ENABLED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.admin.DevicePolicyManager ACTION_SET_NEW_PASSWORD'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.admin.DeviceAdminInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.admin.DeviceAdminReceiver ACTION_PASSWORD_SUCCEEDED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,56 @@
<root>
<item name='android.app.backup.FileBackupHelper void writeNewStateDescription(android.os.ParcelFileDescriptor) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.backup.BackupDataInputStream int read(byte[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.backup.BackupAgent void onRestoreFile(android.os.ParcelFileDescriptor, long, java.io.File, int, long, long) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.backup.BackupAgent void onFullBackup(android.app.backup.FullBackupDataOutput) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.backup.BackupHelper void writeNewStateDescription(android.os.ParcelFileDescriptor) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.backup.BackupHelper void performBackup(android.os.ParcelFileDescriptor, android.app.backup.BackupDataOutput, android.os.ParcelFileDescriptor) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.backup.FileBackupHelper void performBackup(android.os.ParcelFileDescriptor, android.app.backup.BackupDataOutput, android.os.ParcelFileDescriptor) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.backup.BackupHelper void performBackup(android.os.ParcelFileDescriptor, android.app.backup.BackupDataOutput, android.os.ParcelFileDescriptor) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.backup.BackupHelper void restoreEntity(android.app.backup.BackupDataInputStream) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.backup.SharedPreferencesBackupHelper void performBackup(android.os.ParcelFileDescriptor, android.app.backup.BackupDataOutput, android.os.ParcelFileDescriptor) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.backup.FileBackupHelper void performBackup(android.os.ParcelFileDescriptor, android.app.backup.BackupDataOutput, android.os.ParcelFileDescriptor) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.backup.SharedPreferencesBackupHelper void restoreEntity(android.app.backup.BackupDataInputStream) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.backup.FileBackupHelper FileBackupHelper(android.content.Context, java.lang.String...) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.backup.FileBackupHelper void restoreEntity(android.app.backup.BackupDataInputStream) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.backup.SharedPreferencesBackupHelper void writeNewStateDescription(android.os.ParcelFileDescriptor) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.backup.SharedPreferencesBackupHelper void performBackup(android.os.ParcelFileDescriptor, android.app.backup.BackupDataOutput, android.os.ParcelFileDescriptor) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.backup.BackupAgent void fullBackupFile(java.io.File, android.app.backup.FullBackupDataOutput) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.app.backup.BackupAgent void fullBackupFile(java.io.File, android.app.backup.FullBackupDataOutput) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,122 @@
<root>
<item name='android.appwidget.AppWidgetProvider void onReceive(android.content.Context, android.content.Intent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetManager ACTION_APPWIDGET_BIND'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetManager EXTRA_APPWIDGET_OPTIONS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetManager ACTION_APPWIDGET_DISABLED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetHostView void prepareView(android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetManager ACTION_APPWIDGET_ENABLED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetHostView boolean drawChild(android.graphics.Canvas, android.view.View, long) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetManager ACTION_APPWIDGET_DELETED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetHostView android.graphics.Rect getDefaultPaddingForWidget(android.content.Context, android.content.ComponentName, android.graphics.Rect) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetProviderInfo java.lang.Object clone()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetManager OPTION_APPWIDGET_MAX_HEIGHT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetHostView void onInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetManager EXTRA_APPWIDGET_ID'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetManager EXTRA_APPWIDGET_IDS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetManager EXTRA_CUSTOM_EXTRAS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetManager META_DATA_APPWIDGET_PROVIDER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetManager EXTRA_CUSTOM_INFO'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetManager ACTION_APPWIDGET_OPTIONS_CHANGED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetManager ACTION_APPWIDGET_UPDATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetManager ACTION_APPWIDGET_CONFIGURE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetManager android.appwidget.AppWidgetManager getInstance(android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetManager OPTION_APPWIDGET_MIN_HEIGHT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetHost AppWidgetHost(android.content.Context, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetManager EXTRA_APPWIDGET_PROVIDER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetHost android.appwidget.AppWidgetHostView createView(android.content.Context, int, android.appwidget.AppWidgetProviderInfo) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetHostView void dispatchSaveInstanceState(android.util.SparseArray&lt;android.os.Parcelable&gt;) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetManager ACTION_APPWIDGET_PICK'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetHostView void dispatchRestoreInstanceState(android.util.SparseArray&lt;android.os.Parcelable&gt;) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetManager OPTION_APPWIDGET_MAX_WIDTH'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetProvider void onReceive(android.content.Context, android.content.Intent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetHostView android.graphics.Rect getDefaultPaddingForWidget(android.content.Context, android.content.ComponentName, android.graphics.Rect) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetHostView boolean drawChild(android.graphics.Canvas, android.view.View, long) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetHost void onProviderChanged(int, android.appwidget.AppWidgetProviderInfo) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetProviderInfo android.appwidget.AppWidgetProviderInfo clone()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetManager OPTION_APPWIDGET_HOST_CATEGORY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetProviderInfo AppWidgetProviderInfo(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetHostView android.view.ViewGroup.LayoutParams generateLayoutParams(android.util.AttributeSet)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetProviderInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetHostView android.widget.FrameLayout.LayoutParams generateLayoutParams(android.util.AttributeSet)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.appwidget.AppWidgetManager OPTION_APPWIDGET_MIN_WIDTH'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,155 @@
<root>
<item name='android.bluetooth.BluetoothAdapter ACTION_DISCOVERY_FINISHED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothAdapter EXTRA_SCAN_MODE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothDevice ACTION_NAME_CHANGED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothDevice android.bluetooth.BluetoothSocket createRfcommSocketToServiceRecord(java.util.UUID)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothDevice ACTION_CLASS_CHANGED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothHeadset ACTION_VENDOR_SPECIFIC_HEADSET_EVENT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothAdapter EXTRA_PREVIOUS_SCAN_MODE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothDevice void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothDevice EXTRA_DEVICE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothAdapter EXTRA_PREVIOUS_CONNECTION_STATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothAdapter EXTRA_PREVIOUS_STATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothSocket java.io.InputStream getInputStream()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothAdapter ACTION_DISCOVERY_STARTED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothSocket java.io.OutputStream getOutputStream()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothClass void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothHealthAppConfiguration void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothAdapter android.bluetooth.BluetoothDevice getRemoteDevice(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothAdapter ACTION_REQUEST_ENABLE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothAdapter android.bluetooth.BluetoothDevice getRemoteDevice(byte[])'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothDevice ACTION_ACL_DISCONNECT_REQUESTED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothHeadset EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothAdapter ACTION_CONNECTION_STATE_CHANGED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothDevice android.bluetooth.BluetoothSocket createInsecureRfcommSocketToServiceRecord(java.util.UUID)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothDevice EXTRA_BOND_STATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothDevice EXTRA_PREVIOUS_BOND_STATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothHeadset EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothAdapter ACTION_STATE_CHANGED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothAdapter EXTRA_STATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothDevice EXTRA_NAME'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothAdapter EXTRA_LOCAL_NAME'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothDevice EXTRA_RSSI'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothA2dp ACTION_CONNECTION_STATE_CHANGED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothAdapter EXTRA_DISCOVERABLE_DURATION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothProfile EXTRA_STATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothHeadset ACTION_CONNECTION_STATE_CHANGED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothDevice ACTION_FOUND'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothHeadset ACTION_AUDIO_STATE_CHANGED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothDevice ACTION_ACL_CONNECTED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothAdapter ACTION_SCAN_MODE_CHANGED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothAdapter EXTRA_CONNECTION_STATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothDevice ACTION_ACL_DISCONNECTED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothAdapter ACTION_LOCAL_NAME_CHANGED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothDevice EXTRA_CLASS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothDevice ACTION_UUID'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothHeadset EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_ARGS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothAdapter ACTION_REQUEST_DISCOVERABLE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothA2dp ACTION_PLAYING_STATE_CHANGED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothHeadset VENDOR_SPECIFIC_HEADSET_EVENT_COMPANY_ID_CATEGORY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothDevice EXTRA_UUID'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothDevice ACTION_BOND_STATE_CHANGED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.bluetooth.BluetoothProfile EXTRA_PREVIOUS_STATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,338 @@
<root>
<item name='android.content.pm.ActivityInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_USB_HOST'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_NFC'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_WIFI_DIRECT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_LIVE_WALLPAPER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_SIP'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageItemInfo java.lang.CharSequence loadLabel(android.content.pm.PackageManager) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ConfigurationInfo ConfigurationInfo(android.content.pm.ConfigurationInfo) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ActivityInfo void dump(android.util.Printer, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ServiceInfo void dump(android.util.Printer, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ResolveInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageItemInfo void dumpFront(android.util.Printer, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_TELEPHONY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ApplicationInfo ApplicationInfo(android.content.pm.ApplicationInfo) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_SENSOR_ACCELEROMETER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageItemInfo android.graphics.drawable.Drawable loadLogo(android.content.pm.PackageManager) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_CAMERA_FRONT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_CAMERA_AUTOFOCUS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PermissionGroupInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageItemInfo void dumpBack(android.util.Printer, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.Signature Signature(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ApplicationInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ComponentInfo ComponentInfo(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PermissionInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_SENSOR_PROXIMITY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_SIP_VOIP'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PathPermission PathPermission(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_SCREEN_PORTRAIT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ResolveInfo java.lang.CharSequence loadLabel(android.content.pm.PackageManager) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_FAKETOUCH'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PermissionInfo PermissionInfo(android.content.pm.PermissionInfo) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_USB_ACCESSORY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PermissionGroupInfo java.lang.CharSequence loadDescription(android.content.pm.PackageManager) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageItemInfo android.content.res.XmlResourceParser loadXmlMetaData(android.content.pm.PackageManager, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_CAMERA_ANY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ResolveInfo.DisplayNameComparator int compare(java.lang.Object, java.lang.Object) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ResolveInfo.DisplayNameComparator int compare(android.content.pm.ResolveInfo, android.content.pm.ResolveInfo) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.InstrumentationInfo InstrumentationInfo(android.content.pm.InstrumentationInfo) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ApplicationInfo.DisplayNameComparator int compare(java.lang.Object, java.lang.Object) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_SENSOR_BAROMETER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageItemInfo PackageItemInfo(android.content.pm.PackageItemInfo) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_WIFI'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.LabeledIntent android.graphics.drawable.Drawable loadIcon(android.content.pm.PackageManager) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ResolveInfo.DisplayNameComparator int compare(android.content.pm.ResolveInfo, android.content.pm.ResolveInfo) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageItemInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.FeatureInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.Signature Signature(byte[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ApplicationInfo.DisplayNameComparator int compare(java.lang.Object, java.lang.Object) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ActivityInfo ActivityInfo(android.content.pm.ActivityInfo) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_TOUCHSCREEN_MULTITOUCH_DISTINCT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.Signature void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageStats void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_MICROPHONE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ConfigurationInfo java.lang.String getGlEsVersion()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageItemInfo.DisplayNameComparator int compare(android.content.pm.PackageItemInfo, android.content.pm.PackageItemInfo) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_LOCATION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageStats PackageStats(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_LOCATION_GPS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_LOCATION_NETWORK'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageStats PackageStats(android.content.pm.PackageStats) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.LabeledIntent void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ComponentInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_AUDIO_LOW_LATENCY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageItemInfo PackageItemInfo(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_SCREEN_LANDSCAPE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ComponentInfo void dumpBack(android.util.Printer, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ComponentInfo void dumpFront(android.util.Printer, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageItemInfo.DisplayNameComparator int compare(java.lang.Object, java.lang.Object) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ComponentInfo ComponentInfo(android.content.pm.ComponentInfo) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.InstrumentationInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_TOUCHSCREEN'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ResolveInfo android.graphics.drawable.Drawable loadIcon(android.content.pm.PackageManager) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_CAMERA_FLASH'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ApplicationInfo.DisplayNameComparator int compare(android.content.pm.ApplicationInfo, android.content.pm.ApplicationInfo) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager EXTRA_VERIFICATION_RESULT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ResolveInfo.DisplayNameComparator int compare(java.lang.Object, java.lang.Object) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.FeatureInfo FeatureInfo(android.content.pm.FeatureInfo) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.FeatureInfo java.lang.String getGlEsVersion()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_BLUETOOTH'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ResolveInfo void dump(android.util.Printer, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageItemInfo.DisplayNameComparator int compare(java.lang.Object, java.lang.Object) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_TELEPHONY_CDMA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_CAMERA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PermissionGroupInfo PermissionGroupInfo(android.content.pm.PermissionGroupInfo) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ProviderInfo ProviderInfo(android.content.pm.ProviderInfo) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager EXTRA_VERIFICATION_ID'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_FAKETOUCH_MULTITOUCH_JAZZHAND'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ProviderInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ApplicationInfo.DisplayNameComparator int compare(android.content.pm.ApplicationInfo, android.content.pm.ApplicationInfo) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ApplicationInfo void dump(android.util.Printer, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ApplicationInfo java.lang.CharSequence loadDescription(android.content.pm.PackageManager) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_FAKETOUCH_MULTITOUCH_DISTINCT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageItemInfo android.graphics.drawable.Drawable loadIcon(android.content.pm.PackageManager) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ServiceInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageItemInfo.DisplayNameComparator int compare(android.content.pm.PackageItemInfo, android.content.pm.PackageItemInfo) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_SENSOR_LIGHT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_TELEVISION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.LabeledIntent void readFromParcel(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ServiceInfo ServiceInfo(android.content.pm.ServiceInfo) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ComponentInfo java.lang.CharSequence loadLabel(android.content.pm.PackageManager) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_TOUCHSCREEN_MULTITOUCH'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_SENSOR_COMPASS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ConfigurationInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_SENSOR_GYROSCOPE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.ResolveInfo ResolveInfo(android.content.pm.ResolveInfo) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PathPermission void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.Signature byte[] toByteArray()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHAND'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PermissionInfo java.lang.CharSequence loadDescription(android.content.pm.PackageManager) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.PackageManager FEATURE_TELEPHONY_GSM'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.pm.LabeledIntent java.lang.CharSequence loadLabel(android.content.pm.PackageManager) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,134 @@
<root>
<item name='android.content.res.Resources void parseBundleExtra(java.lang.String, android.util.AttributeSet, android.os.Bundle) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.ColorStateList android.content.res.ColorStateList createFromXml(android.content.res.Resources, org.xmlpull.v1.XmlPullParser) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.Resources.Theme boolean resolveAttribute(int, android.util.TypedValue, boolean) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.Resources.Theme android.content.res.TypedArray obtainStyledAttributes(android.util.AttributeSet, int[], int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.AssetFileDescriptor void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.Configuration int compareTo(java.lang.Object) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.Resources.Theme android.content.res.TypedArray obtainStyledAttributes(int, int[]) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.Resources void parseBundleExtras(android.content.res.XmlResourceParser, android.os.Bundle) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.Configuration void setTo(android.content.res.Configuration) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.Configuration void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.Configuration int updateFrom(android.content.res.Configuration) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.ObbInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.ObbScanner android.content.res.ObbInfo getObbInfo(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.TypedArray boolean getValue(int, android.util.TypedValue) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.Resources.Theme android.content.res.TypedArray obtainStyledAttributes(int[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.Resources.Theme android.content.res.TypedArray obtainStyledAttributes(android.util.AttributeSet, int[], int, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.Resources.Theme void setTo(android.content.res.Resources.Theme) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.Resources java.io.InputStream openRawResource(int, android.util.TypedValue) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.Resources Resources(android.content.res.AssetManager, android.util.DisplayMetrics, android.content.res.Configuration) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.ColorStateList ColorStateList(int[][], int[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.Configuration Configuration(android.content.res.Configuration) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.Resources android.content.res.Resources.Theme newTheme()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.AssetFileDescriptor.AutoCloseOutputStream void write(byte[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.Resources void parseBundleExtra(java.lang.String, android.util.AttributeSet, android.os.Bundle) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.Configuration int diff(android.content.res.Configuration) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.AssetManager android.content.res.AssetFileDescriptor openNonAssetFd(int, java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.AssetManager java.io.InputStream open(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.AssetManager.AssetInputStream int read(byte[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.TypedArray java.lang.String getPositionDescription()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.ColorStateList android.content.res.ColorStateList withAlpha(int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.AssetManager java.io.InputStream open(java.lang.String, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.Resources void parseBundleExtras(android.content.res.XmlResourceParser, android.os.Bundle) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.ColorStateList void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.AssetManager java.lang.String[] list(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.AssetFileDescriptor.AutoCloseInputStream int read(byte[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.Configuration void readFromParcel(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.AssetManager android.content.res.AssetFileDescriptor openFd(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.AssetManager java.lang.String[] getLocales()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.AssetFileDescriptor.AutoCloseInputStream AutoCloseInputStream(android.content.res.AssetFileDescriptor) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.Resources android.content.res.TypedArray obtainAttributes(android.util.AttributeSet, int[]) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.AssetFileDescriptor.AutoCloseOutputStream AutoCloseOutputStream(android.content.res.AssetFileDescriptor) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.ColorStateList android.content.res.ColorStateList createFromXml(android.content.res.Resources, org.xmlpull.v1.XmlPullParser) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.Configuration int compareTo(android.content.res.Configuration) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.content.res.AssetManager android.content.res.AssetFileDescriptor openNonAssetFd(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,320 @@
<root>
<item name='android.database.DatabaseUtils android.os.ParcelFileDescriptor blobFileDescriptorForQuery(android.database.sqlite.SQLiteStatement, java.lang.String[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.CursorJoiner.Result RIGHT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void cursorIntToContentValuesIfPresent(android.database.Cursor, android.content.ContentValues, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void dumpCurrentRow(android.database.Cursor, java.lang.StringBuilder) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void cursorRowToContentValues(android.database.Cursor, android.content.ContentValues) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void cursorLongToContentValues(android.database.Cursor, java.lang.String, android.content.ContentValues) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils java.lang.String stringForQuery(android.database.sqlite.SQLiteDatabase, java.lang.String, java.lang.String[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void appendEscapedSQLString(java.lang.StringBuilder, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void cursorStringToContentValues(android.database.Cursor, java.lang.String, android.content.ContentValues, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void readExceptionWithFileNotFoundExceptionFromParcel(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.CursorJoiner CursorJoiner(android.database.Cursor, java.lang.String[], android.database.Cursor, java.lang.String[]) 3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void cursorIntToContentValues(android.database.Cursor, java.lang.String, android.content.ContentValues, java.lang.String) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.Cursor int getColumnIndexOrThrow(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void cursorLongToContentValues(android.database.Cursor, java.lang.String, android.content.ContentValues, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void cursorStringToContentValuesIfPresent(android.database.Cursor, android.content.ContentValues, java.lang.String) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils.InsertHelper long insert(android.content.ContentValues) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils long queryNumEntries(android.database.sqlite.SQLiteDatabase, java.lang.String, java.lang.String, java.lang.String[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void cursorLongToContentValuesIfPresent(android.database.Cursor, android.content.ContentValues, java.lang.String) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void dumpCurrentRow(android.database.Cursor, java.lang.StringBuilder) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils java.lang.String stringForQuery(android.database.sqlite.SQLiteStatement, java.lang.String[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void cursorIntToContentValues(android.database.Cursor, java.lang.String, android.content.ContentValues) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void cursorStringToInsertHelper(android.database.Cursor, java.lang.String, android.database.DatabaseUtils.InsertHelper, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void cursorStringToContentValuesIfPresent(android.database.Cursor, android.content.ContentValues, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.MatrixCursor MatrixCursor(java.lang.String[], int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void cursorStringToContentValues(android.database.Cursor, java.lang.String, android.content.ContentValues) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void cursorLongToContentValues(android.database.Cursor, java.lang.String, android.content.ContentValues) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void dumpCurrentRow(android.database.Cursor) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.CursorJoiner CursorJoiner(android.database.Cursor, java.lang.String[], android.database.Cursor, java.lang.String[]) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void cursorDoubleToContentValuesIfPresent(android.database.Cursor, android.content.ContentValues, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.CursorWindow java.lang.String getString(int, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils java.lang.String[] appendSelectionArgs(java.lang.String[], java.lang.String[]) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.CursorJoiner CursorJoiner(android.database.Cursor, java.lang.String[], android.database.Cursor, java.lang.String[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils.InsertHelper long replace(android.content.ContentValues) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void cursorLongToContentValues(android.database.Cursor, java.lang.String, android.content.ContentValues, java.lang.String) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.MatrixCursor.RowBuilder android.database.MatrixCursor.RowBuilder add(java.lang.Object)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void cursorShortToContentValuesIfPresent(android.database.Cursor, android.content.ContentValues, java.lang.String) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.MatrixCursor MatrixCursor(java.lang.String[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.CrossProcessCursorWrapper void fillWindow(int, android.database.CursorWindow) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.AbstractWindowedCursor java.lang.String getString(int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void cursorIntToContentValuesIfPresent(android.database.Cursor, android.content.ContentValues, java.lang.String) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void createDbFromSqlStatements(android.content.Context, java.lang.String, int, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void appendEscapedSQLString(java.lang.StringBuilder, java.lang.String) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.AbstractCursor void copyStringToBuffer(int, android.database.CharArrayBuffer) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void appendValueToSql(java.lang.StringBuilder, java.lang.Object) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.MatrixCursor void addRow(java.lang.Object[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils java.lang.String getCollationKey(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils long longForQuery(android.database.sqlite.SQLiteStatement, java.lang.String[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.Cursor void copyStringToBuffer(int, android.database.CharArrayBuffer) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.CursorJoiner CursorJoiner(android.database.Cursor, java.lang.String[], android.database.Cursor, java.lang.String[]) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils long queryNumEntries(android.database.sqlite.SQLiteDatabase, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DefaultDatabaseErrorHandler void onCorruption(android.database.sqlite.SQLiteDatabase) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils java.lang.String sqlEscapeString(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void writeExceptionToParcel(android.os.Parcel, java.lang.Exception) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void cursorShortToContentValuesIfPresent(android.database.Cursor, android.content.ContentValues, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void cursorDoubleToContentValuesIfPresent(android.database.Cursor, android.content.ContentValues, java.lang.String) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.Cursor byte[] getBlob(int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void createDbFromSqlStatements(android.content.Context, java.lang.String, int, java.lang.String) 3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void cursorFloatToContentValuesIfPresent(android.database.Cursor, android.content.ContentValues, java.lang.String) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void dumpCurrentRow(android.database.Cursor, java.io.PrintStream) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseErrorHandler void onCorruption(android.database.sqlite.SQLiteDatabase) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void dumpCursor(android.database.Cursor, java.lang.StringBuilder) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils java.lang.String dumpCurrentRowToString(android.database.Cursor)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void cursorStringToInsertHelper(android.database.Cursor, java.lang.String, android.database.DatabaseUtils.InsertHelper, int) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void cursorStringToContentValues(android.database.Cursor, java.lang.String, android.content.ContentValues) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils android.os.ParcelFileDescriptor blobFileDescriptorForQuery(android.database.sqlite.SQLiteDatabase, java.lang.String, java.lang.String[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.CrossProcessCursor void fillWindow(int, android.database.CursorWindow) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.AbstractWindowedCursor byte[] getBlob(int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void cursorDoubleToCursorValues(android.database.Cursor, java.lang.String, android.content.ContentValues) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.AbstractCursor int getColumnIndexOrThrow(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void cursorDoubleToContentValues(android.database.Cursor, java.lang.String, android.content.ContentValues, java.lang.String) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void dumpCurrentRow(android.database.Cursor, java.io.PrintStream) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils java.lang.String getHexCollationKey(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void readExceptionFromParcel(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.AbstractCursor void fillWindow(int, android.database.CursorWindow) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils long longForQuery(android.database.sqlite.SQLiteDatabase, java.lang.String, java.lang.String[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils java.lang.String dumpCurrentRowToString(android.database.Cursor) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.AbstractCursor int getColumnIndex(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.CursorWrapper int getColumnIndex(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.CursorJoiner.Result LEFT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.CursorJoiner java.util.Iterator&lt;android.database.CursorJoiner.Result&gt; iterator()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.MatrixCursor java.lang.String[] getColumnNames()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void readExceptionWithOperationApplicationExceptionFromParcel(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void cursorDoubleToCursorValues(android.database.Cursor, java.lang.String, android.content.ContentValues) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void cursorStringToContentValues(android.database.Cursor, java.lang.String, android.content.ContentValues, java.lang.String) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void bindObjectToProgram(android.database.sqlite.SQLiteProgram, int, java.lang.Object) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.AbstractCursor byte[] getBlob(int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils java.lang.String dumpCursorToString(android.database.Cursor)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils java.lang.String[] appendSelectionArgs(java.lang.String[], java.lang.String[])'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils java.lang.String sqlEscapeString(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.MatrixCursor android.database.MatrixCursor.RowBuilder newRow()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.AbstractCursor java.lang.String[] getColumnNames()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.Cursor int getColumnIndex(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.CursorWrapper void copyStringToBuffer(int, android.database.CharArrayBuffer) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void cursorIntToContentValues(android.database.Cursor, java.lang.String, android.content.ContentValues, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void cursorLongToContentValuesIfPresent(android.database.Cursor, android.content.ContentValues, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.AbstractWindowedCursor void copyStringToBuffer(int, android.database.CharArrayBuffer) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void cursorIntToContentValues(android.database.Cursor, java.lang.String, android.content.ContentValues) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void cursorDoubleToContentValues(android.database.Cursor, java.lang.String, android.content.ContentValues, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void cursorFloatToContentValuesIfPresent(android.database.Cursor, android.content.ContentValues, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils long queryNumEntries(android.database.sqlite.SQLiteDatabase, java.lang.String, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.CursorWrapper int getColumnIndexOrThrow(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.Cursor java.lang.String[] getColumnNames()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.CursorWindow byte[] getBlob(int, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.CursorWindow void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.DatabaseUtils void dumpCursor(android.database.Cursor, java.io.PrintStream) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.CursorJoiner.Result BOTH'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,104 @@
<root>
<item name='android.database.sqlite.SQLiteDatabase android.database.Cursor query(boolean, java.lang.String, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String, java.lang.String, android.os.CancellationSignal) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteQueryBuilder java.lang.String buildQuery(java.lang.String[], java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteQueryBuilder java.lang.String buildUnionSubQuery(java.lang.String, java.lang.String[], java.util.Set&lt;java.lang.String&gt;, int, java.lang.String, java.lang.String, java.lang.String[], java.lang.String, java.lang.String) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteDatabase android.database.sqlite.SQLiteDatabase openDatabase(java.lang.String, android.database.sqlite.SQLiteDatabase.CursorFactory, int, android.database.DatabaseErrorHandler)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteQueryBuilder java.lang.String buildQuery(java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String, java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteDatabase android.database.Cursor queryWithFactory(android.database.sqlite.SQLiteDatabase.CursorFactory, boolean, java.lang.String, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String, java.lang.String, android.os.CancellationSignal) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteDatabase android.database.sqlite.SQLiteDatabase openDatabase(java.lang.String, android.database.sqlite.SQLiteDatabase.CursorFactory, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteDatabase android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.io.File, android.database.sqlite.SQLiteDatabase.CursorFactory)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteDatabase android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, android.database.sqlite.SQLiteDatabase.CursorFactory, android.database.DatabaseErrorHandler)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteQueryBuilder void appendColumns(java.lang.StringBuilder, java.lang.String[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteQueryBuilder java.lang.String buildUnionQuery(java.lang.String[], java.lang.String, java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteDatabase android.database.Cursor query(java.lang.String, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteDatabase java.util.Map&lt;java.lang.String,java.lang.String&gt; getSyncedTables()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteQueryBuilder android.database.Cursor query(android.database.sqlite.SQLiteDatabase, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteQueryBuilder java.lang.String buildUnionSubQuery(java.lang.String, java.lang.String[], java.util.Set&lt;java.lang.String&gt;, int, java.lang.String, java.lang.String, java.lang.String, java.lang.String) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteDatabase java.lang.String findEditTable(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteQueryBuilder java.lang.String buildUnionSubQuery(java.lang.String, java.lang.String[], java.util.Set&lt;java.lang.String&gt;, int, java.lang.String, java.lang.String, java.lang.String, java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteQueryBuilder android.database.Cursor query(android.database.sqlite.SQLiteDatabase, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String, java.lang.String, android.os.CancellationSignal) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteDatabase android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.io.File, android.database.sqlite.SQLiteDatabase.CursorFactory) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteQueryBuilder java.lang.String buildUnionSubQuery(java.lang.String, java.lang.String[], java.util.Set&lt;java.lang.String&gt;, int, java.lang.String, java.lang.String, java.lang.String, java.lang.String) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteQueryBuilder java.lang.String buildUnionSubQuery(java.lang.String, java.lang.String[], java.util.Set&lt;java.lang.String&gt;, int, java.lang.String, java.lang.String, java.lang.String[], java.lang.String, java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteCursor int getColumnIndex(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteDatabase android.database.Cursor query(boolean, java.lang.String, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String, java.lang.String) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteQueryBuilder java.lang.String buildUnionSubQuery(java.lang.String, java.lang.String[], java.util.Set&lt;java.lang.String&gt;, int, java.lang.String, java.lang.String, java.lang.String[], java.lang.String, java.lang.String) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteQueryBuilder android.database.Cursor query(android.database.sqlite.SQLiteDatabase, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteDatabase android.database.sqlite.SQLiteDatabase create(android.database.sqlite.SQLiteDatabase.CursorFactory)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteQueryBuilder void appendWhereEscapeString(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteQueryBuilder java.lang.String buildQueryString(boolean, java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteDatabase android.database.Cursor query(java.lang.String, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteDatabase android.database.Cursor queryWithFactory(android.database.sqlite.SQLiteDatabase.CursorFactory, boolean, java.lang.String, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String, java.lang.String) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteQueryBuilder void appendColumns(java.lang.StringBuilder, java.lang.String[]) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteQueryBuilder java.lang.String buildUnionQuery(java.lang.String[], java.lang.String, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteQueryBuilder void appendWhere(java.lang.CharSequence) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.database.sqlite.SQLiteDatabase android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, android.database.sqlite.SQLiteDatabase.CursorFactory)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,32 @@
<root>
<item name='android.drm.DrmStore.ConstraintsColumns MAX_REPEAT_COUNT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.drm.DrmStore.ConstraintsColumns LICENSE_EXPIRY_TIME'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.drm.DrmInfoRequest SUBSCRIPTION_ID'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.drm.DrmStore.ConstraintsColumns EXTENDED_METADATA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.drm.DrmInfoRequest ACCOUNT_ID'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.drm.DrmEvent DRM_INFO_OBJECT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.drm.DrmStore.ConstraintsColumns LICENSE_AVAILABLE_TIME'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.drm.DrmStore.ConstraintsColumns LICENSE_START_TIME'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.drm.DrmStore.ConstraintsColumns REMAINING_REPEAT_COUNT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.drm.DrmEvent DRM_INFO_STATUS_OBJECT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,131 @@
<root>
<item name='android.gesture.GestureStroke java.lang.Object clone()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureOverlayView void draw(android.graphics.Canvas) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureUtils float[] spatialSampling(android.gesture.Gesture, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureStore void removeGesture(java.lang.String, android.gesture.Gesture) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureLibraries android.gesture.GestureLibrary fromPrivateFile(android.content.Context, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureUtils float[] temporalSampling(android.gesture.GestureStroke, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.Gesture java.util.ArrayList&lt;android.gesture.GestureStroke&gt; getStrokes()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.Gesture java.lang.Object clone()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureStroke GestureStroke(java.util.ArrayList&lt;android.gesture.GesturePoint&gt;) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureUtils float[] spatialSampling(android.gesture.Gesture, int, boolean)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureLibraries android.gesture.GestureLibrary fromFile(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureOverlayView GestureOverlayView(android.content.Context, android.util.AttributeSet, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureStroke android.gesture.OrientedBoundingBox computeOrientedBoundingBox()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureOverlayView java.util.ArrayList&lt;android.gesture.GesturePoint&gt; getCurrentStroke()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureUtils android.gesture.OrientedBoundingBox computeOrientedBoundingBox(java.util.ArrayList&lt;android.gesture.GesturePoint&gt;)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.Gesture void addStroke(android.gesture.GestureStroke) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureLibraries android.gesture.GestureLibrary fromFile(java.io.File)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureStore void addGesture(java.lang.String, android.gesture.Gesture) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureUtils float[] spatialSampling(android.gesture.Gesture, int, boolean) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureOverlayView boolean dispatchTouchEvent(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureOverlayView android.graphics.Path getGesturePath(android.graphics.Path) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureStore java.util.Set&lt;java.lang.String&gt; getGestureEntries()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureUtils android.gesture.OrientedBoundingBox computeOrientedBoundingBox(java.util.ArrayList&lt;android.gesture.GesturePoint&gt;) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureLibrary mStore'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureOverlayView android.graphics.Path getGesturePath(android.graphics.Path)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureUtils float[] temporalSampling(android.gesture.GestureStroke, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureLibraries android.gesture.GestureLibrary fromRawResource(android.content.Context, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.Gesture void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.Gesture android.graphics.RectF getBoundingBox()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureOverlayView GestureOverlayView(android.content.Context, android.util.AttributeSet) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureOverlayView android.graphics.Path getGesturePath()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureStore java.util.ArrayList&lt;android.gesture.Prediction&gt; recognize(android.gesture.Gesture) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureLibraries android.gesture.GestureLibrary fromPrivateFile(android.content.Context, java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureLibrary java.util.ArrayList&lt;android.gesture.Prediction&gt; recognize(android.gesture.Gesture) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GesturePoint java.lang.Object clone()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureUtils android.gesture.OrientedBoundingBox computeOrientedBoundingBox(float[])'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureLibrary java.util.Set&lt;java.lang.String&gt; getGestureEntries()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureLibrary void removeGesture(java.lang.String, android.gesture.Gesture) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureUtils float[] spatialSampling(android.gesture.Gesture, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureUtils android.gesture.OrientedBoundingBox computeOrientedBoundingBox(float[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureOverlayView GestureOverlayView(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureLibrary void addGesture(java.lang.String, android.gesture.Gesture) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.gesture.GestureOverlayView GestureOverlayView(android.content.Context, android.util.AttributeSet, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,239 @@
<root>
<item name='android.graphics.Bitmap.CompressFormat WEBP'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Bitmap.CompressFormat PNG'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Canvas.EdgeType BW'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Path.FillType INVERSE_EVEN_ODD'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Matrix.ScaleToFit FILL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Bitmap.CompressFormat JPEG'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Paint.Cap BUTT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.PorterDuff.Mode DST_IN'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Canvas.VertexMode TRIANGLES'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Region.Op REPLACE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.PorterDuff.Mode DST_OVER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.PorterDuff.Mode XOR'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Paint.Style FILL_AND_STROKE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.PathDashPathEffect.Style MORPH'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Shader.TileMode REPEAT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Path.Direction CCW'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Bitmap.Config RGB_565'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.PorterDuff.Mode ADD'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.PorterDuff.Mode DARKEN'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Canvas.EdgeType AA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Rect void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.PathDashPathEffect.Style ROTATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Bitmap void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.BlurMaskFilter.Blur INNER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Paint.Align CENTER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.PathDashPathEffect.Style TRANSLATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Point void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Region.Op REVERSE_DIFFERENCE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.PorterDuff.Mode SRC_OVER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Bitmap.Config ARGB_4444'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Matrix.ScaleToFit CENTER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Region.Op UNION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Bitmap.Config ARGB_8888'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Interpolator.Result NORMAL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Canvas.VertexMode TRIANGLE_STRIP'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.PorterDuff.Mode SRC'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Shader.TileMode CLAMP'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Paint.Align RIGHT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.PorterDuff.Mode SCREEN'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.PorterDuff.Mode MULTIPLY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Region void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Path.Direction CW'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.BlurMaskFilter.Blur SOLID'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Path.FillType INVERSE_WINDING'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Interpolator.Result FREEZE_END'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.PorterDuff.Mode DST_OUT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Paint.Style STROKE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Bitmap.Config ALPHA_8'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Paint.Join BEVEL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.PorterDuff.Mode SRC_IN'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.PorterDuff.Mode SRC_ATOP'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Canvas.VertexMode TRIANGLE_FAN'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Matrix.ScaleToFit START'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.BlurMaskFilter.Blur OUTER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.PointF void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.PorterDuff.Mode DST'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Paint.Style FILL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.PorterDuff.Mode DST_ATOP'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Path.FillType WINDING'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.RectF void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.PorterDuff.Mode CLEAR'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Path.FillType EVEN_ODD'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Paint.Cap SQUARE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Region.Op INTERSECT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Shader.TileMode MIRROR'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Region.Op XOR'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Matrix.ScaleToFit END'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Interpolator.Result FREEZE_START'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.AvoidXfermode.Mode AVOID'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.PorterDuff.Mode OVERLAY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.AvoidXfermode.Mode TARGET'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Region.Op DIFFERENCE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.PorterDuff.Mode LIGHTEN'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Paint.Cap ROUND'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Paint.Join MITER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.BlurMaskFilter.Blur NORMAL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Paint.Align LEFT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.Paint.Join ROUND'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.PorterDuff.Mode SRC_OUT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,89 @@
<root>
<item name='android.graphics.drawable.GradientDrawable.Orientation BOTTOM_TOP'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.drawable.InsetDrawable void draw(android.graphics.Canvas) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.drawable.LayerDrawable void invalidateDrawable(android.graphics.drawable.Drawable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.drawable.Drawable void draw(android.graphics.Canvas) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.drawable.ColorDrawable void draw(android.graphics.Canvas) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.drawable.PictureDrawable void draw(android.graphics.Canvas) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.drawable.TransitionDrawable void draw(android.graphics.Canvas) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.drawable.Drawable.Callback void invalidateDrawable(android.graphics.drawable.Drawable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.drawable.GradientDrawable.Orientation LEFT_RIGHT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.drawable.NinePatchDrawable void draw(android.graphics.Canvas) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.drawable.ClipDrawable void invalidateDrawable(android.graphics.drawable.Drawable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.drawable.InsetDrawable void invalidateDrawable(android.graphics.drawable.Drawable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.drawable.ShapeDrawable void draw(android.graphics.Canvas) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.drawable.ScaleDrawable void draw(android.graphics.Canvas) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.drawable.GradientDrawable.Orientation BL_TR'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.drawable.ClipDrawable void draw(android.graphics.Canvas) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.drawable.GradientDrawable void draw(android.graphics.Canvas) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.drawable.DrawableContainer void invalidateDrawable(android.graphics.drawable.Drawable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.drawable.RotateDrawable void draw(android.graphics.Canvas) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.drawable.GradientDrawable.Orientation TL_BR'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.drawable.DrawableContainer void draw(android.graphics.Canvas) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.drawable.RotateDrawable void invalidateDrawable(android.graphics.drawable.Drawable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.drawable.GradientDrawable.Orientation RIGHT_LEFT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.drawable.GradientDrawable.Orientation BR_TL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.drawable.BitmapDrawable void draw(android.graphics.Canvas) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.drawable.GradientDrawable.Orientation TOP_BOTTOM'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.drawable.LayerDrawable void draw(android.graphics.Canvas) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.drawable.ScaleDrawable void invalidateDrawable(android.graphics.drawable.Drawable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.graphics.drawable.GradientDrawable.Orientation TR_BL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,239 @@
<root>
<item name='android.hardware.Camera.Parameters SCENE_MODE_CANDLELIGHT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters SCENE_MODE_BEACH'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.SensorManager float[] getOrientation(float[], float[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters FOCUS_MODE_INFINITY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters SCENE_MODE_NIGHT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters SCENE_MODE_STEADYPHOTO'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters SCENE_MODE_THEATRE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera void getCameraInfo(int, android.hardware.Camera.CameraInfo) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters SCENE_MODE_SPORTS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters FOCUS_MODE_CONTINUOUS_PICTURE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters WHITE_BALANCE_WARM_FLUORESCENT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters void set(java.lang.String, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters EFFECT_SOLARIZE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters WHITE_BALANCE_FLUORESCENT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters EFFECT_BLACKBOARD'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters java.util.List&lt;java.lang.Integer&gt; getSupportedPreviewFormats()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters EFFECT_AQUA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters WHITE_BALANCE_CLOUDY_DAYLIGHT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.SensorManager void getRotationMatrixFromVector(float[], float[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters EFFECT_POSTERIZE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters WHITE_BALANCE_DAYLIGHT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera ACTION_NEW_VIDEO'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters SCENE_MODE_PARTY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters WHITE_BALANCE_TWILIGHT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters SCENE_MODE_NIGHT_PORTRAIT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters void setFlashMode(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters SCENE_MODE_SNOW'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters WHITE_BALANCE_AUTO'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters FOCUS_MODE_CONTINUOUS_VIDEO'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters FOCUS_MODE_AUTO'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters ANTIBANDING_50HZ'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters void set(java.lang.String, java.lang.String) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.SensorEvent values'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters void setGpsProcessingMethod(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters FLASH_MODE_TORCH'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters SCENE_MODE_SUNSET'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters SCENE_MODE_PORTRAIT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters EFFECT_MONO'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera void setParameters(android.hardware.Camera.Parameters) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters FLASH_MODE_AUTO'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters SCENE_MODE_HDR'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.SensorManager void getRotationMatrixFromVector(float[], float[]) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters WHITE_BALANCE_SHADE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters SCENE_MODE_LANDSCAPE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.SensorManager void getAngleChange(float[], float[], float[]) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters FOCUS_MODE_FIXED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters EFFECT_NONE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters EFFECT_SEPIA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.SensorManager void getQuaternionFromVector(float[], float[]) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera ACTION_NEW_PICTURE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters SCENE_MODE_BARCODE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters FOCUS_MODE_MACRO'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters FLASH_MODE_OFF'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.SensorManager boolean remapCoordinateSystem(float[], int, int, float[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters ANTIBANDING_AUTO'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters ANTIBANDING_OFF'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters SCENE_MODE_FIREWORKS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters FLASH_MODE_RED_EYE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters void setColorEffect(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters java.util.List&lt;java.lang.Integer&gt; getSupportedPictureFormats()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters FOCUS_MODE_EDOF'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera android.hardware.Camera.Parameters getParameters()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters android.hardware.Camera.Size getJpegThumbnailSize()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters EFFECT_WHITEBOARD'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.SensorManager float getInclination(float[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.SensorManager void getAngleChange(float[], float[], float[]) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters SCENE_MODE_AUTO'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters void setAntibanding(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters WHITE_BALANCE_INCANDESCENT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters void setSceneMode(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters void setWhiteBalance(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters SCENE_MODE_ACTION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters java.lang.String flatten()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters EFFECT_NEGATIVE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.SensorManager boolean remapCoordinateSystem(float[], int, int, float[]) 3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera android.hardware.Camera open(int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters FLASH_MODE_ON'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters void setFocusMode(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.Camera.Parameters ANTIBANDING_60HZ'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,11 @@
<root>
<item name='android.hardware.display.DisplayManager DISPLAY_CATEGORY_PRESENTATION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.display.DisplayManager android.view.Display[] getDisplays(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.display.DisplayManager android.view.Display[] getDisplays()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,11 @@
<root>
<item name='android.hardware.input.InputManager ACTION_QUERY_KEYBOARD_LAYOUTS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.input.InputManager int[] getInputDeviceIds()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.input.InputManager META_DATA_KEYBOARD_LAYOUTS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,71 @@
<root>
<item name='android.hardware.usb.UsbManager EXTRA_DEVICE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.usb.UsbDevice void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.usb.UsbDeviceConnection boolean releaseInterface(android.hardware.usb.UsbInterface) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.usb.UsbAccessory void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.usb.UsbDevice java.lang.String getDeviceName(int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.usb.UsbDevice android.hardware.usb.UsbInterface getInterface(int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.usb.UsbManager EXTRA_ACCESSORY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.usb.UsbDeviceConnection byte[] getRawDescriptors()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.usb.UsbDeviceConnection java.lang.String getSerial()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.usb.UsbDeviceConnection android.hardware.usb.UsbRequest requestWait()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.usb.UsbManager ACTION_USB_ACCESSORY_DETACHED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.usb.UsbDeviceConnection boolean claimInterface(android.hardware.usb.UsbInterface, boolean) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.usb.UsbManager android.hardware.usb.UsbDeviceConnection openDevice(android.hardware.usb.UsbDevice) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.usb.UsbRequest boolean queue(java.nio.ByteBuffer, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.usb.UsbDeviceConnection int bulkTransfer(android.hardware.usb.UsbEndpoint, byte[], int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.usb.UsbManager EXTRA_PERMISSION_GRANTED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.usb.UsbManager ACTION_USB_DEVICE_ATTACHED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.usb.UsbRequest boolean initialize(android.hardware.usb.UsbDeviceConnection, android.hardware.usb.UsbEndpoint) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.usb.UsbManager ACTION_USB_DEVICE_DETACHED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.usb.UsbInterface android.hardware.usb.UsbEndpoint getEndpoint(int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.usb.UsbEndpoint void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.usb.UsbInterface void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.hardware.usb.UsbManager ACTION_USB_ACCESSORY_ATTACHED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,173 @@
<root>
<item name='android.inputmethodservice.ExtractEditText ExtractEditText(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.Keyboard android.inputmethodservice.Keyboard.Row createRowFromXml(android.content.res.Resources, android.content.res.XmlResourceParser) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.InputMethodService void onExtractingInputChanged(android.view.inputmethod.EditorInfo) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.KeyboardView boolean onTouchEvent(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.InputMethodService void onConfigurationChanged(android.content.res.Configuration) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.AbstractInputMethodService android.os.IBinder onBind(android.content.Intent)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.KeyboardView boolean onHoverEvent(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.AbstractInputMethodService android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl onCreateInputMethodSessionInterface()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodImpl void revokeSession(android.view.inputmethod.InputMethodSession) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.InputMethodService.InputMethodImpl void changeInputMethodSubtype(android.view.inputmethod.InputMethodSubtype) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.AbstractInputMethodService android.view.KeyEvent.DispatcherState getKeyDispatcherState()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.Keyboard Keyboard(android.content.Context, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.InputMethodService void onComputeInsets(android.inputmethodservice.InputMethodService.Insets) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.InputMethodService boolean onKeyDown(int, android.view.KeyEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.KeyboardView void onDraw(android.graphics.Canvas) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.ExtractEditText void setExtractedText(android.view.inputmethod.ExtractedText) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.Keyboard.Key Key(android.content.res.Resources, android.inputmethodservice.Keyboard.Row, int, int, android.content.res.XmlResourceParser) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.InputMethodService void onUpdateExtractingVisibility(android.view.inputmethod.EditorInfo) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.Keyboard Keyboard(android.content.Context, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.KeyboardView KeyboardView(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.Keyboard.Key Key(android.inputmethodservice.Keyboard.Row) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.InputMethodService boolean onKeyUp(int, android.view.KeyEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.Keyboard Keyboard(android.content.Context, int, java.lang.CharSequence, int, int) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.Keyboard android.inputmethodservice.Keyboard.Key createKeyFromXml(android.content.res.Resources, android.inputmethodservice.Keyboard.Row, int, int, android.content.res.XmlResourceParser) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.KeyboardView boolean onLongPress(android.inputmethodservice.Keyboard.Key) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.Keyboard.Key int[] getCurrentDrawableState()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.InputMethodService boolean onGenericMotionEvent(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.InputMethodService void setExtractView(android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.InputMethodService void onUpdateExtractingViews(android.view.inputmethod.EditorInfo) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl void dispatchKeyEvent(int, android.view.KeyEvent, android.view.inputmethod.InputMethodSession.EventCallback) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.InputMethodService android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodImpl onCreateInputMethodInterface()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.Keyboard.Key Key(android.content.res.Resources, android.inputmethodservice.Keyboard.Row, int, int, android.content.res.XmlResourceParser) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.AbstractInputMethodService android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodImpl onCreateInputMethodInterface()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodImpl void setSessionEnabled(android.view.inputmethod.InputMethodSession, boolean) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.KeyboardView KeyboardView(android.content.Context, android.util.AttributeSet) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.ExtractEditText ExtractEditText(android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.AbstractInputMethodService void dump(java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.KeyboardView KeyboardView(android.content.Context, android.util.AttributeSet, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.InputMethodService void dump(java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.Keyboard android.inputmethodservice.Keyboard.Key createKeyFromXml(android.content.res.Resources, android.inputmethodservice.Keyboard.Row, int, int, android.content.res.XmlResourceParser) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.InputMethodService void setCandidatesView(android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.AbstractInputMethodService android.os.IBinder onBind(android.content.Intent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.InputMethodService android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl onCreateInputMethodSessionInterface()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.InputMethodService.InputMethodImpl void bindInput(android.view.inputmethod.InputBinding) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.KeyboardView void onClick(android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.AbstractInputMethodService boolean onGenericMotionEvent(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.InputMethodService boolean onKeyMultiple(int, int, android.view.KeyEvent) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.Keyboard.Row Row(android.content.res.Resources, android.inputmethodservice.Keyboard, android.content.res.XmlResourceParser) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.ExtractEditText ExtractEditText(android.content.Context, android.util.AttributeSet, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.Keyboard android.inputmethodservice.Keyboard.Row createRowFromXml(android.content.res.Resources, android.content.res.XmlResourceParser)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.KeyboardView KeyboardView(android.content.Context, android.util.AttributeSet, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.Keyboard.Row Row(android.content.res.Resources, android.inputmethodservice.Keyboard, android.content.res.XmlResourceParser) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.InputMethodService void setInputView(android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.Keyboard Keyboard(android.content.Context, int, int, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodImpl void createSession(android.view.inputmethod.InputMethod.SessionCallback) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.Keyboard Keyboard(android.content.Context, int, java.lang.CharSequence, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.inputmethodservice.InputMethodService void onCurrentInputMethodSubtypeChanged(android.view.inputmethod.InputMethodSubtype) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,35 @@
<root>
<item name='android.location.LocationManager PASSIVE_PROVIDER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.location.Address void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.location.LocationManager KEY_PROXIMITY_ENTERING'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.location.Criteria void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.location.LocationManager KEY_STATUS_CHANGED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.location.LocationManager GPS_PROVIDER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.location.LocationManager PROVIDERS_CHANGED_ACTION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.location.LocationManager NETWORK_PROVIDER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.location.LocationManager KEY_PROVIDER_ENABLED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.location.LocationManager KEY_LOCATION_CHANGED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.location.Location void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,179 @@
<root>
<item name='android.media.RingtoneManager EXTRA_RINGTONE_EXISTING_URI'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.RingtoneManager EXTRA_RINGTONE_SHOW_SILENT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.ExifInterface TAG_GPS_PROCESSING_METHOD'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.ExifInterface TAG_GPS_ALTITUDE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.ExifInterface TAG_IMAGE_LENGTH'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.AudioManager PROPERTY_OUTPUT_FRAMES_PER_BUFFER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.MediaFormat KEY_FRAME_RATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.RingtoneManager EXTRA_RINGTONE_PICKED_URI'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.ExifInterface TAG_DATETIME'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.MediaFormat KEY_CHANNEL_COUNT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.ExifInterface TAG_GPS_DATESTAMP'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.MediaFormat KEY_AAC_PROFILE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.AudioManager EXTRA_VIBRATE_SETTING'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.AudioManager VIBRATE_SETTING_CHANGED_ACTION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.MediaFormat KEY_FLAC_COMPRESSION_LEVEL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.RingtoneManager EXTRA_RINGTONE_DEFAULT_URI'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.RingtoneManager ACTION_RINGTONE_PICKER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.AudioManager EXTRA_RINGER_MODE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.AudioManager EXTRA_SCO_AUDIO_STATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.MediaPlayer MEDIA_MIMETYPE_TEXT_SUBRIP'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.MediaFormat KEY_HEIGHT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.MediaFormat KEY_IS_ADTS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.ExifInterface TAG_MODEL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.MediaFormat KEY_MIME'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.ExifInterface TAG_FOCAL_LENGTH'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.MediaFormat KEY_WIDTH'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.ExifInterface TAG_EXPOSURE_TIME'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.MediaFormat KEY_I_FRAME_INTERVAL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.MediaFormat KEY_DURATION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.MediaFormat KEY_SAMPLE_RATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.MediaFormat KEY_CHANNEL_MASK'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.ExifInterface TAG_APERTURE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.ExifInterface TAG_MAKE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.ExifInterface TAG_GPS_LATITUDE_REF'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.ExifInterface TAG_IMAGE_WIDTH'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.RingtoneManager EXTRA_RINGTONE_SHOW_DEFAULT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.RingtoneManager EXTRA_RINGTONE_INCLUDE_DRM'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.RingtoneManager EXTRA_RINGTONE_TITLE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.AudioManager ACTION_SCO_AUDIO_STATE_UPDATED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.MediaFormat KEY_BIT_RATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.AudioManager ACTION_AUDIO_BECOMING_NOISY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.ExifInterface TAG_GPS_ALTITUDE_REF'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.ExifInterface TAG_ORIENTATION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.AudioManager PROPERTY_OUTPUT_SAMPLE_RATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.ExifInterface TAG_GPS_LATITUDE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.ExifInterface TAG_ISO'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.ExifInterface TAG_GPS_LONGITUDE_REF'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.AudioManager RINGER_MODE_CHANGED_ACTION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.MediaFormat KEY_COLOR_FORMAT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.AudioManager EXTRA_VIBRATE_TYPE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.ExifInterface TAG_FLASH'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.MediaFormat KEY_MAX_INPUT_SIZE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.MediaPlayer.TrackInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.ExifInterface TAG_GPS_LONGITUDE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.ExifInterface TAG_GPS_TIMESTAMP'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.ExifInterface TAG_WHITE_BALANCE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.RingtoneManager EXTRA_RINGTONE_TYPE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.AudioManager EXTRA_SCO_AUDIO_PREVIOUS_STATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.AudioManager ACTION_SCO_AUDIO_STATE_CHANGED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,26 @@
<root>
<item name='android.media.audiofx.AudioEffect ACTION_OPEN_AUDIO_EFFECT_CONTROL_SESSION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.audiofx.AudioEffect EXTRA_AUDIO_SESSION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.audiofx.AudioEffect EFFECT_INSERT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.audiofx.AudioEffect EXTRA_PACKAGE_NAME'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.audiofx.AudioEffect ACTION_CLOSE_AUDIO_EFFECT_CONTROL_SESSION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.audiofx.AudioEffect ACTION_DISPLAY_AUDIO_EFFECT_CONTROL_PANEL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.audiofx.AudioEffect EXTRA_CONTENT_TYPE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.audiofx.AudioEffect EFFECT_AUXILIARY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,83 @@
<root>
<item name='android.media.effect.EffectFactory EFFECT_NEGATIVE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.effect.EffectFactory EFFECT_BLACKWHITE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.effect.EffectFactory EFFECT_ROTATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.effect.EffectFactory EFFECT_BACKDROPPER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.effect.EffectFactory EFFECT_STRAIGHTEN'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.effect.EffectFactory EFFECT_TEMPERATURE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.effect.EffectFactory EFFECT_FLIP'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.effect.EffectFactory EFFECT_CROSSPROCESS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.effect.EffectFactory EFFECT_VIGNETTE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.effect.EffectFactory EFFECT_SATURATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.effect.EffectFactory EFFECT_GRAYSCALE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.effect.EffectFactory EFFECT_GRAIN'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.effect.EffectFactory EFFECT_SHARPEN'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.effect.EffectFactory EFFECT_AUTOFIX'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.effect.EffectFactory EFFECT_SEPIA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.effect.EffectFactory EFFECT_DOCUMENTARY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.effect.EffectFactory EFFECT_REDEYE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.effect.EffectFactory EFFECT_BITMAPOVERLAY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.effect.EffectFactory EFFECT_TINT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.effect.EffectFactory EFFECT_BRIGHTNESS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.effect.EffectFactory EFFECT_POSTERIZE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.effect.EffectFactory EFFECT_DUOTONE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.effect.EffectFactory EFFECT_FISHEYE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.effect.EffectFactory EFFECT_CONTRAST'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.effect.EffectFactory EFFECT_LOMOISH'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.effect.EffectFactory EFFECT_FILLLIGHT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.media.effect.EffectFactory EFFECT_CROP'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,320 @@
<root>
<item name='android.net.VpnService.Builder android.net.VpnService.Builder setSession(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.SSLCertificateSocketFactory java.net.Socket createSocket(java.lang.String, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.NetworkInfo.DetailedState BLOCKED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.SSLCertificateSocketFactory java.net.Socket createSocket(java.lang.String, int, java.net.InetAddress, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.VpnService.Builder android.net.VpnService.Builder addSearchDomain(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.NetworkInfo.State CONNECTING'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.MailTo android.net.MailTo parse(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.LocalSocketAddress.Namespace ABSTRACT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.Uri android.net.Uri withAppendedPath(android.net.Uri, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.Uri.Builder android.net.Uri.Builder path(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.ConnectivityManager EXTRA_EXTRA_INFO'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.UrlQuerySanitizer java.util.List&lt;android.net.UrlQuerySanitizer.ParameterValuePair&gt; getParameterList()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.Uri.Builder android.net.Uri.Builder query(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.NetworkInfo.DetailedState VERIFYING_POOR_LINK'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.Uri.Builder android.net.Uri.Builder encodedPath(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.UrlQuerySanitizer android.net.UrlQuerySanitizer.ValueSanitizer getAllButNulAndAngleBracketsLegal()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.VpnService.Builder android.net.VpnService.Builder addDnsServer(java.net.InetAddress)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.ConnectivityManager EXTRA_REASON'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.NetworkInfo.DetailedState AUTHENTICATING'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.UrlQuerySanitizer android.net.UrlQuerySanitizer.ValueSanitizer getUrlAndSpaceLegal()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.Uri void writeToParcel(android.os.Parcel, android.net.Uri) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.ConnectivityManager CONNECTIVITY_ACTION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.MailTo MAILTO_SCHEME'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.SSLCertificateSocketFactory java.net.Socket createSocket(java.net.InetAddress, int, java.net.InetAddress, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.Uri android.net.Uri parse(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.VpnService boolean protect(java.net.DatagramSocket) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.VpnService android.content.Intent prepare(android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.LocalSocket android.net.LocalSocketAddress getRemoteSocketAddress()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.UrlQuerySanitizer android.net.UrlQuerySanitizer.ValueSanitizer getAllButNulLegal()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.UrlQuerySanitizer android.net.UrlQuerySanitizer.ValueSanitizer getAllButWhitespaceLegal()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.VpnService.Builder android.net.VpnService.Builder addAddress(java.net.InetAddress, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.Proxy PROXY_CHANGE_ACTION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.Proxy int getPort(android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.NetworkInfo.DetailedState SUSPENDED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.NetworkInfo.State SUSPENDED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.Uri.Builder android.net.Uri.Builder opaquePart(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.NetworkInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.UrlQuerySanitizer void registerParameters(java.lang.String[], android.net.UrlQuerySanitizer.ValueSanitizer) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.SSLCertificateSocketFactory javax.net.ssl.SSLSocketFactory getInsecure(int, android.net.SSLSessionCache)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.Uri.Builder android.net.Uri.Builder encodedQuery(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.UrlQuerySanitizer android.net.UrlQuerySanitizer.ValueSanitizer getAmpLegal()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.ConnectivityManager EXTRA_OTHER_NETWORK_INFO'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.VpnService.Builder android.net.VpnService.Builder setConfigureIntent(android.app.PendingIntent)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.Uri.Builder android.net.Uri.Builder encodedAuthority(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.SSLSessionCache SSLSessionCache(android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.UrlQuerySanitizer android.net.UrlQuerySanitizer.ValueSanitizer getAmpAndSpaceLegal()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.ConnectivityManager ACTION_BACKGROUND_DATA_SETTING_CHANGED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.Uri.Builder android.net.Uri.Builder authority(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.UrlQuerySanitizer java.lang.String unescape(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.Uri.Builder android.net.Uri.Builder appendQueryParameter(java.lang.String, java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.UrlQuerySanitizer java.lang.String unescape(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.ConnectivityManager EXTRA_NO_CONNECTIVITY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.Uri.Builder android.net.Uri.Builder encodedFragment(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.UrlQuerySanitizer java.util.Set&lt;java.lang.String&gt; getParameterSet()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.NetworkInfo.State DISCONNECTING'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.VpnService SERVICE_INTERFACE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.UrlQuerySanitizer void parseEntry(java.lang.String, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.Uri int compareTo(android.net.Uri) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.SSLCertificateSocketFactory java.net.Socket createSocket()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.ConnectivityManager EXTRA_IS_FAILOVER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.Uri.Builder android.net.Uri.Builder fragment(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.VpnService.Builder android.net.VpnService.Builder addRoute(java.net.InetAddress, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.NetworkInfo.State CONNECTED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.NetworkInfo.State UNKNOWN'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.UrlQuerySanitizer android.net.UrlQuerySanitizer.ValueSanitizer getAllIllegal()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.UrlQuerySanitizer UrlQuerySanitizer(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.VpnService.Builder android.net.VpnService.Builder addAddress(java.net.InetAddress, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.ConnectivityManager EXTRA_NETWORK_TYPE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.Uri android.net.Uri.Builder buildUpon()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.SSLCertificateSocketFactory java.net.Socket createSocket(java.net.InetAddress, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.ConnectivityManager EXTRA_NETWORK_INFO'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.LocalSocketAddress.Namespace FILESYSTEM'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.NetworkInfo.DetailedState CAPTIVE_PORTAL_CHECK'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.UrlQuerySanitizer void parseEntry(java.lang.String, java.lang.String) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.LocalServerSocket android.net.LocalSocket accept()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.Uri.Builder android.net.Uri.Builder scheme(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.SSLCertificateSocketFactory javax.net.ssl.SSLSocketFactory getDefault(int, android.net.SSLSessionCache)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.NetworkInfo.DetailedState DISCONNECTED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.Uri android.net.Uri fromFile(java.io.File)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.VpnService.Builder android.net.VpnService.Builder setMtu(int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.Uri int compareTo(java.lang.Object) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.DhcpInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.NetworkInfo.DetailedState OBTAINING_IPADDR'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.UrlQuerySanitizer android.net.UrlQuerySanitizer.ValueSanitizer getUrlLegal()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.SSLCertificateSocketFactory org.apache.http.conn.ssl.SSLSocketFactory getHttpSocketFactory(int, android.net.SSLSessionCache)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.NetworkInfo.DetailedState DISCONNECTING'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.NetworkInfo.DetailedState CONNECTING'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.LocalSocketAddress.Namespace RESERVED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.NetworkInfo.DetailedState FAILED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.VpnService.Builder android.net.VpnService.Builder addRoute(java.net.InetAddress, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.Uri.Builder android.net.Uri.Builder appendEncodedPath(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.UrlQuerySanitizer void parseUrl(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.SSLCertificateSocketFactory java.net.Socket createSocket(java.net.Socket, java.lang.String, int, boolean)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.Proxy java.lang.String getHost(android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.SSLCertificateSocketFactory javax.net.SocketFactory getDefault(int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.Uri.Builder android.net.Uri.Builder appendPath(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.Uri.Builder android.net.Uri.Builder encodedOpaquePart(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.NetworkInfo.State DISCONNECTED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.NetworkInfo.DetailedState SCANNING'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.NetworkInfo.DetailedState IDLE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.UrlQuerySanitizer android.net.UrlQuerySanitizer.ValueSanitizer getSpaceLegal()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.Uri.Builder android.net.Uri.Builder clearQuery()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.Uri android.net.Uri fromParts(java.lang.String, java.lang.String, java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.VpnService boolean protect(java.net.Socket) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.NetworkInfo.DetailedState CONNECTED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.VpnService.Builder android.net.VpnService.Builder addDnsServer(java.net.InetAddress) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,47 @@
<root>
<item name='android.net.http.SslError java.lang.String getUrl()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.http.AndroidHttpClient android.net.http.AndroidHttpClient newInstance(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.http.SslCertificate.DName java.lang.String getUName()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.http.AndroidHttpClient android.net.http.AndroidHttpClient newInstance(java.lang.String, android.content.Context)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.http.SslCertificate SslCertificate(java.security.cert.X509Certificate) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.http.SslCertificate android.net.http.SslCertificate.DName getIssuedBy()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.http.SslCertificate.DName java.lang.String getCName()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.http.SslError SslError(int, java.security.cert.X509Certificate, java.lang.String) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.http.SslCertificate.DName java.lang.String getOName()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.http.SslError android.net.http.SslCertificate getCertificate()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.http.SslCertificate android.net.http.SslCertificate.DName getIssuedTo()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.http.SslError SslError(int, android.net.http.SslCertificate, java.lang.String) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.http.SslCertificate.DName java.lang.String getDName()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.http.SslError SslError(int, android.net.http.SslCertificate) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.http.SslError SslError(int, android.net.http.SslCertificate, java.lang.String) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,17 @@
<root>
<item name='android.net.nsd.NsdManager void resolveService(android.net.nsd.NsdServiceInfo, android.net.nsd.NsdManager.ResolveListener) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.nsd.NsdManager ACTION_NSD_STATE_CHANGED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.nsd.NsdManager EXTRA_NSD_STATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.nsd.NsdManager void registerService(android.net.nsd.NsdServiceInfo, int, android.net.nsd.NsdManager.RegistrationListener) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.nsd.NsdServiceInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,11 @@
<root>
<item name='android.net.sip.SipProfile void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.sip.SipManager EXTRA_CALL_ID'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.sip.SipManager EXTRA_OFFER_SD'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,125 @@
<root>
<item name='android.net.wifi.WifiConfiguration.KeyMgmt varName'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.SupplicantState UNINITIALIZED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.WifiConfiguration.Protocol varName'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.WifiManager SCAN_RESULTS_AVAILABLE_ACTION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.WifiManager EXTRA_NETWORK_INFO'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.SupplicantState INVALID'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.ScanResult void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.SupplicantState DISCONNECTED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.SupplicantState ASSOCIATING'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.WifiManager EXTRA_NEW_STATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.SupplicantState ASSOCIATED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.WifiInfo LINK_SPEED_UNITS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.WifiConfiguration.AuthAlgorithm varName'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.WifiManager EXTRA_NEW_RSSI'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.SupplicantState SCANNING'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.WpsInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.WifiManager RSSI_CHANGED_ACTION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.WifiManager EXTRA_PREVIOUS_WIFI_STATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.SupplicantState INTERFACE_DISABLED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.SupplicantState FOUR_WAY_HANDSHAKE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.WifiManager NETWORK_STATE_CHANGED_ACTION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.WifiInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.WifiConfiguration.PairwiseCipher varName'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.WifiManager EXTRA_BSSID'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.WifiConfiguration.GroupCipher varName'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.WifiManager SUPPLICANT_STATE_CHANGED_ACTION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.WifiManager EXTRA_SUPPLICANT_ERROR'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.SupplicantState GROUP_HANDSHAKE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.WifiManager SUPPLICANT_CONNECTION_CHANGE_ACTION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.WifiManager EXTRA_SUPPLICANT_CONNECTED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.WifiManager ACTION_PICK_WIFI_NETWORK'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.WifiManager EXTRA_WIFI_INFO'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.SupplicantState INACTIVE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.SupplicantState AUTHENTICATING'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.SupplicantState void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.WifiManager WIFI_STATE_CHANGED_ACTION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.SupplicantState COMPLETED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.WifiManager NETWORK_IDS_CHANGED_ACTION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.WifiManager EXTRA_WIFI_STATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.SupplicantState DORMANT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.WifiConfiguration void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,47 @@
<root>
<item name='android.net.wifi.p2p.WifiP2pManager WIFI_P2P_STATE_CHANGED_ACTION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.p2p.WifiP2pDeviceList void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.p2p.WifiP2pConfig void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.p2p.WifiP2pInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.p2p.WifiP2pManager EXTRA_WIFI_STATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.p2p.WifiP2pManager WIFI_P2P_THIS_DEVICE_CHANGED_ACTION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.p2p.WifiP2pManager WIFI_P2P_DISCOVERY_CHANGED_ACTION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.p2p.WifiP2pGroup void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.p2p.WifiP2pManager EXTRA_DISCOVERY_STATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.p2p.WifiP2pManager EXTRA_NETWORK_INFO'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.p2p.WifiP2pManager WIFI_P2P_CONNECTION_CHANGED_ACTION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.p2p.WifiP2pManager EXTRA_WIFI_P2P_DEVICE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.p2p.WifiP2pManager EXTRA_WIFI_P2P_INFO'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.p2p.WifiP2pDevice void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.p2p.WifiP2pManager WIFI_P2P_PEERS_CHANGED_ACTION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,8 @@
<root>
<item name='android.net.wifi.p2p.nsd.WifiP2pServiceRequest void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.net.wifi.p2p.nsd.WifiP2pServiceInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,56 @@
<root>
<item name='android.nfc.Tag void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.NdefMessage NdefMessage(android.nfc.NdefRecord[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.NfcAdapter ACTION_NDEF_DISCOVERED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.NfcAdapter ACTION_TAG_DISCOVERED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.NdefRecord void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.NfcAdapter void setNdefPushMessage(android.nfc.NdefMessage, android.app.Activity, android.app.Activity...) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.NfcAdapter ACTION_TECH_DISCOVERED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.NdefMessage NdefMessage(android.nfc.NdefRecord, android.nfc.NdefRecord...) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.NdefRecord android.nfc.NdefRecord createApplicationRecord(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.NdefMessage android.nfc.NdefRecord[] getRecords()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.NfcAdapter EXTRA_ID'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.NfcAdapter void disableForegroundDispatch(android.app.Activity) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.NfcAdapter EXTRA_TAG'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.NfcAdapter void setNdefPushMessageCallback(android.nfc.NfcAdapter.CreateNdefMessageCallback, android.app.Activity, android.app.Activity...) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.NdefMessage void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.NfcAdapter EXTRA_NDEF_MESSAGES'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.NfcAdapter void setOnNdefPushCompleteCallback(android.nfc.NfcAdapter.OnNdefPushCompleteCallback, android.app.Activity, android.app.Activity...) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.Tag java.lang.String[] getTechList()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,56 @@
<root>
<item name='android.nfc.tech.NfcBarcode android.nfc.tech.NfcBarcode get(android.nfc.Tag) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.tech.Ndef NFC_FORUM_TYPE_2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.tech.Ndef NFC_FORUM_TYPE_3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.tech.Ndef NFC_FORUM_TYPE_1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.tech.MifareUltralight void writePage(int, byte[]) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.tech.NfcV android.nfc.tech.NfcV get(android.nfc.Tag) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.tech.IsoDep android.nfc.tech.IsoDep get(android.nfc.Tag) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.tech.Ndef MIFARE_CLASSIC'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.tech.NfcF android.nfc.tech.NfcF get(android.nfc.Tag) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.tech.MifareClassic android.nfc.tech.MifareClassic get(android.nfc.Tag) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.tech.Ndef android.nfc.tech.Ndef get(android.nfc.Tag) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.tech.NfcA android.nfc.tech.NfcA get(android.nfc.Tag) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.tech.MifareUltralight android.nfc.tech.MifareUltralight get(android.nfc.Tag) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.tech.NdefFormatable android.nfc.tech.NdefFormatable get(android.nfc.Tag) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.tech.NfcB android.nfc.tech.NfcB get(android.nfc.Tag) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.tech.Ndef java.lang.String getType()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.tech.MifareClassic void writeBlock(int, byte[]) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.nfc.tech.Ndef NFC_FORUM_TYPE_4'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,8 @@
<root>
<item name='android.opengl.GLSurfaceView void surfaceCreated(android.view.SurfaceHolder) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.opengl.GLSurfaceView void surfaceChanged(android.view.SurfaceHolder, int, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,548 @@
<root>
<item name='android.os.Parcel void readBinderList(java.util.List&lt;android.os.IBinder&gt;) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Parcel void readStringList(java.util.List&lt;java.lang.String&gt;) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.BatteryManager EXTRA_PLUGGED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Binder boolean transact(int, android.os.Parcel, android.os.Parcel, int) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.WorkSource boolean diff(android.os.WorkSource) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.TokenWatcher void dump(java.io.PrintWriter) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.CountDownTimer android.os.CountDownTimer start()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Environment MEDIA_BAD_REMOVAL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Bundle Bundle(android.os.Bundle) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.RecoverySystem void verifyPackage(java.io.File, android.os.RecoverySystem.ProgressListener, java.io.File) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.AsyncTask Result get(long, java.util.concurrent.TimeUnit) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.ParcelFileDescriptor void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Parcel void readTypedArray(T[], android.os.Parcelable.Creator&lt;T&gt;) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.ResultReceiver void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Environment DIRECTORY_MOVIES'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Messenger void writeMessengerOrNullToParcel(android.os.Messenger, android.os.Parcel) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode.ThreadPolicy.Builder android.os.StrictMode.ThreadPolicy.Builder permitCustomSlowCalls()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Parcel void readTypedList(java.util.List&lt;T&gt;, android.os.Parcelable.Creator&lt;T&gt;) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.AsyncTask.Status RUNNING'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.PatternMatcher PatternMatcher(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.BatteryManager EXTRA_LEVEL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode.ThreadPolicy.Builder android.os.StrictMode.ThreadPolicy.Builder penaltyLog()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode.ThreadPolicy.Builder android.os.StrictMode.ThreadPolicy.Builder penaltyDeath()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.ParcelUuid void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Message android.os.Message obtain(android.os.Message) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Parcel java.util.ArrayList&lt;T&gt; createTypedArrayList(android.os.Parcelable.Creator&lt;T&gt;) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode android.os.StrictMode.ThreadPolicy allowThreadDiskReads()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.UserManager long getSerialNumberForUser(android.os.UserHandle) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Environment MEDIA_CHECKING'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode.ThreadPolicy.Builder android.os.StrictMode.ThreadPolicy.Builder detectDiskWrites()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.ParcelFileDescriptor.AutoCloseOutputStream AutoCloseOutputStream(android.os.ParcelFileDescriptor) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.MemoryFile void writeBytes(byte[], int, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Parcel void readLongArray(long[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.RemoteCallbackList boolean register(E, java.lang.Object) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.RecoverySystem void installPackage(android.content.Context, java.io.File) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Parcel void readTypedList(java.util.List&lt;T&gt;, android.os.Parcelable.Creator&lt;T&gt;) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode.VmPolicy.Builder android.os.StrictMode.VmPolicy build()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode.ThreadPolicy.Builder Builder(android.os.StrictMode.ThreadPolicy) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Bundle void putAll(android.os.Bundle) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.AsyncTask android.os.AsyncTask&lt;Params,Progress,Result&gt; execute(Params...)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode.ThreadPolicy.Builder android.os.StrictMode.ThreadPolicy.Builder penaltyFlashScreen()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Parcel void readStringArray(java.lang.String[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.BatteryManager EXTRA_PRESENT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Parcel void readList(java.util.List, java.lang.ClassLoader) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Handler boolean sendMessageAtFrontOfQueue(android.os.Message) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Message void copyFrom(android.os.Message) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.ParcelFileDescriptor android.os.ParcelFileDescriptor fromFd(int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.RemoteCallbackList boolean unregister(E) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Handler boolean sendMessageAtTime(android.os.Message, long) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.MemoryFile java.io.InputStream getInputStream()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode.ThreadPolicy.Builder android.os.StrictMode.ThreadPolicy.Builder detectAll()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.ParcelFileDescriptor android.os.ParcelFileDescriptor open(java.io.File, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode.ThreadPolicy.Builder android.os.StrictMode.ThreadPolicy.Builder detectCustomSlowCalls()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Parcel void readBooleanArray(boolean[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Parcel T[] createTypedArray(android.os.Parcelable.Creator&lt;T&gt;) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Debug.MemoryInfo void readFromParcel(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Environment java.io.File getExternalStoragePublicDirectory(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.DropBoxManager EXTRA_TIME'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.AsyncTask android.os.AsyncTask&lt;Params,Progress,Result&gt; executeOnExecutor(java.util.concurrent.Executor, Params...)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Environment MEDIA_UNMOUNTABLE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Handler boolean sendMessage(android.os.Message) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.BatteryManager EXTRA_TEMPERATURE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode.ThreadPolicy.Builder android.os.StrictMode.ThreadPolicy.Builder permitDiskWrites()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.DropBoxManager EXTRA_TAG'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Environment MEDIA_UNMOUNTED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.WorkSource boolean add(android.os.WorkSource) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.AsyncTask android.os.AsyncTask.Status getStatus()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Parcel android.os.IBinder readStrongBinder()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode.VmPolicy.Builder android.os.StrictMode.VmPolicy.Builder penaltyDeath()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode.ThreadPolicy.Builder android.os.StrictMode.ThreadPolicy.Builder detectDiskReads()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Messenger void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.MemoryFile int readBytes(byte[], int, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.WorkSource void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.AsyncTask.Status FINISHED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Message void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode void setVmPolicy(android.os.StrictMode.VmPolicy) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Parcel void readIntArray(int[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Handler boolean sendMessageDelayed(android.os.Message, long) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.RecoverySystem void rebootWipeCache(android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Environment DIRECTORY_ALARMS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Handler Handler(android.os.Looper, android.os.Handler.Callback) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode.VmPolicy.Builder android.os.StrictMode.VmPolicy.Builder detectActivityLeaks()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.ParcelUuid android.os.ParcelUuid fromString(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.BatteryManager EXTRA_TECHNOLOGY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.BatteryManager EXTRA_VOLTAGE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Environment MEDIA_MOUNTED_READ_ONLY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode android.os.StrictMode.ThreadPolicy allowThreadDiskWrites()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Process android.os.UserHandle myUserHandle()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Messenger Messenger(android.os.Handler) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Parcel void readTypedArray(T[], android.os.Parcelable.Creator&lt;T&gt;) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.AsyncTask void execute(java.lang.Runnable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Environment java.io.File getDataDirectory()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode android.os.StrictMode.ThreadPolicy getThreadPolicy()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Handler void dump(android.util.Printer, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode android.os.StrictMode.VmPolicy getVmPolicy()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Environment DIRECTORY_MUSIC'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode.VmPolicy.Builder Builder(android.os.StrictMode.VmPolicy) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.ParcelFileDescriptor.AutoCloseInputStream AutoCloseInputStream(android.os.ParcelFileDescriptor) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Environment DIRECTORY_PICTURES'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.UserManager boolean isUserRunningOrStopping(android.os.UserHandle) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode.ThreadPolicy.Builder android.os.StrictMode.ThreadPolicy.Builder permitDiskReads()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Environment MEDIA_SHARED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.TokenWatcher void acquire(android.os.IBinder, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.WorkSource boolean remove(android.os.WorkSource) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Looper android.os.MessageQueue myQueue()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Parcel void readMap(java.util.Map, java.lang.ClassLoader) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.RecoverySystem void rebootWipeUserData(android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Handler void dispatchMessage(android.os.Message) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode.VmPolicy.Builder android.os.StrictMode.VmPolicy.Builder setClassInstanceLimit(java.lang.Class, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.BatteryManager EXTRA_HEALTH'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode.VmPolicy.Builder android.os.StrictMode.VmPolicy.Builder detectLeakedRegistrationObjects()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.ParcelFileDescriptor android.os.ParcelFileDescriptor adoptFd(int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Environment DIRECTORY_NOTIFICATIONS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Debug.MemoryInfo java.lang.String getOtherLabel(int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.BatteryManager EXTRA_ICON_SMALL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Environment java.io.File getRootDirectory()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Parcel void readByteArray(byte[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode.ThreadPolicy.Builder android.os.StrictMode.ThreadPolicy.Builder penaltyDialog()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Environment MEDIA_MOUNTED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode.ThreadPolicy.Builder android.os.StrictMode.ThreadPolicy.Builder penaltyDropBox()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.UserHandle void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode.VmPolicy.Builder android.os.StrictMode.VmPolicy.Builder penaltyDropBox()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.PatternMatcher void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.DropBoxManager ACTION_DROPBOX_ENTRY_ADDED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Messenger android.os.Messenger readMessengerOrNullFromParcel(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.UserHandle void writeToParcel(android.os.UserHandle, android.os.Parcel) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.DropBoxManager.Entry void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.UserHandle UserHandle(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode.VmPolicy.Builder android.os.StrictMode.VmPolicy.Builder detectLeakedSqlLiteObjects()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.ParcelFileDescriptor android.os.ParcelFileDescriptor fromSocket(java.net.Socket) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Build UNKNOWN'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.BatteryManager EXTRA_SCALE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Binder boolean onTransact(int, android.os.Parcel, android.os.Parcel, int) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.UserHandle android.os.UserHandle readFromParcel(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.BatteryManager EXTRA_STATUS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.UserManager boolean isUserRunning(android.os.UserHandle) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Environment MEDIA_REMOVED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Parcel byte[] createByteArray()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode.ThreadPolicy.Builder android.os.StrictMode.ThreadPolicy.Builder penaltyDeathOnNetwork()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode void setThreadPolicy(android.os.StrictMode.ThreadPolicy) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode.VmPolicy.Builder android.os.StrictMode.VmPolicy.Builder detectAll()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Environment MEDIA_NOFS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.AsyncTask.Status PENDING'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.RecoverySystem void installPackage(android.content.Context, java.io.File) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode.VmPolicy.Builder android.os.StrictMode.VmPolicy.Builder penaltyLog()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Environment DIRECTORY_PODCASTS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Handler Handler(android.os.Looper) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Binder android.os.UserHandle getCallingUserHandle()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.MemoryFile java.io.OutputStream getOutputStream()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode.ThreadPolicy.Builder android.os.StrictMode.ThreadPolicy.Builder detectNetwork()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Parcel java.lang.String readString()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Bundle java.util.Set&lt;java.lang.String&gt; keySet()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Environment DIRECTORY_DCIM'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.ParcelFileDescriptor android.os.ParcelFileDescriptor fromDatagramSocket(java.net.DatagramSocket) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Handler void handleMessage(android.os.Message) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Parcel void readFloatArray(float[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.ParcelFileDescriptor android.os.ParcelFileDescriptor[] createPipe()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Parcel void readDoubleArray(double[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.RemoteCallbackList boolean register(E) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Environment DIRECTORY_DOWNLOADS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode.ThreadPolicy.Builder android.os.StrictMode.ThreadPolicy.Builder permitAll()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Bundle EMPTY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Binder boolean onTransact(int, android.os.Parcel, android.os.Parcel, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode.ThreadPolicy.Builder android.os.StrictMode.ThreadPolicy.Builder permitNetwork()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Bundle void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.AsyncTask android.os.AsyncTask&lt;Params,Progress,Result&gt; executeOnExecutor(java.util.concurrent.Executor, Params...) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Handler java.lang.String getMessageName(android.os.Message) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Parcel byte[] marshall()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode.VmPolicy.Builder android.os.StrictMode.VmPolicy.Builder detectLeakedClosableObjects()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Bundle java.lang.Object clone()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Environment DIRECTORY_RINGTONES'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.IBinder boolean transact(int, android.os.Parcel, android.os.Parcel, int) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Parcel void readCharArray(char[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Environment java.io.File getDownloadCacheDirectory()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Parcel void readBinderArray(android.os.IBinder[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Bundle void readFromParcel(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Parcel void appendFrom(android.os.Parcel, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Debug.MemoryInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.StrictMode.ThreadPolicy.Builder android.os.StrictMode.ThreadPolicy build()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Looper java.lang.Thread getThread()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.PowerManager android.os.PowerManager.WakeLock newWakeLock(int, java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.os.Parcelable void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,344 @@
<root>
<item name='android.preference.PreferenceActivity.Header java.lang.CharSequence getBreadCrumbShortTitle(android.content.res.Resources) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.CheckBoxPreference CheckBoxPreference(android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceActivity void onHeaderClick(android.preference.PreferenceActivity.Header, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceGroup void dispatchSaveInstanceState(android.os.Bundle) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.RingtonePreference RingtonePreference(android.content.Context, android.util.AttributeSet) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.SwitchPreference SwitchPreference(android.content.Context, android.util.AttributeSet, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceManager void setDefaultValues(android.content.Context, java.lang.String, int, int, boolean) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.ListPreference void onPrepareDialogBuilder(android.app.AlertDialog.Builder) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.DialogPreference DialogPreference(android.content.Context, android.util.AttributeSet, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.Preference void onAttachedToHierarchy(android.preference.PreferenceManager) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.ListPreference java.lang.Object onGetDefaultValue(android.content.res.TypedArray, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceActivity EXTRA_SHOW_FRAGMENT_ARGUMENTS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.RingtonePreference RingtonePreference(android.content.Context, android.util.AttributeSet, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.EditTextPreference void onBindDialogView(android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.Preference void saveHierarchyState(android.os.Bundle) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.EditTextPreference EditTextPreference(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceActivity EXTRA_SHOW_FRAGMENT_TITLE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceCategory PreferenceCategory(android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.MultiSelectListPreference void setValues(java.util.Set&lt;java.lang.String&gt;) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceGroup boolean onPrepareAddPreference(android.preference.Preference) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceGroup boolean addPreference(android.preference.Preference) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.EditTextPreference EditTextPreference(android.content.Context, android.util.AttributeSet, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.RingtonePreference RingtonePreference(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.DialogPreference DialogPreference(android.content.Context, android.util.AttributeSet, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceGroup PreferenceGroup(android.content.Context, android.util.AttributeSet, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceCategory PreferenceCategory(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.DialogPreference void onBindDialogView(android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.CheckBoxPreference CheckBoxPreference(android.content.Context, android.util.AttributeSet) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.EditTextPreference void onAddEditTextToDialogView(android.view.View, android.widget.EditText) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.SwitchPreference SwitchPreference(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceActivity EXTRA_SHOW_FRAGMENT_SHORT_TITLE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceActivity boolean onPreferenceStartFragment(android.preference.PreferenceFragment, android.preference.Preference) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceActivity void onRestoreInstanceState(android.os.Bundle) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceScreen void bind(android.widget.ListView) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.TwoStatePreference TwoStatePreference(android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceManager KEY_HAS_SET_DEFAULT_VALUES'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.TwoStatePreference TwoStatePreference(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceActivity void setListFooter(android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.ListPreference ListPreference(android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.SwitchPreference SwitchPreference(android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.DialogPreference DialogPreference(android.content.Context, android.util.AttributeSet) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.DialogPreference DialogPreference(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.CheckBoxPreference CheckBoxPreference(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceActivity EXTRA_SHOW_FRAGMENT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.RingtonePreference void onAttachedToHierarchy(android.preference.PreferenceManager) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.MultiSelectListPreference java.util.Set&lt;java.lang.String&gt; getValues()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceActivity.Header java.lang.CharSequence getTitle(android.content.res.Resources) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceGroup PreferenceGroup(android.content.Context, android.util.AttributeSet, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.Preference int compareTo(java.lang.Object) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceGroup boolean removePreference(android.preference.Preference) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.SwitchPreference void onBindView(android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.MultiSelectListPreference java.lang.Object onGetDefaultValue(android.content.res.TypedArray, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceFragment android.view.View onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceManager android.preference.PreferenceScreen createPreferenceScreen(android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.RingtonePreference void onPrepareRingtonePickerIntent(android.content.Intent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.MultiSelectListPreference void onPrepareDialogBuilder(android.app.AlertDialog.Builder) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceActivity.Header java.lang.CharSequence getSummary(android.content.res.Resources) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.RingtonePreference RingtonePreference(android.content.Context, android.util.AttributeSet, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceManager android.content.SharedPreferences getDefaultSharedPreferences(android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.DialogPreference void onClick(android.content.DialogInterface, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.TwoStatePreference TwoStatePreference(android.content.Context, android.util.AttributeSet, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceActivity.Header void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.CheckBoxPreference void onBindView(android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.Preference void restoreHierarchyState(android.os.Bundle) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.Preference.BaseSavedState BaseSavedState(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.CheckBoxPreference CheckBoxPreference(android.content.Context, android.util.AttributeSet, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.EditTextPreference EditTextPreference(android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.Preference Preference(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.Preference int compareTo(android.preference.Preference) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceGroup void dispatchRestoreInstanceState(android.os.Bundle) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.Preference Preference(android.content.Context, android.util.AttributeSet, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceActivity EXTRA_NO_HEADERS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.TwoStatePreference TwoStatePreference(android.content.Context, android.util.AttributeSet, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.DialogPreference void onPrepareDialogBuilder(android.app.AlertDialog.Builder) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.MultiSelectListPreference java.lang.Object onGetDefaultValue(android.content.res.TypedArray, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.Preference Preference(android.content.Context, android.util.AttributeSet) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceFragment.OnPreferenceStartFragmentCallback boolean onPreferenceStartFragment(android.preference.PreferenceFragment, android.preference.Preference) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceCategory boolean onPrepareAddPreference(android.preference.Preference) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.CheckBoxPreference CheckBoxPreference(android.content.Context, android.util.AttributeSet, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceActivity void onSaveInstanceState(android.os.Bundle) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceManager void setDefaultValues(android.content.Context, int, boolean) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.Preference Preference(android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceScreen android.widget.ListAdapter onCreateRootAdapter()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.TwoStatePreference TwoStatePreference(android.content.Context, android.util.AttributeSet) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceFragment void onSaveInstanceState(android.os.Bundle) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.MultiSelectListPreference MultiSelectListPreference(android.content.Context, android.util.AttributeSet) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceGroup void addItemFromInflater(android.preference.Preference) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.Preference java.lang.Object onGetDefaultValue(android.content.res.TypedArray, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceActivity.Header void readFromParcel(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.EditTextPreference void onAddEditTextToDialogView(android.view.View, android.widget.EditText) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.Preference Preference(android.content.Context, android.util.AttributeSet, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.SwitchPreference SwitchPreference(android.content.Context, android.util.AttributeSet) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.EditTextPreference EditTextPreference(android.content.Context, android.util.AttributeSet, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceCategory PreferenceCategory(android.content.Context, android.util.AttributeSet, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceActivity.Header java.lang.CharSequence getBreadCrumbTitle(android.content.res.Resources) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceCategory PreferenceCategory(android.content.Context, android.util.AttributeSet) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.RingtonePreference RingtonePreference(android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.Preference void onBindView(android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.ListPreference ListPreference(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceGroup PreferenceGroup(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.SwitchPreference SwitchPreference(android.content.Context, android.util.AttributeSet, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.EditTextPreference EditTextPreference(android.content.Context, android.util.AttributeSet) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.MultiSelectListPreference MultiSelectListPreference(android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.RingtonePreference java.lang.Object onGetDefaultValue(android.content.res.TypedArray, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.MultiSelectListPreference MultiSelectListPreference(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.EditTextPreference java.lang.Object onGetDefaultValue(android.content.res.TypedArray, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceCategory PreferenceCategory(android.content.Context, android.util.AttributeSet, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceManager METADATA_KEY_PREFERENCES'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceActivity void loadHeadersFromResource(int, java.util.List&lt;android.preference.PreferenceActivity.Header&gt;) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.TwoStatePreference java.lang.Object onGetDefaultValue(android.content.res.TypedArray, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceActivity void switchToHeader(android.preference.PreferenceActivity.Header) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceGroup PreferenceGroup(android.content.Context, android.util.AttributeSet) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.ListPreference ListPreference(android.content.Context, android.util.AttributeSet) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.preference.PreferenceFragment boolean onPreferenceTreeClick(android.preference.PreferenceScreen, android.preference.Preference) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,320 @@
<root>
<item name='android.renderscript.Element.DataType UNSIGNED_32'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Sampler.Value LINEAR_MIP_LINEAR'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramStore.DepthFunc NOT_EQUAL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.RSSurfaceView void surfaceChanged(android.view.SurfaceHolder, int, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Mesh.Primitive LINE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Type.CubemapFace NEGATIVE_X'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataType SIGNED_16'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Type.CubemapFace POSITIVE_Z'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Sampler.Value WRAP'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataType RS_PROGRAM_VERTEX'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataType UNSIGNED_5_6_5'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramStore.BlendDstFunc SRC_COLOR'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramStore.BlendSrcFunc DST_COLOR'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Font.Style BOLD_ITALIC'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramStore.BlendDstFunc ZERO'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataType FLOAT_64'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataKind PIXEL_DEPTH'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Font.Style NORMAL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataType SIGNED_32'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramStore.BlendDstFunc ONE_MINUS_SRC_ALPHA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramStore.BlendSrcFunc ONE_MINUS_DST_ALPHA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataType RS_TYPE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Program.TextureType TEXTURE_2D'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramFragmentFixedFunction.Builder.EnvMode REPLACE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramStore.BlendDstFunc ONE_MINUS_DST_ALPHA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Font.Style ITALIC'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataType BOOLEAN'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramStore.BlendDstFunc ONE_MINUS_SRC_COLOR'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramStore.BlendSrcFunc ONE_MINUS_DST_COLOR'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataType UNSIGNED_64'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataType RS_ALLOCATION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.RenderScript.Priority LOW'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramStore.DepthFunc GREATER_OR_EQUAL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Mesh.Primitive TRIANGLE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Allocation.MipmapControl MIPMAP_FULL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramStore.BlendSrcFunc ZERO'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Type.CubemapFace POSITIVE_X'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.FileA3D.EntryType MESH'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.RSSurfaceView void surfaceCreated(android.view.SurfaceHolder) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataType NONE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramFragmentFixedFunction.Builder.Format RGBA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataType SIGNED_64'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramStore.DepthFunc GREATER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramStore.DepthFunc LESS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramStore.BlendDstFunc SRC_ALPHA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramStore.BlendSrcFunc DST_ALPHA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataType UNSIGNED_8'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataType RS_FONT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataKind PIXEL_A'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramStore.BlendSrcFunc SRC_ALPHA_SATURATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Type.CubemapFace POSITIVE_Y'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataType RS_ELEMENT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramRaster.CullMode BACK'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramStore.BlendDstFunc ONE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataType UNSIGNED_16'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataKind PIXEL_RGBA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataType MATRIX_4X4'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataType RS_PROGRAM_FRAGMENT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Sampler.Value LINEAR_MIP_NEAREST'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramStore.BlendSrcFunc ONE_MINUS_SRC_ALPHA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataType FLOAT_32'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataKind USER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataType SIGNED_8'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Program.TextureType TEXTURE_CUBE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataType RS_PROGRAM_STORE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramFragmentFixedFunction.Builder.Format RGB'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataType RS_SAMPLER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramStore.DepthFunc ALWAYS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Font.Style BOLD'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Sampler.Value LINEAR'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Allocation.MipmapControl MIPMAP_ON_SYNC_TO_TEXTURE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramRaster.CullMode NONE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Sampler.Value CLAMP'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Mesh.Primitive LINE_STRIP'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataKind PIXEL_LA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Sampler.Value NEAREST'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataType RS_PROGRAM_RASTER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.FileA3D.EntryType UNKNOWN'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Type.CubemapFace POSITVE_X'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Type.CubemapFace NEGATIVE_Z'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Mesh.Primitive TRIANGLE_FAN'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataType MATRIX_2X2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataType UNSIGNED_4_4_4_4'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramFragmentFixedFunction.Builder.Format ALPHA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramStore.BlendSrcFunc ONE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramStore.BlendSrcFunc SRC_ALPHA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Allocation.MipmapControl MIPMAP_NONE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataType UNSIGNED_5_5_5_1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Type.CubemapFace POSITVE_Y'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramStore.DepthFunc EQUAL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramFragmentFixedFunction.Builder.Format LUMINANCE_ALPHA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Type.CubemapFace NEGATIVE_Y'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramRaster.CullMode FRONT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataType RS_MESH'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataKind PIXEL_RGB'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramFragmentFixedFunction.Builder.EnvMode DECAL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Mesh.Primitive POINT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.RenderScript.Priority NORMAL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataType MATRIX_3X3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataType RS_SCRIPT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Element.DataKind PIXEL_L'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramStore.DepthFunc LESS_OR_EQUAL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Mesh.Primitive TRIANGLE_STRIP'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramStore.BlendDstFunc DST_ALPHA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.Type.CubemapFace POSITVE_Z'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.renderscript.ProgramFragmentFixedFunction.Builder.EnvMode MODULATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,14 @@
<root>
<item name='android.security.KeyChain EXTRA_PKCS12'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.security.KeyChain EXTRA_NAME'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.security.KeyChain EXTRA_CERTIFICATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.security.KeyChain ACTION_STORAGE_CHANGED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,35 @@
<root>
<item name='android.service.dreams.DreamService boolean dispatchKeyShortcutEvent(android.view.KeyEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.service.dreams.DreamService boolean onMenuItemSelected(int, android.view.MenuItem) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.service.dreams.DreamService void dump(java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.service.dreams.DreamService android.os.IBinder onBind(android.content.Intent)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.service.dreams.DreamService android.os.IBinder onBind(android.content.Intent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.service.dreams.DreamService boolean dispatchPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.service.dreams.DreamService SERVICE_INTERFACE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.service.dreams.DreamService boolean dispatchKeyEvent(android.view.KeyEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.service.dreams.DreamService DREAM_META_DATA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.service.dreams.DreamService boolean dispatchTrackballEvent(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.service.dreams.DreamService boolean dispatchTouchEvent(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,14 @@
<root>
<item name='android.service.textservice.SpellCheckerService SERVICE_INTERFACE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.service.textservice.SpellCheckerService android.os.IBinder onBind(android.content.Intent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.service.textservice.SpellCheckerService.Session android.view.textservice.SuggestionsInfo[] onGetSuggestionsMultiple(android.view.textservice.TextInfo[], int, boolean) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.service.textservice.SpellCheckerService android.os.IBinder onBind(android.content.Intent)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,23 @@
<root>
<item name='android.service.wallpaper.WallpaperService android.os.IBinder onBind(android.content.Intent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.service.wallpaper.WallpaperService void dump(java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.service.wallpaper.WallpaperService SERVICE_INTERFACE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.service.wallpaper.WallpaperService.Engine void dump(java.lang.String, java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.service.wallpaper.WallpaperService android.os.IBinder onBind(android.content.Intent)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.service.wallpaper.WallpaperService SERVICE_META_DATA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.service.wallpaper.WallpaperService.Engine android.view.SurfaceHolder getSurfaceHolder()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,131 @@
<root>
<item name='android.speech.RecognitionService SERVICE_INTERFACE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerResultsIntent EXTRA_VOICE_SEARCH_RESULT_STRINGS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognitionService android.os.IBinder onBind(android.content.Intent)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.SpeechRecognizer android.speech.SpeechRecognizer createSpeechRecognizer(android.content.Context, android.content.ComponentName)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerIntent LANGUAGE_MODEL_FREE_FORM'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerResultsIntent ACTION_VOICE_SEARCH_RESULTS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerResultsIntent EXTRA_VOICE_SEARCH_RESULT_HTTP_HEADERS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.SpeechRecognizer boolean isRecognitionAvailable(android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.SpeechRecognizer RESULTS_RECOGNITION'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerResultsIntent EXTRA_VOICE_SEARCH_RESULT_HTML_BASE_URLS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerIntent EXTRA_WEB_SEARCH_ONLY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerIntent EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognitionService android.os.IBinder onBind(android.content.Intent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerIntent EXTRA_CALLING_PACKAGE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerIntent EXTRA_RESULTS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerResultsIntent EXTRA_VOICE_SEARCH_RESULT_URLS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerResultsIntent URI_SCHEME_INLINE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerIntent ACTION_WEB_SEARCH'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerIntent EXTRA_MAX_RESULTS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerIntent EXTRA_LANGUAGE_PREFERENCE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerIntent ACTION_RECOGNIZE_SPEECH'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognitionService SERVICE_META_DATA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerIntent EXTRA_ONLY_RETURN_LANGUAGE_PREFERENCE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerIntent EXTRA_PARTIAL_RESULTS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerIntent android.content.Intent getVoiceDetailsIntent(android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerResultsIntent EXTRA_VOICE_SEARCH_RESULT_HTML'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerIntent EXTRA_RESULTS_PENDINGINTENT_BUNDLE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerIntent EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerIntent DETAILS_META_DATA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerIntent EXTRA_RESULTS_PENDINGINTENT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerIntent EXTRA_SECURE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerIntent EXTRA_ORIGIN'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerIntent EXTRA_CONFIDENCE_SCORES'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerIntent EXTRA_PROMPT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerIntent EXTRA_LANGUAGE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.SpeechRecognizer android.speech.SpeechRecognizer createSpeechRecognizer(android.content.Context)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.SpeechRecognizer CONFIDENCE_SCORES'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerIntent EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerIntent EXTRA_SUPPORTED_LANGUAGES'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerIntent ACTION_VOICE_SEARCH_HANDS_FREE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerIntent ACTION_GET_LANGUAGE_DETAILS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerIntent EXTRA_LANGUAGE_MODEL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.RecognizerIntent LANGUAGE_MODEL_WEB_SEARCH'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,77 @@
<root>
<item name='android.speech.tts.TextToSpeech.Engine EXTRA_UNAVAILABLE_VOICES'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.tts.TextToSpeechService android.os.IBinder onBind(android.content.Intent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.tts.TextToSpeech int isLanguageAvailable(java.util.Locale) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.tts.TextToSpeech.Engine KEY_PARAM_PAN'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.tts.SynthesisRequest android.os.Bundle getParams()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.tts.SynthesisRequest SynthesisRequest(java.lang.String, android.os.Bundle) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.tts.TextToSpeech.Engine KEY_FEATURE_NETWORK_SYNTHESIS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.tts.TextToSpeech.Engine KEY_PARAM_UTTERANCE_ID'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.tts.TextToSpeech java.util.List&lt;android.speech.tts.TextToSpeech.EngineInfo&gt; getEngines()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.tts.TextToSpeech.Engine ACTION_CHECK_TTS_DATA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.tts.TextToSpeech.Engine INTENT_ACTION_TTS_SERVICE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.tts.TextToSpeech.Engine KEY_FEATURE_EMBEDDED_SYNTHESIS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.tts.TextToSpeech.Engine EXTRA_CHECK_VOICE_DATA_FOR'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.tts.TextToSpeech.Engine EXTRA_VOICE_DATA_ROOT_DIRECTORY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.tts.TextToSpeech.Engine ACTION_TTS_DATA_INSTALLED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.tts.TextToSpeech.Engine EXTRA_VOICE_DATA_FILES'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.tts.TextToSpeech.Engine EXTRA_TTS_DATA_INSTALLED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.tts.TextToSpeech.Engine KEY_PARAM_STREAM'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.tts.TextToSpeech.Engine KEY_PARAM_VOLUME'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.tts.TextToSpeech ACTION_TTS_QUEUE_PROCESSING_COMPLETED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.tts.TextToSpeech.Engine SERVICE_META_DATA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.tts.TextToSpeech java.util.Set&lt;java.lang.String&gt; getFeatures(java.util.Locale) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.tts.TextToSpeech.Engine ACTION_INSTALL_TTS_DATA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.tts.TextToSpeech.Engine EXTRA_VOICE_DATA_FILES_INFO'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.speech.tts.TextToSpeech.Engine EXTRA_AVAILABLE_VOICES'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,68 @@
<root>
<item name='android.telephony.TelephonyManager ACTION_PHONE_STATE_CHANGED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.telephony.NeighboringCellInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.telephony.SmsMessage.MessageClass UNKNOWN'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.telephony.CellSignalStrengthGsm void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.telephony.TelephonyManager EXTRA_STATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.telephony.CellInfoLte void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.telephony.CellIdentityGsm void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.telephony.CellInfoCdma void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.telephony.SmsMessage.MessageClass CLASS_2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.telephony.SmsMessage.MessageClass CLASS_3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.telephony.SmsMessage.MessageClass CLASS_1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.telephony.CellIdentityCdma void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.telephony.PhoneNumberFormattingTextWatcher void onTextChanged(java.lang.CharSequence, int, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.telephony.CellIdentityLte void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.telephony.TelephonyManager EXTRA_INCOMING_NUMBER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.telephony.CellInfoGsm void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.telephony.CellSignalStrengthCdma void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.telephony.SmsMessage.MessageClass CLASS_0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.telephony.SignalStrength void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.telephony.CellSignalStrengthLte void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.telephony.CellInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.telephony.ServiceState void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,17 @@
<root>
<item name='android.telephony.gsm.SmsMessage.MessageClass CLASS_1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.telephony.gsm.SmsMessage.MessageClass CLASS_2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.telephony.gsm.SmsMessage.MessageClass CLASS_0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.telephony.gsm.SmsMessage.MessageClass CLASS_3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.telephony.gsm.SmsMessage.MessageClass UNKNOWN'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,53 @@
<root>
<item name='android.test.InstrumentationTestCase T launchActivityWithIntent(java.lang.String, java.lang.Class&lt;T&gt;, android.content.Intent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.InstrumentationTestCase void sendKeys(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.InstrumentationTestCase T launchActivity(java.lang.String, java.lang.Class&lt;T&gt;, android.os.Bundle)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.InstrumentationTestCase T launchActivityWithIntent(java.lang.String, java.lang.Class&lt;T&gt;, android.content.Intent) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.InstrumentationTestCase void sendRepeatedKeys(int...) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.InstrumentationTestRunner REPORT_VALUE_ID'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.InstrumentationTestRunner REPORT_KEY_NUM_CURRENT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.InstrumentationTestCase T launchActivity(java.lang.String, java.lang.Class&lt;T&gt;, android.os.Bundle) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.IsolatedContext boolean bindService(android.content.Intent, android.content.ServiceConnection, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.InstrumentationTestRunner REPORT_KEY_STACK'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.InstrumentationTestCase void sendKeys(int...) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.InstrumentationTestCase T launchActivityWithIntent(java.lang.String, java.lang.Class&lt;T&gt;, android.content.Intent)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.InstrumentationTestRunner REPORT_KEY_NUM_TOTAL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.InstrumentationTestRunner REPORT_KEY_NAME_CLASS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.InstrumentationTestRunner REPORT_KEY_NAME_TEST'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.InstrumentationTestCase void runTestOnUiThread(java.lang.Runnable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.IsolatedContext java.lang.Object getSystemService(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,77 @@
<root>
<item name='android.test.mock.MockContext void enforceCallingPermission(java.lang.String, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.mock.MockContext void sendOrderedBroadcast(android.content.Intent, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.mock.MockCursor int getColumnIndex(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.mock.MockCursor int getColumnIndexOrThrow(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.mock.MockContext boolean startInstrumentation(android.content.ComponentName, java.lang.String, android.os.Bundle) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.mock.MockContentProvider int bulkInsert(android.net.Uri, android.content.ContentValues[]) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.mock.MockResources android.content.res.TypedArray obtainAttributes(android.util.AttributeSet, int[]) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.mock.MockCursor void copyStringToBuffer(int, android.database.CharArrayBuffer) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.mock.MockContentProvider android.content.ContentProviderResult[] applyBatch(java.util.ArrayList&lt;android.content.ContentProviderOperation&gt;) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.mock.MockContext void enforceCallingOrSelfPermission(java.lang.String, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.mock.MockContext int checkCallingOrSelfPermission(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.mock.MockContext java.lang.Object getSystemService(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.mock.MockContentProvider int delete(android.net.Uri, java.lang.String, java.lang.String[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.mock.MockContext void enforcePermission(java.lang.String, int, int, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.mock.MockContentProvider java.lang.String getType(android.net.Uri) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.mock.MockApplication void onConfigurationChanged(android.content.res.Configuration) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.mock.MockContext android.content.Context createDisplayContext(android.view.Display) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.mock.MockContext int checkCallingPermission(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.mock.MockContentProvider android.database.Cursor query(android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.mock.MockContentProvider android.net.Uri insert(android.net.Uri, android.content.ContentValues) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.mock.MockContext android.content.Context createConfigurationContext(android.content.res.Configuration) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.mock.MockContentProvider android.content.res.AssetFileDescriptor openTypedAssetFile(android.net.Uri, java.lang.String, android.os.Bundle) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.mock.MockContext boolean bindService(android.content.Intent, android.content.ServiceConnection, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.mock.MockContext int checkPermission(java.lang.String, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.test.mock.MockContext void unbindService(android.content.ServiceConnection) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,593 @@
<root>
<item name='android.text.SpannableStringBuilder android.text.Editable append(java.lang.CharSequence)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Selection void selectAll(android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Spannable.Factory android.text.Spannable.Factory getInstance()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils java.lang.CharSequence ellipsize(java.lang.CharSequence, android.text.TextPaint, float, android.text.TextUtils.TruncateAt, boolean, android.text.TextUtils.EllipsizeCallback) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.BoringLayout android.text.BoringLayout replaceOrMake(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, android.text.BoringLayout.Metrics, boolean, android.text.TextUtils.TruncateAt, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.BoringLayout android.text.BoringLayout make(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, android.text.BoringLayout.Metrics, boolean, android.text.TextUtils.TruncateAt, int) 6'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils void copySpansFrom(android.text.Spanned, int, int, java.lang.Class, android.text.Spannable, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Selection void setSelection(android.text.Spannable, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Layout void getSelectionPath(int, int, android.graphics.Path) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableStringBuilder SpannableStringBuilder(java.lang.CharSequence) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Layout float getDesiredWidth(java.lang.CharSequence, android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.DynamicLayout DynamicLayout(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, boolean) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Selection boolean moveDown(android.text.Spannable, android.text.Layout) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Layout.Alignment ALIGN_OPPOSITE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableStringBuilder java.lang.Appendable append(java.lang.CharSequence) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.BoringLayout android.text.BoringLayout make(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, android.text.BoringLayout.Metrics, boolean)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.AlteredCharSequence java.lang.CharSequence subSequence(int, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableStringBuilder android.text.Editable replace(int, int, java.lang.CharSequence)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannedString SpannedString(java.lang.CharSequence) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.BoringLayout android.text.BoringLayout replaceOrMake(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, android.text.BoringLayout.Metrics, boolean)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableStringBuilder android.text.SpannableStringBuilder insert(int, java.lang.CharSequence)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.StaticLayout StaticLayout(java.lang.CharSequence, int, int, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, boolean) 3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils java.lang.CharSequence concat(java.lang.CharSequence...) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils java.lang.CharSequence commaEllipsize(java.lang.CharSequence, android.text.TextPaint, float, java.lang.String, java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Editable android.text.Editable replace(int, int, java.lang.CharSequence)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableStringBuilder android.text.Editable replace(int, int, java.lang.CharSequence, int, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.DynamicLayout DynamicLayout(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, boolean) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils java.lang.CharSequence replace(java.lang.CharSequence, java.lang.String[], java.lang.CharSequence[])'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils boolean regionMatches(java.lang.CharSequence, int, java.lang.CharSequence, int, int) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils java.lang.CharSequence expandTemplate(java.lang.CharSequence, java.lang.CharSequence...) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.InputFilter java.lang.CharSequence filter(java.lang.CharSequence, int, int, android.text.Spanned, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils int indexOf(java.lang.CharSequence, java.lang.CharSequence, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableStringBuilder java.lang.String toString()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableStringBuilder android.text.Editable append(java.lang.CharSequence, int, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Layout.Alignment ALIGN_NORMAL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Selection boolean moveToLeftEdge(android.text.Spannable, android.text.Layout) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Selection void setSelection(android.text.Spannable, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Editable android.text.Editable insert(int, java.lang.CharSequence) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableStringBuilder android.text.SpannableStringBuilder append(java.lang.CharSequence, int, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpanWatcher void onSpanChanged(android.text.Spannable, java.lang.Object, int, int, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableStringBuilder android.text.Editable append(java.lang.CharSequence) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableStringBuilder android.text.SpannableStringBuilder replace(int, int, java.lang.CharSequence, int, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableString java.lang.Object[] getSpans(int, int, java.lang.Class)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils int getCapsMode(java.lang.CharSequence, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Layout void getCursorPath(int, android.graphics.Path, java.lang.CharSequence) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils java.lang.String htmlEncode(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.AutoText java.lang.String get(java.lang.CharSequence, int, int, android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.StaticLayout StaticLayout(java.lang.CharSequence, int, int, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, boolean, android.text.TextUtils.TruncateAt, int) 3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableStringBuilder android.text.SpannableStringBuilder replace(int, int, java.lang.CharSequence) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Editable android.text.Editable append(java.lang.CharSequence) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannedString java.lang.CharSequence subSequence(int, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils java.lang.String[] split(java.lang.String, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils.TruncateAt MARQUEE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableStringBuilder android.text.SpannableStringBuilder replace(int, int, java.lang.CharSequence)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableStringBuilder android.text.SpannableStringBuilder valueOf(java.lang.CharSequence)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils.TruncateAt MIDDLE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.BoringLayout android.text.BoringLayout make(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, android.text.BoringLayout.Metrics, boolean) 6'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Html java.lang.String toHtml(android.text.Spanned) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils boolean regionMatches(java.lang.CharSequence, int, java.lang.CharSequence, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.StaticLayout StaticLayout(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, boolean) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Selection boolean extendDown(android.text.Spannable, android.text.Layout) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.BoringLayout android.text.BoringLayout make(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, android.text.BoringLayout.Metrics, boolean, android.text.TextUtils.TruncateAt, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.StaticLayout StaticLayout(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, boolean) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils int indexOf(java.lang.CharSequence, java.lang.CharSequence, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.InputFilter.AllCaps java.lang.CharSequence filter(java.lang.CharSequence, int, int, android.text.Spanned, int, int) 3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.BoringLayout android.text.BoringLayout.Metrics isBoring(java.lang.CharSequence, android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils int indexOf(java.lang.CharSequence, java.lang.CharSequence) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.AutoText int getSize(android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableStringBuilder android.text.SpannableStringBuilder append(char)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableStringBuilder android.text.SpannableStringBuilder delete(int, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils int indexOf(java.lang.CharSequence, java.lang.CharSequence) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Selection boolean extendUp(android.text.Spannable, android.text.Layout) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableStringBuilder android.text.Editable insert(int, java.lang.CharSequence)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableStringBuilder android.text.Editable append(char)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Selection boolean extendDown(android.text.Spannable, android.text.Layout) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils.SimpleStringSplitter java.util.Iterator&lt;java.lang.String&gt; iterator()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.InputFilter.AllCaps java.lang.CharSequence filter(java.lang.CharSequence, int, int, android.text.Spanned, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.BoringLayout android.text.Layout.Directions getLineDirections(int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Layout void draw(android.graphics.Canvas, android.graphics.Path, android.graphics.Paint, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Editable android.text.Editable append(java.lang.CharSequence)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Selection void extendSelection(android.text.Spannable, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils int indexOf(java.lang.CharSequence, char, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Selection boolean moveUp(android.text.Spannable, android.text.Layout) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils boolean isGraphic(java.lang.CharSequence) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Selection boolean extendToRightEdge(android.text.Spannable, android.text.Layout) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Selection boolean extendUp(android.text.Spannable, android.text.Layout) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.BoringLayout android.text.BoringLayout replaceOrMake(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, android.text.BoringLayout.Metrics, boolean, android.text.TextUtils.TruncateAt, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.InputFilter java.lang.CharSequence filter(java.lang.CharSequence, int, int, android.text.Spanned, int, int) 3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils void dumpSpans(java.lang.CharSequence, android.util.Printer, java.lang.String) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils java.lang.CharSequence ellipsize(java.lang.CharSequence, android.text.TextPaint, float, android.text.TextUtils.TruncateAt, boolean, android.text.TextUtils.EllipsizeCallback) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Editable android.text.Editable insert(int, java.lang.CharSequence)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils void writeToParcel(java.lang.CharSequence, android.os.Parcel, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableStringBuilder java.lang.Appendable append(java.lang.CharSequence, int, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils boolean isDigitsOnly(java.lang.CharSequence) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils java.lang.CharSequence commaEllipsize(java.lang.CharSequence, android.text.TextPaint, float, java.lang.String, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Editable android.text.Editable append(char)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableStringBuilder int getTextRunCursor(int, int, int, int, int, android.graphics.Paint) 5'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Selection boolean moveUp(android.text.Spannable, android.text.Layout) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Selection boolean extendToRightEdge(android.text.Spannable, android.text.Layout) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Selection boolean moveToRightEdge(android.text.Spannable, android.text.Layout) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextPaint void set(android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Editable.Factory android.text.Editable.Factory getInstance()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Layout android.text.Layout.Directions getLineDirections(int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableStringBuilder android.text.SpannableStringBuilder append(java.lang.CharSequence)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableStringBuilder SpannableStringBuilder(java.lang.CharSequence, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannedString android.text.SpannedString valueOf(java.lang.CharSequence)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils.TruncateAt START'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannedString java.lang.Object[] getSpans(int, int, java.lang.Class)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.DynamicLayout DynamicLayout(java.lang.CharSequence, java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, boolean) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Html java.lang.String escapeHtml(java.lang.CharSequence)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Selection void removeSelection(android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Selection boolean moveToRightEdge(android.text.Spannable, android.text.Layout) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableStringBuilder java.lang.Appendable append(java.lang.CharSequence)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Editable android.text.Editable replace(int, int, java.lang.CharSequence, int, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableStringBuilder android.text.Editable insert(int, java.lang.CharSequence) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableStringBuilder android.text.Editable replace(int, int, java.lang.CharSequence) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.LoginFilter java.lang.CharSequence filter(java.lang.CharSequence, int, int, android.text.Spanned, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.BoringLayout android.text.BoringLayout.Metrics isBoring(java.lang.CharSequence, android.text.TextPaint, android.text.BoringLayout.Metrics) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils java.lang.String htmlEncode(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.BoringLayout android.text.BoringLayout replaceOrMake(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, android.text.BoringLayout.Metrics, boolean, android.text.TextUtils.TruncateAt, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableStringBuilder android.text.SpannableStringBuilder append(java.lang.CharSequence) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Selection boolean moveRight(android.text.Spannable, android.text.Layout) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils java.lang.String join(java.lang.CharSequence, java.lang.Object[]) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils java.lang.CharSequence getReverse(java.lang.CharSequence, int, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Selection boolean extendRight(android.text.Spannable, android.text.Layout) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Layout void draw(android.graphics.Canvas) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Editable android.text.Editable delete(int, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.InputFilter.LengthFilter java.lang.CharSequence filter(java.lang.CharSequence, int, int, android.text.Spanned, int, int) 3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Annotation Annotation(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.BoringLayout BoringLayout(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, android.text.BoringLayout.Metrics, boolean, android.text.TextUtils.TruncateAt, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableStringBuilder android.text.SpannableStringBuilder insert(int, java.lang.CharSequence, int, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils int getTrimmedLength(java.lang.CharSequence) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableStringBuilder android.text.Editable insert(int, java.lang.CharSequence, int, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Editable android.text.Editable insert(int, java.lang.CharSequence, int, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils int indexOf(java.lang.CharSequence, java.lang.CharSequence, int, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Selection boolean moveRight(android.text.Spannable, android.text.Layout) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Html java.lang.String escapeHtml(java.lang.CharSequence) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableStringBuilder java.lang.Appendable append(char)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.AlteredCharSequence android.text.AlteredCharSequence make(java.lang.CharSequence, char[], int, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils int indexOf(java.lang.CharSequence, char) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.DynamicLayout DynamicLayout(java.lang.CharSequence, java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, boolean, android.text.TextUtils.TruncateAt, int) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.BoringLayout BoringLayout(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, android.text.BoringLayout.Metrics, boolean, android.text.TextUtils.TruncateAt, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.BoringLayout android.text.BoringLayout replaceOrMake(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, android.text.BoringLayout.Metrics, boolean, android.text.TextUtils.TruncateAt, int) 6'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils int indexOf(java.lang.CharSequence, java.lang.CharSequence, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableStringBuilder android.text.SpannableStringBuilder insert(int, java.lang.CharSequence) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextWatcher void onTextChanged(java.lang.CharSequence, int, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils java.lang.CharSequence ellipsize(java.lang.CharSequence, android.text.TextPaint, float, android.text.TextUtils.TruncateAt) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils void copySpansFrom(android.text.Spanned, int, int, java.lang.Class, android.text.Spannable, int) 4'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableStringBuilder android.text.Editable delete(int, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.LoginFilter java.lang.CharSequence filter(java.lang.CharSequence, int, int, android.text.Spanned, int, int) 3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.BoringLayout android.text.BoringLayout make(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, android.text.BoringLayout.Metrics, boolean, android.text.TextUtils.TruncateAt, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Selection boolean extendLeft(android.text.Spannable, android.text.Layout) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils int lastIndexOf(java.lang.CharSequence, char) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Selection boolean extendRight(android.text.Spannable, android.text.Layout) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils int indexOf(java.lang.CharSequence, char, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.AutoText java.lang.String get(java.lang.CharSequence, int, int, android.view.View) 3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils java.lang.CharSequence ellipsize(java.lang.CharSequence, android.text.TextPaint, float, android.text.TextUtils.TruncateAt) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableString java.lang.CharSequence subSequence(int, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils java.lang.String join(java.lang.CharSequence, java.lang.Object[])'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Html java.lang.String toHtml(android.text.Spanned)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils int lastIndexOf(java.lang.CharSequence, char, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils java.lang.CharSequence ellipsize(java.lang.CharSequence, android.text.TextPaint, float, android.text.TextUtils.TruncateAt)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Layout.Alignment ALIGN_CENTER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.BoringLayout android.text.BoringLayout make(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, android.text.BoringLayout.Metrics, boolean, android.text.TextUtils.TruncateAt, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.DynamicLayout DynamicLayout(java.lang.CharSequence, java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, boolean, android.text.TextUtils.TruncateAt, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Selection boolean extendLeft(android.text.Spannable, android.text.Layout) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableString SpannableString(java.lang.CharSequence) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils java.lang.String join(java.lang.CharSequence, java.lang.Iterable) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Selection boolean moveLeft(android.text.Spannable, android.text.Layout) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.AlteredCharSequence java.lang.String toString()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.BoringLayout BoringLayout(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, android.text.BoringLayout.Metrics, boolean, android.text.TextUtils.TruncateAt, int) 6'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils int lastIndexOf(java.lang.CharSequence, char, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Selection boolean moveToLeftEdge(android.text.Spannable, android.text.Layout) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Editable android.text.Editable append(java.lang.CharSequence, int, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils.TruncateAt END'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils int getOffsetAfter(java.lang.CharSequence, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.BoringLayout BoringLayout(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, android.text.BoringLayout.Metrics, boolean) 6'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils java.lang.CharSequence expandTemplate(java.lang.CharSequence, java.lang.CharSequence...)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Selection boolean extendToLeftEdge(android.text.Spannable, android.text.Layout) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.DynamicLayout DynamicLayout(java.lang.CharSequence, java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, boolean) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableString android.text.SpannableString valueOf(java.lang.CharSequence)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils void getChars(java.lang.CharSequence, int, int, char[], int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils java.lang.CharSequence replace(java.lang.CharSequence, java.lang.String[], java.lang.CharSequence[]) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils java.lang.String[] split(java.lang.String, java.util.regex.Pattern) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Editable android.text.Editable replace(int, int, java.lang.CharSequence) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.SpannableStringBuilder java.lang.CharSequence subSequence(int, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.BoringLayout android.text.BoringLayout replaceOrMake(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout.Alignment, float, float, android.text.BoringLayout.Metrics, boolean) 6'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils int getOffsetBefore(java.lang.CharSequence, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Selection boolean moveLeft(android.text.Spannable, android.text.Layout) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.BoringLayout void draw(android.graphics.Canvas, android.graphics.Path, android.graphics.Paint, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Selection boolean moveDown(android.text.Spannable, android.text.Layout) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Selection boolean extendToLeftEdge(android.text.Spannable, android.text.Layout) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.InputFilter.LengthFilter java.lang.CharSequence filter(java.lang.CharSequence, int, int, android.text.Spanned, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils java.lang.String[] split(java.lang.String, java.util.regex.Pattern) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils java.lang.CharSequence ellipsize(java.lang.CharSequence, android.text.TextPaint, float, android.text.TextUtils.TruncateAt, boolean, android.text.TextUtils.EllipsizeCallback)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.Annotation void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.TextUtils java.lang.String join(java.lang.CharSequence, java.lang.Iterable)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,104 @@
<root>
<item name='android.text.format.DateFormat java.text.DateFormat getTimeFormat(android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.DateFormat char[] getDateFormatOrder(android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.DateUtils WEEKDAY_FORMAT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.DateFormat java.lang.CharSequence format(java.lang.CharSequence, java.util.Date)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.DateUtils java.util.Formatter formatDateRange(android.content.Context, java.util.Formatter, long, long, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.Time java.lang.String format2445()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.DateFormat java.lang.CharSequence format(java.lang.CharSequence, java.util.Calendar) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.DateFormat java.lang.CharSequence format(java.lang.CharSequence, long) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.DateUtils MONTH_FORMAT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.DateFormat java.lang.CharSequence format(java.lang.CharSequence, java.util.Calendar)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.DateFormat java.text.DateFormat getDateFormat(android.content.Context)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.DateFormat java.lang.CharSequence format(java.lang.CharSequence, long)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.DateFormat boolean is24HourFormat(android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.Time TIMEZONE_UTC'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.DateFormat java.text.DateFormat getTimeFormat(android.content.Context)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.DateUtils java.lang.CharSequence getRelativeDateTimeString(android.content.Context, long, long, long, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.Time void set(android.text.format.Time) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.DateUtils ABBREV_MONTH_FORMAT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.DateUtils ABBREV_WEEKDAY_FORMAT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.Time java.lang.String format(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.DateFormat java.lang.CharSequence format(java.lang.CharSequence, java.util.Calendar) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.DateUtils YEAR_FORMAT_TWO_DIGITS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.DateFormat java.lang.CharSequence format(java.lang.CharSequence, java.util.Date) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.Time Time(android.text.format.Time) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.DateFormat java.text.DateFormat getDateFormat(android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.DateUtils NUMERIC_MONTH_FORMAT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.DateUtils java.lang.CharSequence getRelativeTimeSpanString(android.content.Context, long, boolean) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.DateUtils java.util.Formatter formatDateRange(android.content.Context, java.util.Formatter, long, long, int, java.lang.String) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.DateUtils java.lang.CharSequence getRelativeTimeSpanString(android.content.Context, long) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.DateUtils YEAR_FORMAT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.DateUtils HOUR_MINUTE_24'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.Time boolean isEpoch(android.text.format.Time) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.DateFormat char[] getDateFormatOrder(android.content.Context)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.format.DateUtils MONTH_DAY_FORMAT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,515 @@
<root>
<item name='android.text.method.QwertyKeyListener void markAsReplaced(android.text.Spannable, int, int, java.lang.String) 3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.LinkMovementMethod boolean onTouchEvent(android.widget.TextView, android.text.Spannable, android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ScrollingMovementMethod boolean down(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ScrollingMovementMethod void onTakeFocus(android.widget.TextView, android.text.Spannable, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseKeyListener boolean backspace(android.view.View, android.text.Editable, int, android.view.KeyEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ArrowKeyMovementMethod boolean pageDown(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.TextKeyListener boolean onKeyUp(android.view.View, android.text.Editable, int, android.view.KeyEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.TextKeyListener boolean onKeyOther(android.view.View, android.text.Editable, android.view.KeyEvent) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.MetaKeyKeyListener void clearMetaKeyState(android.text.Editable, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.Touch void scrollTo(android.widget.TextView, android.text.Layout, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseMovementMethod boolean home(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ScrollingMovementMethod boolean bottom(android.widget.TextView, android.text.Spannable) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.MultiTapKeyListener boolean onKeyDown(android.view.View, android.text.Editable, int, android.view.KeyEvent) 3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.MovementMethod void initialize(android.widget.TextView, android.text.Spannable) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.MetaKeyKeyListener void adjustMetaAfterKeypress(android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ScrollingMovementMethod boolean onTouchEvent(android.widget.TextView, android.text.Spannable, android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.MovementMethod boolean onTouchEvent(android.widget.TextView, android.text.Spannable, android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.DigitsKeyListener android.text.method.DigitsKeyListener getInstance(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.MovementMethod boolean onGenericMotionEvent(android.widget.TextView, android.text.Spannable, android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ScrollingMovementMethod boolean left(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseMovementMethod boolean onTouchEvent(android.widget.TextView, android.text.Spannable, android.view.MotionEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.KeyListener boolean onKeyUp(android.view.View, android.text.Editable, int, android.view.KeyEvent) 3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseMovementMethod boolean bottom(android.widget.TextView, android.text.Spannable) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseMovementMethod boolean lineEnd(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.LinkMovementMethod boolean handleMovementKey(android.widget.TextView, android.text.Spannable, int, int, android.view.KeyEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.TextKeyListener.Capitalize WORDS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.DialerKeyListener int lookup(android.view.KeyEvent, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.LinkMovementMethod void initialize(android.widget.TextView, android.text.Spannable) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ArrowKeyMovementMethod void initialize(android.widget.TextView, android.text.Spannable) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ScrollingMovementMethod void onTakeFocus(android.widget.TextView, android.text.Spannable, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.TextKeyListener boolean onKeyDown(android.view.View, android.text.Editable, int, android.view.KeyEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.MovementMethod boolean onKeyOther(android.widget.TextView, android.text.Spannable, android.view.KeyEvent) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ArrowKeyMovementMethod boolean handleMovementKey(android.widget.TextView, android.text.Spannable, int, int, android.view.KeyEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ArrowKeyMovementMethod void onTakeFocus(android.widget.TextView, android.text.Spannable, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.Touch int getInitialScrollX(android.widget.TextView, android.text.Spannable) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.TextKeyListener boolean onKeyOther(android.view.View, android.text.Editable, android.view.KeyEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.CharacterPickerDialog void onClick(android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.MovementMethod boolean onTouchEvent(android.widget.TextView, android.text.Spannable, android.view.MotionEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ArrowKeyMovementMethod boolean end(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.LinkMovementMethod boolean right(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseMovementMethod boolean top(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.Touch void scrollTo(android.widget.TextView, android.text.Layout, int, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ScrollingMovementMethod boolean left(android.widget.TextView, android.text.Spannable) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseMovementMethod boolean onTouchEvent(android.widget.TextView, android.text.Spannable, android.view.MotionEvent) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ScrollingMovementMethod boolean top(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.LinkMovementMethod boolean handleMovementKey(android.widget.TextView, android.text.Spannable, int, int, android.view.KeyEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseKeyListener boolean onKeyDown(android.view.View, android.text.Editable, int, android.view.KeyEvent) 3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ArrowKeyMovementMethod boolean left(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ArrowKeyMovementMethod boolean right(android.widget.TextView, android.text.Spannable) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ScrollingMovementMethod boolean end(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.MetaKeyKeyListener boolean onKeyDown(android.view.View, android.text.Editable, int, android.view.KeyEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ScrollingMovementMethod boolean up(android.widget.TextView, android.text.Spannable) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ArrowKeyMovementMethod boolean top(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseKeyListener boolean backspace(android.view.View, android.text.Editable, int, android.view.KeyEvent) 3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ArrowKeyMovementMethod void onTakeFocus(android.widget.TextView, android.text.Spannable, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.LinkMovementMethod boolean onTouchEvent(android.widget.TextView, android.text.Spannable, android.view.MotionEvent) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ArrowKeyMovementMethod boolean handleMovementKey(android.widget.TextView, android.text.Spannable, int, int, android.view.KeyEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ArrowKeyMovementMethod boolean pageUp(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ScrollingMovementMethod boolean lineEnd(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.TextKeyListener boolean onKeyUp(android.view.View, android.text.Editable, int, android.view.KeyEvent) 3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.MetaKeyKeyListener void resetLockedMeta(android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ScrollingMovementMethod boolean pageDown(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseMovementMethod boolean pageUp(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseMovementMethod boolean handleMovementKey(android.widget.TextView, android.text.Spannable, int, int, android.view.KeyEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.TextKeyListener void onSpanChanged(android.text.Spannable, java.lang.Object, int, int, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.MovementMethod boolean onTouchEvent(android.widget.TextView, android.text.Spannable, android.view.MotionEvent) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseMovementMethod boolean handleMovementKey(android.widget.TextView, android.text.Spannable, int, int, android.view.KeyEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.LinkMovementMethod boolean right(android.widget.TextView, android.text.Spannable) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseMovementMethod boolean right(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ScrollingMovementMethod boolean home(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.TextKeyListener android.text.method.TextKeyListener getInstance(boolean, android.text.method.TextKeyListener.Capitalize) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.MovementMethod boolean onGenericMotionEvent(android.widget.TextView, android.text.Spannable, android.view.MotionEvent) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.CharacterPickerDialog CharacterPickerDialog(android.content.Context, android.view.View, android.text.Editable, java.lang.String, boolean) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.MultiTapKeyListener boolean onKeyDown(android.view.View, android.text.Editable, int, android.view.KeyEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ArrowKeyMovementMethod boolean right(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ScrollingMovementMethod boolean up(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.LinkMovementMethod boolean onTouchEvent(android.widget.TextView, android.text.Spannable, android.view.MotionEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseMovementMethod boolean pageDown(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.PasswordTransformationMethod void onTextChanged(java.lang.CharSequence, int, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.TextKeyListener boolean onKeyDown(android.view.View, android.text.Editable, int, android.view.KeyEvent) 3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseKeyListener boolean forwardDelete(android.view.View, android.text.Editable, int, android.view.KeyEvent) 3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseMovementMethod boolean down(android.widget.TextView, android.text.Spannable) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ScrollingMovementMethod boolean right(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ArrowKeyMovementMethod boolean lineStart(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseMovementMethod boolean up(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.MetaKeyKeyListener boolean onKeyUp(android.view.View, android.text.Editable, int, android.view.KeyEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ScrollingMovementMethod boolean right(android.widget.TextView, android.text.Spannable) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.MetaKeyKeyListener long handleKeyUp(long, int, android.view.KeyEvent) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.DigitsKeyListener java.lang.CharSequence filter(java.lang.CharSequence, int, int, android.text.Spanned, int, int) 3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.MetaKeyKeyListener boolean onKeyDown(android.view.View, android.text.Editable, int, android.view.KeyEvent) 3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.NumberKeyListener int lookup(android.view.KeyEvent, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.KeyListener boolean onKeyDown(android.view.View, android.text.Editable, int, android.view.KeyEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseMovementMethod boolean up(android.widget.TextView, android.text.Spannable) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.NumberKeyListener java.lang.CharSequence filter(java.lang.CharSequence, int, int, android.text.Spanned, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ScrollingMovementMethod boolean onTouchEvent(android.widget.TextView, android.text.Spannable, android.view.MotionEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.PasswordTransformationMethod java.lang.CharSequence getTransformation(java.lang.CharSequence, android.view.View)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.Touch int getInitialScrollY(android.widget.TextView, android.text.Spannable) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseMovementMethod boolean down(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseKeyListener boolean onKeyOther(android.view.View, android.text.Editable, android.view.KeyEvent) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ArrowKeyMovementMethod boolean down(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ArrowKeyMovementMethod boolean bottom(android.widget.TextView, android.text.Spannable) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.LinkMovementMethod boolean left(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.LinkMovementMethod boolean up(android.widget.TextView, android.text.Spannable) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ArrowKeyMovementMethod boolean up(android.widget.TextView, android.text.Spannable) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseMovementMethod boolean onGenericMotionEvent(android.widget.TextView, android.text.Spannable, android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.NumberKeyListener boolean onKeyDown(android.view.View, android.text.Editable, int, android.view.KeyEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ArrowKeyMovementMethod boolean onTouchEvent(android.widget.TextView, android.text.Spannable, android.view.MotionEvent) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.Touch boolean onTouchEvent(android.widget.TextView, android.text.Spannable, android.view.MotionEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.QwertyKeyListener boolean onKeyDown(android.view.View, android.text.Editable, int, android.view.KeyEvent) 3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.TextKeyListener void clear(android.text.Editable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ScrollingMovementMethod boolean pageUp(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.MultiTapKeyListener void onSpanChanged(android.text.Spannable, java.lang.Object, int, int, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.MetaKeyKeyListener void resetMetaState(android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.LinkMovementMethod boolean down(android.widget.TextView, android.text.Spannable) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.MovementMethod void onTakeFocus(android.widget.TextView, android.text.Spannable, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.DigitsKeyListener android.text.method.DigitsKeyListener getInstance(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseMovementMethod boolean left(android.widget.TextView, android.text.Spannable) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.LinkMovementMethod boolean handleMovementKey(android.widget.TextView, android.text.Spannable, int, int, android.view.KeyEvent) 4'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseKeyListener boolean forwardDelete(android.view.View, android.text.Editable, int, android.view.KeyEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ScrollingMovementMethod boolean onTouchEvent(android.widget.TextView, android.text.Spannable, android.view.MotionEvent) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ArrowKeyMovementMethod boolean bottom(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ArrowKeyMovementMethod boolean down(android.widget.TextView, android.text.Spannable) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.QwertyKeyListener void markAsReplaced(android.text.Spannable, int, int, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.LinkMovementMethod boolean left(android.widget.TextView, android.text.Spannable) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.MetaKeyKeyListener boolean onKeyUp(android.view.View, android.text.Editable, int, android.view.KeyEvent) 3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ArrowKeyMovementMethod boolean up(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseMovementMethod boolean right(android.widget.TextView, android.text.Spannable) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.Touch boolean onTouchEvent(android.widget.TextView, android.text.Spannable, android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseMovementMethod void onTakeFocus(android.widget.TextView, android.text.Spannable, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.TransformationMethod java.lang.CharSequence getTransformation(java.lang.CharSequence, android.view.View)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.KeyListener boolean onKeyDown(android.view.View, android.text.Editable, int, android.view.KeyEvent) 3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseMovementMethod boolean end(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.MetaKeyKeyListener void clearMetaKeyState(android.view.View, android.text.Editable, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ArrowKeyMovementMethod boolean home(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseMovementMethod boolean left(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.QwertyKeyListener android.text.method.QwertyKeyListener getInstance(boolean, android.text.method.TextKeyListener.Capitalize) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ArrowKeyMovementMethod boolean lineEnd(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.DigitsKeyListener java.lang.CharSequence filter(java.lang.CharSequence, int, int, android.text.Spanned, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.TextKeyListener.Capitalize SENTENCES'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.KeyListener boolean onKeyUp(android.view.View, android.text.Editable, int, android.view.KeyEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ScrollingMovementMethod boolean bottom(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.LinkMovementMethod void onTakeFocus(android.widget.TextView, android.text.Spannable, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ArrowKeyMovementMethod boolean onTouchEvent(android.widget.TextView, android.text.Spannable, android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseMovementMethod void onTakeFocus(android.widget.TextView, android.text.Spannable, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.QwertyKeyListener boolean onKeyDown(android.view.View, android.text.Editable, int, android.view.KeyEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseMovementMethod boolean onKeyOther(android.widget.TextView, android.text.Spannable, android.view.KeyEvent) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.KeyListener boolean onKeyOther(android.view.View, android.text.Editable, android.view.KeyEvent) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ArrowKeyMovementMethod boolean left(android.widget.TextView, android.text.Spannable) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseMovementMethod boolean onGenericMotionEvent(android.widget.TextView, android.text.Spannable, android.view.MotionEvent) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.NumberKeyListener boolean ok(char[], char) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseKeyListener boolean onKeyOther(android.view.View, android.text.Editable, android.view.KeyEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.TextKeyListener.Capitalize CHARACTERS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.NumberKeyListener java.lang.CharSequence filter(java.lang.CharSequence, int, int, android.text.Spanned, int, int) 3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseMovementMethod boolean lineStart(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.LinkMovementMethod boolean up(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ScrollingMovementMethod boolean lineStart(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.LinkMovementMethod void onTakeFocus(android.widget.TextView, android.text.Spannable, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseKeyListener boolean onKeyDown(android.view.View, android.text.Editable, int, android.view.KeyEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.Touch boolean onTouchEvent(android.widget.TextView, android.text.Spannable, android.view.MotionEvent) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.TextKeyListener.Capitalize NONE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ArrowKeyMovementMethod boolean onTouchEvent(android.widget.TextView, android.text.Spannable, android.view.MotionEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.KeyListener boolean onKeyOther(android.view.View, android.text.Editable, android.view.KeyEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.MultiTapKeyListener android.text.method.MultiTapKeyListener getInstance(boolean, android.text.method.TextKeyListener.Capitalize) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseMovementMethod boolean handleMovementKey(android.widget.TextView, android.text.Spannable, int, int, android.view.KeyEvent) 4'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseMovementMethod boolean bottom(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseMovementMethod boolean onTouchEvent(android.widget.TextView, android.text.Spannable, android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ArrowKeyMovementMethod boolean handleMovementKey(android.widget.TextView, android.text.Spannable, int, int, android.view.KeyEvent) 4'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.BaseMovementMethod void initialize(android.widget.TextView, android.text.Spannable) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.ScrollingMovementMethod boolean down(android.widget.TextView, android.text.Spannable) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.MovementMethod void onTakeFocus(android.widget.TextView, android.text.Spannable, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.method.LinkMovementMethod boolean down(android.widget.TextView, android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,341 @@
<root>
<item name='android.text.style.LeadingMarginSpan.Standard Standard(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.UnderlineSpan void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.LeadingMarginSpan void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, android.text.Layout) 11'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.ReplacementSpan void draw(android.graphics.Canvas, java.lang.CharSequence, int, int, float, int, int, int, android.graphics.Paint) 8'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.LeadingMarginSpan.Standard void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, android.text.Layout) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.DrawableMarginSpan void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, android.text.Layout) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.LeadingMarginSpan.Standard void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, android.text.Layout) 11'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.MetricAffectingSpan void updateMeasureState(android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.StrikethroughSpan void updateDrawState(android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.ForegroundColorSpan void updateDrawState(android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.SuggestionSpan ACTION_SUGGESTION_PICKED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.TypefaceSpan void updateMeasureState(android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.IconMarginSpan void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, android.text.Layout) 7'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.AbsoluteSizeSpan AbsoluteSizeSpan(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.BackgroundColorSpan BackgroundColorSpan(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.BulletSpan void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, android.text.Layout) 7'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.DrawableMarginSpan void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, android.text.Layout) 11'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.SuperscriptSpan void updateMeasureState(android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.ImageSpan ImageSpan(android.content.Context, android.net.Uri) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.IconMarginSpan void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, android.text.Layout) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.ReplacementSpan void draw(android.graphics.Canvas, java.lang.CharSequence, int, int, float, int, int, int, android.graphics.Paint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.TypefaceSpan TypefaceSpan(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.SuggestionSpan SUGGESTION_SPAN_PICKED_HASHCODE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.BulletSpan BulletSpan(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.QuoteSpan void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, android.text.Layout) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.SubscriptSpan void updateMeasureState(android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.ScaleXSpan void updateMeasureState(android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.URLSpan void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.StyleSpan void updateMeasureState(android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.DynamicDrawableSpan void draw(android.graphics.Canvas, java.lang.CharSequence, int, int, float, int, int, int, android.graphics.Paint) 8'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.RasterizerSpan void updateDrawState(android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.LeadingMarginSpan void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, android.text.Layout) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.IconMarginSpan void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, android.text.Layout) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.AbsoluteSizeSpan void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.RelativeSizeSpan void updateMeasureState(android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.StyleSpan void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.DynamicDrawableSpan void draw(android.graphics.Canvas, java.lang.CharSequence, int, int, float, int, int, int, android.graphics.Paint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.SuggestionSpan SUGGESTION_SPAN_PICKED_AFTER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.MaskFilterSpan void updateDrawState(android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.IconMarginSpan void chooseHeight(java.lang.CharSequence, int, int, int, int, android.graphics.Paint.FontMetricsInt) 5'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.SubscriptSpan void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.TextAppearanceSpan TextAppearanceSpan(android.content.Context, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.StyleSpan StyleSpan(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.BackgroundColorSpan void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.LeadingMarginSpan void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, android.text.Layout) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.AbsoluteSizeSpan void updateDrawState(android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.QuoteSpan void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, android.text.Layout) 11'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.DrawableMarginSpan void chooseHeight(java.lang.CharSequence, int, int, int, int, android.graphics.Paint.FontMetricsInt) 5'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.BackgroundColorSpan void updateDrawState(android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.URLSpan URLSpan(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.LineHeightSpan void chooseHeight(java.lang.CharSequence, int, int, int, int, android.graphics.Paint.FontMetricsInt) 5'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.LocaleSpan void updateMeasureState(android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.LineHeightSpan void chooseHeight(java.lang.CharSequence, int, int, int, int, android.graphics.Paint.FontMetricsInt) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.RelativeSizeSpan RelativeSizeSpan(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.LocaleSpan void updateDrawState(android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.AlignmentSpan.Standard void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.URLSpan void onClick(android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.RelativeSizeSpan void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.BulletSpan void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, android.text.Layout) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.AbsoluteSizeSpan void updateMeasureState(android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.DrawableMarginSpan void chooseHeight(java.lang.CharSequence, int, int, int, int, android.graphics.Paint.FontMetricsInt) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.SuperscriptSpan void updateDrawState(android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.ReplacementSpan void updateDrawState(android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.LeadingMarginSpan void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, android.text.Layout) 7'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.ScaleXSpan ScaleXSpan(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.ClickableSpan void updateDrawState(android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.SuggestionSpan SuggestionSpan(android.content.Context, java.util.Locale, java.lang.String[], int, java.lang.Class&lt;?&gt;) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.SuggestionSpan SuggestionSpan(java.util.Locale, java.lang.String[], int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.ReplacementSpan void updateMeasureState(android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.SuggestionSpan SuggestionSpan(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.RelativeSizeSpan void updateDrawState(android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.IconMarginSpan void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, android.text.Layout) 11'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.BulletSpan void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, android.text.Layout) 11'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.ScaleXSpan void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.QuoteSpan void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.AlignmentSpan.Standard Standard(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.CharacterStyle void updateDrawState(android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.LocaleSpan void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.QuoteSpan void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, android.text.Layout) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.CharacterStyle android.text.style.CharacterStyle wrap(android.text.style.CharacterStyle)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.SuggestionSpan void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.ForegroundColorSpan void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.IconMarginSpan void chooseHeight(java.lang.CharSequence, int, int, int, int, android.graphics.Paint.FontMetricsInt) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.StrikethroughSpan void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.SuggestionSpan SUGGESTION_SPAN_PICKED_BEFORE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.ScaleXSpan void updateDrawState(android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.ForegroundColorSpan ForegroundColorSpan(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.DrawableMarginSpan void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, android.text.Layout) 7'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.SubscriptSpan void updateDrawState(android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.SuggestionSpan SuggestionSpan(android.content.Context, java.lang.String[], int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.ImageSpan ImageSpan(android.content.Context, android.net.Uri, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.TypefaceSpan void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.LocaleSpan LocaleSpan(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.LeadingMarginSpan.Standard void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, android.text.Layout) 7'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.SuggestionSpan void updateDrawState(android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.EasyEditSpan void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.TextAppearanceSpan TextAppearanceSpan(android.content.Context, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.UnderlineSpan void updateDrawState(android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.QuoteSpan QuoteSpan(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.ClickableSpan void onClick(android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.DrawableMarginSpan void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, android.text.Layout) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.BulletSpan void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.SuperscriptSpan void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.BulletSpan void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, android.text.Layout) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.StyleSpan void updateDrawState(android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.TextAppearanceSpan void updateDrawState(android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.QuoteSpan void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, android.text.Layout) 7'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.TypefaceSpan void updateDrawState(android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.TextAppearanceSpan void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.LeadingMarginSpan.Standard void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.TextAppearanceSpan void updateMeasureState(android.text.TextPaint) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.LeadingMarginSpan.Standard void drawLeadingMargin(android.graphics.Canvas, android.graphics.Paint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, android.text.Layout) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.style.TextAppearanceSpan TextAppearanceSpan(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,74 @@
<root>
<item name='android.text.util.Rfc822Token java.lang.String quoteComment(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.util.Rfc822Tokenizer java.lang.CharSequence terminateToken(java.lang.CharSequence) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.util.Linkify void addLinks(android.widget.TextView, java.util.regex.Pattern, java.lang.String) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.util.Linkify boolean addLinks(android.text.Spannable, java.util.regex.Pattern, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.util.Linkify boolean addLinks(android.text.Spannable, java.util.regex.Pattern, java.lang.String) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.util.Linkify boolean addLinks(android.widget.TextView, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.util.Linkify void addLinks(android.widget.TextView, java.util.regex.Pattern, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.util.Rfc822Tokenizer int findTokenStart(java.lang.CharSequence, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.util.Rfc822Token java.lang.String quoteName(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.util.Rfc822Tokenizer void tokenize(java.lang.CharSequence, java.util.Collection&lt;android.text.util.Rfc822Token&gt;) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.util.Rfc822Token java.lang.String quoteComment(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.util.Rfc822Tokenizer android.text.util.Rfc822Token[] tokenize(java.lang.CharSequence)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.util.Rfc822Tokenizer android.text.util.Rfc822Token[] tokenize(java.lang.CharSequence) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.util.Rfc822Tokenizer void tokenize(java.lang.CharSequence, java.util.Collection&lt;android.text.util.Rfc822Token&gt;) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.util.Rfc822Token java.lang.String quoteName(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.util.Linkify boolean addLinks(android.text.Spannable, java.util.regex.Pattern, java.lang.String, android.text.util.Linkify.MatchFilter, android.text.util.Linkify.TransformFilter) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.util.Linkify boolean addLinks(android.text.Spannable, java.util.regex.Pattern, java.lang.String, android.text.util.Linkify.MatchFilter, android.text.util.Linkify.TransformFilter) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.util.Rfc822Token java.lang.String quoteNameIfNecessary(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.util.Linkify boolean addLinks(android.text.Spannable, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.util.Linkify void addLinks(android.widget.TextView, java.util.regex.Pattern, java.lang.String, android.text.util.Linkify.MatchFilter, android.text.util.Linkify.TransformFilter) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.util.Rfc822Tokenizer int findTokenEnd(java.lang.CharSequence, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.util.Linkify void addLinks(android.widget.TextView, java.util.regex.Pattern, java.lang.String, android.text.util.Linkify.MatchFilter, android.text.util.Linkify.TransformFilter) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.util.Rfc822Tokenizer java.lang.CharSequence terminateToken(java.lang.CharSequence)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.text.util.Rfc822Token java.lang.String quoteNameIfNecessary(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,230 @@
<root>
<item name='android.util.Base64 byte[] encode(byte[], int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.LruCache java.util.Map&lt;K,V&gt; snapshot()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.TypedValue float complexToDimensionNoisy(int, android.util.DisplayMetrics) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.Property android.util.Property&lt;T,V&gt; of(java.lang.Class&lt;T&gt;, java.lang.Class&lt;V&gt;, java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.AtomicFile java.io.FileInputStream openRead()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.Patterns TOP_LEVEL_DOMAIN_STR'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.Xml.Encoding ISO_8859_1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.StringBuilderPrinter void println(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.JsonWriter android.util.JsonWriter endArray()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.SparseArray E valueAt(int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.JsonWriter android.util.JsonWriter nullValue()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.JsonToken NUMBER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.JsonToken BEGIN_ARRAY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.StateSet boolean stateSetMatches(int[], int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.TypedValue float complexToDimension(int, android.util.DisplayMetrics) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.StateSet java.lang.String dump(int[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.JsonToken STRING'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.JsonToken END_ARRAY'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.PrintWriterPrinter void println(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.DisplayMetrics boolean equals(android.util.DisplayMetrics) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.Patterns java.lang.String concatGroups(java.util.regex.Matcher) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.JsonWriter android.util.JsonWriter value(double)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.PrintStreamPrinter void println(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.Base64 java.lang.String encodeToString(byte[], int, int, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.LongSparseArray E valueAt(int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.Log int wtf(java.lang.String, java.lang.Throwable) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.Xml android.util.Xml.Encoding findEncodingByName(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.StateSet boolean isWildCard(int[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.Xml.Encoding UTF_8'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.Base64 java.lang.String encodeToString(byte[], int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.JsonWriter void setIndent(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.JsonToken END_DOCUMENT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.TypedValue int complexToDimensionPixelOffset(int, android.util.DisplayMetrics) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.JsonWriter android.util.JsonWriter name(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.Patterns GOOD_IRI_CHAR'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.JsonToken BEGIN_OBJECT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.Base64 byte[] decode(byte[], int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.Patterns java.lang.String concatGroups(java.util.regex.Matcher)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.AtomicFile byte[] readFully()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.JsonWriter android.util.JsonWriter value(long)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.LogPrinter void println(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.JsonWriter android.util.JsonWriter beginObject()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.JsonToken NAME'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.Xml android.util.AttributeSet asAttributeSet(org.xmlpull.v1.XmlPullParser)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.Xml FEATURE_RELAXED'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.StateSet java.lang.String dump(int[])'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.JsonWriter android.util.JsonWriter value(java.lang.Number)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.Xml.Encoding UTF_16'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.JsonWriter android.util.JsonWriter value(boolean)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.JsonToken END_OBJECT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.AtomicFile AtomicFile(java.io.File) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.JsonWriter android.util.JsonWriter endObject()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.StateSet int[] trimStateSet(int[], int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.Patterns java.lang.String digitsAndPlusOnly(java.util.regex.Matcher) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.Xml void parse(java.io.InputStream, android.util.Xml.Encoding, org.xml.sax.ContentHandler) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.AtomicFile java.io.File getBaseFile()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.JsonToken NULL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.Patterns java.lang.String digitsAndPlusOnly(java.util.regex.Matcher)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.JsonWriter android.util.JsonWriter beginArray()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.JsonWriter android.util.JsonWriter value(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.TypedValue int complexToDimensionPixelSize(int, android.util.DisplayMetrics) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.Printer void println(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.MonthDisplayHelper int[] getDigitsForRow(int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.Patterns TOP_LEVEL_DOMAIN_STR_FOR_WEB_URL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.Xml org.xmlpull.v1.XmlPullParser newPullParser()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.Base64 byte[] decode(java.lang.String, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.DebugUtils boolean isObjectSelected(java.lang.Object) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.Pair android.util.Pair&lt;A,B&gt; create(A, B)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.StateSet int[] trimStateSet(int[], int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.TypedValue float getDimension(android.util.DisplayMetrics) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.TypedValue void setTo(android.util.TypedValue) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.Xml.Encoding US_ASCII'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.Base64 java.lang.String encodeToString(byte[], int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.JsonToken BOOLEAN'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.DisplayMetrics void setTo(android.util.DisplayMetrics) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.util.TypedValue float applyDimension(int, float, android.util.DisplayMetrics) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,71 @@
<root>
<item name='android.view.accessibility.AccessibilityNodeInfo void getBoundsInScreen(android.graphics.Rect) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.accessibility.AccessibilityNodeInfo ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.accessibility.AccessibilityNodeInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.accessibility.AccessibilityEvent void initFromParcel(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.accessibility.AccessibilityNodeInfo void getBoundsInParent(android.graphics.Rect) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.accessibility.AccessibilityNodeInfo void setBoundsInParent(android.graphics.Rect) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.accessibility.AccessibilityEvent android.view.accessibility.AccessibilityEvent obtain(int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.accessibility.AccessibilityManager void sendAccessibilityEvent(android.view.accessibility.AccessibilityEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.accessibility.AccessibilityNodeInfo ACTION_ARGUMENT_HTML_ELEMENT_STRING'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.accessibility.AccessibilityNodeInfo android.view.accessibility.AccessibilityNodeInfo obtain(android.view.View)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.accessibility.AccessibilityRecord java.util.List&lt;java.lang.CharSequence&gt; getText()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.accessibility.AccessibilityEventSource void sendAccessibilityEventUnchecked(android.view.accessibility.AccessibilityEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.accessibility.AccessibilityRecord android.view.accessibility.AccessibilityRecord obtain(android.view.accessibility.AccessibilityRecord) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.accessibility.AccessibilityEvent android.view.accessibility.AccessibilityEvent obtain(android.view.accessibility.AccessibilityEvent)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.accessibility.AccessibilityNodeInfo android.view.accessibility.AccessibilityNodeInfo obtain()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.accessibility.AccessibilityEvent void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.accessibility.AccessibilityNodeInfo android.view.accessibility.AccessibilityNodeInfo obtain(android.view.accessibility.AccessibilityNodeInfo) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.accessibility.AccessibilityNodeInfo void setBoundsInScreen(android.graphics.Rect) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.accessibility.AccessibilityEvent android.view.accessibility.AccessibilityEvent obtain(android.view.accessibility.AccessibilityEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.accessibility.AccessibilityNodeInfo android.view.accessibility.AccessibilityNodeInfo obtain(android.view.View, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.accessibility.AccessibilityEvent java.lang.String eventTypeToString(int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.accessibility.AccessibilityEvent android.view.accessibility.AccessibilityEvent obtain()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.accessibility.AccessibilityNodeInfo android.view.accessibility.AccessibilityNodeInfo obtain(android.view.accessibility.AccessibilityNodeInfo)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,116 @@
<root>
<item name='android.view.animation.AnimationSet java.util.List&lt;android.view.animation.Animation&gt; getAnimations()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.RotateAnimation RotateAnimation(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.AnimationUtils android.view.animation.Animation makeOutAnimation(android.content.Context, boolean) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.AnimationUtils android.view.animation.Interpolator loadInterpolator(android.content.Context, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.AnticipateOvershootInterpolator AnticipateOvershootInterpolator(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.CycleInterpolator CycleInterpolator(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.LayoutAnimationController void setInterpolator(android.content.Context, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.AnimationSet AnimationSet(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.AlphaAnimation AlphaAnimation(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.AnimationSet boolean getTransformation(long, android.view.animation.Transformation) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.Animation Animation(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.Transformation void set(android.view.animation.Transformation) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.AnticipateInterpolator AnticipateInterpolator(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.AnimationUtils android.view.animation.Animation makeInChildBottomAnimation(android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.GridLayoutAnimationController GridLayoutAnimationController(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.LayoutAnimationController long getDelayForView(android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.AnimationSet void addAnimation(android.view.animation.Animation) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.AccelerateInterpolator AccelerateInterpolator(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.LayoutAnimationController android.view.animation.Animation getAnimationForView(android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.Animation boolean getTransformation(long, android.view.animation.Transformation) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.LayoutAnimationController int getTransformedIndex(android.view.animation.LayoutAnimationController.AnimationParameters) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.ScaleAnimation void applyTransformation(float, android.view.animation.Transformation) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.AnimationUtils android.view.animation.Animation loadAnimation(android.content.Context, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.AnimationUtils android.view.animation.Animation makeInAnimation(android.content.Context, boolean) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.ScaleAnimation ScaleAnimation(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.DecelerateInterpolator DecelerateInterpolator(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.LayoutAnimationController LayoutAnimationController(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.Transformation void compose(android.view.animation.Transformation) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.Animation void applyTransformation(float, android.view.animation.Transformation) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.OvershootInterpolator OvershootInterpolator(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.AnimationUtils android.view.animation.LayoutAnimationController loadLayoutAnimation(android.content.Context, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.RotateAnimation void applyTransformation(float, android.view.animation.Transformation) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.LayoutAnimationController void setAnimation(android.content.Context, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.AlphaAnimation void applyTransformation(float, android.view.animation.Transformation) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.GridLayoutAnimationController long getDelayForView(android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.Transformation java.lang.String toShortString()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.TranslateAnimation TranslateAnimation(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.animation.TranslateAnimation void applyTransformation(float, android.view.animation.Transformation) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,974 @@
<root>
<item name='android.view.ViewGroup boolean drawChild(android.graphics.Canvas, android.view.View, long) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ContextMenu android.view.ContextMenu setHeaderTitle(java.lang.CharSequence)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View.AccessibilityDelegate boolean performAccessibilityAction(android.view.View, int, android.os.Bundle) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View void saveHierarchyState(android.util.SparseArray&lt;android.os.Parcelable&gt;) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void dispatchSaveInstanceState(android.util.SparseArray&lt;android.os.Parcelable&gt;) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.KeyCharacterMap boolean getKeyData(int, android.view.KeyCharacterMap.KeyData) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.Gravity void applyDisplay(int, android.graphics.Rect, android.graphics.Rect, int) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.WindowManager.LayoutParams void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewPropertyAnimator android.view.ViewPropertyAnimator rotationY(float)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.Gravity void apply(int, int, int, android.graphics.Rect, int, int, android.graphics.Rect, int) 6'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.KeyEvent android.view.KeyEvent changeTimeRepeat(android.view.KeyEvent, long, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewParent boolean getChildVisibleRect(android.view.View, android.graphics.Rect, android.graphics.Point) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.LayoutInflater android.view.LayoutInflater from(android.content.Context)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.LayoutInflater.Filter boolean onLoadClass(java.lang.Class) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View void dispatchSaveInstanceState(android.util.SparseArray&lt;android.os.Parcelable&gt;) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.AbsSavedState AbsSavedState(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.InputQueue.Callback void onInputQueueCreated(android.view.InputQueue) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ScaleGestureDetector ScaleGestureDetector(android.content.Context, android.view.ScaleGestureDetector.OnScaleGestureListener) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewParent android.view.ViewParent invalidateChildInParent(int[], android.graphics.Rect) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View boolean dispatchHoverEvent(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup boolean addViewInLayout(android.view.View, int, android.view.ViewGroup.LayoutParams, boolean) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.KeyEvent android.view.KeyEvent changeAction(android.view.KeyEvent, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewDebug.HierarchyTraceType INVALIDATE_CHILD'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.KeyEvent.Callback boolean onKeyMultiple(int, int, android.view.KeyEvent) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View void onInitializeAccessibilityEvent(android.view.accessibility.AccessibilityEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View boolean startDrag(android.content.ClipData, android.view.View.DragShadowBuilder, java.lang.Object, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.KeyEvent android.view.KeyEvent changeAction(android.view.KeyEvent, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View void onInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void addView(android.view.View, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup ViewGroup(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void dispatchVisibilityChanged(android.view.View, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.Display void getSize(android.graphics.Point) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View.DragShadowBuilder void onDrawShadow(android.graphics.Canvas) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.Display void getRealSize(android.graphics.Point) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View boolean requestRectangleOnScreen(android.graphics.Rect) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void invalidateChild(android.view.View, android.graphics.Rect) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewDebug.RecyclerTraceType MOVE_FROM_ACTIVE_TO_SCRAP_HEAP'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewParent boolean getChildVisibleRect(android.view.View, android.graphics.Rect, android.graphics.Point) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewDebug.HierarchyTraceType ON_MEASURE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View.AccessibilityDelegate void onPopulateAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.MotionEvent.PointerProperties PointerProperties(android.view.MotionEvent.PointerProperties) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.LayoutInflater android.view.View inflate(org.xmlpull.v1.XmlPullParser, android.view.ViewGroup) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup boolean onRequestSendAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewParent boolean requestChildRectangleOnScreen(android.view.View, android.graphics.Rect, boolean) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View void getFocusedRect(android.graphics.Rect) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup boolean dispatchKeyEventPreIme(android.view.KeyEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View int[] mergeDrawableStates(int[], int[]) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View.AccessibilityDelegate void onInitializeAccessibilityNodeInfo(android.view.View, android.view.accessibility.AccessibilityNodeInfo) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup boolean addViewInLayout(android.view.View, int, android.view.ViewGroup.LayoutParams) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.SubMenu android.view.SubMenu setHeaderTitle(int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup boolean fitSystemWindows(android.graphics.Rect) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.SurfaceView void draw(android.graphics.Canvas) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View boolean dispatchGenericMotionEvent(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View void initializeFadingEdge(android.content.res.TypedArray) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.AbsSavedState void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup boolean dispatchTrackballEvent(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void invalidateChild(android.view.View, android.graphics.Rect) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewPropertyAnimator android.view.ViewPropertyAnimator setStartDelay(long)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View boolean onKeyMultiple(int, int, android.view.KeyEvent) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewParent boolean requestChildRectangleOnScreen(android.view.View, android.graphics.Rect, boolean) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.SubMenu android.view.SubMenu setIcon(int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void addView(android.view.View, int, android.view.ViewGroup.LayoutParams) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewManager void updateViewLayout(android.view.View, android.view.ViewGroup.LayoutParams) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.SubMenu android.view.SubMenu setHeaderIcon(android.graphics.drawable.Drawable)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.LayoutInflater android.view.View onCreateView(java.lang.String, android.util.AttributeSet) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View View(android.content.Context, android.util.AttributeSet, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewPropertyAnimator android.view.ViewPropertyAnimator rotationXBy(float)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup boolean requestChildRectangleOnScreen(android.view.View, android.graphics.Rect, boolean) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup boolean onRequestSendAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.Window.Callback boolean dispatchKeyEvent(android.view.KeyEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View void restoreHierarchyState(android.util.SparseArray&lt;android.os.Parcelable&gt;) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewStub void dispatchDraw(android.graphics.Canvas) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.TextureView void onVisibilityChanged(android.view.View, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void removeDetachedView(android.view.View, boolean) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.SubMenu android.view.SubMenu setHeaderIcon(int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void dispatchFreezeSelfOnly(android.util.SparseArray&lt;android.os.Parcelable&gt;) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.Gravity void apply(int, int, int, android.graphics.Rect, android.graphics.Rect, int) 4'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.KeyEvent.Callback boolean onKeyUp(int, android.view.KeyEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.Display void getCurrentSizeRange(android.graphics.Point, android.graphics.Point) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View boolean onGenericMotionEvent(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup android.view.ViewGroup.LayoutParams generateLayoutParams(android.view.ViewGroup.LayoutParams) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.KeyEvent android.view.KeyEvent changeTimeRepeat(android.view.KeyEvent, long, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup boolean dispatchGenericPointerEvent(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.Gravity void applyDisplay(int, android.graphics.Rect, android.graphics.Rect) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup boolean requestChildRectangleOnScreen(android.view.View, android.graphics.Rect, boolean) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View boolean dispatchGenericPointerEvent(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.Display void getRectSize(android.graphics.Rect) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View boolean onDragEvent(android.view.DragEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewParent void bringChildToFront(android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup boolean getChildStaticTransformation(android.view.View, android.view.animation.Transformation) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.InputDevice java.util.List&lt;android.view.InputDevice.MotionRange&gt; getMotionRanges()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.KeyEvent boolean dispatch(android.view.KeyEvent.Callback, android.view.KeyEvent.DispatcherState, java.lang.Object) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.GestureDetector.SimpleOnGestureListener boolean onScroll(android.view.MotionEvent, android.view.MotionEvent, float, float) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup.MarginLayoutParams MarginLayoutParams(android.view.ViewGroup.MarginLayoutParams) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewPropertyAnimator android.view.ViewPropertyAnimator translationYBy(float)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View boolean dispatchGenericFocusedEvent(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View java.util.ArrayList&lt;android.view.View&gt; getTouchables()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View void initializeScrollbars(android.content.res.TypedArray) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewDebug.HierarchyTraceType INVALIDATE_CHILD_IN_PARENT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.KeyEvent boolean dispatch(android.view.KeyEvent.Callback) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View boolean onFilterTouchEventForSecurity(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.TextureView void unlockCanvasAndPost(android.graphics.Canvas) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View.AccessibilityDelegate boolean dispatchPopulateAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View boolean dispatchPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void dispatchThawSelfOnly(android.util.SparseArray&lt;android.os.Parcelable&gt;) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void cleanupLayoutState(android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.GestureDetector.OnGestureListener boolean onScroll(android.view.MotionEvent, android.view.MotionEvent, float, float) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.Display void getCurrentSizeRange(android.graphics.Point, android.graphics.Point) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.SurfaceView void dispatchDraw(android.graphics.Canvas) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.KeyEvent void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.Window android.view.LayoutInflater getLayoutInflater()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.Gravity void apply(int, int, int, android.graphics.Rect, int, int, android.graphics.Rect) 6'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewPropertyAnimator android.view.ViewPropertyAnimator withStartAction(java.lang.Runnable)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewDebug.RecyclerTraceType MOVE_TO_SCRAP_HEAP'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.WindowManager.LayoutParams java.lang.String debug(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.Window.Callback boolean dispatchPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.GestureDetector.SimpleOnGestureListener boolean onScroll(android.view.MotionEvent, android.view.MotionEvent, float, float) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.GestureDetector boolean onTouchEvent(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View boolean onKeyShortcut(int, android.view.KeyEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewDebug void dumpCapturedView(java.lang.String, java.lang.Object) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewStub ViewStub(android.content.Context, android.util.AttributeSet, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View void dispatchRestoreInstanceState(android.util.SparseArray&lt;android.os.Parcelable&gt;) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.KeyEvent KeyEvent(android.view.KeyEvent, long, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.GestureDetector.OnGestureListener boolean onScroll(android.view.MotionEvent, android.view.MotionEvent, float, float) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View boolean getGlobalVisibleRect(android.graphics.Rect, android.graphics.Point) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewDebug.HierarchyTraceType ON_LAYOUT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.Window.Callback boolean onMenuItemSelected(int, android.view.MenuItem) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View void onPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.MotionEvent.PointerProperties void copyFrom(android.view.MotionEvent.PointerProperties) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.KeyEvent android.view.KeyEvent changeTimeRepeat(android.view.KeyEvent, long, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View boolean getLocalVisibleRect(android.graphics.Rect) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.FocusFinder android.view.View findNearestTouchable(android.view.ViewGroup, int, int, int, int[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View boolean dispatchTouchEvent(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.TextureView void onDraw(android.graphics.Canvas) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.TouchDelegate TouchDelegate(android.graphics.Rect, android.view.View) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View.OnClickListener void onClick(android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.KeyEvent KeyEvent(android.view.KeyEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.KeyCharacterMap.KeyData meta'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewDebug.HierarchyTraceType DRAW'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View void onVisibilityChanged(android.view.View, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View boolean dispatchKeyShortcutEvent(android.view.KeyEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View int[] mergeDrawableStates(int[], int[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewPropertyAnimator android.view.ViewPropertyAnimator rotationYBy(float)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.SurfaceHolder.Callback void surfaceCreated(android.view.SurfaceHolder) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.MotionEvent.PointerCoords PointerCoords(android.view.MotionEvent.PointerCoords) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.LayoutInflater.Factory2 android.view.View onCreateView(android.view.View, java.lang.String, android.content.Context, android.util.AttributeSet) 3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View.AccessibilityDelegate void onInitializeAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewPropertyAnimator android.view.ViewPropertyAnimator translationX(float)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.SurfaceView SurfaceView(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.FocusFinder android.view.View findNextFocus(android.view.ViewGroup, android.view.View, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View android.view.inputmethod.InputConnection onCreateInputConnection(android.view.inputmethod.EditorInfo) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewPropertyAnimator android.view.ViewPropertyAnimator scaleXBy(float)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void addView(android.view.View, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewPropertyAnimator android.view.ViewPropertyAnimator scaleX(float)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View void draw(android.graphics.Canvas) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ContextMenu android.view.ContextMenu setHeaderIcon(android.graphics.drawable.Drawable)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewStub void draw(android.graphics.Canvas) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void removeView(android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void addView(android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View.AccessibilityDelegate void onInitializeAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup boolean dispatchTouchEvent(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.Gravity void apply(int, int, int, android.graphics.Rect, int, int, android.graphics.Rect, int) 3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup boolean drawChild(android.graphics.Canvas, android.view.View, long) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View.AccessibilityDelegate boolean onRequestSendAccessibilityEvent(android.view.ViewGroup, android.view.View, android.view.accessibility.AccessibilityEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup.LayoutParams void setBaseAttributes(android.content.res.TypedArray, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.TouchDelegate boolean onTouchEvent(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View boolean onKeyDown(int, android.view.KeyEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.LayoutInflater.Factory2 android.view.View onCreateView(android.view.View, java.lang.String, android.content.Context, android.util.AttributeSet) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View.AccessibilityDelegate void sendAccessibilityEventUnchecked(android.view.View, android.view.accessibility.AccessibilityEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.Window.Callback boolean dispatchTrackballEvent(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup.LayoutParams LayoutParams(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewPropertyAnimator android.view.ViewPropertyAnimator setListener(android.animation.Animator.AnimatorListener)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View boolean onTouchEvent(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.Window.Callback boolean dispatchKeyShortcutEvent(android.view.KeyEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ScaleGestureDetector boolean onTouchEvent(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View void startAnimation(android.view.animation.Animation) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.DragEvent void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.KeyEvent android.view.KeyEvent changeTimeRepeat(android.view.KeyEvent, long, int, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View.AccessibilityDelegate void sendAccessibilityEventUnchecked(android.view.View, android.view.accessibility.AccessibilityEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View void invalidateDrawable(android.graphics.drawable.Drawable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void startViewTransition(android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewManager void removeView(android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewPropertyAnimator android.view.ViewPropertyAnimator x(float)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup.MarginLayoutParams MarginLayoutParams(android.view.ViewGroup.LayoutParams) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.SurfaceHolder.Callback2 void surfaceRedrawNeeded(android.view.SurfaceHolder) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View void getWindowVisibleDisplayFrame(android.graphics.Rect) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup boolean getChildVisibleRect(android.view.View, android.graphics.Rect, android.graphics.Point) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void bringChildToFront(android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View boolean dispatchKeyEventPreIme(android.view.KeyEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View void addTouchables(java.util.ArrayList&lt;android.view.View&gt;) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewParent void invalidateChild(android.view.View, android.graphics.Rect) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View void onDraw(android.graphics.Canvas) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ActionProvider void onPrepareSubMenu(android.view.SubMenu) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View boolean onKeyPreIme(int, android.view.KeyEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewParent void requestChildFocus(android.view.View, android.view.View) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.KeyCharacterMap android.view.KeyEvent[] getEvents(char[])'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View boolean requestRectangleOnScreen(android.graphics.Rect, boolean) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewPropertyAnimator android.view.ViewPropertyAnimator alphaBy(float)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void measureChild(android.view.View, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View void getDrawingRect(android.graphics.Rect) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.Window android.view.WindowManager.LayoutParams getAttributes()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.KeyEvent.DispatcherState void handleUpEvent(android.view.KeyEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewDebug.RecyclerTraceType NEW_VIEW'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.TextureView TextureView(android.content.Context, android.util.AttributeSet, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View void dispatchDraw(android.graphics.Canvas) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View void sendAccessibilityEventUnchecked(android.view.accessibility.AccessibilityEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.SubMenu android.view.SubMenu setHeaderView(android.view.View)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.Surface android.graphics.Canvas lockCanvas(android.graphics.Rect)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View void dispatchVisibilityChanged(android.view.View, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void measureChildWithMargins(android.view.View, int, int, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup boolean getChildVisibleRect(android.view.View, android.graphics.Rect, android.graphics.Point) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ContextThemeWrapper java.lang.Object getSystemService(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View View(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View void addChildrenForAccessibility(java.util.ArrayList&lt;android.view.View&gt;) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewDebug.RecyclerTraceType BIND_VIEW'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewParent void invalidateChild(android.view.View, android.graphics.Rect) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.SubMenu android.view.SubMenu setHeaderTitle(java.lang.CharSequence)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View boolean onHoverEvent(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ContextMenu android.view.ContextMenu setHeaderTitle(int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void attachViewToParent(android.view.View, int, android.view.ViewGroup.LayoutParams) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.KeyEvent.Callback boolean onKeyDown(int, android.view.KeyEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View boolean fitSystemWindows(android.graphics.Rect) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void offsetDescendantRectToMyCoords(android.view.View, android.graphics.Rect) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View boolean dispatchKeyEvent(android.view.KeyEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewPropertyAnimator android.view.ViewPropertyAnimator translationXBy(float)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewPropertyAnimator android.view.ViewPropertyAnimator withLayer()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.LayoutInflater android.view.View onCreateView(android.view.View, java.lang.String, android.util.AttributeSet) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.Gravity void apply(int, int, int, android.graphics.Rect, android.graphics.Rect) 4'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.Window.Callback boolean dispatchTouchEvent(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.LayoutInflater android.view.View createView(java.lang.String, java.lang.String, android.util.AttributeSet) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.FocusFinder android.view.View findNextFocusFromRect(android.view.ViewGroup, android.graphics.Rect, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View.MeasureSpec java.lang.String toString(int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewDebug.RecyclerTraceType RECYCLE_FROM_SCRAP_HEAP'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ContextMenu android.view.ContextMenu setHeaderView(android.view.View)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void addView(android.view.View, android.view.ViewGroup.LayoutParams) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View.DragShadowBuilder void onProvideShadowMetrics(android.graphics.Point, android.graphics.Point) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewPropertyAnimator android.view.ViewPropertyAnimator rotation(float)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void requestChildFocus(android.view.View, android.view.View) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.OrientationEventListener OrientationEventListener(android.content.Context, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.MotionEvent.PointerCoords void copyFrom(android.view.MotionEvent.PointerCoords) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ActionProvider android.view.View onCreateActionView()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewConfiguration android.view.ViewConfiguration get(android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.Gravity void apply(int, int, int, android.graphics.Rect, int, int, android.graphics.Rect) 3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.WindowManager.LayoutParams LayoutParams(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View boolean dispatchDragEvent(android.view.DragEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void offsetDescendantRectToMyCoords(android.view.View, android.graphics.Rect) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.LayoutInflater LayoutInflater(android.view.LayoutInflater, android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.Gravity void apply(int, int, int, android.graphics.Rect, android.graphics.Rect) 3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewDebug.HierarchyTraceType REQUEST_LAYOUT'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewStub ViewStub(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewPropertyAnimator android.view.ViewPropertyAnimator yBy(float)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View boolean onKeyUp(int, android.view.KeyEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ContextMenu android.view.ContextMenu setHeaderIcon(int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View.AccessibilityDelegate void sendAccessibilityEvent(android.view.View, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.KeyEvent.DispatcherState void performedLongPress(android.view.KeyEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View.DragShadowBuilder void onProvideShadowMetrics(android.graphics.Point, android.graphics.Point) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View void findViewsWithText(java.util.ArrayList&lt;android.view.View&gt;, java.lang.CharSequence, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewDebug.HierarchyTraceType INVALIDATE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void addTouchables(java.util.ArrayList&lt;android.view.View&gt;) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.GestureDetector.SimpleOnGestureListener boolean onDown(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.Gravity void applyDisplay(int, android.graphics.Rect, android.graphics.Rect) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.KeyEvent.DispatcherState void startTracking(android.view.KeyEvent, java.lang.Object) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void addChildrenForAccessibility(java.util.ArrayList&lt;android.view.View&gt;) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewPropertyAnimator android.view.ViewPropertyAnimator setInterpolator(android.animation.TimeInterpolator)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewPropertyAnimator android.view.ViewPropertyAnimator rotationBy(float)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View void createContextMenu(android.view.ContextMenu) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.InputDevice void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void updateViewLayout(android.view.View, android.view.ViewGroup.LayoutParams) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void offsetRectIntoDescendantCoords(android.view.View, android.graphics.Rect) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup boolean dispatchKeyEvent(android.view.KeyEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.KeyEvent.DispatcherState boolean isTracking(android.view.KeyEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewPropertyAnimator android.view.ViewPropertyAnimator alpha(float)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup boolean dispatchGenericFocusedEvent(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View void onConfigurationChanged(android.content.res.Configuration) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewPropertyAnimator android.view.ViewPropertyAnimator translationY(float)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.LayoutInflater android.view.View inflate(org.xmlpull.v1.XmlPullParser, android.view.ViewGroup, boolean) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewDebug.HierarchyTraceType BUILD_CACHE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View.AccessibilityDelegate void onInitializeAccessibilityNodeInfo(android.view.View, android.view.accessibility.AccessibilityNodeInfo) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup boolean dispatchKeyShortcutEvent(android.view.KeyEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void dispatchDraw(android.graphics.Canvas) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.SurfaceView SurfaceView(android.content.Context, android.util.AttributeSet, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void endViewTransition(android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.MotionEvent void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup boolean dispatchDragEvent(android.view.DragEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup.LayoutParams LayoutParams(android.view.ViewGroup.LayoutParams) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.TextureView TextureView(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View void getHitRect(android.graphics.Rect) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup ViewGroup(android.content.Context, android.util.AttributeSet, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.InputQueue.Callback void onInputQueueDestroyed(android.view.InputQueue) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void removeViewInLayout(android.view.View) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.TextureView void draw(android.graphics.Canvas) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.SubMenu android.view.SubMenu setIcon(android.graphics.drawable.Drawable)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.LayoutInflater android.view.LayoutInflater from(android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void dispatchRestoreInstanceState(android.util.SparseArray&lt;android.os.Parcelable&gt;) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View.OnTouchListener boolean onTouch(android.view.View, android.view.MotionEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.WindowManager.LayoutParams int copyFrom(android.view.WindowManager.LayoutParams) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void findViewsWithText(java.util.ArrayList&lt;android.view.View&gt;, java.lang.CharSequence, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.OrientationEventListener OrientationEventListener(android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewPropertyAnimator android.view.ViewPropertyAnimator setDuration(long)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void attachLayoutAnimationParameters(android.view.View, android.view.ViewGroup.LayoutParams, int, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.GestureDetector.OnGestureListener boolean onDown(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewPropertyAnimator android.view.ViewPropertyAnimator scaleYBy(float)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewDebug.RecyclerTraceType RECYCLE_FROM_ACTIVE_HEAP'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.Gravity void applyDisplay(int, android.graphics.Rect, android.graphics.Rect, int) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View VIEW_LOG_TAG'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewPropertyAnimator android.view.ViewPropertyAnimator rotationX(float)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View boolean dispatchTrackballEvent(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.Gravity void apply(int, int, int, android.graphics.Rect, android.graphics.Rect, int) 3'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewManager void addView(android.view.View, android.view.ViewGroup.LayoutParams) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View boolean getGlobalVisibleRect(android.graphics.Rect) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View int[] mergeDrawableStates(int[], int[])'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ContextThemeWrapper void onApplyThemeResource(android.content.res.Resources.Theme, int, boolean) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewPropertyAnimator android.view.ViewPropertyAnimator withEndAction(java.lang.Runnable)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewPropertyAnimator android.view.ViewPropertyAnimator scaleY(float)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewPropertyAnimator android.view.ViewPropertyAnimator xBy(float)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup boolean onInterceptTouchEvent(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup void offsetRectIntoDescendantCoords(android.view.View, android.graphics.Rect) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View void invalidate(android.graphics.Rect) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup boolean dispatchHoverEvent(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewPropertyAnimator android.view.ViewPropertyAnimator y(float)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.SurfaceHolder.Callback void surfaceChanged(android.view.SurfaceHolder, int, int, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup android.view.ViewParent invalidateChildInParent(int[], android.graphics.Rect) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.ViewGroup.MarginLayoutParams MarginLayoutParams(android.content.Context, android.util.AttributeSet) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.View java.util.ArrayList&lt;android.view.View&gt; getFocusables(int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,98 @@
<root>
<item name='android.view.inputmethod.ExtractedTextRequest void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.inputmethod.CompletionInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.inputmethod.InputMethodSubtype void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.inputmethod.ExtractedText void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.inputmethod.InputMethodInfo InputMethodInfo(android.content.Context, android.content.pm.ResolveInfo) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.inputmethod.InputMethodSession void dispatchKeyEvent(int, android.view.KeyEvent, android.view.inputmethod.InputMethodSession.EventCallback) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.inputmethod.InputMethod SERVICE_META_DATA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.inputmethod.InputMethod void revokeSession(android.view.inputmethod.InputMethodSession) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.inputmethod.BaseInputConnection void removeComposingSpans(android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.inputmethod.BaseInputConnection BaseInputConnection(android.view.View, boolean) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.inputmethod.InputMethod void changeInputMethodSubtype(android.view.inputmethod.InputMethodSubtype) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.inputmethod.InputMethodInfo android.content.ComponentName getComponent()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.inputmethod.CorrectionInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.inputmethod.InputMethod void setSessionEnabled(android.view.inputmethod.InputMethodSession, boolean) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.inputmethod.InputMethod void bindInput(android.view.inputmethod.InputBinding) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.inputmethod.EditorInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.inputmethod.EditorInfo void dump(android.util.Printer, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.inputmethod.InputMethod void createSession(android.view.inputmethod.InputMethod.SessionCallback) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.inputmethod.InputMethodInfo void dump(android.util.Printer, java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.inputmethod.BaseInputConnection int getComposingSpanEnd(android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.inputmethod.InputMethodManager java.util.Map&lt;android.view.inputmethod.InputMethodInfo,java.util.List&lt;android.view.inputmethod.InputMethodSubtype&gt;&gt; getShortcutInputMethodsAndSubtypes()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.inputmethod.InputMethod SERVICE_INTERFACE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.inputmethod.InputMethodInfo InputMethodInfo(android.content.Context, android.content.pm.ResolveInfo) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.inputmethod.InputMethodSubtype java.lang.String getMode()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.inputmethod.InputBinding void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.inputmethod.InputMethodSubtype java.lang.CharSequence getDisplayName(android.content.Context, java.lang.String, android.content.pm.ApplicationInfo) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.inputmethod.BaseInputConnection int getComposingSpanStart(android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.inputmethod.InputBinding InputBinding(android.view.inputmethod.InputConnection, android.view.inputmethod.InputBinding) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.inputmethod.BaseInputConnection void setComposingSpans(android.text.Spannable) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.inputmethod.InputMethodInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.inputmethod.InputMethodSubtype java.lang.String getLocale()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.inputmethod.InputMethodSubtype java.lang.String getExtraValue()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,41 @@
<root>
<item name='android.view.textservice.SpellCheckerSession SERVICE_META_DATA'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.textservice.SuggestionsInfo SuggestionsInfo(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.textservice.SpellCheckerSubtype java.lang.String getLocale()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.textservice.SpellCheckerSubtype void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.textservice.SpellCheckerInfo android.content.ComponentName getComponent()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.textservice.SpellCheckerSubtype java.lang.String getExtraValue()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.textservice.SentenceSuggestionsInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.textservice.SentenceSuggestionsInfo SentenceSuggestionsInfo(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.textservice.TextInfo TextInfo(android.os.Parcel) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.textservice.SuggestionsInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.textservice.TextInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.textservice.SpellCheckerSubtype java.lang.CharSequence getDisplayName(android.content.Context, java.lang.String, android.content.pm.ApplicationInfo) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.view.textservice.SpellCheckerInfo void writeToParcel(android.os.Parcel, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
@@ -0,0 +1,194 @@
<root>
<item name='android.webkit.WebView boolean onKeyMultiple(int, int, android.view.KeyEvent) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebSettings.ZoomDensity CLOSE'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebView void onConfigurationChanged(android.content.res.Configuration) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.URLUtil java.lang.String guessUrl(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.URLUtil java.lang.String stripAnchor(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebView boolean onHoverEvent(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebView void onVisibilityChanged(android.view.View, int) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.ConsoleMessage.MessageLevel LOG'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebSettings void setTextSize(android.webkit.WebSettings.TextSize) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebSettings.LayoutAlgorithm SINGLE_COLUMN'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebViewClient void onReceivedSslError(android.webkit.WebView, android.webkit.SslErrorHandler, android.net.http.SslError) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebSettings.TextSize LARGEST'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebView boolean requestChildRectangleOnScreen(android.view.View, android.graphics.Rect, boolean) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.MimeTypeMap java.lang.String getFileExtensionFromUrl(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebSettings.TextSize LARGER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebViewClient void onUnhandledKeyEvent(android.webkit.WebView, android.view.KeyEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.ConsoleMessage.MessageLevel ERROR'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebView SCHEME_GEO'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebSettings.LayoutAlgorithm NARROW_COLUMNS'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebChromeClient void onExceededDatabaseQuota(java.lang.String, java.lang.String, long, long, long, android.webkit.WebStorage.QuotaUpdater) 5'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebSettings.TextSize NORMAL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.ConsoleMessage.MessageLevel TIP'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.URLUtil java.lang.String guessUrl(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.URLUtil java.lang.String guessFileName(java.lang.String, java.lang.String, java.lang.String)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.URLUtil byte[] decode(byte[])'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebChromeClient void onReachedMaxAppCacheSize(long, long, android.webkit.WebStorage.QuotaUpdater) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebSettings.RenderPriority NORMAL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebSettings.LayoutAlgorithm NORMAL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebViewFragment android.view.View onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebViewClient void onFormResubmission(android.webkit.WebView, android.os.Message, android.os.Message) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.ConsoleMessage.MessageLevel WARNING'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebViewClient void onReceivedHttpAuthRequest(android.webkit.WebView, android.webkit.HttpAuthHandler, java.lang.String, java.lang.String) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebView boolean onGenericMotionEvent(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.MimeTypeMap android.webkit.MimeTypeMap getSingleton()'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.PluginStub android.view.View getEmbeddedView(int, android.content.Context)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebSettings.ZoomDensity FAR'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebViewClient void onUnhandledKeyEvent(android.webkit.WebView, android.view.KeyEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebView void onInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebViewClient void onTooManyRedirects(android.webkit.WebView, android.os.Message, android.os.Message) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.DateSorter DateSorter(android.content.Context) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebSettings.TextSize SMALLER'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebSettings.RenderPriority LOW'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebView void onInitializeAccessibilityEvent(android.view.accessibility.AccessibilityEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebView boolean onKeyDown(int, android.view.KeyEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebSettings.PluginState OFF'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebView void onDraw(android.graphics.Canvas) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.PluginStub android.view.View getFullScreenView(int, android.content.Context)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebView SCHEME_TEL'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebSettings.RenderPriority HIGH'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.URLUtil java.lang.String composeSearchUrl(java.lang.String, java.lang.String, java.lang.String) 2'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebView boolean dispatchKeyEvent(android.view.KeyEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebSettings.PluginState ON_DEMAND'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebSettings.TextSize SMALLEST'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebView boolean onKeyUp(int, android.view.KeyEvent) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebChromeClient boolean onConsoleMessage(android.webkit.ConsoleMessage) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.URLUtil byte[] decode(byte[]) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.ConsoleMessage.MessageLevel DEBUG'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebView SCHEME_MAILTO'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebView boolean requestChildRectangleOnScreen(android.view.View, android.graphics.Rect, boolean) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebView boolean onTouchEvent(android.view.MotionEvent) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebSettings.PluginState ON'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebSettings.ZoomDensity MEDIUM'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.URLUtil java.lang.String composeSearchUrl(java.lang.String, java.lang.String, java.lang.String) 1'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='android.webkit.WebView android.view.inputmethod.InputConnection onCreateInputConnection(android.view.inputmethod.EditorInfo) 0'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
</root>
File diff suppressed because it is too large Load Diff
+32 -16
View File
@@ -439,22 +439,38 @@
</target>
<target name="jdkAnnotations">
<cleandir dir="${output}/classes/stdlib"/>
<jar destfile="${kotlin-home}/lib/kotlin-jdk-annotations.jar">
<fileset dir="${basedir}/jdk-annotations"/>
<zipfileset file="${kotlin-home}/build.txt" prefix="META-INF"/>
<manifest>
<attribute name="Built-By" value="JetBrains"/>
<attribute name="Implementation-Vendor" value="JetBrains"/>
<attribute name="Implementation-Title" value="Kotlin Compiler JDK Annotations"/>
<attribute name="Implementation-Version" value="${build.number}"/>
</manifest>
</jar>
<pack_annotations jarfile="kotlin-jdk-annotations.jar"
annotationsdir="${basedir}/jdk-annotations"
title="Kotlin Compiler JDK Annotations"/>
</target>
<target name="androidSdkAnnotations">
<pack_annotations jarfile="kotlin-android-sdk-annotations.jar"
annotationsdir="${basedir}/android-sdk-annotations"
title="Kotlin Compiler Android SDK Annotations"/>
</target>
<macrodef name="pack_annotations">
<attribute name="annotationsdir"/>
<attribute name="jarfile"/>
<attribute name="title"/>
<sequential>
<jar destfile="${kotlin-home}/lib/@{jarfile}">
<fileset dir="@{annotationsdir}"/>
<zipfileset file="${kotlin-home}/build.txt" prefix="META-INF"/>
<manifest>
<attribute name="Built-By" value="JetBrains"/>
<attribute name="Implementation-Vendor" value="JetBrains"/>
<attribute name="Implementation-Title" value="@{title}"/>
<attribute name="Implementation-Version" value="${build.number}"/>
</manifest>
</jar>
</sequential>
</macrodef>
<target name="annotationsExt">
<cleandir dir="${output}/classes/annotations-ext"/>
@@ -541,11 +557,11 @@
<!-- builds redistributables from sources -->
<target name="dist"
depends="clean,init,prepareDist,compileGenerators,invokeGenerators,preloader,compiler,compilerSources,antTools,jdkAnnotations,annotationsExt,runtime,jslib,j2kConverter"/>
depends="clean,init,prepareDist,compileGenerators,invokeGenerators,preloader,compiler,compilerSources,antTools,jdkAnnotations,androidSdkAnnotations,annotationsExt,runtime,jslib,j2kConverter"/>
<!-- builds everything, but classes are reused from project out dir, doesn't run proguard and javadoc -->
<target name="dist_quick"
depends="clean,init,prepareDist,preloader,compiler_quick,antTools,jdkAnnotations,annotationsExt,runtime,jslib,j2kConverter"/>
depends="clean,init,prepareDist,preloader,compiler_quick,antTools,jdkAnnotations,androidSdkAnnotations,annotationsExt,runtime,jslib,j2kConverter"/>
<!-- builds compiler jar from project out dir -->
<target name="dist_quick_compiler_only"
@@ -49,6 +49,7 @@ public class SpecialFiles {
filesCompiledWithoutStdLib.add("kt773.kt"); // OVERLOAD_RESOLUTION_AMBIGUITY
filesCompiledWithoutStdLib.add("kt796_797.kt"); // OVERLOAD_RESOLUTION_AMBIGUITY
filesCompiledWithoutStdLib.add("kt950.kt"); // OVERLOAD_RESOLUTION_AMBIGUITY
filesCompiledWithoutStdLib.add("kt3190.kt"); // OVERLOAD_RESOLUTION_AMBIGUITY
filesCompiledWithoutStdLib.add("kt2395.kt"); // With MOCK_JDK
}
@@ -72,6 +73,10 @@ public class SpecialFiles {
excludedFiles.add("kt344.kt"); // Bug
excludedFiles.add("comparisonWithNullCallsFun.kt"); // java.lang.NoClassDefFoundError: jet.Nothing
excludedFiles.add("kt3574.kt"); // java.lang.NoClassDefFoundError: jet.Nothing
excludedFiles.add("genericBackingFieldSignature.kt"); // Wrong signature after package renaming
excludedFiles.add("genericMethodSignature.kt"); // Wrong signature after package renaming
}
private SpecialFiles() {
@@ -34,8 +34,12 @@ public class AccessorForPropertyDescriptor extends PropertyDescriptorImpl {
pd.isVar(), Name.identifier(pd.getName() + "$b$" + index),
Kind.DECLARATION);
JetType receiverType = DescriptorUtils.getReceiverParameterType(pd.getReceiverParameter());
setType(pd.getType(), Collections.<TypeParameterDescriptorImpl>emptyList(), pd.getExpectedThisObject(), receiverType);
boolean isStaticProperty = AsmUtil.isPropertyWithBackingFieldInOuterClass(pd)
&& !AsmUtil.isClassObjectWithBackingFieldsInOuter(containingDeclaration);
JetType receiverType = !isStaticProperty ? DescriptorUtils.getReceiverParameterType(pd.getReceiverParameter()) : null;
setType(pd.getType(), Collections.<TypeParameterDescriptorImpl>emptyList(), isStaticProperty ? null : pd.getExpectedThisObject(),
receiverType);
initialize(new Getter(this), new Setter(this));
}
@@ -17,25 +17,26 @@
package org.jetbrains.jet.codegen;
import com.intellij.psi.PsiElement;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.asm4.AnnotationVisitor;
import org.jetbrains.asm4.ClassVisitor;
import org.jetbrains.asm4.FieldVisitor;
import org.jetbrains.asm4.MethodVisitor;
import org.jetbrains.jet.codegen.intrinsics.IntrinsicMethods;
import org.jetbrains.jet.codegen.state.JetTypeMapper;
import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.descriptors.annotations.Annotated;
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationArgumentVisitor;
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lang.psi.JetAnnotationEntry;
import org.jetbrains.jet.lang.psi.JetClass;
import org.jetbrains.jet.lang.psi.JetModifierList;
import org.jetbrains.jet.lang.psi.JetModifierListOwner;
import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.resolve.calls.model.DefaultValueArgument;
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedValueArgument;
import org.jetbrains.jet.lang.resolve.calls.model.VarargValueArgument;
import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant;
import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.lang.types.JetType;
import org.jetbrains.jet.lang.resolve.constants.*;
import org.jetbrains.jet.lang.resolve.constants.StringValue;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
import java.lang.annotation.RetentionPolicy;
import java.util.List;
@@ -84,124 +85,136 @@ public abstract class AnnotationCodegen {
AnnotationDescriptor annotationDescriptor = bindingContext.get(BindingContext.ANNOTATION, annotationEntry);
if (annotationDescriptor == null) continue; // Skipping annotations if they are not resolved. Needed for JetLightClass generation
JetType type = annotationDescriptor.getType();
genAnnotation(resolvedCall, type);
genAnnotation(annotationDescriptor);
}
}
private void genAnnotation(
ResolvedCall<? extends CallableDescriptor> resolvedCall,
JetType type
) {
ClassifierDescriptor classifierDescriptor = type.getConstructor().getDeclarationDescriptor();
private void genAnnotation(AnnotationDescriptor annotationDescriptor) {
ClassifierDescriptor classifierDescriptor = annotationDescriptor.getType().getConstructor().getDeclarationDescriptor();
RetentionPolicy rp = getRetentionPolicy(classifierDescriptor, typeMapper);
if (rp == RetentionPolicy.SOURCE) {
return;
}
String internalName = typeMapper.mapType(type).getDescriptor();
String internalName = typeMapper.mapType(annotationDescriptor.getType()).getDescriptor();
AnnotationVisitor annotationVisitor = visitAnnotation(internalName, rp == RetentionPolicy.RUNTIME);
getAnnotation(resolvedCall, annotationVisitor);
genAnnotationArguments(annotationDescriptor, annotationVisitor);
annotationVisitor.visitEnd();
}
private void getAnnotation(ResolvedCall<? extends CallableDescriptor> resolvedCall, AnnotationVisitor annotationVisitor) {
for (Map.Entry<ValueParameterDescriptor, ResolvedValueArgument> entry : resolvedCall.getValueArguments().entrySet()) {
ResolvedValueArgument valueArgument = entry.getValue();
if (valueArgument instanceof DefaultValueArgument) {
continue;
}
Name keyName = entry.getKey().getName();
genAnnotationValueArgument(annotationVisitor, valueArgument, keyName.asString());
private void genAnnotationArguments(AnnotationDescriptor annotationDescriptor, AnnotationVisitor annotationVisitor) {
for (Map.Entry<ValueParameterDescriptor, CompileTimeConstant<?>> entry : annotationDescriptor.getAllValueArguments().entrySet()) {
ValueParameterDescriptor descriptor = entry.getKey();
String name = descriptor.getName().asString();
genAnnotationArgument(name, entry.getValue(), annotationVisitor);
}
}
private void genAnnotationValueArgument(AnnotationVisitor annotationVisitor, ResolvedValueArgument valueArgument, String keyName) {
List<ValueArgument> valueArguments = valueArgument.getArguments();
if (valueArgument instanceof VarargValueArgument) {
AnnotationVisitor visitor = annotationVisitor.visitArray(keyName);
for (ValueArgument argument : valueArguments) {
genAnnotationExpressionValue(visitor, null, argument.getArgumentExpression());
private void genAnnotationArgument(
@Nullable final String name,
@NotNull CompileTimeConstant<?> value,
@NotNull final AnnotationVisitor annotationVisitor
) {
AnnotationArgumentVisitor argumentVisitor = new AnnotationArgumentVisitor<Void, Void>() {
@Override
public Void visitLongValue(@NotNull LongValue value, Void data) {
return visitSimpleValue(value);
}
visitor.visitEnd();
}
else {
assert valueArguments.size() == 1 : "Number of arguments on " + keyName + " = " + valueArguments.size(); // todo
JetExpression expression = valueArguments.get(0).getArgumentExpression();
genAnnotationExpressionValue(annotationVisitor, keyName, expression);
}
}
private void genAnnotationExpressionValue(AnnotationVisitor annotationVisitor, @Nullable String keyName, JetExpression expression) {
CompileTimeConstant<?> compileTimeConstant =
bindingContext.get(BindingContext.COMPILE_TIME_VALUE, expression);
@Override
public Void visitIntValue(IntValue value, Void data) {
return visitSimpleValue(value);
}
if (compileTimeConstant != null) {
Object value = compileTimeConstant.getValue();
annotationVisitor.visit(keyName, value);
return;
}
@Override
public Void visitShortValue(ShortValue value, Void data) {
return visitSimpleValue(value);
}
if (expression instanceof JetDotQualifiedExpression) {
JetDotQualifiedExpression qualifiedExpression = (JetDotQualifiedExpression) expression;
ResolvedCall<? extends CallableDescriptor> call =
bindingContext.get(BindingContext.RESOLVED_CALL, qualifiedExpression.getSelectorExpression());
if (call != null) {
if (call.getResultingDescriptor() instanceof PropertyDescriptor) {
PropertyDescriptor descriptor = (PropertyDescriptor) call.getResultingDescriptor();
annotationVisitor.visitEnum(keyName, typeMapper.mapType(descriptor).getDescriptor(), descriptor.getName().asString());
return;
@Override
public Void visitByteValue(ByteValue value, Void data) {
return visitSimpleValue(value);
}
@Override
public Void visitDoubleValue(DoubleValue value, Void data) {
return visitSimpleValue(value);
}
@Override
public Void visitFloatValue(FloatValue value, Void data) {
return visitSimpleValue(value);
}
@Override
public Void visitBooleanValue(BooleanValue value, Void data) {
return visitSimpleValue(value);
}
@Override
public Void visitCharValue(CharValue value, Void data) {
return visitSimpleValue(value);
}
@Override
public Void visitStringValue(StringValue value, Void data) {
return visitSimpleValue(value);
}
@Override
public Void visitEnumValue(EnumValue value, Void data) {
String propertyName = value.getValue().getName().asString();
annotationVisitor.visitEnum(name, typeMapper.mapType(value.getType(KotlinBuiltIns.getInstance())).getDescriptor(), propertyName);
return null;
}
@Override
public Void visitArrayValue(ArrayValue value, Void data) {
AnnotationVisitor visitor = annotationVisitor.visitArray(name);
for (CompileTimeConstant<?> argument : value.getValue()) {
genAnnotationArgument(null, argument, visitor);
}
visitor.visitEnd();
return null;
}
}
else {
if (expression instanceof JetCallExpression) {
JetCallExpression callExpression = (JetCallExpression) expression;
ResolvedCall<? extends CallableDescriptor> call =
bindingContext.get(BindingContext.RESOLVED_CALL, callExpression.getCalleeExpression());
if (call != null) {
List<AnnotationDescriptor> annotations = call.getResultingDescriptor().getOriginal().getAnnotations();
String value = null;
if (annotations != null) {
for (AnnotationDescriptor annotation : annotations) {
//noinspection ConstantConditions
if ("Intrinsic".equals(annotation.getType().getConstructor().getDeclarationDescriptor().getName().asString())) {
value = (String) annotation.getAllValueArguments().values().iterator().next().getValue();
break;
}
}
}
if (IntrinsicMethods.KOTLIN_JAVA_CLASS_FUNCTION.equals(value)) {
//noinspection ConstantConditions
annotationVisitor.visit(keyName, typeMapper
.mapType(call.getResultingDescriptor().getReturnType().getArguments().get(0).getType()));
return;
}
else if (IntrinsicMethods.KOTLIN_ARRAYS_ARRAY.equals(value)) {
AnnotationVisitor visitor = annotationVisitor.visitArray(keyName);
VarargValueArgument next = (VarargValueArgument) call.getValueArguments().values().iterator().next();
for (ValueArgument argument : next.getArguments()) {
genAnnotationExpressionValue(visitor, null, argument.getArgumentExpression());
}
visitor.visitEnd();
return;
}
else if (call.getResultingDescriptor() instanceof ConstructorDescriptor) {
ConstructorDescriptor descriptor = (ConstructorDescriptor) call.getResultingDescriptor();
AnnotationVisitor visitor = annotationVisitor.visitAnnotation(keyName, typeMapper
.mapType(descriptor.getContainingDeclaration()).getDescriptor());
getAnnotation(call, visitor);
visitor.visitEnd();
return;
}
}
}
}
throw new IllegalStateException("Don't know how to compile annotation value");
@Override
public Void visitAnnotationValue(AnnotationValue value, Void data) {
String internalAnnName = typeMapper.mapType(value.getValue().getType()).getDescriptor();
AnnotationVisitor visitor = annotationVisitor.visitAnnotation(name, internalAnnName);
genAnnotationArguments(value.getValue(), visitor);
visitor.visitEnd();
return null;
}
@Override
public Void visitJavaClassValue(JavaClassValue value, Void data) {
annotationVisitor.visit(name, typeMapper.mapType(value.getValue()));
return null;
}
private Void visitSimpleValue(CompileTimeConstant value) {
annotationVisitor.visit(name, value.getValue());
return null;
}
@Override
public Void visitErrorValue(ErrorValue value, Void data) {
return visitUnsupportedValue(value);
}
@Override
public Void visitNullValue(NullValue value, Void data) {
return visitUnsupportedValue(value);
}
private Void visitUnsupportedValue(CompileTimeConstant value) {
throw new IllegalStateException("Don't know how to compile annotation value " + value);
}
};
value.accept(argumentVisitor, null);
}
private static RetentionPolicy getRetentionPolicy(ClassifierDescriptor descriptor, JetTypeMapper typeMapper) {
@@ -33,10 +33,7 @@ import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
import org.jetbrains.jet.lang.resolve.java.AsmTypeConstants;
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
import org.jetbrains.jet.lang.resolve.java.JvmAbi;
import org.jetbrains.jet.lang.resolve.java.JvmPrimitiveType;
import org.jetbrains.jet.lang.resolve.java.*;
import org.jetbrains.jet.lang.types.JetType;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
import org.jetbrains.jet.lexer.JetTokens;
@@ -47,7 +44,7 @@ import java.util.Set;
import static org.jetbrains.asm4.Opcodes.*;
import static org.jetbrains.jet.codegen.CodegenUtil.*;
import static org.jetbrains.jet.lang.resolve.DescriptorUtils.isClassObject;
import static org.jetbrains.jet.lang.resolve.DescriptorUtils.*;
import static org.jetbrains.jet.lang.resolve.java.AsmTypeConstants.JAVA_STRING_TYPE;
public class AsmUtil {
@@ -239,15 +236,13 @@ public class AsmUtil {
return null;
}
// the following code is only for PRIVATE visibility of member
if (isClassObject(containingDeclaration)) {
if (isEnumEntry(memberDescriptor)) {
return NO_FLAG_PACKAGE_PRIVATE;
}
if (memberDescriptor instanceof ConstructorDescriptor) {
ClassKind kind = ((ClassDescriptor) containingDeclaration).getKind();
if (kind == ClassKind.OBJECT) {
//TODO: should be NO_FLAG_PACKAGE_PRIVATE
// see http://youtrack.jetbrains.com/issue/KT-2700
return ACC_PUBLIC;
return NO_FLAG_PACKAGE_PRIVATE;
}
else if (kind == ClassKind.ENUM_ENTRY) {
return NO_FLAG_PACKAGE_PRIVATE;
@@ -435,25 +430,23 @@ public class AsmUtil {
}
}
public static Type genIncrement(Type expectedType, int myDelta, InstructionAdapter v) {
public static void genIncrement(Type expectedType, int myDelta, InstructionAdapter v) {
if (expectedType == Type.LONG_TYPE) {
//noinspection UnnecessaryBoxing
v.lconst(myDelta);
}
else if (expectedType == Type.FLOAT_TYPE) {
//noinspection UnnecessaryBoxing
v.fconst(myDelta);
}
else if (expectedType == Type.DOUBLE_TYPE) {
//noinspection UnnecessaryBoxing
v.dconst(myDelta);
}
else {
v.iconst(myDelta);
expectedType = Type.INT_TYPE;
v.add(Type.INT_TYPE);
StackValue.coerce(Type.INT_TYPE, expectedType, v);
return;
}
v.add(expectedType);
return expectedType;
}
public static Type genNegate(Type expectedType, InstructionAdapter v) {
@@ -505,7 +498,7 @@ public class AsmUtil {
Type asmType = state.getTypeMapper().mapReturnType(type);
if (asmType.getSort() == Type.OBJECT || asmType.getSort() == Type.ARRAY) {
v.load(index, asmType);
v.visitLdcInsn(descriptor.getName().asString());
v.visitLdcInsn(parameter.getName().asString());
v.invokestatic("jet/runtime/Intrinsics", "checkParameterIsNotNull", "(Ljava/lang/Object;Ljava/lang/String;)V");
}
}
@@ -555,7 +548,7 @@ public class AsmUtil {
private static boolean isDeclaredInJava(@NotNull CallableDescriptor callableDescriptor, @NotNull BindingContext context) {
CallableDescriptor descriptor = callableDescriptor;
while (true) {
if (Boolean.TRUE.equals(context.get(BindingContext.IS_DECLARED_IN_JAVA, descriptor))) {
if (Boolean.TRUE.equals(context.get(JavaBindingContext.IS_DECLARED_IN_JAVA, descriptor))) {
return true;
}
CallableDescriptor original = descriptor.getOriginal();
@@ -589,10 +582,75 @@ public class AsmUtil {
}
}
public static boolean isPropertyWithBackingFieldInOuterClass(@NotNull PropertyDescriptor propertyDescriptor) {
return isPropertyWithSpecialBackingField(propertyDescriptor.getContainingDeclaration(), ClassKind.CLASS);
}
public static int getVisibilityForSpecialPropertyBackingField(@NotNull PropertyDescriptor propertyDescriptor, boolean isDelegate) {
boolean isExtensionProperty = propertyDescriptor.getReceiverParameter() != null;
if (isDelegate || isExtensionProperty) {
return ACC_PRIVATE;
} else {
return areBothAccessorDefault(propertyDescriptor) ? getVisibilityAccessFlag(descriptorForVisibility(propertyDescriptor)) : ACC_PRIVATE;
}
}
private static MemberDescriptor descriptorForVisibility(@NotNull PropertyDescriptor propertyDescriptor) {
if (!propertyDescriptor.isVar() ) {
return propertyDescriptor;
} else {
return propertyDescriptor.getSetter() != null ? propertyDescriptor.getSetter() : propertyDescriptor;
}
}
public static boolean isPropertyWithBackingFieldCopyInOuterClass(@NotNull PropertyDescriptor propertyDescriptor) {
boolean isExtensionProperty = propertyDescriptor.getReceiverParameter() != null;
return !propertyDescriptor.isVar() && !isExtensionProperty
&& isPropertyWithSpecialBackingField(propertyDescriptor.getContainingDeclaration(), ClassKind.TRAIT)
&& areBothAccessorDefault(propertyDescriptor)
&& getVisibilityForSpecialPropertyBackingField(propertyDescriptor, false) == ACC_PUBLIC;
}
public static boolean isClassObjectWithBackingFieldsInOuter(@NotNull DeclarationDescriptor classObject) {
return isPropertyWithSpecialBackingField(classObject, ClassKind.CLASS);
}
private static boolean areBothAccessorDefault(@NotNull PropertyDescriptor propertyDescriptor) {
return isAccessorWithEmptyBody(propertyDescriptor.getGetter())
&& (!propertyDescriptor.isVar() || isAccessorWithEmptyBody(propertyDescriptor.getSetter()));
}
private static boolean isAccessorWithEmptyBody(@Nullable PropertyAccessorDescriptor accessorDescriptor) {
return accessorDescriptor == null || !accessorDescriptor.hasBody();
}
private static boolean isPropertyWithSpecialBackingField(@NotNull DeclarationDescriptor classObject, ClassKind kind) {
return isClassObject(classObject) && isKindOf(classObject.getContainingDeclaration(), kind);
}
public static Type comparisonOperandType(Type left, Type right) {
if (left == Type.DOUBLE_TYPE || right == Type.DOUBLE_TYPE) return Type.DOUBLE_TYPE;
if (left == Type.FLOAT_TYPE || right == Type.FLOAT_TYPE) return Type.FLOAT_TYPE;
if (left == Type.LONG_TYPE || right == Type.LONG_TYPE) return Type.LONG_TYPE;
return Type.INT_TYPE;
}
public static void pop(@NotNull InstructionAdapter v, @NotNull Type type) {
if (type.getSize() == 2) {
v.pop2();
}
else {
v.pop();
}
}
public static void dup(@NotNull InstructionAdapter v, @NotNull Type type) {
if (type.getSize() == 2) {
v.dup2();
}
else {
v.dup();
}
}
}
@@ -105,10 +105,14 @@ public class CallableMethod implements Callable {
@NotNull GenerationState state,
@NotNull ResolvedCall resolvedCall
) {
invoke(v);
invokeWithoutAssertions(v);
AsmUtil.genNotNullAssertionForMethod(v, state, resolvedCall);
}
public void invokeWithoutAssertions(@NotNull InstructionAdapter v) {
invoke(v);
}
@Nullable
public Type getGenerateCalleeType() {
return generateCalleeType;
@@ -17,18 +17,19 @@
package org.jetbrains.jet.codegen;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.asm4.MethodVisitor;
import org.jetbrains.asm4.Type;
import org.jetbrains.asm4.commons.InstructionAdapter;
import org.jetbrains.jet.codegen.context.CodegenContext;
import org.jetbrains.jet.codegen.context.ClassContext;
import org.jetbrains.jet.codegen.state.GenerationState;
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
import org.jetbrains.jet.lang.descriptors.PropertyDescriptor;
import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
import org.jetbrains.jet.lang.descriptors.impl.SimpleFunctionDescriptorImpl;
import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
import org.jetbrains.jet.lang.resolve.name.Name;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -41,12 +42,20 @@ public abstract class ClassBodyCodegen extends MemberCodegen {
protected final OwnerKind kind;
protected final ClassDescriptor descriptor;
protected final ClassBuilder v;
protected final CodegenContext context;
protected final ClassContext context;
protected final List<CodeChunk> staticInitializerChunks = new ArrayList<CodeChunk>();
private MethodVisitor clInitMethod;
protected ClassBodyCodegen(JetClassOrObject aClass, CodegenContext context, ClassBuilder v, GenerationState state) {
super(state);
private ExpressionCodegen clInitCodegen;
protected ClassBodyCodegen(
@NotNull JetClassOrObject aClass,
@NotNull ClassContext context,
@NotNull ClassBuilder v,
@NotNull GenerationState state,
@Nullable MemberCodegen parentCodegen
) {
super(state, parentCodegen);
descriptor = state.getBindingContext().get(BindingContext.CLASS, aClass);
myClass = aClass;
this.context = context;
@@ -54,7 +63,7 @@ public abstract class ClassBodyCodegen extends MemberCodegen {
this.v = v;
}
public final void generate() {
public void generate() {
generateDeclaration();
generateClassBody();
@@ -73,16 +82,32 @@ public abstract class ClassBodyCodegen extends MemberCodegen {
private void generateClassBody() {
FunctionCodegen functionCodegen = new FunctionCodegen(context, v, state);
PropertyCodegen propertyCodegen = new PropertyCodegen(context, v, functionCodegen);
PropertyCodegen propertyCodegen = new PropertyCodegen(context, v, functionCodegen, this);
if (kind != OwnerKind.TRAIT_IMPL) {
//generate nested classes first and only then generate class body. It necessary to access to nested CodegenContexts
for (JetDeclaration declaration : myClass.getDeclarations()) {
if (shouldProcessFirst(declaration)) {
generateDeclaration(propertyCodegen, declaration);
}
}
}
for (JetDeclaration declaration : myClass.getDeclarations()) {
generateDeclaration(propertyCodegen, declaration, functionCodegen);
if (!shouldProcessFirst(declaration)) {
generateDeclaration(propertyCodegen, declaration);
}
}
generatePrimaryConstructorProperties(propertyCodegen, myClass);
}
protected void generateDeclaration(PropertyCodegen propertyCodegen, JetDeclaration declaration, FunctionCodegen functionCodegen) {
private boolean shouldProcessFirst(JetDeclaration declaration) {
return false == (declaration instanceof JetProperty || declaration instanceof JetNamedFunction);
}
protected void generateDeclaration(PropertyCodegen propertyCodegen, JetDeclaration declaration) {
if (declaration instanceof JetProperty || declaration instanceof JetNamedFunction) {
genFunctionOrProperty(context, (JetTypeParameterListOwner) declaration, v);
}
@@ -125,23 +150,46 @@ public abstract class ClassBodyCodegen extends MemberCodegen {
}
private void generateStaticInitializer() {
if (staticInitializerChunks.size() > 0) {
MethodVisitor mv = v.newMethod(null, ACC_PUBLIC | ACC_STATIC, "<clinit>", "()V", null, null);
if (clInitMethod != null) {
createOrGetClInitMethod();
if (state.getClassBuilderMode() == ClassBuilderMode.FULL) {
mv.visitCode();
ExpressionCodegen codegen = createOrGetClInitCodegen();
InstructionAdapter v = new InstructionAdapter(mv);
for (CodeChunk chunk : staticInitializerChunks) {
chunk.generate(v);
}
mv.visitInsn(RETURN);
FunctionCodegen.endVisit(v, "static initializer", myClass);
createOrGetClInitMethod().visitInsn(RETURN);
FunctionCodegen.endVisit(codegen.v, "static initializer", myClass);
}
}
}
@Nullable
protected MethodVisitor createOrGetClInitMethod() {
if (clInitMethod == null) {
clInitMethod = v.newMethod(null, ACC_STATIC, "<clinit>", "()V", null, null);
}
return clInitMethod;
}
@Nullable
protected ExpressionCodegen createOrGetClInitCodegen() {
assert state.getClassBuilderMode() == ClassBuilderMode.FULL;
if (state.getClassBuilderMode() == ClassBuilderMode.FULL) {
if (clInitCodegen == null) {
MethodVisitor method = createOrGetClInitMethod();
method.visitCode();
SimpleFunctionDescriptorImpl clInit =
new SimpleFunctionDescriptorImpl(descriptor, Collections.<AnnotationDescriptor>emptyList(),
Name.special("<clinit>"),
CallableMemberDescriptor.Kind.SYNTHESIZED);
clInit.initialize(null, null, Collections.<TypeParameterDescriptor>emptyList(),
Collections.<ValueParameterDescriptor>emptyList(), null, null, Visibilities.PRIVATE, false);
clInitCodegen = new ExpressionCodegen(method, new FrameMap(), Type.VOID_TYPE, context.intoFunction(clInit), state);
}
}
return clInitCodegen;
}
private void generateRemoveInIterator() {
// generates stub 'remove' function for subclasses of Iterator to be compatible with java.util.Iterator
if (DescriptorUtils.isIteratorWithoutRemoveImpl(descriptor)) {
@@ -16,8 +16,6 @@
package org.jetbrains.jet.codegen;
import org.jetbrains.asm4.commons.InstructionAdapter;
public interface CodeChunk {
void generate(InstructionAdapter v);
void generate(ExpressionCodegen codegen);
}
@@ -17,6 +17,8 @@
package org.jetbrains.jet.codegen;
import com.intellij.openapi.util.Condition;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.psi.PsiFile;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.containers.Stack;
import org.jetbrains.annotations.NotNull;
@@ -27,6 +29,7 @@ import org.jetbrains.jet.codegen.context.NamespaceContext;
import org.jetbrains.jet.codegen.signature.BothSignatureWriter;
import org.jetbrains.jet.codegen.signature.JvmMethodParameterKind;
import org.jetbrains.jet.codegen.signature.JvmMethodSignature;
import org.jetbrains.jet.codegen.state.JetTypeMapper;
import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
import org.jetbrains.jet.lang.descriptors.impl.SimpleFunctionDescriptorImpl;
@@ -263,14 +266,33 @@ public class CodegenUtil {
return false;
}
public static boolean couldUseDirectAccessToProperty(PropertyDescriptor propertyDescriptor, boolean forGetter, boolean isInsideClass, boolean isDelegated) {
public static boolean couldUseDirectAccessToProperty(@NotNull PropertyDescriptor propertyDescriptor, boolean forGetter, boolean isInsideClass, boolean isDelegated) {
PropertyAccessorDescriptor accessorDescriptor = forGetter ? propertyDescriptor.getGetter() : propertyDescriptor.getSetter();
boolean isExtensionProperty = propertyDescriptor.getReceiverParameter() != null;
boolean specialTypeProperty = isDelegated ||
isExtensionProperty ||
DescriptorUtils.isClassObject(propertyDescriptor.getContainingDeclaration()) ||
JetTypeMapper.isAccessor(propertyDescriptor);
return isInsideClass &&
!isDelegated &&
!isExtensionProperty &&
!specialTypeProperty &&
(accessorDescriptor == null ||
accessorDescriptor.isDefault() &&
(!DescriptorUtils.isExternallyAccessible(propertyDescriptor) || accessorDescriptor.getModality() == Modality.FINAL));
}
@NotNull
public static ImplementationBodyCodegen getParentBodyCodegen(@Nullable MemberCodegen classBodyCodegen) {
assert classBodyCodegen != null &&
classBodyCodegen
.getParentCodegen() instanceof ImplementationBodyCodegen : "Class object should have appropriate parent BodyCodegen";
return ((ImplementationBodyCodegen) classBodyCodegen.getParentCodegen());
}
static int getPathHashCode(@NotNull PsiFile file) {
// Conversion to system-dependent name seems to be unnecessary, but it's hard to check now:
// it was introduced when fixing KT-2839, which appeared again (KT-3639).
// If you try to remove it, run tests on Windows.
return FileUtil.toSystemDependentName(file.getVirtualFile().getPath()).hashCode();
}
}
File diff suppressed because it is too large Load Diff
@@ -37,6 +37,7 @@ import org.jetbrains.jet.codegen.signature.kotlin.JetMethodAnnotationWriter;
import org.jetbrains.jet.codegen.signature.kotlin.JetValueParameterAnnotationWriter;
import org.jetbrains.jet.codegen.state.GenerationState;
import org.jetbrains.jet.codegen.state.GenerationStateAware;
import org.jetbrains.jet.codegen.state.JetTypeMapper;
import org.jetbrains.jet.codegen.state.JetTypeMapperMode;
import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.psi.JetNamedFunction;
@@ -132,6 +133,8 @@ public class FunctionCodegen extends GenerationStateAware {
endVisit(mv, null, origin);
generateBridgeIfNeeded(owner, state, v, jvmSignature.getAsmMethod(), functionDescriptor);
methodContext.recordSyntheticAccessorIfNeeded(functionDescriptor, typeMapper);
}
@Nullable
@@ -180,7 +183,9 @@ public class FunctionCodegen extends GenerationStateAware {
labelsForSharedVars.putAll(createSharedVarsForParameters(mv, functionDescriptor, frameMap));
genNotNullAssertionsForParameters(new InstructionAdapter(mv), state, functionDescriptor, frameMap);
if (!JetTypeMapper.isAccessor(functionDescriptor)) {
genNotNullAssertionsForParameters(new InstructionAdapter(mv), state, functionDescriptor, frameMap);
}
strategy.generateBody(mv, signature, context);
@@ -812,7 +817,8 @@ public class FunctionCodegen extends GenerationStateAware {
StackValue.onStack(overriddenMethod.getReturnType()).put(delegateMethod.getReturnType(), iv);
iv.areturn(delegateMethod.getReturnType());
endVisit(mv, "delegate method", descriptorToDeclaration(bindingContext, functionDescriptor));
endVisit(mv, "Delegate method " + functionDescriptor + " to " + jvmOverriddenMethodSignature,
descriptorToDeclaration(bindingContext, functionDescriptor.getContainingDeclaration()));
generateBridgeIfNeeded(owner, state, v, jvmDelegateMethodSignature.getAsmMethod(), functionDescriptor);
}
@@ -19,7 +19,6 @@ package org.jetbrains.jet.codegen;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.asm4.MethodVisitor;
import org.jetbrains.asm4.Type;
import org.jetbrains.jet.codegen.context.CodegenContext;
import org.jetbrains.jet.codegen.context.MethodContext;
import org.jetbrains.jet.codegen.signature.JvmMethodSignature;
import org.jetbrains.jet.codegen.state.GenerationState;
@@ -30,7 +29,7 @@ import org.jetbrains.jet.lang.psi.JetDeclarationWithBody;
import java.util.ArrayList;
import java.util.Collection;
public abstract class FunctionGenerationStrategy<T extends CallableDescriptor> {
public abstract class FunctionGenerationStrategy {
private final Collection<String> localVariableNames = new ArrayList<String>();
@@ -78,14 +77,14 @@ public abstract class FunctionGenerationStrategy<T extends CallableDescriptor> {
}
@Override
public void doGenerateBody(ExpressionCodegen codegen, JvmMethodSignature signature) {
public void doGenerateBody(@NotNull ExpressionCodegen codegen, @NotNull JvmMethodSignature signature) {
codegen.returnExpression(declaration.getBodyExpression());
}
}
public abstract static class CodegenBased<T extends CallableDescriptor> extends FunctionGenerationStrategy<T> {
public abstract static class CodegenBased<T extends CallableDescriptor> extends FunctionGenerationStrategy {
private final GenerationState state;
protected final GenerationState state;
protected final T callableDescriptor;
@@ -20,6 +20,8 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import com.intellij.openapi.progress.ProcessCanceledException;
import com.intellij.openapi.util.Pair;
import com.intellij.psi.PsiElement;
import com.intellij.util.ArrayUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.asm4.AnnotationVisitor;
@@ -31,7 +33,7 @@ import org.jetbrains.asm4.commons.Method;
import org.jetbrains.jet.codegen.binding.CalculatedClosure;
import org.jetbrains.jet.codegen.binding.CodegenBinding;
import org.jetbrains.jet.codegen.binding.MutableClosure;
import org.jetbrains.jet.codegen.context.CodegenContext;
import org.jetbrains.jet.codegen.context.ClassContext;
import org.jetbrains.jet.codegen.context.ConstructorContext;
import org.jetbrains.jet.codegen.context.MethodContext;
import org.jetbrains.jet.codegen.signature.*;
@@ -66,7 +68,9 @@ import static org.jetbrains.jet.codegen.AsmUtil.*;
import static org.jetbrains.jet.codegen.CodegenUtil.*;
import static org.jetbrains.jet.codegen.binding.CodegenBinding.*;
import static org.jetbrains.jet.lang.resolve.BindingContextUtils.callableDescriptorToDeclaration;
import static org.jetbrains.jet.lang.resolve.BindingContextUtils.descriptorToDeclaration;
import static org.jetbrains.jet.lang.resolve.DescriptorUtils.*;
import static org.jetbrains.jet.lang.resolve.DescriptorUtils.isKindOf;
import static org.jetbrains.jet.lang.resolve.java.AsmTypeConstants.JAVA_STRING_TYPE;
import static org.jetbrains.jet.lang.resolve.java.AsmTypeConstants.OBJECT_TYPE;
@@ -79,13 +83,21 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
private final Type classAsmType;
private final FunctionCodegen functionCodegen;
private final PropertyCodegen propertyCodegen;
private final PropertyCodegen propertyCodegen;
public ImplementationBodyCodegen(JetClassOrObject aClass, CodegenContext context, ClassBuilder v, GenerationState state) {
super(aClass, context, v, state);
private List<PropertyAndDefaultValue> classObjectPropertiesToCopy;
public ImplementationBodyCodegen(
@NotNull JetClassOrObject aClass,
@NotNull ClassContext context,
@NotNull ClassBuilder v,
@NotNull GenerationState state,
@Nullable MemberCodegen parentCodegen
) {
super(aClass, context, v, state, parentCodegen);
this.classAsmType = typeMapper.mapType(descriptor.getDefaultType(), JetTypeMapperMode.IMPL);
this.functionCodegen = new FunctionCodegen(context, v, state);
this.propertyCodegen = new PropertyCodegen(context, v, this.functionCodegen);
this.propertyCodegen = new PropertyCodegen(context, v, this.functionCodegen, this);
}
@Override
@@ -97,7 +109,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
boolean isAbstract = false;
boolean isInterface = false;
boolean isFinal = false;
boolean isStatic = false;
boolean isStatic;
boolean isAnnotation = false;
boolean isEnum = false;
@@ -185,7 +197,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
signature.getName(),
signature.getJavaGenericSignature(),
signature.getSuperclassName(),
interfaces.toArray(new String[interfaces.size()])
ArrayUtil.toStringArray(interfaces)
);
v.visitSource(myClass.getContainingFile().getName(), null);
@@ -429,6 +441,8 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
protected void generateSyntheticParts() {
generateFieldForSingleton();
generateClassObjectBackingFieldCopies();
try {
generatePrimaryConstructor();
}
@@ -446,7 +460,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
generateSyntheticAccessors();
generateEnumMethods();
generateEnumMethodsAndConstInitializers();
generateFunctionsForDataClasses();
@@ -458,8 +472,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
for (JetParameter parameter : getPrimaryConstructorParameters()) {
if (parameter.getValOrVarNode() == null) continue;
PropertyDescriptor propertyDescriptor = state.getBindingContext().get(BindingContext.PRIMARY_CONSTRUCTOR_PARAMETER, parameter);
assert propertyDescriptor != null;
PropertyDescriptor propertyDescriptor = DescriptorUtils.getPropertyDescriptor(parameter, bindingContext);
result.add(propertyDescriptor);
}
@@ -760,12 +773,23 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
: "Trying to create function with default arguments for function that isn't presented in code for class without data annotation";
PropertyDescriptor propertyDescriptor = codegen.getBindingContext().get(
BindingContext.VALUE_PARAMETER_AS_PROPERTY, descriptor);
assert propertyDescriptor != null : "Trying to generate default value for parameter of copy function that doesn't correspond to any property";
assert propertyDescriptor != null
: "Trying to generate default value for parameter of copy function that doesn't correspond to any property";
codegen.v.load(0, thisDescriptorType);
Type propertyType = codegen.typeMapper.mapType(propertyDescriptor.getType());
codegen.intermediateValueForProperty(propertyDescriptor, false, null).put(propertyType, codegen.v);
}
});
}
private void generateEnumMethodsAndConstInitializers() {
if (!myEnumConstants.isEmpty()) {
generateEnumMethods();
if (state.getClassBuilderMode() == ClassBuilderMode.FULL) {
initializeEnumConstants(createOrGetClInitCodegen());
}
}
}
private void generateEnumMethods() {
@@ -802,8 +826,9 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
}
}
private void generateSyntheticAccessors() {
for (Map.Entry<DeclarationDescriptor, DeclarationDescriptor> entry : context.getAccessors().entrySet()) {
protected void generateSyntheticAccessors() {
Map<DeclarationDescriptor, DeclarationDescriptor> accessors = context.getAccessors();
for (Map.Entry<DeclarationDescriptor, DeclarationDescriptor> entry : accessors.entrySet()) {
generateSyntheticAccessor(entry);
}
}
@@ -811,60 +836,34 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
private void generateSyntheticAccessor(Map.Entry<DeclarationDescriptor, DeclarationDescriptor> entry) {
if (entry.getValue() instanceof FunctionDescriptor) {
FunctionDescriptor bridge = (FunctionDescriptor) entry.getValue();
FunctionDescriptor original = (FunctionDescriptor) entry.getKey();
final FunctionDescriptor original = (FunctionDescriptor) entry.getKey();
functionCodegen.generateMethod(null, typeMapper.mapSignature(bridge), false, bridge,
new FunctionGenerationStrategy.CodegenBased<FunctionDescriptor>(state, bridge) {
@Override
public void doGenerateBody(@NotNull ExpressionCodegen codegen, @NotNull JvmMethodSignature signature) {
generateMethodCallTo(original, codegen.v);
Method method = typeMapper.mapSignature(bridge).getAsmMethod();
boolean isConstructor = original instanceof ConstructorDescriptor;
Method originalMethod = isConstructor ?
typeMapper.mapConstructorSignature((ConstructorDescriptor) original).getAsmMethod() :
typeMapper.mapSignature(original).getAsmMethod();
Type[] argTypes = method.getArgumentTypes();
String owner = typeMapper.getOwner(original, OwnerKind.IMPLEMENTATION, isCallInsideSameModuleAsDeclared(original, context)).getInternalName();
MethodVisitor mv = v.newMethod(null, ACC_SYNTHETIC | ACC_STATIC, bridge.getName().asString(),
method.getDescriptor(), null, null);
if (state.getClassBuilderMode() == ClassBuilderMode.STUBS) {
genStubCode(mv);
}
else if (state.getClassBuilderMode() == ClassBuilderMode.FULL) {
mv.visitCode();
InstructionAdapter iv = new InstructionAdapter(mv);
if (isConstructor) {
iv.anew(method.getReturnType());
iv.dup();
}
else {
// todo: note that for now we never have access bridges for namespace methods, if at some point we do...
iv.load(0, OBJECT_TYPE);
}
for (int i = isConstructor ? 0 : 1, reg = isConstructor ? 0 : 1; i < argTypes.length; i++) {
Type argType = argTypes[i];
iv.load(reg, argType);
//noinspection AssignmentToForLoopParameter
reg += argType.getSize();
}
iv.invokespecial(owner, originalMethod.getName(), originalMethod.getDescriptor());
iv.areturn(method.getReturnType());
FunctionCodegen.endVisit(iv, "accessor", null);
}
codegen.v.areturn(signature.getAsmMethod().getReturnType());
}
});
}
else if (entry.getValue() instanceof PropertyDescriptor) {
PropertyDescriptor bridge = (PropertyDescriptor) entry.getValue();
final PropertyDescriptor bridge = (PropertyDescriptor) entry.getValue();
final PropertyDescriptor original = (PropertyDescriptor) entry.getKey();
final StackValue.Property property = ExpressionCodegen.intermediateValueForProperty(original, false, null, state, context, true);
PropertyGetterDescriptor getter = bridge.getGetter();
assert getter != null;
functionCodegen.generateMethod(null, typeMapper.mapGetterSignature(bridge, OwnerKind.IMPLEMENTATION), false, getter,
new FunctionGenerationStrategy.CodegenBased<PropertyGetterDescriptor>(state, getter) {
@Override
public void doGenerateBody(ExpressionCodegen codegen, JvmMethodSignature signature) {
public void doGenerateBody(@NotNull ExpressionCodegen codegen, @NotNull JvmMethodSignature signature) {
InstructionAdapter iv = codegen.v;
iv.load(0, OBJECT_TYPE);
boolean forceField = AsmUtil.isPropertyWithBackingFieldInOuterClass(original) && !isClassObject(bridge.getContainingDeclaration());
StackValue property = codegen.intermediateValueForProperty(original, forceField, null, MethodKind.SYNTHETIC_ACCESSOR);
if (!forceField) {
iv.load(0, OBJECT_TYPE);
}
property.put(property.type, iv);
iv.areturn(signature.getAsmMethod().getReturnType());
}
@@ -878,12 +877,13 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
functionCodegen.generateMethod(null, typeMapper.mapSetterSignature(bridge, OwnerKind.IMPLEMENTATION), false, setter,
new FunctionGenerationStrategy.CodegenBased<PropertySetterDescriptor>(state, setter) {
@Override
public void doGenerateBody(ExpressionCodegen codegen, JvmMethodSignature signature) {
public void doGenerateBody(@NotNull ExpressionCodegen codegen, @NotNull JvmMethodSignature signature) {
boolean forceField = AsmUtil.isPropertyWithBackingFieldInOuterClass(original) && !isClassObject(bridge.getContainingDeclaration());
StackValue property = codegen.intermediateValueForProperty(original, forceField, null, MethodKind.SYNTHETIC_ACCESSOR);
InstructionAdapter iv = codegen.v;
iv.load(0, OBJECT_TYPE);
Type[] argTypes = signature.getAsmMethod().getArgumentTypes();
for (int i = 1, reg = 1; i < argTypes.length; i++) {
for (int i = 0, reg = 0; i < argTypes.length; i++) {
Type argType = argTypes[i];
iv.load(reg, argType);
//noinspection AssignmentToForLoopParameter
@@ -901,6 +901,38 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
}
}
private void generateMethodCallTo(FunctionDescriptor functionDescriptor, InstructionAdapter iv) {
boolean isConstructor = functionDescriptor instanceof ConstructorDescriptor;
boolean callFromAccessor = !JetTypeMapper.isAccessor(functionDescriptor);
CallableMethod callableMethod = isConstructor ?
typeMapper.mapToCallableMethod((ConstructorDescriptor) functionDescriptor) :
typeMapper.mapToCallableMethod(functionDescriptor, callFromAccessor,
isCallInsideSameClassAsDeclared(functionDescriptor, context),
isCallInsideSameModuleAsDeclared(functionDescriptor, context),
context.getContextKind());
Method method = callableMethod.getSignature().getAsmMethod();
Type[] argTypes = method.getArgumentTypes();
int reg = 1;
if (isConstructor) {
iv.anew(callableMethod.getOwner().getAsmType());
iv.dup();
reg = 0;
}
else if (callFromAccessor) {
iv.load(0, OBJECT_TYPE);
}
for (int paramIndex = 0; paramIndex < argTypes.length; paramIndex++) {
Type argType = argTypes[paramIndex];
iv.load(reg, argType);
//noinspection AssignmentToForLoopParameter
reg += argType.getSize();
}
callableMethod.invokeWithoutAssertions(iv);
}
private void generateFieldForSingleton() {
boolean hasClassObject = descriptor.getClassObjectDescriptor() != null;
boolean isEnumClass = DescriptorUtils.isEnumClass(descriptor);
@@ -909,17 +941,74 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
ClassDescriptor fieldTypeDescriptor = hasClassObject ? descriptor.getClassObjectDescriptor() : descriptor;
assert fieldTypeDescriptor != null;
final FieldInfo info = FieldInfo.createForSingleton(fieldTypeDescriptor, typeMapper);
JetClassOrObject original = hasClassObject ? ((JetClass) myClass).getClassObject().getObjectDeclaration() : myClass;
StackValue.Field field = StackValue.singleton(fieldTypeDescriptor, typeMapper);
JetClassOrObject original;
if (hasClassObject) {
JetClassObject classObject = ((JetClass) myClass).getClassObject();
assert classObject != null : myClass.getText();
original = classObject.getObjectDeclaration();
}
else {
original = myClass;
}
v.newField(original, ACC_PUBLIC | ACC_STATIC | ACC_FINAL, info.getFieldName(), info.getFieldType().getDescriptor(), null, null);
v.newField(original, ACC_PUBLIC | ACC_STATIC | ACC_FINAL, field.name, field.type.getDescriptor(), null, null);
staticInitializerChunks.add(new CodeChunk() {
@Override
public void generate(InstructionAdapter iv) {
genInitSingletonField(info, iv);
if (!AsmUtil.isClassObjectWithBackingFieldsInOuter(fieldTypeDescriptor)) {
genInitSingleton(fieldTypeDescriptor, field);
}
}
private void generateClassObjectBackingFieldCopies() {
if (classObjectPropertiesToCopy != null) {
for (PropertyAndDefaultValue propertyInfo : classObjectPropertiesToCopy) {
PropertyDescriptor propertyDescriptor = propertyInfo.propertyDescriptor;
v.newField(null, ACC_STATIC | ACC_FINAL | ACC_PUBLIC, context.getFieldName(propertyDescriptor),
typeMapper.mapType(propertyDescriptor).getDescriptor(), null, propertyInfo.defaultValue);
//This field are always static and final so if it has constant initializer don't do anything in clinit,
//field would be initialized via default value in v.newField(...) - see JVM SPEC Ch.4
if (state.getClassBuilderMode() == ClassBuilderMode.FULL && propertyInfo.defaultValue == null) {
ExpressionCodegen codegen = createOrGetClInitCodegen();
int classObjectIndex = putClassObjectInLocalVar(codegen);
StackValue.local(classObjectIndex, OBJECT_TYPE).put(OBJECT_TYPE, codegen.v);
copyFieldFromClassObject(propertyDescriptor);
}
}
});
}
}
private int putClassObjectInLocalVar(ExpressionCodegen codegen) {
FrameMap frameMap = codegen.myFrameMap;
ClassDescriptor classObjectDescriptor = descriptor.getClassObjectDescriptor();
int classObjectIndex = frameMap.getIndex(classObjectDescriptor);
if (classObjectIndex == -1) {
classObjectIndex = frameMap.enter(classObjectDescriptor, OBJECT_TYPE);
StackValue classObject = StackValue.singleton(classObjectDescriptor, typeMapper);
classObject.put(classObject.type, codegen.v);
StackValue.local(classObjectIndex, classObject.type).store(classObject.type, codegen.v);
}
return classObjectIndex;
}
private void copyFieldFromClassObject(PropertyDescriptor propertyDescriptor) {
ExpressionCodegen codegen = createOrGetClInitCodegen();
StackValue property = codegen.intermediateValueForProperty(propertyDescriptor, false, null);
property.put(property.type, codegen.v);
StackValue.Field field = StackValue.field(property.type, JvmClassName.byClassDescriptor(descriptor),
propertyDescriptor.getName().asString(), true);
field.store(field.type, codegen.v);
}
protected void genInitSingleton(ClassDescriptor fieldTypeDescriptor, StackValue.Field field) {
if (state.getClassBuilderMode() == ClassBuilderMode.FULL) {
ConstructorDescriptor constructorDescriptor = DescriptorUtils.getConstructorOfSingletonObject(fieldTypeDescriptor);
ExpressionCodegen codegen = createOrGetClInitCodegen();
FunctionDescriptor fd = codegen.accessibleFunctionDescriptor(constructorDescriptor);
generateMethodCallTo(fd, codegen.v);
field.store(field.type, codegen.v);
}
}
protected void generatePrimaryConstructor() {
@@ -938,9 +1027,8 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
lookupConstructorExpressionsInClosureIfPresent(constructorContext);
}
final JvmMethodSignature constructorSignature = typeMapper.mapConstructorSignature(constructorDescriptor, closure);
assert constructorDescriptor != null;
final JvmMethodSignature constructorSignature = typeMapper.mapConstructorSignature(constructorDescriptor, closure);
functionCodegen.generateMethod(null, constructorSignature, true, constructorDescriptor, constructorContext,
new FunctionGenerationStrategy.CodegenBased<ConstructorDescriptor>(state, constructorDescriptor) {
@@ -952,7 +1040,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
}
@Override
public void doGenerateBody(ExpressionCodegen codegen, JvmMethodSignature signature) {
public void doGenerateBody(@NotNull ExpressionCodegen codegen, @NotNull JvmMethodSignature signature) {
generatePrimaryConstructorImpl(callableDescriptor, codegen, closure);
}
}
@@ -963,12 +1051,16 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
CallableMethod callableMethod = typeMapper.mapToCallableMethod(constructorDescriptor, closure);
FunctionCodegen.generateConstructorWithoutParametersIfNeeded(state, callableMethod, constructorDescriptor, v);
if (isClassObject(descriptor)) {
context.recordSyntheticAccessorIfNeeded(constructorDescriptor, typeMapper);
}
}
private void generatePrimaryConstructorImpl(
ConstructorDescriptor constructorDescriptor,
ExpressionCodegen codegen,
MutableClosure closure
@Nullable ConstructorDescriptor constructorDescriptor,
@NotNull ExpressionCodegen codegen,
@Nullable MutableClosure closure
) {
List<ValueParameterDescriptor> paramDescrs = constructorDescriptor != null
? constructorDescriptor.getValueParameters()
@@ -976,7 +1068,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
InstructionAdapter iv = codegen.v;
JvmClassName classname = JvmClassName.byType(classAsmType);
JvmClassName className = JvmClassName.byType(classAsmType);
if (superCall == null) {
genSimpleSuperCall(iv);
@@ -1003,7 +1095,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
}
if (specifier instanceof JetDelegatorByExpressionSpecifier) {
genCallToDelegatorByExpressionSpecifier(iv, codegen, classAsmType, classname, n++, specifier);
genCallToDelegatorByExpressionSpecifier(iv, codegen, classAsmType, className, n++, specifier);
}
}
@@ -1015,12 +1107,24 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
Type type = typeMapper.mapType(descriptor);
iv.load(0, classAsmType);
iv.load(codegen.myFrameMap.getIndex(descriptor), type);
iv.putfield(classAsmType.getInternalName(), descriptor.getName().asString(), type.getDescriptor());
iv.putfield(classAsmType.getInternalName(),
context.getFieldName(DescriptorUtils.getPropertyDescriptor(parameter, bindingContext)),
type.getDescriptor());
}
curParam++;
}
generateInitializers(codegen, iv, myClass.getDeclarations(), bindingContext, state);
boolean generateInitializerInOuter = isClassObjectWithBackingFieldsInOuter(descriptor);
if (generateInitializerInOuter) {
ImplementationBodyCodegen parentCodegen = getParentBodyCodegen(this);
//generate object$
parentCodegen.genInitSingleton(descriptor, StackValue.singleton(descriptor, typeMapper));
parentCodegen.generateInitializers(parentCodegen.createOrGetClInitCodegen(),
myClass.getDeclarations(), bindingContext, state);
} else {
generateInitializers(codegen, myClass.getDeclarations(), bindingContext, state);
}
iv.visitInsn(RETURN);
}
@@ -1058,7 +1162,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
InstructionAdapter iv,
ExpressionCodegen codegen,
Type classType,
JvmClassName classname,
JvmClassName className,
int n,
JetDelegationSpecifier specifier
) {
@@ -1089,14 +1193,12 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
ClassDescriptor superClassDescriptor = (ClassDescriptor) superType.getConstructor().getDeclarationDescriptor();
assert superClassDescriptor != null;
Type superTypeAsmType = typeMapper.mapType(superType, JetTypeMapperMode.IMPL);
StackValue field;
if (propertyDescriptor != null &&
!propertyDescriptor.isVar() &&
Boolean.TRUE.equals(bindingContext.get(BindingContext.BACKING_FIELD_REQUIRED, propertyDescriptor))) {
// final property with backing field
field = StackValue.field(typeMapper.mapType(propertyDescriptor.getType()), classname,
field = StackValue.field(typeMapper.mapType(propertyDescriptor.getType()), className,
propertyDescriptor.getName().asString(), false);
}
else {
@@ -1109,7 +1211,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
v.newField(specifier, ACC_PRIVATE|ACC_FINAL|ACC_SYNTHETIC, delegateField, fieldDesc, /*TODO*/null, null);
field = StackValue.field(fieldType, classname, delegateField, false);
field = StackValue.field(fieldType, className, delegateField, false);
field.store(fieldType, iv);
}
@@ -1136,6 +1238,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
}
constructorContext.lookupInContext(descriptor, null, state, true);
} else if (isLocalNamedFun(descriptor)) {
assert descriptor != null;
MutableClassDescriptor classDescriptor =
(MutableClassDescriptor) constructorContext.getParentContext().getContextDescriptor();
@@ -1210,7 +1313,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
}
private void generateTraitMethods() {
if (myClass instanceof JetClass && ((JetClass) myClass).isTrait()) {
if (JetPsiUtil.isTrait(myClass)) {
return;
}
@@ -1233,7 +1336,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
}
private void generateDelegationToTraitImpl(@NotNull FunctionDescriptor fun, @NotNull FunctionDescriptor inheritedFun) {
private void generateDelegationToTraitImpl(final @NotNull FunctionDescriptor fun, @NotNull FunctionDescriptor inheritedFun) {
DeclarationDescriptor containingDeclaration = fun.getContainingDeclaration();
if (!(containingDeclaration instanceof ClassDescriptor)) {
return;
@@ -1250,20 +1353,21 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
Method methodToGenerate = delegateInfo.methodToGenerate;
Method methodInTrait = delegateInfo.methodInTrait;
MethodVisitor mv = v.newMethod(myClass, flags, methodToGenerate.getName(), methodToGenerate.getDescriptor(), null, null);
PsiElement origin = descriptorToDeclaration(bindingContext, fun);
MethodVisitor mv = v.newMethod(origin, flags, methodToGenerate.getName(), methodToGenerate.getDescriptor(), null, null);
AnnotationCodegen.forMethod(mv, typeMapper).genAnnotations(fun);
writeAnnotationForDelegateToTraitImpl(fun, inheritedFun, mv);
if (state.getClassBuilderMode() == ClassBuilderMode.STUBS) {
genStubCode(mv);
}
else if (state.getClassBuilderMode() == ClassBuilderMode.FULL) {
writeAnnotationForDelegateToTraitImpl(fun, inheritedFun, mv);
Type returnType = methodToGenerate.getReturnType();
mv.visitCode();
FrameMap frameMap = context.prepareFrame(typeMapper);
ExpressionCodegen codegen = new ExpressionCodegen(mv, frameMap, returnType, context, state);
ExpressionCodegen codegen = new ExpressionCodegen(mv, frameMap, returnType, context.intoFunction(inheritedFun), state);
codegen.generateThisOrOuter(descriptor, false); // ??? wouldn't it be addClosureToConstructorParameters good idea to put it?
Type[] argTypes = methodToGenerate.getArgumentTypes();
@@ -1397,42 +1501,32 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
private static int findFirstSuperArgument(CallableMethod method) {
List<JvmMethodParameterSignature> types = method.getSignature().getKotlinParameterTypes();
if (types != null) {
int i = 0;
for (JvmMethodParameterSignature type : types) {
if (type.getKind() == JvmMethodParameterKind.SUPER_CALL_PARAM) {
return i + 1; // because of this
}
i += type.getAsmType().getSize();
int i = 0;
for (JvmMethodParameterSignature type : types) {
if (type.getKind() == JvmMethodParameterKind.SUPER_CALL_PARAM) {
return i + 1; // because of this
}
i += type.getAsmType().getSize();
}
return -1;
}
@Override
protected void generateDeclaration(PropertyCodegen propertyCodegen, JetDeclaration declaration, FunctionCodegen functionCodegen) {
protected void generateDeclaration(PropertyCodegen propertyCodegen, JetDeclaration declaration) {
if (declaration instanceof JetEnumEntry) {
String name = declaration.getName();
String desc = "L" + classAsmType.getInternalName() + ";";
v.newField(declaration, ACC_PUBLIC | ACC_ENUM | ACC_STATIC | ACC_FINAL, name, desc, null, null);
if (myEnumConstants.isEmpty()) {
staticInitializerChunks.add(new CodeChunk() {
@Override
public void generate(InstructionAdapter v) {
initializeEnumConstants(v);
}
});
}
myEnumConstants.add((JetEnumEntry) declaration);
}
super.generateDeclaration(propertyCodegen, declaration, functionCodegen);
super.generateDeclaration(propertyCodegen, declaration);
}
private final List<JetEnumEntry> myEnumConstants = new ArrayList<JetEnumEntry>();
private void initializeEnumConstants(InstructionAdapter iv) {
ExpressionCodegen codegen = new ExpressionCodegen(iv, new FrameMap(), Type.VOID_TYPE, context, state);
private void initializeEnumConstants(ExpressionCodegen codegen) {
InstructionAdapter iv = codegen.v;
int ordinal = -1;
JetType myType = descriptor.getDefaultType();
Type myAsmType = typeMapper.mapType(myType, JetTypeMapperMode.IMPL);
@@ -1494,14 +1588,14 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
}
public static void generateInitializers(
@NotNull ExpressionCodegen codegen, @NotNull InstructionAdapter iv, @NotNull List<JetDeclaration> declarations,
@NotNull ExpressionCodegen codegen, @NotNull List<JetDeclaration> declarations,
@NotNull BindingContext bindingContext, @NotNull GenerationState state
) {
JetTypeMapper typeMapper = state.getTypeMapper();
for (JetDeclaration declaration : declarations) {
if (declaration instanceof JetProperty) {
if (shouldInitializeProperty((JetProperty) declaration, typeMapper)) {
initializeProperty(codegen, bindingContext, iv, (JetProperty) declaration, false);
initializeProperty(codegen, bindingContext, (JetProperty) declaration);
}
}
else if (declaration instanceof JetClassInitializer) {
@@ -1510,16 +1604,12 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
}
}
public static void initializeProperty(
@NotNull ExpressionCodegen codegen,
@NotNull BindingContext bindingContext,
@NotNull InstructionAdapter iv,
@NotNull JetProperty property,
boolean isStatic
@NotNull JetProperty property
) {
if (!isStatic) {
iv.load(0, OBJECT_TYPE);
}
PropertyDescriptor propertyDescriptor = (PropertyDescriptor) bindingContext.get(BindingContext.VARIABLE, property);
assert propertyDescriptor != null;
@@ -1528,14 +1618,29 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
assert initializer != null : "shouldInitializeProperty must return false if initializer is null";
JetType jetType = getPropertyOrDelegateType(bindingContext, property, propertyDescriptor);
StackValue.StackValueWithSimpleReceiver propValue = codegen.intermediateValueForProperty(propertyDescriptor, true, null, MethodKind.INITIALIZER);
if (!propValue.isStatic) {
codegen.v.load(0, OBJECT_TYPE);
}
Type type = codegen.expressionType(initializer);
if (jetType.isNullable()) {
type = boxType(type);
}
codegen.gen(initializer, type);
StackValue.Property propValue = codegen.intermediateValueForProperty(propertyDescriptor, true, null);
propValue.store(type, iv);
propValue.store(type, codegen.v);
}
public static boolean shouldWriteFieldInitializer(PropertyDescriptor descriptor, JetTypeMapper mapper) {
//final field of primitive or String type
if (!descriptor.isVar()) {
Type type = mapper.mapType(descriptor.getType());
return AsmUtil.isPrimitive(type) || "java.lang.String".equals(type.getClassName());
}
return false;
}
public static boolean shouldInitializeProperty(
@@ -1551,6 +1656,8 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
PropertyDescriptor propertyDescriptor = (PropertyDescriptor) typeMapper.getBindingContext().get(BindingContext.VARIABLE, property);
assert propertyDescriptor != null;
//TODO: OPTIMIZATION: don't initialize static final fields
Object value = compileTimeValue.getValue();
JetType jetType = getPropertyOrDelegateType(typeMapper.getBindingContext(), property, propertyDescriptor);
Type type = typeMapper.mapType(jetType);
@@ -1568,7 +1675,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
return descriptor.getType();
}
private static boolean skipDefaultValue(PropertyDescriptor propertyDescriptor, Object value, Type type) {
private static boolean skipDefaultValue(@NotNull PropertyDescriptor propertyDescriptor, Object value, @NotNull Type type) {
if (isPrimitive(type)) {
if (!propertyDescriptor.getType().isNullable() && value instanceof Number) {
if (type == Type.INT_TYPE && ((Number) value).intValue() == 0) {
@@ -1636,7 +1743,6 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
private List<Pair<CallableMemberDescriptor, CallableMemberDescriptor>> getTraitImplementations(@NotNull ClassDescriptor classDescriptor) {
List<Pair<CallableMemberDescriptor, CallableMemberDescriptor>> r = Lists.newArrayList();
root:
for (DeclarationDescriptor decl : classDescriptor.getDefaultType().getMemberScope().getAllDescriptors()) {
if (!(decl instanceof CallableMemberDescriptor)) {
continue;
@@ -1667,7 +1773,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
continue;
}
assert count == 1 : "Ambiguous overriden declaration: " + callableMemberDescriptor.getName();
assert count == 1 : "Ambiguous overridden declaration: " + callableMemberDescriptor.getName();
Collection<JetType> superTypesOfSuperClass =
@@ -1684,4 +1790,25 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
return r;
}
public void addClassObjectPropertyToCopy(PropertyDescriptor descriptor, Object defaultValue) {
if (classObjectPropertiesToCopy == null) {
classObjectPropertiesToCopy = new ArrayList<PropertyAndDefaultValue>();
}
classObjectPropertiesToCopy.add(new PropertyAndDefaultValue(descriptor, defaultValue));
}
static class PropertyAndDefaultValue {
PropertyAndDefaultValue(PropertyDescriptor propertyDescriptor, Object defaultValue) {
this.propertyDescriptor = propertyDescriptor;
this.defaultValue = defaultValue;
}
private PropertyDescriptor propertyDescriptor;
private Object defaultValue;
}
}
@@ -17,26 +17,35 @@
package org.jetbrains.jet.codegen;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.codegen.context.ClassContext;
import org.jetbrains.jet.codegen.context.CodegenContext;
import org.jetbrains.jet.codegen.context.FieldOwnerContext;
import org.jetbrains.jet.codegen.state.GenerationState;
import org.jetbrains.jet.codegen.state.GenerationStateAware;
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.types.ErrorUtils;
import java.util.Map;
import static org.jetbrains.jet.codegen.binding.CodegenBinding.enumEntryNeedSubclass;
public class MemberCodegen extends GenerationStateAware {
public MemberCodegen(@NotNull GenerationState state) {
@Nullable
private MemberCodegen parentCodegen;
public MemberCodegen(@NotNull GenerationState state, @Nullable MemberCodegen parentCodegen) {
super(state);
this.parentCodegen = parentCodegen;
}
@Nullable
public MemberCodegen getParentCodegen() {
return parentCodegen;
}
public void genFunctionOrProperty(
CodegenContext context,
@NotNull FieldOwnerContext context,
@NotNull JetTypeParameterListOwner functionOrProperty,
@NotNull ClassBuilder classBuilder
) {
@@ -54,7 +63,7 @@ public class MemberCodegen extends GenerationStateAware {
}
else if (functionOrProperty instanceof JetProperty) {
try {
new PropertyCodegen(context, classBuilder, functionCodegen).gen((JetProperty) functionOrProperty);
new PropertyCodegen(context, classBuilder, functionCodegen, this).gen((JetProperty) functionOrProperty);
}
catch (CompilationException e) {
throw e;
@@ -80,8 +89,8 @@ public class MemberCodegen extends GenerationStateAware {
}
ClassBuilder classBuilder = state.getFactory().forClassImplementation(descriptor, aClass.getContainingFile());
CodegenContext classContext = parentContext.intoClass(descriptor, OwnerKind.IMPLEMENTATION, state);
new ImplementationBodyCodegen(aClass, classContext, classBuilder, state).generate();
ClassContext classContext = parentContext.intoClass(descriptor, OwnerKind.IMPLEMENTATION, state);
new ImplementationBodyCodegen(aClass, classContext, classBuilder, state, this).generate();
classBuilder.done();
if (aClass instanceof JetClass && ((JetClass) aClass).isTrait()) {
@@ -0,0 +1,23 @@
/*
* Copyright 2010-2013 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.jet.codegen;
public enum MethodKind {
GENERAL,
INITIALIZER,
SYNTHETIC_ACCESSOR
}
@@ -22,24 +22,29 @@ import com.intellij.openapi.progress.ProcessCanceledException;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiFile;
import com.intellij.util.PathUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.asm4.AnnotationVisitor;
import org.jetbrains.asm4.MethodVisitor;
import org.jetbrains.asm4.Type;
import org.jetbrains.asm4.commons.InstructionAdapter;
import org.jetbrains.jet.codegen.context.CodegenContext;
import org.jetbrains.jet.codegen.context.FieldOwnerContext;
import org.jetbrains.jet.codegen.state.GenerationState;
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
import org.jetbrains.jet.lang.descriptors.PropertyDescriptor;
import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
import org.jetbrains.jet.lang.descriptors.impl.SimpleFunctionDescriptorImpl;
import org.jetbrains.jet.lang.diagnostics.DiagnosticUtils;
import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.resolve.java.*;
import org.jetbrains.jet.lang.resolve.java.JvmAbi;
import org.jetbrains.jet.lang.resolve.java.JvmClassName;
import org.jetbrains.jet.lang.resolve.java.JvmStdlibNames;
import org.jetbrains.jet.lang.resolve.java.PackageClassUtils;
import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.name.Name;
import java.io.File;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import static org.jetbrains.asm4.Opcodes.*;
@@ -56,7 +61,7 @@ public class NamespaceCodegen extends MemberCodegen {
GenerationState state,
Collection<JetFile> namespaceFiles
) {
super(state);
super(state, null);
checkAllFilesHaveSameNamespace(namespaceFiles);
this.v = v;
@@ -146,22 +151,20 @@ public class NamespaceCodegen extends MemberCodegen {
);
builder.visitSource(file.getName(), null);
FieldOwnerContext nameSpaceContext =
CodegenContext.STATIC.intoNamespace(descriptor);
FieldOwnerContext nameSpacePart =
CodegenContext.STATIC.intoNamespacePart(className, descriptor);
for (JetDeclaration declaration : file.getDeclarations()) {
if (declaration instanceof JetNamedFunction || declaration instanceof JetProperty) {
{
CodegenContext context =
CodegenContext.STATIC.intoNamespace(descriptor);
genFunctionOrProperty(context, (JetTypeParameterListOwner) declaration, builder);
}
{
CodegenContext context =
CodegenContext.STATIC.intoNamespacePart(className, descriptor);
genFunctionOrProperty(context, (JetTypeParameterListOwner) declaration, v.getClassBuilder());
}
genFunctionOrProperty(nameSpaceContext, (JetTypeParameterListOwner) declaration, builder);
genFunctionOrProperty(nameSpacePart, (JetTypeParameterListOwner) declaration, v.getClassBuilder());
}
}
generateStaticInitializers(builder, file);
generateStaticInitializers(descriptor, builder, file, nameSpaceContext);
builder.done();
}
@@ -205,20 +208,33 @@ public class NamespaceCodegen extends MemberCodegen {
}
}
private void generateStaticInitializers(@NotNull ClassBuilder builder, @NotNull JetFile file) {
private void generateStaticInitializers(
NamespaceDescriptor descriptor,
@NotNull ClassBuilder builder,
@NotNull JetFile file,
@NotNull FieldOwnerContext context
) {
List<JetProperty> properties = collectPropertiesToInitialize(file);
if (properties.isEmpty()) return;
MethodVisitor mv = builder.newMethod(file, ACC_PUBLIC | ACC_STATIC, "<clinit>", "()V", null, null);
MethodVisitor mv = builder.newMethod(file, ACC_STATIC, "<clinit>", "()V", null, null);
if (state.getClassBuilderMode() == ClassBuilderMode.FULL) {
mv.visitCode();
FrameMap frameMap = new FrameMap();
ExpressionCodegen codegen = new ExpressionCodegen(mv, frameMap, Type.VOID_TYPE, CodegenContext.STATIC, state);
SimpleFunctionDescriptorImpl clInit =
new SimpleFunctionDescriptorImpl(descriptor, Collections.<AnnotationDescriptor>emptyList(),
Name.special("<clinit>"),
CallableMemberDescriptor.Kind.SYNTHESIZED);
clInit.initialize(null, null, Collections.<TypeParameterDescriptor>emptyList(),
Collections.<ValueParameterDescriptor>emptyList(), null, null, Visibilities.PRIVATE, false);
ExpressionCodegen codegen = new ExpressionCodegen(mv, frameMap, Type.VOID_TYPE, context.intoFunction(clInit), state);
for (JetDeclaration declaration : properties) {
ImplementationBodyCodegen.
initializeProperty(codegen, state.getBindingContext(), new InstructionAdapter(mv), (JetProperty) declaration, true);
initializeProperty(codegen, state.getBindingContext(), (JetProperty) declaration);
}
mv.visitInsn(RETURN);
@@ -255,20 +271,11 @@ public class NamespaceCodegen extends MemberCodegen {
@NotNull
private static String getMultiFileNamespaceInternalName(@NotNull String namespaceInternalName, @NotNull PsiFile file) {
String name = FileUtil.toSystemDependentName(file.getName());
String fileName = FileUtil.getNameWithoutExtension(PathUtil.getFileName(file.getName()));
int substringFrom = name.lastIndexOf(File.separator) + 1;
int substringTo = name.lastIndexOf('.');
if (substringTo == -1) {
substringTo = name.length();
}
int pathHashCode = FileUtil.toSystemDependentName(file.getVirtualFile().getCanonicalPath()).hashCode();
// dollar sign in the end is to prevent synthetic class from having "Test" or other parseable suffix
// path hashCode to prevent same name / different path collision
return namespaceInternalName + "$src$" + replaceSpecialSymbols(name.substring(substringFrom, substringTo)) + "$" + pathHashCode;
return namespaceInternalName + "$src$" + replaceSpecialSymbols(fileName) + "$" + Integer.toHexString(
CodegenUtil.getPathHashCode(file));
}
private static String replaceSpecialSymbols(@NotNull String str) {
@@ -17,23 +17,25 @@
package org.jetbrains.jet.codegen;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.PsiElement;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.asm4.FieldVisitor;
import org.jetbrains.asm4.MethodVisitor;
import org.jetbrains.asm4.Type;
import org.jetbrains.asm4.commons.InstructionAdapter;
import org.jetbrains.jet.codegen.context.CodegenContext;
import org.jetbrains.jet.codegen.context.MethodContext;
import org.jetbrains.jet.codegen.context.FieldOwnerContext;
import org.jetbrains.jet.codegen.signature.JvmMethodSignature;
import org.jetbrains.jet.codegen.signature.JvmPropertyAccessorSignature;
import org.jetbrains.jet.codegen.signature.kotlin.JetMethodAnnotationWriter;
import org.jetbrains.jet.codegen.state.GenerationState;
import org.jetbrains.jet.codegen.state.GenerationStateAware;
import org.jetbrains.jet.codegen.state.JetTypeMapper;
import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant;
import org.jetbrains.jet.lang.resolve.java.JvmAbi;
@@ -46,37 +48,52 @@ import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
import static org.jetbrains.asm4.Opcodes.*;
import static org.jetbrains.jet.codegen.AsmUtil.getDeprecatedAccessFlag;
import static org.jetbrains.jet.codegen.AsmUtil.getVisibilityForSpecialPropertyBackingField;
import static org.jetbrains.jet.codegen.CodegenUtil.*;
import static org.jetbrains.jet.lang.resolve.java.AsmTypeConstants.OBJECT_TYPE;
public class PropertyCodegen extends GenerationStateAware {
@NotNull
private final FunctionCodegen functionCodegen;
@NotNull
private final ClassBuilder v;
private final CodegenContext context;
@NotNull
private final FieldOwnerContext context;
@Nullable
private MemberCodegen classBodyCodegen;
@NotNull
private final OwnerKind kind;
public PropertyCodegen(CodegenContext context, ClassBuilder v, FunctionCodegen functionCodegen) {
public PropertyCodegen(
@NotNull FieldOwnerContext context,
@NotNull ClassBuilder v,
@NotNull FunctionCodegen functionCodegen,
@Nullable MemberCodegen classBodyCodegen
) {
super(functionCodegen.getState());
this.v = v;
this.functionCodegen = functionCodegen;
this.context = context;
this.classBodyCodegen = classBodyCodegen;
this.kind = context.getContextKind();
}
public void gen(JetProperty p) {
VariableDescriptor descriptor = bindingContext.get(BindingContext.VARIABLE, p);
if (!(descriptor instanceof PropertyDescriptor)) {
throw new UnsupportedOperationException("expect a property to have a property descriptor");
}
PropertyDescriptor propertyDescriptor = (PropertyDescriptor) descriptor;
PropertyDescriptor propertyDescriptor = DescriptorUtils.getPropertyDescriptor(p, bindingContext);
assert kind instanceof OwnerKind.StaticDelegateKind || kind == OwnerKind.NAMESPACE || kind == OwnerKind.IMPLEMENTATION || kind == OwnerKind.TRAIT_IMPL
: "Generating property with a wrong kind (" + kind + "): " + descriptor;
: "Generating property with a wrong kind (" + kind + "): " + propertyDescriptor;
if (kind != OwnerKind.TRAIT_IMPL && !(kind instanceof OwnerKind.StaticDelegateKind)) {
generateBackingField(p, propertyDescriptor);
}
generateGetter(p, propertyDescriptor, p.getGetter());
generateSetter(p, propertyDescriptor, p.getSetter());
context.recordSyntheticAccessorIfNeeded(propertyDescriptor, typeMapper);
}
public void generatePrimaryConstructorProperty(JetParameter p, PropertyDescriptor descriptor) {
@@ -87,7 +104,7 @@ public class PropertyCodegen extends GenerationStateAware {
}
}
private void generateBackingField(PsiElement p, PropertyDescriptor propertyDescriptor) {
private void generateBackingField(JetNamedDeclaration p, PropertyDescriptor propertyDescriptor) {
//noinspection ConstantConditions
boolean hasBackingField = bindingContext.get(BindingContext.BACKING_FIELD_REQUIRED, propertyDescriptor);
boolean isDelegated = p instanceof JetProperty && ((JetProperty) p).getDelegateExpression() != null;
@@ -106,49 +123,70 @@ public class PropertyCodegen extends GenerationStateAware {
}
private FieldVisitor generatePropertyDelegateAccess(JetProperty p, PropertyDescriptor propertyDescriptor) {
int modifiers = ACC_PRIVATE | ACC_FINAL | getDeprecatedAccessFlag(propertyDescriptor);
if (kind == OwnerKind.NAMESPACE) {
modifiers |= ACC_STATIC;
}
private FieldVisitor generateBackingField(JetNamedDeclaration element, PropertyDescriptor propertyDescriptor, boolean isDelegate, JetType jetType, Object defaultValue) {
int modifiers = getDeprecatedAccessFlag(propertyDescriptor);
if (KotlinBuiltIns.getInstance().isVolatile(propertyDescriptor)) {
modifiers |= ACC_VOLATILE;
}
if (kind == OwnerKind.NAMESPACE) {
modifiers |= ACC_STATIC;
}
if (!propertyDescriptor.isVar() || isDelegate) {
modifiers |= ACC_FINAL;
}
Type type = typeMapper.mapType(jetType);
ClassBuilder builder = v;
FieldOwnerContext backingFieldContext = context;
if (AsmUtil.isPropertyWithBackingFieldInOuterClass(propertyDescriptor)) {
modifiers |= ACC_STATIC | getVisibilityForSpecialPropertyBackingField(propertyDescriptor, isDelegate);
ImplementationBodyCodegen codegen = getParentBodyCodegen(classBodyCodegen);
builder = codegen.v;
backingFieldContext = codegen.context;
} else {
if (kind != OwnerKind.NAMESPACE || isDelegate) {
modifiers |= ACC_PRIVATE;
}
}
if (AsmUtil.isPropertyWithBackingFieldCopyInOuterClass(propertyDescriptor)) {
ImplementationBodyCodegen parentBodyCodegen = getParentBodyCodegen(classBodyCodegen);
parentBodyCodegen.addClassObjectPropertyToCopy(propertyDescriptor, defaultValue);
}
String name = backingFieldContext.getFieldName(propertyDescriptor, isDelegate);
return builder.newField(element, modifiers, name, type.getDescriptor(),
typeMapper.mapFieldSignature(jetType), defaultValue);
}
private FieldVisitor generatePropertyDelegateAccess(JetProperty p, PropertyDescriptor propertyDescriptor) {
JetType delegateType = bindingContext.get(BindingContext.EXPRESSION_TYPE, p.getDelegateExpression());
if (delegateType == null) {
// If delegate expression is unresolved reference
delegateType = ErrorUtils.createErrorType("Delegate type");
}
Type type = typeMapper.mapType(delegateType);
return v.newField(p, modifiers, JvmAbi.getPropertyDelegateName(propertyDescriptor.getName()), type.getDescriptor(),
null, null);
return generateBackingField(p, propertyDescriptor, true, delegateType, null);
}
private FieldVisitor generateBackingFieldAccess(PsiElement p, PropertyDescriptor propertyDescriptor) {
private FieldVisitor generateBackingFieldAccess(JetNamedDeclaration p, PropertyDescriptor propertyDescriptor) {
Object value = null;
if (p instanceof JetProperty && !ImplementationBodyCodegen.shouldInitializeProperty((JetProperty) p, typeMapper)) {
JetExpression initializer = ((JetProperty) p).getInitializer();
if (ImplementationBodyCodegen.shouldWriteFieldInitializer(propertyDescriptor, typeMapper)) {
JetExpression initializer = p instanceof JetProperty ? ((JetProperty) p).getInitializer() : null;
if (initializer != null) {
CompileTimeConstant<?> compileTimeValue = bindingContext.get(BindingContext.COMPILE_TIME_VALUE, initializer);
value = compileTimeValue != null ? compileTimeValue.getValue() : null;
}
}
int modifiers;
if (kind == OwnerKind.NAMESPACE) {
modifiers = ACC_STATIC;
}
else {
modifiers = ACC_PRIVATE;
}
if (!propertyDescriptor.isVar()) {
modifiers |= ACC_FINAL;
}
modifiers |= getDeprecatedAccessFlag(propertyDescriptor);
if (KotlinBuiltIns.getInstance().isVolatile(propertyDescriptor)) {
modifiers |= ACC_VOLATILE;
}
Type type = typeMapper.mapType(propertyDescriptor);
return v.newField(p, modifiers, propertyDescriptor.getName().asString(), type.getDescriptor(), null, value);
return generateBackingField(p, propertyDescriptor, false, propertyDescriptor.getType(), value);
}
private void generateGetter(JetNamedDeclaration p, PropertyDescriptor propertyDescriptor, JetPropertyAccessor getter) {
@@ -164,10 +202,10 @@ public class PropertyCodegen extends GenerationStateAware {
FunctionGenerationStrategy strategy;
if (defaultGetter) {
if (p instanceof JetProperty && ((JetProperty) p).getDelegateExpression() != null) {
strategy = new DefaultPropertyWithDelegateAccessorStrategy(getterDescriptor);
strategy = new DefaultPropertyWithDelegateAccessorStrategy(state, getterDescriptor);
}
else {
strategy = new DefaultPropertyAccessorStrategy(getterDescriptor);
strategy = new DefaultPropertyAccessorStrategy(state, getterDescriptor);
}
}
else {
@@ -195,10 +233,10 @@ public class PropertyCodegen extends GenerationStateAware {
FunctionGenerationStrategy strategy;
if (defaultSetter) {
if (p instanceof JetProperty && ((JetProperty) p).getDelegateExpression() != null) {
strategy = new DefaultPropertyWithDelegateAccessorStrategy(setterDescriptor);
strategy = new DefaultPropertyWithDelegateAccessorStrategy(state, setterDescriptor);
}
else {
strategy = new DefaultPropertyAccessorStrategy(setterDescriptor);
strategy = new DefaultPropertyAccessorStrategy(state, setterDescriptor);
}
}
else {
@@ -214,97 +252,89 @@ public class PropertyCodegen extends GenerationStateAware {
}
private class DefaultPropertyAccessorStrategy extends FunctionGenerationStrategy {
private final PropertyAccessorDescriptor descriptor;
private static class DefaultPropertyAccessorStrategy extends FunctionGenerationStrategy.CodegenBased<PropertyAccessorDescriptor> {
public DefaultPropertyAccessorStrategy(@NotNull PropertyAccessorDescriptor descriptor) {
this.descriptor = descriptor;
public DefaultPropertyAccessorStrategy(
@NotNull GenerationState state,
@NotNull PropertyAccessorDescriptor callableDescriptor
) {
super(state, callableDescriptor);
}
@Override
public void generateBody(
@NotNull MethodVisitor mv,
@NotNull JvmMethodSignature signature,
@NotNull MethodContext context
public void doGenerateBody(
ExpressionCodegen codegen, JvmMethodSignature signature
) {
generateDefaultAccessor(descriptor, new InstructionAdapter(mv), typeMapper, context);
generateDefaultAccessor(callableDescriptor, codegen.v, codegen);
}
}
private static void generateDefaultAccessor(
@NotNull PropertyAccessorDescriptor accessorDescriptor,
@NotNull InstructionAdapter iv,
@NotNull JetTypeMapper typeMapper,
@NotNull CodegenContext context
@NotNull ExpressionCodegen codegen
) {
JetTypeMapper typeMapper = codegen.typeMapper;
CodegenContext context = codegen.context;
OwnerKind kind = context.getContextKind();
PropertyDescriptor propertyDescriptor = accessorDescriptor.getCorrespondingProperty();
Type type = typeMapper.mapType(propertyDescriptor);
int paramCode = 0;
if (kind != OwnerKind.NAMESPACE) {
iv.load(0, OBJECT_TYPE);
paramCode = 1;
}
StackValue property = codegen.intermediateValueForProperty(accessorDescriptor.getCorrespondingProperty(), true, null);
if (accessorDescriptor instanceof PropertyGetterDescriptor) {
if (kind != OwnerKind.NAMESPACE) {
iv.load(0, OBJECT_TYPE);
}
iv.visitFieldInsn(
kind == OwnerKind.NAMESPACE ? GETSTATIC : GETFIELD,
typeMapper.getOwner(propertyDescriptor, kind, isCallInsideSameModuleAsDeclared(propertyDescriptor, context)).getInternalName(),
propertyDescriptor.getName().asString(),
type.getDescriptor());
property.put(type, iv);
iv.areturn(type);
}
else if (accessorDescriptor instanceof PropertySetterDescriptor) {
int paramCode = 0;
if (kind != OwnerKind.NAMESPACE) {
iv.load(0, OBJECT_TYPE);
paramCode = 1;
}
ReceiverParameterDescriptor receiverParameter = propertyDescriptor.getReceiverParameter();
if (receiverParameter != null) {
paramCode += typeMapper.mapType(receiverParameter.getType()).getSize();
}
iv.load(paramCode, type);
iv.visitFieldInsn(kind == OwnerKind.NAMESPACE ? PUTSTATIC : PUTFIELD,
typeMapper.getOwner(propertyDescriptor, kind, isCallInsideSameModuleAsDeclared(propertyDescriptor, context)).getInternalName(),
propertyDescriptor.getName().asString(),
type.getDescriptor());
property.store(type, iv);
iv.visitInsn(RETURN);
} else {
assert false : "Unreachable state";
}
}
private class DefaultPropertyWithDelegateAccessorStrategy extends FunctionGenerationStrategy {
private final PropertyAccessorDescriptor descriptor;
public DefaultPropertyWithDelegateAccessorStrategy(@NotNull PropertyAccessorDescriptor descriptor) {
this.descriptor = descriptor;
private static class DefaultPropertyWithDelegateAccessorStrategy extends FunctionGenerationStrategy.CodegenBased<PropertyAccessorDescriptor> {
public DefaultPropertyWithDelegateAccessorStrategy(@NotNull GenerationState state, @NotNull PropertyAccessorDescriptor descriptor) {
super(state, descriptor);
}
@Override
public void generateBody(
@NotNull MethodVisitor mv,
@NotNull JvmMethodSignature signature,
@NotNull MethodContext context
public void doGenerateBody(
@NotNull ExpressionCodegen codegen, @NotNull JvmMethodSignature signature
) {
InstructionAdapter iv = new InstructionAdapter(mv);
ExpressionCodegen codegen = new ExpressionCodegen(
mv, getFrameMap(typeMapper, context), signature.getAsmMethod().getReturnType(), context, state);
JetTypeMapper typeMapper = codegen.typeMapper;
OwnerKind kind = codegen.context.getContextKind();
InstructionAdapter iv = codegen.v;
BindingContext bindingContext = state.getBindingContext();
ResolvedCall<FunctionDescriptor> resolvedCall =
bindingContext.get(BindingContext.DELEGATED_PROPERTY_RESOLVED_CALL, descriptor);
bindingContext.get(BindingContext.DELEGATED_PROPERTY_RESOLVED_CALL, callableDescriptor);
Call call = bindingContext.get(BindingContext.DELEGATED_PROPERTY_CALL, descriptor);
Call call = bindingContext.get(BindingContext.DELEGATED_PROPERTY_CALL, callableDescriptor);
assert call != null : "Call should be recorded for delegate call " + signature.toString();
PropertyDescriptor property = descriptor.getCorrespondingProperty();
PropertyDescriptor property = callableDescriptor.getCorrespondingProperty();
Type asmType = typeMapper.mapType(property);
if (kind != OwnerKind.NAMESPACE) {
iv.load(0, OBJECT_TYPE);
}
StackValue.Property delegatedProperty = codegen.intermediateValueForProperty(property, true, null);
StackValue delegatedProperty = codegen.intermediateValueForProperty(property, true, null);
StackValue lastValue = codegen.invokeFunction(call, delegatedProperty, resolvedCall);
if (lastValue.type != Type.VOID_TYPE) {
@@ -0,0 +1,50 @@
/*
* Copyright 2010-2013 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.jet.codegen;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.descriptors.CallableDescriptor;
import org.jetbrains.jet.lang.descriptors.CallableMemberDescriptor;
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.resolve.java.JavaBindingContext;
public class SamCodegenUtil {
@Nullable
public static FunctionDescriptor getOriginalIfSamAdapter(@NotNull BindingContext bindingContext, @NotNull CallableDescriptor fun) {
if (!(fun instanceof FunctionDescriptor)) {
return null;
}
FunctionDescriptor original = ((FunctionDescriptor) fun).getOriginal();
if (original.getKind() == CallableMemberDescriptor.Kind.SYNTHESIZED) {
return bindingContext.get(JavaBindingContext.SAM_ADAPTER_FUNCTION_TO_ORIGINAL, original);
}
if (original.getKind() == CallableMemberDescriptor.Kind.FAKE_OVERRIDE) {
for (FunctionDescriptor overridden : original.getOverriddenDescriptors()) {
FunctionDescriptor originalIfSamAdapter = getOriginalIfSamAdapter(bindingContext, overridden);
if (originalIfSamAdapter != null) {
return originalIfSamAdapter;
}
}
}
return null;
}
private SamCodegenUtil() {
}
}
@@ -0,0 +1,52 @@
/*
* Copyright 2010-2013 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.jet.codegen;
import com.google.common.collect.Maps;
import com.intellij.openapi.util.Factory;
import com.intellij.openapi.util.Pair;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.codegen.state.GenerationState;
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
import org.jetbrains.jet.lang.psi.JetExpression;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.resolve.java.JvmClassName;
import org.jetbrains.jet.lang.resolve.java.descriptor.ClassDescriptorFromJvmBytecode;
import java.util.Map;
public class SamWrapperClasses {
private final GenerationState state;
private final Map<Pair<ClassDescriptorFromJvmBytecode, JetFile>, JvmClassName> samInterfaceToWrapperClass = Maps.newHashMap();
public SamWrapperClasses(GenerationState state) {
this.state = state;
}
@NotNull
public JvmClassName getSamWrapperClass(@NotNull final ClassDescriptorFromJvmBytecode samInterface, @NotNull final JetFile file) {
return ContainerUtil.getOrCreate(samInterfaceToWrapperClass, Pair.create(samInterface, file),
new Factory<JvmClassName>() {
@Override
public JvmClassName create() {
return new SamWrapperCodegen(state, samInterface).genWrapper(file);
}
});
}
}
@@ -20,24 +20,23 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.asm4.MethodVisitor;
import org.jetbrains.asm4.Type;
import org.jetbrains.asm4.commons.InstructionAdapter;
import org.jetbrains.jet.codegen.binding.CodegenBinding;
import org.jetbrains.jet.codegen.context.CodegenContext;
import org.jetbrains.jet.codegen.state.GenerationState;
import org.jetbrains.jet.codegen.state.GenerationStateAware;
import org.jetbrains.jet.codegen.state.JetTypeMapperMode;
import org.jetbrains.jet.lang.descriptors.CallableDescriptor;
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
import org.jetbrains.jet.lang.descriptors.SimpleFunctionDescriptor;
import org.jetbrains.jet.lang.psi.JetCallExpression;
import org.jetbrains.jet.lang.psi.JetExpression;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
import org.jetbrains.jet.lang.resolve.java.JvmClassName;
import org.jetbrains.jet.lang.resolve.java.PackageClassUtils;
import org.jetbrains.jet.lang.resolve.java.descriptor.ClassDescriptorFromJvmBytecode;
import org.jetbrains.jet.lang.resolve.java.sam.SingleAbstractMethodUtils;
import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.lang.types.JetType;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
import static org.jetbrains.asm4.Opcodes.*;
import static org.jetbrains.jet.codegen.AsmUtil.NO_FLAG_PACKAGE_PRIVATE;
@@ -47,40 +46,25 @@ import static org.jetbrains.jet.lang.resolve.java.AsmTypeConstants.OBJECT_TYPE;
public class SamWrapperCodegen extends GenerationStateAware {
private static final String FUNCTION_FIELD_NAME = "function";
@NotNull private final ClassDescriptor samInterface;
@NotNull private final ClassDescriptorFromJvmBytecode samInterface;
public SamWrapperCodegen(@NotNull GenerationState state, @NotNull ClassDescriptor samInterface) {
public SamWrapperCodegen(@NotNull GenerationState state, @NotNull ClassDescriptorFromJvmBytecode samInterface) {
super(state);
this.samInterface = samInterface;
}
public JvmClassName genWrapper(JetCallExpression callExpression, JetExpression argumentExpression) {
// Example: we generate SAM constructor call Comparator(f), where f: (Int, Int) -> Int
public JvmClassName genWrapper(@NotNull JetFile file) {
// Name for generated class, in form of whatever$1
JvmClassName name = bindingContext.get(CodegenBinding.FQN_FOR_SAM_CONSTRUCTOR, callExpression);
assert name != null : "internal class name not found for " + callExpression.getText();
JvmClassName name = JvmClassName.byInternalName(getWrapperName(file));
// e.g. (Int, Int) -> Int
JetType functionType = bindingContext.get(BindingContext.EXPRESSION_TYPE, argumentExpression);
assert functionType != null && KotlinBuiltIns.getInstance().isFunctionType(functionType) :
"not a function type of " + argumentExpression.getText() + ": " + functionType;
// e.g. (T, T) -> Int
JetType functionType = samInterface.getFunctionTypeForSamInterface();
assert functionType != null : samInterface.toString();
// e.g. compare(T, T)
SimpleFunctionDescriptor interfaceFunction = SingleAbstractMethodUtils.getAbstractMethodOfSamInterface(samInterface);
// SAM constructor call
ResolvedCall<? extends CallableDescriptor> resolvedCall =
bindingContext.get(BindingContext.RESOLVED_CALL, callExpression.getCalleeExpression());
assert resolvedCall != null : "couldn't find resolved call for " + callExpression.getText();
// e.g. Comparator<Int, Int>
JetType resultType = resolvedCall.getResultingDescriptor().getReturnType();
assert resultType != null && resultType.getConstructor() == samInterface.getTypeConstructor() :
"unexpected result type: " + resultType;
// e.g. compare(Int, Int)
SimpleFunctionDescriptor interfaceFunction = SingleAbstractMethodUtils.getAbstractMethodOfSamType(resultType);
ClassBuilder cv = state.getFactory().newVisitor(name.getInternalName(), callExpression.getContainingFile());
cv.defineClass(callExpression,
ClassBuilder cv = state.getFactory().newVisitor(name.getInternalName(), file);
cv.defineClass(file,
V1_6,
ACC_FINAL,
name.getInternalName(),
@@ -88,7 +72,7 @@ public class SamWrapperCodegen extends GenerationStateAware {
OBJECT_TYPE.getInternalName(),
new String[]{JvmClassName.byClassDescriptor(samInterface).getInternalName()}
);
cv.visitSource(callExpression.getContainingFile().getName(), null);
cv.visitSource(file.getName(), null);
// e.g. ASM type for Function2
Type functionAsmType = state.getTypeMapper().mapType(functionType, JetTypeMapperMode.VALUE);
@@ -148,4 +132,14 @@ public class SamWrapperCodegen extends GenerationStateAware {
StackValue functionField = StackValue.field(functionType, JvmClassName.byType(ownerType), FUNCTION_FIELD_NAME, false);
codegen.genDelegate(interfaceFunction, invokeFunction, functionField);
}
private String getWrapperName(@NotNull JetFile containingFile) {
NamespaceDescriptor namespace = state.getBindingContext().get(BindingContext.FILE_TO_NAMESPACE, containingFile);
assert namespace != null : "couldn't find namespace for file: " + containingFile.getVirtualFile();
FqName fqName = DescriptorUtils.getFQName(namespace).toSafe();
String packageInternalName = JvmClassName.byFqNameWithoutInnerClasses(
PackageClassUtils.getPackageClassFqName(fqName)).getInternalName();
return packageInternalName + "$sam$" + samInterface.getName().asString() + "$" +
Integer.toHexString(CodegenUtil.getPathHashCode(containingFile) * 31 + DescriptorUtils.getFQName(samInterface).hashCode());
}
}
@@ -24,6 +24,7 @@ import org.jetbrains.asm4.Type;
import org.jetbrains.asm4.commons.InstructionAdapter;
import org.jetbrains.asm4.commons.Method;
import org.jetbrains.jet.codegen.context.CodegenContext;
import org.jetbrains.jet.codegen.context.FieldOwnerContext;
import org.jetbrains.jet.codegen.context.MethodContext;
import org.jetbrains.jet.codegen.context.ScriptContext;
import org.jetbrains.jet.codegen.signature.JvmMethodSignature;
@@ -53,7 +54,7 @@ public class ScriptCodegen extends MemberCodegen {
private Method scriptConstructorMethod;
public ScriptCodegen(@NotNull GenerationState state) {
super(state);
super(state, null);
}
@Inject
@@ -145,7 +146,6 @@ public class ScriptCodegen extends MemberCodegen {
ImplementationBodyCodegen.generateInitializers(
new ExpressionCodegen(instructionAdapter, frameMap, Type.VOID_TYPE, context, state),
instructionAdapter,
scriptDeclaration.getDeclarations(),
bindingContext,
state);
@@ -197,7 +197,7 @@ public class ScriptCodegen extends MemberCodegen {
}
}
private void genMembers(@NotNull JetScript scriptDeclaration, @NotNull CodegenContext context, @NotNull ClassBuilder classBuilder) {
private void genMembers(@NotNull JetScript scriptDeclaration, @NotNull FieldOwnerContext context, @NotNull ClassBuilder classBuilder) {
for (JetDeclaration decl : scriptDeclaration.getDeclarations()) {
genFunctionOrProperty(context, (JetTypeParameterListOwner) decl, classBuilder);
}
@@ -30,7 +30,6 @@ import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.psi.JetExpression;
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
import org.jetbrains.jet.lang.resolve.java.AsmTypeConstants;
import org.jetbrains.jet.lang.resolve.java.JvmAbi;
import org.jetbrains.jet.lang.resolve.java.JvmClassName;
import org.jetbrains.jet.lang.resolve.java.JvmPrimitiveType;
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverValue;
@@ -116,10 +115,12 @@ public abstract class StackValue {
return new Invert(stackValue);
}
@NotNull
public static StackValue arrayElement(Type type, boolean unbox) {
return new ArrayElement(type, unbox);
}
@NotNull
public static StackValue collectionElement(
Type type,
ResolvedCall<FunctionDescriptor> getter,
@@ -131,23 +132,25 @@ public abstract class StackValue {
}
@NotNull
public static StackValue field(@NotNull Type type, @NotNull JvmClassName owner, @NotNull String name, boolean isStatic) {
public static Field field(@NotNull Type type, @NotNull JvmClassName owner, @NotNull String name, boolean isStatic) {
return new Field(type, owner, name, isStatic);
}
@NotNull
public static Property property(
PropertyDescriptor descriptor,
JvmClassName methodOwner,
Type type,
@NotNull PropertyDescriptor descriptor,
@NotNull JvmClassName methodOwner,
@NotNull Type type,
boolean isStatic,
boolean isDelegated,
@NotNull String name,
@Nullable CallableMethod getter,
@Nullable CallableMethod setter,
GenerationState state
) {
return new Property(descriptor, methodOwner, getter, setter, isStatic, isDelegated, type, state);
return new Property(descriptor, methodOwner, getter, setter, isStatic, name, type, state);
}
@NotNull
public static StackValue expression(Type type, JetExpression expression, ExpressionCodegen generator) {
return new Expression(type, expression, generator);
}
@@ -207,15 +210,6 @@ public abstract class StackValue {
}
}
private static void pop(Type type, InstructionAdapter v) {
if (type.getSize() == 1) {
v.pop();
}
else {
v.pop2();
}
}
protected void coerceTo(Type toType, InstructionAdapter v) {
coerce(this.type, toType, v);
}
@@ -228,7 +222,7 @@ public abstract class StackValue {
if (toType.equals(fromType)) return;
if (toType.getSort() == Type.VOID) {
pop(fromType, v);
pop(v, fromType);
}
else if (fromType.getSort() == Type.VOID) {
if (toType.equals(JET_UNIT_TYPE) || toType.equals(OBJECT_TYPE)) {
@@ -242,7 +236,7 @@ public abstract class StackValue {
}
}
else if (toType.equals(JET_UNIT_TYPE)) {
pop(fromType, v);
pop(v, fromType);
putUnitInstance(v);
}
else if (toType.getSort() == Type.ARRAY) {
@@ -338,7 +332,7 @@ public abstract class StackValue {
return receiverWithParameter;
}
public static StackValue singleton(ClassDescriptor classDescriptor, JetTypeMapper typeMapper) {
public static Field singleton(ClassDescriptor classDescriptor, JetTypeMapper typeMapper) {
FieldInfo info = FieldInfo.createForSingleton(classDescriptor, typeMapper);
return field(info.getFieldType(), JvmClassName.byInternalName(info.getOwnerInternalName()), info.getFieldName(), true);
}
@@ -642,7 +636,7 @@ public abstract class StackValue {
method.invokeWithNotNullAssertion(v, state, resolvedSetCall);
Type returnType = asmMethod.getReturnType();
if (returnType != Type.VOID_TYPE) {
pop(returnType, v);
pop(v, returnType);
}
}
else {
@@ -870,12 +864,13 @@ public abstract class StackValue {
private final PropertyDescriptor descriptor;
@NotNull
private final GenerationState state;
private final boolean isDelegated;
private final String name;
public Property(
@NotNull PropertyDescriptor descriptor, @NotNull JvmClassName methodOwner,
@Nullable CallableMethod getter, @Nullable CallableMethod setter, boolean isStatic,
boolean isDelegated, @NotNull Type type, @NotNull GenerationState state
@NotNull String name, @NotNull Type type, @NotNull GenerationState state
) {
super(type, isStatic);
this.methodOwner = methodOwner;
@@ -883,7 +878,7 @@ public abstract class StackValue {
this.setter = setter;
this.descriptor = descriptor;
this.state = state;
this.isDelegated = isDelegated;
this.name = name;
}
@Override
@@ -913,7 +908,7 @@ public abstract class StackValue {
}
private String getPropertyName() {
return isDelegated ? JvmAbi.getPropertyDelegateName(descriptor.getName()) : descriptor.getName().asString();
return name;
}
}
@@ -1244,7 +1239,7 @@ public abstract class StackValue {
}
}
private abstract static class StackValueWithSimpleReceiver extends StackValue {
public abstract static class StackValueWithSimpleReceiver extends StackValue {
protected final boolean isStatic;
@@ -16,7 +16,7 @@
package org.jetbrains.jet.codegen;
import org.jetbrains.jet.codegen.context.CodegenContext;
import org.jetbrains.jet.codegen.context.ClassContext;
import org.jetbrains.jet.codegen.state.GenerationState;
import org.jetbrains.jet.codegen.state.JetTypeMapperMode;
import org.jetbrains.jet.lang.psi.JetClassOrObject;
@@ -24,8 +24,8 @@ import org.jetbrains.jet.lang.psi.JetClassOrObject;
import static org.jetbrains.asm4.Opcodes.*;
public class TraitImplBodyCodegen extends ClassBodyCodegen {
public TraitImplBodyCodegen(JetClassOrObject aClass, CodegenContext context, ClassBuilder v, GenerationState state) {
super(aClass, context, v, state);
public TraitImplBodyCodegen(JetClassOrObject aClass, ClassContext context, ClassBuilder v, GenerationState state) {
super(aClass, context, v, state, null);
}
@Override
@@ -16,9 +16,13 @@
package org.jetbrains.jet.codegen.binding;
import com.intellij.psi.PsiElement;
import com.intellij.psi.tree.IElementType;
import com.intellij.psi.tree.TokenSet;
import com.intellij.util.containers.Stack;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.codegen.SamCodegenUtil;
import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
import org.jetbrains.jet.lang.descriptors.impl.ClassDescriptorImpl;
@@ -26,10 +30,14 @@ import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.resolve.BindingTrace;
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
import org.jetbrains.jet.lang.resolve.calls.model.ExpressionValueArgument;
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedValueArgument;
import org.jetbrains.jet.lang.resolve.java.JvmAbi;
import org.jetbrains.jet.lang.resolve.java.JvmClassName;
import org.jetbrains.jet.lang.resolve.java.PackageClassUtils;
import org.jetbrains.jet.lang.resolve.java.descriptor.ClassDescriptorFromJvmBytecode;
import org.jetbrains.jet.lang.resolve.java.sam.SingleAbstractMethodUtils;
import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
@@ -37,14 +45,19 @@ import org.jetbrains.jet.lang.types.JetType;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static org.jetbrains.jet.codegen.CodegenUtil.peekFromStack;
import static org.jetbrains.jet.codegen.FunctionTypesUtil.getSuperTypeForClosure;
import static org.jetbrains.jet.codegen.binding.CodegenBinding.*;
import static org.jetbrains.jet.lang.resolve.BindingContext.*;
import static org.jetbrains.jet.lexer.JetTokens.*;
class CodegenAnnotatingVisitor extends JetVisitorVoid {
private static final TokenSet BINARY_OPERATIONS = TokenSet.orSet(
AUGMENTED_ASSIGNMENTS, TokenSet.create(PLUS, MINUS, MUL, DIV, PERC, RANGE, LT, GT, LTEQ, GTEQ, IDENTIFIER));
private final Map<String, Integer> anonymousSubclassesCount = new HashMap<String, Integer>();
private final Stack<ClassDescriptor> classStack = new Stack<ClassDescriptor>();
@@ -57,30 +70,6 @@ class CodegenAnnotatingVisitor extends JetVisitorVoid {
this.bindingContext = bindingTrace.getBindingContext();
}
@Override
public void visitCallExpression(JetCallExpression expression) {
super.visitCallExpression(expression);
JetExpression callee = expression.getCalleeExpression();
assert callee != null : "not found callee for " + expression.getText();
ResolvedCall<? extends CallableDescriptor> resolvedCall = bindingContext.get(BindingContext.RESOLVED_CALL, callee);
if (resolvedCall == null) {
return;
}
DeclarationDescriptor funDescriptor = resolvedCall.getResultingDescriptor();
if (funDescriptor instanceof SimpleFunctionDescriptor) {
ClassDescriptor samTrait = bindingContext.get(
BindingContext.SAM_CONSTRUCTOR_TO_INTERFACE, ((SimpleFunctionDescriptor) funDescriptor).getOriginal());
if (samTrait != null) {
String name = inventAnonymousClassName(expression);
bindingTrace.record(FQN_FOR_SAM_CONSTRUCTOR, expression, JvmClassName.byInternalName(name));
}
}
}
@NotNull
private ClassDescriptor recordClassForFunction(@NotNull FunctionDescriptor funDescriptor, @NotNull JetType superType) {
ClassDescriptor classDescriptor;
@@ -116,12 +105,11 @@ class CodegenAnnotatingVisitor extends JetVisitorVoid {
if (declaration instanceof JetFunctionLiteralExpression ||
declaration instanceof JetNamedFunction ||
declaration instanceof JetObjectLiteralExpression ||
declaration instanceof JetCallExpression ||
declaration instanceof JetCallableReferenceExpression) {
}
else {
throw new IllegalStateException(
"Class-less declaration which is not JetFunctionLiteralExpression|JetNamedFunction|JetObjectLiteralExpression|JetCallExpression|JetCallableReferenceExpression : " +
"Class-less declaration which is not JetFunctionLiteralExpression|JetNamedFunction|JetObjectLiteralExpression|JetCallableReferenceExpression : " +
declaration.getClass().getName());
}
}
@@ -364,4 +352,110 @@ class CodegenAnnotatingVisitor extends JetVisitorVoid {
return null;
}
}
@Override
public void visitCallExpression(JetCallExpression expression) {
super.visitCallExpression(expression);
ResolvedCall<? extends CallableDescriptor> call = bindingContext.get(BindingContext.RESOLVED_CALL, expression.getCalleeExpression());
if (call == null) {
return;
}
CallableDescriptor descriptor = call.getResultingDescriptor();
if (!(descriptor instanceof FunctionDescriptor)) {
return;
}
FunctionDescriptor original = SamCodegenUtil.getOriginalIfSamAdapter(bindingContext, descriptor);
if (original == null) {
return;
}
List<ResolvedValueArgument> valueArguments = call.getValueArgumentsByIndex();
for (ValueParameterDescriptor valueParameter : original.getValueParameters()) {
ClassDescriptorFromJvmBytecode samInterface = getInterfaceIfSamType(valueParameter.getType());
if (samInterface == null) {
continue;
}
ResolvedValueArgument resolvedValueArgument = valueArguments.get(valueParameter.getIndex());
assert resolvedValueArgument instanceof ExpressionValueArgument : resolvedValueArgument;
ValueArgument valueArgument = ((ExpressionValueArgument) resolvedValueArgument).getValueArgument();
assert valueArgument != null;
JetExpression argumentExpression = valueArgument.getArgumentExpression();
assert argumentExpression != null : valueArgument.asElement().getText();
bindingTrace.record(CodegenBinding.SAM_VALUE, argumentExpression, samInterface);
}
}
@Override
public void visitBinaryExpression(JetBinaryExpression expression) {
super.visitBinaryExpression(expression);
FunctionDescriptor operationDescriptor =
(FunctionDescriptor) bindingContext.get(BindingContext.REFERENCE_TARGET, expression.getOperationReference());
if (operationDescriptor == null) return;
FunctionDescriptor original = SamCodegenUtil.getOriginalIfSamAdapter(bindingContext, operationDescriptor);
if (original == null) return;
ClassDescriptorFromJvmBytecode samInterfaceOfParameter = getInterfaceIfSamType(original.getValueParameters().get(0).getType());
if (samInterfaceOfParameter == null) return;
IElementType token = expression.getOperationToken();
if (BINARY_OPERATIONS.contains(token)) {
bindingTrace.record(CodegenBinding.SAM_VALUE, expression.getRight(), samInterfaceOfParameter);
}
else if (token == IN_KEYWORD || token == NOT_IN) {
bindingTrace.record(CodegenBinding.SAM_VALUE, expression.getLeft(), samInterfaceOfParameter);
}
}
@Override
public void visitArrayAccessExpression(JetArrayAccessExpression expression) {
super.visitArrayAccessExpression(expression);
FunctionDescriptor operationDescriptor = (FunctionDescriptor) bindingContext.get(BindingContext.REFERENCE_TARGET, expression);
if (operationDescriptor == null) {
return;
}
boolean isSetter = operationDescriptor.getName().asString().equals("set");
FunctionDescriptor original = SamCodegenUtil.getOriginalIfSamAdapter(bindingContext, operationDescriptor);
if (original == null) {
return;
}
List<JetExpression> indexExpressions = expression.getIndexExpressions();
List<ValueParameterDescriptor> parameters = original.getValueParameters();
for (ValueParameterDescriptor valueParameter : parameters) {
ClassDescriptorFromJvmBytecode samInterface = getInterfaceIfSamType(valueParameter.getType());
if (samInterface == null) {
continue;
}
if (isSetter && valueParameter.getIndex() == parameters.size() - 1) {
PsiElement parent = expression.getParent();
if (parent instanceof JetBinaryExpression && ((JetBinaryExpression) parent).getOperationToken() == EQ) {
JetExpression right = ((JetBinaryExpression) parent).getRight();
bindingTrace.record(CodegenBinding.SAM_VALUE, right, samInterface);
}
}
else {
JetExpression indexExpression = indexExpressions.get(valueParameter.getIndex());
bindingTrace.record(CodegenBinding.SAM_VALUE, indexExpression, samInterface);
}
}
}
@Nullable
private static ClassDescriptorFromJvmBytecode getInterfaceIfSamType(@NotNull JetType originalType) {
if (!SingleAbstractMethodUtils.isSamType(originalType)) {
return null;
}
ClassDescriptorFromJvmBytecode samInterface =
(ClassDescriptorFromJvmBytecode) originalType.getConstructor().getDeclarationDescriptor();
assert samInterface != null;
return samInterface;
}
}
@@ -28,6 +28,7 @@ import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.resolve.BindingTrace;
import org.jetbrains.jet.lang.resolve.java.JvmAbi;
import org.jetbrains.jet.lang.resolve.java.JvmClassName;
import org.jetbrains.jet.lang.resolve.java.descriptor.ClassDescriptorFromJvmBytecode;
import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
@@ -51,14 +52,14 @@ public class CodegenBinding {
public static final WritableSlice<DeclarationDescriptor, JvmClassName> FQN = Slices.createSimpleSlice();
public static final WritableSlice<JetCallExpression, JvmClassName> FQN_FOR_SAM_CONSTRUCTOR = Slices.createSimpleSlice();
public static final WritableSlice<JvmClassName, Boolean> SCRIPT_NAMES = Slices.createSimpleSetSlice();
public static final WritableSlice<ClassDescriptor, Boolean> ENUM_ENTRY_CLASS_NEED_SUBCLASS = Slices.createSimpleSetSlice();
public static final WritableSlice<ClassDescriptor, Collection<ClassDescriptor>> INNER_CLASSES = Slices.createSimpleSlice();
public static final WritableSlice<JetExpression, ClassDescriptorFromJvmBytecode> SAM_VALUE = Slices.createSimpleSlice();
private CodegenBinding() {
}
@@ -22,9 +22,8 @@ import org.jetbrains.jet.codegen.OwnerKind;
import org.jetbrains.jet.codegen.state.JetTypeMapper;
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
import static org.jetbrains.jet.codegen.binding.CodegenBinding.CLOSURE;
public class AnonymousClassContext extends ClassContext {
public class AnonymousClassContext extends CodegenContext {
public AnonymousClassContext(
@NotNull JetTypeMapper typeMapper,
@NotNull ClassDescriptor contextDescriptor,
@@ -33,14 +32,7 @@ public class AnonymousClassContext extends CodegenContext {
@Nullable LocalLookup localLookup
) {
//noinspection SuspiciousMethodCalls
super(contextDescriptor, contextKind, parentContext, typeMapper.getBindingContext().get(CLOSURE, contextDescriptor),
contextDescriptor, localLookup);
initOuterExpression(typeMapper, contextDescriptor);
}
@Override
public boolean isStatic() {
return false;
super(typeMapper, contextDescriptor, contextKind, parentContext, localLookup);
}
@Override
@@ -24,7 +24,8 @@ import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
import static org.jetbrains.jet.codegen.binding.CodegenBinding.CLOSURE;
public class ClassContext extends CodegenContext {
public class ClassContext extends FieldOwnerContext<ClassDescriptor> {
public ClassContext(
@NotNull JetTypeMapper typeMapper,
@NotNull ClassDescriptor contextDescriptor,
@@ -38,6 +39,15 @@ public class ClassContext extends CodegenContext {
initOuterExpression(typeMapper, contextDescriptor);
}
@Nullable
public CodegenContext getClassObjectContext() {
if (getContextDescriptor().getClassObjectDescriptor() != null) {
return findChildContext(getContextDescriptor().getClassObjectDescriptor());
}
return null;
}
@Override
public boolean isStatic() {
return false;
@@ -27,21 +27,25 @@ import org.jetbrains.jet.codegen.state.JetTypeMapper;
import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
import org.jetbrains.jet.lang.descriptors.impl.ConstructorDescriptorImpl;
import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import static org.jetbrains.asm4.Opcodes.ACC_PRIVATE;
import static org.jetbrains.jet.codegen.AsmUtil.CAPTURED_THIS_FIELD;
import static org.jetbrains.jet.codegen.AsmUtil.getVisibilityAccessFlag;
import static org.jetbrains.jet.codegen.binding.CodegenBinding.*;
import static org.jetbrains.jet.lang.resolve.java.AsmTypeConstants.OBJECT_TYPE;
public abstract class CodegenContext {
public abstract class CodegenContext<T extends DeclarationDescriptor> {
public static final CodegenContext STATIC = new RootContext();
@NotNull
private final DeclarationDescriptor contextDescriptor;
private final T contextDescriptor;
@NotNull
private final OwnerKind contextKind;
@@ -52,13 +56,16 @@ public abstract class CodegenContext {
public final MutableClosure closure;
HashMap<DeclarationDescriptor, DeclarationDescriptor> accessors;
private HashMap<DeclarationDescriptor, DeclarationDescriptor> accessors;
private Map<DeclarationDescriptor, CodegenContext> childContexts;
protected StackValue outerExpression;
private final LocalLookup enclosingLocalLookup;
public CodegenContext(
@NotNull DeclarationDescriptor contextDescriptor,
@NotNull T contextDescriptor,
@NotNull OwnerKind contextKind,
@Nullable CodegenContext parentContext,
@Nullable MutableClosure closure,
@@ -71,6 +78,10 @@ public abstract class CodegenContext {
this.closure = closure;
this.thisDescriptor = thisDescriptor;
this.enclosingLocalLookup = expressionCodegen;
if (parentContext != null) {
parentContext.addChild(this);
}
}
@NotNull
@@ -126,7 +137,7 @@ public abstract class CodegenContext {
}
@NotNull
public DeclarationDescriptor getContextDescriptor() {
public T getContextDescriptor() {
return contextDescriptor;
}
@@ -135,31 +146,37 @@ public abstract class CodegenContext {
return contextKind;
}
public CodegenContext intoNamespace(@NotNull NamespaceDescriptor descriptor) {
@NotNull
public FieldOwnerContext intoNamespace(@NotNull NamespaceDescriptor descriptor) {
return new NamespaceContext(descriptor, this, OwnerKind.NAMESPACE);
}
public CodegenContext intoNamespacePart(String delegateTo, NamespaceDescriptor descriptor) {
@NotNull
public FieldOwnerContext intoNamespacePart(String delegateTo, NamespaceDescriptor descriptor) {
return new NamespaceContext(descriptor, this, new OwnerKind.StaticDelegateKind(delegateTo));
}
public CodegenContext intoClass(ClassDescriptor descriptor, OwnerKind kind, GenerationState state) {
@NotNull
public ClassContext intoClass(ClassDescriptor descriptor, OwnerKind kind, GenerationState state) {
return new ClassContext(state.getTypeMapper(), descriptor, kind, this, null);
}
public CodegenContext intoAnonymousClass(
ClassDescriptor descriptor,
ExpressionCodegen expressionCodegen
@NotNull
public ClassContext intoAnonymousClass(
@NotNull ClassDescriptor descriptor,
@NotNull ExpressionCodegen expressionCodegen
) {
JetTypeMapper typeMapper = expressionCodegen.getState().getTypeMapper();
return new AnonymousClassContext(typeMapper, descriptor, OwnerKind.IMPLEMENTATION, this,
expressionCodegen);
}
@NotNull
public MethodContext intoFunction(FunctionDescriptor descriptor) {
return new MethodContext(descriptor, getContextKind(), this);
}
@NotNull
public ConstructorContext intoConstructor(ConstructorDescriptor descriptor) {
if (descriptor == null) {
descriptor = new ConstructorDescriptorImpl(getThisDescriptor(), Collections.<AnnotationDescriptor>emptyList(), true)
@@ -169,6 +186,7 @@ public abstract class CodegenContext {
return new ConstructorContext(descriptor, getContextKind(), this);
}
@NotNull
public CodegenContext intoScript(@NotNull ScriptDescriptor script, @NotNull ClassDescriptor classDescriptor) {
return new ScriptContext(script, classDescriptor, OwnerKind.IMPLEMENTATION, this, closure);
}
@@ -297,4 +315,110 @@ public abstract class CodegenContext {
public Map<DeclarationDescriptor, DeclarationDescriptor> getAccessors() {
return accessors == null ? Collections.<DeclarationDescriptor, DeclarationDescriptor>emptyMap() : accessors;
}
@NotNull
public PropertyDescriptor accessiblePropertyDescriptor(PropertyDescriptor propertyDescriptor) {
return (PropertyDescriptor) accessibleDescriptorIfNeeded(propertyDescriptor, true);
}
@NotNull
public FunctionDescriptor accessibleFunctionDescriptor(FunctionDescriptor fd) {
return (FunctionDescriptor) accessibleDescriptorIfNeeded(fd, true);
}
@NotNull
public void recordSyntheticAccessorIfNeeded(@NotNull FunctionDescriptor fd, @NotNull JetTypeMapper typeMapper) {
if (fd instanceof ConstructorDescriptor || needSyntheticAccessorInBindingTrace(fd, typeMapper)) {
accessibleDescriptorIfNeeded(fd, false);
}
}
@NotNull
public void recordSyntheticAccessorIfNeeded(PropertyDescriptor propertyDescriptor, JetTypeMapper typeMapper) {
if (needSyntheticAccessorInBindingTrace(propertyDescriptor, typeMapper)) {
accessibleDescriptorIfNeeded(propertyDescriptor, false);
}
}
private boolean needSyntheticAccessorInBindingTrace(@NotNull CallableMemberDescriptor descriptor, @NotNull JetTypeMapper typeMapper) {
Boolean result = typeMapper.getBindingContext().get(BindingContext.NEED_SYNTHETIC_ACCESSOR, descriptor);
return result == null ? false : result.booleanValue();
}
@NotNull
private int getAccessFlags(CallableMemberDescriptor descriptor) {
int flag = getVisibilityAccessFlag(descriptor);
if (descriptor instanceof PropertyDescriptor) {
PropertyDescriptor propertyDescriptor = (PropertyDescriptor) descriptor;
PropertySetterDescriptor setter = propertyDescriptor.getSetter();
PropertyGetterDescriptor getter = propertyDescriptor.getGetter();
flag |= (getter == null ? 0 : getVisibilityAccessFlag(getter)) |
(setter == null ? 0 : getVisibilityAccessFlag(setter));
}
return flag;
}
@NotNull
private MemberDescriptor accessibleDescriptorIfNeeded(CallableMemberDescriptor descriptor, boolean fromOutsideContext) {
int flag = getAccessFlags(descriptor);
if ((flag & ACC_PRIVATE) == 0) {
return descriptor;
}
CodegenContext descriptorContext = null;
if (!fromOutsideContext || getClassOrNamespaceDescriptor() != descriptor.getContainingDeclaration()) {
DeclarationDescriptor enclosed = descriptor.getContainingDeclaration();
boolean isClassObjectMember = DescriptorUtils.isClassObject(enclosed);
//go upper
if (hasThisDescriptor() && (enclosed != getThisDescriptor() || !fromOutsideContext)) {
CodegenContext currentContext = this;
while (currentContext != null) {
if (currentContext.getContextDescriptor() == enclosed) {
descriptorContext = currentContext;
break;
}
//accessors for private members in class object for call from class
if (isClassObjectMember && currentContext instanceof ClassContext) {
ClassContext classContext = (ClassContext) currentContext;
CodegenContext classObject = classContext.getClassObjectContext();
if (classObject != null && classObject.getContextDescriptor() == enclosed) {
descriptorContext = classObject;
break;
}
}
currentContext = currentContext.getParentContext();
}
}
}
return (MemberDescriptor) (descriptorContext != null ? descriptorContext.getAccessor(descriptor) : descriptor);
}
private void addChild(@NotNull CodegenContext child) {
if (shouldAddChild(child)) {
if (childContexts == null) {
childContexts = new HashMap<DeclarationDescriptor, CodegenContext>();
}
DeclarationDescriptor childContextDescriptor = child.getContextDescriptor();
childContexts.put(childContextDescriptor, child);
}
}
protected boolean shouldAddChild(@NotNull CodegenContext child) {
DeclarationDescriptor childContextDescriptor = child.contextDescriptor;
if (childContextDescriptor instanceof ClassDescriptor) {
ClassKind kind = ((ClassDescriptor) childContextDescriptor).getKind();
return kind == ClassKind.CLASS_OBJECT;
}
return false;
}
@Nullable
public CodegenContext findChildContext(@NotNull DeclarationDescriptor child) {
return childContexts == null ? null : childContexts.get(child);
}
}
@@ -0,0 +1,73 @@
/*
* Copyright 2010-2013 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.jet.codegen.context;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.codegen.OwnerKind;
import org.jetbrains.jet.codegen.binding.MutableClosure;
import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.resolve.java.JvmAbi;
import java.util.HashMap;
import java.util.Map;
public abstract class FieldOwnerContext<T extends DeclarationDescriptor> extends CodegenContext<T> {
//default property name -> map<property descriptor -> bytecode name>
private Map<String, Map<PropertyDescriptor, String>> fieldNames = new HashMap<String, Map<PropertyDescriptor, String>>();
public FieldOwnerContext(
@NotNull T contextDescriptor,
@NotNull OwnerKind contextKind,
@Nullable CodegenContext parentContext,
@Nullable MutableClosure closure,
@Nullable ClassDescriptor thisDescriptor,
@Nullable LocalLookup expressionCodegen
) {
super(contextDescriptor, contextKind, parentContext, closure, thisDescriptor, expressionCodegen);
}
public String getFieldName(PropertyDescriptor descriptor) {
return getFieldName(descriptor, false);
}
public String getFieldName(PropertyDescriptor descriptor, boolean isDelegated) {
assert descriptor.getKind() != CallableMemberDescriptor.Kind.FAKE_OVERRIDE;
boolean isExtension = descriptor.getReceiverParameter() != null;
return getFieldName(descriptor, isDelegated, isExtension);
}
private String getFieldName(PropertyDescriptor descriptor, boolean isDelegated, boolean isExtension) {
descriptor = descriptor.getOriginal();
String defaultPropertyName = JvmAbi.getDefaultPropertyName(descriptor.getName(), isDelegated, isExtension);
Map<PropertyDescriptor, String> descriptor2Name = fieldNames.get(defaultPropertyName);
if (descriptor2Name == null) {
descriptor2Name = new HashMap<PropertyDescriptor, String>();
fieldNames.put(defaultPropertyName, descriptor2Name);
}
String actualName = descriptor2Name.get(descriptor);
if (actualName == null) {
actualName = descriptor2Name.isEmpty() ? defaultPropertyName : defaultPropertyName + "$" + descriptor2Name.size();
descriptor2Name.put(descriptor, actualName);
}
return actualName;
}
}
@@ -21,7 +21,7 @@ import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.codegen.OwnerKind;
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
public class NamespaceContext extends CodegenContext {
public class NamespaceContext extends FieldOwnerContext<NamespaceDescriptor> {
public NamespaceContext(@NotNull NamespaceDescriptor contextDescriptor, @Nullable CodegenContext parent, @NotNull OwnerKind kind) {
super(contextDescriptor, kind, parent, null, null, null);
}
@@ -23,7 +23,7 @@ import org.jetbrains.jet.codegen.binding.MutableClosure;
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
import org.jetbrains.jet.lang.descriptors.ScriptDescriptor;
public class ScriptContext extends CodegenContext {
public class ScriptContext extends FieldOwnerContext<ClassDescriptor> {
@NotNull
private final ScriptDescriptor scriptDescriptor;
@@ -29,7 +29,8 @@ import org.jetbrains.jet.lang.psi.JetReferenceExpression;
import java.util.List;
import static org.jetbrains.jet.codegen.AsmUtil.*;
import static org.jetbrains.jet.codegen.AsmUtil.genIncrement;
import static org.jetbrains.jet.codegen.AsmUtil.unboxType;
public class Increment implements IntrinsicMethod {
private final int myDelta;
@@ -57,9 +58,9 @@ public class Increment implements IntrinsicMethod {
while (operand instanceof JetParenthesizedExpression) {
operand = ((JetParenthesizedExpression) operand).getExpression();
}
if (operand instanceof JetReferenceExpression) {
if (operand instanceof JetReferenceExpression && expectedType == Type.INT_TYPE) {
int index = codegen.indexOfLocal((JetReferenceExpression) operand);
if (index >= 0 && isIntPrimitive(expectedType)) {
if (index >= 0) {
return StackValue.preIncrement(index, myDelta);
}
}
@@ -68,12 +69,13 @@ public class Increment implements IntrinsicMethod {
value.dupReceiver(v);
value.put(expectedType, v);
value.store(genIncrement(expectedType, myDelta, v), v);
genIncrement(expectedType, myDelta, v);
value.store(expectedType, v);
value.put(expectedType, v);
}
else {
receiver.put(expectedType, v);
StackValue.coerce(genIncrement(expectedType, myDelta, v), expectedType, v);
genIncrement(expectedType, myDelta, v);
}
return StackValue.onStack(expectedType);
}
@@ -43,7 +43,8 @@ public class BothSignatureWriter {
public enum Mode {
METHOD(CheckSignatureAdapter.METHOD_SIGNATURE),
CLASS(CheckSignatureAdapter.CLASS_SIGNATURE),;
CLASS(CheckSignatureAdapter.CLASS_SIGNATURE),
TYPE(CheckSignatureAdapter.TYPE_SIGNATURE);
private final int asmType;
@@ -61,6 +62,9 @@ public class BothSignatureWriter {
RETURN_TYPE,
METHOD_END,
FIELD,
FIELD_END,
SUPERS,
CLASS_END,
}
@@ -341,6 +345,16 @@ public class BothSignatureWriter {
checkState(State.PARAMETERS);
}
public void writeFieldTypeStart() {
transitionState(State.START, State.FIELD);
jetSignatureWriter = new JetSignatureWriter();
}
public void writeFieldTypeEnd() {
jetSignatureWriter = null;
transitionState(State.FIELD, State.FIELD_END);
}
public void writeParameterType(JvmMethodParameterKind parameterKind) {
transitionState(State.PARAMETERS, State.PARAMETER);
@@ -486,7 +500,7 @@ public class BothSignatureWriter {
@Nullable
public String makeJavaGenericSignature() {
if (state != State.METHOD_END && state != State.CLASS_END) {
if (state != State.METHOD_END && state != State.CLASS_END && state != State.FIELD_END) {
throw new IllegalStateException();
}
checkTopLevel();
@@ -56,6 +56,9 @@ public class GenerationState {
@NotNull
private final IntrinsicMethods intrinsics;
@NotNull
private final SamWrapperClasses samWrapperClasses = new SamWrapperClasses(this);
@NotNull
private final BindingTrace bindingTrace;
@@ -154,6 +157,11 @@ public class GenerationState {
return intrinsics;
}
@NotNull
public SamWrapperClasses getSamWrapperClasses() {
return samWrapperClasses;
}
public boolean isGenerateNotNullAssertions() {
return generateNotNullAssertions;
}

Some files were not shown because too many files have changed in this diff Show More