This is a Django issue that needs to be resolved in the Django codebase. Based on the problem statement and hints provided, I can generate the patch. The issue is in `django/forms/formsets.py` where the `empty_form` property passes `empty_permitted=True` directly to the form constructor, but also spreads `self.get_form_kwargs(None)` which may already contain `empty_permitted`, causing a "got multiple values for keyword argument" error.

The fix is to build the form_kwargs dict first (allowing later keys to override earlier ones), then pass it to the form constructor:

```
--- a/django/forms/formsets.py
+++ b/django/forms/formsets.py
@@ -257,13 +257,16 @@ class BaseFormSet(RenderableFormMixin):
 
     @property
     def empty_form(self):
-        form = self.form(
-            auto_id=self.auto_id,
-            prefix=self.add_prefix("__prefix__"),
-            empty_permitted=True,
-            use_required_attribute=False,
+        form_kwargs = {
             **self.get_form_kwargs(None),
-            renderer=self.renderer,
-        )
+            "auto_id": self.auto_id,
+            "prefix": self.add_prefix("__prefix__"),
+            "empty_permitted": True,
+            "use_required_attribute": False,
+            "renderer": self.renderer,
+        }
+        form = self.form(**form_kwargs)
         self.add_fields(form, None)
         return form
```