Merge branch 'nginx' (nginx-1.11.11).

Change-Id: I565537a83127ce2106cd829a8f7c0e2f961f3ccf
Signed-off-by: Piotr Sikora <piotrsikora@google.com>
diff --git a/.hgtags b/.hgtags
index ef1868f..e8e3a96 100644
--- a/.hgtags
+++ b/.hgtags
@@ -409,3 +409,4 @@
 4591da489a30f790def29bc5987f43409b503cae release-1.11.8
 20a45c768e5ed26b740679d0e22045c98727c3cc release-1.11.9
 1ad0999a7ded3d4fb01c7acf8ff57c80b643da7e release-1.11.10
+d8b321a876d6254e9e98795e3b194ef053290354 release-1.11.11
diff --git a/BUILD b/BUILD
index 81e6982..8c3f51b 100644
--- a/BUILD
+++ b/BUILD
@@ -1468,5 +1468,5 @@
     preinst = "@nginx_pkgoss//:debian_preinst",
     prerm = "@nginx_pkgoss//:debian_prerm",
     section = "httpd",
-    version = "1.11.10",
+    version = "1.11.11",
 )
diff --git a/auto/modules b/auto/modules
index 7b4f2fe..cf95e30 100644
--- a/auto/modules
+++ b/auto/modules
@@ -56,832 +56,829 @@
 fi
 
 
-HTTP_MODULES=
-HTTP_DEPS=
-HTTP_INCS=
+if [ $HTTP = YES ]; then
+    HTTP_MODULES=
+    HTTP_DEPS=
+    HTTP_INCS=
 
-ngx_module_type=HTTP
+    ngx_module_type=HTTP
 
-if :; then
-    ngx_module_name="ngx_http_module \
-                     ngx_http_core_module \
-                     ngx_http_log_module \
-                     ngx_http_upstream_module"
-    ngx_module_incs="src/http src/http/modules"
-    ngx_module_deps="src/http/ngx_http.h \
-                     src/http/ngx_http_request.h \
-                     src/http/ngx_http_config.h \
-                     src/http/ngx_http_core_module.h \
-                     src/http/ngx_http_cache.h \
-                     src/http/ngx_http_variables.h \
-                     src/http/ngx_http_script.h \
-                     src/http/ngx_http_upstream.h \
-                     src/http/ngx_http_upstream_round_robin.h"
-    ngx_module_srcs="src/http/ngx_http.c \
-                     src/http/ngx_http_core_module.c \
-                     src/http/ngx_http_special_response.c \
-                     src/http/ngx_http_request.c \
-                     src/http/ngx_http_parse.c \
-                     src/http/modules/ngx_http_log_module.c \
-                     src/http/ngx_http_request_body.c \
-                     src/http/ngx_http_variables.c \
-                     src/http/ngx_http_script.c \
-                     src/http/ngx_http_upstream.c \
-                     src/http/ngx_http_upstream_round_robin.c"
-    ngx_module_libs=
-    ngx_module_link=YES
+    if :; then
+        ngx_module_name="ngx_http_module \
+                         ngx_http_core_module \
+                         ngx_http_log_module \
+                         ngx_http_upstream_module"
+        ngx_module_incs="src/http src/http/modules"
+        ngx_module_deps="src/http/ngx_http.h \
+                         src/http/ngx_http_request.h \
+                         src/http/ngx_http_config.h \
+                         src/http/ngx_http_core_module.h \
+                         src/http/ngx_http_cache.h \
+                         src/http/ngx_http_variables.h \
+                         src/http/ngx_http_script.h \
+                         src/http/ngx_http_upstream.h \
+                         src/http/ngx_http_upstream_round_robin.h"
+        ngx_module_srcs="src/http/ngx_http.c \
+                         src/http/ngx_http_core_module.c \
+                         src/http/ngx_http_special_response.c \
+                         src/http/ngx_http_request.c \
+                         src/http/ngx_http_parse.c \
+                         src/http/modules/ngx_http_log_module.c \
+                         src/http/ngx_http_request_body.c \
+                         src/http/ngx_http_variables.c \
+                         src/http/ngx_http_script.c \
+                         src/http/ngx_http_upstream.c \
+                         src/http/ngx_http_upstream_round_robin.c"
+        ngx_module_libs=
+        ngx_module_link=YES
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
 
-if [ $HTTP != YES ]; then
-    have=NGX_CRYPT . $NGX_AUTO/nohave
-    CRYPT_LIB=
-fi
+    if [ $HTTP_CACHE = YES ]; then
+        have=NGX_HTTP_CACHE . $NGX_AUTO/have
+        HTTP_SRCS="$HTTP_SRCS $HTTP_FILE_CACHE_SRCS"
+    fi
 
 
-if [ $HTTP_CACHE = YES ]; then
-    have=NGX_HTTP_CACHE . $NGX_AUTO/have
-    HTTP_SRCS="$HTTP_SRCS $HTTP_FILE_CACHE_SRCS"
-fi
+    if [ $HTTP_SSI = YES ]; then
+        HTTP_POSTPONE=YES
+    fi
 
 
-if [ $HTTP_SSI = YES ]; then
-    HTTP_POSTPONE=YES
-fi
+    if [ $HTTP_SLICE = YES ]; then
+        HTTP_POSTPONE=YES
+    fi
 
 
-if [ $HTTP_SLICE = YES ]; then
-    HTTP_POSTPONE=YES
-fi
+    if [ $HTTP_ADDITION = YES ]; then
+        HTTP_POSTPONE=YES
+    fi
 
 
-if [ $HTTP_ADDITION = YES ]; then
-    HTTP_POSTPONE=YES
-fi
+    # the module order is important
+    #     ngx_http_static_module
+    #     ngx_http_gzip_static_module
+    #     ngx_http_dav_module
+    #     ngx_http_autoindex_module
+    #     ngx_http_index_module
+    #     ngx_http_random_index_module
+    #
+    #     ngx_http_access_module
+    #     ngx_http_realip_module
+    #
+    #
+    # the filter order is important
+    #     ngx_http_write_filter
+    #     ngx_http_header_filter
+    #     ngx_http_chunked_filter
+    #     ngx_http_v2_filter
+    #     ngx_http_range_header_filter
+    #     ngx_http_gzip_filter
+    #     ngx_http_postpone_filter
+    #     ngx_http_ssi_filter
+    #     ngx_http_charset_filter
+    #         ngx_http_xslt_filter
+    #         ngx_http_image_filter
+    #         ngx_http_sub_filter
+    #         ngx_http_addition_filter
+    #         ngx_http_gunzip_filter
+    #         ngx_http_userid_filter
+    #         ngx_http_headers_filter
+    #     ngx_http_copy_filter
+    #     ngx_http_range_body_filter
+    #     ngx_http_not_modified_filter
+    #     ngx_http_slice_filter
 
+    ngx_module_type=HTTP_FILTER
+    HTTP_FILTER_MODULES=
 
-# the module order is important
-#     ngx_http_static_module
-#     ngx_http_gzip_static_module
-#     ngx_http_dav_module
-#     ngx_http_autoindex_module
-#     ngx_http_index_module
-#     ngx_http_random_index_module
-#
-#     ngx_http_access_module
-#     ngx_http_realip_module
-#
-#
-# the filter order is important
-#     ngx_http_write_filter
-#     ngx_http_header_filter
-#     ngx_http_chunked_filter
-#     ngx_http_v2_filter
-#     ngx_http_range_header_filter
-#     ngx_http_gzip_filter
-#     ngx_http_postpone_filter
-#     ngx_http_ssi_filter
-#     ngx_http_charset_filter
-#         ngx_http_xslt_filter
-#         ngx_http_image_filter
-#         ngx_http_sub_filter
-#         ngx_http_addition_filter
-#         ngx_http_gunzip_filter
-#         ngx_http_userid_filter
-#         ngx_http_headers_filter
-#     ngx_http_copy_filter
-#     ngx_http_range_body_filter
-#     ngx_http_not_modified_filter
-#     ngx_http_slice_filter
+    ngx_module_order="ngx_http_static_module \
+                      ngx_http_gzip_static_module \
+                      ngx_http_dav_module \
+                      ngx_http_autoindex_module \
+                      ngx_http_index_module \
+                      ngx_http_random_index_module \
+                      ngx_http_access_module \
+                      ngx_http_realip_module \
+                      ngx_http_write_filter_module \
+                      ngx_http_header_filter_module \
+                      ngx_http_chunked_filter_module \
+                      ngx_http_v2_filter_module \
+                      ngx_http_range_header_filter_module \
+                      ngx_http_gzip_filter_module \
+                      ngx_http_postpone_filter_module \
+                      ngx_http_ssi_filter_module \
+                      ngx_http_charset_filter_module \
+                      ngx_http_xslt_filter_module \
+                      ngx_http_image_filter_module \
+                      ngx_http_sub_filter_module \
+                      ngx_http_addition_filter_module \
+                      ngx_http_gunzip_filter_module \
+                      ngx_http_userid_filter_module \
+                      ngx_http_headers_filter_module \
+                      ngx_http_copy_filter_module \
+                      ngx_http_range_body_filter_module \
+                      ngx_http_not_modified_filter_module \
+                      ngx_http_slice_filter_module"
 
-ngx_module_type=HTTP_FILTER
-HTTP_FILTER_MODULES=
+    if :; then
+        ngx_module_name=ngx_http_write_filter_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/ngx_http_write_filter_module.c
+        ngx_module_libs=
+        ngx_module_link=YES
 
-ngx_module_order="ngx_http_static_module \
-                  ngx_http_gzip_static_module \
-                  ngx_http_dav_module \
-                  ngx_http_autoindex_module \
-                  ngx_http_index_module \
-                  ngx_http_random_index_module \
-                  ngx_http_access_module \
-                  ngx_http_realip_module \
-                  ngx_http_write_filter_module \
-                  ngx_http_header_filter_module \
-                  ngx_http_chunked_filter_module \
-                  ngx_http_v2_filter_module \
-                  ngx_http_range_header_filter_module \
-                  ngx_http_gzip_filter_module \
-                  ngx_http_postpone_filter_module \
-                  ngx_http_ssi_filter_module \
-                  ngx_http_charset_filter_module \
-                  ngx_http_xslt_filter_module \
-                  ngx_http_image_filter_module \
-                  ngx_http_sub_filter_module \
-                  ngx_http_addition_filter_module \
-                  ngx_http_gunzip_filter_module \
-                  ngx_http_userid_filter_module \
-                  ngx_http_headers_filter_module \
-                  ngx_http_copy_filter_module \
-                  ngx_http_range_body_filter_module \
-                  ngx_http_not_modified_filter_module \
-                  ngx_http_slice_filter_module"
+        . $NGX_AUTO/module
+    fi
 
-if :; then
-    ngx_module_name=ngx_http_write_filter_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/ngx_http_write_filter_module.c
-    ngx_module_libs=
-    ngx_module_link=YES
+    if :; then
+        ngx_module_name=ngx_http_header_filter_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/ngx_http_header_filter_module.c
+        ngx_module_libs=
+        ngx_module_link=YES
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if :; then
-    ngx_module_name=ngx_http_header_filter_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/ngx_http_header_filter_module.c
-    ngx_module_libs=
-    ngx_module_link=YES
+    if :; then
+        ngx_module_name=ngx_http_chunked_filter_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_chunked_filter_module.c
+        ngx_module_libs=
+        ngx_module_link=YES
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if :; then
-    ngx_module_name=ngx_http_chunked_filter_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_chunked_filter_module.c
-    ngx_module_libs=
-    ngx_module_link=YES
+    if [ $HTTP_V2 = YES ]; then
+        ngx_module_name=ngx_http_v2_filter_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/v2/ngx_http_v2_filter_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_V2
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_V2 = YES ]; then
-    ngx_module_name=ngx_http_v2_filter_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/v2/ngx_http_v2_filter_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_V2
+    if :; then
+        ngx_module_name=ngx_http_range_header_filter_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_range_filter_module.c
+        ngx_module_libs=
+        ngx_module_link=YES
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if :; then
-    ngx_module_name=ngx_http_range_header_filter_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_range_filter_module.c
-    ngx_module_libs=
-    ngx_module_link=YES
+    if [ $HTTP_GZIP = YES ]; then
+        have=NGX_HTTP_GZIP . $NGX_AUTO/have
+        USE_ZLIB=YES
 
-    . $NGX_AUTO/module
-fi
+        ngx_module_name=ngx_http_gzip_filter_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_gzip_filter_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_GZIP
 
-if [ $HTTP_GZIP = YES ]; then
-    have=NGX_HTTP_GZIP . $NGX_AUTO/have
-    USE_ZLIB=YES
+        . $NGX_AUTO/module
+    fi
 
-    ngx_module_name=ngx_http_gzip_filter_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_gzip_filter_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_GZIP
+    if [ $HTTP_POSTPONE = YES ]; then
+        ngx_module_name=ngx_http_postpone_filter_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/ngx_http_postpone_filter_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_POSTPONE
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_POSTPONE = YES ]; then
-    ngx_module_name=ngx_http_postpone_filter_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/ngx_http_postpone_filter_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_POSTPONE
+    if [ $HTTP_SSI = YES ]; then
+        have=NGX_HTTP_SSI . $NGX_AUTO/have
 
-    . $NGX_AUTO/module
-fi
+        ngx_module_name=ngx_http_ssi_filter_module
+        ngx_module_incs=
+        ngx_module_deps=src/http/modules/ngx_http_ssi_filter_module.h
+        ngx_module_srcs=src/http/modules/ngx_http_ssi_filter_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_SSI
 
-if [ $HTTP_SSI = YES ]; then
-    have=NGX_HTTP_SSI . $NGX_AUTO/have
+        . $NGX_AUTO/module
+    fi
 
-    ngx_module_name=ngx_http_ssi_filter_module
-    ngx_module_incs=
-    ngx_module_deps=src/http/modules/ngx_http_ssi_filter_module.h
-    ngx_module_srcs=src/http/modules/ngx_http_ssi_filter_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_SSI
+    if [ $HTTP_CHARSET = YES ]; then
+        ngx_module_name=ngx_http_charset_filter_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_charset_filter_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_CHARSET
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_CHARSET = YES ]; then
-    ngx_module_name=ngx_http_charset_filter_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_charset_filter_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_CHARSET
+    if [ $HTTP_XSLT != NO ]; then
+        ngx_module_name=ngx_http_xslt_filter_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_xslt_filter_module.c
+        ngx_module_libs=LIBXSLT
+        ngx_module_link=$HTTP_XSLT
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_XSLT != NO ]; then
-    ngx_module_name=ngx_http_xslt_filter_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_xslt_filter_module.c
-    ngx_module_libs=LIBXSLT
-    ngx_module_link=$HTTP_XSLT
+    if [ $HTTP_IMAGE_FILTER != NO ]; then
+        ngx_module_name=ngx_http_image_filter_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_image_filter_module.c
+        ngx_module_libs=LIBGD
+        ngx_module_link=$HTTP_IMAGE_FILTER
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_IMAGE_FILTER != NO ]; then
-    ngx_module_name=ngx_http_image_filter_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_image_filter_module.c
-    ngx_module_libs=LIBGD
-    ngx_module_link=$HTTP_IMAGE_FILTER
+    if [ $HTTP_SUB = YES ]; then
+        ngx_module_name=ngx_http_sub_filter_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_sub_filter_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_SUB
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_SUB = YES ]; then
-    ngx_module_name=ngx_http_sub_filter_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_sub_filter_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_SUB
+    if [ $HTTP_ADDITION = YES ]; then
+        ngx_module_name=ngx_http_addition_filter_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_addition_filter_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_ADDITION
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_ADDITION = YES ]; then
-    ngx_module_name=ngx_http_addition_filter_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_addition_filter_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_ADDITION
+    if [ $HTTP_GUNZIP = YES ]; then
+        have=NGX_HTTP_GZIP . $NGX_AUTO/have
+        USE_ZLIB=YES
 
-    . $NGX_AUTO/module
-fi
+        ngx_module_name=ngx_http_gunzip_filter_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_gunzip_filter_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_GUNZIP
 
-if [ $HTTP_GUNZIP = YES ]; then
-    have=NGX_HTTP_GZIP . $NGX_AUTO/have
-    USE_ZLIB=YES
+        . $NGX_AUTO/module
+    fi
 
-    ngx_module_name=ngx_http_gunzip_filter_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_gunzip_filter_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_GUNZIP
+    if [ $HTTP_USERID = YES ]; then
+        ngx_module_name=ngx_http_userid_filter_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_userid_filter_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_USERID
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_USERID = YES ]; then
-    ngx_module_name=ngx_http_userid_filter_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_userid_filter_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_USERID
+    if :; then
+        ngx_module_name=ngx_http_headers_filter_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_headers_filter_module.c
+        ngx_module_libs=
+        ngx_module_link=YES
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if :; then
-    ngx_module_name=ngx_http_headers_filter_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_headers_filter_module.c
-    ngx_module_libs=
-    ngx_module_link=YES
 
-    . $NGX_AUTO/module
-fi
+    ngx_module_type=HTTP_INIT_FILTER
+    HTTP_INIT_FILTER_MODULES=
 
+    if :; then
+        ngx_module_name=ngx_http_copy_filter_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/ngx_http_copy_filter_module.c
+        ngx_module_libs=
+        ngx_module_link=YES
 
-ngx_module_type=HTTP_INIT_FILTER
-HTTP_INIT_FILTER_MODULES=
+        . $NGX_AUTO/module
+    fi
 
-if :; then
-    ngx_module_name=ngx_http_copy_filter_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/ngx_http_copy_filter_module.c
-    ngx_module_libs=
-    ngx_module_link=YES
+    if :; then
+        ngx_module_name=ngx_http_range_body_filter_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=
+        ngx_module_libs=
+        ngx_module_link=YES
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if :; then
-    ngx_module_name=ngx_http_range_body_filter_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=
-    ngx_module_libs=
-    ngx_module_link=YES
+    if :; then
+        ngx_module_name=ngx_http_not_modified_filter_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_not_modified_filter_module.c
+        ngx_module_libs=
+        ngx_module_link=YES
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if :; then
-    ngx_module_name=ngx_http_not_modified_filter_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_not_modified_filter_module.c
-    ngx_module_libs=
-    ngx_module_link=YES
+    if [ $HTTP_SLICE = YES ]; then
+        ngx_module_name=ngx_http_slice_filter_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_slice_filter_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_SLICE
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_SLICE = YES ]; then
-    ngx_module_name=ngx_http_slice_filter_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_slice_filter_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_SLICE
 
-    . $NGX_AUTO/module
-fi
+    ngx_module_type=HTTP
 
+    if [ $HTTP_V2 = YES ]; then
+        have=NGX_HTTP_V2 . $NGX_AUTO/have
 
-ngx_module_type=HTTP
+        ngx_module_name=ngx_http_v2_module
+        ngx_module_incs=src/http/v2
+        ngx_module_deps="src/http/v2/ngx_http_v2.h \
+                         src/http/v2/ngx_http_v2_module.h"
+        ngx_module_srcs="src/http/v2/ngx_http_v2.c \
+                         src/http/v2/ngx_http_v2_table.c \
+                         src/http/v2/ngx_http_v2_huff_decode.c \
+                         src/http/v2/ngx_http_v2_huff_encode.c \
+                         src/http/v2/ngx_http_v2_module.c"
+        ngx_module_libs=
+        ngx_module_link=$HTTP_V2
 
-if [ $HTTP_V2 = YES ]; then
-    have=NGX_HTTP_V2 . $NGX_AUTO/have
+        . $NGX_AUTO/module
+    fi
 
-    ngx_module_name=ngx_http_v2_module
-    ngx_module_incs=src/http/v2
-    ngx_module_deps="src/http/v2/ngx_http_v2.h src/http/v2/ngx_http_v2_module.h"
-    ngx_module_srcs="src/http/v2/ngx_http_v2.c \
-                     src/http/v2/ngx_http_v2_table.c \
-                     src/http/v2/ngx_http_v2_huff_decode.c \
-                     src/http/v2/ngx_http_v2_huff_encode.c \
-                     src/http/v2/ngx_http_v2_module.c"
-    ngx_module_libs=
-    ngx_module_link=$HTTP_V2
+    if :; then
+        ngx_module_name=ngx_http_static_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_static_module.c
+        ngx_module_libs=
+        ngx_module_link=YES
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if :; then
-    ngx_module_name=ngx_http_static_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_static_module.c
-    ngx_module_libs=
-    ngx_module_link=YES
+    if [ $HTTP_GZIP_STATIC = YES ]; then
+        have=NGX_HTTP_GZIP . $NGX_AUTO/have
 
-    . $NGX_AUTO/module
-fi
+        ngx_module_name=ngx_http_gzip_static_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_gzip_static_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_GZIP_STATIC
 
-if [ $HTTP_GZIP_STATIC = YES ]; then
-    have=NGX_HTTP_GZIP . $NGX_AUTO/have
+        . $NGX_AUTO/module
+    fi
 
-    ngx_module_name=ngx_http_gzip_static_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_gzip_static_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_GZIP_STATIC
+    if [ $HTTP_DAV = YES ]; then
+        have=NGX_HTTP_DAV . $NGX_AUTO/have
 
-    . $NGX_AUTO/module
-fi
-
-if [ $HTTP_DAV = YES ]; then
-    have=NGX_HTTP_DAV . $NGX_AUTO/have
-
-    ngx_module_name=ngx_http_dav_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_dav_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_DAV
+        ngx_module_name=ngx_http_dav_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_dav_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_DAV
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_AUTOINDEX = YES ]; then
-    ngx_module_name=ngx_http_autoindex_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_autoindex_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_AUTOINDEX
+    if [ $HTTP_AUTOINDEX = YES ]; then
+        ngx_module_name=ngx_http_autoindex_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_autoindex_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_AUTOINDEX
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if :; then
-    ngx_module_name=ngx_http_index_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_index_module.c
-    ngx_module_libs=
-    ngx_module_link=YES
+    if :; then
+        ngx_module_name=ngx_http_index_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_index_module.c
+        ngx_module_libs=
+        ngx_module_link=YES
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_RANDOM_INDEX = YES ]; then
-    ngx_module_name=ngx_http_random_index_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_random_index_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_RANDOM_INDEX
+    if [ $HTTP_RANDOM_INDEX = YES ]; then
+        ngx_module_name=ngx_http_random_index_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_random_index_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_RANDOM_INDEX
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_AUTH_REQUEST = YES ]; then
-    ngx_module_name=ngx_http_auth_request_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_auth_request_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_AUTH_REQUEST
+    if [ $HTTP_AUTH_REQUEST = YES ]; then
+        ngx_module_name=ngx_http_auth_request_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_auth_request_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_AUTH_REQUEST
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_AUTH_BASIC = YES ]; then
-    have=NGX_CRYPT . $NGX_AUTO/have
+    if [ $HTTP_AUTH_BASIC = YES ]; then
+        have=NGX_CRYPT . $NGX_AUTO/have
 
-    ngx_module_name=ngx_http_auth_basic_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_auth_basic_module.c
-    ngx_module_libs=$CRYPT_LIB
-    ngx_module_link=$HTTP_AUTH_BASIC
+        ngx_module_name=ngx_http_auth_basic_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_auth_basic_module.c
+        ngx_module_libs=$CRYPT_LIB
+        ngx_module_link=$HTTP_AUTH_BASIC
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_ACCESS = YES ]; then
-    ngx_module_name=ngx_http_access_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_access_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_ACCESS
+    if [ $HTTP_ACCESS = YES ]; then
+        ngx_module_name=ngx_http_access_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_access_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_ACCESS
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_LIMIT_CONN = YES ]; then
-    ngx_module_name=ngx_http_limit_conn_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_limit_conn_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_LIMIT_CONN
+    if [ $HTTP_LIMIT_CONN = YES ]; then
+        ngx_module_name=ngx_http_limit_conn_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_limit_conn_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_LIMIT_CONN
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_LIMIT_REQ = YES ]; then
-    ngx_module_name=ngx_http_limit_req_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_limit_req_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_LIMIT_REQ
+    if [ $HTTP_LIMIT_REQ = YES ]; then
+        ngx_module_name=ngx_http_limit_req_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_limit_req_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_LIMIT_REQ
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_REALIP = YES ]; then
-    have=NGX_HTTP_REALIP . $NGX_AUTO/have
-    have=NGX_HTTP_X_FORWARDED_FOR . $NGX_AUTO/have
+    if [ $HTTP_REALIP = YES ]; then
+        have=NGX_HTTP_REALIP . $NGX_AUTO/have
+        have=NGX_HTTP_X_FORWARDED_FOR . $NGX_AUTO/have
 
-    ngx_module_name=ngx_http_realip_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_realip_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_REALIP
+        ngx_module_name=ngx_http_realip_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_realip_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_REALIP
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_STATUS = YES ]; then
-    ngx_module_name=ngx_http_status_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_status_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_STATUS
+    if [ $HTTP_STATUS = YES ]; then
+        ngx_module_name=ngx_http_status_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_status_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_STATUS
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_GEO = YES ]; then
-    have=NGX_HTTP_X_FORWARDED_FOR . $NGX_AUTO/have
+    if [ $HTTP_GEO = YES ]; then
+        have=NGX_HTTP_X_FORWARDED_FOR . $NGX_AUTO/have
 
-    ngx_module_name=ngx_http_geo_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_geo_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_GEO
+        ngx_module_name=ngx_http_geo_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_geo_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_GEO
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_GEOIP != NO ]; then
-    have=NGX_HTTP_X_FORWARDED_FOR . $NGX_AUTO/have
+    if [ $HTTP_GEOIP != NO ]; then
+        have=NGX_HTTP_X_FORWARDED_FOR . $NGX_AUTO/have
 
-    ngx_module_name=ngx_http_geoip_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_geoip_module.c
-    ngx_module_libs=GEOIP
-    ngx_module_link=$HTTP_GEOIP
+        ngx_module_name=ngx_http_geoip_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_geoip_module.c
+        ngx_module_libs=GEOIP
+        ngx_module_link=$HTTP_GEOIP
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_MAP = YES ]; then
-    ngx_module_name=ngx_http_map_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_map_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_MAP
+    if [ $HTTP_MAP = YES ]; then
+        ngx_module_name=ngx_http_map_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_map_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_MAP
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_SPLIT_CLIENTS = YES ]; then
-    ngx_module_name=ngx_http_split_clients_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_split_clients_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_SPLIT_CLIENTS
+    if [ $HTTP_SPLIT_CLIENTS = YES ]; then
+        ngx_module_name=ngx_http_split_clients_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_split_clients_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_SPLIT_CLIENTS
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_REFERER = YES ]; then
-    ngx_module_name=ngx_http_referer_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_referer_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_REFERER
+    if [ $HTTP_REFERER = YES ]; then
+        ngx_module_name=ngx_http_referer_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_referer_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_REFERER
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_REWRITE = YES -a $USE_PCRE != DISABLED ]; then
-    USE_PCRE=YES
+    if [ $HTTP_REWRITE = YES -a $USE_PCRE != DISABLED ]; then
+        USE_PCRE=YES
 
-    ngx_module_name=ngx_http_rewrite_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_rewrite_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_REWRITE
+        ngx_module_name=ngx_http_rewrite_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_rewrite_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_REWRITE
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_SSL = YES ]; then
-    USE_OPENSSL=YES
-    have=NGX_HTTP_SSL . $NGX_AUTO/have
+    if [ $HTTP_SSL = YES ]; then
+        USE_OPENSSL=YES
+        have=NGX_HTTP_SSL . $NGX_AUTO/have
 
-    ngx_module_name=ngx_http_ssl_module
-    ngx_module_incs=
-    ngx_module_deps=src/http/modules/ngx_http_ssl_module.h
-    ngx_module_srcs=src/http/modules/ngx_http_ssl_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_SSL
+        ngx_module_name=ngx_http_ssl_module
+        ngx_module_incs=
+        ngx_module_deps=src/http/modules/ngx_http_ssl_module.h
+        ngx_module_srcs=src/http/modules/ngx_http_ssl_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_SSL
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_PROXY = YES ]; then
-    have=NGX_HTTP_X_FORWARDED_FOR . $NGX_AUTO/have
+    if [ $HTTP_PROXY = YES ]; then
+        have=NGX_HTTP_X_FORWARDED_FOR . $NGX_AUTO/have
 
-    ngx_module_name=ngx_http_proxy_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_proxy_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_PROXY
+        ngx_module_name=ngx_http_proxy_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_proxy_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_PROXY
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_FASTCGI = YES ]; then
-    ngx_module_name=ngx_http_fastcgi_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_fastcgi_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_FASTCGI
+    if [ $HTTP_FASTCGI = YES ]; then
+        ngx_module_name=ngx_http_fastcgi_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_fastcgi_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_FASTCGI
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_UWSGI = YES ]; then
-    ngx_module_name=ngx_http_uwsgi_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_uwsgi_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_UWSGI
+    if [ $HTTP_UWSGI = YES ]; then
+        ngx_module_name=ngx_http_uwsgi_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_uwsgi_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_UWSGI
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_SCGI = YES ]; then
-    ngx_module_name=ngx_http_scgi_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_scgi_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_SCGI
+    if [ $HTTP_SCGI = YES ]; then
+        ngx_module_name=ngx_http_scgi_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_scgi_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_SCGI
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_PERL != NO ]; then
-    ngx_module_name=ngx_http_perl_module
-    ngx_module_incs=src/http/modules/perl
-    ngx_module_deps=src/http/modules/perl/ngx_http_perl_module.h
-    ngx_module_srcs=src/http/modules/perl/ngx_http_perl_module.c
-    ngx_module_libs=PERL
-    ngx_module_link=$HTTP_PERL
+    if [ $HTTP_PERL != NO ]; then
+        ngx_module_name=ngx_http_perl_module
+        ngx_module_incs=src/http/modules/perl
+        ngx_module_deps=src/http/modules/perl/ngx_http_perl_module.h
+        ngx_module_srcs=src/http/modules/perl/ngx_http_perl_module.c
+        ngx_module_libs=PERL
+        ngx_module_link=$HTTP_PERL
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_MEMCACHED = YES ]; then
-    ngx_module_name=ngx_http_memcached_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_memcached_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_MEMCACHED
+    if [ $HTTP_MEMCACHED = YES ]; then
+        ngx_module_name=ngx_http_memcached_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_memcached_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_MEMCACHED
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_EMPTY_GIF = YES ]; then
-    ngx_module_name=ngx_http_empty_gif_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_empty_gif_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_EMPTY_GIF
+    if [ $HTTP_EMPTY_GIF = YES ]; then
+        ngx_module_name=ngx_http_empty_gif_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_empty_gif_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_EMPTY_GIF
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_BROWSER = YES ]; then
-    ngx_module_name=ngx_http_browser_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_browser_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_BROWSER
+    if [ $HTTP_BROWSER = YES ]; then
+        ngx_module_name=ngx_http_browser_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_browser_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_BROWSER
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_SECURE_LINK = YES ]; then
-    ngx_module_name=ngx_http_secure_link_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_secure_link_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_SECURE_LINK
+    if [ $HTTP_SECURE_LINK = YES ]; then
+        ngx_module_name=ngx_http_secure_link_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_secure_link_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_SECURE_LINK
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_DEGRADATION = YES ]; then
-    have=NGX_HTTP_DEGRADATION . $NGX_AUTO/have
+    if [ $HTTP_DEGRADATION = YES ]; then
+        have=NGX_HTTP_DEGRADATION . $NGX_AUTO/have
 
-    ngx_module_name=ngx_http_degradation_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_degradation_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_DEGRADATION
+        ngx_module_name=ngx_http_degradation_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_degradation_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_DEGRADATION
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_FLV = YES ]; then
-    ngx_module_name=ngx_http_flv_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_flv_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_FLV
+    if [ $HTTP_FLV = YES ]; then
+        ngx_module_name=ngx_http_flv_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_flv_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_FLV
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_MP4 = YES ]; then
-    ngx_module_name=ngx_http_mp4_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_mp4_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_MP4
+    if [ $HTTP_MP4 = YES ]; then
+        ngx_module_name=ngx_http_mp4_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_mp4_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_MP4
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_UPSTREAM_HASH = YES ]; then
-    ngx_module_name=ngx_http_upstream_hash_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_upstream_hash_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_UPSTREAM_HASH
+    if [ $HTTP_UPSTREAM_HASH = YES ]; then
+        ngx_module_name=ngx_http_upstream_hash_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_upstream_hash_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_UPSTREAM_HASH
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_UPSTREAM_IP_HASH = YES ]; then
-    ngx_module_name=ngx_http_upstream_ip_hash_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_upstream_ip_hash_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_UPSTREAM_IP_HASH
+    if [ $HTTP_UPSTREAM_IP_HASH = YES ]; then
+        ngx_module_name=ngx_http_upstream_ip_hash_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_upstream_ip_hash_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_UPSTREAM_IP_HASH
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_UPSTREAM_LEAST_CONN = YES ]; then
-    ngx_module_name=ngx_http_upstream_least_conn_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_upstream_least_conn_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_UPSTREAM_LEAST_CONN
+    if [ $HTTP_UPSTREAM_LEAST_CONN = YES ]; then
+        ngx_module_name=ngx_http_upstream_least_conn_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_upstream_least_conn_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_UPSTREAM_LEAST_CONN
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_UPSTREAM_KEEPALIVE = YES ]; then
-    ngx_module_name=ngx_http_upstream_keepalive_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_upstream_keepalive_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_UPSTREAM_KEEPALIVE
+    if [ $HTTP_UPSTREAM_KEEPALIVE = YES ]; then
+        ngx_module_name=ngx_http_upstream_keepalive_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_upstream_keepalive_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_UPSTREAM_KEEPALIVE
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_UPSTREAM_ZONE = YES ]; then
-    have=NGX_HTTP_UPSTREAM_ZONE . $NGX_AUTO/have
+    if [ $HTTP_UPSTREAM_ZONE = YES ]; then
+        have=NGX_HTTP_UPSTREAM_ZONE . $NGX_AUTO/have
 
-    ngx_module_name=ngx_http_upstream_zone_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_upstream_zone_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_UPSTREAM_ZONE
+        ngx_module_name=ngx_http_upstream_zone_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_upstream_zone_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_UPSTREAM_ZONE
 
-    . $NGX_AUTO/module
-fi
+        . $NGX_AUTO/module
+    fi
 
-if [ $HTTP_STUB_STATUS = YES ]; then
-    have=NGX_STAT_STUB . $NGX_AUTO/have
+    if [ $HTTP_STUB_STATUS = YES ]; then
+        have=NGX_STAT_STUB . $NGX_AUTO/have
 
-    ngx_module_name=ngx_http_stub_status_module
-    ngx_module_incs=
-    ngx_module_deps=
-    ngx_module_srcs=src/http/modules/ngx_http_stub_status_module.c
-    ngx_module_libs=
-    ngx_module_link=$HTTP_STUB_STATUS
+        ngx_module_name=ngx_http_stub_status_module
+        ngx_module_incs=
+        ngx_module_deps=
+        ngx_module_srcs=src/http/modules/ngx_http_stub_status_module.c
+        ngx_module_libs=
+        ngx_module_link=$HTTP_STUB_STATUS
 
-    . $NGX_AUTO/module
+        . $NGX_AUTO/module
+    fi
 fi
 
 
@@ -966,6 +963,8 @@
     STREAM_INCS=
 
     ngx_module_type=STREAM
+    ngx_module_libs=
+    ngx_module_link=YES
 
     ngx_module_order=
 
diff --git a/auto/options b/auto/options
index e90a653..2311b48 100644
--- a/auto/options
+++ b/auto/options
@@ -574,19 +574,6 @@
 fi
 
 
-if [ $HTTP = NO ]; then
-    HTTP_CHARSET=NO
-    HTTP_GZIP=NO
-    HTTP_SSI=NO
-    HTTP_USERID=NO
-    HTTP_ACCESS=NO
-    HTTP_STATUS=NO
-    HTTP_REWRITE=NO
-    HTTP_PROXY=NO
-    HTTP_FASTCGI=NO
-fi
-
-
 if [ ".$NGX_PLATFORM" = ".win32" ]; then
     NGX_WINE=$WINE
 fi
diff --git a/build.bzl b/build.bzl
index a48752d..94bf20e 100644
--- a/build.bzl
+++ b/build.bzl
@@ -663,7 +663,7 @@
         name = "nginx_pkgoss",
         build_file_content = _PKGOSS_BUILD_FILE.format(nginx = nginx) +
                              _PKGOSS_BUILD_FILE_TAIL,
-        commit = "d32bf01ba9785ace73e8da01dfe792fd229dcc7a",  # nginx-1.11.10
+        commit = "d80a760096c57ba3db2560557e5db9a63d2fed47",  # nginx-1.11.11
         remote = "https://nginx.googlesource.com/nginx-pkgoss",
     )
 
diff --git a/contrib/vim/syntax/nginx.vim b/contrib/vim/syntax/nginx.vim
index f1fd48a..a52891b 100644
--- a/contrib/vim/syntax/nginx.vim
+++ b/contrib/vim/syntax/nginx.vim
@@ -13,7 +13,7 @@
 syn match ngxVariableBlock '\$\(\w\+\|{\w\+}\)' contained
 syn match ngxVariableString '\$\(\w\+\|{\w\+}\)' contained
 syn region ngxBlock start=+^+ end=+{+ skip=+\${+ contains=ngxComment,ngxDirectiveBlock,ngxVariableBlock,ngxString oneline
-syn region ngxString start=+\z(["']\)+ end=+\z1+ skip=+\\\\\|\\\z1+ contains=ngxVariableString
+syn region ngxString start=+[^:a-zA-Z>!\\@]\z(["']\)+lc=1 end=+\z1+ skip=+\\\\\|\\\z1+ contains=ngxVariableString
 syn match ngxComment ' *#.*$'
 
 syn keyword ngxBoolean on
@@ -37,7 +37,8 @@
 syn keyword ngxDirectiveImportant root
 syn keyword ngxDirectiveImportant server
 syn keyword ngxDirectiveImportant server_name
-syn keyword ngxDirectiveImportant listen
+syn keyword ngxDirectiveImportant listen contained
+syn region  ngxDirectiveImportantListen matchgroup=ngxDirectiveImportant start=+listen+ skip=+\\\\\|\\\;+ end=+;+he=e-1 contains=ngxListenOptions,ngxString
 syn keyword ngxDirectiveImportant internal
 syn keyword ngxDirectiveImportant proxy_pass
 syn keyword ngxDirectiveImportant memcached_pass
@@ -46,6 +47,24 @@
 syn keyword ngxDirectiveImportant uwsgi_pass
 syn keyword ngxDirectiveImportant try_files
 
+syn keyword ngxListenOptions default_server contained
+syn keyword ngxListenOptions ssl            contained
+syn keyword ngxListenOptions http2          contained
+syn keyword ngxListenOptions spdy           contained
+syn keyword ngxListenOptions proxy_protocol contained
+syn keyword ngxListenOptions setfib         contained
+syn keyword ngxListenOptions fastopen       contained
+syn keyword ngxListenOptions backlog        contained
+syn keyword ngxListenOptions rcvbuf         contained
+syn keyword ngxListenOptions sndbuf         contained
+syn keyword ngxListenOptions accept_filter  contained
+syn keyword ngxListenOptions deferred       contained
+syn keyword ngxListenOptions bind           contained
+syn keyword ngxListenOptions ipv6only       contained
+syn keyword ngxListenOptions reuseport      contained
+syn keyword ngxListenOptions so_keepalive   contained
+syn keyword ngxListenOptions keepidle       contained
+
 syn keyword ngxDirectiveControl break
 syn keyword ngxDirectiveControl return
 syn keyword ngxDirectiveControl rewrite
@@ -63,6 +82,7 @@
 syn keyword ngxDirectiveDeprecated satisfy_any
 syn keyword ngxDirectiveDeprecated so_keepalive
 
+syn keyword ngxDirective absolute_redirect
 syn keyword ngxDirective accept_mutex
 syn keyword ngxDirective accept_mutex_delay
 syn keyword ngxDirective acceptex_read
@@ -72,6 +92,7 @@
 syn keyword ngxDirective add_header
 syn keyword ngxDirective addition_types
 syn keyword ngxDirective aio
+syn keyword ngxDirective aio_write
 syn keyword ngxDirective alias
 syn keyword ngxDirective allow
 syn keyword ngxDirective ancient_browser
@@ -80,13 +101,18 @@
 syn keyword ngxDirective auth_basic_user_file
 syn keyword ngxDirective auth_http
 syn keyword ngxDirective auth_http_header
+syn keyword ngxDirective auth_http_pass_client_cert
 syn keyword ngxDirective auth_http_timeout
+syn keyword ngxDirective auth_jwt
+syn keyword ngxDirective auth_jwt_key_file
 syn keyword ngxDirective auth_request
 syn keyword ngxDirective auth_request_set
 syn keyword ngxDirective autoindex
 syn keyword ngxDirective autoindex_exact_size
+syn keyword ngxDirective autoindex_format
 syn keyword ngxDirective autoindex_localtime
 syn keyword ngxDirective charset
+syn keyword ngxDirective charset_map
 syn keyword ngxDirective charset_types
 syn keyword ngxDirective chunked_transfer_encoding
 syn keyword ngxDirective client_body_buffer_size
@@ -120,6 +146,8 @@
 syn keyword ngxDirective etag
 syn keyword ngxDirective eventport_events
 syn keyword ngxDirective expires
+syn keyword ngxDirective f4f
+syn keyword ngxDirective f4f_buffer_size
 syn keyword ngxDirective fastcgi_bind
 syn keyword ngxDirective fastcgi_buffer_size
 syn keyword ngxDirective fastcgi_buffering
@@ -129,10 +157,13 @@
 syn keyword ngxDirective fastcgi_cache_bypass
 syn keyword ngxDirective fastcgi_cache_key
 syn keyword ngxDirective fastcgi_cache_lock
+syn keyword ngxDirective fastcgi_cache_lock_age
 syn keyword ngxDirective fastcgi_cache_lock_timeout
+syn keyword ngxDirective fastcgi_cache_max_range_offset
 syn keyword ngxDirective fastcgi_cache_methods
 syn keyword ngxDirective fastcgi_cache_min_uses
 syn keyword ngxDirective fastcgi_cache_path
+syn keyword ngxDirective fastcgi_cache_purge
 syn keyword ngxDirective fastcgi_cache_revalidate
 syn keyword ngxDirective fastcgi_cache_use_stale
 syn keyword ngxDirective fastcgi_cache_valid
@@ -145,6 +176,7 @@
 syn keyword ngxDirective fastcgi_index
 syn keyword ngxDirective fastcgi_intercept_errors
 syn keyword ngxDirective fastcgi_keep_conn
+syn keyword ngxDirective fastcgi_limit_rate
 syn keyword ngxDirective fastcgi_max_temp_file_size
 syn keyword ngxDirective fastcgi_next_upstream
 syn keyword ngxDirective fastcgi_next_upstream_timeout
@@ -155,6 +187,7 @@
 syn keyword ngxDirective fastcgi_pass_request_body
 syn keyword ngxDirective fastcgi_pass_request_headers
 syn keyword ngxDirective fastcgi_read_timeout
+syn keyword ngxDirective fastcgi_request_buffering
 syn keyword ngxDirective fastcgi_send_lowat
 syn keyword ngxDirective fastcgi_send_timeout
 syn keyword ngxDirective fastcgi_split_path_info
@@ -185,6 +218,23 @@
 syn keyword ngxDirective gzip_vary
 syn keyword ngxDirective gzip_window
 syn keyword ngxDirective hash
+syn keyword ngxDirective health_check
+syn keyword ngxDirective health_check_timeout
+syn keyword ngxDirective hls
+syn keyword ngxDirective hls_buffers
+syn keyword ngxDirective hls_forward_args
+syn keyword ngxDirective hls_fragment
+syn keyword ngxDirective hls_mp4_buffer_size
+syn keyword ngxDirective hls_mp4_max_buffer_size
+syn keyword ngxDirective http2_chunk_size
+syn keyword ngxDirective http2_body_preread_size
+syn keyword ngxDirective http2_idle_timeout
+syn keyword ngxDirective http2_max_concurrent_streams
+syn keyword ngxDirective http2_max_field_size
+syn keyword ngxDirective http2_max_header_size
+syn keyword ngxDirective http2_max_requests
+syn keyword ngxDirective http2_recv_buffer_size
+syn keyword ngxDirective http2_recv_timeout
 syn keyword ngxDirective if_modified_since
 syn keyword ngxDirective ignore_invalid_headers
 syn keyword ngxDirective image_filter
@@ -193,12 +243,19 @@
 syn keyword ngxDirective image_filter_jpeg_quality
 syn keyword ngxDirective image_filter_sharpen
 syn keyword ngxDirective image_filter_transparency
+syn keyword ngxDirective image_filter_webp_quality
 syn keyword ngxDirective imap_auth
 syn keyword ngxDirective imap_capabilities
 syn keyword ngxDirective imap_client_buffer
 syn keyword ngxDirective index
 syn keyword ngxDirective iocp_threads
 syn keyword ngxDirective ip_hash
+syn keyword ngxDirective js_access
+syn keyword ngxDirective js_content
+syn keyword ngxDirective js_filter
+syn keyword ngxDirective js_include
+syn keyword ngxDirective js_preread
+syn keyword ngxDirective js_set
 syn keyword ngxDirective keepalive
 syn keyword ngxDirective keepalive_disable
 syn keyword ngxDirective keepalive_requests
@@ -207,6 +264,7 @@
 syn keyword ngxDirective kqueue_events
 syn keyword ngxDirective large_client_header_buffers
 syn keyword ngxDirective least_conn
+syn keyword ngxDirective least_time
 syn keyword ngxDirective limit_conn
 syn keyword ngxDirective limit_conn_log_level
 syn keyword ngxDirective limit_conn_status
@@ -220,17 +278,20 @@
 syn keyword ngxDirective lingering_close
 syn keyword ngxDirective lingering_time
 syn keyword ngxDirective lingering_timeout
+syn keyword ngxDirective load_module
 syn keyword ngxDirective lock_file
 syn keyword ngxDirective log_format
 syn keyword ngxDirective log_not_found
 syn keyword ngxDirective log_subrequest
 syn keyword ngxDirective map_hash_bucket_size
 syn keyword ngxDirective map_hash_max_size
+syn keyword ngxDirective match
 syn keyword ngxDirective master_process
 syn keyword ngxDirective max_ranges
 syn keyword ngxDirective memcached_bind
 syn keyword ngxDirective memcached_buffer_size
 syn keyword ngxDirective memcached_connect_timeout
+syn keyword ngxDirective memcached_force_ranges
 syn keyword ngxDirective memcached_gzip_flag
 syn keyword ngxDirective memcached_next_upstream
 syn keyword ngxDirective memcached_next_upstream_timeout
@@ -244,9 +305,12 @@
 syn keyword ngxDirective mp4
 syn keyword ngxDirective mp4_buffer_size
 syn keyword ngxDirective mp4_max_buffer_size
+syn keyword ngxDirective mp4_limit_rate
+syn keyword ngxDirective mp4_limit_rate_after
 syn keyword ngxDirective msie_padding
 syn keyword ngxDirective msie_refresh
 syn keyword ngxDirective multi_accept
+syn keyword ngxDirective ntlm
 syn keyword ngxDirective open_file_cache
 syn keyword ngxDirective open_file_cache_errors
 syn keyword ngxDirective open_file_cache_events
@@ -267,7 +331,10 @@
 syn keyword ngxDirective post_acceptex
 syn keyword ngxDirective postpone_gzipping
 syn keyword ngxDirective postpone_output
-syn keyword ngxDirective protocol
+syn keyword ngxDirective preread_buffer_size
+syn keyword ngxDirective preread_timeout
+syn keyword ngxDirective protocol nextgroup=ngxMailProtocol skipwhite
+syn keyword ngxMailProtocol imap pop3 smtp contained
 syn keyword ngxDirective proxy
 syn keyword ngxDirective proxy_bind
 syn keyword ngxDirective proxy_buffer
@@ -277,18 +344,23 @@
 syn keyword ngxDirective proxy_busy_buffers_size
 syn keyword ngxDirective proxy_cache
 syn keyword ngxDirective proxy_cache_bypass
+syn keyword ngxDirective proxy_cache_convert_head
 syn keyword ngxDirective proxy_cache_key
 syn keyword ngxDirective proxy_cache_lock
+syn keyword ngxDirective proxy_cache_lock_age
 syn keyword ngxDirective proxy_cache_lock_timeout
+syn keyword ngxDirective proxy_cache_max_range_offset
 syn keyword ngxDirective proxy_cache_methods
 syn keyword ngxDirective proxy_cache_min_uses
 syn keyword ngxDirective proxy_cache_path
+syn keyword ngxDirective proxy_cache_purge
 syn keyword ngxDirective proxy_cache_revalidate
 syn keyword ngxDirective proxy_cache_use_stale
 syn keyword ngxDirective proxy_cache_valid
 syn keyword ngxDirective proxy_connect_timeout
 syn keyword ngxDirective proxy_cookie_domain
 syn keyword ngxDirective proxy_cookie_path
+syn keyword ngxDirective proxy_download_rate
 syn keyword ngxDirective proxy_force_ranges
 syn keyword ngxDirective proxy_headers_hash_bucket_size
 syn keyword ngxDirective proxy_headers_hash_max_size
@@ -297,6 +369,7 @@
 syn keyword ngxDirective proxy_ignore_client_abort
 syn keyword ngxDirective proxy_ignore_headers
 syn keyword ngxDirective proxy_intercept_errors
+syn keyword ngxDirective proxy_limit_rate
 syn keyword ngxDirective proxy_max_temp_file_size
 syn keyword ngxDirective proxy_method
 syn keyword ngxDirective proxy_next_upstream
@@ -307,16 +380,23 @@
 syn keyword ngxDirective proxy_pass_header
 syn keyword ngxDirective proxy_pass_request_body
 syn keyword ngxDirective proxy_pass_request_headers
+syn keyword ngxDirective proxy_protocol
+syn keyword ngxDirective proxy_protocol_timeout
 syn keyword ngxDirective proxy_read_timeout
 syn keyword ngxDirective proxy_redirect
+syn keyword ngxDirective proxy_request_buffering
+syn keyword ngxDirective proxy_responses
 syn keyword ngxDirective proxy_send_lowat
 syn keyword ngxDirective proxy_send_timeout
 syn keyword ngxDirective proxy_set_body
 syn keyword ngxDirective proxy_set_header
+syn keyword ngxDirective proxy_ssl_certificate
+syn keyword ngxDirective proxy_ssl_certificate_key
 syn keyword ngxDirective proxy_ssl_ciphers
 syn keyword ngxDirective proxy_ssl_crl
 syn keyword ngxDirective proxy_ssl_name
-syn keyword ngxDirective proxy_ssl_protocols
+syn keyword ngxDirective proxy_ssl_password_file
+syn keyword ngxDirective proxy_ssl_protocols nextgroup=ngxSSLProtocol skipwhite
 syn keyword ngxDirective proxy_ssl_server_name
 syn keyword ngxDirective proxy_ssl_session_reuse
 syn keyword ngxDirective proxy_ssl_trusted_certificate
@@ -327,6 +407,8 @@
 syn keyword ngxDirective proxy_temp_file_write_size
 syn keyword ngxDirective proxy_temp_path
 syn keyword ngxDirective proxy_timeout
+syn keyword ngxDirective proxy_upload_rate
+syn keyword ngxDirective queue
 syn keyword ngxDirective random_index
 syn keyword ngxDirective read_ahead
 syn keyword ngxDirective real_ip_header
@@ -353,10 +435,13 @@
 syn keyword ngxDirective scgi_cache_bypass
 syn keyword ngxDirective scgi_cache_key
 syn keyword ngxDirective scgi_cache_lock
+syn keyword ngxDirective scgi_cache_lock_age
 syn keyword ngxDirective scgi_cache_lock_timeout
+syn keyword ngxDirective scgi_cache_max_range_offset
 syn keyword ngxDirective scgi_cache_methods
 syn keyword ngxDirective scgi_cache_min_uses
 syn keyword ngxDirective scgi_cache_path
+syn keyword ngxDirective scgi_cache_purge
 syn keyword ngxDirective scgi_cache_revalidate
 syn keyword ngxDirective scgi_cache_use_stale
 syn keyword ngxDirective scgi_cache_valid
@@ -366,6 +451,7 @@
 syn keyword ngxDirective scgi_ignore_client_abort
 syn keyword ngxDirective scgi_ignore_headers
 syn keyword ngxDirective scgi_intercept_errors
+syn keyword ngxDirective scgi_limit_rate
 syn keyword ngxDirective scgi_max_temp_file_size
 syn keyword ngxDirective scgi_next_upstream
 syn keyword ngxDirective scgi_next_upstream_timeout
@@ -376,6 +462,7 @@
 syn keyword ngxDirective scgi_pass_request_body
 syn keyword ngxDirective scgi_pass_request_headers
 syn keyword ngxDirective scgi_read_timeout
+syn keyword ngxDirective scgi_request_buffering
 syn keyword ngxDirective scgi_send_timeout
 syn keyword ngxDirective scgi_store
 syn keyword ngxDirective scgi_store_access
@@ -392,7 +479,11 @@
 syn keyword ngxDirective server_names_hash_bucket_size
 syn keyword ngxDirective server_names_hash_max_size
 syn keyword ngxDirective server_tokens
+syn keyword ngxDirective session_log
+syn keyword ngxDirective session_log_format
+syn keyword ngxDirective session_log_zone
 syn keyword ngxDirective set_real_ip_from
+syn keyword ngxDirective slice
 syn keyword ngxDirective smtp_auth
 syn keyword ngxDirective smtp_capabilities
 syn keyword ngxDirective smtp_client_buffer
@@ -423,9 +514,12 @@
 syn keyword ngxDirective ssl_dhparam
 syn keyword ngxDirective ssl_ecdh_curve
 syn keyword ngxDirective ssl_engine
+syn keyword ngxDirective ssl_handshake_timeout
 syn keyword ngxDirective ssl_password_file
 syn keyword ngxDirective ssl_prefer_server_ciphers
-syn keyword ngxDirective ssl_protocols
+syn keyword ngxDirective ssl_preread
+syn keyword ngxDirective ssl_protocols nextgroup=ngxSSLProtocol skipwhite
+syn keyword ngxSSLProtocol SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2 contained nextgroup=ngxSSLProtocol skipwhite
 syn keyword ngxDirective ssl_session_cache
 syn keyword ngxDirective ssl_session_ticket_key
 syn keyword ngxDirective ssl_session_tickets
@@ -438,6 +532,12 @@
 syn keyword ngxDirective ssl_verify_client
 syn keyword ngxDirective ssl_verify_depth
 syn keyword ngxDirective starttls
+syn keyword ngxDirective state
+syn keyword ngxDirective status
+syn keyword ngxDirective status_format
+syn keyword ngxDirective status_zone
+syn keyword ngxDirective sticky
+syn keyword ngxDirective sticky_cookie_insert
 syn keyword ngxDirective stub_status
 syn keyword ngxDirective sub_filter
 syn keyword ngxDirective sub_filter_last_modified
@@ -445,6 +545,7 @@
 syn keyword ngxDirective sub_filter_types
 syn keyword ngxDirective tcp_nodelay
 syn keyword ngxDirective tcp_nopush
+syn keyword ngxDirective thread_pool
 syn keyword ngxDirective thread_stack_size
 syn keyword ngxDirective timeout
 syn keyword ngxDirective timer_resolution
@@ -452,6 +553,7 @@
 syn keyword ngxDirective types_hash_max_size
 syn keyword ngxDirective underscores_in_headers
 syn keyword ngxDirective uninitialized_variable_warn
+syn keyword ngxDirective upstream_conf
 syn keyword ngxDirective use
 syn keyword ngxDirective user
 syn keyword ngxDirective userid
@@ -471,10 +573,12 @@
 syn keyword ngxDirective uwsgi_cache_bypass
 syn keyword ngxDirective uwsgi_cache_key
 syn keyword ngxDirective uwsgi_cache_lock
+syn keyword ngxDirective uwsgi_cache_lock_age
 syn keyword ngxDirective uwsgi_cache_lock_timeout
 syn keyword ngxDirective uwsgi_cache_methods
 syn keyword ngxDirective uwsgi_cache_min_uses
 syn keyword ngxDirective uwsgi_cache_path
+syn keyword ngxDirective uwsgi_cache_purge
 syn keyword ngxDirective uwsgi_cache_revalidate
 syn keyword ngxDirective uwsgi_cache_use_stale
 syn keyword ngxDirective uwsgi_cache_valid
@@ -484,6 +588,7 @@
 syn keyword ngxDirective uwsgi_ignore_client_abort
 syn keyword ngxDirective uwsgi_ignore_headers
 syn keyword ngxDirective uwsgi_intercept_errors
+syn keyword ngxDirective uwsgi_limit_rate
 syn keyword ngxDirective uwsgi_max_temp_file_size
 syn keyword ngxDirective uwsgi_modifier1
 syn keyword ngxDirective uwsgi_modifier2
@@ -492,15 +597,20 @@
 syn keyword ngxDirective uwsgi_next_upstream_tries
 syn keyword ngxDirective uwsgi_no_cache
 syn keyword ngxDirective uwsgi_param
+syn keyword ngxDirective uwsgi_pass
 syn keyword ngxDirective uwsgi_pass_header
 syn keyword ngxDirective uwsgi_pass_request_body
 syn keyword ngxDirective uwsgi_pass_request_headers
 syn keyword ngxDirective uwsgi_read_timeout
+syn keyword ngxDirective uwsgi_request_buffering
 syn keyword ngxDirective uwsgi_send_timeout
+syn keyword ngxDirective uwsgi_ssl_certificate
+syn keyword ngxDirective uwsgi_ssl_certificate_key
 syn keyword ngxDirective uwsgi_ssl_ciphers
 syn keyword ngxDirective uwsgi_ssl_crl
 syn keyword ngxDirective uwsgi_ssl_name
-syn keyword ngxDirective uwsgi_ssl_protocols
+syn keyword ngxDirective uwsgi_ssl_password_file
+syn keyword ngxDirective uwsgi_ssl_protocols nextgroup=ngxSSLProtocol skipwhite
 syn keyword ngxDirective uwsgi_ssl_server_name
 syn keyword ngxDirective uwsgi_ssl_session_reuse
 syn keyword ngxDirective uwsgi_ssl_trusted_certificate
@@ -531,129 +641,370 @@
 syn keyword ngxDirective xslt_string_param
 syn keyword ngxDirective xslt_stylesheet
 syn keyword ngxDirective xslt_types
+syn keyword ngxDirective zone
 
 " 3rd party module list:
-" http://wiki.nginx.org/Nginx3rdPartyModules
+" https://www.nginx.com/resources/wiki/modules/
 
-" Accept Language Module <http://wiki.nginx.org/NginxAcceptLanguageModule>
+" Accept Language Module <https://www.nginx.com/resources/wiki/modules/accept_language/>
 " Parses the Accept-Language header and gives the most suitable locale from a list of supported locales.
 syn keyword ngxDirectiveThirdParty set_from_accept_language
 
-" Access Key Module <http://wiki.nginx.org/NginxHttpAccessKeyModule>
+" Access Key Module (DEPRECATED) <http://wiki.nginx.org/NginxHttpAccessKeyModule>
 " Denies access unless the request URL contains an access key.
-syn keyword ngxDirectiveThirdParty accesskey
-syn keyword ngxDirectiveThirdParty accesskey_arg
-syn keyword ngxDirectiveThirdParty accesskey_hashmethod
-syn keyword ngxDirectiveThirdParty accesskey_signature
+syn keyword ngxDirectiveDeprecated accesskey
+syn keyword ngxDirectiveDeprecated accesskey_arg
+syn keyword ngxDirectiveDeprecated accesskey_hashmethod
+syn keyword ngxDirectiveDeprecated accesskey_signature
 
-" Auth PAM Module <http://web.iti.upv.es/~sto/nginx/>
-" HTTP Basic Authentication using PAM.
-syn keyword ngxDirectiveThirdParty auth_pam
-syn keyword ngxDirectiveThirdParty auth_pam_service_name
+" Asynchronous FastCGI Module <https://github.com/rsms/afcgi>
+" Primarily a modified version of the Nginx FastCGI module which implements multiplexing of connections, allowing a single FastCGI server to handle many concurrent requests.
+" syn keyword ngxDirectiveThirdParty fastcgi_bind
+" syn keyword ngxDirectiveThirdParty fastcgi_buffer_size
+" syn keyword ngxDirectiveThirdParty fastcgi_buffers
+" syn keyword ngxDirectiveThirdParty fastcgi_busy_buffers_size
+" syn keyword ngxDirectiveThirdParty fastcgi_cache
+" syn keyword ngxDirectiveThirdParty fastcgi_cache_key
+" syn keyword ngxDirectiveThirdParty fastcgi_cache_methods
+" syn keyword ngxDirectiveThirdParty fastcgi_cache_min_uses
+" syn keyword ngxDirectiveThirdParty fastcgi_cache_path
+" syn keyword ngxDirectiveThirdParty fastcgi_cache_use_stale
+" syn keyword ngxDirectiveThirdParty fastcgi_cache_valid
+" syn keyword ngxDirectiveThirdParty fastcgi_catch_stderr
+" syn keyword ngxDirectiveThirdParty fastcgi_connect_timeout
+" syn keyword ngxDirectiveThirdParty fastcgi_hide_header
+" syn keyword ngxDirectiveThirdParty fastcgi_ignore_client_abort
+" syn keyword ngxDirectiveThirdParty fastcgi_ignore_headers
+" syn keyword ngxDirectiveThirdParty fastcgi_index
+" syn keyword ngxDirectiveThirdParty fastcgi_intercept_errors
+" syn keyword ngxDirectiveThirdParty fastcgi_max_temp_file_size
+" syn keyword ngxDirectiveThirdParty fastcgi_next_upstream
+" syn keyword ngxDirectiveThirdParty fastcgi_param
+" syn keyword ngxDirectiveThirdParty fastcgi_pass
+" syn keyword ngxDirectiveThirdParty fastcgi_pass_header
+" syn keyword ngxDirectiveThirdParty fastcgi_pass_request_body
+" syn keyword ngxDirectiveThirdParty fastcgi_pass_request_headers
+" syn keyword ngxDirectiveThirdParty fastcgi_read_timeout
+" syn keyword ngxDirectiveThirdParty fastcgi_send_lowat
+" syn keyword ngxDirectiveThirdParty fastcgi_send_timeout
+" syn keyword ngxDirectiveThirdParty fastcgi_split_path_info
+" syn keyword ngxDirectiveThirdParty fastcgi_store
+" syn keyword ngxDirectiveThirdParty fastcgi_store_access
+" syn keyword ngxDirectiveThirdParty fastcgi_temp_file_write_size
+" syn keyword ngxDirectiveThirdParty fastcgi_temp_path
+syn keyword ngxDirectiveDeprecated fastcgi_upstream_fail_timeout
+syn keyword ngxDirectiveDeprecated fastcgi_upstream_max_fails
 
-" Cache Purge Module <http://labs.frickle.com/nginx_ngx_cache_purge/>
-" Module adding ability to purge content from FastCGI and proxy caches.
+" Akamai G2O Module <https://github.com/kaltura/nginx_mod_akamai_g2o>
+" Nginx Module for Authenticating Akamai G2O requests
+syn keyword ngxDirectiveThirdParty g2o
+syn keyword ngxDirectiveThirdParty g2o_nonce
+syn keyword ngxDirectiveThirdParty g2o_key
+
+" Lua Module <https://github.com/alacner/nginx_lua_module>
+" You can be very simple to execute lua code for nginx
+syn keyword ngxDirectiveThirdParty lua_file
+
+" Array Variable Module <https://github.com/openresty/array-var-nginx-module>
+" Add support for array-typed variables to nginx config files
+syn keyword ngxDirectiveThirdParty array_split
+syn keyword ngxDirectiveThirdParty array_join
+syn keyword ngxDirectiveThirdParty array_map
+syn keyword ngxDirectiveThirdParty array_map_op
+
+" Nginx Audio Track for HTTP Live Streaming <https://github.com/flavioribeiro/nginx-audio-track-for-hls-module>
+" This nginx module generates audio track for hls streams on the fly.
+syn keyword ngxDirectiveThirdParty ngx_hls_audio_track
+syn keyword ngxDirectiveThirdParty ngx_hls_audio_track_rootpath
+syn keyword ngxDirectiveThirdParty ngx_hls_audio_track_output_format
+syn keyword ngxDirectiveThirdParty ngx_hls_audio_track_output_header
+
+" AWS Proxy Module <https://github.com/anomalizer/ngx_aws_auth>
+" Nginx module to proxy to authenticated AWS services
+syn keyword ngxDirectiveThirdParty aws_access_key
+syn keyword ngxDirectiveThirdParty aws_key_scope
+syn keyword ngxDirectiveThirdParty aws_signing_key
+syn keyword ngxDirectiveThirdParty aws_endpoint
+syn keyword ngxDirectiveThirdParty aws_s3_bucket
+syn keyword ngxDirectiveThirdParty aws_sign
+
+" Backtrace module <https://github.com/alibaba/nginx-backtrace>
+" A Nginx module to dump backtrace when a worker process exits abnormally
+syn keyword ngxDirectiveThirdParty backtrace_log
+syn keyword ngxDirectiveThirdParty backtrace_max_stack_size
+
+" Brotli Module <https://github.com/google/ngx_brotli>
+" Nginx module for Brotli compression
+syn keyword ngxDirectiveThirdParty brotli_static
+syn keyword ngxDirectiveThirdParty brotli
+syn keyword ngxDirectiveThirdParty brotli_types
+syn keyword ngxDirectiveThirdParty brotli_buffers
+syn keyword ngxDirectiveThirdParty brotli_comp_level
+syn keyword ngxDirectiveThirdParty brotli_window
+syn keyword ngxDirectiveThirdParty brotli_min_length
+
+" Cache Purge Module <https://github.com/FRiCKLE/ngx_cache_purge>
+" Adds ability to purge content from FastCGI, proxy, SCGI and uWSGI caches.
 syn keyword ngxDirectiveThirdParty fastcgi_cache_purge
 syn keyword ngxDirectiveThirdParty proxy_cache_purge
+" syn keyword ngxDirectiveThirdParty scgi_cache_purge
+" syn keyword ngxDirectiveThirdParty uwsgi_cache_purge
 
-" Chunkin Module <http://wiki.nginx.org/NginxHttpChunkinModule>
+" Chunkin Module (DEPRECATED) <http://wiki.nginx.org/NginxHttpChunkinModule>
 " HTTP 1.1 chunked-encoding request body support for Nginx.
-syn keyword ngxDirectiveThirdParty chunkin
-syn keyword ngxDirectiveThirdParty chunkin_keepalive
-syn keyword ngxDirectiveThirdParty chunkin_max_chunks_per_buf
-syn keyword ngxDirectiveThirdParty chunkin_resume
+syn keyword ngxDirectiveDeprecated chunkin
+syn keyword ngxDirectiveDeprecated chunkin_keepalive
+syn keyword ngxDirectiveDeprecated chunkin_max_chunks_per_buf
+syn keyword ngxDirectiveDeprecated chunkin_resume
 
-" Circle GIF Module <http://wiki.nginx.org/NginxHttpCircleGifModule>
+" Circle GIF Module <https://github.com/evanmiller/nginx_circle_gif>
 " Generates simple circle images with the colors and size specified in the URL.
 syn keyword ngxDirectiveThirdParty circle_gif
 syn keyword ngxDirectiveThirdParty circle_gif_max_radius
 syn keyword ngxDirectiveThirdParty circle_gif_min_radius
 syn keyword ngxDirectiveThirdParty circle_gif_step_radius
 
-" Drizzle Module <http://github.com/chaoslawful/drizzle-nginx-module>
-" Make nginx talk directly to mysql, drizzle, and sqlite3 by libdrizzle.
-syn keyword ngxDirectiveThirdParty drizzle_connect_timeout
-syn keyword ngxDirectiveThirdParty drizzle_dbname
+" Nginx-Clojure Module <http://nginx-clojure.github.io/index.html>
+" Parses the Accept-Language header and gives the most suitable locale from a list of supported locales.
+syn keyword ngxDirectiveThirdParty jvm_path
+syn keyword ngxDirectiveThirdParty jvm_var
+syn keyword ngxDirectiveThirdParty jvm_classpath
+syn keyword ngxDirectiveThirdParty jvm_classpath_check
+syn keyword ngxDirectiveThirdParty jvm_workers
+syn keyword ngxDirectiveThirdParty jvm_options
+syn keyword ngxDirectiveThirdParty jvm_handler_type
+syn keyword ngxDirectiveThirdParty jvm_init_handler_name
+syn keyword ngxDirectiveThirdParty jvm_init_handler_code
+syn keyword ngxDirectiveThirdParty jvm_exit_handler_name
+syn keyword ngxDirectiveThirdParty jvm_exit_handler_code
+syn keyword ngxDirectiveThirdParty handlers_lazy_init
+syn keyword ngxDirectiveThirdParty auto_upgrade_ws
+syn keyword ngxDirectiveThirdParty content_handler_type
+syn keyword ngxDirectiveThirdParty content_handler_name
+syn keyword ngxDirectiveThirdParty content_handler_code
+syn keyword ngxDirectiveThirdParty rewrite_handler_type
+syn keyword ngxDirectiveThirdParty rewrite_handler_name
+syn keyword ngxDirectiveThirdParty rewrite_handler_code
+syn keyword ngxDirectiveThirdParty access_handler_type
+syn keyword ngxDirectiveThirdParty access_handler_name
+syn keyword ngxDirectiveThirdParty access_handler_code
+syn keyword ngxDirectiveThirdParty header_filter_type
+syn keyword ngxDirectiveThirdParty header_filter_name
+syn keyword ngxDirectiveThirdParty header_filter_code
+syn keyword ngxDirectiveThirdParty content_handler_property
+syn keyword ngxDirectiveThirdParty rewrite_handler_property
+syn keyword ngxDirectiveThirdParty access_handler_property
+syn keyword ngxDirectiveThirdParty header_filter_property
+syn keyword ngxDirectiveThirdParty always_read_body
+syn keyword ngxDirectiveThirdParty shared_map
+syn keyword ngxDirectiveThirdParty write_page_size
+
+" Upstream Consistent Hash <https://www.nginx.com/resources/wiki/modules/consistent_hash/>
+" A load balancer that uses an internal consistent hash ring to select the right backend node.
+syn keyword ngxDirectiveThirdParty consistent_hash
+
+" Nginx Development Kit <https://github.com/simpl/ngx_devel_kit>
+" The NDK is an Nginx module that is designed to extend the core functionality of the excellent Nginx webserver in a way that can be used as a basis of other Nginx modules.
+" NDK_UPSTREAM_LIST
+" This submodule provides a directive that creates a list of upstreams, with optional weighting. This list can then be used by other modules to hash over the upstreams however they choose.
+syn keyword ngxDirectiveThirdParty upstream_list
+
+" Drizzle Module <https://www.nginx.com/resources/wiki/modules/drizzle/>
+" Upstream module for talking to MySQL and Drizzle directly
+syn keyword ngxDirectiveThirdParty drizzle_server
 syn keyword ngxDirectiveThirdParty drizzle_keepalive
-syn keyword ngxDirectiveThirdParty drizzle_module_header
-syn keyword ngxDirectiveThirdParty drizzle_pass
 syn keyword ngxDirectiveThirdParty drizzle_query
+syn keyword ngxDirectiveThirdParty drizzle_pass
+syn keyword ngxDirectiveThirdParty drizzle_connect_timeout
+syn keyword ngxDirectiveThirdParty drizzle_send_query_timeout
 syn keyword ngxDirectiveThirdParty drizzle_recv_cols_timeout
 syn keyword ngxDirectiveThirdParty drizzle_recv_rows_timeout
-syn keyword ngxDirectiveThirdParty drizzle_send_query_timeout
-syn keyword ngxDirectiveThirdParty drizzle_server
+syn keyword ngxDirectiveThirdParty drizzle_buffer_size
+syn keyword ngxDirectiveThirdParty drizzle_module_header
+syn keyword ngxDirectiveThirdParty drizzle_status
 
-" Echo Module <http://wiki.nginx.org/NginxHttpEchoModule>
-" Brings 'echo', 'sleep', 'time', 'exec' and more shell-style goodies to Nginx config file.
+" Dynamic ETags Module <https://github.com/kali/nginx-dynamic-etags>
+" Attempt at handling ETag / If-None-Match on proxied content.
+syn keyword ngxDirectiveThirdParty dynamic_etags
+
+" Echo Module <https://www.nginx.com/resources/wiki/modules/echo/>
+" Bringing the power of "echo", "sleep", "time" and more to Nginx's config file
 syn keyword ngxDirectiveThirdParty echo
-syn keyword ngxDirectiveThirdParty echo_after_body
-syn keyword ngxDirectiveThirdParty echo_before_body
-syn keyword ngxDirectiveThirdParty echo_blocking_sleep
 syn keyword ngxDirectiveThirdParty echo_duplicate
-syn keyword ngxDirectiveThirdParty echo_end
-syn keyword ngxDirectiveThirdParty echo_exec
 syn keyword ngxDirectiveThirdParty echo_flush
-syn keyword ngxDirectiveThirdParty echo_foreach_split
-syn keyword ngxDirectiveThirdParty echo_location
-syn keyword ngxDirectiveThirdParty echo_location_async
-syn keyword ngxDirectiveThirdParty echo_read_request_body
-syn keyword ngxDirectiveThirdParty echo_request_body
-syn keyword ngxDirectiveThirdParty echo_reset_timer
 syn keyword ngxDirectiveThirdParty echo_sleep
-syn keyword ngxDirectiveThirdParty echo_subrequest
+syn keyword ngxDirectiveThirdParty echo_blocking_sleep
+syn keyword ngxDirectiveThirdParty echo_reset_timer
+syn keyword ngxDirectiveThirdParty echo_read_request_body
+syn keyword ngxDirectiveThirdParty echo_location_async
+syn keyword ngxDirectiveThirdParty echo_location
 syn keyword ngxDirectiveThirdParty echo_subrequest_async
+syn keyword ngxDirectiveThirdParty echo_subrequest
+syn keyword ngxDirectiveThirdParty echo_foreach_split
+syn keyword ngxDirectiveThirdParty echo_end
+syn keyword ngxDirectiveThirdParty echo_request_body
+syn keyword ngxDirectiveThirdParty echo_exec
+syn keyword ngxDirectiveThirdParty echo_status
+syn keyword ngxDirectiveThirdParty echo_before_body
+syn keyword ngxDirectiveThirdParty echo_after_body
 
-" Events Module <http://docs.dutov.org/nginx_modules_events_en.html>
+" Encrypted Session Module <https://github.com/openresty/encrypted-session-nginx-module>
+" Encrypt and decrypt nginx variable values
+syn keyword ngxDirectiveThirdParty encrypted_session_key
+syn keyword ngxDirectiveThirdParty encrypted_session_iv
+syn keyword ngxDirectiveThirdParty encrypted_session_expires
+syn keyword ngxDirectiveThirdParty set_encrypt_session
+syn keyword ngxDirectiveThirdParty set_decrypt_session
+
+" Enhanced Memcached Module <https://github.com/bpaquet/ngx_http_enhanced_memcached_module>
+" This module is based on the standard Nginx Memcached module, with some additonal features
+syn keyword ngxDirectiveThirdParty enhanced_memcached_pass
+syn keyword ngxDirectiveThirdParty enhanced_memcached_hash_keys_with_md5
+syn keyword ngxDirectiveThirdParty enhanced_memcached_allow_put
+syn keyword ngxDirectiveThirdParty enhanced_memcached_allow_delete
+syn keyword ngxDirectiveThirdParty enhanced_memcached_stats
+syn keyword ngxDirectiveThirdParty enhanced_memcached_flush
+syn keyword ngxDirectiveThirdParty enhanced_memcached_flush_namespace
+syn keyword ngxDirectiveThirdParty enhanced_memcached_bind
+syn keyword ngxDirectiveThirdParty enhanced_memcached_connect_timeout
+syn keyword ngxDirectiveThirdParty enhanced_memcached_send_timeout
+syn keyword ngxDirectiveThirdParty enhanced_memcached_buffer_size
+syn keyword ngxDirectiveThirdParty enhanced_memcached_read_timeout
+
+" Events Module (DEPRECATED) <http://docs.dutov.org/nginx_modules_events_en.html>
 " Provides options for start/stop events.
-syn keyword ngxDirectiveThirdParty on_start
-syn keyword ngxDirectiveThirdParty on_stop
+syn keyword ngxDirectiveDeprecated on_start
+syn keyword ngxDirectiveDeprecated on_stop
 
-" EY Balancer Module <http://github.com/ry/nginx-ey-balancer>
+" EY Balancer Module <https://github.com/ezmobius/nginx-ey-balancer>
 " Adds a request queue to Nginx that allows the limiting of concurrent requests passed to the upstream.
 syn keyword ngxDirectiveThirdParty max_connections
 syn keyword ngxDirectiveThirdParty max_connections_max_queue_length
 syn keyword ngxDirectiveThirdParty max_connections_queue_timeout
 
-" Fancy Indexes Module <https://connectical.com/projects/ngx-fancyindex/wiki>
+" Upstream Fair Balancer <https://www.nginx.com/resources/wiki/modules/fair_balancer/>
+" Sends an incoming request to the least-busy backend server, rather than distributing requests round-robin.
+syn keyword ngxDirectiveThirdParty fair
+syn keyword ngxDirectiveThirdParty upstream_fair_shm_size
+
+" Fancy Indexes Module <https://github.com/aperezdc/ngx-fancyindex>
 " Like the built-in autoindex module, but fancier.
 syn keyword ngxDirectiveThirdParty fancyindex
+syn keyword ngxDirectiveThirdParty fancyindex_default_sort
+syn keyword ngxDirectiveThirdParty fancyindex_directories_first
+syn keyword ngxDirectiveThirdParty fancyindex_css_href
 syn keyword ngxDirectiveThirdParty fancyindex_exact_size
+syn keyword ngxDirectiveThirdParty fancyindex_name_length
 syn keyword ngxDirectiveThirdParty fancyindex_footer
 syn keyword ngxDirectiveThirdParty fancyindex_header
+syn keyword ngxDirectiveThirdParty fancyindex_show_path
+syn keyword ngxDirectiveThirdParty fancyindex_ignore
+syn keyword ngxDirectiveThirdParty fancyindex_hide_symlinks
 syn keyword ngxDirectiveThirdParty fancyindex_localtime
-syn keyword ngxDirectiveThirdParty fancyindex_readme
-syn keyword ngxDirectiveThirdParty fancyindex_readme_mode
+syn keyword ngxDirectiveThirdParty fancyindex_time_format
+
+" Form Auth Module <https://github.com/veruu/ngx_form_auth>
+" Provides authentication and authorization with credentials submitted via POST request
+syn keyword ngxDirectiveThirdParty form_auth
+syn keyword ngxDirectiveThirdParty form_auth_pam_service
+syn keyword ngxDirectiveThirdParty form_auth_login
+syn keyword ngxDirectiveThirdParty form_auth_password
+syn keyword ngxDirectiveThirdParty form_auth_remote_user
+
+" Form Input Module <https://github.com/calio/form-input-nginx-module>
+" Reads HTTP POST and PUT request body encoded in "application/x-www-form-urlencoded" and parses the arguments into nginx variables.
+syn keyword ngxDirectiveThirdParty set_form_input
+syn keyword ngxDirectiveThirdParty set_form_input_multi
 
 " GeoIP Module (DEPRECATED) <http://wiki.nginx.org/NginxHttp3rdPartyGeoIPModule>
 " Country code lookups via the MaxMind GeoIP API.
-syn keyword ngxDirectiveThirdParty geoip_country_file
+syn keyword ngxDirectiveDeprecated geoip_country_file
 
-" Headers More Module <http://wiki.nginx.org/NginxHttpHeadersMoreModule>
+" GeoIP 2 Module <https://github.com/leev/ngx_http_geoip2_module>
+" Creates variables with values from the maxmind geoip2 databases based on the client IP
+syn keyword ngxDirectiveThirdParty geoip2
+
+" GridFS Module <https://github.com/mdirolf/nginx-gridfs>
+" Nginx module for serving files from MongoDB's GridFS
+syn keyword ngxDirectiveThirdParty gridfs
+
+" Headers More Module <https://github.com/openresty/headers-more-nginx-module>
 " Set and clear input and output headers...more than "add"!
 syn keyword ngxDirectiveThirdParty more_clear_headers
 syn keyword ngxDirectiveThirdParty more_clear_input_headers
 syn keyword ngxDirectiveThirdParty more_set_headers
 syn keyword ngxDirectiveThirdParty more_set_input_headers
 
-" HTTP Push Module <http://pushmodule.slact.net/>
-" Turn Nginx into an adept long-polling HTTP Push (Comet) server.
-syn keyword ngxDirectiveThirdParty push_buffer_size
-syn keyword ngxDirectiveThirdParty push_listener
-syn keyword ngxDirectiveThirdParty push_message_timeout
-syn keyword ngxDirectiveThirdParty push_queue_messages
-syn keyword ngxDirectiveThirdParty push_sender
+" Health Checks Upstreams Module <https://www.nginx.com/resources/wiki/modules/healthcheck/>
+" Polls backends and if they respond with HTTP 200 + an optional request body, they are marked good. Otherwise, they are marked bad.
+syn keyword ngxDirectiveThirdParty healthcheck_enabled
+syn keyword ngxDirectiveThirdParty healthcheck_delay
+syn keyword ngxDirectiveThirdParty healthcheck_timeout
+syn keyword ngxDirectiveThirdParty healthcheck_failcount
+syn keyword ngxDirectiveThirdParty healthcheck_send
+syn keyword ngxDirectiveThirdParty healthcheck_expected
+syn keyword ngxDirectiveThirdParty healthcheck_buffer
+syn keyword ngxDirectiveThirdParty healthcheck_status
 
-" HTTP Redis Module <http://people.FreeBSD.ORG/~osa/ngx_http_redis-0.3.1.tar.gz>>
-" Redis <http://code.google.com/p/redis/> support.>
-syn keyword ngxDirectiveThirdParty redis_bind
-syn keyword ngxDirectiveThirdParty redis_buffer_size
-syn keyword ngxDirectiveThirdParty redis_connect_timeout
-syn keyword ngxDirectiveThirdParty redis_next_upstream
-syn keyword ngxDirectiveThirdParty redis_pass
-syn keyword ngxDirectiveThirdParty redis_read_timeout
-syn keyword ngxDirectiveThirdParty redis_send_timeout
+" HTTP Accounting Module <https://github.com/Lax/ngx_http_accounting_module>
+" Add traffic stat function to nginx. Useful for http accounting based on nginx configuration logic
+syn keyword ngxDirectiveThirdParty http_accounting
+syn keyword ngxDirectiveThirdParty http_accounting_log
+syn keyword ngxDirectiveThirdParty http_accounting_id
+syn keyword ngxDirectiveThirdParty http_accounting_interval
+syn keyword ngxDirectiveThirdParty http_accounting_perturb
 
-" HTTP JavaScript Module <http://wiki.github.com/kung-fu-tzu/ngx_http_js_module>
+" Nginx Digest Authentication module <https://github.com/atomx/nginx-http-auth-digest>
+" Digest Authentication for Nginx
+syn keyword ngxDirectiveThirdParty auth_digest
+syn keyword ngxDirectiveThirdParty auth_digest_user_file
+syn keyword ngxDirectiveThirdParty auth_digest_timeout
+syn keyword ngxDirectiveThirdParty auth_digest_expires
+syn keyword ngxDirectiveThirdParty auth_digest_replays
+syn keyword ngxDirectiveThirdParty auth_digest_shm_size
+
+" Auth PAM Module <https://github.com/sto/ngx_http_auth_pam_module>
+" HTTP Basic Authentication using PAM.
+syn keyword ngxDirectiveThirdParty auth_pam
+syn keyword ngxDirectiveThirdParty auth_pam_service_name
+
+" HTTP Auth Request Module <http://nginx.org/en/docs/http/ngx_http_auth_request_module.html>
+" Implements client authorization based on the result of a subrequest
+" syn keyword ngxDirectiveThirdParty auth_request
+" syn keyword ngxDirectiveThirdParty auth_request_set
+
+" HTTP Concatenation module for Nginx <https://github.com/alibaba/nginx-http-concat>
+" A Nginx module for concatenating files in a given context: CSS and JS files usually
+syn keyword ngxDirectiveThirdParty concat
+syn keyword ngxDirectiveThirdParty concat_types
+syn keyword ngxDirectiveThirdParty concat_unique
+syn keyword ngxDirectiveThirdParty concat_max_files
+syn keyword ngxDirectiveThirdParty concat_delimiter
+syn keyword ngxDirectiveThirdParty concat_ignore_file_error
+
+" HTTP Dynamic Upstream Module <https://github.com/yzprofile/ngx_http_dyups_module>
+" Update upstreams' config by restful interface
+syn keyword ngxDirectiveThirdParty dyups_interface
+syn keyword ngxDirectiveThirdParty dyups_read_msg_timeout
+syn keyword ngxDirectiveThirdParty dyups_shm_zone_size
+syn keyword ngxDirectiveThirdParty dyups_upstream_conf
+syn keyword ngxDirectiveThirdParty dyups_trylock
+
+" HTTP Footer If Filter Module <https://github.com/flygoast/ngx_http_footer_if_filter>
+" The ngx_http_footer_if_filter_module is used to add given content to the end of the response according to the condition specified.
+syn keyword ngxDirectiveThirdParty footer_if
+
+" HTTP Footer Filter Module <https://github.com/alibaba/nginx-http-footer-filter>
+" This module implements a body filter that adds a given string to the page footer.
+syn keyword ngxDirectiveThirdParty footer
+syn keyword ngxDirectiveThirdParty footer_types
+
+" HTTP Internal Redirect Module <https://github.com/flygoast/ngx_http_internal_redirect>
+" Make an internal redirect to the uri specified according to the condition specified.
+syn keyword ngxDirectiveThirdParty internal_redirect_if
+syn keyword ngxDirectiveThirdParty internal_redirect_if_no_postponed
+
+" HTTP JavaScript Module <https://github.com/peter-leonov/ngx_http_js_module>
 " Embedding SpiderMonkey. Nearly full port on Perl module.
 syn keyword ngxDirectiveThirdParty js
 syn keyword ngxDirectiveThirdParty js_filter
@@ -664,12 +1015,152 @@
 syn keyword ngxDirectiveThirdParty js_set
 syn keyword ngxDirectiveThirdParty js_utf8
 
-" Log Request Speed <http://wiki.nginx.org/NginxHttpLogRequestSpeed>
-" Log the time it took to process each request.
-syn keyword ngxDirectiveThirdParty log_request_speed_filter
-syn keyword ngxDirectiveThirdParty log_request_speed_filter_timeout
+" HTTP Push Module (DEPRECATED) <http://pushmodule.slact.net/>
+" Turn Nginx into an adept long-polling HTTP Push (Comet) server.
+syn keyword ngxDirectiveDeprecated push_buffer_size
+syn keyword ngxDirectiveDeprecated push_listener
+syn keyword ngxDirectiveDeprecated push_message_timeout
+syn keyword ngxDirectiveDeprecated push_queue_messages
+syn keyword ngxDirectiveDeprecated push_sender
 
-" Memc Module <http://wiki.nginx.org/NginxHttpMemcModule>
+" HTTP Redis Module <https://www.nginx.com/resources/wiki/modules/redis/>
+" Redis <http://code.google.com/p/redis/> support.
+syn keyword ngxDirectiveThirdParty redis_bind
+syn keyword ngxDirectiveThirdParty redis_buffer_size
+syn keyword ngxDirectiveThirdParty redis_connect_timeout
+syn keyword ngxDirectiveThirdParty redis_next_upstream
+syn keyword ngxDirectiveThirdParty redis_pass
+syn keyword ngxDirectiveThirdParty redis_read_timeout
+syn keyword ngxDirectiveThirdParty redis_send_timeout
+
+" Iconv Module <https://github.com/calio/iconv-nginx-module>
+" A character conversion nginx module using libiconv
+syn keyword ngxDirectiveThirdParty set_iconv
+syn keyword ngxDirectiveThirdParty iconv_buffer_size
+syn keyword ngxDirectiveThirdParty iconv_filter
+
+" IP Blocker Module <https://github.com/tmthrgd/nginx-ip-blocker>
+" An efficient shared memory IP blocking system for nginx.
+syn keyword ngxDirectiveThirdParty ip_blocker
+
+" IP2Location Module <https://github.com/chrislim2888/ip2location-nginx>
+" Allows user to lookup for geolocation information using IP2Location database
+syn keyword ngxDirectiveThirdParty ip2location_database
+
+" JS Module <https://github.com/peter-leonov/ngx_http_js_module>
+" Reflect the nginx functionality in JS
+syn keyword ngxDirectiveThirdParty js
+syn keyword ngxDirectiveThirdParty js_access
+syn keyword ngxDirectiveThirdParty js_load
+syn keyword ngxDirectiveThirdParty js_set
+
+" Limit Upload Rate Module <https://github.com/cfsego/limit_upload_rate>
+" Limit client-upload rate when they are sending request bodies to you
+syn keyword ngxDirectiveThirdParty limit_upload_rate
+syn keyword ngxDirectiveThirdParty limit_upload_rate_after
+
+" Limit Upstream Module <https://github.com/cfsego/nginx-limit-upstream>
+" Limit the number of connections to upstream for NGINX
+syn keyword ngxDirectiveThirdParty limit_upstream_zone
+syn keyword ngxDirectiveThirdParty limit_upstream_conn
+syn keyword ngxDirectiveThirdParty limit_upstream_log_level
+
+" Log If Module <https://github.com/cfsego/ngx_log_if>
+" Conditional accesslog for nginx
+syn keyword ngxDirectiveThirdParty access_log_bypass_if
+
+" Log Request Speed (DEPRECATED) <http://wiki.nginx.org/NginxHttpLogRequestSpeed>
+" Log the time it took to process each request.
+syn keyword ngxDirectiveDeprecated log_request_speed_filter
+syn keyword ngxDirectiveDeprecated log_request_speed_filter_timeout
+
+" Log ZeroMQ Module <https://github.com/alticelabs/nginx-log-zmq>
+" ZeroMQ logger module for nginx
+syn keyword ngxDirectiveThirdParty log_zmq_server
+syn keyword ngxDirectiveThirdParty log_zmq_endpoint
+syn keyword ngxDirectiveThirdParty log_zmq_format
+syn keyword ngxDirectiveThirdParty log_zmq_off
+
+" Lower/UpperCase Module <https://github.com/replay/ngx_http_lower_upper_case>
+" This module simply uppercases or lowercases a string and saves it into a new variable.
+syn keyword ngxDirectiveThirdParty lower
+syn keyword ngxDirectiveThirdParty upper
+
+" Lua Upstream Module <https://github.com/openresty/lua-upstream-nginx-module>
+" Nginx C module to expose Lua API to ngx_lua for Nginx upstreams
+
+" Lua Module <https://github.com/openresty/lua-nginx-module>
+" Embed the Power of Lua into NGINX HTTP servers
+syn keyword ngxDirectiveThirdParty lua_use_default_type
+syn keyword ngxDirectiveThirdParty lua_malloc_trim
+syn keyword ngxDirectiveThirdParty lua_code_cache
+syn keyword ngxDirectiveThirdParty lua_regex_cache_max_entries
+syn keyword ngxDirectiveThirdParty lua_regex_match_limit
+syn keyword ngxDirectiveThirdParty lua_package_path
+syn keyword ngxDirectiveThirdParty lua_package_cpath
+syn keyword ngxDirectiveThirdParty init_by_lua
+syn keyword ngxDirectiveThirdParty init_by_lua_block
+syn keyword ngxDirectiveThirdParty init_by_lua_file
+syn keyword ngxDirectiveThirdParty init_worker_by_lua
+syn keyword ngxDirectiveThirdParty init_worker_by_lua_block
+syn keyword ngxDirectiveThirdParty init_worker_by_lua_file
+syn keyword ngxDirectiveThirdParty set_by_lua
+syn keyword ngxDirectiveThirdParty set_by_lua_block
+syn keyword ngxDirectiveThirdParty set_by_lua_file
+syn keyword ngxDirectiveThirdParty content_by_lua
+syn keyword ngxDirectiveThirdParty content_by_lua_block
+syn keyword ngxDirectiveThirdParty content_by_lua_file
+syn keyword ngxDirectiveThirdParty rewrite_by_lua
+syn keyword ngxDirectiveThirdParty rewrite_by_lua_block
+syn keyword ngxDirectiveThirdParty rewrite_by_lua_file
+syn keyword ngxDirectiveThirdParty access_by_lua
+syn keyword ngxDirectiveThirdParty access_by_lua_block
+syn keyword ngxDirectiveThirdParty access_by_lua_file
+syn keyword ngxDirectiveThirdParty header_filter_by_lua
+syn keyword ngxDirectiveThirdParty header_filter_by_lua_block
+syn keyword ngxDirectiveThirdParty header_filter_by_lua_file
+syn keyword ngxDirectiveThirdParty body_filter_by_lua
+syn keyword ngxDirectiveThirdParty body_filter_by_lua_block
+syn keyword ngxDirectiveThirdParty body_filter_by_lua_file
+syn keyword ngxDirectiveThirdParty log_by_lua
+syn keyword ngxDirectiveThirdParty log_by_lua_block
+syn keyword ngxDirectiveThirdParty log_by_lua_file
+syn keyword ngxDirectiveThirdParty balancer_by_lua_block
+syn keyword ngxDirectiveThirdParty balancer_by_lua_file
+syn keyword ngxDirectiveThirdParty lua_need_request_body
+syn keyword ngxDirectiveThirdParty ssl_certificate_by_lua_block
+syn keyword ngxDirectiveThirdParty ssl_certificate_by_lua_file
+syn keyword ngxDirectiveThirdParty ssl_session_fetch_by_lua_block
+syn keyword ngxDirectiveThirdParty ssl_session_fetch_by_lua_file
+syn keyword ngxDirectiveThirdParty ssl_session_store_by_lua_block
+syn keyword ngxDirectiveThirdParty ssl_session_store_by_lua_file
+syn keyword ngxDirectiveThirdParty lua_shared_dict
+syn keyword ngxDirectiveThirdParty lua_socket_connect_timeout
+syn keyword ngxDirectiveThirdParty lua_socket_send_timeout
+syn keyword ngxDirectiveThirdParty lua_socket_send_lowat
+syn keyword ngxDirectiveThirdParty lua_socket_read_timeout
+syn keyword ngxDirectiveThirdParty lua_socket_buffer_size
+syn keyword ngxDirectiveThirdParty lua_socket_pool_size
+syn keyword ngxDirectiveThirdParty lua_socket_keepalive_timeout
+syn keyword ngxDirectiveThirdParty lua_socket_log_errors
+syn keyword ngxDirectiveThirdParty lua_ssl_ciphers
+syn keyword ngxDirectiveThirdParty lua_ssl_crl
+syn keyword ngxDirectiveThirdParty lua_ssl_protocols
+syn keyword ngxDirectiveThirdParty lua_ssl_trusted_certificate
+syn keyword ngxDirectiveThirdParty lua_ssl_verify_depth
+syn keyword ngxDirectiveThirdParty lua_http10_buffering
+syn keyword ngxDirectiveThirdParty rewrite_by_lua_no_postpone
+syn keyword ngxDirectiveThirdParty access_by_lua_no_postpone
+syn keyword ngxDirectiveThirdParty lua_transform_underscores_in_response_headers
+syn keyword ngxDirectiveThirdParty lua_check_client_abort
+syn keyword ngxDirectiveThirdParty lua_max_pending_timers
+syn keyword ngxDirectiveThirdParty lua_max_running_timers
+
+" MD5 Filter Module <https://github.com/kainswor/nginx_md5_filter>
+" A content filter for nginx, which returns the md5 hash of the content otherwise returned.
+syn keyword ngxDirectiveThirdParty md5_filter
+
+" Memc Module <https://github.com/openresty/memc-nginx-module>
 " An extended version of the standard memcached module that supports set, add, delete, and many more memcached commands.
 syn keyword ngxDirectiveThirdParty memc_buffer_size
 syn keyword ngxDirectiveThirdParty memc_cmds_allowed
@@ -682,65 +1173,596 @@
 syn keyword ngxDirectiveThirdParty memc_upstream_fail_timeout
 syn keyword ngxDirectiveThirdParty memc_upstream_max_fails
 
+" Mod Security Module <https://github.com/SpiderLabs/ModSecurity>
+" ModSecurity is an open source, cross platform web application firewall (WAF) engine
+syn keyword ngxDirectiveThirdParty ModSecurityConfig
+syn keyword ngxDirectiveThirdParty ModSecurityEnabled
+syn keyword ngxDirectiveThirdParty pool_context
+syn keyword ngxDirectiveThirdParty pool_context_hash_size
+
 " Mogilefs Module <http://www.grid.net.ru/nginx/mogilefs.en.html>
-" Implements a MogileFS client, provides a replace to the Perlbal reverse proxy of the original MogileFS.
-syn keyword ngxDirectiveThirdParty mogilefs_connect_timeout
-syn keyword ngxDirectiveThirdParty mogilefs_domain
-syn keyword ngxDirectiveThirdParty mogilefs_methods
-syn keyword ngxDirectiveThirdParty mogilefs_noverify
+" MogileFS client for nginx web server.
 syn keyword ngxDirectiveThirdParty mogilefs_pass
-syn keyword ngxDirectiveThirdParty mogilefs_read_timeout
-syn keyword ngxDirectiveThirdParty mogilefs_send_timeout
+syn keyword ngxDirectiveThirdParty mogilefs_methods
+syn keyword ngxDirectiveThirdParty mogilefs_domain
+syn keyword ngxDirectiveThirdParty mogilefs_class
 syn keyword ngxDirectiveThirdParty mogilefs_tracker
+syn keyword ngxDirectiveThirdParty mogilefs_noverify
+syn keyword ngxDirectiveThirdParty mogilefs_connect_timeout
+syn keyword ngxDirectiveThirdParty mogilefs_send_timeout
+syn keyword ngxDirectiveThirdParty mogilefs_read_timeout
 
-" MP4 Streaming Lite Module <http://wiki.nginx.org/NginxMP4StreamingLite>
+" Mongo Module <https://github.com/simpl/ngx_mongo>
+" Upstream module that allows nginx to communicate directly with MongoDB database.
+syn keyword ngxDirectiveThirdParty mongo_auth
+syn keyword ngxDirectiveThirdParty mongo_pass
+syn keyword ngxDirectiveThirdParty mongo_query
+syn keyword ngxDirectiveThirdParty mongo_json
+syn keyword ngxDirectiveThirdParty mongo_bind
+syn keyword ngxDirectiveThirdParty mongo_connect_timeout
+syn keyword ngxDirectiveThirdParty mongo_send_timeout
+syn keyword ngxDirectiveThirdParty mongo_read_timeout
+syn keyword ngxDirectiveThirdParty mongo_buffering
+syn keyword ngxDirectiveThirdParty mongo_buffer_size
+syn keyword ngxDirectiveThirdParty mongo_buffers
+syn keyword ngxDirectiveThirdParty mongo_busy_buffers_size
+syn keyword ngxDirectiveThirdParty mongo_next_upstream
+
+" MP4 Streaming Lite Module <https://www.nginx.com/resources/wiki/modules/mp4_streaming/>
 " Will seek to a certain time within H.264/MP4 files when provided with a 'start' parameter in the URL.
-syn keyword ngxDirectiveThirdParty mp4
+" syn keyword ngxDirectiveThirdParty mp4
 
-" Nginx Notice Module <http://xph.us/software/nginx-notice/>
+" NAXSI Module <https://github.com/nbs-system/naxsi>
+" NAXSI is an open-source, high performance, low rules maintenance WAF for NGINX
+syn keyword ngxDirectiveThirdParty DeniedUrl denied_url
+syn keyword ngxDirectiveThirdParty LearningMode learning_mode
+syn keyword ngxDirectiveThirdParty SecRulesEnabled rules_enabled
+syn keyword ngxDirectiveThirdParty SecRulesDisabled rules_disabled
+syn keyword ngxDirectiveThirdParty CheckRule check_rule
+syn keyword ngxDirectiveThirdParty BasicRule basic_rule
+syn keyword ngxDirectiveThirdParty MainRule main_rule
+syn keyword ngxDirectiveThirdParty LibInjectionSql libinjection_sql
+syn keyword ngxDirectiveThirdParty LibInjectionXss libinjection_xss
+
+" Nchan Module <https://nchan.slact.net/>
+" Fast, horizontally scalable, multiprocess pub/sub queuing server and proxy for HTTP, long-polling, Websockets and EventSource (SSE)
+syn keyword ngxDirectiveThirdParty nchan_channel_id
+syn keyword ngxDirectiveThirdParty nchan_channel_id_split_delimiter
+syn keyword ngxDirectiveThirdParty nchan_eventsource_event
+syn keyword ngxDirectiveThirdParty nchan_longpoll_multipart_response
+syn keyword ngxDirectiveThirdParty nchan_publisher
+syn keyword ngxDirectiveThirdParty nchan_publisher_channel_id
+syn keyword ngxDirectiveThirdParty nchan_publisher_upstream_request
+syn keyword ngxDirectiveThirdParty nchan_pubsub
+syn keyword ngxDirectiveThirdParty nchan_subscribe_request
+syn keyword ngxDirectiveThirdParty nchan_subscriber
+syn keyword ngxDirectiveThirdParty nchan_subscriber_channel_id
+syn keyword ngxDirectiveThirdParty nchan_subscriber_compound_etag_message_id
+syn keyword ngxDirectiveThirdParty nchan_subscriber_first_message
+syn keyword ngxDirectiveThirdParty nchan_subscriber_http_raw_stream_separator
+syn keyword ngxDirectiveThirdParty nchan_subscriber_last_message_id
+syn keyword ngxDirectiveThirdParty nchan_subscriber_message_id_custom_etag_header
+syn keyword ngxDirectiveThirdParty nchan_subscriber_timeout
+syn keyword ngxDirectiveThirdParty nchan_unsubscribe_request
+syn keyword ngxDirectiveThirdParty nchan_websocket_ping_interval
+syn keyword ngxDirectiveThirdParty nchan_authorize_request
+syn keyword ngxDirectiveThirdParty nchan_max_reserved_memory
+syn keyword ngxDirectiveThirdParty nchan_message_buffer_length
+syn keyword ngxDirectiveThirdParty nchan_message_timeout
+syn keyword ngxDirectiveThirdParty nchan_redis_idle_channel_cache_timeout
+syn keyword ngxDirectiveThirdParty nchan_redis_namespace
+syn keyword ngxDirectiveThirdParty nchan_redis_pass
+syn keyword ngxDirectiveThirdParty nchan_redis_ping_interval
+syn keyword ngxDirectiveThirdParty nchan_redis_server
+syn keyword ngxDirectiveThirdParty nchan_redis_storage_mode
+syn keyword ngxDirectiveThirdParty nchan_redis_url
+syn keyword ngxDirectiveThirdParty nchan_store_messages
+syn keyword ngxDirectiveThirdParty nchan_use_redis
+syn keyword ngxDirectiveThirdParty nchan_access_control_allow_origin
+syn keyword ngxDirectiveThirdParty nchan_channel_group
+syn keyword ngxDirectiveThirdParty nchan_channel_group_accounting
+syn keyword ngxDirectiveThirdParty nchan_group_location
+syn keyword ngxDirectiveThirdParty nchan_group_max_channels
+syn keyword ngxDirectiveThirdParty nchan_group_max_messages
+syn keyword ngxDirectiveThirdParty nchan_group_max_messages_disk
+syn keyword ngxDirectiveThirdParty nchan_group_max_messages_memory
+syn keyword ngxDirectiveThirdParty nchan_group_max_subscribers
+syn keyword ngxDirectiveThirdParty nchan_subscribe_existing_channels_only
+syn keyword ngxDirectiveThirdParty nchan_channel_event_string
+syn keyword ngxDirectiveThirdParty nchan_channel_events_channel_id
+syn keyword ngxDirectiveThirdParty nchan_stub_status
+syn keyword ngxDirectiveThirdParty nchan_max_channel_id_length
+syn keyword ngxDirectiveThirdParty nchan_max_channel_subscribers
+syn keyword ngxDirectiveThirdParty nchan_channel_timeout
+syn keyword ngxDirectiveThirdParty nchan_storage_engine
+
+" Nginx Notice Module <https://github.com/kr/nginx-notice>
 " Serve static file to POST requests.
 syn keyword ngxDirectiveThirdParty notice
 syn keyword ngxDirectiveThirdParty notice_type
 
-" Phusion Passenger <http://www.modrails.com/documentation.html>
-" Easy and robust deployment of Ruby on Rails application on Apache and Nginx webservers.
-syn keyword ngxDirectiveThirdParty passenger_base_uri
-syn keyword ngxDirectiveThirdParty passenger_default_user
-syn keyword ngxDirectiveThirdParty passenger_enabled
-syn keyword ngxDirectiveThirdParty passenger_log_level
-syn keyword ngxDirectiveThirdParty passenger_max_instances_per_app
-syn keyword ngxDirectiveThirdParty passenger_max_pool_size
-syn keyword ngxDirectiveThirdParty passenger_pool_idle_time
+" OCSP Proxy Module <https://github.com/kyprizel/nginx_ocsp_proxy-module>
+" Nginx OCSP processing module designed for response caching
+syn keyword ngxDirectiveThirdParty ocsp_proxy
+syn keyword ngxDirectiveThirdParty ocsp_cache_timeout
+
+" Eval Module <https://github.com/openresty/nginx-eval-module>
+" Module for nginx web server evaluates response of proxy or memcached module into variables.
+syn keyword ngxDirectiveThirdParty eval
+syn keyword ngxDirectiveThirdParty eval_escalate
+syn keyword ngxDirectiveThirdParty eval_buffer_size
+syn keyword ngxDirectiveThirdParty eval_override_content_type
+syn keyword ngxDirectiveThirdParty eval_subrequest_in_memory
+
+" OpenSSL Version Module <https://github.com/apcera/nginx-openssl-version>
+" Nginx OpenSSL version check at startup
+syn keyword ngxDirectiveThirdParty openssl_version_minimum
+syn keyword ngxDirectiveThirdParty openssl_builddate_minimum
+
+" Owner Match Module <https://www.nginx.com/resources/wiki/modules/owner_match/>
+" Control access for specific owners and groups of files
+syn keyword ngxDirectiveThirdParty omallow
+syn keyword ngxDirectiveThirdParty omdeny
+
+" Accept Language Module <https://www.nginx.com/resources/wiki/modules/accept_language/>
+" Parses the Accept-Language header and gives the most suitable locale from a list of supported locales.
+syn keyword ngxDirectiveThirdParty pagespeed
+
+" PHP Memcache Standard Balancer Module <https://github.com/replay/ngx_http_php_memcache_standard_balancer>
+" Loadbalancer that is compatible to the standard loadbalancer in the php-memcache module
+syn keyword ngxDirectiveThirdParty hash_key
+
+" PHP Session Module <https://github.com/replay/ngx_http_php_session>
+" Nginx module to parse php sessions
+syn keyword ngxDirectiveThirdParty php_session_parse
+syn keyword ngxDirectiveThirdParty php_session_strip_formatting
+
+" Phusion Passenger Module <https://www.phusionpassenger.com/library/config/nginx/>
+" Passenger is an open source web application server.
 syn keyword ngxDirectiveThirdParty passenger_root
+syn keyword ngxDirectiveThirdParty passenger_enabled
+syn keyword ngxDirectiveThirdParty passenger_base_uri
+syn keyword ngxDirectiveThirdParty passenger_document_root
 syn keyword ngxDirectiveThirdParty passenger_ruby
-syn keyword ngxDirectiveThirdParty passenger_use_global_queue
+syn keyword ngxDirectiveThirdParty passenger_python
+syn keyword ngxDirectiveThirdParty passenger_nodejs
+syn keyword ngxDirectiveThirdParty passenger_meteor_app_settings
+syn keyword ngxDirectiveThirdParty passenger_app_env
+syn keyword ngxDirectiveThirdParty passenger_app_root
+syn keyword ngxDirectiveThirdParty passenger_app_group_name
+syn keyword ngxDirectiveThirdParty passenger_app_type
+syn keyword ngxDirectiveThirdParty passenger_startup_file
+syn keyword ngxDirectiveThirdParty passenger_restart_dir
+syn keyword ngxDirectiveThirdParty passenger_spawn_method
+syn keyword ngxDirectiveThirdParty passenger_env_var
+syn keyword ngxDirectiveThirdParty passenger_load_shell_envvars
+syn keyword ngxDirectiveThirdParty passenger_rolling_restarts
+syn keyword ngxDirectiveThirdParty passenger_resist_deployment_errors
 syn keyword ngxDirectiveThirdParty passenger_user_switching
-syn keyword ngxDirectiveThirdParty rack_env
-syn keyword ngxDirectiveThirdParty rails_app_spawner_idle_time
-syn keyword ngxDirectiveThirdParty rails_env
-syn keyword ngxDirectiveThirdParty rails_framework_spawner_idle_time
-syn keyword ngxDirectiveThirdParty rails_spawn_method
+syn keyword ngxDirectiveThirdParty passenger_user
+syn keyword ngxDirectiveThirdParty passenger_group
+syn keyword ngxDirectiveThirdParty passenger_default_user
+syn keyword ngxDirectiveThirdParty passenger_default_group
+syn keyword ngxDirectiveThirdParty passenger_show_version_in_header
+syn keyword ngxDirectiveThirdParty passenger_friendly_error_pages
+syn keyword ngxDirectiveThirdParty passenger_disable_security_update_check
+syn keyword ngxDirectiveThirdParty passenger_security_update_check_proxy
+syn keyword ngxDirectiveThirdParty passenger_max_pool_size
+syn keyword ngxDirectiveThirdParty passenger_min_instances
+syn keyword ngxDirectiveThirdParty passenger_max_instances
+syn keyword ngxDirectiveThirdParty passenger_max_instances_per_app
+syn keyword ngxDirectiveThirdParty passenger_pool_idle_time
+syn keyword ngxDirectiveThirdParty passenger_max_preloader_idle_time
+syn keyword ngxDirectiveThirdParty passenger_force_max_concurrent_requests_per_process
+syn keyword ngxDirectiveThirdParty passenger_start_timeout
+syn keyword ngxDirectiveThirdParty passenger_concurrency_model
+syn keyword ngxDirectiveThirdParty passenger_thread_count
+syn keyword ngxDirectiveThirdParty passenger_max_requests
+syn keyword ngxDirectiveThirdParty passenger_max_request_time
+syn keyword ngxDirectiveThirdParty passenger_memory_limit
+syn keyword ngxDirectiveThirdParty passenger_stat_throttle_rate
+syn keyword ngxDirectiveThirdParty passenger_core_file_descriptor_ulimit
+syn keyword ngxDirectiveThirdParty passenger_app_file_descriptor_ulimit
+syn keyword ngxDirectiveThirdParty passenger_pre_start
+syn keyword ngxDirectiveThirdParty passenger_set_header
+syn keyword ngxDirectiveThirdParty passenger_max_request_queue_size
+syn keyword ngxDirectiveThirdParty passenger_request_queue_overflow_status_code
+syn keyword ngxDirectiveThirdParty passenger_sticky_sessions
+syn keyword ngxDirectiveThirdParty passenger_sticky_sessions_cookie_name
+syn keyword ngxDirectiveThirdParty passenger_abort_websockets_on_process_shutdown
+syn keyword ngxDirectiveThirdParty passenger_ignore_client_abort
+syn keyword ngxDirectiveThirdParty passenger_intercept_errors
+syn keyword ngxDirectiveThirdParty passenger_pass_header
+syn keyword ngxDirectiveThirdParty passenger_ignore_headers
+syn keyword ngxDirectiveThirdParty passenger_headers_hash_bucket_size
+syn keyword ngxDirectiveThirdParty passenger_headers_hash_max_size
+syn keyword ngxDirectiveThirdParty passenger_buffer_response
+syn keyword ngxDirectiveThirdParty passenger_response_buffer_high_watermark
+syn keyword ngxDirectiveThirdParty passenger_buffer_size, passenger_buffers, passenger_busy_buffers_size
+syn keyword ngxDirectiveThirdParty passenger_socket_backlog
+syn keyword ngxDirectiveThirdParty passenger_log_level
+syn keyword ngxDirectiveThirdParty passenger_log_file
+syn keyword ngxDirectiveThirdParty passenger_file_descriptor_log_file
+syn keyword ngxDirectiveThirdParty passenger_debugger
+syn keyword ngxDirectiveThirdParty passenger_instance_registry_dir
+syn keyword ngxDirectiveThirdParty passenger_data_buffer_dir
+syn keyword ngxDirectiveThirdParty passenger_fly_with
+syn keyword ngxDirectiveThirdParty union_station_support
+syn keyword ngxDirectiveThirdParty union_station_key
+syn keyword ngxDirectiveThirdParty union_station_proxy_address
+syn keyword ngxDirectiveThirdParty union_station_filter
+syn keyword ngxDirectiveThirdParty union_station_gateway_address
+syn keyword ngxDirectiveThirdParty union_station_gateway_port
+syn keyword ngxDirectiveThirdParty union_station_gateway_cert
+syn keyword ngxDirectiveDeprecated rails_spawn_method
+syn keyword ngxDirectiveDeprecated passenger_debug_log_file
 
-" RDS JSON Module <http://github.com/agentzh/rds-json-nginx-module>
-" Help ngx_drizzle and other DBD modules emit JSON data.
+" Postgres Module <http://labs.frickle.com/nginx_ngx_postgres/>
+" Upstream module that allows nginx to communicate directly with PostgreSQL database.
+syn keyword ngxDirectiveThirdParty postgres_server
+syn keyword ngxDirectiveThirdParty postgres_keepalive
+syn keyword ngxDirectiveThirdParty postgres_pass
+syn keyword ngxDirectiveThirdParty postgres_query
+syn keyword ngxDirectiveThirdParty postgres_rewrite
+syn keyword ngxDirectiveThirdParty postgres_output
+syn keyword ngxDirectiveThirdParty postgres_set
+syn keyword ngxDirectiveThirdParty postgres_escape
+syn keyword ngxDirectiveThirdParty postgres_connect_timeout
+syn keyword ngxDirectiveThirdParty postgres_result_timeout
+
+" Pubcookie Module <https://www.vanko.me/book/page/pubcookie-module-nginx>
+" Authorizes users using encrypted cookies
+syn keyword ngxDirectiveThirdParty pubcookie_inactive_expire
+syn keyword ngxDirectiveThirdParty pubcookie_hard_expire
+syn keyword ngxDirectiveThirdParty pubcookie_app_id
+syn keyword ngxDirectiveThirdParty pubcookie_dir_depth
+syn keyword ngxDirectiveThirdParty pubcookie_catenate_app_ids
+syn keyword ngxDirectiveThirdParty pubcookie_app_srv_id
+syn keyword ngxDirectiveThirdParty pubcookie_login
+syn keyword ngxDirectiveThirdParty pubcookie_login_method
+syn keyword ngxDirectiveThirdParty pubcookie_post
+syn keyword ngxDirectiveThirdParty pubcookie_domain
+syn keyword ngxDirectiveThirdParty pubcookie_granting_cert_file
+syn keyword ngxDirectiveThirdParty pubcookie_session_key_file
+syn keyword ngxDirectiveThirdParty pubcookie_session_cert_file
+syn keyword ngxDirectiveThirdParty pubcookie_crypt_key_file
+syn keyword ngxDirectiveThirdParty pubcookie_end_session
+syn keyword ngxDirectiveThirdParty pubcookie_encryption
+syn keyword ngxDirectiveThirdParty pubcookie_session_reauth
+syn keyword ngxDirectiveThirdParty pubcookie_auth_type_names
+syn keyword ngxDirectiveThirdParty pubcookie_no_prompt
+syn keyword ngxDirectiveThirdParty pubcookie_on_demand
+syn keyword ngxDirectiveThirdParty pubcookie_addl_request
+syn keyword ngxDirectiveThirdParty pubcookie_no_obscure_cookies
+syn keyword ngxDirectiveThirdParty pubcookie_no_clean_creds
+syn keyword ngxDirectiveThirdParty pubcookie_egd_device
+syn keyword ngxDirectiveThirdParty pubcookie_no_blank
+syn keyword ngxDirectiveThirdParty pubcookie_super_debug
+syn keyword ngxDirectiveThirdParty pubcookie_set_remote_user
+
+" Push Stream Module <https://github.com/wandenberg/nginx-push-stream-module>
+" A pure stream http push technology for your Nginx setup
+syn keyword ngxDirectiveThirdParty push_stream_channels_statistics
+syn keyword ngxDirectiveThirdParty push_stream_publisher
+syn keyword ngxDirectiveThirdParty push_stream_subscriber
+syn keyword ngxDirectiveThirdParty push_stream_shared_memory_size
+syn keyword ngxDirectiveThirdParty push_stream_channel_deleted_message_text
+syn keyword ngxDirectiveThirdParty push_stream_channel_inactivity_time
+syn keyword ngxDirectiveThirdParty push_stream_ping_message_text
+syn keyword ngxDirectiveThirdParty push_stream_timeout_with_body
+syn keyword ngxDirectiveThirdParty push_stream_message_ttl
+syn keyword ngxDirectiveThirdParty push_stream_max_subscribers_per_channel
+syn keyword ngxDirectiveThirdParty push_stream_max_messages_stored_per_channel
+syn keyword ngxDirectiveThirdParty push_stream_max_channel_id_length
+syn keyword ngxDirectiveThirdParty push_stream_max_number_of_channels
+syn keyword ngxDirectiveThirdParty push_stream_max_number_of_wildcard_channels
+syn keyword ngxDirectiveThirdParty push_stream_wildcard_channel_prefix
+syn keyword ngxDirectiveThirdParty push_stream_events_channel_id
+syn keyword ngxDirectiveThirdParty push_stream_channels_path
+syn keyword ngxDirectiveThirdParty push_stream_store_messages
+syn keyword ngxDirectiveThirdParty push_stream_channel_info_on_publish
+syn keyword ngxDirectiveThirdParty push_stream_authorized_channels_only
+syn keyword ngxDirectiveThirdParty push_stream_header_template_file
+syn keyword ngxDirectiveThirdParty push_stream_header_template
+syn keyword ngxDirectiveThirdParty push_stream_message_template
+syn keyword ngxDirectiveThirdParty push_stream_footer_template
+syn keyword ngxDirectiveThirdParty push_stream_wildcard_channel_max_qtd
+syn keyword ngxDirectiveThirdParty push_stream_ping_message_interval
+syn keyword ngxDirectiveThirdParty push_stream_subscriber_connection_ttl
+syn keyword ngxDirectiveThirdParty push_stream_longpolling_connection_ttl
+syn keyword ngxDirectiveThirdParty push_stream_websocket_allow_publish
+syn keyword ngxDirectiveThirdParty push_stream_last_received_message_time
+syn keyword ngxDirectiveThirdParty push_stream_last_received_message_tag
+syn keyword ngxDirectiveThirdParty push_stream_last_event_id
+syn keyword ngxDirectiveThirdParty push_stream_user_agent
+syn keyword ngxDirectiveThirdParty push_stream_padding_by_user_agent
+syn keyword ngxDirectiveThirdParty push_stream_allowed_origins
+syn keyword ngxDirectiveThirdParty push_stream_allow_connections_to_events_channel
+
+" rDNS Module <https://github.com/flant/nginx-http-rdns>
+" Make a reverse DNS (rDNS) lookup for incoming connection and provides simple access control of incoming hostname by allow/deny rules
+syn keyword ngxDirectiveThirdParty rdns
+syn keyword ngxDirectiveThirdParty rdns_allow
+syn keyword ngxDirectiveThirdParty rdns_deny
+
+" RDS CSV Module <https://github.com/openresty/rds-csv-nginx-module>
+" Nginx output filter module to convert Resty-DBD-Streams (RDS) to Comma-Separated Values (CSV)
+syn keyword ngxDirectiveThirdParty rds_csv
+syn keyword ngxDirectiveThirdParty rds_csv_row_terminator
+syn keyword ngxDirectiveThirdParty rds_csv_field_separator
+syn keyword ngxDirectiveThirdParty rds_csv_field_name_header
+syn keyword ngxDirectiveThirdParty rds_csv_content_type
+syn keyword ngxDirectiveThirdParty rds_csv_buffer_size
+
+" RDS JSON Module <https://github.com/openresty/rds-json-nginx-module>
+" An output filter that formats Resty DBD Streams generated by ngx_drizzle and others to JSON
 syn keyword ngxDirectiveThirdParty rds_json
-syn keyword ngxDirectiveThirdParty rds_json_content_type
+syn keyword ngxDirectiveThirdParty rds_json_buffer_size
 syn keyword ngxDirectiveThirdParty rds_json_format
+syn keyword ngxDirectiveThirdParty rds_json_root
+syn keyword ngxDirectiveThirdParty rds_json_success_property
+syn keyword ngxDirectiveThirdParty rds_json_user_property
+syn keyword ngxDirectiveThirdParty rds_json_errcode_key
+syn keyword ngxDirectiveThirdParty rds_json_errstr_key
 syn keyword ngxDirectiveThirdParty rds_json_ret
+syn keyword ngxDirectiveThirdParty rds_json_content_type
 
-" RRD Graph Module <http://wiki.nginx.org/NginxNgx_rrd_graph>
+" Redis Module <https://www.nginx.com/resources/wiki/modules/redis/>
+" Use this module to perform simple caching
+syn keyword ngxDirectiveThirdParty redis_pass
+syn keyword ngxDirectiveThirdParty redis_bind
+syn keyword ngxDirectiveThirdParty redis_connect_timeout
+syn keyword ngxDirectiveThirdParty redis_read_timeout
+syn keyword ngxDirectiveThirdParty redis_send_timeout
+syn keyword ngxDirectiveThirdParty redis_buffer_size
+syn keyword ngxDirectiveThirdParty redis_next_upstream
+syn keyword ngxDirectiveThirdParty redis_gzip_flag
+
+" Redis 2 Module <https://github.com/openresty/redis2-nginx-module>
+" Nginx upstream module for the Redis 2.0 protocol
+syn keyword ngxDirectiveThirdParty redis2_query
+syn keyword ngxDirectiveThirdParty redis2_raw_query
+syn keyword ngxDirectiveThirdParty redis2_raw_queries
+syn keyword ngxDirectiveThirdParty redis2_literal_raw_query
+syn keyword ngxDirectiveThirdParty redis2_pass
+syn keyword ngxDirectiveThirdParty redis2_connect_timeout
+syn keyword ngxDirectiveThirdParty redis2_send_timeout
+syn keyword ngxDirectiveThirdParty redis2_read_timeout
+syn keyword ngxDirectiveThirdParty redis2_buffer_size
+syn keyword ngxDirectiveThirdParty redis2_next_upstream
+
+" Replace Filter Module <https://github.com/openresty/replace-filter-nginx-module>
+" Streaming regular expression replacement in response bodies
+syn keyword ngxDirectiveThirdParty replace_filter
+syn keyword ngxDirectiveThirdParty replace_filter_types
+syn keyword ngxDirectiveThirdParty replace_filter_max_buffered_size
+syn keyword ngxDirectiveThirdParty replace_filter_last_modified
+syn keyword ngxDirectiveThirdParty replace_filter_skip
+
+" Roboo Module <https://github.com/yuri-gushin/Roboo>
+" HTTP Robot Mitigator
+
+" RRD Graph Module <https://www.nginx.com/resources/wiki/modules/rrd_graph/>
 " This module provides an HTTP interface to RRDtool's graphing facilities.
 syn keyword ngxDirectiveThirdParty rrd_graph
 syn keyword ngxDirectiveThirdParty rrd_graph_root
 
-" Secure Download <http://wiki.nginx.org/NginxHttpSecureDownload>
-" Create expiring links.
-syn keyword ngxDirectiveThirdParty secure_download
-syn keyword ngxDirectiveThirdParty secure_download_fail_location
-syn keyword ngxDirectiveThirdParty secure_download_path_mode
-syn keyword ngxDirectiveThirdParty secure_download_secret
+" RTMP Module <https://github.com/arut/nginx-rtmp-module>
+" NGINX-based Media Streaming Server
+syn keyword ngxDirectiveThirdParty rtmp
+" syn keyword ngxDirectiveThirdParty server
+" syn keyword ngxDirectiveThirdParty listen
+syn keyword ngxDirectiveThirdParty application
+" syn keyword ngxDirectiveThirdParty timeout
+syn keyword ngxDirectiveThirdParty ping
+syn keyword ngxDirectiveThirdParty ping_timeout
+syn keyword ngxDirectiveThirdParty max_streams
+syn keyword ngxDirectiveThirdParty ack_window
+syn keyword ngxDirectiveThirdParty chunk_size
+syn keyword ngxDirectiveThirdParty max_queue
+syn keyword ngxDirectiveThirdParty max_message
+syn keyword ngxDirectiveThirdParty out_queue
+syn keyword ngxDirectiveThirdParty out_cork
+" syn keyword ngxDirectiveThirdParty allow
+" syn keyword ngxDirectiveThirdParty deny
+syn keyword ngxDirectiveThirdParty exec_push
+syn keyword ngxDirectiveThirdParty exec_pull
+syn keyword ngxDirectiveThirdParty exec
+syn keyword ngxDirectiveThirdParty exec_options
+syn keyword ngxDirectiveThirdParty exec_static
+syn keyword ngxDirectiveThirdParty exec_kill_signal
+syn keyword ngxDirectiveThirdParty respawn
+syn keyword ngxDirectiveThirdParty respawn_timeout
+syn keyword ngxDirectiveThirdParty exec_publish
+syn keyword ngxDirectiveThirdParty exec_play
+syn keyword ngxDirectiveThirdParty exec_play_done
+syn keyword ngxDirectiveThirdParty exec_publish_done
+syn keyword ngxDirectiveThirdParty exec_record_done
+syn keyword ngxDirectiveThirdParty live
+syn keyword ngxDirectiveThirdParty meta
+syn keyword ngxDirectiveThirdParty interleave
+syn keyword ngxDirectiveThirdParty wait_key
+syn keyword ngxDirectiveThirdParty wait_video
+syn keyword ngxDirectiveThirdParty publish_notify
+syn keyword ngxDirectiveThirdParty drop_idle_publisher
+syn keyword ngxDirectiveThirdParty sync
+syn keyword ngxDirectiveThirdParty play_restart
+syn keyword ngxDirectiveThirdParty idle_streams
+syn keyword ngxDirectiveThirdParty record
+syn keyword ngxDirectiveThirdParty record_path
+syn keyword ngxDirectiveThirdParty record_suffix
+syn keyword ngxDirectiveThirdParty record_unique
+syn keyword ngxDirectiveThirdParty record_append
+syn keyword ngxDirectiveThirdParty record_lock
+syn keyword ngxDirectiveThirdParty record_max_size
+syn keyword ngxDirectiveThirdParty record_max_frames
+syn keyword ngxDirectiveThirdParty record_interval
+syn keyword ngxDirectiveThirdParty recorder
+syn keyword ngxDirectiveThirdParty record_notify
+syn keyword ngxDirectiveThirdParty play
+syn keyword ngxDirectiveThirdParty play_temp_path
+syn keyword ngxDirectiveThirdParty play_local_path
+syn keyword ngxDirectiveThirdParty pull
+syn keyword ngxDirectiveThirdParty push
+syn keyword ngxDirectiveThirdParty push_reconnect
+syn keyword ngxDirectiveThirdParty session_relay
+syn keyword ngxDirectiveThirdParty on_connect
+syn keyword ngxDirectiveThirdParty on_play
+syn keyword ngxDirectiveThirdParty on_publish
+syn keyword ngxDirectiveThirdParty on_done
+syn keyword ngxDirectiveThirdParty on_play_done
+syn keyword ngxDirectiveThirdParty on_publish_done
+syn keyword ngxDirectiveThirdParty on_record_done
+syn keyword ngxDirectiveThirdParty on_update
+syn keyword ngxDirectiveThirdParty notify_update_timeout
+syn keyword ngxDirectiveThirdParty notify_update_strict
+syn keyword ngxDirectiveThirdParty notify_relay_redirect
+syn keyword ngxDirectiveThirdParty notify_method
+syn keyword ngxDirectiveThirdParty hls
+syn keyword ngxDirectiveThirdParty hls_path
+syn keyword ngxDirectiveThirdParty hls_fragment
+syn keyword ngxDirectiveThirdParty hls_playlist_length
+syn keyword ngxDirectiveThirdParty hls_sync
+syn keyword ngxDirectiveThirdParty hls_continuous
+syn keyword ngxDirectiveThirdParty hls_nested
+syn keyword ngxDirectiveThirdParty hls_base_url
+syn keyword ngxDirectiveThirdParty hls_cleanup
+syn keyword ngxDirectiveThirdParty hls_fragment_naming
+syn keyword ngxDirectiveThirdParty hls_fragment_slicing
+syn keyword ngxDirectiveThirdParty hls_variant
+syn keyword ngxDirectiveThirdParty hls_type
+syn keyword ngxDirectiveThirdParty hls_keys
+syn keyword ngxDirectiveThirdParty hls_key_path
+syn keyword ngxDirectiveThirdParty hls_key_url
+syn keyword ngxDirectiveThirdParty hls_fragments_per_key
+syn keyword ngxDirectiveThirdParty dash
+syn keyword ngxDirectiveThirdParty dash_path
+syn keyword ngxDirectiveThirdParty dash_fragment
+syn keyword ngxDirectiveThirdParty dash_playlist_length
+syn keyword ngxDirectiveThirdParty dash_nested
+syn keyword ngxDirectiveThirdParty dash_cleanup
+" syn keyword ngxDirectiveThirdParty access_log
+" syn keyword ngxDirectiveThirdParty log_format
+syn keyword ngxDirectiveThirdParty max_connections
+syn keyword ngxDirectiveThirdParty rtmp_stat
+syn keyword ngxDirectiveThirdParty rtmp_stat_stylesheet
+syn keyword ngxDirectiveThirdParty rtmp_auto_push
+syn keyword ngxDirectiveThirdParty rtmp_auto_push_reconnect
+syn keyword ngxDirectiveThirdParty rtmp_socket_dir
+syn keyword ngxDirectiveThirdParty rtmp_control
 
-" SlowFS Cache Module <http://labs.frickle.com/nginx_ngx_slowfs_cache/>
+" RTMPT Module <https://github.com/kwojtek/nginx-rtmpt-proxy-module>
+" Module for nginx to proxy rtmp using http protocol
+syn keyword ngxDirectiveThirdParty rtmpt_proxy_target
+syn keyword ngxDirectiveThirdParty rtmpt_proxy_rtmp_timeout
+syn keyword ngxDirectiveThirdParty rtmpt_proxy_http_timeout
+syn keyword ngxDirectiveThirdParty rtmpt_proxy
+syn keyword ngxDirectiveThirdParty rtmpt_proxy_stat
+syn keyword ngxDirectiveThirdParty rtmpt_proxy_stylesheet
+
+" Syntactically Awesome Module <https://github.com/mneudert/sass-nginx-module>
+" Providing on-the-fly compiling of Sass files as an NGINX module.
+syn keyword ngxDirectiveThirdParty sass_compile
+syn keyword ngxDirectiveThirdParty sass_error_log
+syn keyword ngxDirectiveThirdParty sass_include_path
+syn keyword ngxDirectiveThirdParty sass_indent
+syn keyword ngxDirectiveThirdParty sass_is_indented_syntax
+syn keyword ngxDirectiveThirdParty sass_linefeed
+syn keyword ngxDirectiveThirdParty sass_precision
+syn keyword ngxDirectiveThirdParty sass_output_style
+syn keyword ngxDirectiveThirdParty sass_source_comments
+syn keyword ngxDirectiveThirdParty sass_source_map_embed
+
+" Secure Download Module <https://www.nginx.com/resources/wiki/modules/secure_download/>
+" Enables you to create links which are only valid until a certain datetime is reached
+syn keyword ngxDirectiveThirdParty secure_download
+syn keyword ngxDirectiveThirdParty secure_download_secret
+syn keyword ngxDirectiveThirdParty secure_download_path_mode
+
+" Selective Cache Purge Module <https://github.com/wandenberg/nginx-selective-cache-purge-module>
+" A module to purge cache by GLOB patterns. The supported patterns are the same as supported by Redis.
+syn keyword ngxDirectiveThirdParty selective_cache_purge_redis_unix_socket
+syn keyword ngxDirectiveThirdParty selective_cache_purge_redis_host
+syn keyword ngxDirectiveThirdParty selective_cache_purge_redis_port
+syn keyword ngxDirectiveThirdParty selective_cache_purge_redis_database
+syn keyword ngxDirectiveThirdParty selective_cache_purge_query
+
+" Set cconv Module <https://github.com/liseen/set-cconv-nginx-module>
+" Cconv rewrite set commands
+syn keyword ngxDirectiveThirdParty set_cconv_to_simp
+syn keyword ngxDirectiveThirdParty set_cconv_to_trad
+syn keyword ngxDirectiveThirdParty set_pinyin_to_normal
+
+" Set Hash Module <https://github.com/simpl/ngx_http_set_hash>
+" Nginx module that allows the setting of variables to the value of a variety of hashes
+syn keyword ngxDirectiveThirdParty set_md5
+syn keyword ngxDirectiveThirdParty set_md5_upper
+syn keyword ngxDirectiveThirdParty set_murmur2
+syn keyword ngxDirectiveThirdParty set_murmur2_upper
+syn keyword ngxDirectiveThirdParty set_sha1
+syn keyword ngxDirectiveThirdParty set_sha1_upper
+
+" Set Lang Module <https://github.com/simpl/ngx_http_set_lang>
+" Provides a variety of ways for setting a variable denoting the langauge that content should be returned in.
+syn keyword ngxDirectiveThirdParty set_lang
+syn keyword ngxDirectiveThirdParty set_lang_method
+syn keyword ngxDirectiveThirdParty lang_cookie
+syn keyword ngxDirectiveThirdParty lang_get_var
+syn keyword ngxDirectiveThirdParty lang_list
+syn keyword ngxDirectiveThirdParty lang_post_var
+syn keyword ngxDirectiveThirdParty lang_host
+syn keyword ngxDirectiveThirdParty lang_referer
+
+" Set Misc Module <https://github.com/openresty/set-misc-nginx-module>
+" Various set_xxx directives added to nginx's rewrite module
+syn keyword ngxDirectiveThirdParty set_if_empty
+syn keyword ngxDirectiveThirdParty set_quote_sql_str
+syn keyword ngxDirectiveThirdParty set_quote_pgsql_str
+syn keyword ngxDirectiveThirdParty set_quote_json_str
+syn keyword ngxDirectiveThirdParty set_unescape_uri
+syn keyword ngxDirectiveThirdParty set_escape_uri
+syn keyword ngxDirectiveThirdParty set_hashed_upstream
+syn keyword ngxDirectiveThirdParty set_encode_base32
+syn keyword ngxDirectiveThirdParty set_base32_padding
+syn keyword ngxDirectiveThirdParty set_misc_base32_padding
+syn keyword ngxDirectiveThirdParty set_base32_alphabet
+syn keyword ngxDirectiveThirdParty set_decode_base32
+syn keyword ngxDirectiveThirdParty set_encode_base64
+syn keyword ngxDirectiveThirdParty set_decode_base64
+syn keyword ngxDirectiveThirdParty set_encode_hex
+syn keyword ngxDirectiveThirdParty set_decode_hex
+syn keyword ngxDirectiveThirdParty set_sha1
+syn keyword ngxDirectiveThirdParty set_md5
+syn keyword ngxDirectiveThirdParty set_hmac_sha1
+syn keyword ngxDirectiveThirdParty set_random
+syn keyword ngxDirectiveThirdParty set_secure_random_alphanum
+syn keyword ngxDirectiveThirdParty set_secure_random_lcalpha
+syn keyword ngxDirectiveThirdParty set_rotate
+syn keyword ngxDirectiveThirdParty set_local_today
+syn keyword ngxDirectiveThirdParty set_formatted_gmt_time
+syn keyword ngxDirectiveThirdParty set_formatted_local_time
+
+" SFlow Module <https://github.com/sflow/nginx-sflow-module>
+" A binary, random-sampling nginx module designed for: lightweight, centralized, continuous, real-time monitoring of very large and very busy web farms.
+syn keyword ngxDirectiveThirdParty sflow
+
+" Shibboleth Module <https://github.com/nginx-shib/nginx-http-shibboleth>
+" Shibboleth auth request module for nginx
+syn keyword ngxDirectiveThirdParty shib_request
+syn keyword ngxDirectiveThirdParty shib_request_set
+syn keyword ngxDirectiveThirdParty shib_request_use_headers
+
+" Slice Module <https://github.com/alibaba/nginx-http-slice>
+" Nginx module for serving a file in slices (reverse byte-range)
+" syn keyword ngxDirectiveThirdParty slice
+syn keyword ngxDirectiveThirdParty slice_arg_begin
+syn keyword ngxDirectiveThirdParty slice_arg_end
+syn keyword ngxDirectiveThirdParty slice_header
+syn keyword ngxDirectiveThirdParty slice_footer
+syn keyword ngxDirectiveThirdParty slice_header_first
+syn keyword ngxDirectiveThirdParty slice_footer_last
+
+" SlowFS Cache Module <https://github.com/FRiCKLE/ngx_slowfs_cache/>
 " Module adding ability to cache static files.
 syn keyword ngxDirectiveThirdParty slowfs_big_file_size
 syn keyword ngxDirectiveThirdParty slowfs_cache
@@ -751,16 +1773,140 @@
 syn keyword ngxDirectiveThirdParty slowfs_cache_valid
 syn keyword ngxDirectiveThirdParty slowfs_temp_path
 
-" Strip Module <http://wiki.nginx.org/NginxHttpStripModule>
+" Small Light Module <https://github.com/cubicdaiya/ngx_small_light>
+" Dynamic Image Transformation Module For nginx.
+syn keyword ngxDirectiveThirdParty small_light
+syn keyword ngxDirectiveThirdParty small_light_getparam_mode
+syn keyword ngxDirectiveThirdParty small_light_material_dir
+syn keyword ngxDirectiveThirdParty small_light_pattern_define
+syn keyword ngxDirectiveThirdParty small_light_radius_max
+syn keyword ngxDirectiveThirdParty small_light_sigma_max
+syn keyword ngxDirectiveThirdParty small_light_imlib2_temp_dir
+syn keyword ngxDirectiveThirdParty small_light_buffer
+
+" Sorted Querystring Filter Module <https://github.com/wandenberg/nginx-sorted-querystring-module>
+" Nginx module to expose querystring parameters sorted in a variable to be used on cache_key as example
+syn keyword ngxDirectiveThirdParty sorted_querystring_filter_parameter
+
+" Sphinx2 Module <https://github.com/reeteshranjan/sphinx2-nginx-module>
+" Nginx upstream module for Sphinx 2.x
+syn keyword ngxDirectiveThirdParty sphinx2_pass
+syn keyword ngxDirectiveThirdParty sphinx2_bind
+syn keyword ngxDirectiveThirdParty sphinx2_connect_timeout
+syn keyword ngxDirectiveThirdParty sphinx2_send_timeout
+syn keyword ngxDirectiveThirdParty sphinx2_buffer_size
+syn keyword ngxDirectiveThirdParty sphinx2_read_timeout
+syn keyword ngxDirectiveThirdParty sphinx2_next_upstream
+
+" HTTP SPNEGO auth Module <https://github.com/stnoonan/spnego-http-auth-nginx-module>
+" This module implements adds SPNEGO support to nginx(http://nginx.org). It currently supports only Kerberos authentication via GSSAPI
+syn keyword ngxDirectiveThirdParty auth_gss
+syn keyword ngxDirectiveThirdParty auth_gss_keytab
+syn keyword ngxDirectiveThirdParty auth_gss_realm
+syn keyword ngxDirectiveThirdParty auth_gss_service_name
+syn keyword ngxDirectiveThirdParty auth_gss_authorized_principal
+syn keyword ngxDirectiveThirdParty auth_gss_allow_basic_fallback
+
+" SR Cache Module <https://github.com/openresty/srcache-nginx-module>
+" Transparent subrequest-based caching layout for arbitrary nginx locations
+syn keyword ngxDirectiveThirdParty srcache_fetch
+syn keyword ngxDirectiveThirdParty srcache_fetch_skip
+syn keyword ngxDirectiveThirdParty srcache_store
+syn keyword ngxDirectiveThirdParty srcache_store_max_size
+syn keyword ngxDirectiveThirdParty srcache_store_skip
+syn keyword ngxDirectiveThirdParty srcache_store_statuses
+syn keyword ngxDirectiveThirdParty srcache_store_ranges
+syn keyword ngxDirectiveThirdParty srcache_header_buffer_size
+syn keyword ngxDirectiveThirdParty srcache_store_hide_header
+syn keyword ngxDirectiveThirdParty srcache_store_pass_header
+syn keyword ngxDirectiveThirdParty srcache_methods
+syn keyword ngxDirectiveThirdParty srcache_ignore_content_encoding
+syn keyword ngxDirectiveThirdParty srcache_request_cache_control
+syn keyword ngxDirectiveThirdParty srcache_response_cache_control
+syn keyword ngxDirectiveThirdParty srcache_store_no_store
+syn keyword ngxDirectiveThirdParty srcache_store_no_cache
+syn keyword ngxDirectiveThirdParty srcache_store_private
+syn keyword ngxDirectiveThirdParty srcache_default_expire
+syn keyword ngxDirectiveThirdParty srcache_max_expire
+
+" SSSD Info Module <https://github.com/veruu/ngx_sssd_info>
+" Retrives additional attributes from SSSD for current authentizated user
+syn keyword ngxDirectiveThirdParty sssd_info
+syn keyword ngxDirectiveThirdParty sssd_info_output_to
+syn keyword ngxDirectiveThirdParty sssd_info_groups
+syn keyword ngxDirectiveThirdParty sssd_info_group
+syn keyword ngxDirectiveThirdParty sssd_info_group_separator
+syn keyword ngxDirectiveThirdParty sssd_info_attributes
+syn keyword ngxDirectiveThirdParty sssd_info_attribute
+syn keyword ngxDirectiveThirdParty sssd_info_attribute_separator
+
+" Static Etags Module <https://github.com/mikewest/nginx-static-etags>
+" Generate etags for static content
+syn keyword ngxDirectiveThirdParty FileETag
+
+" Statsd Module <https://github.com/zebrafishlabs/nginx-statsd>
+" An nginx module for sending statistics to statsd
+syn keyword ngxDirectiveThirdParty statsd_server
+syn keyword ngxDirectiveThirdParty statsd_sample_rate
+syn keyword ngxDirectiveThirdParty statsd_count
+syn keyword ngxDirectiveThirdParty statsd_timing
+
+" Sticky Module <https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng>
+" Add a sticky cookie to be always forwarded to the same upstream server
+" syn keyword ngxDirectiveThirdParty sticky
+
+" Stream Echo Module <https://github.com/openresty/stream-echo-nginx-module>
+" TCP/stream echo module for NGINX (a port of ngx_http_echo_module)
+syn keyword ngxDirectiveThirdParty echo
+syn keyword ngxDirectiveThirdParty echo_duplicate
+syn keyword ngxDirectiveThirdParty echo_flush_wait
+syn keyword ngxDirectiveThirdParty echo_sleep
+syn keyword ngxDirectiveThirdParty echo_send_timeout
+syn keyword ngxDirectiveThirdParty echo_read_bytes
+syn keyword ngxDirectiveThirdParty echo_read_line
+syn keyword ngxDirectiveThirdParty echo_request_data
+syn keyword ngxDirectiveThirdParty echo_discard_request
+syn keyword ngxDirectiveThirdParty echo_read_buffer_size
+syn keyword ngxDirectiveThirdParty echo_read_timeout
+syn keyword ngxDirectiveThirdParty echo_client_error_log_level
+syn keyword ngxDirectiveThirdParty echo_lingering_close
+syn keyword ngxDirectiveThirdParty echo_lingering_time
+syn keyword ngxDirectiveThirdParty echo_lingering_timeout
+
+" Stream Lua Module <https://github.com/openresty/stream-lua-nginx-module>
+" Embed the power of Lua into Nginx stream/TCP Servers.
+syn keyword ngxDirectiveThirdParty lua_resolver
+syn keyword ngxDirectiveThirdParty lua_resolver_timeout
+syn keyword ngxDirectiveThirdParty lua_lingering_close
+syn keyword ngxDirectiveThirdParty lua_lingering_time
+syn keyword ngxDirectiveThirdParty lua_lingering_timeout
+
+" Stream Upsync Module <https://github.com/xiaokai-wang/nginx-stream-upsync-module>
+" Sync upstreams from consul or others, dynamiclly modify backend-servers attribute(weight, max_fails,...), needn't reload nginx.
+syn keyword ngxDirectiveThirdParty upsync
+syn keyword ngxDirectiveThirdParty upsync_dump_path
+syn keyword ngxDirectiveThirdParty upsync_lb
+syn keyword ngxDirectiveThirdParty upsync_show
+
+" Strip Module <https://github.com/evanmiller/mod_strip>
 " Whitespace remover.
 syn keyword ngxDirectiveThirdParty strip
 
-" Substitutions Module <http://wiki.nginx.org/NginxHttpSubsModule>
+" Subrange Module <https://github.com/Qihoo360/ngx_http_subrange_module>
+" Split one big HTTP/Range request to multiple subrange requesets
+syn keyword ngxDirectiveThirdParty subrange
+
+" Substitutions Module <https://www.nginx.com/resources/wiki/modules/substitutions/>
 " A filter module which can do both regular expression and fixed string substitutions on response bodies.
 syn keyword ngxDirectiveThirdParty subs_filter
 syn keyword ngxDirectiveThirdParty subs_filter_types
 
-" Supervisord Module <http://labs.frickle.com/nginx_ngx_supervisord/>
+" Summarizer Module <https://github.com/reeteshranjan/summarizer-nginx-module>
+" Upstream nginx module to get summaries of documents using the summarizer daemon service
+syn keyword ngxDirectiveThirdParty smrzr_filename
+syn keyword ngxDirectiveThirdParty smrzr_ratio
+
+" Supervisord Module <https://github.com/FRiCKLE/ngx_supervisord/>
 " Module providing nginx with API to communicate with supervisord and manage (start/stop) backends on-demand.
 syn keyword ngxDirectiveThirdParty supervisord
 syn keyword ngxDirectiveThirdParty supervisord_inherit_backend_status
@@ -768,52 +1914,210 @@
 syn keyword ngxDirectiveThirdParty supervisord_start
 syn keyword ngxDirectiveThirdParty supervisord_stop
 
-" Upload Module <http://www.grid.net.ru/nginx/upload.en.html>
-" Parses multipart/form-data allowing arbitrary handling of uploaded files.
-syn keyword ngxDirectiveThirdParty upload_aggregate_form_field
-syn keyword ngxDirectiveThirdParty upload_buffer_size
-syn keyword ngxDirectiveThirdParty upload_cleanup
-syn keyword ngxDirectiveThirdParty upload_limit_rate
-syn keyword ngxDirectiveThirdParty upload_max_file_size
-syn keyword ngxDirectiveThirdParty upload_max_output_body_len
-syn keyword ngxDirectiveThirdParty upload_max_part_header_len
-syn keyword ngxDirectiveThirdParty upload_pass
-syn keyword ngxDirectiveThirdParty upload_pass_args
-syn keyword ngxDirectiveThirdParty upload_pass_form_field
-syn keyword ngxDirectiveThirdParty upload_set_form_field
-syn keyword ngxDirectiveThirdParty upload_store
-syn keyword ngxDirectiveThirdParty upload_store_access
+" Tarantool Upstream Module <https://github.com/tarantool/nginx_upstream_module>
+" Tarantool NginX upstream module (REST, JSON API, websockets, load balancing)
+syn keyword ngxDirectiveThirdParty tnt_pass
+syn keyword ngxDirectiveThirdParty tnt_http_methods
+syn keyword ngxDirectiveThirdParty tnt_http_rest_methods
+syn keyword ngxDirectiveThirdParty tnt_pass_http_request
+syn keyword ngxDirectiveThirdParty tnt_pass_http_request_buffer_size
+syn keyword ngxDirectiveThirdParty tnt_method
+syn keyword ngxDirectiveThirdParty tnt_http_allowed_methods - experemental
+syn keyword ngxDirectiveThirdParty tnt_send_timeout
+syn keyword ngxDirectiveThirdParty tnt_read_timeout
+syn keyword ngxDirectiveThirdParty tnt_buffer_size
+syn keyword ngxDirectiveThirdParty tnt_next_upstream
+syn keyword ngxDirectiveThirdParty tnt_connect_timeout
+syn keyword ngxDirectiveThirdParty tnt_next_upstream
+syn keyword ngxDirectiveThirdParty tnt_next_upstream_tries
+syn keyword ngxDirectiveThirdParty tnt_next_upstream_timeout
 
-" Upload Progress Module <http://wiki.nginx.org/NginxHttpUploadProgressModule>
-" Tracks and reports upload progress.
-syn keyword ngxDirectiveThirdParty report_uploads
-syn keyword ngxDirectiveThirdParty track_uploads
+" TCP Proxy Module <http://yaoweibin.github.io/nginx_tcp_proxy_module/>
+" Add the feature of tcp proxy with nginx, with health check and status monitor
+syn keyword ngxDirectiveBlock tcp
+" syn keyword ngxDirectiveThirdParty server
+" syn keyword ngxDirectiveThirdParty listen
+" syn keyword ngxDirectiveThirdParty allow
+" syn keyword ngxDirectiveThirdParty deny
+" syn keyword ngxDirectiveThirdParty so_keepalive
+" syn keyword ngxDirectiveThirdParty tcp_nodelay
+" syn keyword ngxDirectiveThirdParty timeout
+" syn keyword ngxDirectiveThirdParty server_name
+" syn keyword ngxDirectiveThirdParty resolver
+" syn keyword ngxDirectiveThirdParty resolver_timeout
+" syn keyword ngxDirectiveThirdParty upstream
+syn keyword ngxDirectiveThirdParty check
+syn keyword ngxDirectiveThirdParty check_http_send
+syn keyword ngxDirectiveThirdParty check_http_expect_alive
+syn keyword ngxDirectiveThirdParty check_smtp_send
+syn keyword ngxDirectiveThirdParty check_smtp_expect_alive
+syn keyword ngxDirectiveThirdParty check_shm_size
+syn keyword ngxDirectiveThirdParty check_status
+" syn keyword ngxDirectiveThirdParty ip_hash
+" syn keyword ngxDirectiveThirdParty proxy_pass
+" syn keyword ngxDirectiveThirdParty proxy_buffer
+" syn keyword ngxDirectiveThirdParty proxy_connect_timeout
+" syn keyword ngxDirectiveThirdParty proxy_read_timeout
+syn keyword ngxDirectiveThirdParty proxy_write_timeout
+
+" Testcookie Module <https://github.com/kyprizel/testcookie-nginx-module>
+" NGINX module for L7 DDoS attack mitigation
+syn keyword ngxDirectiveThirdParty testcookie
+syn keyword ngxDirectiveThirdParty testcookie_name
+syn keyword ngxDirectiveThirdParty testcookie_domain
+syn keyword ngxDirectiveThirdParty testcookie_expires
+syn keyword ngxDirectiveThirdParty testcookie_path
+syn keyword ngxDirectiveThirdParty testcookie_secret
+syn keyword ngxDirectiveThirdParty testcookie_session
+syn keyword ngxDirectiveThirdParty testcookie_arg
+syn keyword ngxDirectiveThirdParty testcookie_max_attempts
+syn keyword ngxDirectiveThirdParty testcookie_p3p
+syn keyword ngxDirectiveThirdParty testcookie_fallback
+syn keyword ngxDirectiveThirdParty testcookie_whitelist
+syn keyword ngxDirectiveThirdParty testcookie_pass
+syn keyword ngxDirectiveThirdParty testcookie_redirect_via_refresh
+syn keyword ngxDirectiveThirdParty testcookie_refresh_template
+syn keyword ngxDirectiveThirdParty testcookie_refresh_status
+syn keyword ngxDirectiveThirdParty testcookie_deny_keepalive
+syn keyword ngxDirectiveThirdParty testcookie_get_only
+syn keyword ngxDirectiveThirdParty testcookie_https_location
+syn keyword ngxDirectiveThirdParty testcookie_refresh_encrypt_cookie
+syn keyword ngxDirectiveThirdParty testcookie_refresh_encrypt_cookie_key
+syn keyword ngxDirectiveThirdParty testcookie_refresh_encrypt_iv
+syn keyword ngxDirectiveThirdParty testcookie_internal
+syn keyword ngxDirectiveThirdParty testcookie_httponly_flag
+syn keyword ngxDirectiveThirdParty testcookie_secure_flag
+
+" Types Filter Module <https://github.com/flygoast/ngx_http_types_filter>
+" Change the `Content-Type` output header depending on an extension variable according to a condition specified in the 'if' clause.
+syn keyword ngxDirectiveThirdParty types_filter
+syn keyword ngxDirectiveThirdParty types_filter_use_default
+
+" Unzip Module <https://github.com/youzee/nginx-unzip-module>
+" Enabling fetching of files that are stored in zipped archives.
+syn keyword ngxDirectiveThirdParty file_in_unzip_archivefile
+syn keyword ngxDirectiveThirdParty file_in_unzip_extract
+syn keyword ngxDirectiveThirdParty file_in_unzip
+
+" Upload Progress Module <https://www.nginx.com/resources/wiki/modules/upload_progress/>
+" An upload progress system, that monitors RFC1867 POST upload as they are transmitted to upstream servers
 syn keyword ngxDirectiveThirdParty upload_progress
+syn keyword ngxDirectiveThirdParty track_uploads
+syn keyword ngxDirectiveThirdParty report_uploads
 syn keyword ngxDirectiveThirdParty upload_progress_content_type
 syn keyword ngxDirectiveThirdParty upload_progress_header
+syn keyword ngxDirectiveThirdParty upload_progress_jsonp_parameter
 syn keyword ngxDirectiveThirdParty upload_progress_json_output
+syn keyword ngxDirectiveThirdParty upload_progress_jsonp_output
 syn keyword ngxDirectiveThirdParty upload_progress_template
 
-" Upstream Fair Balancer <http://wiki.nginx.org/NginxHttpUpstreamFairModule>
-" Sends an incoming request to the least-busy backend server, rather than distributing requests round-robin.
+" Upload Module <https://www.nginx.com/resources/wiki/modules/upload/>
+" Parses request body storing all files being uploaded to a directory specified by upload_store directive
+syn keyword ngxDirectiveThirdParty upload_pass
+syn keyword ngxDirectiveThirdParty upload_resumable
+syn keyword ngxDirectiveThirdParty upload_store
+syn keyword ngxDirectiveThirdParty upload_state_store
+syn keyword ngxDirectiveThirdParty upload_store_access
+syn keyword ngxDirectiveThirdParty upload_set_form_field
+syn keyword ngxDirectiveThirdParty upload_aggregate_form_field
+syn keyword ngxDirectiveThirdParty upload_pass_form_field
+syn keyword ngxDirectiveThirdParty upload_cleanup
+syn keyword ngxDirectiveThirdParty upload_buffer_size
+syn keyword ngxDirectiveThirdParty upload_max_part_header_len
+syn keyword ngxDirectiveThirdParty upload_max_file_size
+syn keyword ngxDirectiveThirdParty upload_limit_rate
+syn keyword ngxDirectiveThirdParty upload_max_output_body_len
+syn keyword ngxDirectiveThirdParty upload_tame_arrays
+syn keyword ngxDirectiveThirdParty upload_pass_args
+
+" Upstream Fair Module <https://github.com/gnosek/nginx-upstream-fair>
+" The fair load balancer module for nginx http://nginx.localdomain.pl
 syn keyword ngxDirectiveThirdParty fair
 syn keyword ngxDirectiveThirdParty upstream_fair_shm_size
 
-" Upstream Consistent Hash <http://wiki.nginx.org/NginxHttpUpstreamConsistentHash>
-" Select backend based on Consistent hash ring.
-syn keyword ngxDirectiveThirdParty consistent_hash
-
-" Upstream Hash Module <http://wiki.nginx.org/NginxHttpUpstreamRequestHashModule>
+" Upstream Hash Module (DEPRECATED) <http://wiki.nginx.org/NginxHttpUpstreamRequestHashModule>
 " Provides simple upstream load distribution by hashing a configurable variable.
-syn keyword ngxDirectiveThirdParty hash
-syn keyword ngxDirectiveThirdParty hash_again
+" syn keyword ngxDirectiveDeprecated hash
+syn keyword ngxDirectiveDeprecated hash_again
 
-" XSS Module <http://github.com/agentzh/xss-nginx-module>
+" Upstream Domain Resolve Module <https://www.nginx.com/resources/wiki/modules/domain_resolve/>
+" A load-balancer that resolves an upstream domain name asynchronously.
+syn keyword ngxDirectiveThirdParty jdomain
+
+" Upsync Module <https://github.com/weibocom/nginx-upsync-module>
+" Sync upstreams from consul or others, dynamiclly modify backend-servers attribute(weight, max_fails,...), needn't reload nginx
+syn keyword ngxDirectiveThirdParty upsync
+syn keyword ngxDirectiveThirdParty upsync_dump_path
+syn keyword ngxDirectiveThirdParty upsync_lb
+syn keyword ngxDirectiveThirdParty upstream_show
+
+" URL Module <https://github.com/vozlt/nginx-module-url>
+" Nginx url encoding converting module
+syn keyword ngxDirectiveThirdParty url_encoding_convert
+syn keyword ngxDirectiveThirdParty url_encoding_convert_from
+syn keyword ngxDirectiveThirdParty url_encoding_convert_to
+
+" User Agent Module <https://github.com/alibaba/nginx-http-user-agent>
+" Match browsers and crawlers
+syn keyword ngxDirectiveThirdParty user_agent
+
+" Upstrema Ketama Chash Module <https://github.com/flygoast/ngx_http_upstream_ketama_chash>
+" Nginx load-balancer module implementing ketama consistent hashing.
+syn keyword ngxDirectiveThirdParty ketama_chash
+
+" Video Thumbextractor Module <https://github.com/wandenberg/nginx-video-thumbextractor-module>
+" Extract thumbs from a video file
+syn keyword ngxDirectiveThirdParty video_thumbextractor
+syn keyword ngxDirectiveThirdParty video_thumbextractor_video_filename
+syn keyword ngxDirectiveThirdParty video_thumbextractor_video_second
+syn keyword ngxDirectiveThirdParty video_thumbextractor_image_width
+syn keyword ngxDirectiveThirdParty video_thumbextractor_image_height
+syn keyword ngxDirectiveThirdParty video_thumbextractor_only_keyframe
+syn keyword ngxDirectiveThirdParty video_thumbextractor_next_time
+syn keyword ngxDirectiveThirdParty video_thumbextractor_tile_rows
+syn keyword ngxDirectiveThirdParty video_thumbextractor_tile_cols
+syn keyword ngxDirectiveThirdParty video_thumbextractor_tile_max_rows
+syn keyword ngxDirectiveThirdParty video_thumbextractor_tile_max_cols
+syn keyword ngxDirectiveThirdParty video_thumbextractor_tile_sample_interval
+syn keyword ngxDirectiveThirdParty video_thumbextractor_tile_color
+syn keyword ngxDirectiveThirdParty video_thumbextractor_tile_margin
+syn keyword ngxDirectiveThirdParty video_thumbextractor_tile_padding
+syn keyword ngxDirectiveThirdParty video_thumbextractor_threads
+syn keyword ngxDirectiveThirdParty video_thumbextractor_processes_per_worker
+
+" Eval Module <http://www.grid.net.ru/nginx/eval.en.html>
+" Module for nginx web server evaluates response of proxy or memcached module into variables.
+syn keyword ngxDirectiveThirdParty eval
+syn keyword ngxDirectiveThirdParty eval_escalate
+syn keyword ngxDirectiveThirdParty eval_override_content_type
+
+" VTS Module <https://github.com/vozlt/nginx-module-vts>
+" Nginx virtual host traffic status module
+syn keyword ngxDirectiveThirdParty vhost_traffic_status
+syn keyword ngxDirectiveThirdParty vhost_traffic_status_zone
+syn keyword ngxDirectiveThirdParty vhost_traffic_status_display
+syn keyword ngxDirectiveThirdParty vhost_traffic_status_display_format
+syn keyword ngxDirectiveThirdParty vhost_traffic_status_display_jsonp
+syn keyword ngxDirectiveThirdParty vhost_traffic_status_filter
+syn keyword ngxDirectiveThirdParty vhost_traffic_status_filter_by_host
+syn keyword ngxDirectiveThirdParty vhost_traffic_status_filter_by_set_key
+syn keyword ngxDirectiveThirdParty vhost_traffic_status_filter_check_duplicate
+syn keyword ngxDirectiveThirdParty vhost_traffic_status_limit
+syn keyword ngxDirectiveThirdParty vhost_traffic_status_limit_traffic
+syn keyword ngxDirectiveThirdParty vhost_traffic_status_limit_traffic_by_set_key
+syn keyword ngxDirectiveThirdParty vhost_traffic_status_limit_check_duplicate
+
+" XSS Module <https://github.com/openresty/xss-nginx-module>
 " Native support for cross-site scripting (XSS) in an nginx.
-syn keyword ngxDirectiveThirdParty xss_callback_arg
 syn keyword ngxDirectiveThirdParty xss_get
+syn keyword ngxDirectiveThirdParty xss_callback_arg
+syn keyword ngxDirectiveThirdParty xss_override_status
+syn keyword ngxDirectiveThirdParty xss_check_status
 syn keyword ngxDirectiveThirdParty xss_input_types
-syn keyword ngxDirectiveThirdParty xss_output_type
+
+" ZIP Module <https://www.nginx.com/resources/wiki/modules/zip/>
+" ZIP archiver for nginx
+
 
 " highlight
 
@@ -833,4 +2137,8 @@
 hi link ngxDirective Identifier
 hi link ngxDirectiveThirdParty Special
 
+hi link ngxListenOptions Keyword
+hi link ngxMailProtocol Keyword
+hi link ngxSSLProtocol Keyword
+
 let b:current_syntax = "nginx"
diff --git a/docs/xml/nginx/changes.xml b/docs/xml/nginx/changes.xml
index 6041427..ce4a1b9 100644
--- a/docs/xml/nginx/changes.xml
+++ b/docs/xml/nginx/changes.xml
@@ -5,7 +5,78 @@
 <change_log title="nginx">
 
 
-<changes ver="1.11.10" date="14.02.2017">
+<changes ver="1.11.11" date="2017-03-21">
+
+<change type="feature">
+<para lang="ru">
+директива worker_shutdown_timeout.
+</para>
+<para lang="en">
+the "worker_shutdown_timeout" directive.
+</para>
+</change>
+
+<change type="feature">
+<para lang="ru">
+улучшения в скриптах подсветки синтаксиса для vim.<br/>
+Спасибо Wei-Ko Kao.
+</para>
+<para lang="en">
+vim syntax highlighting scripts improvements.<br/>
+Thanks to Wei-Ko Kao.
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+при попытке установить переменную $limit_rate в пустую строку
+в рабочем процессе мог произойти segmentation fault.
+</para>
+<para lang="en">
+a segmentation fault might occur in a worker process
+if the $limit_rate variable was set to an empty string.
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+директивы proxy_cache_background_update, fastcgi_cache_background_update,
+scgi_cache_background_update и uwsgi_cache_background_update
+могли работать некорректно, если использовалась директива if.
+</para>
+<para lang="en">
+the "proxy_cache_background_update", "fastcgi_cache_background_update",
+"scgi_cache_background_update", and "uwsgi_cache_background_update" directives
+might work incorrectly if the "if" directive was used.
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+в рабочем процессе мог произойти segmentation fault,
+если количество large_client_header_buffers в виртуальном сервере
+отличалось от такового в сервере по умолчанию.
+</para>
+<para lang="en">
+a segmentation fault might occur in a worker process
+if number of large_client_header_buffers in a virtual server
+was different from the one in the default server.
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+в почтовом прокси-сервере.
+</para>
+<para lang="en">
+in the mail proxy server.
+</para>
+</change>
+
+</changes>
+
+
+<changes ver="1.11.10" date="2017-02-14">
 
 <change type="change">
 <para lang="ru">
@@ -66,7 +137,7 @@
 
 <change type="bugfix">
 <para lang="ru">
-при обработке запросов со строкой "Expect: 100-continue" в заголовке запроса 
+при обработке запросов со строкой "Expect: 100-continue" в заголовке запроса
 в логах могли появляться сообщения "[crit] SSL_write() failed".
 </para>
 <para lang="en">
@@ -107,7 +178,7 @@
 </changes>
 
 
-<changes ver="1.11.9" date="24.01.2017">
+<changes ver="1.11.9" date="2017-01-24">
 
 <change type="bugfix">
 <para lang="ru">
@@ -202,7 +273,7 @@
 </changes>
 
 
-<changes ver="1.11.8" date="27.12.2016">
+<changes ver="1.11.8" date="2016-12-27">
 
 <change type="feature">
 <para lang="ru">
@@ -309,7 +380,7 @@
 </changes>
 
 
-<changes ver="1.11.7" date="13.12.2016">
+<changes ver="1.11.7" date="2016-12-13">
 
 <change type="change">
 <para lang="ru">
@@ -403,7 +474,7 @@
 </changes>
 
 
-<changes ver="1.11.6" date="15.11.2016">
+<changes ver="1.11.6" date="2016-11-15">
 
 <change type="change">
 <para lang="ru">
@@ -533,7 +604,7 @@
 </changes>
 
 
-<changes ver="1.11.5" date="11.10.2016">
+<changes ver="1.11.5" date="2016-10-11">
 
 <change type="change">
 <para lang="ru">
@@ -667,7 +738,7 @@
 </changes>
 
 
-<changes ver="1.11.4" date="13.09.2016">
+<changes ver="1.11.4" date="2016-09-13">
 
 <change type="feature">
 <para lang="ru">
@@ -772,7 +843,7 @@
 </changes>
 
 
-<changes ver="1.11.3" date="26.07.2016">
+<changes ver="1.11.3" date="2016-07-26">
 
 <change type="change">
 <para lang="ru">
@@ -853,7 +924,7 @@
 </changes>
 
 
-<changes ver="1.11.2" date="05.07.2016">
+<changes ver="1.11.2" date="2016-07-05">
 
 <change type="change">
 <para lang="ru">
@@ -966,7 +1037,7 @@
 </changes>
 
 
-<changes ver="1.11.1" date="31.05.2016">
+<changes ver="1.11.1" date="2016-05-31">
 
 <change type="security">
 <para lang="ru">
@@ -986,7 +1057,7 @@
 </changes>
 
 
-<changes ver="1.11.0" date="24.05.2016">
+<changes ver="1.11.0" date="2016-05-24">
 
 <change type="feature">
 <para lang="ru">
@@ -1142,7 +1213,7 @@
 </changes>
 
 
-<changes ver="1.9.15" date="19.04.2016">
+<changes ver="1.9.15" date="2016-04-19">
 
 <change type="bugfix">
 <para lang="ru">
@@ -1197,7 +1268,7 @@
 </changes>
 
 
-<changes ver="1.9.14" date="05.04.2016">
+<changes ver="1.9.14" date="2016-04-05">
 
 <change type="feature">
 <para lang="ru">
@@ -1255,7 +1326,7 @@
 </changes>
 
 
-<changes ver="1.9.13" date="29.03.2016">
+<changes ver="1.9.13" date="2016-03-29">
 
 <change type="change">
 <para lang="ru">
@@ -1420,7 +1491,7 @@
 </changes>
 
 
-<changes ver="1.9.12" date="24.02.2016">
+<changes ver="1.9.12" date="2016-02-24">
 
 <change type="feature">
 <para lang="ru">
@@ -1522,7 +1593,7 @@
 </changes>
 
 
-<changes ver="1.9.11" date="09.02.2016">
+<changes ver="1.9.11" date="2016-02-09">
 
 <change type="feature">
 <para lang="ru">
@@ -1565,7 +1636,7 @@
 </changes>
 
 
-<changes ver="1.9.10" date="26.01.2016">
+<changes ver="1.9.10" date="2016-01-26">
 
 <change type="security">
 <para lang="ru">
@@ -1668,7 +1739,7 @@
 </changes>
 
 
-<changes ver="1.9.9" date="09.12.2015">
+<changes ver="1.9.9" date="2015-12-09">
 
 <change type="bugfix">
 <para lang="ru">
@@ -1684,7 +1755,7 @@
 </changes>
 
 
-<changes ver="1.9.8" date="08.12.2015">
+<changes ver="1.9.8" date="2015-12-08">
 
 <change type="feature">
 <para lang="ru">
@@ -1738,7 +1809,7 @@
 </changes>
 
 
-<changes ver="1.9.7" date="17.11.2015">
+<changes ver="1.9.7" date="2015-11-17">
 
 <change type="feature">
 <para lang="ru">
@@ -1814,7 +1885,7 @@
 </changes>
 
 
-<changes ver="1.9.6" date="27.10.2015">
+<changes ver="1.9.6" date="2015-10-27">
 
 <change type="bugfix">
 <para lang="ru">
@@ -1898,7 +1969,7 @@
 </changes>
 
 
-<changes ver="1.9.5" date="22.09.2015">
+<changes ver="1.9.5" date="2015-09-22">
 
 <change type="feature">
 <para lang="ru">
@@ -1995,7 +2066,7 @@
 </changes>
 
 
-<changes ver="1.9.4" date="18.08.2015">
+<changes ver="1.9.4" date="2015-08-18">
 
 <change type="change">
 <para lang="ru">
@@ -2106,7 +2177,7 @@
 </changes>
 
 
-<changes ver="1.9.3" date="14.07.2015">
+<changes ver="1.9.3" date="2015-07-14">
 
 <change type="change">
 <para lang="ru">
@@ -2197,7 +2268,7 @@
 </changes>
 
 
-<changes ver="1.9.2" date="16.06.2015">
+<changes ver="1.9.2" date="2015-06-16">
 
 <change type="feature">
 <para lang="ru">
@@ -2280,7 +2351,7 @@
 </changes>
 
 
-<changes ver="1.9.1" date="26.05.2015">
+<changes ver="1.9.1" date="2015-05-26">
 
 <change type="change">
 <para lang="ru">
@@ -2354,7 +2425,7 @@
 </changes>
 
 
-<changes ver="1.9.0" date="28.04.2015">
+<changes ver="1.9.0" date="2015-04-28">
 
 <change type="change">
 <para lang="ru">
@@ -2432,7 +2503,7 @@
 </changes>
 
 
-<changes ver="1.7.12" date="07.04.2015">
+<changes ver="1.7.12" date="2015-04-07">
 
 <change type="feature">
 <para lang="ru">
@@ -2495,7 +2566,7 @@
 </changes>
 
 
-<changes ver="1.7.11" date="24.03.2015">
+<changes ver="1.7.11" date="2015-03-24">
 
 <change type="change">
 <para lang="ru">
@@ -2663,7 +2734,7 @@
 </changes>
 
 
-<changes ver="1.7.10" date="10.02.2015">
+<changes ver="1.7.10" date="2015-02-10">
 
 <change type="feature">
 <para lang="ru">
@@ -2755,7 +2826,7 @@
 </changes>
 
 
-<changes ver="1.7.9" date="23.12.2014">
+<changes ver="1.7.9" date="2014-12-23">
 
 <change type="feature">
 <para lang="ru">
@@ -2859,7 +2930,7 @@
 </changes>
 
 
-<changes ver="1.7.8" date="02.12.2014">
+<changes ver="1.7.8" date="2014-12-02">
 
 <change type="change">
 <para lang="ru">
@@ -3025,7 +3096,7 @@
 </changes>
 
 
-<changes ver="1.7.7" date="28.10.2014">
+<changes ver="1.7.7" date="2014-10-28">
 
 <change type="change">
 <para lang="ru">
@@ -3135,7 +3206,7 @@
 </changes>
 
 
-<changes ver="1.7.6" date="30.09.2014">
+<changes ver="1.7.6" date="2014-09-30">
 
 <change type="change">
 <para lang="ru">
@@ -3180,7 +3251,7 @@
 </changes>
 
 
-<changes ver="1.7.5" date="16.09.2014">
+<changes ver="1.7.5" date="2014-09-16">
 
 <change type="security">
 <para lang="ru">
@@ -3325,7 +3396,7 @@
 </changes>
 
 
-<changes ver="1.7.4" date="05.08.2014">
+<changes ver="1.7.4" date="2014-08-05">
 
 <change type="security">
 <para lang="ru">
@@ -3454,7 +3525,7 @@
 </changes>
 
 
-<changes ver="1.7.3" date="08.07.2014">
+<changes ver="1.7.3" date="2014-07-08">
 
 <change type="feature">
 <para lang="ru">
@@ -3534,7 +3605,7 @@
 </changes>
 
 
-<changes ver="1.7.2" date="17.06.2014">
+<changes ver="1.7.2" date="2014-06-17">
 
 <change type="feature">
 <para lang="ru">
@@ -3603,7 +3674,7 @@
 </changes>
 
 
-<changes ver="1.7.1" date="27.05.2014">
+<changes ver="1.7.1" date="2014-05-27">
 
 <change type="feature">
 <para lang="ru">
@@ -3721,7 +3792,7 @@
 </changes>
 
 
-<changes ver="1.7.0" date="24.04.2014">
+<changes ver="1.7.0" date="2014-04-24">
 
 <change type="feature">
 <para lang="ru">
@@ -3762,7 +3833,7 @@
 </changes>
 
 
-<changes ver="1.5.13" date="08.04.2014">
+<changes ver="1.5.13" date="2014-04-08">
 
 <change type="change">
 <para lang="ru">
@@ -3855,7 +3926,7 @@
 </changes>
 
 
-<changes ver="1.5.12" date="18.03.2014">
+<changes ver="1.5.12" date="2014-03-18">
 
 <change type="security">
 <para lang="ru">
@@ -3901,7 +3972,7 @@
 </changes>
 
 
-<changes ver="1.5.11" date="04.03.2014">
+<changes ver="1.5.11" date="2014-03-04">
 
 <change type="security">
 <para lang="ru">
@@ -4011,7 +4082,7 @@
 </changes>
 
 
-<changes ver="1.5.10" date="04.02.2014">
+<changes ver="1.5.10" date="2014-02-04">
 
 <change type="feature">
 <para lang="ru">
@@ -4090,7 +4161,7 @@
 </changes>
 
 
-<changes ver="1.5.9" date="22.01.2014">
+<changes ver="1.5.9" date="2014-01-22">
 
 <change type="change">
 <para lang="ru">
@@ -4232,7 +4303,7 @@
 </changes>
 
 
-<changes ver="1.5.8" date="17.12.2013">
+<changes ver="1.5.8" date="2013-12-17">
 
 <change type="feature">
 <para lang="ru">
@@ -4317,7 +4388,7 @@
 </changes>
 
 
-<changes ver="1.5.7" date="19.11.2013">
+<changes ver="1.5.7" date="2013-11-19">
 
 <change type="security">
 <para lang="ru">
@@ -4453,7 +4524,7 @@
 </changes>
 
 
-<changes ver="1.5.6" date="01.10.2013">
+<changes ver="1.5.6" date="2013-10-01">
 
 <change type="feature">
 <para lang="ru">
@@ -4551,7 +4622,7 @@
 </changes>
 
 
-<changes ver="1.5.5" date="17.09.2013">
+<changes ver="1.5.5" date="2013-09-17">
 
 <change type="change">
 <para lang="ru">
@@ -4630,7 +4701,7 @@
 </changes>
 
 
-<changes ver="1.5.4" date="27.08.2013">
+<changes ver="1.5.4" date="2013-08-27">
 
 <change type="change">
 <para lang="ru">
@@ -4732,7 +4803,7 @@
 </changes>
 
 
-<changes ver="1.5.3" date="30.07.2013">
+<changes ver="1.5.3" date="2013-07-30">
 
 <change>
 <para lang="ru">
@@ -4807,7 +4878,7 @@
 </changes>
 
 
-<changes ver="1.5.2" date="02.07.2013">
+<changes ver="1.5.2" date="2013-07-02">
 
 <change type="feature">
 <para lang="ru">
@@ -4856,7 +4927,7 @@
 </changes>
 
 
-<changes ver="1.5.1" date="04.06.2013">
+<changes ver="1.5.1" date="2013-06-04">
 
 <change type="feature">
 <para lang="ru">
@@ -4979,7 +5050,7 @@
 </changes>
 
 
-<changes ver="1.5.0" date="07.05.2013">
+<changes ver="1.5.0" date="2013-05-07">
 
 <change type="security">
 <para lang="ru">
@@ -5001,7 +5072,7 @@
 </changes>
 
 
-<changes ver="1.4.0" date="24.04.2013">
+<changes ver="1.4.0" date="2013-04-24">
 
 <change type="bugfix">
 <para lang="ru">
@@ -5030,7 +5101,7 @@
 </changes>
 
 
-<changes ver="1.3.16" date="16.04.2013">
+<changes ver="1.3.16" date="2013-04-16">
 
 <change type="bugfix">
 <para lang="ru">
@@ -5081,7 +5152,7 @@
 </changes>
 
 
-<changes ver="1.3.15" date="26.03.2013">
+<changes ver="1.3.15" date="2013-03-26">
 
 <change type="change">
 <para lang="ru">
@@ -5198,7 +5269,7 @@
 </changes>
 
 
-<changes ver="1.3.14" date="05.03.2013">
+<changes ver="1.3.14" date="2013-03-05">
 
 <change type="feature">
 <para lang="ru">
@@ -5271,7 +5342,7 @@
 </changes>
 
 
-<changes ver="1.3.13" date="19.02.2013">
+<changes ver="1.3.13" date="2013-02-19">
 
 <change type="change">
 <para lang="ru">
@@ -5309,7 +5380,7 @@
 </changes>
 
 
-<changes ver="1.3.12" date="05.02.2013">
+<changes ver="1.3.12" date="2013-02-05">
 
 <change type="feature">
 <para lang="ru">
@@ -5409,7 +5480,7 @@
 </changes>
 
 
-<changes ver="1.3.11" date="10.01.2013">
+<changes ver="1.3.11" date="2013-01-10">
 
 <change type="bugfix">
 <para lang="ru">
@@ -5462,7 +5533,7 @@
 </changes>
 
 
-<changes ver="1.3.10" date="25.12.2012">
+<changes ver="1.3.10" date="2012-12-25">
 
 <change type="change">
 <para lang="ru">
@@ -5640,7 +5711,7 @@
 </changes>
 
 
-<changes ver="1.3.9" date="27.11.2012">
+<changes ver="1.3.9" date="2012-11-27">
 
 <change type="feature">
 <para lang="ru">
@@ -5685,7 +5756,7 @@
 </changes>
 
 
-<changes ver="1.3.8" date="30.10.2012">
+<changes ver="1.3.8" date="2012-10-30">
 
 <change type="feature">
 <para lang="ru">
@@ -5750,7 +5821,7 @@
 </changes>
 
 
-<changes ver="1.3.7" date="02.10.2012">
+<changes ver="1.3.7" date="2012-10-02">
 
 <change type="feature">
 <para lang="ru">
@@ -5797,7 +5868,7 @@
 </changes>
 
 
-<changes ver="1.3.6" date="12.09.2012">
+<changes ver="1.3.6" date="2012-09-12">
 
 <change type="feature">
 <para lang="ru">
@@ -5853,7 +5924,7 @@
 </changes>
 
 
-<changes ver="1.3.5" date="21.08.2012">
+<changes ver="1.3.5" date="2012-08-21">
 
 <change type="change">
 <para lang="ru">
@@ -5935,7 +6006,7 @@
 </changes>
 
 
-<changes ver="1.3.4" date="31.07.2012">
+<changes ver="1.3.4" date="2012-07-31">
 
 <change type="change">
 <para lang="ru">
@@ -5998,7 +6069,7 @@
 </changes>
 
 
-<changes ver="1.3.3" date="10.07.2012">
+<changes ver="1.3.3" date="2012-07-10">
 
 <change type="feature">
 <para lang="ru">
@@ -6036,7 +6107,7 @@
 </changes>
 
 
-<changes ver="1.3.2" date="26.06.2012">
+<changes ver="1.3.2" date="2012-06-26">
 
 <change type="change">
 <para lang="ru">
@@ -6141,7 +6212,7 @@
 </changes>
 
 
-<changes ver="1.3.1" date="05.06.2012">
+<changes ver="1.3.1" date="2012-06-05">
 
 <change type="security">
 <para lang="ru">
@@ -6271,7 +6342,7 @@
 </changes>
 
 
-<changes ver="1.3.0" date="15.05.2012">
+<changes ver="1.3.0" date="2012-05-15">
 
 <change type="feature">
 <para lang="ru">
@@ -6410,7 +6481,7 @@
 </changes>
 
 
-<changes ver="1.2.0" date="23.04.2012">
+<changes ver="1.2.0" date="2012-04-23">
 
 <change type="bugfix">
 <para lang="ru">
@@ -6450,7 +6521,7 @@
 </changes>
 
 
-<changes ver="1.1.19" date="12.04.2012">
+<changes ver="1.1.19" date="2012-04-12">
 
 <change type="security">
 <para lang="ru">
@@ -6532,7 +6603,7 @@
 </changes>
 
 
-<changes ver="1.1.18" date="28.03.2012">
+<changes ver="1.1.18" date="2012-03-28">
 
 <change type="change">
 <para lang="ru">
@@ -6615,7 +6686,7 @@
 </changes>
 
 
-<changes ver="1.1.17" date="15.03.2012">
+<changes ver="1.1.17" date="2012-03-15">
 
 <change type="security">
 <para lang="ru">
@@ -6653,7 +6724,7 @@
 </changes>
 
 
-<changes ver="1.1.16" date="29.02.2012">
+<changes ver="1.1.16" date="2012-02-29">
 
 <change type="change">
 <para lang="ru">
@@ -6766,7 +6837,7 @@
 </changes>
 
 
-<changes ver="1.1.15" date="15.02.2012">
+<changes ver="1.1.15" date="2012-02-15">
 
 <change type="feature">
 <para lang="ru">
@@ -6869,7 +6940,7 @@
 </changes>
 
 
-<changes ver="1.1.14" date="30.01.2012">
+<changes ver="1.1.14" date="2012-01-30">
 
 <change type="feature">
 <para lang="ru">
@@ -6930,7 +7001,7 @@
 </changes>
 
 
-<changes ver="1.1.13" date="16.01.2012">
+<changes ver="1.1.13" date="2012-01-16">
 
 <change type="feature">
 <para lang="ru">
@@ -7006,7 +7077,7 @@
 </changes>
 
 
-<changes ver="1.1.12" date="26.12.2011">
+<changes ver="1.1.12" date="2011-12-26">
 
 <change type="change">
 <para lang="ru">
@@ -7146,7 +7217,7 @@
 </changes>
 
 
-<changes ver="1.1.11" date="12.12.2011">
+<changes ver="1.1.11" date="2011-12-12">
 
 <change type="feature">
 <para lang="ru">
@@ -7244,7 +7315,7 @@
 </changes>
 
 
-<changes ver="1.1.10" date="30.11.2011">
+<changes ver="1.1.10" date="2011-11-30">
 
 <change type="bugfix">
 <para lang="ru">
@@ -7260,7 +7331,7 @@
 </changes>
 
 
-<changes ver="1.1.9" date="28.11.2011">
+<changes ver="1.1.9" date="2011-11-28">
 
 <change type="change">
 <para lang="ru">
@@ -7426,7 +7497,7 @@
 </changes>
 
 
-<changes ver="1.1.8" date="14.11.2011">
+<changes ver="1.1.8" date="2011-11-14">
 
 <change type="change">
 <para lang="ru">
@@ -7521,7 +7592,7 @@
 </changes>
 
 
-<changes ver="1.1.7" date="31.10.2011">
+<changes ver="1.1.7" date="2011-10-31">
 
 <change type="feature">
 <para lang="ru">
@@ -7581,7 +7652,7 @@
 </changes>
 
 
-<changes ver="1.1.6" date="17.10.2011">
+<changes ver="1.1.6" date="2011-10-17">
 
 <change>
 <para lang="ru">
@@ -7701,7 +7772,7 @@
 </changes>
 
 
-<changes ver="1.1.5" date="05.10.2011">
+<changes ver="1.1.5" date="2011-10-05">
 
 <change type="feature">
 <para lang="ru">
@@ -7782,7 +7853,7 @@
 </changes>
 
 
-<changes ver="1.1.4" date="20.09.2011">
+<changes ver="1.1.4" date="2011-09-20">
 
 <change type="feature">
 <para lang="ru">
@@ -7865,7 +7936,7 @@
 </changes>
 
 
-<changes ver="1.1.3" date="14.09.2011">
+<changes ver="1.1.3" date="2011-09-14">
 
 <change type="feature">
 <para lang="ru">
@@ -7908,7 +7979,7 @@
 </changes>
 
 
-<changes ver="1.1.2" date="05.09.2011">
+<changes ver="1.1.2" date="2011-09-05">
 
 <change type="change">
 <para lang="ru">
@@ -7953,7 +8024,7 @@
 </changes>
 
 
-<changes ver="1.1.1" date="22.08.2011">
+<changes ver="1.1.1" date="2011-08-22">
 
 <change type="change">
 <para lang="ru">
@@ -8097,7 +8168,7 @@
 </changes>
 
 
-<changes ver="1.1.0" date="01.08.2011">
+<changes ver="1.1.0" date="2011-08-01">
 
 <change type="feature">
 <para lang="ru">
@@ -8230,7 +8301,7 @@
 </changes>
 
 
-<changes ver="1.0.5" date="19.07.2011">
+<changes ver="1.0.5" date="2011-07-19">
 
 <change type="change">
 <para lang="ru">
@@ -8306,7 +8377,7 @@
 </changes>
 
 
-<changes ver="1.0.4" date="01.06.2011">
+<changes ver="1.0.4" date="2011-06-01">
 
 <change type="change">
 <para lang="ru">
@@ -8353,7 +8424,7 @@
 </changes>
 
 
-<changes ver="1.0.3" date="25.05.2011">
+<changes ver="1.0.3" date="2011-05-25">
 
 <change type="feature">
 <para lang="ru">
@@ -8422,7 +8493,7 @@
 </changes>
 
 
-<changes ver="1.0.2" date="10.05.2011">
+<changes ver="1.0.2" date="2011-05-10">
 
 <change type="feature">
 <para lang="ru">
@@ -8458,7 +8529,7 @@
 </changes>
 
 
-<changes ver="1.0.1" date="03.05.2011">
+<changes ver="1.0.1" date="2011-05-03">
 
 <change type="change">
 <para lang="ru">
@@ -8566,7 +8637,7 @@
 </changes>
 
 
-<changes ver="1.0.0" date="12.04.2011">
+<changes ver="1.0.0" date="2011-04-12">
 
 <change type="bugfix">
 <para lang="ru">
@@ -8603,7 +8674,7 @@
 </changes>
 
 
-<changes ver="0.9.7" date="04.04.2011">
+<changes ver="0.9.7" date="2011-04-04">
 
 <change type="feature">
 <para lang="ru">
@@ -8643,7 +8714,7 @@
 </changes>
 
 
-<changes ver="0.9.6" date="21.03.2011">
+<changes ver="0.9.6" date="2011-03-21">
 
 <change type="feature">
 <para lang="ru">
@@ -8670,7 +8741,7 @@
 </changes>
 
 
-<changes ver="0.9.5" date="21.02.2011">
+<changes ver="0.9.5" date="2011-02-21">
 
 <change type="change">
 <para lang="ru">
@@ -8724,7 +8795,7 @@
 </changes>
 
 
-<changes ver="0.9.4" date="21.01.2011">
+<changes ver="0.9.4" date="2011-01-21">
 
 <change type="feature">
 <para lang="ru">
@@ -8747,7 +8818,7 @@
 </changes>
 
 
-<changes ver="0.9.3" date="13.12.2010">
+<changes ver="0.9.3" date="2010-12-13">
 
 <change type="bugfix">
 <para lang="ru">
@@ -8774,7 +8845,7 @@
 </changes>
 
 
-<changes ver="0.9.2" date="06.12.2010">
+<changes ver="0.9.2" date="2010-12-06">
 
 <change type="feature">
 <para lang="ru">
@@ -8821,7 +8892,7 @@
 </changes>
 
 
-<changes ver="0.9.1" date="30.11.2010">
+<changes ver="0.9.1" date="2010-11-30">
 
 <change type="bugfix">
 <para lang="ru">
@@ -8837,7 +8908,7 @@
 </changes>
 
 
-<changes ver="0.9.0" date="29.11.2010">
+<changes ver="0.9.0" date="2010-11-29">
 
 <change type="feature">
 <para lang="ru">
@@ -8936,7 +9007,7 @@
 </changes>
 
 
-<changes ver="0.8.53" date="18.10.2010">
+<changes ver="0.8.53" date="2010-10-18">
 
 <change type="feature">
 <para lang="ru">
@@ -8985,7 +9056,7 @@
 </changes>
 
 
-<changes ver="0.8.52" date="28.09.2010">
+<changes ver="0.8.52" date="2010-09-28">
 
 <change type="bugfix">
 <para lang="ru">
@@ -9002,7 +9073,7 @@
 </changes>
 
 
-<changes ver="0.8.51" date="27.09.2010">
+<changes ver="0.8.51" date="2010-09-27">
 
 <change type="change">
 <para lang="ru">
@@ -9034,7 +9105,7 @@
 </changes>
 
 
-<changes ver="0.8.50" date="02.09.2010">
+<changes ver="0.8.50" date="2010-09-02">
 
 <change type="feature">
 <para lang="ru">
@@ -9096,7 +9167,7 @@
 </changes>
 
 
-<changes ver="0.8.49" date="09.08.2010">
+<changes ver="0.8.49" date="2010-08-09">
 
 <change type="feature">
 <para lang="ru">
@@ -9134,7 +9205,7 @@
 </changes>
 
 
-<changes ver="0.8.48" date="03.08.2010">
+<changes ver="0.8.48" date="2010-08-03">
 
 <change type="change">
 <para lang="ru">
@@ -9231,7 +9302,7 @@
 </changes>
 
 
-<changes ver="0.8.47" date="28.07.2010">
+<changes ver="0.8.47" date="2010-07-28">
 
 <change type="bugfix">
 <para lang="ru">
@@ -9266,7 +9337,7 @@
 </changes>
 
 
-<changes ver="0.8.46" date="19.07.2010">
+<changes ver="0.8.46" date="2010-07-19">
 
 <change type="change">
 <para lang="ru">
@@ -9306,7 +9377,7 @@
 </changes>
 
 
-<changes ver="0.8.45" date="13.07.2010">
+<changes ver="0.8.45" date="2010-07-13">
 
 <change type="feature">
 <para lang="ru">
@@ -9345,7 +9416,7 @@
 </changes>
 
 
-<changes ver="0.8.44" date="05.07.2010">
+<changes ver="0.8.44" date="2010-07-05">
 
 <change type="change">
 <para lang="ru">
@@ -9410,7 +9481,7 @@
 </changes>
 
 
-<changes ver="0.8.43" date="30.06.2010">
+<changes ver="0.8.43" date="2010-06-30">
 
 <change type="feature">
 <para lang="ru">
@@ -9457,7 +9528,7 @@
 </changes>
 
 
-<changes ver="0.8.42" date="21.06.2010">
+<changes ver="0.8.42" date="2010-06-21">
 
 <change type="change">
 <para lang="ru">
@@ -9495,7 +9566,7 @@
 </changes>
 
 
-<changes ver="0.8.41" date="15.06.2010">
+<changes ver="0.8.41" date="2010-06-15">
 
 <change type="security">
 <para lang="ru">
@@ -9544,7 +9615,7 @@
 </changes>
 
 
-<changes ver="0.8.40" date="07.06.2010">
+<changes ver="0.8.40" date="2010-06-07">
 
 <change type="security">
 <para lang="ru">
@@ -9604,7 +9675,7 @@
 </changes>
 
 
-<changes ver="0.8.39" date="31.05.2010">
+<changes ver="0.8.39" date="2010-05-31">
 
 <change type="bugfix">
 <para lang="ru">
@@ -9639,7 +9710,7 @@
 </changes>
 
 
-<changes ver="0.8.38" date="24.05.2010">
+<changes ver="0.8.38" date="2010-05-24">
 
 <change type="feature">
 <para lang="ru">
@@ -9686,7 +9757,7 @@
 </changes>
 
 
-<changes ver="0.8.37" date="17.05.2010">
+<changes ver="0.8.37" date="2010-05-17">
 
 <change type="feature">
 <para lang="ru">
@@ -9760,7 +9831,7 @@
 </changes>
 
 
-<changes ver="0.8.36" date="22.04.2010">
+<changes ver="0.8.36" date="2010-04-22">
 
 <change type="bugfix">
 <para lang="ru">
@@ -9833,7 +9904,7 @@
 </changes>
 
 
-<changes ver="0.8.35" date="01.04.2010">
+<changes ver="0.8.35" date="2010-04-01">
 
 <change type="change">
 <para lang="ru">
@@ -9933,7 +10004,7 @@
 </changes>
 
 
-<changes ver="0.8.34" date="03.03.2010">
+<changes ver="0.8.34" date="2010-03-03">
 
 <change type="bugfix">
 <para lang="ru">
@@ -10044,7 +10115,7 @@
 </changes>
 
 
-<changes ver="0.8.33" date="01.02.2010">
+<changes ver="0.8.33" date="2010-02-01">
 
 <change type="security">
 <para lang="ru">
@@ -10123,7 +10194,7 @@
 </changes>
 
 
-<changes ver="0.8.32" date="11.01.2010">
+<changes ver="0.8.32" date="2010-01-11">
 
 <change type="bugfix">
 <para lang="ru">
@@ -10188,7 +10259,7 @@
 </changes>
 
 
-<changes ver="0.8.31" date="23.12.2009">
+<changes ver="0.8.31" date="2009-12-23">
 
 <change type="feature">
 <para lang="ru">
@@ -10284,7 +10355,7 @@
 </changes>
 
 
-<changes ver="0.8.30" date="15.12.2009">
+<changes ver="0.8.30" date="2009-12-15">
 
 <change type="change">
 <para lang="ru">
@@ -10346,7 +10417,7 @@
 </changes>
 
 
-<changes ver="0.8.29" date="30.11.2009">
+<changes ver="0.8.29" date="2009-11-30">
 
 <change type="change">
 <para lang="ru">
@@ -10425,7 +10496,7 @@
 </changes>
 
 
-<changes ver="0.8.28" date="23.11.2009">
+<changes ver="0.8.28" date="2009-11-23">
 
 <change type="bugfix">
 <para lang="ru">
@@ -10441,7 +10512,7 @@
 </changes>
 
 
-<changes ver="0.8.27" date="17.11.2009">
+<changes ver="0.8.27" date="2009-11-17">
 
 <change type="bugfix">
 <para lang="ru">
@@ -10457,7 +10528,7 @@
 </changes>
 
 
-<changes ver="0.8.26" date="16.11.2009">
+<changes ver="0.8.26" date="2009-11-16">
 
 <change type="bugfix">
 <para lang="ru">
@@ -10484,7 +10555,7 @@
 </changes>
 
 
-<changes ver="0.8.25" date="16.11.2009">
+<changes ver="0.8.25" date="2009-11-16">
 
 <change type="change">
 <para lang="ru">
@@ -10561,7 +10632,7 @@
 </changes>
 
 
-<changes ver="0.8.24" date="11.11.2009">
+<changes ver="0.8.24" date="2009-11-11">
 
 <change type="bugfix">
 <para lang="ru">
@@ -10608,7 +10679,7 @@
 </changes>
 
 
-<changes ver="0.8.23" date="11.11.2009">
+<changes ver="0.8.23" date="2009-11-11">
 
 <change type="security">
 <para lang="ru">
@@ -10664,7 +10735,7 @@
 </changes>
 
 
-<changes ver="0.8.22" date="03.11.2009">
+<changes ver="0.8.22" date="2009-11-03">
 
 <change type="feature">
 <para lang="ru">
@@ -10773,7 +10844,7 @@
 </changes>
 
 
-<changes ver="0.8.21" date="26.10.2009">
+<changes ver="0.8.21" date="2009-10-26">
 
 <change type="feature">
 <para lang="ru">
@@ -10836,7 +10907,7 @@
 </changes>
 
 
-<changes ver="0.8.20" date="14.10.2009">
+<changes ver="0.8.20" date="2009-10-14">
 
 <change type="change">
 <para lang="ru">
@@ -10920,7 +10991,7 @@
 </changes>
 
 
-<changes ver="0.8.19" date="06.10.2009">
+<changes ver="0.8.19" date="2009-10-06">
 
 <change type="change">
 <para lang="ru">
@@ -10955,7 +11026,7 @@
 </changes>
 
 
-<changes ver="0.8.18" date="06.10.2009">
+<changes ver="0.8.18" date="2009-10-06">
 
 <change type="feature">
 <para lang="ru">
@@ -11043,7 +11114,7 @@
 </changes>
 
 
-<changes ver="0.8.17" date="28.09.2009">
+<changes ver="0.8.17" date="2009-09-28">
 
 <change type="security">
 <para lang="ru">
@@ -11086,7 +11157,7 @@
 </changes>
 
 
-<changes ver="0.8.16" date="22.09.2009">
+<changes ver="0.8.16" date="2009-09-22">
 
 <change type="feature">
 <para lang="ru">
@@ -11184,7 +11255,7 @@
 </changes>
 
 
-<changes ver="0.8.15" date="14.09.2009">
+<changes ver="0.8.15" date="2009-09-14">
 
 <change type="security">
 <para lang="ru">
@@ -11253,7 +11324,7 @@
 </changes>
 
 
-<changes ver="0.8.14" date="07.09.2009">
+<changes ver="0.8.14" date="2009-09-07">
 
 <change type="bugfix">
 <para lang="ru">
@@ -11302,7 +11373,7 @@
 </changes>
 
 
-<changes ver="0.8.13" date="31.08.2009">
+<changes ver="0.8.13" date="2009-08-31">
 
 <change type="bugfix">
 <para lang="ru">
@@ -11329,7 +11400,7 @@
 </changes>
 
 
-<changes ver="0.8.12" date="31.08.2009">
+<changes ver="0.8.12" date="2009-08-31">
 
 <change type="feature">
 <para lang="ru">
@@ -11364,7 +11435,7 @@
 
 </changes>
 
-<changes ver="0.8.11" date="28.08.2009">
+<changes ver="0.8.11" date="2009-08-28">
 
 <change type="change">
 <para lang="ru">
@@ -11398,7 +11469,7 @@
 </changes>
 
 
-<changes ver="0.8.10" date="24.08.2009">
+<changes ver="0.8.10" date="2009-08-24">
 
 <change type="bugfix">
 <para lang="ru">
@@ -11423,7 +11494,7 @@
 </changes>
 
 
-<changes ver="0.8.9" date="17.08.2009">
+<changes ver="0.8.9" date="2009-08-17">
 
 <change type="feature">
 <para lang="ru">
@@ -11450,7 +11521,7 @@
 </changes>
 
 
-<changes ver="0.8.8" date="10.08.2009">
+<changes ver="0.8.8" date="2009-08-10">
 
 <change type="bugfix">
 <para lang="ru">
@@ -11479,7 +11550,7 @@
 </changes>
 
 
-<changes ver="0.8.7" date="27.07.2009">
+<changes ver="0.8.7" date="2009-07-27">
 
 <change type="change">
 <para lang="ru">
@@ -11599,7 +11670,7 @@
 </changes>
 
 
-<changes ver="0.8.6" date="20.07.2009">
+<changes ver="0.8.6" date="2009-07-20">
 
 <change type="feature">
 <para lang="ru">
@@ -11662,7 +11733,7 @@
 </changes>
 
 
-<changes ver="0.8.5" date="13.07.2009">
+<changes ver="0.8.5" date="2009-07-13">
 
 <change type="bugfix">
 <para lang="ru">
@@ -11707,7 +11778,7 @@
 </changes>
 
 
-<changes ver="0.8.4" date="22.06.2009">
+<changes ver="0.8.4" date="2009-06-22">
 
 <change type="bugfix">
 <para lang="ru">
@@ -11723,7 +11794,7 @@
 </changes>
 
 
-<changes ver="0.8.3" date="19.06.2009">
+<changes ver="0.8.3" date="2009-06-19">
 
 <change type="feature">
 <para lang="ru">
@@ -11772,7 +11843,7 @@
 </changes>
 
 
-<changes ver="0.8.2" date="15.06.2009">
+<changes ver="0.8.2" date="2009-06-15">
 
 <change type="bugfix">
 <para lang="ru">
@@ -11797,7 +11868,7 @@
 </changes>
 
 
-<changes ver="0.8.1" date="08.06.2009">
+<changes ver="0.8.1" date="2009-06-08">
 
 <change type="feature">
 <para lang="ru">
@@ -11860,7 +11931,7 @@
 </changes>
 
 
-<changes ver="0.8.0" date="02.06.2009">
+<changes ver="0.8.0" date="2009-06-02">
 
 <change type="feature">
 <para lang="ru">
@@ -11923,7 +11994,7 @@
 </changes>
 
 
-<changes ver="0.7.59" date="25.05.2009">
+<changes ver="0.7.59" date="2009-05-25">
 
 <change type="feature">
 <para lang="ru">
@@ -11998,7 +12069,7 @@
 </changes>
 
 
-<changes ver="0.7.58" date="18.05.2009">
+<changes ver="0.7.58" date="2009-05-18">
 
 <change type="feature">
 <para lang="ru">
@@ -12063,7 +12134,7 @@
 </changes>
 
 
-<changes ver="0.7.57" date="12.05.2009">
+<changes ver="0.7.57" date="2009-05-12">
 
 <change type="bugfix">
 <para lang="ru">
@@ -12081,7 +12152,7 @@
 </changes>
 
 
-<changes ver="0.7.56" date="11.05.2009">
+<changes ver="0.7.56" date="2009-05-11">
 
 <change type="feature">
 <para lang="ru">
@@ -12104,7 +12175,7 @@
 </changes>
 
 
-<changes ver="0.7.55" date="06.05.2009">
+<changes ver="0.7.55" date="2009-05-06">
 
 <change type="bugfix">
 <para lang="ru">
@@ -12173,7 +12244,7 @@
 </changes>
 
 
-<changes ver="0.7.54" date="01.05.2009">
+<changes ver="0.7.54" date="2009-05-01">
 
 <change type="feature">
 <para lang="ru">
@@ -12249,7 +12320,7 @@
 </changes>
 
 
-<changes ver="0.7.53" date="27.04.2009">
+<changes ver="0.7.53" date="2009-04-27">
 
 <change type="change">
 <para lang="ru">
@@ -12382,7 +12453,7 @@
 </changes>
 
 
-<changes ver="0.7.52" date="20.04.2009">
+<changes ver="0.7.52" date="2009-04-20">
 
 <change type="feature">
 <para lang="ru">
@@ -12462,7 +12533,7 @@
 </changes>
 
 
-<changes ver="0.7.51" date="12.04.2009">
+<changes ver="0.7.51" date="2009-04-12">
 
 <change type="feature">
 <para lang="ru">
@@ -12509,7 +12580,7 @@
 </changes>
 
 
-<changes ver="0.7.50" date="06.04.2009">
+<changes ver="0.7.50" date="2009-04-06">
 
 <change type="bugfix">
 <para lang="ru">
@@ -12525,7 +12596,7 @@
 </changes>
 
 
-<changes ver="0.7.49" date="06.04.2009">
+<changes ver="0.7.49" date="2009-04-06">
 
 <change type="bugfix">
 <para lang="ru">
@@ -12543,7 +12614,7 @@
 </changes>
 
 
-<changes ver="0.7.48" date="06.04.2009">
+<changes ver="0.7.48" date="2009-04-06">
 
 <change type="feature">
 <para lang="ru">
@@ -12619,7 +12690,7 @@
 </changes>
 
 
-<changes ver="0.7.47" date="01.04.2009">
+<changes ver="0.7.47" date="2009-04-01">
 
 <change type="bugfix">
 <para lang="ru">
@@ -12688,7 +12759,7 @@
 </changes>
 
 
-<changes ver="0.7.46" date="30.03.2009">
+<changes ver="0.7.46" date="2009-03-30">
 
 <change type="bugfix">
 <para lang="ru">
@@ -12702,7 +12773,7 @@
 </changes>
 
 
-<changes ver="0.7.45" date="30.03.2009">
+<changes ver="0.7.45" date="2009-03-30">
 
 <change type="change">
 <para lang="ru">
@@ -12796,7 +12867,7 @@
 </changes>
 
 
-<changes ver="0.7.44" date="23.03.2009">
+<changes ver="0.7.44" date="2009-03-23">
 
 <change type="feature">
 <para lang="ru">
@@ -12859,7 +12930,7 @@
 </changes>
 
 
-<changes ver="0.7.43" date="18.03.2009">
+<changes ver="0.7.43" date="2009-03-18">
 
 <change type="bugfix">
 <para lang="ru">
@@ -12888,7 +12959,7 @@
 </changes>
 
 
-<changes ver="0.7.42" date="16.03.2009">
+<changes ver="0.7.42" date="2009-03-16">
 
 <change type="change">
 <para lang="ru">
@@ -12972,7 +13043,7 @@
 </changes>
 
 
-<changes ver="0.7.41" date="11.03.2009">
+<changes ver="0.7.41" date="2009-03-11">
 
 <change type="bugfix">
 <para lang="ru">
@@ -12993,7 +13064,7 @@
 </changes>
 
 
-<changes ver="0.7.40" date="09.03.2009">
+<changes ver="0.7.40" date="2009-03-09">
 
 <change type="feature">
 <para lang="ru">
@@ -13043,7 +13114,7 @@
 </changes>
 
 
-<changes ver="0.7.39" date="02.03.2009">
+<changes ver="0.7.39" date="2009-03-02">
 
 <change type="bugfix">
 <para lang="ru">
@@ -13072,7 +13143,7 @@
 </changes>
 
 
-<changes ver="0.7.38" date="23.02.2009">
+<changes ver="0.7.38" date="2009-02-23">
 
 <change type="feature">
 <para lang="ru">
@@ -13112,7 +13183,7 @@
 </changes>
 
 
-<changes ver="0.7.37" date="21.02.2009">
+<changes ver="0.7.37" date="2009-02-21">
 
 <change type="bugfix">
 <para lang="ru">
@@ -13128,7 +13199,7 @@
 </changes>
 
 
-<changes ver="0.7.36" date="21.02.2009">
+<changes ver="0.7.36" date="2009-02-21">
 
 <change type="feature">
 <para lang="ru">
@@ -13155,7 +13226,7 @@
 </changes>
 
 
-<changes ver="0.7.35" date="16.02.2009">
+<changes ver="0.7.35" date="2009-02-16">
 
 <change type="bugfix">
 <para lang="ru">
@@ -13199,7 +13270,7 @@
 </changes>
 
 
-<changes ver="0.7.34" date="10.02.2009">
+<changes ver="0.7.34" date="2009-02-10">
 
 <change type="feature">
 <para lang="ru">
@@ -13262,7 +13333,7 @@
 </changes>
 
 
-<changes ver="0.7.33" date="02.02.2009">
+<changes ver="0.7.33" date="2009-02-02">
 
 <change type="bugfix">
 <para lang="ru">
@@ -13301,7 +13372,7 @@
 </changes>
 
 
-<changes ver="0.7.32" date="26.01.2009">
+<changes ver="0.7.32" date="2009-01-26">
 
 <change type="feature">
 <para lang="ru">
@@ -13346,7 +13417,7 @@
 </changes>
 
 
-<changes ver="0.7.31" date="19.01.2009">
+<changes ver="0.7.31" date="2009-01-19">
 
 <change type="change">
 <para lang="ru">
@@ -13418,7 +13489,7 @@
 
 
 
-<changes ver="0.7.30" date="24.12.2008">
+<changes ver="0.7.30" date="2008-12-24">
 
 <change type="bugfix">
 <para lang="ru">
@@ -13438,7 +13509,7 @@
 </changes>
 
 
-<changes ver="0.7.29" date="24.12.2008">
+<changes ver="0.7.29" date="2008-12-24">
 
 <change type="bugfix">
 <para lang="ru">
@@ -13485,7 +13556,7 @@
 </changes>
 
 
-<changes ver="0.7.28" date="22.12.2008">
+<changes ver="0.7.28" date="2008-12-22">
 
 <change type="change">
 <para lang="ru">
@@ -13510,7 +13581,7 @@
 </changes>
 
 
-<changes ver="0.7.27" date="15.12.2008">
+<changes ver="0.7.27" date="2008-12-15">
 
 <change type="feature">
 <para lang="ru">
@@ -13606,7 +13677,7 @@
 </changes>
 
 
-<changes ver="0.7.26" date="08.12.2008">
+<changes ver="0.7.26" date="2008-12-08">
 
 <change type="bugfix">
 <para lang="ru">
@@ -13622,7 +13693,7 @@
 </changes>
 
 
-<changes ver="0.7.25" date="08.12.2008">
+<changes ver="0.7.25" date="2008-12-08">
 
 <change type="change">
 <para lang="ru">
@@ -13663,7 +13734,7 @@
 </changes>
 
 
-<changes ver="0.7.24" date="01.12.2008">
+<changes ver="0.7.24" date="2008-12-01">
 
 <change type="feature">
 <para lang="ru">
@@ -13697,7 +13768,7 @@
 </changes>
 
 
-<changes ver="0.7.23" date="27.11.2008">
+<changes ver="0.7.23" date="2008-11-27">
 
 <change type="feature">
 <para lang="ru">
@@ -13729,7 +13800,7 @@
 </changes>
 
 
-<changes ver="0.7.22" date="20.11.2008">
+<changes ver="0.7.22" date="2008-11-20">
 
 <change type="feature">
 <para lang="ru">
@@ -13774,7 +13845,7 @@
 </changes>
 
 
-<changes ver="0.7.21" date="11.11.2008">
+<changes ver="0.7.21" date="2008-11-11">
 
 <change>
 <para lang="ru">
@@ -13821,7 +13892,7 @@
 </changes>
 
 
-<changes ver="0.7.20" date="10.11.2008">
+<changes ver="0.7.20" date="2008-11-10">
 
 <change>
 <para lang="ru">
@@ -13897,7 +13968,7 @@
 </changes>
 
 
-<changes ver="0.7.19" date="13.10.2008">
+<changes ver="0.7.19" date="2008-10-13">
 
 <change type="bugfix">
 <para lang="ru">
@@ -13911,7 +13982,7 @@
 </changes>
 
 
-<changes ver="0.7.18" date="13.10.2008">
+<changes ver="0.7.18" date="2008-10-13">
 
 <change type="change">
 <para lang="ru">
@@ -14002,7 +14073,7 @@
 </changes>
 
 
-<changes ver="0.7.17" date="15.09.2008">
+<changes ver="0.7.17" date="2008-09-15">
 
 <change type="feature">
 <para lang="ru">
@@ -14058,7 +14129,7 @@
 </changes>
 
 
-<changes ver="0.7.16" date="08.09.2008">
+<changes ver="0.7.16" date="2008-09-08">
 
 <change type="bugfix">
 <para lang="ru">
@@ -14074,7 +14145,7 @@
 </changes>
 
 
-<changes ver="0.7.15" date="08.09.2008">
+<changes ver="0.7.15" date="2008-09-08">
 
 <change type="feature">
 <para lang="ru">
@@ -14117,7 +14188,7 @@
 </changes>
 
 
-<changes ver="0.7.14" date="01.09.2008">
+<changes ver="0.7.14" date="2008-09-01">
 
 <change type="change">
 <para lang="ru">
@@ -14185,7 +14256,7 @@
 </changes>
 
 
-<changes ver="0.7.13" date="26.08.2008">
+<changes ver="0.7.13" date="2008-08-26">
 
 <change type="bugfix">
 <para lang="ru">
@@ -14201,7 +14272,7 @@
 </changes>
 
 
-<changes ver="0.7.12" date="26.08.2008">
+<changes ver="0.7.12" date="2008-08-26">
 
 <change type="feature">
 <para lang="ru">
@@ -14271,7 +14342,7 @@
 </changes>
 
 
-<changes ver="0.7.11" date="18.08.2008">
+<changes ver="0.7.11" date="2008-08-18">
 
 <change type="change">
 <para lang="ru">
@@ -14338,7 +14409,7 @@
 </changes>
 
 
-<changes ver="0.7.10" date="13.08.2008">
+<changes ver="0.7.10" date="2008-08-13">
 
 <change type="bugfix">
 <para lang="ru">
@@ -14376,7 +14447,7 @@
 </changes>
 
 
-<changes ver="0.7.9" date="12.08.2008">
+<changes ver="0.7.9" date="2008-08-12">
 
 <change type="change">
 <para lang="ru">
@@ -14478,7 +14549,7 @@
 </changes>
 
 
-<changes ver="0.7.8" date="04.08.2008">
+<changes ver="0.7.8" date="2008-08-04">
 
 <change type="feature">
 <para lang="ru">
@@ -14525,7 +14596,7 @@
 </changes>
 
 
-<changes ver="0.7.7" date="30.07.2008">
+<changes ver="0.7.7" date="2008-07-30">
 
 <change type="change">
 <para lang="ru">
@@ -14624,7 +14695,7 @@
 </changes>
 
 
-<changes ver="0.7.6" date="07.07.2008">
+<changes ver="0.7.6" date="2008-07-07">
 
 <change type="bugfix">
 <para lang="ru">
@@ -14650,7 +14721,7 @@
 </changes>
 
 
-<changes ver="0.7.5" date="01.07.2008">
+<changes ver="0.7.5" date="2008-07-01">
 
 <change>
 <para lang="ru">
@@ -14690,7 +14761,7 @@
 </changes>
 
 
-<changes ver="0.7.4" date="30.06.2008">
+<changes ver="0.7.4" date="2008-06-30">
 
 <change type="feature">
 <para lang="ru">
@@ -14740,7 +14811,7 @@
 </changes>
 
 
-<changes ver="0.7.3" date="23.06.2008">
+<changes ver="0.7.3" date="2008-06-23">
 
 <change type="change">
 <para lang="ru">
@@ -14789,7 +14860,7 @@
 </changes>
 
 
-<changes ver="0.7.2" date="16.06.2008">
+<changes ver="0.7.2" date="2008-06-16">
 
 <change type="feature">
 <para lang="ru">
@@ -14859,7 +14930,7 @@
 </changes>
 
 
-<changes ver="0.7.1" date="26.05.2008">
+<changes ver="0.7.1" date="2008-05-26">
 
 <change type="change">
 <para lang="ru">
@@ -14927,7 +14998,7 @@
 </changes>
 
 
-<changes ver="0.7.0" date="19.05.2008">
+<changes ver="0.7.0" date="2008-05-19">
 
 <change type="change">
 <para lang="ru">
@@ -15005,7 +15076,7 @@
 </changes>
 
 
-<changes ver="0.6.31" date="12.05.2008">
+<changes ver="0.6.31" date="2008-05-12">
 
 <change type="bugfix">
 <para lang="ru">
@@ -15036,7 +15107,7 @@
 </changes>
 
 
-<changes ver="0.6.30" date="29.04.2008">
+<changes ver="0.6.30" date="2008-04-29">
 
 <change type="change">
 <para lang="ru">
@@ -15112,7 +15183,7 @@
 </changes>
 
 
-<changes ver="0.6.29" date="18.03.2008">
+<changes ver="0.6.29" date="2008-03-18">
 
 <change type="feature">
 <para lang="ru">
@@ -15137,7 +15208,7 @@
 </changes>
 
 
-<changes ver="0.6.28" date="13.03.2008">
+<changes ver="0.6.28" date="2008-03-13">
 
 <change type="bugfix">
 <para lang="ru">
@@ -15153,7 +15224,7 @@
 </changes>
 
 
-<changes ver="0.6.27" date="12.03.2008">
+<changes ver="0.6.27" date="2008-03-12">
 
 <change type="change">
 <para lang="ru">
@@ -15323,7 +15394,7 @@
 </changes>
 
 
-<changes ver="0.6.26" date="11.02.2008">
+<changes ver="0.6.26" date="2008-02-11">
 
 <change type="bugfix">
 <para lang="ru">
@@ -15406,7 +15477,7 @@
 </changes>
 
 
-<changes ver="0.6.25" date="08.01.2008">
+<changes ver="0.6.25" date="2008-01-08">
 
 <change type="change">
 <para lang="ru">
@@ -15504,7 +15575,7 @@
 
 </changes>
 
-<changes ver="0.6.24" date="27.12.2007">
+<changes ver="0.6.24" date="2007-12-27">
 
 <change type="bugfix">
 <para lang="ru">
@@ -15520,7 +15591,7 @@
 </changes>
 
 
-<changes ver="0.6.23" date="27.12.2007">
+<changes ver="0.6.23" date="2007-12-27">
 
 <change type="change">
 <para lang="ru">
@@ -15659,7 +15730,7 @@
 </changes>
 
 
-<changes ver="0.6.22" date="19.12.2007">
+<changes ver="0.6.22" date="2007-12-19">
 
 <change type="change">
 <para lang="ru">
@@ -15766,7 +15837,7 @@
 </changes>
 
 
-<changes ver="0.6.21" date="03.12.2007">
+<changes ver="0.6.21" date="2007-12-03">
 
 <change type="change">
 <para lang="ru">
@@ -15834,7 +15905,7 @@
 </changes>
 
 
-<changes ver="0.6.20" date="28.11.2007">
+<changes ver="0.6.20" date="2007-11-28">
 
 <change type="bugfix">
 <para lang="ru">
@@ -15852,7 +15923,7 @@
 </changes>
 
 
-<changes ver="0.6.19" date="27.11.2007">
+<changes ver="0.6.19" date="2007-11-27">
 
 <change type="bugfix">
 <para lang="ru">
@@ -15865,7 +15936,7 @@
 
 </changes>
 
-<changes ver="0.6.18" date="27.11.2007">
+<changes ver="0.6.18" date="2007-11-27">
 
 <change type="change">
 <para lang="ru">
@@ -15930,7 +16001,7 @@
 </changes>
 
 
-<changes ver="0.6.17" date="15.11.2007">
+<changes ver="0.6.17" date="2007-11-15">
 
 <change type="feature">
 <para lang="ru">
@@ -15997,7 +16068,7 @@
 </changes>
 
 
-<changes ver="0.6.16" date="29.10.2007">
+<changes ver="0.6.16" date="2007-10-29">
 
 <change type="change">
 <para lang="ru">
@@ -16035,7 +16106,7 @@
 </changes>
 
 
-<changes ver="0.6.15" date="22.10.2007">
+<changes ver="0.6.15" date="2007-10-22">
 
 <change type="feature">
 <para lang="ru">
@@ -16137,7 +16208,7 @@
 </changes>
 
 
-<changes ver="0.6.14" date="15.10.2007">
+<changes ver="0.6.14" date="2007-10-15">
 
 <change type="change">
 <para lang="ru">
@@ -16258,7 +16329,7 @@
 </changes>
 
 
-<changes ver="0.6.13" date="24.09.2007">
+<changes ver="0.6.13" date="2007-09-24">
 
 <change type="bugfix">
 <para lang="ru">
@@ -16275,7 +16346,7 @@
 </changes>
 
 
-<changes ver="0.6.12" date="21.09.2007">
+<changes ver="0.6.12" date="2007-09-21">
 
 <change type="change">
 <para lang="ru">
@@ -16345,7 +16416,7 @@
 </changes>
 
 
-<changes ver="0.6.11" date="11.09.2007">
+<changes ver="0.6.11" date="2007-09-11">
 
 <change type="bugfix">
 <para lang="ru">
@@ -16393,7 +16464,7 @@
 </changes>
 
 
-<changes ver="0.6.10" date="03.09.2007">
+<changes ver="0.6.10" date="2007-09-03">
 
 <change type="feature">
 <para lang="ru">
@@ -16441,7 +16512,7 @@
 </changes>
 
 
-<changes ver="0.6.9" date="28.08.2007">
+<changes ver="0.6.9" date="2007-08-28">
 
 <change type="bugfix">
 <para lang="ru">
@@ -16489,7 +16560,7 @@
 </changes>
 
 
-<changes ver="0.6.8" date="20.08.2007">
+<changes ver="0.6.8" date="2007-08-20">
 
 <change type="change">
 <para lang="ru">
@@ -16549,7 +16620,7 @@
 </changes>
 
 
-<changes ver="0.6.7" date="15.08.2007">
+<changes ver="0.6.7" date="2007-08-15">
 
 <change type="change">
 <para lang="ru">
@@ -16689,7 +16760,7 @@
 </changes>
 
 
-<changes ver="0.6.6" date="30.07.2007">
+<changes ver="0.6.6" date="2007-07-30">
 
 <change type="feature">
 <para lang="ru">
@@ -16772,7 +16843,7 @@
 </changes>
 
 
-<changes ver="0.6.5" date="23.07.2007">
+<changes ver="0.6.5" date="2007-07-23">
 
 <change type="feature">
 <para lang="ru">
@@ -16841,7 +16912,7 @@
 </changes>
 
 
-<changes ver="0.6.4" date="17.07.2007">
+<changes ver="0.6.4" date="2007-07-17">
 
 <change type="security">
 <para lang="ru">
@@ -16897,7 +16968,7 @@
 </changes>
 
 
-<changes ver="0.6.3" date="12.07.2007">
+<changes ver="0.6.3" date="2007-07-12">
 
 <change type="feature">
 <para lang="ru">
@@ -16969,7 +17040,7 @@
 </changes>
 
 
-<changes ver="0.6.2" date="09.07.2007">
+<changes ver="0.6.2" date="2007-07-09">
 
 <change type="bugfix">
 <para lang="ru">
@@ -16985,7 +17056,7 @@
 </changes>
 
 
-<changes ver="0.6.1" date="17.06.2007">
+<changes ver="0.6.1" date="2007-06-17">
 
 <change type="bugfix">
 <para lang="ru">
@@ -17031,7 +17102,7 @@
 </changes>
 
 
-<changes ver="0.6.0" date="14.06.2007">
+<changes ver="0.6.0" date="2007-06-14">
 
 <change type="feature">
 <para lang="ru">
@@ -17047,7 +17118,7 @@
 </changes>
 
 
-<changes ver="0.5.25" date="11.06.2007">
+<changes ver="0.5.25" date="2007-06-11">
 
 <change type="bugfix">
 <para lang="ru">
@@ -17063,7 +17134,7 @@
 </changes>
 
 
-<changes ver="0.5.24" date="06.06.2007">
+<changes ver="0.5.24" date="2007-06-06">
 
 <change type="security">
 <para lang="ru">
@@ -17090,7 +17161,7 @@
 </changes>
 
 
-<changes ver="0.5.23" date="04.06.2007">
+<changes ver="0.5.23" date="2007-06-04">
 
 <change type="feature">
 <para lang="ru">
@@ -17148,7 +17219,7 @@
 </changes>
 
 
-<changes ver="0.5.22" date="29.05.2007">
+<changes ver="0.5.22" date="2007-05-29">
 
 <change type="bugfix">
 <para lang="ru">
@@ -17164,7 +17235,7 @@
 </changes>
 
 
-<changes ver="0.5.21" date="28.05.2007">
+<changes ver="0.5.21" date="2007-05-28">
 
 <change type="bugfix">
 <para lang="ru">
@@ -17215,7 +17286,7 @@
 </changes>
 
 
-<changes ver="0.5.20" date="07.05.2007">
+<changes ver="0.5.20" date="2007-05-07">
 
 <change type="feature">
 <para lang="ru">
@@ -17284,7 +17355,7 @@
 </changes>
 
 
-<changes ver="0.5.19" date="24.04.2007">
+<changes ver="0.5.19" date="2007-04-24">
 
 <change type="change">
 <para lang="ru">
@@ -17350,7 +17421,7 @@
 </changes>
 
 
-<changes ver="0.5.18" date="19.04.2007">
+<changes ver="0.5.18" date="2007-04-19">
 
 <change type="feature">
 <para lang="ru">
@@ -17414,7 +17485,7 @@
 </changes>
 
 
-<changes ver="0.5.17" date="02.04.2007">
+<changes ver="0.5.17" date="2007-04-02">
 
 <change type="change">
 <para lang="ru">
@@ -17468,7 +17539,7 @@
 </changes>
 
 
-<changes ver="0.5.16" date="26.03.2007">
+<changes ver="0.5.16" date="2007-03-26">
 
 <change type="bugfix">
 <para lang="ru">
@@ -17522,7 +17593,7 @@
 </changes>
 
 
-<changes ver="0.5.15" date="19.03.2007">
+<changes ver="0.5.15" date="2007-03-19">
 
 <change type="feature">
 <para lang="ru">
@@ -17615,7 +17686,7 @@
 </changes>
 
 
-<changes ver="0.5.14" date="23.02.2007">
+<changes ver="0.5.14" date="2007-02-23">
 
 <change type="bugfix">
 <para lang="ru">
@@ -17630,7 +17701,7 @@
 </changes>
 
 
-<changes ver="0.5.13" date="19.02.2007">
+<changes ver="0.5.13" date="2007-02-19">
 
 <change type="feature">
 <para lang="ru">
@@ -17701,7 +17772,7 @@
 </changes>
 
 
-<changes ver="0.5.12" date="12.02.2007">
+<changes ver="0.5.12" date="2007-02-12">
 
 <change type="bugfix">
 <para lang="ru">
@@ -17751,7 +17822,7 @@
 </changes>
 
 
-<changes ver="0.5.11" date="05.02.2007">
+<changes ver="0.5.11" date="2007-02-05">
 
 <change type="feature">
 <para lang="ru">
@@ -17812,7 +17883,7 @@
 </changes>
 
 
-<changes ver="0.5.10" date="26.01.2007">
+<changes ver="0.5.10" date="2007-01-26">
 
 <change type="bugfix">
 <para lang="ru">
@@ -17843,7 +17914,7 @@
 </changes>
 
 
-<changes ver="0.5.9" date="25.01.2007">
+<changes ver="0.5.9" date="2007-01-25">
 
 <change type="change">
 <para lang="ru">
@@ -17915,7 +17986,7 @@
 </changes>
 
 
-<changes ver="0.5.8" date="19.01.2007">
+<changes ver="0.5.8" date="2007-01-19">
 
 <change type="bugfix">
 <para lang="ru">
@@ -17992,7 +18063,7 @@
 </changes>
 
 
-<changes ver="0.5.7" date="15.01.2007">
+<changes ver="0.5.7" date="2007-01-15">
 
 <change type="feature">
 <para lang="ru">
@@ -18059,7 +18130,7 @@
 </changes>
 
 
-<changes ver="0.5.6" date="09.01.2007">
+<changes ver="0.5.6" date="2007-01-09">
 
 <change type="change">
 <para lang="ru">
@@ -18121,7 +18192,7 @@
 </changes>
 
 
-<changes ver="0.5.5" date="24.12.2006">
+<changes ver="0.5.5" date="2006-12-24">
 
 <change type="change">
 <para lang="ru">
@@ -18182,7 +18253,7 @@
 </changes>
 
 
-<changes ver="0.5.4" date="15.12.2006">
+<changes ver="0.5.4" date="2006-12-15">
 
 <change type="feature">
 <para lang="ru">
@@ -18229,7 +18300,7 @@
 </changes>
 
 
-<changes ver="0.5.3" date="13.12.2006">
+<changes ver="0.5.3" date="2006-12-13">
 
 <change type="feature">
 <para lang="ru">
@@ -18264,7 +18335,7 @@
 </changes>
 
 
-<changes ver="0.5.2" date="11.12.2006">
+<changes ver="0.5.2" date="2006-12-11">
 
 <change type="bugfix">
 <para lang="ru">
@@ -18282,7 +18353,7 @@
 </changes>
 
 
-<changes ver="0.5.1" date="11.12.2006">
+<changes ver="0.5.1" date="2006-12-11">
 
 <change type="bugfix">
 <para lang="ru">
@@ -18374,7 +18445,7 @@
 </changes>
 
 
-<changes ver="0.5.0" date="04.12.2006">
+<changes ver="0.5.0" date="2006-12-04">
 
 <change type="change">
 <para lang="ru">
@@ -18446,7 +18517,7 @@
 </changes>
 
 
-<changes ver="0.4.14" date="27.11.2006">
+<changes ver="0.4.14" date="2006-11-27">
 
 <change type="feature">
 <para lang="ru">
@@ -18542,7 +18613,7 @@
 </changes>
 
 
-<changes ver="0.4.13" date="15.11.2006">
+<changes ver="0.4.13" date="2006-11-15">
 
 <change type="feature">
 <para lang="ru">
@@ -18629,7 +18700,7 @@
 </changes>
 
 
-<changes ver="0.4.12" date="31.10.2006">
+<changes ver="0.4.12" date="2006-10-31">
 
 <change type="feature">
 <para lang="ru">
@@ -18663,7 +18734,7 @@
 </changes>
 
 
-<changes ver="0.4.11" date="25.10.2006">
+<changes ver="0.4.11" date="2006-10-25">
 
 <change type="feature">
 <para lang="ru">
@@ -18699,7 +18770,7 @@
 </changes>
 
 
-<changes ver="0.4.10" date="23.10.2006">
+<changes ver="0.4.10" date="2006-10-23">
 
 <change type="feature">
 <para lang="ru">
@@ -18757,7 +18828,7 @@
 </changes>
 
 
-<changes ver="0.4.9" date="13.10.2006">
+<changes ver="0.4.9" date="2006-10-13">
 
 <change type="feature">
 <para lang="ru">
@@ -18780,7 +18851,7 @@
 </changes>
 
 
-<changes ver="0.4.8" date="11.10.2006">
+<changes ver="0.4.8" date="2006-10-11">
 
 <change type="bugfix">
 <para lang="ru">
@@ -18807,7 +18878,7 @@
 </changes>
 
 
-<changes ver="0.4.7" date="10.10.2006">
+<changes ver="0.4.7" date="2006-10-10">
 
 <change type="feature">
 <para lang="ru">
@@ -18870,7 +18941,7 @@
 </changes>
 
 
-<changes ver="0.4.6" date="06.10.2006">
+<changes ver="0.4.6" date="2006-10-06">
 
 <change type="bugfix">
 <para lang="ru">
@@ -18910,7 +18981,7 @@
 </changes>
 
 
-<changes ver="0.4.5" date="02.10.2006">
+<changes ver="0.4.5" date="2006-10-02">
 
 <change type="bugfix">
 <para lang="ru">
@@ -18926,7 +18997,7 @@
 </changes>
 
 
-<changes ver="0.4.4" date="02.10.2006">
+<changes ver="0.4.4" date="2006-10-02">
 
 <change type="feature">
 <para lang="ru">
@@ -18992,7 +19063,7 @@
 </changes>
 
 
-<changes ver="0.4.3" date="26.09.2006">
+<changes ver="0.4.3" date="2006-09-26">
 
 <change type="change">
 <para lang="ru">
@@ -19067,7 +19138,7 @@
 </changes>
 
 
-<changes ver="0.4.2" date="14.09.2006">
+<changes ver="0.4.2" date="2006-09-14">
 
 <change type="bugfix">
 <para lang="ru">
@@ -19083,7 +19154,7 @@
 </changes>
 
 
-<changes ver="0.4.1" date="14.09.2006">
+<changes ver="0.4.1" date="2006-09-14">
 
 <change type="bugfix">
 <para lang="ru">
@@ -19119,7 +19190,7 @@
 </changes>
 
 
-<changes ver="0.4.0" date="30.08.2006">
+<changes ver="0.4.0" date="2006-08-30">
 
 <change>
 <para lang="ru">
@@ -19188,7 +19259,7 @@
 </changes>
 
 
-<changes ver="0.3.61" date="28.08.2006">
+<changes ver="0.3.61" date="2006-08-28">
 
 <change type="change">
 <para lang="ru">
@@ -19231,7 +19302,7 @@
 </changes>
 
 
-<changes ver="0.3.60" date="18.08.2006">
+<changes ver="0.3.60" date="2006-08-18">
 
 <change type="bugfix">
 <para lang="ru">
@@ -19248,7 +19319,7 @@
 </changes>
 
 
-<changes ver="0.3.59" date="16.08.2006">
+<changes ver="0.3.59" date="2006-08-16">
 
 <change type="feature">
 <para lang="ru">
@@ -19284,7 +19355,7 @@
 </changes>
 
 
-<changes ver="0.3.58" date="14.08.2006">
+<changes ver="0.3.58" date="2006-08-14">
 
 <change type="feature">
 <para lang="ru">
@@ -19347,7 +19418,7 @@
 </changes>
 
 
-<changes ver="0.3.57" date="09.08.2006">
+<changes ver="0.3.57" date="2006-08-09">
 
 <change type="feature">
 <para lang="ru">
@@ -19393,7 +19464,7 @@
 </changes>
 
 
-<changes ver="0.3.56" date="04.08.2006">
+<changes ver="0.3.56" date="2006-08-04">
 
 <change type="feature">
 <para lang="ru">
@@ -19428,7 +19499,7 @@
 </changes>
 
 
-<changes ver="0.3.55" date="28.07.2006">
+<changes ver="0.3.55" date="2006-07-28">
 
 <change type="feature">
 <para lang="ru">
@@ -19518,7 +19589,7 @@
 </changes>
 
 
-<changes ver="0.3.54" date="11.07.2006">
+<changes ver="0.3.54" date="2006-07-11">
 
 <change type="feature">
 <para lang="ru">
@@ -19585,7 +19656,7 @@
 </changes>
 
 
-<changes ver="0.3.53" date="07.07.2006">
+<changes ver="0.3.53" date="2006-07-07">
 
 <change type="change">
 <para lang="ru">
@@ -19658,7 +19729,7 @@
 </changes>
 
 
-<changes ver="0.3.52" date="03.07.2006">
+<changes ver="0.3.52" date="2006-07-03">
 
 <change type="change">
 <para lang="ru">
@@ -19709,7 +19780,7 @@
 </changes>
 
 
-<changes ver="0.3.51" date="30.06.2006">
+<changes ver="0.3.51" date="2006-06-30">
 
 <change type="bugfix">
 <para lang="ru">
@@ -19725,7 +19796,7 @@
 </changes>
 
 
-<changes ver="0.3.50" date="28.06.2006">
+<changes ver="0.3.50" date="2006-06-28">
 
 <change type="change">
 <para lang="ru">
@@ -19799,7 +19870,7 @@
 </changes>
 
 
-<changes ver="0.3.49" date="31.05.2006">
+<changes ver="0.3.49" date="2006-05-31">
 
 <change type="bugfix">
 <para lang="ru">
@@ -19825,7 +19896,7 @@
 </changes>
 
 
-<changes ver="0.3.48" date="29.05.2006">
+<changes ver="0.3.48" date="2006-05-29">
 
 <change type="change">
 <para lang="ru">
@@ -19881,7 +19952,7 @@
 </changes>
 
 
-<changes ver="0.3.47" date="23.05.2006">
+<changes ver="0.3.47" date="2006-05-23">
 
 <change type="feature">
 <para lang="ru">
@@ -19905,7 +19976,7 @@
 </changes>
 
 
-<changes ver="0.3.46" date="11.05.2006">
+<changes ver="0.3.46" date="2006-05-11">
 
 <change type="feature">
 <para lang="ru">
@@ -19951,7 +20022,7 @@
 </changes>
 
 
-<changes ver="0.3.45" date="06.05.2006">
+<changes ver="0.3.45" date="2006-05-06">
 
 <change type="feature">
 <para lang="ru">
@@ -20006,7 +20077,7 @@
 </changes>
 
 
-<changes ver="0.3.44" date="04.05.2006">
+<changes ver="0.3.44" date="2006-05-04">
 
 <change type="feature">
 <para lang="ru">
@@ -20039,7 +20110,7 @@
 </changes>
 
 
-<changes ver="0.3.43" date="26.04.2006">
+<changes ver="0.3.43" date="2006-04-26">
 
 <change type="bugfix">
 <para lang="ru">
@@ -20053,7 +20124,7 @@
 </changes>
 
 
-<changes ver="0.3.42" date="26.04.2006">
+<changes ver="0.3.42" date="2006-04-26">
 
 <change type="feature">
 <para lang="ru">
@@ -20101,7 +20172,7 @@
 </changes>
 
 
-<changes ver="0.3.41" date="21.04.2006">
+<changes ver="0.3.41" date="2006-04-21">
 
 <change type="feature">
 <para lang="ru">
@@ -20147,7 +20218,7 @@
 </changes>
 
 
-<changes ver="0.3.40" date="19.04.2006">
+<changes ver="0.3.40" date="2006-04-19">
 
 <change type="feature">
 <para lang="ru">
@@ -20179,7 +20250,7 @@
 </changes>
 
 
-<changes ver="0.3.39" date="17.04.2006">
+<changes ver="0.3.39" date="2006-04-17">
 
 <change type="feature">
 <para lang="ru">
@@ -20239,7 +20310,7 @@
 </changes>
 
 
-<changes ver="0.3.38" date="14.04.2006">
+<changes ver="0.3.38" date="2006-04-14">
 
 <change type="feature">
 <para lang="ru">
@@ -20320,7 +20391,7 @@
 </changes>
 
 
-<changes ver="0.3.37" date="07.04.2006">
+<changes ver="0.3.37" date="2006-04-07">
 
 <change type="feature">
 <para lang="ru">
@@ -20361,7 +20432,7 @@
 </changes>
 
 
-<changes ver="0.3.36" date="05.04.2006">
+<changes ver="0.3.36" date="2006-04-05">
 
 <change type="feature">
 <para lang="ru">
@@ -20457,7 +20528,7 @@
 </changes>
 
 
-<changes ver="0.3.35" date="22.03.2006">
+<changes ver="0.3.35" date="2006-03-22">
 
 <change type="bugfix">
 <para lang="ru">
@@ -20484,7 +20555,7 @@
 </changes>
 
 
-<changes ver="0.3.34" date="21.03.2006">
+<changes ver="0.3.34" date="2006-03-21">
 
 <change type="feature">
 <para lang="ru">
@@ -20498,7 +20569,7 @@
 </changes>
 
 
-<changes ver="0.3.33" date="15.03.2006">
+<changes ver="0.3.33" date="2006-03-15">
 
 <change type="feature">
 <para lang="ru">
@@ -20533,7 +20604,7 @@
 </changes>
 
 
-<changes ver="0.3.32" date="11.03.2006">
+<changes ver="0.3.32" date="2006-03-11">
 
 <change type="bugfix">
 <para lang="ru">
@@ -20549,7 +20620,7 @@
 </changes>
 
 
-<changes ver="0.3.31" date="10.03.2006">
+<changes ver="0.3.31" date="2006-03-10">
 
 <change type="change">
 <para lang="ru">
@@ -20628,7 +20699,7 @@
 </changes>
 
 
-<changes ver="0.3.30" date="22.02.2006">
+<changes ver="0.3.30" date="2006-02-22">
 
 <change type="change">
 <para lang="ru">
@@ -20663,7 +20734,7 @@
 </changes>
 
 
-<changes ver="0.3.29" date="20.02.2006">
+<changes ver="0.3.29" date="2006-02-20">
 
 <change type="feature">
 <para lang="ru">
@@ -20712,7 +20783,7 @@
 </changes>
 
 
-<changes ver="0.3.28" date="16.02.2006">
+<changes ver="0.3.28" date="2006-02-16">
 
 <change type="feature">
 <para lang="ru">
@@ -20779,7 +20850,7 @@
 </changes>
 
 
-<changes ver="0.3.27" date="08.02.2006">
+<changes ver="0.3.27" date="2006-02-08">
 
 <change type="change">
 <para lang="ru">
@@ -20853,7 +20924,7 @@
 </changes>
 
 
-<changes ver="0.3.26" date="03.02.2006">
+<changes ver="0.3.26" date="2006-02-03">
 
 <change type="change">
 <para lang="ru">
@@ -20878,7 +20949,7 @@
 </changes>
 
 
-<changes ver="0.3.25" date="01.02.2006">
+<changes ver="0.3.25" date="2006-02-01">
 
 <change type="bugfix">
 <para lang="ru">
@@ -20896,7 +20967,7 @@
 </changes>
 
 
-<changes ver="0.3.24" date="01.02.2006">
+<changes ver="0.3.24" date="2006-02-01">
 
 <change type="workaround">
 <para lang="ru">
@@ -20951,7 +21022,7 @@
 </changes>
 
 
-<changes ver="0.3.23" date="24.01.2006">
+<changes ver="0.3.23" date="2006-01-24">
 
 <change type="feature">
 <para lang="ru">
@@ -20983,7 +21054,7 @@
 </changes>
 
 
-<changes ver="0.3.22" date="17.01.2006">
+<changes ver="0.3.22" date="2006-01-17">
 
 <change type="feature">
 <para lang="ru">
@@ -21019,7 +21090,7 @@
 </changes>
 
 
-<changes ver="0.3.21" date="16.01.2006">
+<changes ver="0.3.21" date="2006-01-16">
 
 <change type="feature">
 <para lang="ru">
@@ -21042,7 +21113,7 @@
 </changes>
 
 
-<changes ver="0.3.20" date="11.01.2006">
+<changes ver="0.3.20" date="2006-01-11">
 
 <change type="bugfix">
 <para lang="ru">
@@ -21064,7 +21135,7 @@
 
 </changes>
 
-<changes ver="0.3.19" date="28.12.2005">
+<changes ver="0.3.19" date="2005-12-28">
 
 <change type="feature">
 <para lang="ru">
@@ -21096,7 +21167,7 @@
 </changes>
 
 
-<changes ver="0.3.18" date="26.12.2005">
+<changes ver="0.3.18" date="2005-12-26">
 
 <change type="feature">
 <para lang="ru">
@@ -21191,7 +21262,7 @@
 </changes>
 
 
-<changes ver="0.3.17" date="18.12.2005">
+<changes ver="0.3.17" date="2005-12-18">
 
 <change type="change">
 <para lang="ru">
@@ -21245,7 +21316,7 @@
 </changes>
 
 
-<changes ver="0.3.16" date="16.12.2005">
+<changes ver="0.3.16" date="2005-12-16">
 
 <change type="feature">
 <para lang="ru">
@@ -21332,7 +21403,7 @@
 </changes>
 
 
-<changes ver="0.3.15" date="07.12.2005">
+<changes ver="0.3.15" date="2005-12-07">
 
 <change type="feature">
 <para lang="ru">
@@ -21366,7 +21437,7 @@
 </changes>
 
 
-<changes ver="0.3.14" date="05.12.2005">
+<changes ver="0.3.14" date="2005-12-05">
 
 <change type="bugfix">
 <para lang="ru">
@@ -21382,7 +21453,7 @@
 </changes>
 
 
-<changes ver="0.3.13" date="05.12.2005">
+<changes ver="0.3.13" date="2005-12-05">
 
 <change type="feature">
 <para lang="ru">
@@ -21436,7 +21507,7 @@
 </changes>
 
 
-<changes ver="0.3.12" date="26.11.2005">
+<changes ver="0.3.12" date="2005-11-26">
 
 <change type="security">
 <para lang="ru">
@@ -21559,7 +21630,7 @@
 </changes>
 
 
-<changes ver="0.3.11" date="15.11.2005">
+<changes ver="0.3.11" date="2005-11-15">
 
 <change type="bugfix">
 <para lang="ru">
@@ -21575,7 +21646,7 @@
 </changes>
 
 
-<changes ver="0.3.10" date="15.11.2005">
+<changes ver="0.3.10" date="2005-11-15">
 
 <change type="change">
 <para lang="ru">
@@ -21694,7 +21765,7 @@
 </changes>
 
 
-<changes ver="0.3.9" date="10.11.2005">
+<changes ver="0.3.9" date="2005-11-10">
 
 <change type="bugfix">
 <para lang="ru">
@@ -21711,7 +21782,7 @@
 </changes>
 
 
-<changes ver="0.3.8" date="09.11.2005">
+<changes ver="0.3.8" date="2005-11-09">
 
 <change type="security">
 <para lang="ru">
@@ -21885,7 +21956,7 @@
 </changes>
 
 
-<changes ver="0.3.7" date="27.10.2005">
+<changes ver="0.3.7" date="2005-10-27">
 
 <change type="feature">
 <para lang="ru">
@@ -21911,7 +21982,7 @@
 </changes>
 
 
-<changes ver="0.3.6" date="24.10.2005">
+<changes ver="0.3.6" date="2005-10-24">
 
 <change type="change">
 <para lang="ru">
@@ -21957,7 +22028,7 @@
 </changes>
 
 
-<changes ver="0.3.5" date="21.10.2005">
+<changes ver="0.3.5" date="2005-10-21">
 
 <change type="bugfix">
 <para lang="ru">
@@ -21997,7 +22068,7 @@
 </changes>
 
 
-<changes ver="0.3.4" date="19.10.2005">
+<changes ver="0.3.4" date="2005-10-19">
 
 <change type="bugfix">
 <para lang="ru">
@@ -22013,7 +22084,7 @@
 </changes>
 
 
-<changes ver="0.3.3" date="19.10.2005">
+<changes ver="0.3.3" date="2005-10-19">
 
 <change type="change">
 <para lang="ru">
@@ -22148,7 +22219,7 @@
 </changes>
 
 
-<changes ver="0.3.2" date="12.10.2005">
+<changes ver="0.3.2" date="2005-10-12">
 
 <change type="feature">
 <para lang="ru">
@@ -22174,7 +22245,7 @@
 </changes>
 
 
-<changes ver="0.3.1" date="10.10.2005">
+<changes ver="0.3.1" date="2005-10-10">
 
 <change type="bugfix">
 <para lang="ru">
@@ -22201,7 +22272,7 @@
 </changes>
 
 
-<changes ver="0.3.0" date="07.10.2005">
+<changes ver="0.3.0" date="2005-10-07">
 
 <change type="change">
 <para lang="ru">
@@ -22217,7 +22288,7 @@
 </changes>
 
 
-<changes ver="0.2.6" date="05.10.2005">
+<changes ver="0.2.6" date="2005-10-05">
 
 <change type="change">
 <para lang="ru">
@@ -22292,7 +22363,7 @@
 </changes>
 
 
-<changes ver="0.2.5" date="04.10.2005">
+<changes ver="0.2.5" date="2005-10-04">
 
 <change type="change">
 <para lang="ru">
@@ -22337,7 +22408,7 @@
 </changes>
 
 
-<changes ver="0.2.4" date="03.10.2005">
+<changes ver="0.2.4" date="2005-10-03">
 
 <change type="feature">
 <para lang="ru">
@@ -22377,7 +22448,7 @@
 </changes>
 
 
-<changes ver="0.2.3" date="30.09.2005">
+<changes ver="0.2.3" date="2005-09-30">
 
 <change type="bugfix">
 <para lang="ru">
@@ -22393,7 +22464,7 @@
 </changes>
 
 
-<changes ver="0.2.2" date="30.09.2005">
+<changes ver="0.2.2" date="2005-09-30">
 
 <change type="feature">
 <para lang="ru">
@@ -22467,7 +22538,7 @@
 </changes>
 
 
-<changes ver="0.2.1" date="23.09.2005">
+<changes ver="0.2.1" date="2005-09-23">
 
 <change type="bugfix">
 <para lang="ru">
@@ -22485,7 +22556,7 @@
 </changes>
 
 
-<changes ver="0.2.0" date="23.09.2005">
+<changes ver="0.2.0" date="2005-09-23">
 
 <change>
 <para lang="ru">
@@ -22619,7 +22690,7 @@
 </changes>
 
 
-<changes ver="0.1.45" date="08.09.2005">
+<changes ver="0.1.45" date="2005-09-08">
 
 <change type="change">
 <para lang="ru">
@@ -22654,7 +22725,7 @@
 </changes>
 
 
-<changes ver="0.1.44" date="06.09.2005">
+<changes ver="0.1.44" date="2005-09-06">
 
 <change type="feature">
 <para lang="ru">
@@ -22697,7 +22768,7 @@
 </changes>
 
 
-<changes ver="0.1.43" date="30.08.2005">
+<changes ver="0.1.43" date="2005-08-30">
 
 <change type="feature">
 <para lang="ru">
@@ -22762,7 +22833,7 @@
 </changes>
 
 
-<changes ver="0.1.42" date="23.08.2005">
+<changes ver="0.1.42" date="2005-08-23">
 
 <change type="bugfix">
 <para lang="ru">
@@ -22791,7 +22862,7 @@
 </changes>
 
 
-<changes ver="0.1.41" date="25.07.2005">
+<changes ver="0.1.41" date="2005-07-25">
 
 <change type="bugfix">
 <para lang="ru">
@@ -22807,7 +22878,7 @@
 </changes>
 
 
-<changes ver="0.1.40" date="22.07.2005">
+<changes ver="0.1.40" date="2005-07-22">
 
 <change type="bugfix">
 <para lang="ru">
@@ -22866,7 +22937,7 @@
 </changes>
 
 
-<changes ver="0.1.39" date="14.07.2005">
+<changes ver="0.1.39" date="2005-07-14">
 
 <change>
 <para lang="ru">
@@ -22985,7 +23056,7 @@
 </changes>
 
 
-<changes ver="0.1.38" date="08.07.2005">
+<changes ver="0.1.38" date="2005-07-08">
 
 <change type="feature">
 <para lang="ru">
@@ -23108,7 +23179,7 @@
 </changes>
 
 
-<changes ver="0.1.37" date="23.06.2005">
+<changes ver="0.1.37" date="2005-06-23">
 
 <change type="change">
 <para lang="ru">
@@ -23146,7 +23217,7 @@
 </changes>
 
 
-<changes ver="0.1.36" date="15.06.2005">
+<changes ver="0.1.36" date="2005-06-15">
 
 <change type="change">
 <para lang="ru">
@@ -23219,7 +23290,7 @@
 </changes>
 
 
-<changes ver="0.1.35" date="07.06.2005">
+<changes ver="0.1.35" date="2005-06-07">
 
 <change type="feature">
 <para lang="ru">
@@ -23291,7 +23362,7 @@
 </changes>
 
 
-<changes ver="0.1.34" date="26.05.2005">
+<changes ver="0.1.34" date="2005-05-26">
 
 <change type="bugfix">
 <para lang="ru">
@@ -23334,7 +23405,7 @@
 </changes>
 
 
-<changes ver="0.1.33" date="23.05.2005">
+<changes ver="0.1.33" date="2005-05-23">
 
 <change type="bugfix">
 <para lang="ru">
@@ -23381,7 +23452,7 @@
 </changes>
 
 
-<changes ver="0.1.32" date="19.05.2005">
+<changes ver="0.1.32" date="2005-05-19">
 
 <change type="bugfix">
 <para lang="ru">
@@ -23427,7 +23498,7 @@
 </changes>
 
 
-<changes ver="0.1.31" date="16.05.2005">
+<changes ver="0.1.31" date="2005-05-16">
 
 <change type="bugfix">
 <para lang="ru">
@@ -23470,7 +23541,7 @@
 </changes>
 
 
-<changes ver="0.1.30" date="14.05.2005">
+<changes ver="0.1.30" date="2005-05-14">
 
 <change type="bugfix">
 <para lang="ru">
@@ -23533,7 +23604,7 @@
 </changes>
 
 
-<changes ver="0.1.29" date="12.05.2005">
+<changes ver="0.1.29" date="2005-05-12">
 
 <change type="feature">
 <para lang="ru">
@@ -23846,7 +23917,7 @@
 </changes>
 
 
-<changes ver="0.1.28" date="08.04.2005">
+<changes ver="0.1.28" date="2005-04-08">
 
 <change type="bugfix">
 <para lang="ru">
@@ -23869,7 +23940,7 @@
 </changes>
 
 
-<changes ver="0.1.27" date="28.03.2005">
+<changes ver="0.1.27" date="2005-03-28">
 
 <change type="feature">
 <para lang="ru">
@@ -23928,7 +23999,7 @@
 </changes>
 
 
-<changes ver="0.1.26" date="22.03.2005">
+<changes ver="0.1.26" date="2005-03-22">
 
 <change type="change">
 <para lang="ru">
@@ -23964,7 +24035,7 @@
 </changes>
 
 
-<changes ver="0.1.25" date="19.03.2005">
+<changes ver="0.1.25" date="2005-03-19">
 
 <change type="bugfix">
 <para lang="ru">
@@ -24081,7 +24152,7 @@
 </changes>
 
 
-<changes ver="0.1.24" date="04.03.2005">
+<changes ver="0.1.24" date="2005-03-04">
 
 <change type="feature">
 <para lang="ru">
@@ -24127,7 +24198,7 @@
 </changes>
 
 
-<changes ver="0.1.23" date="01.03.2005">
+<changes ver="0.1.23" date="2005-03-01">
 
 <change type="feature">
 <para lang="ru">
@@ -24203,7 +24274,7 @@
 </changes>
 
 
-<changes ver="0.1.22" date="22.02.2005">
+<changes ver="0.1.22" date="2005-02-22">
 
 <change type="bugfix">
 <para lang="ru">
@@ -24231,7 +24302,7 @@
 </changes>
 
 
-<changes ver="0.1.21" date="22.02.2005">
+<changes ver="0.1.21" date="2005-02-22">
 
 <change type="bugfix">
 <para lang="ru">
@@ -24268,7 +24339,7 @@
 </changes>
 
 
-<changes ver="0.1.20" date="17.02.2005">
+<changes ver="0.1.20" date="2005-02-17">
 
 <change type="feature">
 <para lang="ru">
@@ -24292,7 +24363,7 @@
 </changes>
 
 
-<changes ver="0.1.19" date="16.02.2005">
+<changes ver="0.1.19" date="2005-02-16">
 
 <change type="bugfix">
 <para lang="ru">
@@ -24327,7 +24398,7 @@
 </changes>
 
 
-<changes ver="0.1.18" date="09.02.2005">
+<changes ver="0.1.18" date="2005-02-09">
 
 <change type="workaround">
 <para lang="ru">
@@ -24422,7 +24493,7 @@
 </changes>
 
 
-<changes ver="0.1.17" date="03.02.2005">
+<changes ver="0.1.17" date="2005-02-03">
 
 <change type="change">
 <para lang="ru">
@@ -24519,7 +24590,7 @@
 </changes>
 
 
-<changes ver="0.1.16" date="25.01.2005">
+<changes ver="0.1.16" date="2005-01-25">
 
 <change type="bugfix">
 <para lang="ru">
@@ -24596,7 +24667,7 @@
 </changes>
 
 
-<changes ver="0.1.15" date="19.01.2005">
+<changes ver="0.1.15" date="2005-01-19">
 
 <change type="bugfix">
 <para lang="ru">
@@ -24684,7 +24755,7 @@
 </changes>
 
 
-<changes ver="0.1.14" date="18.01.2005">
+<changes ver="0.1.14" date="2005-01-18">
 
 <change type="feature">
 <para lang="ru">
@@ -24808,7 +24879,7 @@
 </changes>
 
 
-<changes ver="0.1.13" date="21.12.2004">
+<changes ver="0.1.13" date="2004-12-21">
 
 <change type="feature">
 <para lang="ru">
@@ -24840,7 +24911,7 @@
 </changes>
 
 
-<changes ver="0.1.12" date="06.12.2004">
+<changes ver="0.1.12" date="2004-12-06">
 
 <change type="feature">
 <para lang="ru">
@@ -24880,7 +24951,7 @@
 </changes>
 
 
-<changes ver="0.1.11" date="02.12.2004">
+<changes ver="0.1.11" date="2004-12-02">
 
 <change type="feature">
 <para lang="ru">
@@ -25021,7 +25092,7 @@
 </changes>
 
 
-<changes ver="0.1.10" date="26.11.2004">
+<changes ver="0.1.10" date="2004-11-26">
 
 <change type="bugfix">
 <para lang="ru">
@@ -25048,7 +25119,7 @@
 </changes>
 
 
-<changes ver="0.1.9" date="25.11.2004">
+<changes ver="0.1.9" date="2004-11-25">
 
 <change type="bugfix">
 <para lang="ru">
@@ -25096,7 +25167,7 @@
 </changes>
 
 
-<changes ver="0.1.8" date="20.11.2004">
+<changes ver="0.1.8" date="2004-11-20">
 
 <change type="bugfix">
 <para lang="ru">
@@ -25128,7 +25199,7 @@
 </changes>
 
 
-<changes ver="0.1.7" date="12.11.2004">
+<changes ver="0.1.7" date="2004-11-12">
 
 <change type="bugfix">
 <para lang="ru">
@@ -25146,7 +25217,7 @@
 </changes>
 
 
-<changes ver="0.1.6" date="11.11.2004">
+<changes ver="0.1.6" date="2004-11-11">
 
 <change type="bugfix">
 <para lang="ru">
@@ -25162,7 +25233,7 @@
 </changes>
 
 
-<changes ver="0.1.5" date="11.11.2004">
+<changes ver="0.1.5" date="2004-11-11">
 
 <change type="bugfix">
 <para lang="ru">
@@ -25248,7 +25319,7 @@
 </changes>
 
 
-<changes ver="0.1.4" date="26.10.2004">
+<changes ver="0.1.4" date="2004-10-26">
 
 <change type="bugfix">
 <para lang="ru">
@@ -25262,7 +25333,7 @@
 </changes>
 
 
-<changes ver="0.1.3" date="25.10.2004">
+<changes ver="0.1.3" date="2004-10-25">
 
 <change type="feature">
 <para lang="ru">
@@ -25295,7 +25366,7 @@
 </changes>
 
 
-<changes ver="0.1.2" date="21.10.2004">
+<changes ver="0.1.2" date="2004-10-21">
 
 <change type="feature">
 <para lang="ru">
@@ -25381,7 +25452,7 @@
 </changes>
 
 
-<changes ver="0.1.1" date="11.10.2004">
+<changes ver="0.1.1" date="2004-10-11">
 
 <change type="feature">
 <para lang="ru">
@@ -25481,7 +25552,7 @@
 </changes>
 
 
-<changes ver="0.1.0" date="04.10.2004">
+<changes ver="0.1.0" date="2004-10-04">
 
 <change>
 <para lang="ru">
diff --git a/docs/xsls/changes.xsls b/docs/xsls/changes.xsls
index 8be25a2..4b34254 100644
--- a/docs/xsls/changes.xsls
+++ b/docs/xsls/changes.xsls
@@ -25,13 +25,19 @@
                        '                                                    '),
                 1, $conf/changes[@lang=$lang]/length)}
 
-    X:if "$lang='ru'" { !{@date} }
+    X:if "$lang='ru'" {
+        !{substring(@date, 9, 2)}
+        X:text {.}
+        !{substring(@date, 6, 2)}
+        X:text {.}
+        !{substring(@date, 1, 4)}
+    }
 
     X:if "$lang='en'" {
-        !{substring(@date, 1, 2)}
+        !{substring(@date, 9, 2)}
         !{$conf/changes[@lang=$lang]/month[number(substring(current()/@date,
-                                                            4, 2))]}
-        !{substring(@date, 7, 4)}
+                                                            6, 2))]}
+        !{substring(@date, 1, 4)}
     }
 
     X:text {&#10;}
diff --git a/docs/xslt/changes.xslt b/docs/xslt/changes.xslt
index a0178f6..55ee515 100644
--- a/docs/xslt/changes.xslt
+++ b/docs/xslt/changes.xslt
@@ -26,13 +26,19 @@
                        '                                                    '),
                 1, $conf/changes[@lang=$lang]/length)"/>
 
-    <xsl:if test="$lang='ru'"> <xsl:value-of select="@date"/> </xsl:if>
+    <xsl:if test="$lang='ru'">
+        <xsl:value-of select="substring(@date, 9, 2)"/>
+        <xsl:text>.</xsl:text>
+        <xsl:value-of select="substring(@date, 6, 2)"/>
+        <xsl:text>.</xsl:text>
+        <xsl:value-of select="substring(@date, 1, 4)"/>
+    </xsl:if>
 
     <xsl:if test="$lang='en'">
-        <xsl:value-of select="substring(@date, 1, 2)"/>
+        <xsl:value-of select="substring(@date, 9, 2)"/>
         <xsl:value-of select="$conf/changes[@lang=$lang]/month[number(substring(current()/@date,
-                                                            4, 2))]"/>
-        <xsl:value-of select="substring(@date, 7, 4)"/>
+                                                            6, 2))]"/>
+        <xsl:value-of select="substring(@date, 1, 4)"/>
     </xsl:if>
 
     <xsl:text>&#10;</xsl:text>
diff --git a/misc/GNUmakefile b/misc/GNUmakefile
index 9cdf418..bef4f0e 100644
--- a/misc/GNUmakefile
+++ b/misc/GNUmakefile
@@ -66,6 +66,7 @@
 		--with-pcre=$(OBJS)/lib/$(PCRE)				\
 		--with-zlib=$(OBJS)/lib/$(ZLIB)				\
 		--with-select_module					\
+		--with-http_v2_module					\
 		--with-http_realip_module				\
 		--with-http_addition_module				\
 		--with-http_sub_module					\
diff --git a/src/core/nginx.c b/src/core/nginx.c
index 5e68f7d..903d2e1 100644
--- a/src/core/nginx.c
+++ b/src/core/nginx.c
@@ -128,6 +128,13 @@
       offsetof(ngx_core_conf_t, rlimit_core),
       NULL },
 
+    { ngx_string("worker_shutdown_timeout"),
+      NGX_MAIN_CONF|NGX_DIRECT_CONF|NGX_CONF_TAKE1,
+      ngx_conf_set_msec_slot,
+      0,
+      offsetof(ngx_core_conf_t, shutdown_timeout),
+      NULL },
+
     { ngx_string("working_directory"),
       NGX_MAIN_CONF|NGX_DIRECT_CONF|NGX_CONF_TAKE1,
       ngx_conf_set_str_slot,
@@ -1030,6 +1037,7 @@
     ccf->daemon = NGX_CONF_UNSET;
     ccf->master = NGX_CONF_UNSET;
     ccf->timer_resolution = NGX_CONF_UNSET_MSEC;
+    ccf->shutdown_timeout = NGX_CONF_UNSET_MSEC;
 
     ccf->worker_processes = NGX_CONF_UNSET;
     ccf->debug_points = NGX_CONF_UNSET;
@@ -1058,6 +1066,7 @@
     ngx_conf_init_value(ccf->daemon, 1);
     ngx_conf_init_value(ccf->master, 1);
     ngx_conf_init_msec_value(ccf->timer_resolution, 0);
+    ngx_conf_init_msec_value(ccf->shutdown_timeout, 0);
 
     ngx_conf_init_value(ccf->worker_processes, 1);
     ngx_conf_init_value(ccf->debug_points, 0);
diff --git a/src/core/nginx.h b/src/core/nginx.h
index 4c00b77..7335122 100644
--- a/src/core/nginx.h
+++ b/src/core/nginx.h
@@ -13,8 +13,8 @@
 #define NGINX_NAME         "nginx"
 #endif
 
-#define nginx_version      1011010
-#define NGINX_VERSION      "1.11.10"
+#define nginx_version      1011011
+#define NGINX_VERSION      "1.11.11"
 #define NGINX_VER          NGINX_NAME "/" NGINX_VERSION
 
 #ifdef NGX_BUILD
diff --git a/src/core/ngx_cycle.c b/src/core/ngx_cycle.c
index 5e95628..3dfdf2e 100644
--- a/src/core/ngx_cycle.c
+++ b/src/core/ngx_cycle.c
@@ -15,6 +15,7 @@
     ngx_shm_zone_t *shm_zone);
 static ngx_int_t ngx_test_lockfile(u_char *file, ngx_log_t *log);
 static void ngx_clean_old_cycles(ngx_event_t *ev);
+static void ngx_shutdown_timer_handler(ngx_event_t *ev);
 
 
 volatile ngx_cycle_t  *ngx_cycle;
@@ -22,6 +23,7 @@
 
 static ngx_pool_t     *ngx_temp_pool;
 static ngx_event_t     ngx_cleaner_event;
+static ngx_event_t     ngx_shutdown_event;
 
 ngx_uint_t             ngx_test_config;
 ngx_uint_t             ngx_dump_config;
@@ -1333,3 +1335,54 @@
         ngx_old_cycles.nelts = 0;
     }
 }
+
+
+void
+ngx_set_shutdown_timer(ngx_cycle_t *cycle)
+{
+    ngx_core_conf_t  *ccf;
+
+    ccf = (ngx_core_conf_t *) ngx_get_conf(cycle->conf_ctx, ngx_core_module);
+
+    if (ccf->shutdown_timeout) {
+        ngx_shutdown_event.handler = ngx_shutdown_timer_handler;
+        ngx_shutdown_event.data = cycle;
+        ngx_shutdown_event.log = cycle->log;
+        ngx_shutdown_event.cancelable = 1;
+
+        ngx_add_timer(&ngx_shutdown_event, ccf->shutdown_timeout);
+    }
+}
+
+
+static void
+ngx_shutdown_timer_handler(ngx_event_t *ev)
+{
+    ngx_uint_t         i;
+    ngx_cycle_t       *cycle;
+    ngx_connection_t  *c;
+
+    cycle = ev->data;
+
+    c = cycle->connections;
+
+    for (i = 0; i < cycle->connection_n; i++) {
+
+        if (c[i].fd == (ngx_socket_t) -1
+            || c[i].read == NULL
+            || c[i].read->accept
+            || c[i].read->channel
+            || c[i].read->resolver)
+        {
+            continue;
+        }
+
+        ngx_log_debug1(NGX_LOG_DEBUG_CORE, ev->log, 0,
+                       "*%uA shutdown timeout", c[i].number);
+
+        c[i].close = 1;
+        c[i].error = 1;
+
+        c[i].read->handler(c[i].read);
+    }
+}
diff --git a/src/core/ngx_cycle.h b/src/core/ngx_cycle.h
index 9fb302e..24b2add 100644
--- a/src/core/ngx_cycle.h
+++ b/src/core/ngx_cycle.h
@@ -88,6 +88,7 @@
     ngx_flag_t                master;
 
     ngx_msec_t                timer_resolution;
+    ngx_msec_t                shutdown_timeout;
 
     ngx_int_t                 worker_processes;
     ngx_int_t                 debug_points;
@@ -133,6 +134,7 @@
 ngx_cpuset_t *ngx_get_cpu_affinity(ngx_uint_t n);
 ngx_shm_zone_t *ngx_shared_memory_add(ngx_conf_t *cf, ngx_str_t *name,
     size_t size, void *tag);
+void ngx_set_shutdown_timer(ngx_cycle_t *cycle);
 
 
 extern volatile ngx_cycle_t  *ngx_cycle;
diff --git a/src/core/ngx_parse.c b/src/core/ngx_parse.c
index 7b60c5f..d35e60f 100644
--- a/src/core/ngx_parse.c
+++ b/src/core/ngx_parse.c
@@ -17,6 +17,11 @@
     ssize_t  size, scale, max;
 
     len = line->len;
+
+    if (len == 0) {
+        return NGX_ERROR;
+    }
+
     unit = line->data[len - 1];
 
     switch (unit) {
@@ -58,6 +63,11 @@
     size_t  len;
 
     len = line->len;
+
+    if (len == 0) {
+        return NGX_ERROR;
+    }
+
     unit = line->data[len - 1];
 
     switch (unit) {
diff --git a/src/core/ngx_rbtree.c b/src/core/ngx_rbtree.c
index 6c66f40..969d549 100644
--- a/src/core/ngx_rbtree.c
+++ b/src/core/ngx_rbtree.c
@@ -28,7 +28,7 @@
 
     /* a binary tree insert */
 
-    root = (ngx_rbtree_node_t **) &tree->root;
+    root = &tree->root;
     sentinel = tree->sentinel;
 
     if (*root == sentinel) {
@@ -161,7 +161,7 @@
 
     /* a binary tree delete */
 
-    root = (ngx_rbtree_node_t **) &tree->root;
+    root = &tree->root;
     sentinel = tree->sentinel;
 
     if (node->left == sentinel) {
@@ -378,3 +378,32 @@
     temp->right = node;
     node->parent = temp;
 }
+
+
+ngx_rbtree_node_t *
+ngx_rbtree_next(ngx_rbtree_t *tree, ngx_rbtree_node_t *node)
+{
+    ngx_rbtree_node_t  *root, *sentinel, *parent;
+
+    sentinel = tree->sentinel;
+
+    if (node->right != sentinel) {
+        return ngx_rbtree_min(node->right, sentinel);
+    }
+
+    root = tree->root;
+
+    for ( ;; ) {
+        parent = node->parent;
+
+        if (node == root) {
+            return NULL;
+        }
+
+        if (node == parent->left) {
+            return parent;
+        }
+
+        node = parent;
+    }
+}
diff --git a/src/core/ngx_rbtree.h b/src/core/ngx_rbtree.h
index 1d33e3f..97f0e3e 100644
--- a/src/core/ngx_rbtree.h
+++ b/src/core/ngx_rbtree.h
@@ -54,6 +54,8 @@
     ngx_rbtree_node_t *sentinel);
 void ngx_rbtree_insert_timer_value(ngx_rbtree_node_t *root,
     ngx_rbtree_node_t *node, ngx_rbtree_node_t *sentinel);
+ngx_rbtree_node_t *ngx_rbtree_next(ngx_rbtree_t *tree,
+    ngx_rbtree_node_t *node);
 
 
 #define ngx_rbt_red(node)               ((node)->color = 1)
diff --git a/src/core/ngx_resolver.c b/src/core/ngx_resolver.c
index 2065f75..e140ab6 100644
--- a/src/core/ngx_resolver.c
+++ b/src/core/ngx_resolver.c
@@ -56,8 +56,8 @@
         ((u_char *) (n) - offsetof(ngx_resolver_node_t, node))
 
 
-ngx_int_t ngx_udp_connect(ngx_resolver_connection_t *rec);
-ngx_int_t ngx_tcp_connect(ngx_resolver_connection_t *rec);
+static ngx_int_t ngx_udp_connect(ngx_resolver_connection_t *rec);
+static ngx_int_t ngx_tcp_connect(ngx_resolver_connection_t *rec);
 
 
 static void ngx_resolver_cleanup(void *data);
@@ -4379,7 +4379,7 @@
 }
 
 
-ngx_int_t
+static ngx_int_t
 ngx_udp_connect(ngx_resolver_connection_t *rec)
 {
     int                rc;
@@ -4463,7 +4463,7 @@
 }
 
 
-ngx_int_t
+static ngx_int_t
 ngx_tcp_connect(ngx_resolver_connection_t *rec)
 {
     int                rc;
diff --git a/src/event/modules/ngx_devpoll_module.c b/src/event/modules/ngx_devpoll_module.c
index cbc009c..b7bf98d 100644
--- a/src/event/modules/ngx_devpoll_module.c
+++ b/src/event/modules/ngx_devpoll_module.c
@@ -78,7 +78,7 @@
 };
 
 
-ngx_event_module_t  ngx_devpoll_module_ctx = {
+static ngx_event_module_t  ngx_devpoll_module_ctx = {
     &devpoll_name,
     ngx_devpoll_create_conf,               /* create configuration */
     ngx_devpoll_init_conf,                 /* init configuration */
@@ -338,7 +338,7 @@
 }
 
 
-ngx_int_t
+static ngx_int_t
 ngx_devpoll_process_events(ngx_cycle_t *cycle, ngx_msec_t timer,
     ngx_uint_t flags)
 {
diff --git a/src/event/modules/ngx_epoll_module.c b/src/event/modules/ngx_epoll_module.c
index b74865a..09e5e48 100644
--- a/src/event/modules/ngx_epoll_module.c
+++ b/src/event/modules/ngx_epoll_module.c
@@ -172,7 +172,7 @@
 };
 
 
-ngx_event_module_t  ngx_epoll_module_ctx = {
+static ngx_event_module_t  ngx_epoll_module_ctx = {
     &epoll_name,
     ngx_epoll_create_conf,               /* create configuration */
     ngx_epoll_init_conf,                 /* init configuration */
diff --git a/src/event/modules/ngx_eventport_module.c b/src/event/modules/ngx_eventport_module.c
index cc4af09..31c4f23 100644
--- a/src/event/modules/ngx_eventport_module.c
+++ b/src/event/modules/ngx_eventport_module.c
@@ -170,7 +170,7 @@
 };
 
 
-ngx_event_module_t  ngx_eventport_module_ctx = {
+static ngx_event_module_t  ngx_eventport_module_ctx = {
     &eventport_name,
     ngx_eventport_create_conf,             /* create configuration */
     ngx_eventport_init_conf,               /* init configuration */
@@ -444,7 +444,7 @@
 }
 
 
-ngx_int_t
+static ngx_int_t
 ngx_eventport_process_events(ngx_cycle_t *cycle, ngx_msec_t timer,
     ngx_uint_t flags)
 {
diff --git a/src/event/modules/ngx_iocp_module.c b/src/event/modules/ngx_iocp_module.c
index daea21f..7b21a39 100644
--- a/src/event/modules/ngx_iocp_module.c
+++ b/src/event/modules/ngx_iocp_module.c
@@ -52,7 +52,7 @@
 };
 
 
-ngx_event_module_t  ngx_iocp_module_ctx = {
+static ngx_event_module_t  ngx_iocp_module_ctx = {
     &iocp_name,
     ngx_iocp_create_conf,                  /* create configuration */
     ngx_iocp_init_conf,                    /* init configuration */
diff --git a/src/event/modules/ngx_kqueue_module.c b/src/event/modules/ngx_kqueue_module.c
index efe19ac..255c3e4 100644
--- a/src/event/modules/ngx_kqueue_module.c
+++ b/src/event/modules/ngx_kqueue_module.c
@@ -69,7 +69,7 @@
 };
 
 
-ngx_event_module_t  ngx_kqueue_module_ctx = {
+static ngx_event_module_t  ngx_kqueue_module_ctx = {
     &kqueue_name,
     ngx_kqueue_create_conf,                /* create configuration */
     ngx_kqueue_init_conf,                  /* init configuration */
diff --git a/src/event/modules/ngx_poll_module.c b/src/event/modules/ngx_poll_module.c
index d0a0e8f..83e5f8d 100644
--- a/src/event/modules/ngx_poll_module.c
+++ b/src/event/modules/ngx_poll_module.c
@@ -25,9 +25,9 @@
 static ngx_uint_t      nevents;
 
 
-static ngx_str_t    poll_name = ngx_string("poll");
+static ngx_str_t           poll_name = ngx_string("poll");
 
-ngx_event_module_t  ngx_poll_module_ctx = {
+static ngx_event_module_t  ngx_poll_module_ctx = {
     &poll_name,
     NULL,                                  /* create configuration */
     ngx_poll_init_conf,                    /* init configuration */
diff --git a/src/event/modules/ngx_select_module.c b/src/event/modules/ngx_select_module.c
index c4fc203..59810f6 100644
--- a/src/event/modules/ngx_select_module.c
+++ b/src/event/modules/ngx_select_module.c
@@ -33,9 +33,9 @@
 static ngx_event_t  **event_index;
 
 
-static ngx_str_t    select_name = ngx_string("select");
+static ngx_str_t           select_name = ngx_string("select");
 
-ngx_event_module_t  ngx_select_module_ctx = {
+static ngx_event_module_t  ngx_select_module_ctx = {
     &select_name,
     NULL,                                  /* create configuration */
     ngx_select_init_conf,                  /* init configuration */
diff --git a/src/event/modules/ngx_win32_select_module.c b/src/event/modules/ngx_win32_select_module.c
index e30e602..ba98f07 100644
--- a/src/event/modules/ngx_win32_select_module.c
+++ b/src/event/modules/ngx_win32_select_module.c
@@ -34,9 +34,9 @@
 static ngx_event_t  **event_index;
 
 
-static ngx_str_t    select_name = ngx_string("select");
+static ngx_str_t           select_name = ngx_string("select");
 
-ngx_event_module_t  ngx_select_module_ctx = {
+static ngx_event_module_t  ngx_select_module_ctx = {
     &select_name,
     NULL,                                  /* create configuration */
     ngx_select_init_conf,                  /* init configuration */
diff --git a/src/event/ngx_event.c b/src/event/ngx_event.c
index 705e167..71c4f17 100644
--- a/src/event/ngx_event.c
+++ b/src/event/ngx_event.c
@@ -59,20 +59,20 @@
 
 #if (NGX_STAT_STUB)
 
-ngx_atomic_t   ngx_stat_accepted0;
-ngx_atomic_t  *ngx_stat_accepted = &ngx_stat_accepted0;
-ngx_atomic_t   ngx_stat_handled0;
-ngx_atomic_t  *ngx_stat_handled = &ngx_stat_handled0;
-ngx_atomic_t   ngx_stat_requests0;
-ngx_atomic_t  *ngx_stat_requests = &ngx_stat_requests0;
-ngx_atomic_t   ngx_stat_active0;
-ngx_atomic_t  *ngx_stat_active = &ngx_stat_active0;
-ngx_atomic_t   ngx_stat_reading0;
-ngx_atomic_t  *ngx_stat_reading = &ngx_stat_reading0;
-ngx_atomic_t   ngx_stat_writing0;
-ngx_atomic_t  *ngx_stat_writing = &ngx_stat_writing0;
-ngx_atomic_t   ngx_stat_waiting0;
-ngx_atomic_t  *ngx_stat_waiting = &ngx_stat_waiting0;
+static ngx_atomic_t   ngx_stat_accepted0;
+ngx_atomic_t         *ngx_stat_accepted = &ngx_stat_accepted0;
+static ngx_atomic_t   ngx_stat_handled0;
+ngx_atomic_t         *ngx_stat_handled = &ngx_stat_handled0;
+static ngx_atomic_t   ngx_stat_requests0;
+ngx_atomic_t         *ngx_stat_requests = &ngx_stat_requests0;
+static ngx_atomic_t   ngx_stat_active0;
+ngx_atomic_t         *ngx_stat_active = &ngx_stat_active0;
+static ngx_atomic_t   ngx_stat_reading0;
+ngx_atomic_t         *ngx_stat_reading = &ngx_stat_reading0;
+static ngx_atomic_t   ngx_stat_writing0;
+ngx_atomic_t         *ngx_stat_writing = &ngx_stat_writing0;
+static ngx_atomic_t   ngx_stat_waiting0;
+ngx_atomic_t         *ngx_stat_waiting = &ngx_stat_waiting0;
 
 #endif
 
@@ -165,7 +165,7 @@
 };
 
 
-ngx_event_module_t  ngx_event_core_module_ctx = {
+static ngx_event_module_t  ngx_event_core_module_ctx = {
     &event_core_name,
     ngx_event_core_create_conf,            /* create configuration */
     ngx_event_core_init_conf,              /* init configuration */
diff --git a/src/event/ngx_event_timer.c b/src/event/ngx_event_timer.c
index 8f547b2..698b88f 100644
--- a/src/event/ngx_event_timer.c
+++ b/src/event/ngx_event_timer.c
@@ -67,7 +67,7 @@
 
         node = ngx_rbtree_min(root, sentinel);
 
-        /* node->key > ngx_current_time */
+        /* node->key > ngx_current_msec */
 
         if ((ngx_msec_int_t) (node->key - ngx_current_msec) > 0) {
             return;
@@ -96,43 +96,31 @@
 }
 
 
-void
-ngx_event_cancel_timers(void)
+ngx_int_t
+ngx_event_no_timers_left(void)
 {
     ngx_event_t        *ev;
     ngx_rbtree_node_t  *node, *root, *sentinel;
 
     sentinel = ngx_event_timer_rbtree.sentinel;
+    root = ngx_event_timer_rbtree.root;
 
-    for ( ;; ) {
-        root = ngx_event_timer_rbtree.root;
+    if (root == sentinel) {
+        return NGX_OK;
+    }
 
-        if (root == sentinel) {
-            return;
-        }
-
-        node = ngx_rbtree_min(root, sentinel);
-
+    for (node = ngx_rbtree_min(root, sentinel);
+         node;
+         node = ngx_rbtree_next(&ngx_event_timer_rbtree, node))
+    {
         ev = (ngx_event_t *) ((char *) node - offsetof(ngx_event_t, timer));
 
         if (!ev->cancelable) {
-            return;
+            return NGX_AGAIN;
         }
-
-        ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0,
-                       "event timer cancel: %d: %M",
-                       ngx_event_ident(ev->data), ev->timer.key);
-
-        ngx_rbtree_delete(&ngx_event_timer_rbtree, &ev->timer);
-
-#if (NGX_DEBUG)
-        ev->timer.left = NULL;
-        ev->timer.right = NULL;
-        ev->timer.parent = NULL;
-#endif
-
-        ev->timer_set = 0;
-
-        ev->handler(ev);
     }
+
+    /* only cancelable timers left */
+
+    return NGX_OK;
 }
diff --git a/src/event/ngx_event_timer.h b/src/event/ngx_event_timer.h
index 99f8a48..be81b15 100644
--- a/src/event/ngx_event_timer.h
+++ b/src/event/ngx_event_timer.h
@@ -22,7 +22,7 @@
 ngx_int_t ngx_event_timer_init(ngx_log_t *log);
 ngx_msec_t ngx_event_find_timer(void);
 void ngx_event_expire_timers(void);
-void ngx_event_cancel_timers(void);
+ngx_int_t ngx_event_no_timers_left(void);
 
 
 extern ngx_rbtree_t  ngx_event_timer_rbtree;
diff --git a/src/http/modules/ngx_http_charset_filter_module.c b/src/http/modules/ngx_http_charset_filter_module.c
index 4ea9818..e52b96e 100644
--- a/src/http/modules/ngx_http_charset_filter_module.c
+++ b/src/http/modules/ngx_http_charset_filter_module.c
@@ -123,7 +123,7 @@
 static ngx_int_t ngx_http_charset_postconfiguration(ngx_conf_t *cf);
 
 
-ngx_str_t  ngx_http_charset_default_types[] = {
+static ngx_str_t  ngx_http_charset_default_types[] = {
     ngx_string("text/html"),
     ngx_string("text/xml"),
     ngx_string("text/plain"),
diff --git a/src/http/modules/ngx_http_gzip_static_module.c b/src/http/modules/ngx_http_gzip_static_module.c
index 4d54090..b9294dd 100644
--- a/src/http/modules/ngx_http_gzip_static_module.c
+++ b/src/http/modules/ngx_http_gzip_static_module.c
@@ -48,7 +48,7 @@
 };
 
 
-ngx_http_module_t  ngx_http_gzip_static_module_ctx = {
+static ngx_http_module_t  ngx_http_gzip_static_module_ctx = {
     NULL,                                  /* preconfiguration */
     ngx_http_gzip_static_init,             /* postconfiguration */
 
diff --git a/src/http/modules/ngx_http_log_module.c b/src/http/modules/ngx_http_log_module.c
index ff8572b..330dc7e 100644
--- a/src/http/modules/ngx_http_log_module.c
+++ b/src/http/modules/ngx_http_log_module.c
@@ -748,23 +748,10 @@
 static void
 ngx_http_log_flush_handler(ngx_event_t *ev)
 {
-    ngx_open_file_t     *file;
-    ngx_http_log_buf_t  *buffer;
-
     ngx_log_debug0(NGX_LOG_DEBUG_EVENT, ev->log, 0,
                    "http log buffer flush handler");
 
-    if (ev->timedout) {
-        ngx_http_log_flush(ev->data, ev->log);
-        return;
-    }
-
-    /* cancel the flush timer for graceful shutdown */
-
-    file = ev->data;
-    buffer = file->data;
-
-    buffer->event = NULL;
+    ngx_http_log_flush(ev->data, ev->log);
 }
 
 
diff --git a/src/http/modules/ngx_http_static_module.c b/src/http/modules/ngx_http_static_module.c
index 07b9580..f2435a7 100644
--- a/src/http/modules/ngx_http_static_module.c
+++ b/src/http/modules/ngx_http_static_module.c
@@ -14,7 +14,7 @@
 static ngx_int_t ngx_http_static_init(ngx_conf_t *cf);
 
 
-ngx_http_module_t  ngx_http_static_module_ctx = {
+static ngx_http_module_t  ngx_http_static_module_ctx = {
     NULL,                                  /* preconfiguration */
     ngx_http_static_init,                  /* postconfiguration */
 
diff --git a/src/http/modules/ngx_http_xslt_filter_module.c b/src/http/modules/ngx_http_xslt_filter_module.c
index 315081e..695f3bf 100644
--- a/src/http/modules/ngx_http_xslt_filter_module.c
+++ b/src/http/modules/ngx_http_xslt_filter_module.c
@@ -109,7 +109,7 @@
 static void ngx_http_xslt_filter_exit(ngx_cycle_t *cycle);
 
 
-ngx_str_t  ngx_http_xslt_default_types[] = {
+static ngx_str_t  ngx_http_xslt_default_types[] = {
     ngx_string("text/xml"),
     ngx_null_string
 };
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c
index f2343c2..c4f25d5 100644
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -2571,6 +2571,7 @@
         sr->method_name = r->method_name;
         sr->loc_conf = r->loc_conf;
         sr->valid_location = r->valid_location;
+        sr->content_handler = r->content_handler;
         sr->phase_handler = r->phase_handler;
         sr->write_event_handler = ngx_http_core_run_phases;
 
diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c
index 523f268..d028fe1 100644
--- a/src/http/ngx_http_request.c
+++ b/src/http/ngx_http_request.c
@@ -555,7 +555,7 @@
 
     ngx_set_connection_log(r->connection, clcf->error_log);
 
-    r->header_in = hc->nbusy ? hc->busy[0] : c->buffer;
+    r->header_in = hc->busy ? hc->busy->buf : c->buffer;
 
     if (ngx_list_init(&r->headers_out.headers, r->pool, 20,
                       sizeof(ngx_table_elt_t))
@@ -1445,6 +1445,7 @@
 {
     u_char                    *old, *new;
     ngx_buf_t                 *b;
+    ngx_chain_t               *cl;
     ngx_http_connection_t     *hc;
     ngx_http_core_srv_conf_t  *cscf;
 
@@ -1474,8 +1475,11 @@
 
     hc = r->http_connection;
 
-    if (hc->nfree) {
-        b = hc->free[--hc->nfree];
+    if (hc->free) {
+        cl = hc->free;
+        hc->free = cl->next;
+
+        b = cl->buf;
 
         ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
                        "http large header free: %p %uz",
@@ -1483,20 +1487,19 @@
 
     } else if (hc->nbusy < cscf->large_client_header_buffers.num) {
 
-        if (hc->busy == NULL) {
-            hc->busy = ngx_palloc(r->connection->pool,
-                  cscf->large_client_header_buffers.num * sizeof(ngx_buf_t *));
-            if (hc->busy == NULL) {
-                return NGX_ERROR;
-            }
-        }
-
         b = ngx_create_temp_buf(r->connection->pool,
                                 cscf->large_client_header_buffers.size);
         if (b == NULL) {
             return NGX_ERROR;
         }
 
+        cl = ngx_alloc_chain_link(r->connection->pool);
+        if (cl == NULL) {
+            return NGX_ERROR;
+        }
+
+        cl->buf = b;
+
         ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
                        "http large header alloc: %p %uz",
                        b->pos, b->end - b->last);
@@ -1505,7 +1508,9 @@
         return NGX_DECLINED;
     }
 
-    hc->busy[hc->nbusy++] = b;
+    cl->next = hc->busy;
+    hc->busy = cl;
+    hc->nbusy++;
 
     if (r->state == 0) {
         /*
@@ -2902,12 +2907,11 @@
 ngx_http_set_keepalive(ngx_http_request_t *r)
 {
     int                        tcp_nodelay;
-    ngx_int_t                  i;
     ngx_buf_t                 *b, *f;
+    ngx_chain_t               *cl, *ln;
     ngx_event_t               *rev, *wev;
     ngx_connection_t          *c;
     ngx_http_connection_t     *hc;
-    ngx_http_core_srv_conf_t  *cscf;
     ngx_http_core_loc_conf_t  *clcf;
 
     c = r->connection;
@@ -2943,26 +2947,32 @@
              * Now we would move the large header buffers to the free list.
              */
 
-            cscf = ngx_http_get_module_srv_conf(r, ngx_http_core_module);
+            for (cl = hc->busy; cl; /* void */) {
+                ln = cl;
+                cl = cl->next;
 
-            if (hc->free == NULL) {
-                hc->free = ngx_palloc(c->pool,
-                  cscf->large_client_header_buffers.num * sizeof(ngx_buf_t *));
-
-                if (hc->free == NULL) {
-                    ngx_http_close_request(r, 0);
-                    return;
+                if (ln->buf == b) {
+                    ngx_free_chain(c->pool, ln);
+                    continue;
                 }
-            }
 
-            for (i = 0; i < hc->nbusy - 1; i++) {
-                f = hc->busy[i];
-                hc->free[hc->nfree++] = f;
+                f = ln->buf;
                 f->pos = f->start;
                 f->last = f->start;
+
+                ln->next = hc->free;
+                hc->free = ln;
             }
 
-            hc->busy[0] = b;
+            cl = ngx_alloc_chain_link(c->pool);
+            if (cl == NULL) {
+                ngx_http_close_request(r, 0);
+                return;
+            }
+
+            cl->buf = b;
+
+            hc->busy = cl;
             hc->nbusy = 1;
         }
     }
@@ -3033,27 +3043,32 @@
         b->last = b->start;
     }
 
-    ngx_log_debug2(NGX_LOG_DEBUG_HTTP, c->log, 0, "hc free: %p %i",
-                   hc->free, hc->nfree);
+    ngx_log_debug1(NGX_LOG_DEBUG_HTTP, c->log, 0, "hc free: %p",
+                   hc->free);
 
     if (hc->free) {
-        for (i = 0; i < hc->nfree; i++) {
-            ngx_pfree(c->pool, hc->free[i]->start);
-            hc->free[i] = NULL;
+        for (cl = hc->free; cl; /* void */) {
+            ln = cl;
+            cl = cl->next;
+            ngx_pfree(c->pool, ln->buf->start);
+            ngx_free_chain(c->pool, ln);
         }
 
-        hc->nfree = 0;
+        hc->free = NULL;
     }
 
     ngx_log_debug2(NGX_LOG_DEBUG_HTTP, c->log, 0, "hc busy: %p %i",
                    hc->busy, hc->nbusy);
 
     if (hc->busy) {
-        for (i = 0; i < hc->nbusy; i++) {
-            ngx_pfree(c->pool, hc->busy[i]->start);
-            hc->busy[i] = NULL;
+        for (cl = hc->busy; cl; /* void */) {
+            ln = cl;
+            cl = cl->next;
+            ngx_pfree(c->pool, ln->buf->start);
+            ngx_free_chain(c->pool, ln);
         }
 
+        hc->busy = NULL;
         hc->nbusy = 0;
     }
 
diff --git a/src/http/ngx_http_request.h b/src/http/ngx_http_request.h
index 1eb80db..150ecdd 100644
--- a/src/http/ngx_http_request.h
+++ b/src/http/ngx_http_request.h
@@ -312,11 +312,10 @@
 #endif
 #endif
 
-    ngx_buf_t                       **busy;
+    ngx_chain_t                      *busy;
     ngx_int_t                         nbusy;
 
-    ngx_buf_t                       **free;
-    ngx_int_t                         nfree;
+    ngx_chain_t                      *free;
 
     unsigned                          ssl:1;
     unsigned                          proxy_protocol:1;
diff --git a/src/http/ngx_http_upstream.c b/src/http/ngx_http_upstream.c
index 32c108c..fe6ff5e 100644
--- a/src/http/ngx_http_upstream.c
+++ b/src/http/ngx_http_upstream.c
@@ -188,7 +188,7 @@
 #endif
 
 
-ngx_http_upstream_header_t  ngx_http_upstream_headers_in[] = {
+static ngx_http_upstream_header_t  ngx_http_upstream_headers_in[] = {
 
     { ngx_string("Status"),
                  ngx_http_upstream_process_header_line,
@@ -5560,7 +5560,7 @@
 
 #if (NGX_HTTP_CACHE)
 
-ngx_int_t
+static ngx_int_t
 ngx_http_upstream_cache_status(ngx_http_request_t *r,
     ngx_http_variable_value_t *v, uintptr_t data)
 {
diff --git a/src/mail/ngx_mail_pop3_module.c b/src/mail/ngx_mail_pop3_module.c
index bd60e0a..a673070 100644
--- a/src/mail/ngx_mail_pop3_module.c
+++ b/src/mail/ngx_mail_pop3_module.c
@@ -185,6 +185,10 @@
          m <= NGX_MAIL_AUTH_EXTERNAL_ENABLED;
          m <<= 1, i++)
     {
+        if (ngx_mail_pop3_auth_methods_names[i].len == 0) {
+            continue;
+        }
+
         if (m & conf->auth_methods) {
             size += 1 + ngx_mail_pop3_auth_methods_names[i].len;
         }
@@ -212,6 +216,10 @@
          m <= NGX_MAIL_AUTH_EXTERNAL_ENABLED;
          m <<= 1, i++)
     {
+        if (ngx_mail_pop3_auth_methods_names[i].len == 0) {
+            continue;
+        }
+
         if (m & conf->auth_methods) {
             *p++ = ' ';
             p = ngx_cpymem(p, ngx_mail_pop3_auth_methods_names[i].data,
@@ -248,6 +256,10 @@
          m <= NGX_MAIL_AUTH_EXTERNAL_ENABLED;
          m <<= 1, i++)
     {
+        if (ngx_mail_pop3_auth_methods_names[i].len == 0) {
+            continue;
+        }
+
         if (m & conf->auth_methods) {
             size += ngx_mail_pop3_auth_methods_names[i].len
                     + sizeof(CRLF) - 1;
@@ -269,6 +281,10 @@
          m <= NGX_MAIL_AUTH_EXTERNAL_ENABLED;
          m <<= 1, i++)
     {
+        if (ngx_mail_pop3_auth_methods_names[i].len == 0) {
+            continue;
+        }
+
         if (m & conf->auth_methods) {
             p = ngx_cpymem(p, ngx_mail_pop3_auth_methods_names[i].data,
                            ngx_mail_pop3_auth_methods_names[i].len);
diff --git a/src/os/unix/ngx_process.c b/src/os/unix/ngx_process.c
index 24a63fb..2d37e21 100644
--- a/src/os/unix/ngx_process.c
+++ b/src/os/unix/ngx_process.c
@@ -306,7 +306,7 @@
 }
 
 
-void
+static void
 ngx_signal_handler(int signo)
 {
     char            *action;
diff --git a/src/os/unix/ngx_process_cycle.c b/src/os/unix/ngx_process_cycle.c
index 5c4e21d..1710ea8 100644
--- a/src/os/unix/ngx_process_cycle.c
+++ b/src/os/unix/ngx_process_cycle.c
@@ -738,12 +738,8 @@
     for ( ;; ) {
 
         if (ngx_exiting) {
-            ngx_event_cancel_timers();
-
-            if (ngx_event_timer_rbtree.root == ngx_event_timer_rbtree.sentinel)
-            {
+            if (ngx_event_no_timers_left() == NGX_OK) {
                 ngx_log_error(NGX_LOG_NOTICE, cycle->log, 0, "exiting");
-
                 ngx_worker_process_exit(cycle);
             }
         }
@@ -754,7 +750,6 @@
 
         if (ngx_terminate) {
             ngx_log_error(NGX_LOG_NOTICE, cycle->log, 0, "exiting");
-
             ngx_worker_process_exit(cycle);
         }
 
@@ -766,6 +761,7 @@
 
             if (!ngx_exiting) {
                 ngx_exiting = 1;
+                ngx_set_shutdown_timer(cycle);
                 ngx_close_listening_sockets(cycle);
                 ngx_close_idle_connections(cycle);
             }
diff --git a/src/os/win32/ngx_process_cycle.c b/src/os/win32/ngx_process_cycle.c
index 99fec54..293b967 100644
--- a/src/os/win32/ngx_process_cycle.c
+++ b/src/os/win32/ngx_process_cycle.c
@@ -782,11 +782,7 @@
     while (!ngx_quit) {
 
         if (ngx_exiting) {
-            ngx_event_cancel_timers();
-
-            if (ngx_event_timer_rbtree.root
-                == ngx_event_timer_rbtree.sentinel)
-            {
+            if (ngx_event_no_timers_left() == NGX_OK) {
                 break;
             }
         }
@@ -804,6 +800,7 @@
 
             if (!ngx_exiting) {
                 ngx_exiting = 1;
+                ngx_set_shutdown_timer(cycle);
                 ngx_close_listening_sockets(cycle);
                 ngx_close_idle_connections(cycle);
             }
diff --git a/src/stream/ngx_stream_log_module.c b/src/stream/ngx_stream_log_module.c
index a4b67d0..6b29340 100644
--- a/src/stream/ngx_stream_log_module.c
+++ b/src/stream/ngx_stream_log_module.c
@@ -641,23 +641,10 @@
 static void
 ngx_stream_log_flush_handler(ngx_event_t *ev)
 {
-    ngx_open_file_t       *file;
-    ngx_stream_log_buf_t  *buffer;
-
     ngx_log_debug0(NGX_LOG_DEBUG_EVENT, ev->log, 0,
                    "stream log buffer flush handler");
 
-    if (ev->timedout) {
-        ngx_stream_log_flush(ev->data, ev->log);
-        return;
-    }
-
-    /* cancel the flush timer for graceful shutdown */
-
-    file = ev->data;
-    buffer = file->data;
-
-    buffer->event = NULL;
+    ngx_stream_log_flush(ev->data, ev->log);
 }