We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Capital O missing an umlaut
Hello, I noticed in faker/Providers/De_de/internet.py in the _to_ascii method, the capital O is missing an umlaut. 

It should be: ('Ö', 'Oe') 

Currently:
replacements = (
            ('ä', 'ae'), ('Ä', 'Ae'),
            ('ö', 'oe'), ('O', 'Oe'),
            ('ü', 'ue'), ('Ü', 'Ue'),
            ('ß', 'ss')


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `faker/providers/de_DE/internet.py`
Content:
```
1 # coding=utf-8
2 from __future__ import unicode_literals
3 from ..internet import Provider as InternetProvider
4 
5 import re
6 
7 
8 class Provider(InternetProvider):
9 
10     free_email_domains = (
11         'web.de', 'gmail.com', 'hotmail.de', 'yahoo.de', 'googlemail.com',
12         'aol.de', 'gmx.de'
13     )
14     tlds = ('com', 'com', 'com', 'net', 'org', 'de', 'de', 'de')
15 
16     @staticmethod
17     def _to_ascii(string):
18         replacements = (
19             ('ä', 'ae'), ('Ä', 'Ae'),
20             ('ö', 'oe'), ('O', 'Oe'),
21             ('ü', 'ue'), ('Ü', 'Ue'),
22             ('ß', 'ss')
23         )
24         for search, replace in replacements:
25             string = string.replace(search, replace)
26 
27         return string
28 
29     def user_name(self):
30         pattern = self.random_element(self.user_name_formats)
31         return self._to_ascii(
32             self.bothify(self.generator.parse(pattern)
33         ).lower())
34 
35     def domain_word(self):
36         company = self.generator.format('company')
37         company_elements = company.split(' ')
38         company = self._to_ascii(company_elements.pop(0))
39         return re.sub(r'\W', '', company).lower()
40
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/faker/providers/de_DE/internet.py b/faker/providers/de_DE/internet.py
--- a/faker/providers/de_DE/internet.py
+++ b/faker/providers/de_DE/internet.py
@@ -17,7 +17,7 @@
     def _to_ascii(string):
         replacements = (
             ('ä', 'ae'), ('Ä', 'Ae'),
-            ('ö', 'oe'), ('O', 'Oe'),
+            ('ö', 'oe'), ('Ö', 'Oe'),
             ('ü', 'ue'), ('Ü', 'Ue'),
             ('ß', 'ss')
         )

{"golden_diff": "diff --git a/faker/providers/de_DE/internet.py b/faker/providers/de_DE/internet.py\n--- a/faker/providers/de_DE/internet.py\n+++ b/faker/providers/de_DE/internet.py\n@@ -17,7 +17,7 @@\n     def _to_ascii(string):\n         replacements = (\n             ('\u00e4', 'ae'), ('\u00c4', 'Ae'),\n-            ('\u00f6', 'oe'), ('O', 'Oe'),\n+            ('\u00f6', 'oe'), ('\u00d6', 'Oe'),\n             ('\u00fc', 'ue'), ('\u00dc', 'Ue'),\n             ('\u00df', 'ss')\n         )\n", "issue": "Capital O missing an umlaut\nHello, I noticed in faker/Providers/De_de/internet.py in the _to_ascii method, the capital O is missing an umlaut. \n\nIt should be: ('\u00d6', 'Oe') \n\nCurrently:\nreplacements = (\n            ('\u00e4', 'ae'), ('\u00c4', 'Ae'),\n            ('\u00f6', 'oe'), ('O', 'Oe'),\n            ('\u00fc', 'ue'), ('\u00dc', 'Ue'),\n            ('\u00df', 'ss')\n\n", "before_files": [{"content": "# coding=utf-8\nfrom __future__ import unicode_literals\nfrom ..internet import Provider as InternetProvider\n\nimport re\n\n\nclass Provider(InternetProvider):\n\n    free_email_domains = (\n        'web.de', 'gmail.com', 'hotmail.de', 'yahoo.de', 'googlemail.com',\n        'aol.de', 'gmx.de'\n    )\n    tlds = ('com', 'com', 'com', 'net', 'org', 'de', 'de', 'de')\n\n    @staticmethod\n    def _to_ascii(string):\n        replacements = (\n            ('\u00e4', 'ae'), ('\u00c4', 'Ae'),\n            ('\u00f6', 'oe'), ('O', 'Oe'),\n            ('\u00fc', 'ue'), ('\u00dc', 'Ue'),\n            ('\u00df', 'ss')\n        )\n        for search, replace in replacements:\n            string = string.replace(search, replace)\n\n        return string\n\n    def user_name(self):\n        pattern = self.random_element(self.user_name_formats)\n        return self._to_ascii(\n            self.bothify(self.generator.parse(pattern)\n        ).lower())\n\n    def domain_word(self):\n        company = self.generator.format('company')\n        company_elements = company.split(' ')\n        company = self._to_ascii(company_elements.pop(0))\n        return re.sub(r'\\W', '', company).lower()\n", "path": "faker/providers/de_DE/internet.py"}], "after_files": [{"content": "# coding=utf-8\nfrom __future__ import unicode_literals\nfrom ..internet import Provider as InternetProvider\n\nimport re\n\n\nclass Provider(InternetProvider):\n\n    free_email_domains = (\n        'web.de', 'gmail.com', 'hotmail.de', 'yahoo.de', 'googlemail.com',\n        'aol.de', 'gmx.de'\n    )\n    tlds = ('com', 'com', 'com', 'net', 'org', 'de', 'de', 'de')\n\n    @staticmethod\n    def _to_ascii(string):\n        replacements = (\n            ('\u00e4', 'ae'), ('\u00c4', 'Ae'),\n            ('\u00f6', 'oe'), ('\u00d6', 'Oe'),\n            ('\u00fc', 'ue'), ('\u00dc', 'Ue'),\n            ('\u00df', 'ss')\n        )\n        for search, replace in replacements:\n            string = string.replace(search, replace)\n\n        return string\n\n    def user_name(self):\n        pattern = self.random_element(self.user_name_formats)\n        return self._to_ascii(\n            self.bothify(self.generator.parse(pattern)\n        ).lower())\n\n    def domain_word(self):\n        company = self.generator.format('company')\n        company_elements = company.split(' ')\n        company = self._to_ascii(company_elements.pop(0))\n        return re.sub(r'\\W', '', company).lower()\n", "path": "faker/providers/de_DE/internet.py"}]}