am fb24dcef: am eb9a57f5: Merge "Use python markdown library directly"

* commit 'fb24dcef037f24c033ba27d95e291183b8ece223':
  Use python markdown library directly
diff --git a/src/compatibility/4.0/versions.md b/src/compatibility/4.0/versions.md
index 1b70297..895b820 100644
--- a/src/compatibility/4.0/versions.md
+++ b/src/compatibility/4.0/versions.md
@@ -34,3 +34,5 @@
 - 4.0.1
 
 - 4.0.3
+
+- 4.0.4
diff --git a/src/compatibility/downloads.md b/src/compatibility/downloads.md
index 7072e65..fb7c7a8 100644
--- a/src/compatibility/downloads.md
+++ b/src/compatibility/downloads.md
@@ -26,8 +26,8 @@
 Android 4.0.3 is found in the 'android-4.0.3_r1' branch in the open-source tree.
 
 - [Android 4.0 Compatibility Definition Document (CDD)](4.0/android-4.0-cdd.pdf)
-- [Android 4.0.3 R2 Compatibility Test Suite (CTS)](https://dl.google.com/dl/android/cts/android-cts-4.0.3_r2-linux_x86-arm.zip)
-- [Android 4.0.3 R1 CTS Verifier](https://dl.google.com/dl/android/cts/android-cts-verifier-4.0.3_r1-linux_x86-arm.zip)
+- [Android 4.0.3 R3 Compatibility Test Suite (CTS)](https://dl.google.com/dl/android/cts/android-cts-4.0.3_r3-linux_x86-arm.zip)
+- [Android 4.0.3 R2 CTS Verifier](https://dl.google.com/dl/android/cts/android-cts-verifier-4.0.3_r2-linux_x86-arm.zip)
 
 ## Android 2.3 ##
 
@@ -36,8 +36,8 @@
 the open-source tree.
 
 - [Android 2.3 Compatibility Definition Document (CDD)](2.3/android-2.3.3-cdd.pdf)
-- [Android 2.3 R12 Compatibility Test Suite (CTS)](https://dl.google.com/dl/android/cts/android-cts-2.3_r12-linux_x86-arm.zip)
-- [Android 2.3 R2 CTS Verifier](https://dl.google.com/dl/android/cts/android-cts-verifier-2.3_r2-linux_x86-armv5.zip)
+- [Android 2.3 R13 Compatibility Test Suite (CTS)](https://dl.google.com/dl/android/cts/android-cts-2.3_r13-linux_x86-arm.zip)
+- [Android 2.3 R3 CTS Verifier](https://dl.google.com/dl/android/cts/android-cts-verifier-2.3_r3-linux_x86-armv5.zip)
 
 ## Android 2.2 ##
 
diff --git a/src/index.md b/src/index.md
index 54319bf..0ebaad9 100644
--- a/src/index.md
+++ b/src/index.md
@@ -28,14 +28,12 @@
 and researchers to develop custom builds. For information on how to obtain the
 software, visit our [Getting the Source](source/downloading.html) page.
 
-### Compatibility Definition for Android 2.3 ###
+### Compatibility Definition for Android 4.0 ###
 
-The Compatibility Definition Document for Android 2.3.3 has been published. 
-Android 2.3 allows device manufacturers to use the Android source code to ship
-a significantly wider variety of devices, including devices with extra-large
-screens, such as tablets. Android 2.3.3 adds enhanced Near-Field
-Communications support to the Android APIs. For more information, visit the 
-[Compatibility](compatibility/index.html) page.
+The Compatibility Definition Document for Android 4.0 has been published. 
+Android 4.0 allows device manufacturers to use the Android source code to ship
+a significantly wider variety of devices including phones and tablets. 
+For more information, visit the [Compatibility](compatibility/index.html) page.
 
 </div>
 
diff --git a/src/source/build-numbers.md b/src/source/build-numbers.md
index b0d581b..06a9559 100644
--- a/src/source/build-numbers.md
+++ b/src/source/build-numbers.md
@@ -112,7 +112,9 @@
 IML77  | android-4.0.3_r1.1 |
 IMM76  | android-4.0.4_r1   |
 IMM76D | android-4.0.4_r1.1 | Nexus S, Nexus S 4G, Galaxy Nexus
-IMM76I | android-4.0.4_r1.2 | Galaxy Nexus, latest IceCreamSandwich version
+IMM76I | android-4.0.4_r1.2 | Galaxy Nexus
+IMM76K | android-4.0.4_r2   | Galaxy Nexus
+IMM76L | android-4.0.4_r2.1 | latest IceCreamSandwich version
 
 The branches froyo, gingerbread, ics-mr0, ics-mr1, represent development
 branches that do not exactly match configurations that were tested
diff --git a/src/source/building-devices.md b/src/source/building-devices.md
index bf3132a..9b69575 100644
--- a/src/source/building-devices.md
+++ b/src/source/building-devices.md
@@ -145,10 +145,10 @@
 
 Device   | Branch                       | Build configuration
 ---------|------------------------------|------------------------
-maguro   | android-4.0.4_r1.2 or master | full_maguro-userdebug
+maguro   | android-4.0.4_r2.1 or master | full_maguro-userdebug
 panda    | master                       | full_panda-userdebug
-wingray  | android-4.0.4_r1.2 or master | full_wingray-userdebug
-crespo   | android-4.0.4_r1.2 or master | full_crespo-userdebug
+wingray  | android-4.0.4_r2.1 or master | full_wingray-userdebug
+crespo   | android-4.0.4_r2.1 or master | full_crespo-userdebug
 passion  | android-2.3.7_r1             | full_passion-userdebug
 sapphire | android-2.2.3_r1             | full_sapphire-userdebug
 dream    | android-2.2.3_r1             | full_dream-userdebug
@@ -205,6 +205,8 @@
 4.0.3 (IML74K)  | I9020XXKL1           | I9020XXKI1      | All previous versions
 4.0.4 (IMM76D)  | I9020XXKL1           | I9020XXKI1
 4.0.4 (IMM76I)  | I9020XXKL1           | I9020XXKI1
+4.0.4 (IMM76K)  | I9020XXKL1           | I9020XXKI1
+4.0.4 (IMM76L)  | I9020XXKL1           | I9020XXKI1
 
 Nexus S (850MHz version "UC", i9020a):
 
@@ -218,6 +220,8 @@
 4.0.3 (IML74K)  | I9020XXKL1           | I9020UCKF1      | All previous versions
 4.0.4 (IMM76D)  | I9020XXKL1           | I9020UCKJ1
 4.0.4 (IMM76I)  | I9020XXKL1           | I9020UCKJ1
+4.0.4 (IMM76K)  | I9020XXKL1           | I9020UCKJ1
+4.0.4 (IMM76L)  | I9020XXKL1           | I9020UCKJ1
 
 Nexus S (Korea version "KR", m200):
 
@@ -228,8 +232,10 @@
 2.3.5 (GRJ90)   | I9020XXKA3           | M200KRKC1       | All previous versions
 2.3.6 (GRK39F)  | I9020XXKA3           | M200KRKC1       | All previous versions
 4.0.3 (IML74K)  | I9020XXKL1           | M200KRKC1       | All previous versions
-4.0.4 (IMM76D)  | I9020XXKL1           | M200KRKC1       | Versions from 2.3.6
-4.0.4 (IMM76I)  | I9020XXKL1           | M200KRKC1       | Versions from 2.3.6
+4.0.4 (IMM76D)  | I9020XXKL1           | M200KRKC1
+4.0.4 (IMM76I)  | I9020XXKL1           | M200KRKC1
+4.0.4 (IMM76K)  | I9020XXKL1           | M200KRKC1
+4.0.4 (IMM76L)  | I9020XXKL1           | M200KRKC1
 
 Galaxy Nexus (GSM/HSPA+):
 
@@ -240,6 +246,8 @@
 4.0.3 (IML74K)  | PRIMEKL01            | I9250XXKK6      | All previous versions
 4.0.4 (IMM76D)  | PRIMEKL03            | I9250XXLA02
 4.0.4 (IMM76I)  | PRIMEKL03            | I9250XXLA02
+4.0.4 (IMM76K)  | PRIMEKL03            | I9250XXLA02
+4.0.4 (IMM76L)  | PRIMEKL03            | I9250XXLA02
 
 If you're building a new version of Android, if your Nexus S or
 Galaxy Nexus has
diff --git a/src/source/building-kernels.md b/src/source/building-kernels.md
index 4987654..144a2f4 100644
--- a/src/source/building-kernels.md
+++ b/src/source/building-kernels.md
@@ -52,10 +52,18 @@
     $ git clone https://android.googlesource.com/kernel/samsung.git
     $ git clone https://android.googlesource.com/kernel/tegra.git
 
-The goldfish project contains the kernel sources for the emulated
-platforms. The msm project has the sources for ADP1, ADP2 and
-Nexus One. The omap project is used for PandaBoard and Galaxy Nexus,
-the samsung project for Nexus S, and the tegra project for Xoom.
+  - The `goldfish` project contains the kernel sources for the emulated
+platforms.
+  - The `msm` project has the sources for ADP1, ADP2, Nexus One, and
+can be used as a starting point for work on Qualcomm MSM chipsets.
+  - The `omap` project is used for PandaBoard and Galaxy Nexus, and
+can be used as a starting point for work on TI OMAP chipsets.
+  - The `samsung` project is used for Nexus S and can be used as a
+starting point for work on Samsung Hummingbird chipsets.
+  - The `tegra` project is for Xoom, and can be used as a starting
+point for work on NVIDIA Tegra chipsets.
+  - The `exynos` project can be used as a starting point for work
+on Samsung Exynos chipsets.
 
 ## Downloading a prebuilt gcc ##
 
@@ -80,6 +88,10 @@
 To build the tuna kernel, you may run the previous commands replacing all
 instances of "panda" with "tuna".
 
-The image is output as arch/arm/boot/zImage.  You may copy it as
-device/<vendor>/<name>/kernel or device/ti/panda/kernel in the case of this
+  - The kernel for maguro and toro is `device/samsung/tuna/kernel`
+  - The kernel for crespo and crespo4g is `device/samsung/crespo/kernel`
+  - The kernel for stingray and wingray is `device/moto/wingray/kernel`
+
+The image is output as `arch/arm/boot/zImage`.  You may copy it as
+`device/<vendor>/<name>/kernel` or `device/ti/panda/kernel` in the case of this
 example.
diff --git a/src/source/downloading.md b/src/source/downloading.md
index 40e881b..7fabab5 100644
--- a/src/source/downloading.md
+++ b/src/source/downloading.md
@@ -32,8 +32,8 @@
         $ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
         $ chmod a+x ~/bin/repo
 
- - For version 1.16, the SHA-1 checksum for repo is
- 19ba8290344752da23e00cfb2b26afb43b463fe6
+ - For version 1.17, the SHA-1 checksum for repo is
+ ddd79b6d5a7807e911b524cb223bc3544b661c28
 
 
 ## Initializing a Repo client ##
diff --git a/src/tech/security/index.md b/src/tech/security/index.md
index 4c598a9..2b55206 100644
--- a/src/tech/security/index.md
+++ b/src/tech/security/index.md
@@ -321,7 +321,7 @@
 
 + Address Space Layout Randomization (ASLR) to randomize key locations in memory
 + Hardware-based No eXecute (NX) to prevent code execution on the stack and heap
-+ ProPolice to prevent stack buffer overruns
++ ProPolice to prevent stack buffer overruns (-fstack-protector)
 + safe_iop to reduce integer overflows
 + Extensions to OpenBSD dlmalloc to prevent double free() vulnerabilities and
 to prevent chunk consolidation attacks.  Chunk consolidation attacks are a
@@ -329,6 +329,7 @@
 + OpenBSD calloc to prevent integer overflows during memory allocation
 + Linux mmap_min_addr() to mitigate null pointer dereference privilege
 escalation
++ Format string vulnerability protections (-Wformat-security -Werror=format-security)
 
 ##Rooting of Devices