arm_compute v19.02

Change-Id: I853a3ecf38f206da13c1b03640c8adf73c20477c
diff --git a/docs/00_introduction.dox b/docs/00_introduction.dox
index 8982e77..8f74a75 100644
--- a/docs/00_introduction.dox
+++ b/docs/00_introduction.dox
@@ -238,6 +238,89 @@
 
 @subsection S2_2_changelog Changelog
 
+v19.02 Public major release
+ - Various bug fixes.
+ - Various optimisations.
+ - New Neon kernels / functions:
+    - @ref NETileKernel / @ref NETile
+    - @ref NEFuseBatchNormalizationKernel / @ref NEFuseBatchNormalization
+    - @ref NEElementwiseOperationKernel
+    - @ref NEElementwiseMax
+    - @ref NEElementwiseMin
+    - @ref NEElementwiseSquaredDiff
+    - @ref NESelectKernel / @ref NESelect
+    - @ref NESplit
+    - @ref NESlice
+    - @ref NEUnstack
+    - @ref NEStridedSliceKernel / @ref NEStridedSlice
+    - @ref NEElementwiseUnaryKernel
+    - @ref NERsqrtLayer
+    - @ref NEExpLayer
+    - @ref NEReverseKernel / @ref NEReverse
+    - @ref NEArgMinMaxLayer
+    - @ref NEStackLayerKernel / @ref NEStackLayer
+    - @ref NERangeKernel / @ref NERange
+    - @ref NEPadLayer
+    - @ref NEMemsetKernel
+    - @ref NEGatherKernel / @ref NEGather
+    - @ref NEElementwiseComparison
+    - @ref NEElementwiseComparisonStatic
+    - @ref NEComparisonOperationKernel
+    - @ref NEElementwiseDivision
+ - New OpenCL kernels / functions:
+    - @ref CLSelectKernel / @ref CLSelect
+    - @ref CLTileKernel / @ref CLTile
+    - @ref CLComparisonKernel / @ref CLComparison
+    - @ref CLArgMinMaxLayer
+    - @ref CLElementwiseMax
+    - @ref CLElementwiseMin
+    - @ref CLElementwiseSquaredDiff
+    - @ref CLStackLayerKernel / @ref CLStackLayer
+    - @ref CLReverse / @ref CLReverseKernel
+    - @ref CLRsqrtLayer
+    - @ref CLExpLayer
+    - @ref CLElementWiseUnaryLayerKernel
+    - @ref CLGEMMReshapeLHSMatrixKernel
+    - @ref CLGEMMReshapeRHSMatrixKernel
+    - @ref CLGEMMMatrixMultiplyReshapedKernel
+    - @ref CLRangeKernel / @ref CLRange
+    - @ref CLUnstack
+    - @ref CLGatherKernel / @ref CLGather
+    - @ref CLGEMMLowpMatrixMultiplyReshapedKernel
+ - New CPP kernels / functions:
+    - @ref CPPDetectionOutputLayer
+    - @ref CPPTopKV / @ref CPPTopKVKernel
+ - Added new examples:
+    - graph_ssd_mobilenet.cpp
+    - graph_mobilenet_v2.cpp
+    - graph_resnet12.cpp
+    - graph_srcnn955.cpp
+    - graph_vgg_vdsr.cpp
+    - graph_inception_resnet_v1.cpp
+ - Add 4D tensors support to
+    - @ref NESoftmaxLayer
+ - Fused activation in @ref CLWinogradConvolutionLayer
+ - Extented @ref NEPermute to support more cases
+ - Added NEON/SVE GEMM Hybrid kernels
+ - Added u8 and s8 hybrid assembly kernels
+ - Introduced GEMM strategy name in NEGEMMAssemblyWrapper
+ - Improved @ref CLTuner
+ - Fused the bias addition within @ref CLGEMM
+ - Added support for QASYMM8 LOGISTIC activation in @ref NEActivationLayer
+ - Added NHWC data layout support to:
+    - @ref NEScale for F16
+    - @ref CLNormalizationLayer IN_MAP_2D for FP32/FP16
+    - @ref NEL2NormalizeLayer for FP32/FP16
+    - @ref NENormalizationLayer IN_MAP_2D for FP32/FP16
+    - @ref CLROIAlignLayer
+    - @ref CLGenerateProposalsLayer
+ - Added QASYMM8 support to the following kernels:
+    - @ref NEArithmeticAdditionKernel
+    - @ref NEScale
+ - Added new tests and improved validation and benchmarking suites.
+ - Deprecated functions/interfaces
+    - Usage of inner_border_right and inner_border_top has been deprecated in @ref CLDeconvolutionLayer and @ref NEDeconvolutionLayer
+
 v18.11 Public major release
  - Various bug fixes.
  - Various optimisations.
@@ -538,7 +621,7 @@
     - @ref NEReshapeLayerKernel / @ref NEReshapeLayer
 
  - New OpenCL kernels / functions:
-    - @ref CLDepthwiseConvolutionLayer3x3NCHWKernel @ref CLDepthwiseConvolutionLayer3x3NHWCKernel @ref CLDepthwiseIm2ColKernel @ref CLDepthwiseVectorToTensorKernel @ref CLDepthwiseWeightsReshapeKernel / @ref CLDepthwiseConvolutionLayer3x3 @ref CLDepthwiseConvolutionLayer @ref CLDepthwiseSeparableConvolutionLayer
+    - @ref CLDepthwiseConvolutionLayer3x3NCHWKernel @ref CLDepthwiseConvolutionLayer3x3NHWCKernel @ref CLDepthwiseIm2ColKernel @ref CLDepthwiseVectorToTensorKernel CLDepthwiseWeightsReshapeKernel / @ref CLDepthwiseConvolutionLayer3x3 @ref CLDepthwiseConvolutionLayer @ref CLDepthwiseSeparableConvolutionLayer
     - @ref CLDequantizationLayerKernel / @ref CLDequantizationLayer
     - @ref CLDirectConvolutionLayerKernel / @ref CLDirectConvolutionLayer
     - @ref CLFlattenLayer
@@ -960,10 +1043,8 @@
 - Download the NDK r17b from here: https://developer.android.com/ndk/downloads/index.html
 - Make sure you have Python 2 installed on your machine.
 - Generate the 32 and/or 64 toolchains by running the following commands:
-<!-- Leave 2 blank lines here or the formatting of the commands below gets messed up --!>
 
 
-<!-- End of the 2 blank lines --!>
 	$NDK/build/tools/make_standalone_toolchain.py --arch arm64 --install-dir $MY_TOOLCHAINS/aarch64-linux-android-ndk-r17b --stl libc++ --api 21
 	$NDK/build/tools/make_standalone_toolchain.py --arch arm --install-dir $MY_TOOLCHAINS/arm-linux-android-ndk-r17b --stl libc++ --api 21
 
diff --git a/docs/03_scripts.dox b/docs/03_scripts.dox
index 11deea2..6b71590 100644
--- a/docs/03_scripts.dox
+++ b/docs/03_scripts.dox
@@ -114,5 +114,60 @@
 
 The arm_compute::utils::load_trained_data shows how one could load
 the weights and biases into tensor from the .npy file by the help of Accessor.
+
+@section tf_frozen_model_extractor Extract data from pre-trained frozen tensorflow model
+
+The script tf_frozen_model_extractor.py extracts trainable parameters (e.g. values of weights and biases) from a
+frozen trained Tensorflow model.
+
+@subsection tensorflow_frozen_how_to How to use the script
+
+Install Tensorflow and NumPy.
+
+Download the pre-trained Tensorflow model and freeze the model using the architecture and the checkpoint file.
+
+Run tf_frozen_model_extractor.py with
+
+        python tf_frozen_model_extractor -m <path_to_frozen_pb_model_file> -d <path_to_store_parameters>
+
+For example, to extract the data from pre-trained Tensorflow model to binary files:
+
+        python tf_frozen_model_extractor -m /path/to/inceptionv3.pb -d ./data
+
+@subsection tensorflow_frozen_result What is the expected output from the script
+
+If the script runs successfully, it prints the names and shapes of each parameter onto the standard output and generates
+ *.npy files containing the weights and biases of each layer.
+
+The arm_compute::utils::load_trained_data shows how one could load
+the weights and biases into tensor from the .npy file by the help of Accessor.
+
+@section validate_examples Validating examples
+Using one of the provided scripts will generate files containing the trainable parameters.
+
+You can validate a given graph example on a list of inputs by running:
+
+    LD_LIBRARY_PATH=lib ./<graph_example> --validation-range='<validation_range>' --validation-file='<validation_file>' --validation-path='/path/to/test/images/' --data='/path/to/weights/'
+
+e.g:
+
+LD_LIBRARY_PATH=lib ./bin/graph_alexnet --target=CL --layout=NHWC --type=F32 --threads=4 --validation-range='16666,24998' --validation-file='val.txt' --validation-path='images/' --data='data/'
+
+where:
+    validation file is a plain document containing a list of images along with their expected label value.
+    e.g:
+
+        val_00000001.JPEG 65
+        val_00000002.JPEG 970
+        val_00000003.JPEG 230
+        val_00000004.JPEG 809
+        val_00000005.JPEG 516
+
+    --validation-range is the index range of the images within the validation file you want to check:
+    e.g:
+
+       --validation-range='100,200' will validate 100 images starting from 100th one in the validation file.
+
+    This can be useful when parallelizing the validation process is needed.
 */
 }
\ No newline at end of file
diff --git a/docs/05_functions_list.dox b/docs/05_functions_list.dox
index 9848307..e82e472 100644
--- a/docs/05_functions_list.dox
+++ b/docs/05_functions_list.dox
@@ -1,5 +1,5 @@
 ///
-/// Copyright (c) 2018 ARM Limited.
+/// Copyright (c) 2018-2019 ARM Limited.
 ///
 /// SPDX-License-Identifier: MIT
 ///
@@ -34,64 +34,80 @@
 - @ref IFunction
     - @ref INESimpleFunction
         - @ref NEAbsoluteDifference
+        - @ref NEArithmeticAddition
+        - @ref NEArithmeticSubtraction
+        - @ref NEBox3x3
+        - @ref NEConvolution3x3
+        - @ref NEConvolutionRectangle
+        - @ref NEDilate
+        - @ref NEElementwiseComparison
+        - @ref NEElementwiseComparisonStatic
+        - @ref NEElementwiseDivision
+        - @ref NEElementwiseMax
+        - @ref NEElementwiseMin
+        - @ref NEElementwiseSquaredDiff
+        - @ref NEErode
+        - @ref NEExpLayer
+        - @ref NEGaussian3x3
+        - @ref NEIntegralImage
+        - @ref NEMedian3x3
+        - @ref NENonLinearFilter
+        - @ref NENonMaximaSuppression3x3
+        - @ref NEPixelWiseMultiplication
+        - @ref NERemap
+        - @ref NERsqrtLayer
+        - @ref NEScharr3x3
+        - @ref NESelect
+        - @ref NESobel3x3
+        - @ref NEStridedSlice
+        - @ref NEWarpAffine
+        - @ref NEWarpPerspective
+    - @ref INESimpleFunctionNoBorder
         - @ref NEAccumulate
         - @ref NEAccumulateSquared
         - @ref NEAccumulateWeighted
         - @ref NEActivationLayer
-        - @ref NEArithmeticAddition
-        - @ref NEArithmeticSubtraction
         - @ref NEBitwiseAnd
         - @ref NEBitwiseNot
         - @ref NEBitwiseOr
         - @ref NEBitwiseXor
-        - @ref NEBox3x3
         - @ref NEChannelCombine
         - @ref NEChannelExtract
         - @ref NEChannelShuffleLayer
         - @ref NECol2Im
         - @ref NEColorConvert
-        - @ref NEConvolution3x3
-        - @ref NEConvolutionRectangle
         - @ref NECopy
         - @ref NEDepthConvertLayer
-        - @ref NEDilate
-        - @ref NEErode
         - @ref NEFlattenLayer
         - @ref NEFloor
         - @ref NEFullyConnectedLayerReshapeWeights
+        - @ref NEGather
         - @ref NEGEMMInterleave4x4
         - @ref NEGEMMLowpQuantizeDownInt32ToUint8Scale
         - @ref NEGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPoint
         - @ref NEGEMMTranspose1xW
-        - @ref NEGaussian3x3
         - @ref NEHOGDetector
-        - @ref NEIntegralImage
         - @ref NEMagnitude
-        - @ref NEMedian3x3
-        - @ref NENonLinearFilter
-        - @ref NENonMaximaSuppression3x3
         - @ref NEPermute
         - @ref NEPhase
-        - @ref NEPixelWiseMultiplication
         - @ref NEPriorBoxLayer
-        - @ref NERemap
         - @ref NEReorgLayer
         - @ref NEReshapeLayer
-        - @ref NEScharr3x3
-        - @ref NESobel3x3
+        - @ref NEReverse
+        - @ref NESlice
         - @ref NETableLookup
         - @ref NEThreshold
+        - @ref NETile
         - @ref NETranspose
-        - @ref NEWarpAffine
-        - @ref NEWarpPerspective
         - @ref NEYOLOLayer
+    - @ref NEArgMinMaxLayer
     - @ref NEBatchNormalizationLayer
     - @ref NECannyEdge
     - @ref NEConcatenateLayer
     - @ref NEConvertFullyConnectedWeights
     - @ref NEConvolutionLayer
     - @ref NEConvolutionLayerReshapeWeights
-    - @ref NEConvolutionSquare&lt;matrix_size&gt;
+    - @ref NEConvolutionSquare &lt;matrix_size&gt;
     - @ref NEDeconvolutionLayer
     - @ref NEDepthConcatenateLayer
     - @ref NEDepthwiseConvolutionLayer
@@ -104,42 +120,48 @@
     - @ref NEFastCorners
     - @ref NEFillBorder
     - @ref NEFullyConnectedLayer
+    - @ref NEFuseBatchNormalization
+    - @ref NEGaussian5x5
+    - @ref NEGaussianPyramid
+        - @ref NEGaussianPyramidHalf
+        - @ref NEGaussianPyramidOrb
     - @ref NEGEMM
     - @ref NEGEMMAssemblyDispatch
     - @ref NEGEMMConvolutionLayer
     - @ref NEGEMMInterleavedWrapper
     - @ref NEGEMMLowpAssemblyMatrixMultiplyCore
     - @ref NEGEMMLowpMatrixMultiplyCore
-    - @ref NEGaussian5x5
-    - @ref NEGaussianPyramid
-        - @ref NEGaussianPyramidHalf
-        - @ref NEGaussianPyramidOrb
+    - @ref NEHarrisCorners
+    - @ref NEHistogram
     - @ref NEHOGDescriptor
     - @ref NEHOGGradient
     - @ref NEHOGMultiDetection
-    - @ref NEHarrisCorners
-    - @ref NEHistogram
     - @ref NEIm2Col
     - @ref NEL2NormalizeLayer
-    - @ref NELSTMLayer
     - @ref NELaplacianPyramid
     - @ref NELaplacianReconstruct
     - @ref NELocallyConnectedLayer
+    - @ref NELSTMLayer
     - @ref NEMeanStdDev
     - @ref NEMinMaxLocation
     - @ref NENormalizationLayer
     - @ref NEOpticalFlow
+    - @ref NEPadLayer
     - @ref NEPoolingLayer
     - @ref NEQuantizationLayer
-    - @ref NERNNLayer
-    - @ref NEROIPoolingLayer
+    - @ref NERange
     - @ref NEReduceMean
     - @ref NEReductionOperation
+    - @ref NERNNLayer
+    - @ref NEROIPoolingLayer
     - @ref NEScale
     - @ref NESimpleAssemblyFunction
     - @ref NESobel5x5
     - @ref NESobel7x7
     - @ref NESoftmaxLayer
+    - @ref NESplit
+    - @ref NEStackLayer
+    - @ref NEUnstack
     - @ref NEUpsampleLayer
     - @ref NEWidthConcatenateLayer
     - @ref NEWinogradConvolutionLayer
@@ -153,7 +175,7 @@
     - @ref CLConcatenateLayer
     - @ref CLConvolutionLayer
     - @ref CLConvolutionLayerReshapeWeights
-    - @ref CLConvolutionSquare&lt;matrix_size&gt;
+    - @ref CLConvolutionSquare &lt;matrix_size&gt;
     - @ref CLDeconvolutionLayer
     - @ref CLDeconvolutionLayerUpsample
     - @ref CLDepthConcatenateLayer
@@ -166,26 +188,26 @@
     - @ref CLFastCorners
     - @ref CLFullyConnectedLayer
     - @ref CLFuseBatchNormalization
-    - @ref CLGEMM
-    - @ref CLGEMMConvolutionLayer
-    - @ref CLGEMMLowpMatrixMultiplyCore
     - @ref CLGaussian5x5
     - @ref CLGaussianPyramid
         - @ref CLGaussianPyramidHalf
         - @ref CLGaussianPyramidOrb
+    - @ref CLGEMM
+    - @ref CLGEMMConvolutionLayer
+    - @ref CLGEMMLowpMatrixMultiplyCore
     - @ref CLGenerateProposalsLayer
+    - @ref CLHarrisCorners
+    - @ref CLHistogram
     - @ref CLHOGDescriptor
     - @ref CLHOGDetector
     - @ref CLHOGGradient
     - @ref CLHOGMultiDetection
-    - @ref CLHarrisCorners
-    - @ref CLHistogram
     - @ref CLIntegralImage
     - @ref CLL2NormalizeLayer
-    - @ref CLLSTMLayer
     - @ref CLLaplacianPyramid
     - @ref CLLaplacianReconstruct
     - @ref CLLocallyConnectedLayer
+    - @ref CLLSTMLayer
     - @ref CLMeanStdDev
     - @ref CLMinMaxLocation
     - @ref CLNormalizationLayer
@@ -193,14 +215,16 @@
     - @ref CLOpticalFlow
     - @ref CLPadLayer
     - @ref CLQuantizationLayer
-    - @ref CLRNNLayer
     - @ref CLReduceMean
     - @ref CLReductionOperation
+    - @ref CLRNNLayer
     - @ref CLSobel5x5
     - @ref CLSobel7x7
     - @ref CLSoftmaxLayer
     - @ref CLSpaceToBatchLayer
     - @ref CLSplit
+    - @ref CLStackLayer
+    - @ref CLUnstack
     - @ref CLUpsampleLayer
     - @ref CLWidthConcatenateLayer
     - @ref CLWinogradConvolutionLayer
@@ -210,6 +234,7 @@
         - @ref CLAccumulateSquared
         - @ref CLAccumulateWeighted
         - @ref CLActivationLayer
+        - @ref CLArgMinMaxLayer
         - @ref CLArithmeticAddition
         - @ref CLArithmeticDivision
         - @ref CLArithmeticSubtraction
@@ -219,10 +244,14 @@
         - @ref CLBitwiseXor
         - @ref CLBoundingBoxTransform
         - @ref CLBox3x3
+        - @ref CLCast
         - @ref CLChannelCombine
         - @ref CLChannelExtract
         - @ref CLChannelShuffleLayer
         - @ref CLColorConvert
+        - @ref CLComparison
+        - @ref CLComparisonStatic
+        - @ref CLComputeAllAnchors
         - @ref CLConvertFullyConnectedWeights
         - @ref CLConvolution3x3
         - @ref CLConvolutionRectangle
@@ -230,17 +259,22 @@
         - @ref CLDepthConvertLayer
         - @ref CLDerivative
         - @ref CLDilate
+        - @ref CLElementwiseMax
+        - @ref CLElementwiseMin
+        - @ref CLElementwiseSquaredDiff
         - @ref CLErode
+        - @ref CLExpLayer
         - @ref CLFillBorder
         - @ref CLFlattenLayer
         - @ref CLFloor
         - @ref CLFullyConnectedLayerReshapeWeights
+        - @ref CLGather
+        - @ref CLGaussian3x3
         - @ref CLGEMMInterleave4x4
         - @ref CLGEMMLowpQuantizeDownInt32ToUint8Scale
         - @ref CLGEMMLowpQuantizeDownInt32ToUint8ScaleByFixedPoint
         - @ref CLGEMMLowpQuantizeDownInt32ToUint8ScaleByFloat
         - @ref CLGEMMTranspose1xW
-        - @ref CLGaussian3x3
         - @ref CLMagnitude
         - @ref CLMedian3x3
         - @ref CLNonLinearFilter
@@ -250,18 +284,23 @@
         - @ref CLPixelWiseMultiplication
         - @ref CLPoolingLayer
         - @ref CLPriorBoxLayer
-        - @ref CLROIAlignLayer
-        - @ref CLROIPoolingLayer
+        - @ref CLRange
         - @ref CLRemap
         - @ref CLReorgLayer
         - @ref CLReshapeLayer
+        - @ref CLReverse
+        - @ref CLROIAlignLayer
+        - @ref CLROIPoolingLayer
+        - @ref CLRsqrtLayer
         - @ref CLScale
         - @ref CLScharr3x3
+        - @ref CLSelect
         - @ref CLSlice
         - @ref CLSobel3x3
         - @ref CLStridedSlice
         - @ref CLTableLookup
         - @ref CLThreshold
+        - @ref CLTile
         - @ref CLTranspose
         - @ref CLWarpAffine
         - @ref CLWarpPerspective
@@ -296,5 +335,16 @@
         - @ref GCScale
         - @ref GCTensorShift
         - @ref GCTranspose
+
+@section S5_4 CPP functions
+
+ - @ref IFunction
+    - @ref CPPDetectionOutputLayer
+    - @ref ICPPSimpleFunction
+        - @ref CPPBoxWithNonMaximaSuppressionLimit
+        - @ref CPPPermute
+        - @ref CPPTopKV
+        - @ref CPPUpsample
+
 */
 } // namespace
diff --git a/docs/Doxyfile b/docs/Doxyfile
index d2d728d..081d497 100644
--- a/docs/Doxyfile
+++ b/docs/Doxyfile
@@ -1,4 +1,4 @@
-# Doxyfile 1.8.9.1
+# Doxyfile 1.8.15
 
 # This file describes the settings to be used by the documentation system
 # doxygen (www.doxygen.org) for a project.
@@ -38,7 +38,7 @@
 # could be handy for archiving the generated documentation or if some version
 # control system is used.
 
-PROJECT_NUMBER         = 18.11
+PROJECT_NUMBER         = 19.02
 
 # Using the PROJECT_BRIEF tag one can provide an optional one line description
 # for a project that appears at the top of each page and should give viewer a
@@ -1180,7 +1180,7 @@
 # list). For an example see the documentation.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
-HTML_EXTRA_STYLESHEET  = 
+HTML_EXTRA_STYLESHEET  = ./docs/stylesheet.css
 
 # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
 # other source files which should be copied to the HTML output directory. Note
diff --git a/docs/header.html b/docs/header.html
index 1a45721..5dc7a09 100644
--- a/docs/header.html
+++ b/docs/header.html
@@ -1,4 +1,5 @@
-<!-- HTML header for doxygen 1.8.9.1-->
+<!-- HTML header for doxygen 1.8.15-->
+<!-- Remember to use version doxygen 1.8.15 +-->
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
@@ -25,12 +26,10 @@
 <table cellspacing="0" cellpadding="0">
  <tbody>
  <tr style="height: 56px;">
-  <!--BEGIN PROJECT_LOGO-->
-  <td id="projectlogo"><img alt="Logo" src="$relpath^$projectlogo"/></td>
-  <!--END PROJECT_LOGO-->
+  <img alt="Compute Library" src="https://raw.githubusercontent.com/ARM-software/ComputeLibrary/gh-pages/ACL_logo.png" style="max-width: 100%;margin-top: 15px;margin-left: 10px"/>
   <!--BEGIN PROJECT_NAME-->
   <td style="padding-left: 0.5em;">
-   <div id="projectname">$projectname
+   <div id="projectname">
    <!--BEGIN PROJECT_NUMBER-->&#160;<span id="projectnumber">$projectnumber</span><!--END PROJECT_NUMBER-->
    </div>
    <!--BEGIN PROJECT_BRIEF--><div id="projectbrief">$projectbrief</div><!--END PROJECT_BRIEF-->
diff --git a/docs/stylesheet.css b/docs/stylesheet.css
new file mode 100644
index 0000000..a692f51
--- /dev/null
+++ b/docs/stylesheet.css
@@ -0,0 +1,221 @@
+/* Changes to tabs.css */
+
+.tabs, .tabs2, .tabs3 {
+    /* box-shadow: 0px 5px 30px rgba(0, 0, 0, 0.3); */
+    position: relative;
+}
+
+.tablist li {
+    line-height: 32px;
+}
+
+.tablist a {
+    color: #FFFFFF;
+    text-shadow: none;
+}
+
+.tablist a:hover {
+    text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+    text-decoration: none;
+    background-repeat: no-repeat;
+    background-image: url('tab_s.png');;
+}
+
+.tablist li.current a {
+    text-shadow: none;
+}
+
+/* Changes to navtree.css */
+
+#nav-tree .selected {
+    background-image: url('tab_a_nav.png');
+    border-radius: 15px;
+    text-shadow: none;
+}
+
+#nav-tree .label a {
+    color: #444444;
+}
+
+#nav-tree .selected a {
+    color: #007fa3;
+    font-weight: bold
+}
+
+#nav-tree {
+    background-color: #fafafa;
+}
+
+#doc-content {
+    background-color: #fafafa;
+}
+
+.ui-resizable-e {
+    background: none;
+    background-color : lightgray;
+    width:4px;
+}
+
+#nav-tree {
+    background-image: none;
+    background-color: #fafafa;
+}
+
+
+/* Changes to doxygen.css */
+
+h2.groupheader {
+    border-bottom: 1px solid #979797;
+    color: #4C4C4C;
+}
+
+h1, h2, h3, h4, h5, h6 {
+    font-weight : normal;
+}
+
+h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
+    text-shadow: 0 0 15px #007fa3;
+}
+
+div.qindex, div.navtab{
+    background-color: #EBEBEB;
+    border: 1px solid #B4B4B4;
+}
+
+div.qindex, div.navpath {
+    position : relative;
+}
+
+a {
+    color: #444444;
+}
+
+.contents a:visited {
+    color: #666666;
+}
+
+a.qindexHL {
+    background-color: #AFAFAf;
+    border: 1px double #9D9D9D;
+}
+
+a.code, a.code:visited {
+    color: #444444;
+}
+
+a.codeRef, a.codeRef:visited {
+    color: #444444;
+}
+
+div.fragment {
+    background-color: #FCFCFC;
+    border: 1px solid #CFCFCF;
+}
+
+div.line.glow {
+    background-color: #007fa3;
+}
+
+body {
+    background-color: #EEE;
+}
+
+.memberdecls td.glow, .fieldtable tr.glow {
+    background-color: #007fa3;
+}
+
+.memitem.glow {
+    /* box-shadow: 0 0 15px orange; */
+}
+
+.memproto, dl.reflist dt {
+    border-top: 1px solid #B8B8B8;
+    border-left: 1px solid #B8B8B8;
+    border-right: 1px solid #B8B8B8;
+    color: #333333;
+    background-color: #E2E2E2;
+}
+
+.memdoc, dl.reflist dd {
+    border-bottom: 1px solid #B8B8B8;
+    border-left: 1px solid #B8B8B8;
+    border-right: 1px solid #B8B8B8;
+    background-color: #FCFCFC;
+}
+
+table.doxtable td, table.doxtable th {
+    border: 1px solid #2D2D2D;
+}
+
+table.doxtable th {
+    background-color: #373737;
+}
+
+.navpath li.navelem a
+{
+    color: white;
+    text-shadow: none;
+}
+
+.navpath li.navelem a:hover
+{
+    color:white;
+    text-shadow : 0px 1px 1px rgba(0, 0, 0, 1.0);
+}
+
+dl.note
+{
+    border-color: #f68a33;
+}
+
+#projectlogo
+{
+    width:150px;
+    text-align:left;
+}
+
+#projectname
+{
+    font: 200% Tahoma, Arial,sans-serif;
+    color : #676767;
+    overflow:hidden;
+}
+
+#projectname #armdevcenter
+{
+    float:right;
+    padding-right: 20px;
+}
+
+#eula
+{
+    font-size: 80%;
+    font-weight: bold;
+}
+
+#titlearea
+{
+    background-color : white;
+    border-top: 5px solid white;
+    border-left: 10px solid white;
+    border-bottom: none;
+}
+
+a.copyright {
+    color: #FFFFFF;
+}
+
+a.copyright:hover {
+    color: #FFFFFF;
+}
+
+a.copyright:visited {
+    color: #FFFFFF;
+}
+
+div.toc h3 {
+    font: bold 12px/1.2 Arial,FreeSans,sans-serif;
+    color: #007fa3;
+    border-bottom: 0 none;
+    margin: 0;
+}
\ No newline at end of file