internlm/SWE-Fixer-Train-110K huggingface dataset:
Repository: ultralytics/yolov5

Issue:
TensorRT bindings version
### Search before asking

- [X] I have searched the YOLOv5 [issues](https://github.com/ultralytics/yolov5/issues) and [discussions](https://github.com/ultralytics/yolov5/discussions) and found no similar questions.


### Question

A snippet from export.py:
```
def export_engine(model, im, file, train, half, simplify, workspace=4, verbose=False, prefix=colorstr('TensorRT:')):
    try:
        check_requirements(('tensorrt',))
        import tensorrt as trt
    ...
```
The check requirements function downloads some weird package called: tensorrt-0.0.1 which is that one I belive: https://pypi.org/project/tensorrt/
Unfortunately I can't find any information about real TensorRT version used for this package.
So my questions are:
What is REAL version of TensorRT used for tensorrt-0.0.1 package (because obviously 0.0.1 is not the one)?
Why don't use nvidia-tensorrt instead?

Btw I commented that "check_requirements" line and used manually preinstalled nvidia-tensorrt 8.0.1.6 package instead to create float16 engine and it worked.

Thank you in advance.

### Additional

_No response_


Discussion:

Resolving patch:
diff --git a/export.py b/export.py
--- a/export.py
+++ b/export.py
@@ -209,8 +209,7 @@ def export_coreml(model, im, file, prefix=colorstr('CoreML:')):
 def export_engine(model, im, file, train, half, simplify, workspace=4, verbose=False, prefix=colorstr('TensorRT:')):
     # YOLOv5 TensorRT export https://developer.nvidia.com/tensorrt
     try:
-        check_requirements(('tensorrt',))
-        import tensorrt as trt
+        import tensorrt as trt  # pip install -U nvidia-tensorrt --index-url https://pypi.ngc.nvidia.com
 
         if trt.__version__[0] == '7':  # TensorRT 7 handling https://github.com/ultralytics/yolov5/issues/6012
             grid = model.model[-1].anchor_grid


Test patch:
Repository: ultralytics/yolov5

Issue:
Defective is_docker
### Search before asking

- [X] I have searched the YOLOv5 [issues](https://github.com/ultralytics/yolov5/issues) and found no similar bug report.


### YOLOv5 Component

Other

### Bug

https://github.com/ultralytics/yolov5/blob/0ab303b04499b6b912d8212a4fa10fe3fcb78efa/utils/general.py#L227

```python
def is_docker():
    # Is environment a Docker container?
    return Path('/workspace').exists()  # or Path('/.dockerenv').exists()
```

is not reliable. You can also name a folder `/workspace` in a normal OS without any docker running, e.g.
![image](https://user-images.githubusercontent.com/34747372/180746565-41f35e55-2b53-4234-96bc-821462266ee0.png)




### Environment

Reproducible on all platforms.

### Minimal Reproducible Example

1. Create a folder `/workspace`.
2. Clone yolov5.
3. Run `is_docker()`.

### Additional

.

### Are you willing to submit a PR?

- [X] Yes I'd like to help by submitting a PR!


Discussion:

Resolving patch:
diff --git a/utils/general.py b/utils/general.py
--- a/utils/general.py
+++ b/utils/general.py
@@ -224,9 +224,15 @@ def get_latest_run(search_dir='.'):
     return max(last_list, key=os.path.getctime) if last_list else ''
 
 
-def is_docker():
-    # Is environment a Docker container?
-    return Path('/workspace').exists()  # or Path('/.dockerenv').exists()
+def is_docker() -> bool:
+    """Check if the process runs inside a docker container."""
+    if Path("/.dockerenv").exists():
+        return True
+    try:  # check if docker is in control groups
+        with open("/proc/self/cgroup") as file:
+            return any("docker" in line for line in file)
+    except OSError:
+        return False
 
 
 def is_colab():


Test patch:
Repository: ultralytics/yolov5

Issue:
--single-cls throws an error
### Search before asking

- [X] I have searched the YOLOv5 [issues](https://github.com/ultralytics/yolov5/issues) and [discussions](https://github.com/ultralytics/yolov5/discussions) and found no similar questions.


### Question

I want to train my custom dataset which has 3 classes as a single class. Therefore I used an argument `--single-cls`
However, it throws the following TypeError:

 `Traceback (most recent call last):
  File "train.py", line 637, in <module>
    main(opt)
  File "train.py", line 532, in main
    train(opt.hyp, opt, device, callbacks)
  File "train.py", line 183, in train
    train_loader, dataset = create_dataloader(train_path,
  File "/home/user/yolov5/utils/dataloaders.py", line 119, in create_dataloader
    dataset = LoadImagesAndLabels(
  File "/home/user/yolov5/utils/dataloaders.py", line 503, in __init__
    self.segments[i][:, 0] = 0
TypeError: list indices must be integers or slices, not tuple
`
Initiallay, I thought that it was because I cashed the labels as multi-class (from previous trainings) `segments` was extracted from the that cache values and removed the cache files. But it didn't help. Could that be a bug of some kind?

### Additional

_No response_


Discussion:
I believe that the --single-cls is meant to indicate that you only (already) have a single class - and therefore it should make it easier/faster to train... Or at least that's my impression as per what it is and what it does...
@bit-scientist 👋 hi, thanks for letting us know about this possible problem with YOLOv5 🚀.  I'm able to reproduce this after some experimenting, but in the future you're required to provide **code to reproduce** your issue. 

I'll add a TODO to investigate.

@JustasBart --single-cls trains any multi-class dataset in single-class mode.



Resolving patch:
diff --git a/utils/dataloaders.py b/utils/dataloaders.py
--- a/utils/dataloaders.py
+++ b/utils/dataloaders.py
@@ -537,8 +537,6 @@ def __init__(self,
                     self.segments[i] = segment[j]
             if single_cls:  # single-class training, merge all classes into 0
                 self.labels[i][:, 0] = 0
-                if segment:
-                    self.segments[i][:, 0] = 0
 
         # Rectangular Training
         if self.rect:


Test patch:
Repository: ultralytics/yolov5

Issue:
clearml logs defaults args when use run function 
### Search before asking

- [X] I have searched the YOLOv5 [issues](https://github.com/ultralytics/yolov5/issues) and found no similar bug report.


### YOLOv5 Component

_No response_

### Bug

when you want to run training with the `run` function as described here https://github.com/ultralytics/yolov5/blob/10c025d794ca395a2ca0b2a00aff65f3a92ecd8d/train.py#L622 
the clearml args logging 
https://github.com/allegroai/clearml/blob/7016138c849a4f8d0b4d296b319e0b23a1b7bd9e/clearml/binding/args.py#L231 
skip the modification of the parameters 
in the end, when you look in the clearml server on configurations Args you see the default args parameters and not the one you trained with 
(Training is still with the good parameters you pass )


### Environment

doker 
`from ultralytics/yolov5:latest`

### Minimal Reproducible Example

python
```
import train; train.run(data='coco128.yaml', imgsz=320, weights='yolov5m.pt')
```
in clearml server configurations Args you will see `weights='yolov5s.pt'` `imgsz=640`

### Additional

_No response_

### Are you willing to submit a PR?

- [ ] Yes I'd like to help by submitting a PR!


Discussion:
@mbenami thanks for the bug report!

@thepycoder could you take a look at this? Thanks!

Resolving patch:
diff --git a/utils/loggers/clearml/clearml_utils.py b/utils/loggers/clearml/clearml_utils.py
--- a/utils/loggers/clearml/clearml_utils.py
+++ b/utils/loggers/clearml/clearml_utils.py
@@ -96,6 +96,7 @@ def __init__(self, opt, hyp):
             # Only the hyperparameters coming from the yaml config file
             # will have to be added manually!
             self.task.connect(hyp, name='Hyperparameters')
+            self.task.connect(opt, name='Args')
 
             # Make sure the code is easily remotely runnable by setting the docker image to use by the remote agent
             self.task.set_base_docker("ultralytics/yolov5:latest",


Test patch:
Repository: ultralytics/yolov5

Issue:
`val.py` fails silently when `opt.task` is misspelled
### Search before asking

- [X] I have searched the YOLOv5 [issues](https://github.com/ultralytics/yolov5/issues) and found no similar bug report.


### YOLOv5 Component

Validation

### Bug

https://github.com/ultralytics/yolov5/blob/f8539a680041a9f4fbcc4fcdd8f540724da453af/val.py#L371

The `main` function of `val.py` checks the specified tasks with a bunch of if-statements, but there's no final `else` at the end in the case of a misspelled task, thus causing it to fail silently. Anecdote: I sadly lost 20 minutes on debugging this :cry: .

### Environment

_No response_

### Minimal Reproducible Example

```
# Inside a YOLOv5 docker
python3.9 val.py --task 'vall' # should be 'val'

# val.py will just echo input args but not do anything else
```

### Additional

_No response_

### Are you willing to submit a PR?

- [X] Yes I'd like to help by submitting a PR!


Discussion:

Resolving patch:
diff --git a/segment/val.py b/segment/val.py
--- a/segment/val.py
+++ b/segment/val.py
@@ -463,6 +463,8 @@ def main(opt):
                 np.savetxt(f, y, fmt='%10.4g')  # save
             os.system('zip -r study.zip study_*.txt')
             plot_val_study(x=x)  # plot
+        else:
+            raise NotImplementedError(f'--task {opt.task} not in ("train", "val", "test", "speed", "study")')
 
 
 if __name__ == "__main__":
diff --git a/val.py b/val.py
--- a/val.py
+++ b/val.py
@@ -399,6 +399,8 @@ def main(opt):
                 np.savetxt(f, y, fmt='%10.4g')  # save
             os.system('zip -r study.zip study_*.txt')
             plot_val_study(x=x)  # plot
+        else:
+            raise NotImplementedError(f'--task {opt.task} not in ("train", "val", "test", "speed", "study")')
 
 
 if __name__ == "__main__":


Test patch:
Repository: ultralytics/yolov5

Issue:
utils/general.py print_mutation variable keys does not correspond to output of seg train/val
### Search before asking

- [X] I have searched the YOLOv5 [issues](https://github.com/ultralytics/yolov5/issues) and found no similar bug report.


### YOLOv5 Component

Other

### Bug

 File ".../yolov5-master/segment/train.py", line 674, in <module>
    main(opt)
  File ".../yolov5-master/segment/train.py", line 654, in main
    print_mutation(results, hyp.copy(), save_dir, opt.bucket)
  File ".../yolov5-master/utils/general.py", line 979, in print_mutation
f.write(s + ('%s,' * n % vals).rstrip(',') + '\n')
TypeError: not all arguments converted during string formatting


### Environment

- yolov5 v6.2
- torchvision 0.13.1
- torch 1.12.1
- Python 3.10.6
- Ubuntu 20.04.4 LTS

### Minimal Reproducible Example

 python .../segment/train.py --data coco128-seg.yaml --weights '' --cfg yolov5s-seg.yaml --img 640 --evolve --epochs 2 --batch-size 3


### Additional

Hi,

variable keys (see below) in print_mutation needs to be updated to correspond to the output of train in .../segment/train.py when --evolve is used. 

keys = ('metrics/precision', 'metrics/recall', 'metrics/mAP_0.5', 'metrics/mAP_0.5:0.95', 'val/box_loss',
            'val/obj_loss', 'val/cls_loss') + tuple(hyp.keys())  # [results + hyps]

thank you!

cheers,
Adrian

### Are you willing to submit a PR?

- [ ] Yes I'd like to help by submitting a PR!


Discussion:

Resolving patch:
diff --git a/segment/train.py b/segment/train.py
--- a/segment/train.py
+++ b/segment/train.py
@@ -629,7 +629,7 @@ def main(opt, callbacks=Callbacks()):
                 while all(v == 1):  # mutate until a change occurs (prevent duplicates)
                     v = (g * (npr.random(ng) < mp) * npr.randn(ng) * npr.random() * s + 1).clip(0.3, 3.0)
                 for i, k in enumerate(hyp.keys()):  # plt.hist(v.ravel(), 300)
-                    hyp[k] = float(x[i + 7] * v[i])  # mutate
+                    hyp[k] = float(x[i + 12] * v[i])  # mutate
 
             # Constrain to limits
             for k, v in meta.items():
@@ -641,7 +641,7 @@ def main(opt, callbacks=Callbacks()):
             results = train(hyp.copy(), opt, device, callbacks)
             callbacks = Callbacks()
             # Write mutation results
-            print_mutation(KEYS, results, hyp.copy(), save_dir, opt.bucket)
+            print_mutation(KEYS[4:16], results, hyp.copy(), save_dir, opt.bucket)
 
         # Plot results
         plot_evolve(evolve_csv)


Test patch:
Repository: getsentry/sentry

Issue:
Limitations on SENTRY_KEY not documented
I assumed that SENTRY_KEY was just any random string that should be unique to a deployment and kept secret (ie, serving a similar purpose to django's SECRET_KEY) so I generated a random string to use there. 

It turns out that it's used in a URL for the feeds:

```
url(r'^feeds/%s/messages.xml$' % KEY, MessageFeed(), name='sentry-feed-messages'),
```

(in sentry.urls)

Mine happened to have an '[' in it which caused a very confusing error about an unterminated regex. 

It should be documented that SENTRY_KEY will make it into a URL (and further that django will try to then parse it as a regexp when trying to do reverse lookups) and thus can't have most punctuation. 



Discussion:

Resolving patch:
diff --git a/sentry/urls.py b/sentry/urls.py
--- a/sentry/urls.py
+++ b/sentry/urls.py
@@ -1,4 +1,5 @@
 import os
+import re
 
 from django.conf.urls.defaults import *
 
@@ -14,8 +15,8 @@
 
     # Feeds
 
-    url(r'^feeds/%s/messages.xml$' % KEY, MessageFeed(), name='sentry-feed-messages'),
-    url(r'^feeds/%s/summaries.xml$' % KEY, SummaryFeed(), name='sentry-feed-summaries'),
+    url(r'^feeds/%s/messages.xml$' % re.escape(KEY), MessageFeed(), name='sentry-feed-messages'),
+    url(r'^feeds/%s/summaries.xml$' % re.escape(KEY), SummaryFeed(), name='sentry-feed-summaries'),
 
     # JS and API
 


Test patch:
Repository: getsentry/sentry

Issue:
Typo on pypi
On [pypi](http://pypi.python.org/pypi/sentry), shouldn't

> A realtime logging an aggregation server.

be

> A realtime logging an**d** aggregation server.

?



Discussion:

Resolving patch:
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -54,7 +54,7 @@
     author='David Cramer',
     author_email='dcramer@gmail.com',
     url='http://github.com/dcramer/sentry',
-    description='A realtime logging an aggregation server.',
+    description='A realtime logging and aggregation server.',
     long_description=__doc__,
     packages=find_packages(exclude=['tests']),
     zip_safe=False,


Test patch:
Repository: getsentry/sentry

Issue:
celery 3.0 causes import error (cannot import abbrtools from celery.utils)
Release of celery 3.0 causes an import error at runtime upon any request.

This is the stack trace:

```
ImportError: cannot import name abbrtask
Error handling request
Traceback (most recent call last):
  File "/Users/guzru/dev/django14/lib/python2.7/site-packages/gunicorn/workers/sync.py", line 107, in handle_request
    for item in respiter:
  File "/Users/guzru/dev/django14/lib/python2.7/site-packages/raven/middleware.py", line 28, in __call__
    for event in self.application(environ, start_response):
  File "/Users/guzru/dev/django14/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 241, in __call__
    response = self.get_response(request)
  File "/Users/guzru/dev/django14/lib/python2.7/site-packages/django/core/handlers/base.py", line 179, in get_response
    response = self.handle_uncaught_exception(request, resolver, sys.exc_info())
  File "/Users/guzru/dev/django14/lib/python2.7/site-packages/django/core/handlers/base.py", line 224, in handle_uncaught_exception
    if resolver.urlconf_module is None:
  File "/Users/guzru/dev/django14/lib/python2.7/site-packages/django/core/urlresolvers.py", line 323, in urlconf_module
    self._urlconf_module = import_module(self.urlconf_name)
  File "/Users/guzru/dev/django14/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/Users/guzru/dev/django14/lib/python2.7/site-packages/sentry/conf/urls.py", line 19, in <module>
    admin.autodiscover()
  File "/Users/guzru/dev/django14/lib/python2.7/site-packages/django/contrib/admin/__init__.py", line 29, in autodiscover
    import_module('%s.admin' % app)
  File "/Users/guzru/dev/django14/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/Users/guzru/dev/django14/lib/python2.7/site-packages/djcelery/admin.py", line 19, in <module>
    from celery.utils import abbrtask
ImportError: cannot import name abbrtask
```

Requirements line for celery should become:

celery>=2.5.3,<3.0.0



Discussion:

Resolving patch:
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -50,6 +50,7 @@
     'cssutils>=0.9.9',
     'BeautifulSoup>=3.2.1',
     'django-celery>=2.5.5,<3.0',
+    'celery>=2.5.3,<3.0',
     'django-crispy-forms>=1.1.4',
     'Django>=1.2,<1.5',
     'django-indexer>=0.3.0',


Test patch:
Repository: getsentry/sentry

Issue:
creating user with 'create project' checked
creating user with 'create project' checked does not work more than once because of issues with Project.slug unique=True parameter.  
In such case project name is hardcoded and slugify on project.name only works for the first time.

> sentry/web/frontend/admin.py in create_new_user at line 137

```
        project = Project.objects.create(
            owner=user,
            name='New Project',
        )
```



Discussion:

Resolving patch:
diff --git a/src/sentry/web/frontend/admin.py b/src/sentry/web/frontend/admin.py
--- a/src/sentry/web/frontend/admin.py
+++ b/src/sentry/web/frontend/admin.py
@@ -135,7 +135,7 @@ def create_new_user(request):
         if form.cleaned_data['create_project']:
             project = Project.objects.create(
                 owner=user,
-                name='New Project',
+                name='%s\'s New Project' % user.username.capitalize()
             )
             member = project.team.member_set.get(user=user)
             key = project.key_set.get(user=user)


Test patch:
Repository: getsentry/sentry

Issue:
Don't call _get_group_list from the poll endpoint if the user is an anonymous user
If you do you get the folowing traceback:

```

Internal Server Error: /api/rdio/poll/

Stacktrace (most recent call last):

  File "django/core/handlers/base.py", line 111, in get_response
    response = callback(request, *callback_args, **callback_kwargs)

  File "django/views/decorators/csrf.py", line 77, in wrapped_view
    return view_func(*args, **kwargs)

  File "sentry/web/decorators.py", line 77, in _wrapped
    return func(request, project, *args, **kwargs)

  File "django/views/decorators/cache.py", line 89, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)

  File "sentry/web/api.py", line 215, in poll
    view=view,

  File "sentry/web/frontend/groups.py", line 63, in _get_group_list
    bookmark_set__user=request.user,

  File "django/db/models/manager.py", line 143, in filter
    return self.get_query_set().filter(*args, **kwargs)

  File "django/db/models/query.py", line 621, in filter
    return self._filter_or_exclude(False, *args, **kwargs)

  File "django/db/models/query.py", line 639, in _filter_or_exclude
    clone.query.add_q(Q(*args, **kwargs))

  File "django/db/models/sql/query.py", line 1250, in add_q
    can_reuse=used_aliases, force_having=force_having)

  File "django/db/models/sql/query.py", line 1185, in add_filter
    connector)

  File "django/db/models/sql/where.py", line 69, in add
    value = obj.prepare(lookup_type, value)

  File "django/db/models/sql/where.py", line 320, in prepare
    return self.field.get_prep_lookup(lookup_type, value)

  File "django/db/models/fields/related.py", line 137, in get_prep_lookup
    return self._pk_trace(value, 'get_prep_lookup', lookup_type)

  File "django/db/models/fields/related.py", line 210, in _pk_trace
    v = getattr(field, prep_func)(lookup_type, v, **kwargs)

  File "django/db/models/fields/__init__.py", line 310, in get_prep_lookup
    return self.get_prep_value(value)

  File "django/db/models/fields/__init__.py", line 537, in get_prep_value
    return int(value)
```



Discussion:

Resolving patch:
diff --git a/src/sentry/web/frontend/groups.py b/src/sentry/web/frontend/groups.py
--- a/src/sentry/web/frontend/groups.py
+++ b/src/sentry/web/frontend/groups.py
@@ -59,7 +59,7 @@ def _get_group_list(request, project, view=None):
             logger.exception('Error initializing filter %r: %s', cls, e)
 
     event_list = Group.objects
-    if request.GET.get('bookmarks'):
+    if request.user.is_authenticated() and request.GET.get('bookmarks'):
         event_list = event_list.filter(
             bookmark_set__project=project,
             bookmark_set__user=request.user,


Test patch:
Repository: getsentry/sentry

Issue:
Set an image-ish content-type when requested over GET
This is specifically around raven-js since I'm loading the resource into an Image object. It doesn't hurt anything, but the browser likes to throw an unseen warning about the content-type.

![](http://i.imgur.com/kthHe.png)



Discussion:
I'm also not sure off the top of my head if it actually should return any bytes, or if a 0 byte response is still ok. It _might_ have to be bytes for a 1x1px transparent gif or something. I'll play with this and see what the browsers like.


Resolving patch:
diff --git a/src/sentry/web/api.py b/src/sentry/web/api.py
--- a/src/sentry/web/api.py
+++ b/src/sentry/web/api.py
@@ -39,6 +39,10 @@
 error_logger = logging.getLogger('sentry.errors.api.http')
 logger = logging.getLogger('sentry.api.http')
 
+# Transparent 1x1 gif
+# See http://probablyprogramming.com/2009/03/15/the-tiniest-gif-ever
+PIXEL = 'R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs='.decode('base64')
+
 
 def api(func):
     @wraps(func)
@@ -227,12 +231,15 @@ class StoreView(APIView):
     @never_cache
     def post(self, request, project, auth, **kwargs):
         data = request.raw_post_data
-        return self.process(request, project, auth, data, **kwargs)
+        self.process(request, project, auth, data, **kwargs)
+        return HttpResponse()
 
     @never_cache
     def get(self, request, project, auth, **kwargs):
         data = request.GET.get('sentry_data', '')
-        return self.process(request, project, auth, data, **kwargs)
+        self.process(request, project, auth, data, **kwargs)
+        # We should return a simple 1x1 gif for browser so they don't throw a warning
+        return HttpResponse(PIXEL, content_type='image/gif')
 
     def process(self, request, project, auth, data, **kwargs):
         result = plugins.first('has_perm', request.user, 'create_event', project)
@@ -252,8 +259,6 @@ def process(self, request, project, auth, data, **kwargs):
 
         logger.info('New event from project %r (id=%s)', project.slug, data['event_id'])
 
-        return HttpResponse()
-
 
 @csrf_exempt
 @has_access


Test patch:
Repository: getsentry/sentry

Issue:
First letter of module name is truncated for frontend javascript
The removal of initial slash in the path is error-prone and always removed first character from the string, even if it's not a slash. I have a fix for that, will submit PR in a moment.



Discussion:

Resolving patch:
diff --git a/src/sentry/tasks/fetch_source.py b/src/sentry/tasks/fetch_source.py
--- a/src/sentry/tasks/fetch_source.py
+++ b/src/sentry/tasks/fetch_source.py
@@ -31,7 +31,7 @@
 DEFAULT_ENCODING = 'utf-8'
 BASE64_SOURCEMAP_PREAMBLE = 'data:application/json;base64,'
 BASE64_PREAMBLE_LENGTH = len(BASE64_SOURCEMAP_PREAMBLE)
-CLEAN_MODULE_RE = re.compile(r"""^(?:(?:
+CLEAN_MODULE_RE = re.compile(r"""^(?:/|(?:
     (?:java)?scripts?|js|build|static|[_\.].*?|  # common folder prefixes
     v?(?:\d+\.)*\d+|   # version numbers, v1, 1.0.0
     [a-f0-9]{7,8}|     # short sha
@@ -380,7 +380,7 @@ def generate_module(src):
 
     e.g. http://google.com/js/v1.0/foo/bar/baz.js -> foo/bar/baz
     """
-    return CLEAN_MODULE_RE.sub('', splitext(urlsplit(src).path[1:])[0])
+    return CLEAN_MODULE_RE.sub('', splitext(urlsplit(src).path)[0])
 
 
 def generate_culprit(frame):


Test patch: