diff --git a/self-extractors/broadcom/LICENSE b/self-extractors/broadcom/LICENSE
index c100655..259cf32 100644
--- a/self-extractors/broadcom/LICENSE
+++ b/self-extractors/broadcom/LICENSE
@@ -105,25 +105,26 @@
 
    4.  Indemnity
 
-      a.  You agree to indemnify and hold harmless Licensor and its officers,
-          directors, customers, employees and successors and assigns (each an
-          "Indemnified Party") against any and all claims, demands, causes of
-          action, losses, liabilities, damages, costs and expenses, incurred
-          by the Indemnified Party (including but not limited to costs of
-          defense, investigation and reasonable attorney's fees) arising out
-          of, resulting from or related to (i) any software, products,
-          documentation, content, materials or derivative works created or
-          developed by You using the Software which causes an infringement of
-          any patent, copyright, trademark, trade secret, or other property,
-          publicity or privacy rights of any third parties arising in any
-          jurisdiction anywhere in the world, (ii) the download,
-          distribution, installation, storage, execution, use or transfer of
-          such software, products, documentation, content, materials or
-          derivative works by any person or entity, and/or (iii) any breach
-          of this Agreement by You. If requested by an Indemnified Party, You
-          agree to defend such Indemnified Party in connection with any third
-          party claims, demands, or causes of action resulting from, arising
-          out of or in connection with any of the foregoing.
+      a.  You agree to indemnify and hold harmless Licensor and
+          its officers, directors, customers, employees and successors and
+          assigns (each an "Indemnified Party") against any and all claims,
+          demands, causes of action, losses, liabilities, damages, costs and
+          expenses, incurred by the Indemnified Party (including but not
+          limited to costs of defense, investigation and reasonable
+          attorney's fees) arising out of, resulting from or related to
+          (i) any software, products, documentation, content, materials or
+          derivative works created or developed by You using the Software
+          which causes an infringement of any patent, copyright, trademark,
+          trade secret, or other property, publicity or privacy rights of any
+          third parties arising in any jurisdiction anywhere in the world,
+          (ii) the download, distribution, installation, storage, execution,
+          use or transfer of such software, products, documentation, content,
+          materials or derivative works by any person or entity, and/or
+          (iii) any breach of this Agreement by You. If requested by an
+          Indemnified Party, You agree to defend such Indemnified Party in
+          connection with any third party claims, demands, or causes of
+          action resulting from, arising out of or in connection with any of
+          the foregoing.
 
    5.  Limitation of Liability
 
diff --git a/self-extractors/imgtec/LICENSE b/self-extractors/imgtec/LICENSE
index 794146e..2d2b246 100644
--- a/self-extractors/imgtec/LICENSE
+++ b/self-extractors/imgtec/LICENSE
@@ -105,25 +105,26 @@
 
    4.  Indemnity
 
-      a.  You agree to indemnify and hold harmless Licensor and its officers,
-          directors, customers, employees and successors and assigns (each an
-          "Indemnified Party") against any and all claims, demands, causes of
-          action, losses, liabilities, damages, costs and expenses, incurred
-          by the Indemnified Party (including but not limited to costs of
-          defense, investigation and reasonable attorney's fees) arising out
-          of, resulting from or related to (i) any software, products,
-          documentation, content, materials or derivative works created or
-          developed by You using the Software which causes an infringement of
-          any patent, copyright, trademark, trade secret, or other property,
-          publicity or privacy rights of any third parties arising in any
-          jurisdiction anywhere in the world, (ii) the download,
-          distribution, installation, storage, execution, use or transfer of
-          such software, products, documentation, content, materials or
-          derivative works by any person or entity, and/or (iii) any breach
-          of this Agreement by You. If requested by an Indemnified Party, You
-          agree to defend such Indemnified Party in connection with any third
-          party claims, demands, or causes of action resulting from, arising
-          out of or in connection with any of the foregoing.
+      a.  You agree to indemnify and hold harmless Licensor and
+          its officers, directors, customers, employees and successors and
+          assigns (each an "Indemnified Party") against any and all claims,
+          demands, causes of action, losses, liabilities, damages, costs and
+          expenses, incurred by the Indemnified Party (including but not
+          limited to costs of defense, investigation and reasonable
+          attorney's fees) arising out of, resulting from or related to
+          (i) any software, products, documentation, content, materials or
+          derivative works created or developed by You using the Software
+          which causes an infringement of any patent, copyright, trademark,
+          trade secret, or other property, publicity or privacy rights of any
+          third parties arising in any jurisdiction anywhere in the world,
+          (ii) the download, distribution, installation, storage, execution,
+          use or transfer of such software, products, documentation, content,
+          materials or derivative works by any person or entity, and/or
+          (iii) any breach of this Agreement by You. If requested by an
+          Indemnified Party, You agree to defend such Indemnified Party in
+          connection with any third party claims, demands, or causes of
+          action resulting from, arising out of or in connection with any of
+          the foregoing.
 
    5.  Limitation of Liability
 
diff --git a/self-extractors/invensense/LICENSE b/self-extractors/invensense/LICENSE
index 8b3e891..e208dc4 100644
--- a/self-extractors/invensense/LICENSE
+++ b/self-extractors/invensense/LICENSE
@@ -105,25 +105,26 @@
 
    4.  Indemnity
 
-      a.  You agree to indemnify and hold harmless Licensor and its officers,
-          directors, customers, employees and successors and assigns (each an
-          "Indemnified Party") against any and all claims, demands, causes of
-          action, losses, liabilities, damages, costs and expenses, incurred
-          by the Indemnified Party (including but not limited to costs of
-          defense, investigation and reasonable attorney's fees) arising out
-          of, resulting from or related to (i) any software, products,
-          documentation, content, materials or derivative works created or
-          developed by You using the Software which causes an infringement of
-          any patent, copyright, trademark, trade secret, or other property,
-          publicity or privacy rights of any third parties arising in any
-          jurisdiction anywhere in the world, (ii) the download,
-          distribution, installation, storage, execution, use or transfer of
-          such software, products, documentation, content, materials or
-          derivative works by any person or entity, and/or (iii) any breach
-          of this Agreement by You. If requested by an Indemnified Party, You
-          agree to defend such Indemnified Party in connection with any third
-          party claims, demands, or causes of action resulting from, arising
-          out of or in connection with any of the foregoing.
+      a.  You agree to indemnify and hold harmless Licensor and
+          its officers, directors, customers, employees and successors and
+          assigns (each an "Indemnified Party") against any and all claims,
+          demands, causes of action, losses, liabilities, damages, costs and
+          expenses, incurred by the Indemnified Party (including but not
+          limited to costs of defense, investigation and reasonable
+          attorney's fees) arising out of, resulting from or related to
+          (i) any software, products, documentation, content, materials or
+          derivative works created or developed by You using the Software
+          which causes an infringement of any patent, copyright, trademark,
+          trade secret, or other property, publicity or privacy rights of any
+          third parties arising in any jurisdiction anywhere in the world,
+          (ii) the download, distribution, installation, storage, execution,
+          use or transfer of such software, products, documentation, content,
+          materials or derivative works by any person or entity, and/or
+          (iii) any breach of this Agreement by You. If requested by an
+          Indemnified Party, You agree to defend such Indemnified Party in
+          connection with any third party claims, demands, or causes of
+          action resulting from, arising out of or in connection with any of
+          the foregoing.
 
    5.  Limitation of Liability
 
diff --git a/self-extractors/nxp/LICENSE b/self-extractors/nxp/LICENSE
index 49ec55e..ae318a7 100644
--- a/self-extractors/nxp/LICENSE
+++ b/self-extractors/nxp/LICENSE
@@ -105,25 +105,26 @@
 
    4.  Indemnity
 
-      a.  You agree to indemnify and hold harmless Licensor and its officers,
-          directors, customers, employees and successors and assigns (each an
-          "Indemnified Party") against any and all claims, demands, causes of
-          action, losses, liabilities, damages, costs and expenses, incurred
-          by the Indemnified Party (including but not limited to costs of
-          defense, investigation and reasonable attorney's fees) arising out
-          of, resulting from or related to (i) any software, products,
-          documentation, content, materials or derivative works created or
-          developed by You using the Software which causes an infringement of
-          any patent, copyright, trademark, trade secret, or other property,
-          publicity or privacy rights of any third parties arising in any
-          jurisdiction anywhere in the world, (ii) the download,
-          distribution, installation, storage, execution, use or transfer of
-          such software, products, documentation, content, materials or
-          derivative works by any person or entity, and/or (iii) any breach
-          of this Agreement by You. If requested by an Indemnified Party, You
-          agree to defend such Indemnified Party in connection with any third
-          party claims, demands, or causes of action resulting from, arising
-          out of or in connection with any of the foregoing.
+      a.  You agree to indemnify and hold harmless Licensor and
+          its officers, directors, customers, employees and successors and
+          assigns (each an "Indemnified Party") against any and all claims,
+          demands, causes of action, losses, liabilities, damages, costs and
+          expenses, incurred by the Indemnified Party (including but not
+          limited to costs of defense, investigation and reasonable
+          attorney's fees) arising out of, resulting from or related to
+          (i) any software, products, documentation, content, materials or
+          derivative works created or developed by You using the Software
+          which causes an infringement of any patent, copyright, trademark,
+          trade secret, or other property, publicity or privacy rights of any
+          third parties arising in any jurisdiction anywhere in the world,
+          (ii) the download, distribution, installation, storage, execution,
+          use or transfer of such software, products, documentation, content,
+          materials or derivative works by any person or entity, and/or
+          (iii) any breach of this Agreement by You. If requested by an
+          Indemnified Party, You agree to defend such Indemnified Party in
+          connection with any third party claims, demands, or causes of
+          action resulting from, arising out of or in connection with any of
+          the foregoing.
 
    5.  Limitation of Liability
 
diff --git a/self-extractors/samsung/LICENSE b/self-extractors/samsung/LICENSE
index beee7f4..5cbc9dd 100644
--- a/self-extractors/samsung/LICENSE
+++ b/self-extractors/samsung/LICENSE
@@ -112,25 +112,26 @@
 
    5.  Indemnity
 
-      a.  You agree to indemnify and hold harmless Licensor and its officers,
-          directors, customers, employees and successors and assigns (each an
-          "Indemnified Party") against any and all claims, demands, causes of
-          action, losses, liabilities, damages, costs and expenses, incurred
-          by the Indemnified Party (including but not limited to costs of
-          defense, investigation and reasonable attorney's fees) arising out
-          of, resulting from or related to (i) any software, products,
-          documentation, content, materials or derivative works created or
-          developed by You using the Software which causes an infringement of
-          any patent, copyright, trademark, trade secret, or other property,
-          publicity or privacy rights of any third parties arising in any
-          jurisdiction anywhere in the world, (ii) the download,
-          distribution, installation, storage, execution, use or transfer of
-          such software, products, documentation, content, materials or
-          derivative works by any person or entity, and/or (iii) any breach
-          of this Agreement by You. If requested by an Indemnified Party, You
-          agree to defend such Indemnified Party in connection with any third
-          party claims, demands, or causes of action resulting from, arising
-          out of or in connection with any of the foregoing.
+      a.  You agree to indemnify and hold harmless Licensor and
+          its officers, directors, customers, employees and successors and
+          assigns (each an "Indemnified Party") against any and all claims,
+          demands, causes of action, losses, liabilities, damages, costs and
+          expenses, incurred by the Indemnified Party (including but not
+          limited to costs of defense, investigation and reasonable
+          attorney's fees) arising out of, resulting from or related to
+          (i) any software, products, documentation, content, materials or
+          derivative works created or developed by You using the Software
+          which causes an infringement of any patent, copyright, trademark,
+          trade secret, or other property, publicity or privacy rights of any
+          third parties arising in any jurisdiction anywhere in the world,
+          (ii) the download, distribution, installation, storage, execution,
+          use or transfer of such software, products, documentation, content,
+          materials or derivative works by any person or entity, and/or
+          (iii) any breach of this Agreement by You. If requested by an
+          Indemnified Party, You agree to defend such Indemnified Party in
+          connection with any third party claims, demands, or causes of
+          action resulting from, arising out of or in connection with any of
+          the foregoing.
 
    6.  Limitation of Liability
 
diff --git a/self-extractors/widevine/LICENSE b/self-extractors/widevine/LICENSE
index 6442052..13f4c15 100644
--- a/self-extractors/widevine/LICENSE
+++ b/self-extractors/widevine/LICENSE
@@ -105,25 +105,26 @@
 
    4.  Indemnity
 
-      a.  You agree to indemnify and hold harmless Licensor and its officers,
-          directors, customers, employees and successors and assigns (each an
-          "Indemnified Party") against any and all claims, demands, causes of
-          action, losses, liabilities, damages, costs and expenses, incurred
-          by the Indemnified Party (including but not limited to costs of
-          defense, investigation and reasonable attorney's fees) arising out
-          of, resulting from or related to (i) any software, products,
-          documentation, content, materials or derivative works created or
-          developed by You using the Software which causes an infringement of
-          any patent, copyright, trademark, trade secret, or other property,
-          publicity or privacy rights of any third parties arising in any
-          jurisdiction anywhere in the world, (ii) the download,
-          distribution, installation, storage, execution, use or transfer of
-          such software, products, documentation, content, materials or
-          derivative works by any person or entity, and/or (iii) any breach
-          of this Agreement by You. If requested by an Indemnified Party, You
-          agree to defend such Indemnified Party in connection with any third
-          party claims, demands, or causes of action resulting from, arising
-          out of or in connection with any of the foregoing.
+      a.  You agree to indemnify and hold harmless Licensor and
+          its officers, directors, customers, employees and successors and
+          assigns (each an "Indemnified Party") against any and all claims,
+          demands, causes of action, losses, liabilities, damages, costs and
+          expenses, incurred by the Indemnified Party (including but not
+          limited to costs of defense, investigation and reasonable
+          attorney's fees) arising out of, resulting from or related to
+          (i) any software, products, documentation, content, materials or
+          derivative works created or developed by You using the Software
+          which causes an infringement of any patent, copyright, trademark,
+          trade secret, or other property, publicity or privacy rights of any
+          third parties arising in any jurisdiction anywhere in the world,
+          (ii) the download, distribution, installation, storage, execution,
+          use or transfer of such software, products, documentation, content,
+          materials or derivative works by any person or entity, and/or
+          (iii) any breach of this Agreement by You. If requested by an
+          Indemnified Party, You agree to defend such Indemnified Party in
+          connection with any third party claims, demands, or causes of
+          action resulting from, arising out of or in connection with any of
+          the foregoing.
 
    5.  Limitation of Liability
 
