Updated from commit 8236b0dd74bbcd65d4420e5d810c4f93e69ccaac.
Updated from commit efa50b0258ad32087a18c86b2b48dfd0346b69da.
Updated from commit a178c44acb01df32204c9a77f476debdfa9c702f.
Updated from commit f12fbc4a3b4ff7a30cea4b484aa6f8ac77763b2b.