commit 4c942913794ba75271c591239bc46f7cfa2813a4
Author: liu <1985960718@qq.com>
Date: Tue Dec 12 08:25:20 2023 +0800
1
diff --git a/.gradle/8.0/checksums/checksums.lock b/.gradle/8.0/checksums/checksums.lock
new file mode 100644
index 0000000..d562ca8
Binary files /dev/null and b/.gradle/8.0/checksums/checksums.lock differ
diff --git a/.gradle/8.0/checksums/md5-checksums.bin b/.gradle/8.0/checksums/md5-checksums.bin
new file mode 100644
index 0000000..03c4b6f
Binary files /dev/null and b/.gradle/8.0/checksums/md5-checksums.bin differ
diff --git a/.gradle/8.0/checksums/sha1-checksums.bin b/.gradle/8.0/checksums/sha1-checksums.bin
new file mode 100644
index 0000000..08facd6
Binary files /dev/null and b/.gradle/8.0/checksums/sha1-checksums.bin differ
diff --git a/.gradle/8.0/dependencies-accessors/dependencies-accessors.lock b/.gradle/8.0/dependencies-accessors/dependencies-accessors.lock
new file mode 100644
index 0000000..09b2df5
Binary files /dev/null and b/.gradle/8.0/dependencies-accessors/dependencies-accessors.lock differ
diff --git a/.gradle/8.0/dependencies-accessors/gc.properties b/.gradle/8.0/dependencies-accessors/gc.properties
new file mode 100644
index 0000000..e69de29
diff --git a/.gradle/8.0/executionHistory/executionHistory.bin b/.gradle/8.0/executionHistory/executionHistory.bin
new file mode 100644
index 0000000..d39e296
Binary files /dev/null and b/.gradle/8.0/executionHistory/executionHistory.bin differ
diff --git a/.gradle/8.0/executionHistory/executionHistory.lock b/.gradle/8.0/executionHistory/executionHistory.lock
new file mode 100644
index 0000000..dbff60b
Binary files /dev/null and b/.gradle/8.0/executionHistory/executionHistory.lock differ
diff --git a/.gradle/8.0/fileChanges/last-build.bin b/.gradle/8.0/fileChanges/last-build.bin
new file mode 100644
index 0000000..f76dd23
Binary files /dev/null and b/.gradle/8.0/fileChanges/last-build.bin differ
diff --git a/.gradle/8.0/fileHashes/fileHashes.bin b/.gradle/8.0/fileHashes/fileHashes.bin
new file mode 100644
index 0000000..92958c9
Binary files /dev/null and b/.gradle/8.0/fileHashes/fileHashes.bin differ
diff --git a/.gradle/8.0/fileHashes/fileHashes.lock b/.gradle/8.0/fileHashes/fileHashes.lock
new file mode 100644
index 0000000..13d10a6
Binary files /dev/null and b/.gradle/8.0/fileHashes/fileHashes.lock differ
diff --git a/.gradle/8.0/fileHashes/resourceHashesCache.bin b/.gradle/8.0/fileHashes/resourceHashesCache.bin
new file mode 100644
index 0000000..c2166a3
Binary files /dev/null and b/.gradle/8.0/fileHashes/resourceHashesCache.bin differ
diff --git a/.gradle/8.0/gc.properties b/.gradle/8.0/gc.properties
new file mode 100644
index 0000000..e69de29
diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock
new file mode 100644
index 0000000..6506155
Binary files /dev/null and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ
diff --git a/.gradle/buildOutputCleanup/cache.properties b/.gradle/buildOutputCleanup/cache.properties
new file mode 100644
index 0000000..9380bba
--- /dev/null
+++ b/.gradle/buildOutputCleanup/cache.properties
@@ -0,0 +1,2 @@
+#Tue Nov 07 14:35:52 CST 2023
+gradle.version=8.0
diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin
new file mode 100644
index 0000000..ea02d41
Binary files /dev/null and b/.gradle/buildOutputCleanup/outputFiles.bin differ
diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe
new file mode 100644
index 0000000..54413cb
Binary files /dev/null and b/.gradle/file-system.probe differ
diff --git a/.gradle/vcs-1/gc.properties b/.gradle/vcs-1/gc.properties
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/.idea/Notes-master.iml b/.idea/Notes-master.iml
new file mode 100644
index 0000000..f110102
--- /dev/null
+++ b/.idea/Notes-master.iml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..b589d56
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
new file mode 100644
index 0000000..ae388c2
--- /dev/null
+++ b/.idea/gradle.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
new file mode 100644
index 0000000..a5f05cd
--- /dev/null
+++ b/.idea/jarRepositories.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..da73036
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules/app/Notes-master.app.androidTest.iml b/.idea/modules/app/Notes-master.app.androidTest.iml
new file mode 100644
index 0000000..19932ce
--- /dev/null
+++ b/.idea/modules/app/Notes-master.app.androidTest.iml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules/app/Notes-master.app.iml b/.idea/modules/app/Notes-master.app.iml
new file mode 100644
index 0000000..e8a9866
--- /dev/null
+++ b/.idea/modules/app/Notes-master.app.iml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules/app/Notes-master.app.main.iml b/.idea/modules/app/Notes-master.app.main.iml
new file mode 100644
index 0000000..e58eb0b
--- /dev/null
+++ b/.idea/modules/app/Notes-master.app.main.iml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules/app/Notes-master.app.unitTest.iml b/.idea/modules/app/Notes-master.app.unitTest.iml
new file mode 100644
index 0000000..e85d8d3
--- /dev/null
+++ b/.idea/modules/app/Notes-master.app.unitTest.iml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/0/1/0141ed096ee7cdbb52dc6a8b0e8eae49847eb64a b/.idea/sonarlint/issuestore/0/1/0141ed096ee7cdbb52dc6a8b0e8eae49847eb64a
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/0/2/023468cfdd0b71d4098903b9070e364658e2fbcf b/.idea/sonarlint/issuestore/0/2/023468cfdd0b71d4098903b9070e364658e2fbcf
new file mode 100644
index 0000000..cb5efa3
--- /dev/null
+++ b/.idea/sonarlint/issuestore/0/2/023468cfdd0b71d4098903b9070e364658e2fbcf
@@ -0,0 +1,31 @@
+
+>
+java:S1604t"(Make this anonymous inner class a lambda(î
+V java:S125"
+java:S1125T"(Remove the unnecessary boolean literals.(
+m
+java:S3776p"RRefactor this method to reduce its Cognitive Complexity from 18 to the 15 allowed.(
+C
+java:S1125q"(Remove the unnecessary boolean literals.(
+>
+java:S1125r"(Remove the unnecessary boolean literals.(
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/0/f/0f0f0549145d0e2bfb972ba1ed2e2c38bfd6d1b1 b/.idea/sonarlint/issuestore/0/f/0f0f0549145d0e2bfb972ba1ed2e2c38bfd6d1b1
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/1/0/102ed1bbec66cf4d2c859a294d53f757520c9c3a b/.idea/sonarlint/issuestore/1/0/102ed1bbec66cf4d2c859a294d53f757520c9c3a
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/1/7/175d8fa829f0a7ced6aa11970f112de6ad144628 b/.idea/sonarlint/issuestore/1/7/175d8fa829f0a7ced6aa11970f112de6ad144628
new file mode 100644
index 0000000..9c3a0d2
--- /dev/null
+++ b/.idea/sonarlint/issuestore/1/7/175d8fa829f0a7ced6aa11970f112de6ad144628
@@ -0,0 +1,2 @@
+
+a java:S101"MRename this class name to match the regular expression '^[A-Z][a-zA-Z0-9]*$'.(u
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/1/e/1eb2363b523dbcae43d3c6e4790c64436af61b13 b/.idea/sonarlint/issuestore/1/e/1eb2363b523dbcae43d3c6e4790c64436af61b13
new file mode 100644
index 0000000..b5a82a1
--- /dev/null
+++ b/.idea/sonarlint/issuestore/1/e/1eb2363b523dbcae43d3c6e4790c64436af61b13
@@ -0,0 +1,25 @@
+
+v
+java:S11927"[Define a constant instead of duplicating this literal " TEXT NOT NULL DEFAULT ''," 5 times.(
+c
+java:S1192["HDefine a constant instead of duplicating this literal " BEGIN " 4 times.(
+a
+java:S1192j"FDefine a constant instead of duplicating this literal "=old." 6 times.(
+c
+java:S1192"GDefine a constant instead of duplicating this literal " BEGIN" 6 times.(
+t
+java:S11920"^Define a constant instead of duplicating this literal " INTEGER NOT NULL DEFAULT 0," 11 times.(
+_
+java:S1192^"IDefine a constant instead of duplicating this literal " WHERE " 8 times.(랰
+\
+java:S1192^"FDefine a constant instead of duplicating this literal "=new." 6 times.(랰
+g
+java:S1192"RDefine a constant instead of duplicating this literal " AFTER DELETE ON " 3 times.(B
+c
+java:S1192]"HDefine a constant instead of duplicating this literal " SET " 8 times.(˓
+`
+java:S1192\"JDefine a constant instead of duplicating this literal " UPDATE " 8 times.(
+
+java:S11923"yDefine a constant instead of duplicating this literal " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," 4 times.(
+Y
+java:S1214#"CMove constants defined in this interfaces to another class or enum.(
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/1/f/1f37b3287e9e1f293b5edaa624e3963f9b0959e3 b/.idea/sonarlint/issuestore/1/f/1f37b3287e9e1f293b5edaa624e3963f9b0959e3
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/2/8/283f16cc23da56ca65616082bc810304d3511d0a b/.idea/sonarlint/issuestore/2/8/283f16cc23da56ca65616082bc810304d3511d0a
new file mode 100644
index 0000000..69f4968
--- /dev/null
+++ b/.idea/sonarlint/issuestore/2/8/283f16cc23da56ca65616082bc810304d3511d0a
@@ -0,0 +1,39 @@
+
+t
+java:S22930"YReplace the type specification in this constructor call with the diamond operator ("<>").(ə
+o
+java:S2293]"YReplace the type specification in this constructor call with the diamond operator ("<>").(
+o
+java:S2293m"YReplace the type specification in this constructor call with the diamond operator ("<>").(Ȫ
+J
+java:S1066U"/Merge this if statement with the enclosing one.(ڧ
+
+java:S1319\"mThe return type of this method should be an interface such as "Set" rather than the implementation "HashSet".(
+
+java:S1319l"mThe return type of this method should be an interface such as "Set" rather than the implementation "HashSet".(
+j
+java:S1104*"TMake widgetId a static final constant or non-public and provide accessors if needed.(ǎ
+q
+java:S1104+"VMake widgetType a static final constant or non-public and provide accessors if needed.(漬
+C
+java:S5411_"(Use a primitive boolean expression here.(ɯ
+C
+java:S5411o"(Use a primitive boolean expression here.(ɯ
+D
+java:S5411"(Use a primitive boolean expression here.(
+7
+java:S1116,"Remove this empty statement.(
+D
+java:S1874/".Remove this use of ""; it is deprecated.(
+J
+java:S2864^"4Iterate over the "entrySet" instead of the "keySet".(
+B
+java:S1125_"'Remove the unnecessary boolean literal.(ɯ
+J
+java:S2864n"4Iterate over the "entrySet" instead of the "keySet".(
+B
+java:S1125o"'Remove the unnecessary boolean literal.(ɯ
+A
+java:S1168|"+Return an empty collection instead of null.(
+C
+java:S1125"'Remove the unnecessary boolean literal.(
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/2/b/2b687ab930681e3885683578d43df600a0a20982 b/.idea/sonarlint/issuestore/2/b/2b687ab930681e3885683578d43df600a0a20982
new file mode 100644
index 0000000..7dba34d
--- /dev/null
+++ b/.idea/sonarlint/issuestore/2/b/2b687ab930681e3885683578d43df600a0a20982
@@ -0,0 +1,2 @@
+
+b java:S101"MRename this class name to match the regular expression '^[A-Z][a-zA-Z0-9]*$'.(
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/2/b/2bfc771e07e87c37d3a76a2c815bc8fb30649798 b/.idea/sonarlint/issuestore/2/b/2bfc771e07e87c37d3a76a2c815bc8fb30649798
new file mode 100644
index 0000000..389582c
--- /dev/null
+++ b/.idea/sonarlint/issuestore/2/b/2bfc771e07e87c37d3a76a2c815bc8fb30649798
@@ -0,0 +1,10 @@
+
+>
+java:S1604/"(Make this anonymous inner class a lambda(˽
+h java:S100("NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(
+x
+java:S3923P"]This conditional operation returns the same value whether the condition is "true" or "false".(
+P
+java:S1874P"5Remove this use of "FORMAT_24HOUR"; it is deprecated.(
+P
+java:S1874P"5Remove this use of "FORMAT_24HOUR"; it is deprecated.(
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/3/1/3187a48b72709826e298c008a0076f24e6739bb9 b/.idea/sonarlint/issuestore/3/1/3187a48b72709826e298c008a0076f24e6739bb9
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/3/2/32360bf24febc78f20db52498c7576b3d8650d56 b/.idea/sonarlint/issuestore/3/2/32360bf24febc78f20db52498c7576b3d8650d56
new file mode 100644
index 0000000..ac3ea31
--- /dev/null
+++ b/.idea/sonarlint/issuestore/3/2/32360bf24febc78f20db52498c7576b3d8650d56
@@ -0,0 +1,39 @@
+
+t
+java:S22932"YReplace the type specification in this constructor call with the diamond operator ("<>").(л
+t
+java:S2293Z"YReplace the type specification in this constructor call with the diamond operator ("<>").(л
+u
+java:S2293"YReplace the type specification in this constructor call with the diamond operator ("<>").(ª
+b
+java:S1192D"GDefine a constant instead of duplicating this literal "%s: %s" 4 times.(
+c
+java:S1192x"HDefine a constant instead of duplicating this literal "=? AND " 4 times.(
+J
+java:S1066~"/Merge this if statement with the enclosing one.(䲜
+v
+java:S1319("`The type of "ids" should be an interface such as "Set" rather than the implementation "HashSet".(
+{
+java:S1319S"`The type of "ids" should be an interface such as "Set" rather than the implementation "HashSet".(
+
+java:S1319"mThe return type of this method should be an interface such as "Set" rather than the implementation "HashSet".(
+S
+java:S2589e"8Remove this expression which always evaluates to "false"(Ύ
+S
+java:S2589>"8Remove this expression which always evaluates to "false"(Ύ
+U
+java:S1118&":Add a private constructor to hide the implicit public one.(
+T
+java:S1155-">Use isEmpty() to check whether the collection is empty or not.(
+Z
+java:S2147E"DCombine this catch with the one at line 67, which has the same body.(暩
+[
+java:S2147l"ECombine this catch with the one at line 106, which has the same body.(暩
+k
+java:S3252"OUse static access with "net.micode.notes.data.Notes$DataColumns" for "NOTE_ID".(
+m
+java:S3252"QUse static access with "net.micode.notes.data.Notes$DataColumns" for "MIME_TYPE".(
+f
+java:S3252"OUse static access with "net.micode.notes.data.Notes$DataColumns" for "NOTE_ID".(ʹ
+m
+java:S3252"QUse static access with "net.micode.notes.data.Notes$DataColumns" for "MIME_TYPE".(
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/3/3/332c6f3d75926e4702a2bec3dcc4f101b096d5a2 b/.idea/sonarlint/issuestore/3/3/332c6f3d75926e4702a2bec3dcc4f101b096d5a2
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/3/5/35a9534af99716b62a1b2f926cda2640ed66437c b/.idea/sonarlint/issuestore/3/5/35a9534af99716b62a1b2f926cda2640ed66437c
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/3/a/3aac5305cb73bfbdeb8078cd264d04323fa80e92 b/.idea/sonarlint/issuestore/3/a/3aac5305cb73bfbdeb8078cd264d04323fa80e92
new file mode 100644
index 0000000..24fb08d
--- /dev/null
+++ b/.idea/sonarlint/issuestore/3/a/3aac5305cb73bfbdeb8078cd264d04323fa80e92
@@ -0,0 +1,3 @@
+
+O
+java:S59932"9Change the visibility of this constructor to "protected".(
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/3/d/3d0874cd378575c7e6e0973b184f167b3941748f b/.idea/sonarlint/issuestore/3/d/3d0874cd378575c7e6e0973b184f167b3941748f
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/3/e/3e688be40dc69cfd1062f41d0fc27fe261a26710 b/.idea/sonarlint/issuestore/3/e/3e688be40dc69cfd1062f41d0fc27fe261a26710
new file mode 100644
index 0000000..9739a47
--- /dev/null
+++ b/.idea/sonarlint/issuestore/3/e/3e688be40dc69cfd1062f41d0fc27fe261a26710
@@ -0,0 +1,29 @@
+
+g
+java:S1301"KReplace this "switch" statement by "if" statements to increase readability.(۫
+X
+java:S18747"=Remove this use of "FLAG_SHOW_WHEN_LOCKED"; it is deprecated.(
+Q
+java:S1874;";Remove this use of "FLAG_TURN_SCREEN_ON"; it is deprecated.(
+Z
+java:S1874="?Remove this use of "FLAG_LAYOUT_INSET_DECOR"; it is deprecated.(
+H
+java:S1874X"2Remove this use of "isScreenOn"; it is deprecated.(
+O
+java:S1874b":Remove this use of "setAudioStreamType"; it is deprecated.(0
+U
+java:S1874d":Remove this use of "setAudioStreamType"; it is deprecated.(Ũ
+`
+java:S2147n"ECombine this catch with the one at line 107, which has the same body.(
+[
+java:S2147q"ECombine this catch with the one at line 110, which has the same body.(
+[
+java:S2147t"ECombine this catch with the one at line 113, which has the same body.(ﭣ
+M
+java:S1135l"2Complete the task associated to this TODO comment.(̐
+M
+java:S1135o"2Complete the task associated to this TODO comment.(̐
+M
+java:S1135r"2Complete the task associated to this TODO comment.(̐
+M
+java:S1135u"2Complete the task associated to this TODO comment.(̐
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/3/f/3f52e8daf4bdfa7bee6741acd1bf90ffe7709f9a b/.idea/sonarlint/issuestore/3/f/3f52e8daf4bdfa7bee6741acd1bf90ffe7709f9a
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/4/3/4382a5e52a040a8135b4c0fc2653f95c42c8766b b/.idea/sonarlint/issuestore/4/3/4382a5e52a040a8135b4c0fc2653f95c42c8766b
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/4/5/4529b3a97b0f3b19b895aa06f23bed63ff38a312 b/.idea/sonarlint/issuestore/4/5/4529b3a97b0f3b19b895aa06f23bed63ff38a312
new file mode 100644
index 0000000..6cb31d2
--- /dev/null
+++ b/.idea/sonarlint/issuestore/4/5/4529b3a97b0f3b19b895aa06f23bed63ff38a312
@@ -0,0 +1,29 @@
+
+u
+java:S2293"YReplace the type specification in this constructor call with the diamond operator ("<>").(各
+a
+java:S2184s"FCast one of the operands of this multiplication operation to a "long".(⣛
+T
+java:S1874K"9Remove this use of "DefaultHttpClient"; it is deprecated.(믥
+H
+java:S1874"2Remove this use of "HttpParams"; it is deprecated.(ŋE
+M
+java:S1874"7Remove this use of "BasicHttpParams"; it is deprecated.(ŋE
+X
+java:S1874"").(
+D
+java:S1604"(Make this anonymous inner class a lambda(
+f
+java:S1301h"KReplace this "switch" statement by "if" statements to increase readability.(
+M
+java:S1135c"2Complete the task associated to this TODO comment.(
+< java:S131h""Add a default case to this switch.(
+^
+java:S1126"BReplace this if-then-else statement by a single method invocation.(忥
+P
+java:S2864"4Iterate over the "entrySet" instead of the "keySet".(Κ
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/5/7/577f30d26378ec8a2bd2e4a43f3c79b3f04c402c b/.idea/sonarlint/issuestore/5/7/577f30d26378ec8a2bd2e4a43f3c79b3f04c402c
new file mode 100644
index 0000000..3631cd7
--- /dev/null
+++ b/.idea/sonarlint/issuestore/5/7/577f30d26378ec8a2bd2e4a43f3c79b3f04c402c
@@ -0,0 +1,67 @@
+
+t
+java:S2293W"YReplace the type specification in this constructor call with the diamond operator ("<>").(ӏ
+t
+java:S2293`"YReplace the type specification in this constructor call with the diamond operator ("<>").(
+t
+java:S2293i"YReplace the type specification in this constructor call with the diamond operator ("<>").(
+o
+java:S2293q"YReplace the type specification in this constructor call with the diamond operator ("<>").(
+p
+java:S2293"YReplace the type specification in this constructor call with the diamond operator ("<>").(艥
+?
+java:S1604"(Make this anonymous inner class a lambda(ά
+?
+java:S1604"(Make this anonymous inner class a lambda(
+?
+java:S1604"(Make this anonymous inner class a lambda(ߒ
+q
+java:S1104N"VMake tvModified a static final constant or non-public and provide accessors if needed.(ԣ
+r
+java:S1104P"WMake ivAlertIcon a static final constant or non-public and provide accessors if needed.(න
+r
+java:S1104R"WMake tvAlertDate a static final constant or non-public and provide accessors if needed.(
+s
+java:S1104T"XMake ibSetBgColor a static final constant or non-public and provide accessors if needed.(
+n
+java:S1450"WRemove the "mPattern" field and declare it as a local variable in the relevant methods.(
+n
+java:S3776"RRefactor this method to reduce its Cognitive Complexity from 26 to the 15 allowed.(ݨ
+W
+java:S1874"@Remove this use of "SOFT_INPUT_ADJUST_RESIZE"; it is deprecated.(ѯ
+\
+java:S1874"@Remove this use of "SOFT_INPUT_ADJUST_RESIZE"; it is deprecated.(ң
+O
+java:S1874"9Remove this use of "setTextAppearance"; it is deprecated.((
+K
+java:S2864"4Iterate over the "entrySet" instead of the "keySet".(ԇ
+N
+java:S1135"2Complete the task associated to this TODO comment.(
+8
+java:S1116"Remove this empty statement.(
+X
+java:S1126"AReplace this if-then-else statement by a single return statement.(
+8
+java:S1116"Remove this empty statement.(
+P
+java:S1874"9Remove this use of "PreferenceManager"; it is deprecated.(
+Z
+java:S1874"CRemove this use of "getDefaultSharedPreferences"; it is deprecated.(
+U
+java:S1874"9Remove this use of "setTextAppearance"; it is deprecated.(
+f
+java:S1874"JDon't override a deprecated method or explicitly mark it as "@Deprecated".(
+Q
+java:S1874"5Remove this use of "onBackPressed"; it is deprecated.(
+G
+java:S1874"0Remove this use of "getColor"; it is deprecated.(
+d
+java:S3252"MUse static access with "android.text.Spanned" for "SPAN_INCLUSIVE_EXCLUSIVE".(
+U
+java:S1874"9Remove this use of "setTextAppearance"; it is deprecated.(
+T
+java:S1874"=Remove this use of "EXTRA_SHORTCUT_INTENT"; it is deprecated.(ð
+R
+java:S1874";Remove this use of "EXTRA_SHORTCUT_NAME"; it is deprecated.(
+[
+java:S1874"DRemove this use of "EXTRA_SHORTCUT_ICON_RESOURCE"; it is deprecated.(Ǿ
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/5/8/58052a8597c5f01595e1c849728bcae66c27a1a6 b/.idea/sonarlint/issuestore/5/8/58052a8597c5f01595e1c849728bcae66c27a1a6
new file mode 100644
index 0000000..07745a6
--- /dev/null
+++ b/.idea/sonarlint/issuestore/5/8/58052a8597c5f01595e1c849728bcae66c27a1a6
@@ -0,0 +1,5 @@
+
+3
+java:S2386$"Make this member "protected".(
+h
+java:S3776H"RRefactor this method to reduce its Cognitive Complexity from 19 to the 15 allowed.(ʃ
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/5/8/5836a695995df8fadacfa6409fe8d21d88946842 b/.idea/sonarlint/issuestore/5/8/5836a695995df8fadacfa6409fe8d21d88946842
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/5/b/5b5ea9e282b6b4d24438f217e6084a02a5631461 b/.idea/sonarlint/issuestore/5/b/5b5ea9e282b6b4d24438f217e6084a02a5631461
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/5/c/5c5b5eab7e2212ceb1df9a9df360f7b74086f035 b/.idea/sonarlint/issuestore/5/c/5c5b5eab7e2212ceb1df9a9df360f7b74086f035
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/5/d/5dfe6902d8ec740690f88d644e74362c3be08fad b/.idea/sonarlint/issuestore/5/d/5dfe6902d8ec740690f88d644e74362c3be08fad
new file mode 100644
index 0000000..505f811
--- /dev/null
+++ b/.idea/sonarlint/issuestore/5/d/5dfe6902d8ec740690f88d644e74362c3be08fad
@@ -0,0 +1,9 @@
+
+m
+java:S37763"RRefactor this method to reduce its Cognitive Complexity from 16 to the 15 allowed.(
+O
+java:S1874?"9Remove this use of "setTextAppearance"; it is deprecated.(
+O
+java:S1874F"9Remove this use of "setTextAppearance"; it is deprecated.(
+O
+java:S1874P"9Remove this use of "setTextAppearance"; it is deprecated.(
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/5/f/5f6162ca79fcea353b280c5dc84973a9c37d2c74 b/.idea/sonarlint/issuestore/5/f/5f6162ca79fcea353b280c5dc84973a9c37d2c74
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/6/a/6a65e747031f27aef20597b4181148a9fbf963d5 b/.idea/sonarlint/issuestore/6/a/6a65e747031f27aef20597b4181148a9fbf963d5
new file mode 100644
index 0000000..9cf548a
--- /dev/null
+++ b/.idea/sonarlint/issuestore/6/a/6a65e747031f27aef20597b4181148a9fbf963d5
@@ -0,0 +1,13 @@
+
+i
+java:S1192"MDefine a constant instead of duplicating this literal "Unknown URI " 4 times.(
+M
+java:S1153"1Directly append the argument of String.valueOf().(ߦ
+
+java:S3008L"eRename this field "NOTES_SNIPPET_SEARCH_QUERY" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(
+_
+java:S1659"CDeclare "noteId" and all following declarations on a separate line.(ؘ
+T
+java:S2130"8Use "Long.parseLong" for this string-to-long conversion.(
+N
+java:S1135"2Complete the task associated to this TODO comment.(
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/6/c/6cbf8bd9aa98eff862b1dc067330ba66ba4493aa b/.idea/sonarlint/issuestore/6/c/6cbf8bd9aa98eff862b1dc067330ba66ba4493aa
new file mode 100644
index 0000000..bdfcc68
--- /dev/null
+++ b/.idea/sonarlint/issuestore/6/c/6cbf8bd9aa98eff862b1dc067330ba66ba4493aa
@@ -0,0 +1,11 @@
+
+>
+java:S1604C"(Make this anonymous inner class a lambda(
+C
+java:S1604L"(Make this anonymous inner class a lambda(Ҵѝ
+C
+java:S1604v"(Make this anonymous inner class a lambda(ё
+?
+java:S1604"(Make this anonymous inner class a lambda(
+V
+java:S3398"?Move this method into the anonymous class declared at line 118.(
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/6/d/6ddcb085768c932a738db492683008cbdb890323 b/.idea/sonarlint/issuestore/6/d/6ddcb085768c932a738db492683008cbdb890323
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/7/8/78b400021a4b67de1cb9c996b2d32e042fc1fec3 b/.idea/sonarlint/issuestore/7/8/78b400021a4b67de1cb9c996b2d32e042fc1fec3
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/7/c/7cca4a2d94815c47d6a1ce79d4f7ac1c41c7b766 b/.idea/sonarlint/issuestore/7/c/7cca4a2d94815c47d6a1ce79d4f7ac1c41c7b766
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/7/e/7e6c62cbf2db3592d39ae44d7f78b9e37151187e b/.idea/sonarlint/issuestore/7/e/7e6c62cbf2db3592d39ae44d7f78b9e37151187e
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/8/7/876016634c6642b35109680ccac740dc8271b236 b/.idea/sonarlint/issuestore/8/7/876016634c6642b35109680ccac740dc8271b236
new file mode 100644
index 0000000..cc88819
--- /dev/null
+++ b/.idea/sonarlint/issuestore/8/7/876016634c6642b35109680ccac740dc8271b236
@@ -0,0 +1,11 @@
+
+F
+java:S1066"/Merge this if statement with the enclosing one.(
+3
+java:S2386A"Make this member "protected".(
+8
+java:S2386K"Make this member "protected".(㳎
+X
+java:S1126"AReplace this if-then-else statement by a single return statement.(
+?
+java:S1125"(Remove the unnecessary boolean literals.(
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/8/c/8c55c3ccc257e5907959013f99656e4c8ec3903e b/.idea/sonarlint/issuestore/8/c/8c55c3ccc257e5907959013f99656e4c8ec3903e
new file mode 100644
index 0000000..7a5b179
--- /dev/null
+++ b/.idea/sonarlint/issuestore/8/c/8c55c3ccc257e5907959013f99656e4c8ec3903e
@@ -0,0 +1,2 @@
+
+K xml:S55945"1Implement permissions on this exported component.(
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/8/c/8ccff78d0b5f6e2c2b5ae03eaa6292c9713ee7d6 b/.idea/sonarlint/issuestore/8/c/8ccff78d0b5f6e2c2b5ae03eaa6292c9713ee7d6
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/9/3/934a4e2abf19d28a53f6aeb1dcd99248c44b6892 b/.idea/sonarlint/issuestore/9/3/934a4e2abf19d28a53f6aeb1dcd99248c44b6892
new file mode 100644
index 0000000..f6fc1de
--- /dev/null
+++ b/.idea/sonarlint/issuestore/9/3/934a4e2abf19d28a53f6aeb1dcd99248c44b6892
@@ -0,0 +1,5 @@
+
+2
+java:S2386+"Make this member "protected".(X
+n
+java:S3776"RRefactor this method to reduce its Cognitive Complexity from 16 to the 15 allowed.(
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/9/6/969faa2a5d9f5e8390e958d2c07f2cfd54676e6b b/.idea/sonarlint/issuestore/9/6/969faa2a5d9f5e8390e958d2c07f2cfd54676e6b
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/9/7/97872a23506db5ffaa04e04bd96b003493352c30 b/.idea/sonarlint/issuestore/9/7/97872a23506db5ffaa04e04bd96b003493352c30
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/9/a/9a3a19793537958b8b1b03a81985999e22705a2f b/.idea/sonarlint/issuestore/9/a/9a3a19793537958b8b1b03a81985999e22705a2f
new file mode 100644
index 0000000..6c9da3c
--- /dev/null
+++ b/.idea/sonarlint/issuestore/9/a/9a3a19793537958b8b1b03a81985999e22705a2f
@@ -0,0 +1,11 @@
+
+{
+java:S2293)"YReplace the type specification in this constructor call with the diamond operator ("<>").(8ʧ1
+W
+java:S1118":Add a private constructor to hide the implicit public one.(8˧1
+x
+java:S3252!"VUse static access with "android.provider.ContactsContract$DataColumns" for "MIMETYPE".(8˧1
+y
+java:S3252""\Use static access with "android.provider.ContactsContract$DataColumns" for "RAW_CONTACT_ID".(8˧1
+{
+java:S32524"^Use static access with "android.provider.ContactsContract$ContactsColumns" for "DISPLAY_NAME".(8˧1
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/9/b/9b09a4d37e3aec64adadab801bb8fec4165ad88f b/.idea/sonarlint/issuestore/9/b/9b09a4d37e3aec64adadab801bb8fec4165ad88f
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/9/b/9bff80af6e3e79adb83d5133a046b17b4df93efe b/.idea/sonarlint/issuestore/9/b/9bff80af6e3e79adb83d5133a046b17b4df93efe
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/9/d/9d3f688bcd8166493a0cc97a200f519d2f20537c b/.idea/sonarlint/issuestore/9/d/9d3f688bcd8166493a0cc97a200f519d2f20537c
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/9/d/9dbe73b411fb77d236219bae9da8525f142f9b73 b/.idea/sonarlint/issuestore/9/d/9dbe73b411fb77d236219bae9da8525f142f9b73
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/a/4/a446c87b1013132f8adaf83656b582028e8809af b/.idea/sonarlint/issuestore/a/4/a446c87b1013132f8adaf83656b582028e8809af
new file mode 100644
index 0000000..9975d96
--- /dev/null
+++ b/.idea/sonarlint/issuestore/a/4/a446c87b1013132f8adaf83656b582028e8809af
@@ -0,0 +1,15 @@
+
+k java:S116w"VRename this field "TEXT_FORMAT" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ћ
+i
+java:S3776"RRefactor this method to reduce its Cognitive Complexity from 27 to the 15 allowed.(
+h
+java:S3776"RRefactor this method to reduce its Cognitive Complexity from 23 to the 15 allowed.(
+\
+java:S2147"ECombine this catch with the one at line 301, which has the same body.(ߝȴ
+\
+java:S2147"ECombine this catch with the one at line 334, which has the same body.(ﭣ
+] java:S899"BDo something with the "boolean" value returned by "createNewFile".(А
+?
+java:S3398"#Move this method into "TextExport".(
+9
+java:S3398H"#Move this method into "TextExport".(
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/a/5/a5deab8a7a2cdb1cdc00e34cf882d28fd0f00c28 b/.idea/sonarlint/issuestore/a/5/a5deab8a7a2cdb1cdc00e34cf882d28fd0f00c28
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/a/7/a7641cfac724321d508c2a284223a711011a93f5 b/.idea/sonarlint/issuestore/a/7/a7641cfac724321d508c2a284223a711011a93f5
new file mode 100644
index 0000000..7181765
--- /dev/null
+++ b/.idea/sonarlint/issuestore/a/7/a7641cfac724321d508c2a284223a711011a93f5
@@ -0,0 +1,13 @@
+
+f
+java:S11929"KDefine a constant instead of duplicating this literal "content://" 4 times.(
+U
+java:S11181":Add a private constructor to hide the implicit public one.(͓
+^
+java:S1214@"CMove constants defined in this interfaces to another class or enum.(⸫
+Z
+java:S1214"CMove constants defined in this interfaces to another class or enum.(
+V
+java:S1118":Add a private constructor to hide the implicit public one.(
+Q
+java:S1118":Add a private constructor to hide the implicit public one.(߀
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/a/7/a776bfcfd1e96d15feaf2298b0b92948bb96533f b/.idea/sonarlint/issuestore/a/7/a776bfcfd1e96d15feaf2298b0b92948bb96533f
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/a/b/ab153b0256bc5f6c194e188cec0b8e327e347a90 b/.idea/sonarlint/issuestore/a/b/ab153b0256bc5f6c194e188cec0b8e327e347a90
new file mode 100644
index 0000000..d470860
--- /dev/null
+++ b/.idea/sonarlint/issuestore/a/b/ab153b0256bc5f6c194e188cec0b8e327e347a90
@@ -0,0 +1,43 @@
+
+o
+java:S2293]"YReplace the type specification in this constructor call with the diamond operator ("<>").(
+t
+java:S2293^"YReplace the type specification in this constructor call with the diamond operator ("<>").(
+t
+java:S2293_"YReplace the type specification in this constructor call with the diamond operator ("<>").(
+o
+java:S2293a"YReplace the type specification in this constructor call with the diamond operator ("<>").(
+t
+java:S2293b"YReplace the type specification in this constructor call with the diamond operator ("<>").(
+t
+java:S2293c"YReplace the type specification in this constructor call with the diamond operator ("<>").(
+]
+java:S1192"FDefine a constant instead of duplicating this literal " DESC" 3 times.(Ա
+K
+java:S1066"/Merge this if statement with the enclosing one.(
+K
+java:S1066"/Merge this if statement with the enclosing one.(˼֓
+i
+java:S3776"RRefactor this method to reduce its Cognitive Complexity from 29 to the 15 allowed.(þ
+I
+java:S1905"-Remove this unnecessary cast to "JSONObject".(`
+C
+java:S1905"-Remove this unnecessary cast to "JSONObject".(؛
+i
+java:S3776"RRefactor this method to reduce its Cognitive Complexity from 28 to the 15 allowed.(
+n
+java:S3776"RRefactor this method to reduce its Cognitive Complexity from 41 to the 15 allowed.(˰
+n
+java:S3776"RRefactor this method to reduce its Cognitive Complexity from 34 to the 15 allowed.(ɸ
+5
+java:S2129"Remove this "Long" constructor(ϭ
+C
+java:S1874",Remove this use of "Long"; it is deprecated.(ϭ
+n
+java:S3776"RRefactor this method to reduce its Cognitive Complexity from 20 to the 15 allowed.(ƶؠ
+G
+java:S1172"+Remove this unused method parameter "node".(ƶؠ
+C
+java:S1905"'Remove this unnecessary cast to "Node".(
+>
+java:S1905"'Remove this unnecessary cast to "Node".(
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/a/c/ac5e313f29cb4f0fad090fd0ffb56da5b70cb36a b/.idea/sonarlint/issuestore/a/c/ac5e313f29cb4f0fad090fd0ffb56da5b70cb36a
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/a/d/ad72331a1bed265bb9c0fe838faa74dbf69fce32 b/.idea/sonarlint/issuestore/a/d/ad72331a1bed265bb9c0fe838faa74dbf69fce32
new file mode 100644
index 0000000..f9dc9ac
--- /dev/null
+++ b/.idea/sonarlint/issuestore/a/d/ad72331a1bed265bb9c0fe838faa74dbf69fce32
@@ -0,0 +1,96 @@
+
+p
+java:S2293"YReplace the type specification in this constructor call with the diamond operator ("<>").(艥
+>
+java:S1604"(Make this anonymous inner class a lambda(̺V
+?
+java:S1604"(Make this anonymous inner class a lambda(ά
+?
+java:S1604"(Make this anonymous inner class a lambda(ܴ
+D
+java:S1604"(Make this anonymous inner class a lambda(
+?
+java:S1604"(Make this anonymous inner class a lambda(
+?
+java:S1604"(Make this anonymous inner class a lambda(۱
+?
+java:S1604"(Make this anonymous inner class a lambda(ά
+7
+java:S1116`"Remove this empty statement.(
+a
+java:S1124"EReorder the modifiers to comply with the Java Language Specification.(
+[
+java:S1124"EReorder the modifiers to comply with the Java Language Specification.(Ѿk
+n
+java:S3776"RRefactor this method to reduce its Cognitive Complexity from 17 to the 15 allowed.(
+2
+java:S3626"Remove this redundant jump.(݅
+2
+java:S3626"Remove this redundant jump.(݅
+2
+java:S3626"Remove this redundant jump.(݅
+P
+java:S1874"9Remove this use of "PreferenceManager"; it is deprecated.(
+Z
+java:S1874"CRemove this use of "getDefaultSharedPreferences"; it is deprecated.(
+N
+java:S1135"2Complete the task associated to this TODO comment.(̐
+F
+java:S2093"*Change this "try" to a try-with-resources.(
+o
+java:S1450"XRemove the "mMoveMenu" field and declare it as a local variable in the relevant methods.(
+n
+java:S3252"RUse static access with "android.widget.AbsListView" for "MultiChoiceModeListener".(
+N
+java:S1135"2Complete the task associated to this TODO comment.(
+N
+java:S1135"2Complete the task associated to this TODO comment.(
+U
+java:S1874"9Remove this use of "getDefaultDisplay"; it is deprecated.(ĸ
+M
+java:S1874"1Remove this use of "getHeight"; it is deprecated.(
+8
+java:S1116"Remove this empty statement.(
+i
+java:S3776"RRefactor this method to reduce its Cognitive Complexity from 20 to the 15 allowed.(
+C
+java:S1874".Remove this use of ""; it is deprecated.(?
+? java:S108")Either remove or fill this block of code.(ʥ
+a
+java:S1874"JDon't override a deprecated method or explicitly mark it as "@Deprecated".(Ϳ
+K
+java:S1874"/Remove this use of "execute"; it is deprecated.(嫏
+R java:S125""; it is deprecated.(Ч
+f
+java:S1874"JDon't override a deprecated method or explicitly mark it as "@Deprecated".(ች
+K
+java:S1874"/Remove this use of "execute"; it is deprecated.(嫏
+h
+java:S3776"RRefactor this method to reduce its Cognitive Complexity from 18 to the 15 allowed.(b
+G
+java:S3398"0Move this method into "OnListItemClickListener".(
+K
+java:S3398"/Move this method into "BackgroundQueryHandler".(
+<
+java:S3398"%Move this method into "ModeCallback".(
+A
+java:S3398"%Move this method into "ModeCallback".(
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/c/1/c182d0c9c237ea8a46a92ccaae9bb5c751923a88 b/.idea/sonarlint/issuestore/c/1/c182d0c9c237ea8a46a92ccaae9bb5c751923a88
new file mode 100644
index 0000000..c005de0
--- /dev/null
+++ b/.idea/sonarlint/issuestore/c/1/c182d0c9c237ea8a46a92ccaae9bb5c751923a88
@@ -0,0 +1,3 @@
+
+[
+java:S1124"EReorder the modifiers to comply with the Java Language Specification.(
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/c/3/c3c1811dec2dbad2deeafb9aad505ca9631da740 b/.idea/sonarlint/issuestore/c/3/c3c1811dec2dbad2deeafb9aad505ca9631da740
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/c/4/c42ad3cd6e664963fa1849c760a57d417d500ee7 b/.idea/sonarlint/issuestore/c/4/c42ad3cd6e664963fa1849c760a57d417d500ee7
new file mode 100644
index 0000000..9a59a4b
--- /dev/null
+++ b/.idea/sonarlint/issuestore/c/4/c42ad3cd6e664963fa1849c760a57d417d500ee7
@@ -0,0 +1,95 @@
+
+P
+java:S1118":Add a private constructor to hide the implicit public one.(
+`
+java:S1124"EReorder the modifiers to comply with the Java Language Specification.(
+[
+java:S1124"EReorder the modifiers to comply with the Java Language Specification.(㘱
+[
+java:S1124"EReorder the modifiers to comply with the Java Language Specification.(
+[
+java:S1124"EReorder the modifiers to comply with the Java Language Specification.(ρ
+`
+java:S1124"EReorder the modifiers to comply with the Java Language Specification.(Ɖ
+[
+java:S1124"EReorder the modifiers to comply with the Java Language Specification.(
+`
+java:S1124!"EReorder the modifiers to comply with the Java Language Specification.(
+[
+java:S1124#"EReorder the modifiers to comply with the Java Language Specification.(
+`
+java:S1124%"EReorder the modifiers to comply with the Java Language Specification.(
+`
+java:S1124'"EReorder the modifiers to comply with the Java Language Specification.(
+`
+java:S1124)"EReorder the modifiers to comply with the Java Language Specification.(۲
+`
+java:S1124+"EReorder the modifiers to comply with the Java Language Specification.(
+[
+java:S1124-"EReorder the modifiers to comply with the Java Language Specification.(
+[
+java:S1124/"EReorder the modifiers to comply with the Java Language Specification.(Ӎ
+[
+java:S11241"EReorder the modifiers to comply with the Java Language Specification.(
+[
+java:S11243"EReorder the modifiers to comply with the Java Language Specification.(̥
+[
+java:S11245"EReorder the modifiers to comply with the Java Language Specification.(Ƒ
+Z
+java:S11247"EReorder the modifiers to comply with the Java Language Specification.(
+`
+java:S11249"EReorder the modifiers to comply with the Java Language Specification.(
+Z
+java:S1124;"EReorder the modifiers to comply with the Java Language Specification.(K
+`
+java:S1124="EReorder the modifiers to comply with the Java Language Specification.(
+[
+java:S1124?"EReorder the modifiers to comply with the Java Language Specification.(֫
+Z
+java:S1124A"EReorder the modifiers to comply with the Java Language Specification.($
+[
+java:S1124C"EReorder the modifiers to comply with the Java Language Specification.(
+`
+java:S1124E"EReorder the modifiers to comply with the Java Language Specification.(
+[
+java:S1124G"EReorder the modifiers to comply with the Java Language Specification.(
+[
+java:S1124I"EReorder the modifiers to comply with the Java Language Specification.(
+`
+java:S1124K"EReorder the modifiers to comply with the Java Language Specification.(
+[
+java:S1124M"EReorder the modifiers to comply with the Java Language Specification.(
+`
+java:S1124O"EReorder the modifiers to comply with the Java Language Specification.(
+`
+java:S1124Q"EReorder the modifiers to comply with the Java Language Specification.(
+[
+java:S1124S"EReorder the modifiers to comply with the Java Language Specification.(
+[
+java:S1124U"EReorder the modifiers to comply with the Java Language Specification.(ʹ
+`
+java:S1124W"EReorder the modifiers to comply with the Java Language Specification.(ԣ
+[
+java:S1124Y"EReorder the modifiers to comply with the Java Language Specification.(
+`
+java:S1124["EReorder the modifiers to comply with the Java Language Specification.(Ō
+`
+java:S1124]"EReorder the modifiers to comply with the Java Language Specification.(Ȩ
+[
+java:S1124_"EReorder the modifiers to comply with the Java Language Specification.(
+[
+java:S1124a"EReorder the modifiers to comply with the Java Language Specification.(̀
+`
+java:S1124c"EReorder the modifiers to comply with the Java Language Specification.(â
+`
+java:S1124e"EReorder the modifiers to comply with the Java Language Specification.(
+[
+java:S1124g"EReorder the modifiers to comply with the Java Language Specification.(ƒ
+`
+java:S1124i"EReorder the modifiers to comply with the Java Language Specification.(
+`
+java:S1124k"EReorder the modifiers to comply with the Java Language Specification.(
+Z
+java:S1124m"EReorder the modifiers to comply with the Java Language Specification.(-
+`
+java:S1124o"EReorder the modifiers to comply with the Java Language Specification.(
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/c/6/c65f5dc8218ef1da6f6bfb5d1b14aea855a54d7f b/.idea/sonarlint/issuestore/c/6/c65f5dc8218ef1da6f6bfb5d1b14aea855a54d7f
new file mode 100644
index 0000000..4c37674
--- /dev/null
+++ b/.idea/sonarlint/issuestore/c/6/c65f5dc8218ef1da6f6bfb5d1b14aea855a54d7f
@@ -0,0 +1,35 @@
+
+P
+java:S1118":Add a private constructor to hide the implicit public one.(ڦ
+P
+java:S1118*":Add a private constructor to hide the implicit public one.(
+[
+java:S1124+"EReorder the modifiers to comply with the Java Language Specification.(Ɠ
+`
+java:S11243"EReorder the modifiers to comply with the Java Language Specification.(
+O
+java:S1874E"9Remove this use of "PreferenceManager"; it is deprecated.(
+Y
+java:S1874E"CRemove this use of "getDefaultSharedPreferences"; it is deprecated.(
+D
+java:S2140G")Use "java.util.Random.nextInt()" instead.(
+U
+java:S1118M":Add a private constructor to hide the implicit public one.(Ū
+`
+java:S1124N"EReorder the modifiers to comply with the Java Language Specification.(
+`
+java:S1124V"EReorder the modifiers to comply with the Java Language Specification.(
+`
+java:S1124^"EReorder the modifiers to comply with the Java Language Specification.(
+[
+java:S1124f"EReorder the modifiers to comply with the Java Language Specification.(ɜ
+Q
+java:S1118":Add a private constructor to hide the implicit public one.(ֹ
+a
+java:S1124"EReorder the modifiers to comply with the Java Language Specification.(
+a
+java:S1124"EReorder the modifiers to comply with the Java Language Specification.(
+V
+java:S1118":Add a private constructor to hide the implicit public one.(
+\
+java:S1124"EReorder the modifiers to comply with the Java Language Specification.(
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/c/b/cbb9789871b962d17154fb6e10d5d57c0386bae5 b/.idea/sonarlint/issuestore/c/b/cbb9789871b962d17154fb6e10d5d57c0386bae5
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/d/1/d187f1271655c3d91661a39fe6de395b6a9f290a b/.idea/sonarlint/issuestore/d/1/d187f1271655c3d91661a39fe6de395b6a9f290a
new file mode 100644
index 0000000..0e25932
--- /dev/null
+++ b/.idea/sonarlint/issuestore/d/1/d187f1271655c3d91661a39fe6de395b6a9f290a
@@ -0,0 +1,5 @@
+
+\
+java:S2259"@A "NullPointerException" could be thrown; "js" is nullable here.(
+i
+java:S3776"RRefactor this method to reduce its Cognitive Complexity from 16 to the 15 allowed.(ǎ
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/d/1/d1cc822fa9d783a8d4563bf6e139b7ae10de2fb1 b/.idea/sonarlint/issuestore/d/1/d1cc822fa9d783a8d4563bf6e139b7ae10de2fb1
new file mode 100644
index 0000000..e52aead
--- /dev/null
+++ b/.idea/sonarlint/issuestore/d/1/d1cc822fa9d783a8d4563bf6e139b7ae10de2fb1
@@ -0,0 +1,3 @@
+
+>
+java:S1604)"(Make this anonymous inner class a lambda(ʩ
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/d/1/d1d5c2a21bcee2c42fb71e493be5fa068951f155 b/.idea/sonarlint/issuestore/d/1/d1d5c2a21bcee2c42fb71e493be5fa068951f155
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/d/2/d2281fbb3027de2722081a53408dd77628bf080e b/.idea/sonarlint/issuestore/d/2/d2281fbb3027de2722081a53408dd77628bf080e
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/d/5/d523c5f9a544775535a62275862e5be71ba0775f b/.idea/sonarlint/issuestore/d/5/d523c5f9a544775535a62275862e5be71ba0775f
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/d/6/d6094f02d3b882a8697c1462f3a5861b9b883946 b/.idea/sonarlint/issuestore/d/6/d6094f02d3b882a8697c1462f3a5861b9b883946
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/d/8/d817b9340a5ced71d122f66b8d29cf7d6dfa79ab b/.idea/sonarlint/issuestore/d/8/d817b9340a5ced71d122f66b8d29cf7d6dfa79ab
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/d/a/da57ce446af85bbd9aefee65e969869f0cff78b0 b/.idea/sonarlint/issuestore/d/a/da57ce446af85bbd9aefee65e969869f0cff78b0
new file mode 100644
index 0000000..1d90a67
--- /dev/null
+++ b/.idea/sonarlint/issuestore/d/a/da57ce446af85bbd9aefee65e969869f0cff78b0
@@ -0,0 +1,59 @@
+
+?
+java:S1604"(Make this anonymous inner class a lambda(
+?
+java:S1604"(Make this anonymous inner class a lambda(ܨ
+?
+java:S1604"(Make this anonymous inner class a lambda(ܨ
+?
+java:S1604"(Make this anonymous inner class a lambda(ά
+?
+java:S1604"(Make this anonymous inner class a lambda(څ
+?
+java:S1604"(Make this anonymous inner class a lambda(
+?
+java:S1604"(Make this anonymous inner class a lambda(î
+?
+java:S1604"(Make this anonymous inner class a lambda(î
+g
+java:S1301"KReplace this "switch" statement by "if" statements to increase readability.(崡
+U
+java:S18743":Remove this use of "PreferenceActivity"; it is deprecated.(
+P
+java:S1874@":Remove this use of "PreferenceCategory"; it is deprecated.(Θ
+`
+java:S1874I"JDon't override a deprecated method or explicitly mark it as "@Deprecated".(Θ
+K
+java:S1874J"0Remove this use of "onCreate"; it is deprecated.(ȢՖ
+P
+java:S1874P":Remove this use of "PreferenceCategory"; it is deprecated.(
+L
+java:S1874P"6Remove this use of "findPreference"; it is deprecated.(
+I
+java:S1874X"3Remove this use of "getListView"; it is deprecated.(د
+h
+java:S3776\"RRefactor this method to reduce its Cognitive Complexity from 20 to the 15 allowed.(٫
+`
+java:S1874x"JDon't override a deprecated method or explicitly mark it as "@Deprecated".(
+G
+java:S1874|"1Remove this use of "onDestroy"; it is deprecated.(ʷ
+H
+java:S1874"1Remove this use of "removeAll"; it is deprecated.(
+N
+java:S1874"2Remove this use of "Preference"; it is deprecated.(
+N
+java:S1874"2Remove this use of "Preference"; it is deprecated.(
+G
+java:S1874"0Remove this use of "setTitle"; it is deprecated.(
+N
+java:S1874"2Remove this use of "setSummary"; it is deprecated.(
+[
+java:S1874"DRemove this use of "setOnPreferenceClickListener"; it is deprecated.(
+N
+java:S1874"2Remove this use of "Preference"; it is deprecated.(
+Q
+java:S1874"5Remove this use of "addPreference"; it is deprecated.(ن
+a
+java:S1874"JDon't override a deprecated method or explicitly mark it as "@Deprecated".(
+Q
+java:S1161":Add the "@Override" annotation above this method signature(
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/d/c/dcbf3204de74b48a299a1133f01f78857e115ba2 b/.idea/sonarlint/issuestore/d/c/dcbf3204de74b48a299a1133f01f78857e115ba2
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/d/d/dd970bd8ce083850fca1d4d159647ccd110e57cb b/.idea/sonarlint/issuestore/d/d/dd970bd8ce083850fca1d4d159647ccd110e57cb
new file mode 100644
index 0000000..5405687
--- /dev/null
+++ b/.idea/sonarlint/issuestore/d/d/dd970bd8ce083850fca1d4d159647ccd110e57cb
@@ -0,0 +1,15 @@
+
+u
+java:S2293"YReplace the type specification in this constructor call with the diamond operator ("<>").(л
+j
+java:S1192?"ODefine a constant instead of duplicating this literal "Wrong note id:" 3 times.(
+O
+java:S2589"8Remove this expression which always evaluates to "false"(
+\
+java:S1126}"AReplace this if-then-else statement by a single return statement.(Ʒ
+i
+java:S3776"RRefactor this method to reduce its Cognitive Complexity from 23 to the 15 allowed.(
+U
+java:S1155">Use isEmpty() to check whether the collection is empty or not.(
+\
+java:S2147"ECombine this catch with the one at line 242, which has the same body.(暩
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/d/e/de9bd32c86ad3a18c044f9da0ae3a85c009232b0 b/.idea/sonarlint/issuestore/d/e/de9bd32c86ad3a18c044f9da0ae3a85c009232b0
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/e/0/e094aec5c3e1b6f44539adff3114f5a1ad603ddc b/.idea/sonarlint/issuestore/e/0/e094aec5c3e1b6f44539adff3114f5a1ad603ddc
new file mode 100644
index 0000000..9c7dfdf
--- /dev/null
+++ b/.idea/sonarlint/issuestore/e/0/e094aec5c3e1b6f44539adff3114f5a1ad603ddc
@@ -0,0 +1,9 @@
+
+t
+java:S2293*"YReplace the type specification in this constructor call with the diamond operator ("<>").(ʩ
+
+java:S1319"pThe return type of this method should be an interface such as "List" rather than the implementation "ArrayList".(ﷺ
+\
+java:S2259"@A "NullPointerException" could be thrown; "js" is nullable here.(
+r
+java:S3923"[Remove this conditional structure or edit its code blocks so that they're not all the same.(ԡ
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/e/4/e4a661e5de29d26ae56c43e59869580039c078be b/.idea/sonarlint/issuestore/e/4/e4a661e5de29d26ae56c43e59869580039c078be
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/f/0/f087b1ba1b9c91b7293fea0fb071eaed62a42137 b/.idea/sonarlint/issuestore/f/0/f087b1ba1b9c91b7293fea0fb071eaed62a42137
new file mode 100644
index 0000000..86a5121
--- /dev/null
+++ b/.idea/sonarlint/issuestore/f/0/f087b1ba1b9c91b7293fea0fb071eaed62a42137
@@ -0,0 +1,27 @@
+
+>
+java:S1604/"(Make this anonymous inner class a lambda(ю
+`
+java:S1124"EReorder the modifiers to comply with the Java Language Specification.(֖
+`
+java:S1124"EReorder the modifiers to comply with the Java Language Specification.(Ų
+`
+java:S1124"EReorder the modifiers to comply with the Java Language Specification.(ز
+`
+java:S1124!"EReorder the modifiers to comply with the Java Language Specification.(
+[
+java:S1124#"EReorder the modifiers to comply with the Java Language Specification.(ճ
+[
+java:S1124%"EReorder the modifiers to comply with the Java Language Specification.(ߪ
+[
+java:S1124'"EReorder the modifiers to comply with the Java Language Specification.(
+L
+java:S2696/"6Make the enclosing method "static" or remove this set.(ю
+L
+java:S26961"6Make the enclosing method "static" or remove this set.(
+E
+java:S18747"/Remove this use of "execute"; it is deprecated.(
+L
+java:S2696C"6Make the enclosing method "static" or remove this set.(
+K
+java:S2696e"6Make the enclosing method "static" or remove this set.(
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/f/1/f1226eeacd46c914d51f3d1a6d6f27377490d2a4 b/.idea/sonarlint/issuestore/f/1/f1226eeacd46c914d51f3d1a6d6f27377490d2a4
new file mode 100644
index 0000000..4c8c98f
--- /dev/null
+++ b/.idea/sonarlint/issuestore/f/1/f1226eeacd46c914d51f3d1a6d6f27377490d2a4
@@ -0,0 +1,15 @@
+
+u
+java:S2293"YReplace the type specification in this constructor call with the diamond operator ("<>").(
+u
+java:S2293"YReplace the type specification in this constructor call with the diamond operator ("<>").(
+u
+java:S2293"YReplace the type specification in this constructor call with the diamond operator ("<>").(
+2
+java:S2386."Make this member "protected".(u
+n
+java:S3776"RRefactor this method to reduce its Cognitive Complexity from 91 to the 15 allowed.(
+h
+java:S3776"RRefactor this method to reduce its Cognitive Complexity from 32 to the 15 allowed.(
+
+java:S6541"A "Brain Method" was detected. Refactor it to reduce at least one of the following metrics: LOC from 116 to 64, Complexity from 51 to 14, Nesting Level from 6 to 2, Number of Variables from 23 to 6.(
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/f/7/f79cc2688e29fcbc286fda14ae07b27c9e83690f b/.idea/sonarlint/issuestore/f/7/f79cc2688e29fcbc286fda14ae07b27c9e83690f
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/f/8/f880b4c44bb5d5a1db0a68dac9a41bede6b8374c b/.idea/sonarlint/issuestore/f/8/f880b4c44bb5d5a1db0a68dac9a41bede6b8374c
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/f/9/f9357c93c5b5b86ae4f3363d3fe76860a1007f91 b/.idea/sonarlint/issuestore/f/9/f9357c93c5b5b86ae4f3363d3fe76860a1007f91
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/f/9/f9f49497f95afd327db7a7a512612aa1089003d4 b/.idea/sonarlint/issuestore/f/9/f9f49497f95afd327db7a7a512612aa1089003d4
new file mode 100644
index 0000000..fafb6c2
--- /dev/null
+++ b/.idea/sonarlint/issuestore/f/9/f9f49497f95afd327db7a7a512612aa1089003d4
@@ -0,0 +1,7 @@
+
+3
+java:S2386!"Make this member "protected".(Ꙗ
+D
+java:S1874*".Remove this use of ""; it is deprecated.(ж
+M
+java:S1135+"2Complete the task associated to this TODO comment.(
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/index.pb b/.idea/sonarlint/issuestore/index.pb
new file mode 100644
index 0000000..9afd6cd
--- /dev/null
+++ b/.idea/sonarlint/issuestore/index.pb
@@ -0,0 +1,159 @@
+
+r
+Bapp/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java,d\a\da57ce446af85bbd9aefee65e969869f0cff78b0
+b
+2app/src/main/java/net/micode/notes/data/Notes.java,a\7\a7641cfac724321d508c2a284223a711011a93f5
+k
+;app/src/main/java/net/micode/notes/ui/NoteEditActivity.java,5\7\577f30d26378ec8a2bd2e4a43f3c79b3f04c402c
+d
+4app/src/main/java/net/micode/notes/data/Contact.java,9\a\9a3a19793537958b8b1b03a81985999e22705a2f
+Y
+)app/src/main/res/values-zh-rCN/arrays.xml,d\6\d6094f02d3b882a8697c1462f3a5861b9b883946
+k
+;app/src/main/java/net/micode/notes/gtask/data/TaskList.java,e\0\e094aec5c3e1b6f44539adff3114f5a1ad603ddc
+g
+7app/src/main/java/net/micode/notes/gtask/data/Task.java,d\1\d187f1271655c3d91661a39fe6de395b6a9f290a
+j
+:app/src/main/java/net/micode/notes/gtask/data/SqlNote.java,f\1\f1226eeacd46c914d51f3d1a6d6f27377490d2a4
+j
+:app/src/main/java/net/micode/notes/gtask/data/SqlData.java,9\3\934a4e2abf19d28a53f6aeb1dcd99248c44b6892
+g
+7app/src/main/java/net/micode/notes/gtask/data/Node.java,3\a\3aac5305cb73bfbdeb8078cd264d04323fa80e92
+k
+;app/src/main/java/net/micode/notes/gtask/data/MetaData.java,c\1\c182d0c9c237ea8a46a92ccaae9bb5c751923a88
+Z
+*app/src/main/res/values-zh-rTW/strings.xml,c\b\cbb9789871b962d17154fb6e10d5d57c0386bae5
+Y
+)app/src/main/res/values-zh-rTW/arrays.xml,7\8\78b400021a4b67de1cb9c996b2d32e042fc1fec3
+q
+Aapp/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java,a\b\ab153b0256bc5f6c194e188cec0b8e327e347a90
+u
+Eapp/src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java,f\0\f087b1ba1b9c91b7293fea0fb071eaed62a42137
+[
++app/src/main/res/layout/datetime_picker.xml,5\c\5c5b5eab7e2212ceb1df9a9df360f7b74086f035
+`
+0app/src/main/res/layout/account_dialog_title.xml,9\b\9bff80af6e3e79adb83d5133a046b17b4df93efe
+_
+/app/src/main/res/layout/note_edit_list_item.xml,f\8\f880b4c44bb5d5a1db0a68dac9a41bede6b8374c
+U
+%app/src/main/res/layout/widget_4x.xml,3\1\3187a48b72709826e298c008a0076f24e6739bb9
+U
+%app/src/main/res/layout/note_item.xml,6\d\6ddcb085768c932a738db492683008cbdb890323
+\
+,app/src/main/res/layout/add_account_text.xml,d\e\de9bd32c86ad3a18c044f9da0ae3a85c009232b0
+\
+,app/src/main/res/layout/note_list_footer.xml,a\7\a776bfcfd1e96d15feaf2298b0b92948bb96533f
+c
+3app/src/main/res/layout/note_list_dropdown_menu.xml,9\d\9dbe73b411fb77d236219bae9da8525f142f9b73
+\
+,app/src/main/res/layout/folder_list_item.xml,a\c\ac5e313f29cb4f0fad090fd0ffb56da5b70cb36a
+~
+Napp/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java,5\f\5f6162ca79fcea353b280c5dc84973a9c37d2c74
+U
+%app/src/main/res/layout/note_edit.xml,9\7\97872a23506db5ffaa04e04bd96b003493352c30
+\
+,app/src/main/res/layout/dialog_edit_text.xml,9\b\9b09a4d37e3aec64adadab801bb8fec4165ad88f
+
+Oapp/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java,0\f\0f0f0549145d0e2bfb972ba1ed2e2c38bfd6d1b1
+[
++app/src/main/res/layout/settings_header.xml,0\1\0141ed096ee7cdbb52dc6a8b0e8eae49847eb64a
+U
+%app/src/main/res/layout/widget_2x.xml,d\1\d1d5c2a21bcee2c42fb71e493be5fa068951f155
+Q
+!app/src/main/res/raw/introduction,3\3\332c6f3d75926e4702a2bec3dcc4f101b096d5a2
+m
+=app/src/main/java/net/micode/notes/ui/FoldersListAdapter.java,f\9\f9f49497f95afd327db7a7a512612aa1089003d4
+U
+%app/src/main/res/layout/note_list.xml,3\5\35a9534af99716b62a1b2f926cda2640ed66437c
+l
+
+
+
+
+
+
\ No newline at end of file
diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100644
index 0000000..32f01ed
--- /dev/null
+++ b/LICENSE.txt
@@ -0,0 +1,558 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+=========================================================================
+
+This project includes Public Suffix List copied from
+
+licensed under the terms of the Mozilla Public License, v. 2.0
+
+Full license text:
+
+Mozilla Public License Version 2.0
+==================================
+
+1. Definitions
+--------------
+
+1.1. "Contributor"
+ means each individual or legal entity that creates, contributes to
+ the creation of, or owns Covered Software.
+
+1.2. "Contributor Version"
+ means the combination of the Contributions of others (if any) used
+ by a Contributor and that particular Contributor's Contribution.
+
+1.3. "Contribution"
+ means Covered Software of a particular Contributor.
+
+1.4. "Covered Software"
+ means Source Code Form to which the initial Contributor has attached
+ the notice in Exhibit A, the Executable Form of such Source Code
+ Form, and Modifications of such Source Code Form, in each case
+ including portions thereof.
+
+1.5. "Incompatible With Secondary Licenses"
+ means
+
+ (a) that the initial Contributor has attached the notice described
+ in Exhibit B to the Covered Software; or
+
+ (b) that the Covered Software was made available under the terms of
+ version 1.1 or earlier of the License, but not also under the
+ terms of a Secondary License.
+
+1.6. "Executable Form"
+ means any form of the work other than Source Code Form.
+
+1.7. "Larger Work"
+ means a work that combines Covered Software with other material, in
+ a separate file or files, that is not Covered Software.
+
+1.8. "License"
+ means this document.
+
+1.9. "Licensable"
+ means having the right to grant, to the maximum extent possible,
+ whether at the time of the initial grant or subsequently, any and
+ all of the rights conveyed by this License.
+
+1.10. "Modifications"
+ means any of the following:
+
+ (a) any file in Source Code Form that results from an addition to,
+ deletion from, or modification of the contents of Covered
+ Software; or
+
+ (b) any new file in Source Code Form that contains any Covered
+ Software.
+
+1.11. "Patent Claims" of a Contributor
+ means any patent claim(s), including without limitation, method,
+ process, and apparatus claims, in any patent Licensable by such
+ Contributor that would be infringed, but for the grant of the
+ License, by the making, using, selling, offering for sale, having
+ made, import, or transfer of either its Contributions or its
+ Contributor Version.
+
+1.12. "Secondary License"
+ means either the GNU General Public License, Version 2.0, the GNU
+ Lesser General Public License, Version 2.1, the GNU Affero General
+ Public License, Version 3.0, or any later versions of those
+ licenses.
+
+1.13. "Source Code Form"
+ means the form of the work preferred for making modifications.
+
+1.14. "You" (or "Your")
+ means an individual or a legal entity exercising rights under this
+ License. For legal entities, "You" includes any entity that
+ controls, is controlled by, or is under common control with You. For
+ purposes of this definition, "control" means (a) the power, direct
+ or indirect, to cause the direction or management of such entity,
+ whether by contract or otherwise, or (b) ownership of more than
+ fifty percent (50%) of the outstanding shares or beneficial
+ ownership of such entity.
+
+2. License Grants and Conditions
+--------------------------------
+
+2.1. Grants
+
+Each Contributor hereby grants You a world-wide, royalty-free,
+non-exclusive license:
+
+(a) under intellectual property rights (other than patent or trademark)
+ Licensable by such Contributor to use, reproduce, make available,
+ modify, display, perform, distribute, and otherwise exploit its
+ Contributions, either on an unmodified basis, with Modifications, or
+ as part of a Larger Work; and
+
+(b) under Patent Claims of such Contributor to make, use, sell, offer
+ for sale, have made, import, and otherwise transfer either its
+ Contributions or its Contributor Version.
+
+2.2. Effective Date
+
+The licenses granted in Section 2.1 with respect to any Contribution
+become effective for each Contribution on the date the Contributor first
+distributes such Contribution.
+
+2.3. Limitations on Grant Scope
+
+The licenses granted in this Section 2 are the only rights granted under
+this License. No additional rights or licenses will be implied from the
+distribution or licensing of Covered Software under this License.
+Notwithstanding Section 2.1(b) above, no patent license is granted by a
+Contributor:
+
+(a) for any code that a Contributor has removed from Covered Software;
+ or
+
+(b) for infringements caused by: (i) Your and any other third party's
+ modifications of Covered Software, or (ii) the combination of its
+ Contributions with other software (except as part of its Contributor
+ Version); or
+
+(c) under Patent Claims infringed by Covered Software in the absence of
+ its Contributions.
+
+This License does not grant any rights in the trademarks, service marks,
+or logos of any Contributor (except as may be necessary to comply with
+the notice requirements in Section 3.4).
+
+2.4. Subsequent Licenses
+
+No Contributor makes additional grants as a result of Your choice to
+distribute the Covered Software under a subsequent version of this
+License (see Section 10.2) or under the terms of a Secondary License (if
+permitted under the terms of Section 3.3).
+
+2.5. Representation
+
+Each Contributor represents that the Contributor believes its
+Contributions are its original creation(s) or it has sufficient rights
+to grant the rights to its Contributions conveyed by this License.
+
+2.6. Fair Use
+
+This License is not intended to limit any rights You have under
+applicable copyright doctrines of fair use, fair dealing, or other
+equivalents.
+
+2.7. Conditions
+
+Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
+in Section 2.1.
+
+3. Responsibilities
+-------------------
+
+3.1. Distribution of Source Form
+
+All distribution of Covered Software in Source Code Form, including any
+Modifications that You create or to which You contribute, must be under
+the terms of this License. You must inform recipients that the Source
+Code Form of the Covered Software is governed by the terms of this
+License, and how they can obtain a copy of this License. You may not
+attempt to alter or restrict the recipients' rights in the Source Code
+Form.
+
+3.2. Distribution of Executable Form
+
+If You distribute Covered Software in Executable Form then:
+
+(a) such Covered Software must also be made available in Source Code
+ Form, as described in Section 3.1, and You must inform recipients of
+ the Executable Form how they can obtain a copy of such Source Code
+ Form by reasonable means in a timely manner, at a charge no more
+ than the cost of distribution to the recipient; and
+
+(b) You may distribute such Executable Form under the terms of this
+ License, or sublicense it under different terms, provided that the
+ license for the Executable Form does not attempt to limit or alter
+ the recipients' rights in the Source Code Form under this License.
+
+3.3. Distribution of a Larger Work
+
+You may create and distribute a Larger Work under terms of Your choice,
+provided that You also comply with the requirements of this License for
+the Covered Software. If the Larger Work is a combination of Covered
+Software with a work governed by one or more Secondary Licenses, and the
+Covered Software is not Incompatible With Secondary Licenses, this
+License permits You to additionally distribute such Covered Software
+under the terms of such Secondary License(s), so that the recipient of
+the Larger Work may, at their option, further distribute the Covered
+Software under the terms of either this License or such Secondary
+License(s).
+
+3.4. Notices
+
+You may not remove or alter the substance of any license notices
+(including copyright notices, patent notices, disclaimers of warranty,
+or limitations of liability) contained within the Source Code Form of
+the Covered Software, except that You may alter any license notices to
+the extent required to remedy known factual inaccuracies.
+
+3.5. Application of Additional Terms
+
+You may choose to offer, and to charge a fee for, warranty, support,
+indemnity or liability obligations to one or more recipients of Covered
+Software. However, You may do so only on Your own behalf, and not on
+behalf of any Contributor. You must make it absolutely clear that any
+such warranty, support, indemnity, or liability obligation is offered by
+You alone, and You hereby agree to indemnify every Contributor for any
+liability incurred by such Contributor as a result of warranty, support,
+indemnity or liability terms You offer. You may include additional
+disclaimers of warranty and limitations of liability specific to any
+jurisdiction.
+
+4. Inability to Comply Due to Statute or Regulation
+---------------------------------------------------
+
+If it is impossible for You to comply with any of the terms of this
+License with respect to some or all of the Covered Software due to
+statute, judicial order, or regulation then You must: (a) comply with
+the terms of this License to the maximum extent possible; and (b)
+describe the limitations and the code they affect. Such description must
+be placed in a text file included with all distributions of the Covered
+Software under this License. Except to the extent prohibited by statute
+or regulation, such description must be sufficiently detailed for a
+recipient of ordinary skill to be able to understand it.
+
+5. Termination
+--------------
+
+5.1. The rights granted under this License will terminate automatically
+if You fail to comply with any of its terms. However, if You become
+compliant, then the rights granted under this License from a particular
+Contributor are reinstated (a) provisionally, unless and until such
+Contributor explicitly and finally terminates Your grants, and (b) on an
+ongoing basis, if such Contributor fails to notify You of the
+non-compliance by some reasonable means prior to 60 days after You have
+come back into compliance. Moreover, Your grants from a particular
+Contributor are reinstated on an ongoing basis if such Contributor
+notifies You of the non-compliance by some reasonable means, this is the
+first time You have received notice of non-compliance with this License
+from such Contributor, and You become compliant prior to 30 days after
+Your receipt of the notice.
+
+5.2. If You initiate litigation against any entity by asserting a patent
+infringement claim (excluding declaratory judgment actions,
+counter-claims, and cross-claims) alleging that a Contributor Version
+directly or indirectly infringes any patent, then the rights granted to
+You by any and all Contributors for the Covered Software under Section
+2.1 of this License shall terminate.
+
+5.3. In the event of termination under Sections 5.1 or 5.2 above, all
+end user license agreements (excluding distributors and resellers) which
+have been validly granted by You or Your distributors under this License
+prior to termination shall survive termination.
+
+************************************************************************
+* *
+* 6. Disclaimer of Warranty *
+* ------------------------- *
+* *
+* Covered Software is provided under this License on an "as is" *
+* basis, without warranty of any kind, either expressed, implied, or *
+* statutory, including, without limitation, warranties that the *
+* Covered Software is free of defects, merchantable, fit for a *
+* particular purpose or non-infringing. The entire risk as to the *
+* quality and performance of the Covered Software is with You. *
+* Should any Covered Software prove defective in any respect, You *
+* (not any Contributor) assume the cost of any necessary servicing, *
+* repair, or correction. This disclaimer of warranty constitutes an *
+* essential part of this License. No use of any Covered Software is *
+* authorized under this License except under this disclaimer. *
+* *
+************************************************************************
+
+************************************************************************
+* *
+* 7. Limitation of Liability *
+* -------------------------- *
+* *
+* Under no circumstances and under no legal theory, whether tort *
+* (including negligence), contract, or otherwise, shall any *
+* Contributor, or anyone who distributes Covered Software as *
+* permitted above, be liable to You for any direct, indirect, *
+* special, incidental, or consequential damages of any character *
+* including, without limitation, damages for lost profits, loss of *
+* goodwill, work stoppage, computer failure or malfunction, or any *
+* and all other commercial damages or losses, even if such party *
+* shall have been informed of the possibility of such damages. This *
+* limitation of liability shall not apply to liability for death or *
+* personal injury resulting from such party's negligence to the *
+* extent applicable law prohibits such limitation. Some *
+* jurisdictions do not allow the exclusion or limitation of *
+* incidental or consequential damages, so this exclusion and *
+* limitation may not apply to You. *
+* *
+************************************************************************
+
+8. Litigation
+-------------
+
+Any litigation relating to this License may be brought only in the
+courts of a jurisdiction where the defendant maintains its principal
+place of business and such litigation shall be governed by laws of that
+jurisdiction, without reference to its conflict-of-law provisions.
+Nothing in this Section shall prevent a party's ability to bring
+cross-claims or counter-claims.
+
+9. Miscellaneous
+----------------
+
+This License represents the complete agreement concerning the subject
+matter hereof. If any provision of this License is held to be
+unenforceable, such provision shall be reformed only to the extent
+necessary to make it enforceable. Any law or regulation which provides
+that the language of a contract shall be construed against the drafter
+shall not be used to construe this License against a Contributor.
+
+10. Versions of the License
+---------------------------
+
+10.1. New Versions
+
+Mozilla Foundation is the license steward. Except as provided in Section
+10.3, no one other than the license steward has the right to modify or
+publish new versions of this License. Each version will be given a
+distinguishing version number.
+
+10.2. Effect of New Versions
+
+You may distribute the Covered Software under the terms of the version
+of the License under which You originally received the Covered Software,
+or under the terms of any subsequent version published by the license
+steward.
+
+10.3. Modified Versions
+
+If you create software not governed by this License, and you want to
+create a new license for such software, you may create and use a
+modified version of this License if you rename the license and remove
+any references to the name of the license steward (except to note that
+such modified license differs from this License).
+
+10.4. Distributing Source Code Form that is Incompatible With Secondary
+Licenses
+
+If You choose to distribute Source Code Form that is Incompatible With
+Secondary Licenses under the terms of this version of the License, the
+notice described in Exhibit B of this License must be attached.
+
+Exhibit A - Source Code Form License Notice
+-------------------------------------------
+
+ This Source Code Form is subject to the terms of the Mozilla Public
+ License, v. 2.0. If a copy of the MPL was not distributed with this
+ file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+If it is not possible or desirable to put the notice in a particular
+file, then You may include the notice in a location (such as a LICENSE
+file in a relevant directory) where a recipient would be likely to look
+for such a notice.
+
+You may add additional accurate notices of copyright ownership.
+
+Exhibit B - "Incompatible With Secondary Licenses" Notice
+---------------------------------------------------------
+
+ This Source Code Form is "Incompatible With Secondary Licenses", as
+ defined by the Mozilla Public License, v. 2.0.
diff --git a/NOTICE.txt b/NOTICE.txt
new file mode 100644
index 0000000..10a2916
--- /dev/null
+++ b/NOTICE.txt
@@ -0,0 +1,6 @@
+Apache HttpComponents Client
+Copyright 1999-2021 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt
new file mode 100644
index 0000000..c1f0a0f
--- /dev/null
+++ b/RELEASE_NOTES.txt
@@ -0,0 +1,2613 @@
+Release 4.5.14
+-------------------
+
+This is a maintenance release that fixes several minor bugs reported discovered since
+the 4.5.13 release.
+
+
+Changelog:
+-------------------
+
+* HTTPCLIENT-2206: Corrected resource de-allocation by fluent response objects.
+ Contributed by Oleg Kalnichevski
+
+* HTTPCLIENT-2174: URIBuilder to return a new empty list instead of unmodifiable
+ Collections#emptyList.
+ Contributed by Oleg Kalnichevski
+
+* Don't retry requests in case of NoRouteToHostException.
+ Contributed by Jaikiran Pai
+
+* HTTPCLIENT-2144: RequestBuilder fails to correctly copy charset of requests with
+ form url-encoded body.
+ Contributed by Oleg Kalnichevski
+
+* PR #269: 4.5.x use array fill and more.
+ - Use Arrays.fill().
+ - Remove redundant modifiers.
+ - Use Collections.addAll() and Collection.addAll() APIs instead of loops.
+ - Remove redundant returns.
+ - No need to explicitly declare an array when calling a vararg method.
+ - Remote extra semicolons (;).
+ - Use a 'L' instead of 'l' to make long literals more readable.
+ Contributed by Gary Gregory
+
+* PublicSuffixListParser.parseByType(Reader) allocates but does not use a 256 char
+ StringBuilder.
+ Contributed by Gary Gregory
+
+
+
+Release 4.5.13
+-------------------
+
+This is a maintenance release that fixes incorrect handling of malformed authority component
+in request URIs.
+
+
+Changelog:
+-------------------
+
+* Incorrect handling of malformed authority component by URIUtils#extractHost.
+ Contributed by Oleg Kalnichevski
+
+* Avoid updating Content-Length header in a 304 response.
+ Contributed by Dirk Henselin
+
+* Bug fix: BasicExpiresHandler is annotated as immutable but is not (#239)
+ Contributed by Gary Gregory
+
+* HTTPCLIENT-2076: Fixed NPE in LaxExpiresHandler (#222).
+ Contributed by heejeongkim
+
+
+Release 4.5.12
+-------------------
+
+This is a maintenance release that fixes a regression introduced by the previous release
+that caused rejection of certificates with non-standard domains.
+
+Changelog:
+-------------------
+
+* HTTPCLIENT-2053: Add SC_PERMANENT_REDIRECT (308) to DefaultRedirectStrategy
+ Contributed by Michael Osipov
+
+* HTTPCLIENT-2052: Fixed redirection of entity enclosing requests with non-repeatable entities
+ Contributed by Oleg Kalnichevski
+
+* HTTPCLIENT-2047: Fixed regression in DefaultHostnameVerifier causing rejection of certificates
+ with non-standard domains.
+ Contributed by Oleg Kalnichevski
+
+* Bug fix: Fixed handling of private domains by PublicSuffixMatcher
+ Contributed by Oleg Kalnichevski
+
+
+Release 4.5.11
+-------------------
+
+This is a maintenance release that fixes a number defects discovered since 4.5.10
+and upgrades HttpCore dependency to version 4.4.13.
+
+
+Changelog:
+-------------------
+
+* Improved domain name normalization by DefaultHostnameVerifier.
+ Contributed by Oleg Kalnichevski
+
+* HTTPCLIENT-2033: Connection managers to immediately shut down all leased connection upon shutdown.
+ Contributed by Oleg Kalnichevski
+
+* HTTPCLIENT-2020: DefaultBackoffStrategy to support TOO_MANY_REQUESTS (429).
+ Contributed by Michael Osipov
+
+* HTTPCLIENT-2030: Fixed PublicSuffixMatcher#getDomainRoot behavior with invalid hostnames.
+ Contributed by Niels Basjes
+
+* HTTPCLIENT-2029: URIBuilder to support parsing of non-UTF8 URIs.
+ Contributed by Oleg Kalnichevski
+
+* HTTPCLIENT-2026: Fixed URIBuilder#isOpaque() logic.
+ Contributed by Oleg Kalnichevski
+
+* Updated text in pool stats description
+ Contributed by chao chang
+
+* HTTPCLIENT-2023: Allow nested arrays and all primitive types in DefaultHttpCacheEntrySerializer.
+ Contributed by Olof Larsson
+
+* Fixed fallback PublicSuffixMatcher instance.
+ Contributed by Ryan Schmitt
+
+* Added family property #145.
+ Contributed by behrangsa
+
+
+Release 4.5.10
+-------------------
+
+This is a maintenance release that fixes a number defects discovered since 4.5.9
+and upgrades HttpCore dependency to version 4.4.12.
+
+
+Changelog:
+-------------------
+
+* Refactor DefaultRedirectStrategy for subclassing.
+ Contributed by Gary Gregory
+
+* Improved handling of request cancellation.
+ Contributed by Oleg Kalnichevski
+
+* Fixed concurrent use of threading unsafe HttpUriRequest messages.
+ Contributed by Oleg Kalnichevski
+
+* HTTPCLIENT-1997: Return the last domain segment instead of normalized domain name
+ from PublicSuffixMatcher#getDomainRoot in case there is no match.
+ Contributed by jeromedemangel
+
+* Preserve original encoding of the URI path component if the URI is valid.
+ Contributed by Oleg Kalnichevski
+
+
+Release 4.5.9
+-------------------
+
+This is a maintenance release that fixes a number defects discovered since 4.5.8.
+
+
+Changelog:
+-------------------
+
+* HTTPCLIENT-1991: incorrect handling of non-standard DNS entries by PublicSuffixMatcher
+ Contributed by Oleg Kalnichevski
+
+* Fix bug in URIBuilder#isPathEmpty method to verify if encodedPath is an empty string
+ Contributed by Varun Nandi
+
+* HTTPCLIENT-1984: Add normalize URI to RequestConfig copy constructor
+ Contributed by Matt Nelson
+
+* HTTPCLIENT-1976: Unsafe deserialization in DefaultHttpCacheEntrySerializer
+ Contributed by Artem Smotrakov
+
+
+
+Release 4.5.8
+-------------------
+
+This is a maintenance release that makes request URI normalization configurable on per request basis
+and also ports several improvements in URI handling from HttpCore master.
+
+
+Changelog:
+-------------------
+
+* HTTPCLIENT-1969: Filter out weak cipher suites.
+ Contributed by Artem Smotrakov
+
+* HTTPCLIENT-1968: Preserve escaped PATHSAFE characters when normalizing URI path segments.
+ Contributed by Oleg Kalnichevski
+
+* HTTPCLIENT-1968: URIBuilder to split path component into path segments when digesting a URI
+ (ported from HttpCore master).
+ Contributed by Oleg Kalnichevski
+
+* Improved cache key generation (ported from HttpCore master).
+ Contributed by Oleg Kalnichevski
+
+* HTTPCLIENT-1968: added utility methods to parse and format URI path segments (ported
+ from HttpCore master).
+ Contributed by Oleg Kalnichevski
+
+* HTTPCLIENT-1968: Make normalization of URI paths optional.
+ Contributed by Tamas Cservenak
+
+* Some well known proxies respond with Content-Length=0, when returning 304. For robustness, always use the
+ cached entity's content length, as modern browsers do.
+ Contributed by Author: Jayson Raymond
+
+
+
+Release 4.5.7
+-------------------
+
+This is a maintenance release that corrects Automatic-Module-Name definitions added in the previous
+release and fixes a number of minor defects discovered since 4.5.6.
+
+Please note that as of 4.4, HttpClient requires Java 1.6 or newer.
+
+Changelog:
+-------------------
+
+* Upgraded HttpCore to version 4.4.11
+ Contributed by Oleg Kalnichevski
+
+* HTTPCLIENT-1960: URIBuilder incorrect handling of multiple leading slashes in path component
+ Contributed by Oleg Kalnichevski
+
+* HTTPCLIENT-1958: PoolingHttpClientConnectionManager to throw ExecutionException in case of a lease operation
+ cancellation instead of InterruptedException.
+ Contributed by Oleg Kalnichevski
+
+* HTTPCLIENT-1952: Allow default User Agent to be disabled.
+ Contributed by Michael Osipov
+
+* HTTPCLIENT-1956: CONNECT overwrites the main request object in the HTTP context when requests are executed
+ via a proxy tunnel.
+ Contributed by Oleg Kalnichevski
+
+* HTTPCLIENT-1940: deprecated SSLSocketFactory made to rethrow SocketTimeoutException as
+ ConnectTimeoutException for consistency with non-deprecated code.
+ Contributed by Oleg Kalnichevski
+
+* Fixed regression in BasicCookieStore serialization.
+ Contributed by Author: Mark Mielke
+
+* HTTPCLIENT-1929: Corrected Automatic-Module-Name entries for HttpClient Fluent, HttpClient Windows
+ and HttpClient Cache.
+ Contributed by Oleg Kalnichevski
+
+* HTTPCLIENT-1927: URLEncodedUtils#parse breaks at double quotes when parsing unquoted values.
+ Contributed by Oleg Kalnichevski
+
+* HTTPCLIENT-1939: Update Apache Commons Codec from 1.10 to 1.11
+ Contributed by Gary Gregory
+
+
+Release 4.5.6
+-------------------
+
+This is a maintenance release that adds Automatic-Module-Name to the manifest for compatibility
+with Java 9 Platform Module System and fixes a number of issues discovered since 4.5.5
+
+Please note that as of 4.4, HttpClient requires Java 1.6 or newer.
+
+Changelog:
+-------------------
+
+* [HTTPCLIENT-1882=: reset authentication state on I/O or runtime error for connection based
+ authentication schemes (such as NTLM)
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1924]: HttpClient to shut down the connection manager if a fatal error occurs
+ in the course of a request execution.
+ Contributed by Oleg Kalnichevski
+
+* Add Automatic-Module-Name in manifest so Java9 modular applications can depend on this library
+ Contributed by Varun Nandi
+
+* [HTTPCLIENT-1923]: fixed incorrect connection close on shutdown + fixed corresponding test
+ Contributed by Aleksei Arsenev
+
+* [HTTPCLIENT-1906]: certificates containing alternative subject names other than DNS and IP
+ (such as RFC822) get rejected as invalid
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1904]: check cookie domain for null
+ Contributed by Hans-Peter Keck
+
+* [HTTPCLIENT-1900]: proxy protocol processor does not post-process CONNECT response messages
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1911]: Failing tests on Fedora 28 due to weak encryption algorithms in test
+ keystore.
+ Contributed by Gary Gregory and Michael Simacek
+
+
+Release 4.5.5
+-------------------
+
+HttpClient 4.5.5 (GA) is a maintenance release that fixes a regression introduced
+by the previous release causing a NPE in SystemDefaultCredentialsProvider.
+
+Please note that as of 4.4, HttpClient requires Java 1.6 or newer.
+
+Changelog:
+-------------------
+
+* [HTTPCLIENT-1690] Avoid merging Content-Encoding headers coming with 304 status to cache entry.
+ Contributed by Sudheera Palihakkara
+
+* [HTTPCLIENT-1888] Regression in SystemDefaultCredentialsProvider#getCredentials causing NPE.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1886] Update HttpClient 4.5.x from HttpCore 4.4.7 to 4.4.9
+ Contributed by Gary Gregory
+
+* [HTTPCLIENT-1889] org.apache.http.client.utils.URLEncodedUtils.parse()
+ should return a new ArrayList when there are no query parameters.
+ Contributed by Gary Gregory
+
+
+Release 4.5.4
+-------------------
+
+HttpClient 4.5.4 (GA) is a maintenance release that fixes a number of defects found since 4.5.3.
+
+Please note that as of 4.4, HttpClient requires Java 1.6 or newer.
+
+Changelog:
+-------------------
+
+* [HTTPCLIENT-1883] SystemDefaultCredentialsProvider to use https.proxy* system properties
+ for origins with port 443.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1881] Allow truncated NTLM packets to work with this client.
+ Contributed by Karl Wright
+
+* [HTTPCLIENT-1855] Disabled caching of DIGEST auth scheme instances due to unreliability of nonce counter
+ when the auth cache is shared by multiple sessions.
+ Contributed by Oleg Kalnichevski
+
+* BasicCookieStore uses a ReentrantReadWriteLock to avoid synchronization on #getCookies/#toString
+ while maintaining thread safety.
+ Contributed by Carter Kozak
+
+* [HTTPCLIENT-1865] DefaultServiceUnavailableRetryStrategy does not respect HttpEntity#isRepeatable.
+ Contributed by Tomas Celaya
+
+* [HTTPCLIENT-1859] Encode Content-Disposition name and filename elements appropriately.
+ Contributed by Karl Wright
+
+* Avoid fetching the cached entity twice on cache hit.
+ Contributed by Leandro Nunes
+
+* [HTTPCLIENT-1835] #evictExpiredConnections no longer causes the #evictIdleConnections behaviour
+ to be implicitly enabled.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1831= URIBuilder should not prepend a leading slash to relative URIs.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1833] Fix Windows Negotiate-NTLM handling of proxies.
+ Contributed by Roman Stoffel
+
+* [HTTPCLIENT-1817] Add a "Trust All" TrustStrategy implementation.
+ Contributed by Gary Gregory
+
+* [HTTPCLIENT-1816] Update Apache Commons Codec 1.9 to 1.10.
+ Contributed by Gary Gregory
+
+* [HTTPCLIENT-1836] DefaultHostnameVerifier#getSubjectAltNames(X509Certificate) throws java.lang.ClassCastException.
+ Contributed by Gary Gregory , Ilian Iliev
+
+* [HTTPCLIENT-1845]: Extract InputStreamFactory classes out of GzipDecompressingEntity and
+ DeflateDecompressingEntity for reuse and to create less garbage.
+ Contributed by Gary Gregory
+
+* [HTTPCLIENT-1847] Update Ehcache from 2.6.9 to 2.6.11.
+ Contributed by Gary Gregory
+
+* [HTTPCLIENT-1848] Update spymemcached from 2.11.4 to 2.12.3.
+ Contributed by Gary Gregory
+
+* [HTTPCLIENT-1849] Update JNA from 4.1.0 to 4.4.0.
+ Contributed by Gary Gregory
+
+* [HTTPCLIENT-1850] Update SLF4J from 1.7.6 to 1.7.25.
+ Contributed by Gary Gregory
+
+
+Release 4.5.3
+-------------------
+
+HttpClient 4.5.3 (GA) is a maintenance release that fixes a number of defects found since 4.5.2.
+
+Please note that as of 4.4, HttpClient requires Java 1.6 or newer.
+
+Changelog:
+-------------------
+
+* [HTTPCLIENT-1803] Improved handling of malformed paths by URIBuilder.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1802] Do not attempt to match SSL host to subject CN if subject alternative name of any type are given.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1788] RFC 6265 policy must not reject cookies with paths that are no prefix of the uri path.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1792] SSLConnectionSocketFactory to throw SSLPeerUnverifiedException with a better error message
+ when hostname verification fails.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1779] [OSGi] support NTLM proxy authentication.
+ Contributed by Julian Sedding
+
+* [HTTPCLIENT-1773] [OSGi] HttpProxyConfigurationActivator does not unregister HttpClientBuilderFactory.
+ Contributed by Julian Sedding
+
+* [HTTPCLIENT-1771] improve OSGi webconsole display for org.apache.http.proxyconfigurator.
+ Contributed by Julian Sedding
+
+* [HTTPCLIENT-1770] OSGi metatype for org.apache.http.proxyconfigurator missing factoryPid.
+ Contributed by Julian Sedding
+
+* [HTTPCLIENT-1767] Null pointer dereference in EofSensorInputStream and ResponseEntityProxy.
+ Contributed by Peter Ansell
+
+* Support changing system default ProxySelector.
+ Contributed by Robin Stevens
+
+* All services registered in the OSGi service registry provide the whole bundle header dictionary as vendor
+ property value.
+ Contributed by Christoph Fiehe
+
+* [HTTPCLIENT-1750] OSGi support for CachingHttpClientBuilder.
+ Contributed by Justin Edelson
+
+* [HTTPCLIENT-1749] OSGi client builder to use weak references to track HttpClient instances.
+ Contributed by Justin Edelson
+
+* [HTTPCLIENT-1747] apply RequestConfig defaults when using HttpParams values in backward compatibility mode.
+ Contributed by Oleg Kalnichevski
+
+* Override LaxRedirectStrategy's INSTANCE field.
+ Contributed by Eric Wu
+
+* [HTTPCLIENT-1736] do not request cred delegation by default when using Kerberos auth.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1744] normalize hostname and certificate CN when matching to CN.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1732] SystemDefaultCredentialsProvider to take http.proxyHost and http.proxyPort system
+ properties into account.
+ Contributed by Oleg Kalnichevski
+
+* Revert "HTTPCLIENT-1712: SPNego schemes to take service scheme into account when generating auth token".
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1727] AbstractHttpClient#createClientConnectionManager does not account for context class loader.
+ Contributed by Charles Allen
+
+* [HTTPCLIENT-1726:] Copy the SNI fix from SSLConnectionSocketFactory to the deprecated SSLSocketFactory class.
+ Contributed by David Black
+
+
+Release 4.5.2
+-------------------
+
+HttpClient 4.5.2 (GA) is a maintenance release that fixes a number of minor defects found since 4.5.1.
+
+Please note that as of 4.4, HttpClient requires Java 1.6 or newer.
+
+Changelog:
+-------------------
+
+* [HTTPCLIENT-1710, HTTPCLIENT-1718, HTTPCLEINT-1719] OSGi container compatibility improvements.
+ Contributed by 212427891
+
+* [HTTPCLIENT-1717] Make fluent API Content#Content(byte[], ContentType) public.
+ Contributed by Cash Costello
+
+* [HTTPCLIENT-1715] NTLMEngineImpl#Type1Message not thread safe but declared as a constant.
+ Contributed by Olivier Lafontaine , Gary Gregory
+
+* [HTTPCLIENT-1714] Add HttpClientBuilder#setDnsResolver(DnsResolver).
+ Contributed by Alexis Thaveau
+
+* [HTTPCLIENT-1712] SPNego schemes to take service scheme into account when generating auth token.
+ Contributed by Georg Romstorfer
+
+* [HTTPCLIENT-1700] Netscape draft, browser compatibility, RFC 2109, RFC 2965 and default cookie
+ specs to ignore cookies with empty name for consistency with RFC 6265 specs.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1704] IgnoreSpec#match to always return false.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1550] Fixed 'deflate' zlib header check.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1698] Fixed matching of IPv6 addresses by DefaultHostnameVerifier
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1695] RFC 6265 compliant cookie spec to ignore cookies with empty name / missing
+ value.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1216] Removed ThreadLocal subclass from DateUtils.
+ Contributed by Jochen Kemnade
+
+* [HTTPCLIENT-1685] PublicSuffixDomainFilter to ignore local hosts and local domains.
+ Contributed by Oleg Kalnichevski
+
+
+
+Release 4.5.1
+-------------------
+
+HttpClient 4.5.1 (GA) is a maintenance release that fixes a number of minor defects found since 4.5.
+
+Please note that as of 4.4, HttpClient requires Java 1.6 or newer.
+
+Changelog:
+-------------------
+
+* [HTTPCLIENT-1680] redirect of a POST request causes ClientProtocolException.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1673] org.apache.http.entity.mime.content.* missing from OSGi exports.
+ Contributed by Benson Margulies
+
+* [HTTPCLIENT-1668] Fluent request incorrectly handles connect timeout setting.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1667] RequestBuilder does not take charset into account when creating
+ UrlEncodedFormEntity.
+ Contributed by Sergey Smith
+
+* [HTTPCLIENT-1655] HttpClient sends RST instead of FIN ACK sequence when using non-persistant
+ connections.
+ Contributed by Oleg Kalnichevski
+
+
+
+Release 4.5
+-------------------
+
+HttpClient 4.5 (GA) is a minor feature release that includes several incremental enhancements
+to the exisitng functionality such as support for private domains in the Mozilla Public Suffix List.
+
+Changelog:
+-------------------
+
+* Reduced default validate after inactivity setting from 5 sec to 2 sec
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1649] Fixed serialization of auth schemes
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1645]: Fluent requests to inherit config parameters of the executor.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1640]: RFC6265 lax cookie policy fails to parse 'max-age' attribute.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1633]: RFC6265CookieSpecProvider compatibility level setting has no effect.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1613]: Support for private domains in Mozilla Public Suffix List.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1651]: Add ability to disable content compression on a request basis
+ Contributed by Michael Osipov
+
+* [HTTPCLIENT-1654]: Deprecate/remove RequestConfig#decompressionEnabled in favor of #contentCompressionEnabled
+ Contributed by Michael Osipov
+
+
+
+Release 4.4.1
+-------------------
+
+HttpClient 4.4.1 (GA) is a maintenance release that fixes a number of defects in new functionality
+introduced in version 4.4.
+
+Users of HttpClient 4.4 are encouraged to upgrade.
+
+Please note that as of 4.4, HttpClient requires Java 1.6 or newer.
+
+Changelog:
+-------------------
+
+* Marked RFC 2109, RFC 2965, Netscape draft cookie specs as obsolete
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1633] RFC6265CookieSpecProvider compatibility level setting has no effect.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1628]: Auth cache can fail when domain name contains uppercase characters.
+ Contributed by Dennis Ju
+
+* [HTTPCLIENT-1609] Stale connection check in PoolingHttpClientConnectionManager has no effect.
+ Internal connection pool does not correctly implement connection validation.
+ Contributed by Charles Lip
+
+
+
+Release 4.4 Final
+-------------------
+
+This is the first stable (GA) release of HttpClient 4.4. Notable features and enhancements included
+in 4.4 series are:
+
+* Support for the latest HTTP state management specification (RFC 6265). Please note that the old
+cookie policy is still used by default for compatibility reasons. RFC 6265 compliant cookie
+policies need to be explicitly configured by the user. Please also note that as of next feature
+release support for Netscape draft, RFC 2109 and RFC 2965 cookie policies will be deprecated
+and disabled by default. It is recommended to use RFC 6265 compliant policies for new applications
+unless compatibility with RFC 2109 and RFC 2965 is required and to migrate existing applications
+to the default cookie policy.
+
+* Enhanced, redesigned and rewritten default SSL hostname verifier with improved RFC 2818
+compliance
+
+* Default SSL hostname verifier and default cookie policy now validate certificate identity
+and cookie domain of origin against the public suffix list maintained by Mozilla.org
+
+
+* More efficient stale connection checking: indiscriminate connection checking which results
+in approximately 20 to 50 ms overhead per request has been deprecated in favor of conditional
+connection state validation (persistent connections are to be re-validated only if a specified
+period inactivity has elapsed)
+
+* Authentication cache thread-safety: authentication cache used by HttpClient is now thread-safe
+and can be shared by multiple threads in order to re-use authentication state for subsequent
+requests
+
+* Native Windows Negotiate and NTLM via SSPI through JNA: when running on Windows OS HttpClient
+configured to use native NTLM or SPNEGO authentication schemes can make use of platform specific
+functionality via JNA and current user credentials. This functionality is still considered
+experimental, known to have compatibility issues and subject to change without prior notice.
+Use at your discretion.
+
+This release also includes all fixes from the stable 4.3.x release branch.
+
+Please note that as of 4.4, HttpClient requires Java 1.6 or newer.
+
+
+Changelog:
+-------------------
+
+* Support for the latest HTTP state management specification (RFC 6265).
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1515] Caching of responses to HEAD requests
+ Contributed by Tyrone Cutajar and
+ Francois-Xavier Bonnet
+
+* [HTTPCLIENT-1560] Native Windows auth improvements
+ Contributed by Michael Osipov
+
+* Update Apache Commons Logging version from 1.1.3 to 1.2.
+ Contributed by Gary Gregory
+
+* Update Apache Commons Codec version from 1.6 to 1.9.
+ Contributed by Gary Gregory
+
+* Update Ehcache version from 2.2.0 to 2.6.9.
+ Contributed by Gary Gregory
+
+* Update Ehcache version from 2.2.0 to 2.6.9.
+ Contributed by Gary Gregory
+
+* Update Spymemcached version from 2.6 to 2.11.4.
+ Contributed by Gary Gregory
+
+* Update SLF4J version from 1.5.11 to 1.7.7.
+ Contributed by Gary Gregory
+
+
+
+
+
+Release 4.4 BETA1
+-------------------
+
+This is the first BETA release of HttpClient 4.4. Notable features and enhancements included
+in 4.4 series are:
+
+* Enhanced redesigned and rewritten default SSL hostname verifier with improved RFC 2818
+compliance
+
+* Default SSL hostname verifier and default cookie policy now validate certificate identity
+and cookie domain of origin against the public suffix list maintained by Mozilla.org
+
+
+* Native windows Negotiate/NTLM via JNA: when running on Windows OS HttpClient configured to use
+native NTLM or SPNEGO authentication schemes can make use of platform specific functionality
+via JNA and current user system credentials
+
+* More efficient stale connection checking: indiscriminate connection checking which results
+in approximately 20 to 50 ms overhead per request has been deprecated in favor of conditional
+connection state validation (persistent connections are to be re-validated only if a specified
+period inactivity has elapsed)
+
+* Authentication cache thread-safety: authentication caches used by HttpClient is now thread-safe
+and can be shared by multiple threads in order to re-use authentication state for subsequent
+requests
+
+This release also includes all fixes from the stable 4.3.x release branch.
+
+Please note that as of 4.4, HttpClient requires Java 1.6 or newer.
+
+
+Changelog:
+-------------------
+
+* [HTTPCLIENT-1547] HttpClient OSGi bundle doesn't import the package "javax.naming".
+ Contributed by Willem Jiang
+
+* [HTTPCLIENT-1541] Use correct (HTTP/hostname) service principal name for Windows native
+ Negotiate/NTLM auth schemes.
+ Contributed by Ka-Lok Fung
+
+* Improved compliance with RFC 2818: default hostname verifier to ignore the common name of the
+ certificate subject if alternative subject names (dNSName or iPAddress) are present.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1540] Support delegated credentials (ISC_REQ_DELEGATE) by Native windows
+ native Negotiate/NTLM auth schemes.
+ Contributed by Ka-Lok Fung
+
+
+
+Release 4.4 ALPHA1
+-------------------
+
+This is the first ALPHA release of HttpClient 4.4. Notable features and enhancements included
+in the 4.4 branch are:
+
+* More efficient stale connection checking: indiscriminate connection checking which results
+in approximately 20 to 50 ms overhead per request has been deprecated in favor of conditional
+connection state validation (persistent connections are to be re-validated only if a specified
+period inactivity has elapsed)
+
+* Native windows Negotiate/NTLM via JNA: when running on Windows OS HttpClient configured to use
+native NTLM or SPNEGO authentication schemes can make use of platform specific functionality
+via JNA and current user system credentials
+
+* Authentication cache thread-safety: authentication caches used by HttpClient is now thread-safe
+and can be shared by multiple threads in order to re-use authentication state for subsequent
+requests
+
+This release also includes all fixes from the stable 4.3.x release branch.
+
+Please note that as of 4.4, HttpClient requires Java 1.6 or newer.
+
+Please note that new features included in this release are still considered experimental and
+their API may change in the future 4.4 alpha and beta releases.
+
+
+Changelog:
+-------------------
+
+* [HTTPCLIENT-1493] Indiscriminate connection checking has been deprecated in favor of conditional
+ connection state validation. Persistent connections are to be re-validated only after a defined
+ period inactivity prior to being leased to the consumer.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1519] Use the original HttpHost instance passed as a parameter to
+ HttpClient#execute when generating 'Host' request header.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1491] Enable provision of Service Principal Name in Windows native
+ auth scheme.
+ Contributed by Malcolm Smith
+
+* [HTTPCLIENT-1403] Pluggable content decoders.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1466] FileBodyPart#generateContentType() ignores custom ContentType values.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1461] fixed performance degradation in gzip encoded content processing
+ introduced by HTTPCLIENT-1432.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1457] Incorrect handling of Windows (NT) credentials by
+ SystemDefaultCredentialsProvider.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1456] Request retrial after status 503 causes ClientProtocolException.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1454] Make connection operator APIs public.
+ Contributed by Tamas Cservenak
+
+* Update JUnit to version 4.11 from 4.9
+ Contributed by Gary Gregory
+
+
+
+Release 4.3.4
+-------------------
+
+HttpClient 4.3.4 (GA) is a maintenance release that improves performance in high concurrency
+scenarios. This version replaces dynamic proxies with custom proxy classes and eliminates thread
+contention in java.reflect.Proxy.newInstance() when leasing connections from the connection pool
+and processing response messages.
+
+
+Changelog:
+-------------------
+
+* Replaced dynamic proxies with custom proxy classes to reduce thread contention.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1484] GzipCompressingEntity should not close the underlying output stream
+ if the entity has not been fully written out due to an exception.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1474] Fixed broken entity enclosing requests in HC Fluent.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1470] CachingExec(ClientExecChain, HttpCache, CacheConfig, AsynchronousValidator)
+ throws NPE if config is null
+
+
+
+
+Release 4.3.3
+-------------------
+
+HttpClient 4.3.3 (GA) is a bug fix release that fixes a regression introduced by the previous
+release causing a significant performance degradation in compressed content processing.
+
+Users of HttpClient 4.3 are encouraged to upgrade.
+
+Changelog:
+-------------------
+
+* [HTTPCLIENT-1466] FileBodyPart#generateContentType() ignores custom ContentType values.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1453] Thread safety regression in PoolingHttpClientConnectionManager
+ #closeExpiredConnections that can lead to ConcurrentModificationException.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1461] fixed performance degradation in compressed content processing
+ introduced by HTTPCLIENT-1432.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1457] Incorrect handling of Windows (NT) credentials by
+ SystemDefaultCredentialsProvider.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1456] Request retrial after status 503 causes ClientProtocolException.
+ Contributed by Oleg Kalnichevski
+
+
+Release 4.3.2
+-------------------
+
+HttpClient 4.3.2 (GA) is a maintenance release that delivers a number of improvements
+as well as bug fixes for issues reported since 4.3.1 release. SNI support for
+Oracle JRE 1.7+ is being among the most notable improvements.
+
+Users of HttpClient 4.3 are encouraged to upgrade.
+
+Changelog:
+-------------------
+
+* [HTTPCLIENT-1447] Clients created with HttpClients.createMinimal do not work with absolute URIs
+ Contributed by Joseph Walton
+
+* [HTTPCLIENT-1446] NTLM proxy + BASIC target auth fails with 'Unexpected state:
+ MSG_TYPE3_GENERATED'.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1443] HttpCache uses the physical host instead of the virtual host as a cache key.
+ Contributed by Francois-Xavier Bonnet
+
+* [HTTPCLIENT-1442] Authentication header set by the user gets removed in case
+ of proxy authentication (affects plan HTTP requests only).
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1441] Caching AsynchronousValidationRequest leaks connections.
+ Contributed by Dominic Tootell
+
+* [HTTPCLIENT-1440] 'file' scheme in redirect location URI causes NPE.
+ Contributed by James Leigh
+
+* [HTTPCLIENT-1437] Made Executor#execute thread safe.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1119] SNI support (Oracle Java 1.7+ only).
+ Contributed by Bruno Harbulot
+
+* [HTTPCLIENT-1435] Fluent Executor ignores custom request properties.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1432] Lazy decompressing of HttpEntity#getContent() to avoid EOFException
+ in case of an empty response with 'Content-Encoding: gzip' header.
+ Contributed by Yihua Huang
+
+* [HTTPCLIENT-1431] (Regression) deprecated connection manager cannot be used with
+ a custom LayeredSchemeSocketFactory.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1425] Fixed socket closed exception thrown by caching HttpClient when the origin
+ server sends a long chunked response.
+ Contributed by James Leigh
+
+* [HTTPCLIENT-1417] Fixed NPE in BrowserCompatSpec#formatCookies caused by version 1
+ cookies with null cookie value.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1416] Fixed NPE in CachingHttpClientBuilder#build().
+ Contributed by Oleg Kalnichevski
+
+
+
+Release 4.3.1
+-------------------
+
+HttpClient 4.3.1 (GA) is a bug fix release that addresses a number of issues reported since
+release 4.3.
+
+Users of HttpClient 4.3 are strongly encouraged to upgrade.
+
+Changelog
+-------------------
+
+* [HTTPCLIENT-1410] Browser compatible hostname verifier no longer rejects
+ *.co., *.gov., *.info., etc as invalid.
+ Contributed by Oleg Kalnichevski
+
+* Ensure X509HostnameVerifier is never null.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1405] CONNECT HTTP/1.1 requests lack mandatory 'Host' header.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1402] Cache default User-Agent value.
+ Contributed by yuexiaojun
+
+* [HTTPCLIENT-1398] Fixed invalid OSGi metadata caused by corrupted Maven bundle plugin metadata.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1399] Fixed NPE in RequestBuilder.
+ Contributed by Oleg Kalnichevski
+
+
+
+
+Release 4.3 Final
+-------------------
+
+This is the first stable (GA) release of HttpClient 4.3. The most notable enhancements included
+in this release are:
+
+* Support for Java 7 try-with-resources for resource management (connection release.)
+
+* Added fluent Builder classes for HttpEntity, HttpRequest, HttpClient and SSLContext instances.
+
+* Deprecation of preference and configuration API based on HttpParams interface in favor of
+constructor injection and plain configuration objects.
+
+* Reliance on object immutability instead of access synchronization for thread safety.
+Several old classes whose instances can be shared by multiple request exchanges have
+been replaced by immutable equivalents.
+
+* DefaultHttpClient, DecompressingHttpClient, CachingHttpClient and similar classes are
+deprecated in favor of builder classes that produce immutable HttpClient instances.
+
+* HttpClient builders now dynamically construct a request execution pipeline tailored
+specifically to the user configuration by physically excluding unnecessary protocol components.
+
+* There is now an option to construct a minimal HttpClient implementation that can only execute
+basic HTTP message exchanges without redirects, authentication, state management or proxy support.
+This feature might be of particular use in web crawler development.
+
+* There is now option to avoid strict URI syntax for request URIs by executing HTTP requests
+with an explicitly specified target host. HttpClient will no longer attempt to parse the request
+URI if it does not need to extract the target host from it.
+
+This release also includes all fixes from the stable 4.2.x release branch.
+
+
+Changelog
+-------------------
+* [HTTPCLIENT-1371] Weak ETag Validation is Useful On PUT With If-Match
+ Contributed by James Leigh
+
+* [HTTPCLIENT-1394] Support for Native windows Negotiate/NTLM via JNA
+ Contributed by Ryan McKinley
+
+* [HTTPCLIENT-1384] Expose CacheInvalidator interface.
+ Contributed by Nicolas Richeton
+
+* [HTTPCLIENT-1385] Fixed path normalization in CacheKeyGenerator
+ Contributed by James Leigh
+
+* [HTTPCLIENT-1370] Response to non-GET requests should never be cached with the default
+ ResponseCachingPolicy
+ Contributed by James Leigh
+
+* [HTTPCLIENT-1373] OPTIONS and TRACE should not invalidate cache
+ Contributed by James Leigh
+
+* [HTTPCLIENT-1383] HttpClient enters an infinite loop during NTLM authentication if the opposite
+ endpoint keeps responding with a type 2 NTLM response after type 3 MTLM message has already been
+ sent by the client.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1372] Refactor HttpMultipart, and add RFC6532 mode, so that headers in post
+ are no longer constrained to ASCII values.
+ Contributed by Karl Wright
+
+* [HTTPCLIENT-1377] User principal for non-NTLM authentication is incorrectly generated when using
+ user credentials are specified as NTCredentials
+ Contributed by Gary Gregory
+
+
+
+Release 4.3 BETA2
+-------------------
+
+This is the second BETA release of HttpClient 4.3. The most notable features and improvements
+in the 4.3 branch are: Support for Java 7 try-with-resources for resource management (connection
+release); fluent Builder classes for HttpEntity, HttpRequest and HttpClient instances, deprecation
+of preference and configuration API based on HttpParams interface in favor of constructor injection
+and plain configuration objects, reliance on object immutability instead of access synchronization
+for thread safety.
+
+This release also includes all fixes from the stable 4.2.x release branch.
+
+Changelog
+-------------------
+
+
+* [HTTPCLIENT-1366] org.apache.http.client.utils.URLEncodedUtils should parse the semicolon as a query parameter separator.
+ Contributed by Gary Gregory
+
+* [HTTPCLIENT-1365] NPE when ManagedHttpClientConnectionFactory.create(ConnectionConfig) is called with null.
+ Contributed by Gary Gregory
+
+* [HTTPCLIENT-1362] Better error messages for connect timed out and connection refused
+ exceptions.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1360] separate out DeflateInputStream as an independent class,
+ so it can be used by others.
+ Contributed by Karl Wright
+
+* [HTTPCLIENT-1359] repeated requests using the same context fail if they redirect.
+ Contributed by James Leigh
+
+* [HTTPCLIENT-1354] do not quote algorithm parameter in DIGEST auth response.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1351] Added utility method to resolve final location from original request,
+ target host and a list of redirects.
+ Contributed by James Leigh
+
+* [HTTPCLIENT-1344] Userinfo credentials in URI should not default to preemptive BASIC
+ authentication.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1345] Useinfo credentials ignored in redirect location header.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1294] HttpClient to rewrite host name of the redirect location URI in order
+ to avoid circular redirect exception due to host name case mismatch.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1264] Add support for multiple levels of browser compatibility
+ to BrowserCompatSpec and BrowserCompatSpecFactory. Include constructor
+ argument for IE medium-security compatibility.
+ Contributed by Karl Wright (kwright at apache.org)
+
+* [HTTPCLIENT-1349] SSLSocketFactory incorrectly identifies key passed with keystore as
+ the keystore password.
+ Contributed by David Graff
+
+* [HTTPCLIENT-1346] Ensure propagation of SSL handshake exceptions.
+ Contributed by Pasi Eronen
+
+* [HTTPCLIENT-1343] SSLSocketFactory optional parameters for supported SSL protocols and cipher
+ suites.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1238] Contribute Bundle Activator And Central Proxy Configuration.
+ Contributed by Simone Tripodi
+
+* [HTTPCLIENT-1299] (regression) cache incorrectly disposes of the underlying cache resource
+ when storing variant entry.
+ Contributed by James Leigh
+
+* [HTTPCLIENT-1342] Redirects with underscore character in the location hostname cause
+ "java.lang.IllegalArgumentException: Host name may not be null".
+ Contributed by Oleg Kalnichevski
+
+
+
+Release 4.3 BETA1
+-------------------
+
+This is the first BETA release of HttpClient 4.3. The 4.3 branch enhances HttpClient in several
+key areas and includes several notable features and improvements: Support for Java 7
+try-with-resources for resource management (connection release); fluent Builder classes for
+HttpEntity, HttpRequest and HttpClient instances, deprecation of preference and configuration API
+based on HttpParams interface in favor of constructor injection and plain configuration objects,
+reliance on object immutability instead of access synchronization for thread safety.
+
+This release also includes all fixes from the stable 4.2.x release branch.
+
+
+Changelog
+-------------------
+
+* [HTTPCLIENT-1317] InetAddressUtils should handle IPv6 Addresses with Embedded IPv4 Addresses
+ Contributed Sebastian Bazley .
+
+* [HTTPCLIENT-1320] Leverage javax.net.ssl.SSLSocketFactory#getDefault() to initialize SSL context
+ based on system defaults instead of using an internal custom routine.
+ Contributed by Abe Backus and Oleg Kalnichevski
+
+* [HTTPCLIENT-1316] Certificate verification rejects IPv6 addresses which are not String-equal.
+ Contributed Sebastian Bazley .
+
+* [HTTPCLIENT-1307] Future based asynchronous request execution.
+ Contributed by Jilles van Gurp
+
+* [HTTPCLIENT-1313] Fixed IllegalStateException in deprecated ThreadSafeClientConnManager.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1298] Add AsynchronousValidator in HttpClientBuilder's list of closeable objects.
+ Contributed by Martin Meinhold
+
+
+
+Release 4.3 ALPHA1
+-------------------
+
+This is the first ALPHA release of HttpClient 4.3. The 4.3 branch enhances HttpClient in several
+key areas and includes several notable features and improvements: Support for Java 7
+try-with-resources for resource management (connection release); fluent Builder classes for
+HttpEntity, HttpRequest and HttpClient instances, deprecation of preference and configuration API
+based on HttpParams interface in favor of constructor injection and plain configuration objects,
+reliance on object immutability instead of access synchronization for thread safety.
+
+We are kindly asking all upstream projects to review API changes and help us improve
+the APIs by providing feedback and sharing ideas on dev@hc.apache.org.
+
+This release also includes all fixes from the stable 4.2.x release branch.
+
+Please note that new features included in this release are still considered experimental and
+their API may change in the future 4.3 alpha and beta releases.
+
+
+Changelog
+-------------------
+
+* [HTTPCLIENT-1250] Allow query string to be ignored when determining cacheability for
+ HTTP 1.0 responses.
+ Contributed by Don Brown
+
+* [HTTPCLIENT-1261] Make SystemDefaultHttpClient honor http.agent system property.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-900] Don't enforce URI syntax for messages with an explicit target host.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1190] HttpClient cache does not support "Vary: Cookie"
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1259] Calling #abort() on requests executed with DecompressingHttpClient has no
+ effect.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1253] URIBuilder setParameter() method could exceed the HTTP header size.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1216] Added method to force clean thread-local used by DateUtils.
+ Contributed by Oleg Kalnichevski
+
+
+Release 4.2.3
+-------------------
+
+HttpClient 4.2.3 (GA) is a bug fix release that addresses a number of issues reported since
+release 4.2.2. This release also includes a thoroughly reworked NTLM authentication engine
+which should result in a better compatibility with the newest Microsoft products.
+
+Users of HttpClient 4.x are advised to upgrade.
+
+Changelog
+-------------------
+
+* [HTTPCLIENT-1296] NPE gets thrown if you combine a default host with a virtual host
+ that has a -1 value for the port.
+ Contributed by Karl Wright
+
+* [HTTPCLIENT-1290] 304 cached response never reused with If-modified-since conditional
+ requests.
+ Contributed by Francois-Xavier Bonnet
+
+* [HTTPCLIENT-1291] Absolute request URIs without an explicitly specified path are rewritten
+ to have "/" path).
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1286] Request URI rewriting is inconsistent - URI fragments are not removed
+ from absolute request URIs.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1284] HttpClient incorrectly generates Host header when physical connection
+ route differs from the host name specified in the request URI.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1293] Kerberos and SPNego auth schemes use incorrect authorization header name
+ when authenticating with a proxy.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1283] NTLM needs to use Locale-independent form of
+ toUpperCase().
+ Contributed by Karl Wright
+
+* [HTTPCLIENT-1279] Target host responding with status 407 (proxy authentication required)
+ causes an NPE.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1281] GzipDecompressingEntity does not release InputStream when an IOException
+ occurs while reading the Gzip header
+ Contributed by Francois-Xavier Bonnet
+
+* [HTTPCLIENT-1277] Caching client sends a 304 to an unconditional request.
+ Contributed by Francois-Xavier Bonnet
+
+* [HTTPCLIENT-1278] Update NTLM documentation.
+ Contributed by Karl Wright
+
+* SystemDefaultHttpClient misinterprets 'http.keepAlive' default value and disables
+ connection persistence if the system property is not set. This causes connection
+ based authentication schemes such as NTLM to fail.
+
+* [HTTPCLIENT-1276] cache update on a 304 response causes NPE.
+ Contributed by Francois-Xavier Bonnet
+
+* [HTTPCLIENT-1273] DecompressingHttpClient does not automatically consume response
+ content in case of an i/o, HTTP or runtime exception thrown by the decompressing
+ protocol interceptor leading to a potential connection leak.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1268] NTLM engine refactor fix, to correct a buffer overrun, and get NTLMv2
+ flags right.
+ Contributed by Karl Wright
+
+* [HTTPCLIENT-1266] NTLM engine refactoring and compatibility improvements.
+ Contributed by Karl Wright
+
+* [HTTPCLIENT-1263] BrowserCompatSpec: attribute values containing spaces or special characters
+ should be enclosed with quotes marks for version 1 cookies.
+ Contributed by Francois-Xavier Bonnet
+
+* [HTTPCLIENT-1263] CachingHttpClient fails to release connections back to the connection
+ manager for some type of HTTP response messages when used together with DecompressingHttpClient.
+ Contributed by Francois-Xavier Bonnet
+
+* [HTTPCLIENT-1258] Fixed NullPointerException in NTLMEngineImpl caused by null NT domain
+ attribute.
+ Contributed by Oleg Kalnichevski
+
+* [HTTPCLIENT-1254] Redirect with underscore in hostname causes ProtocolException.
+ Contributed by Oleg Kalnichevski