Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package yt-dlp for openSUSE:Factory checked 
in at 2025-08-28 17:18:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yt-dlp (Old)
 and      /work/SRC/openSUSE:Factory/.yt-dlp.new.1977 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yt-dlp"

Thu Aug 28 17:18:27 2025 rev:74 rq:1301623 version:2025.08.27

Changes:
--------
--- /work/SRC/openSUSE:Factory/yt-dlp/yt-dlp.changes    2025-08-25 
20:38:31.949182810 +0200
+++ /work/SRC/openSUSE:Factory/.yt-dlp.new.1977/yt-dlp.changes  2025-08-28 
17:18:53.187763498 +0200
@@ -1,0 +2,8 @@
+Thu Aug 28 00:09:55 UTC 2025 - Jan Engelhardt <jeng...@inai.de>
+
+- Update to release 2025.08.27
+  * Add tcc player JS variant
+  * Deprioritize web_safari m3u8 formats
+  * Use alternative tv user-agent when authenticated
+
+-------------------------------------------------------------------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ yt-dlp.spec ++++++
--- /var/tmp/diff_new_pack.zxDfgs/_old  2025-08-28 17:18:53.971796356 +0200
+++ /var/tmp/diff_new_pack.zxDfgs/_new  2025-08-28 17:18:53.975796525 +0200
@@ -25,7 +25,7 @@
 %endif
 
 Name:           yt-dlp
-Version:        2025.08.22
+Version:        2025.08.27
 Release:        0
 Summary:        Enhanced fork of youtube-dl, a video site downloader for 
offline watching
 License:        CC-BY-SA-3.0 AND SUSE-Public-Domain

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.zxDfgs/_old  2025-08-28 17:18:54.007797866 +0200
+++ /var/tmp/diff_new_pack.zxDfgs/_new  2025-08-28 17:18:54.011798033 +0200
@@ -1,5 +1,5 @@
-mtime: 1755936051
-commit: a195ba62dcd07eadfce64b43cbbfe3c6246db2762be29758aefb558d310d2286
+mtime: 1756339832
+commit: ef672fc8de8742def49c40c02b33f81b04a334fbe40c38973507a38fdf0b98d5
 url: https://src.opensuse.org/jengelh/yt-dlp
 revision: master
 

++++++ build.specials.obscpio ++++++

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2025-08-28 02:10:41.000000000 +0200
@@ -0,0 +1 @@
+.osc

++++++ yt-dlp.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yt-dlp/Changelog.md new/yt-dlp/Changelog.md
--- old/yt-dlp/Changelog.md     2025-08-23 01:59:38.000000000 +0200
+++ new/yt-dlp/Changelog.md     2025-08-28 01:58:09.000000000 +0200
@@ -4,6 +4,19 @@
 # To create a release, dispatch the 
https://github.com/yt-dlp/yt-dlp/actions/workflows/release.yml workflow on 
master
 -->
 
+### 2025.08.27
+
+#### Extractor changes
+- **generic**
+    - [Simplify invalid URL error 
message](https://github.com/yt-dlp/yt-dlp/commit/1ddbd033f0fd65917526b1271cea66913ac8647f)
 ([#14167](https://github.com/yt-dlp/yt-dlp/issues/14167)) by 
[seproDev](https://github.com/seproDev)
+    - [Use https as fallback 
protocol](https://github.com/yt-dlp/yt-dlp/commit/fec30c56f0e97e573ace659104ff0d72c4cc9809)
 ([#14160](https://github.com/yt-dlp/yt-dlp/issues/14160)) by 
[seproDev](https://github.com/seproDev)
+- **skeb**: [Support wav 
files](https://github.com/yt-dlp/yt-dlp/commit/d6950c27af31908363c5c815e3b7eb4f9ff41643)
 ([#14147](https://github.com/yt-dlp/yt-dlp/issues/14147)) by 
[seproDev](https://github.com/seproDev)
+- **youtube**
+    - [Add `tcc` player JS 
variant](https://github.com/yt-dlp/yt-dlp/commit/8f4a908300f55054bc96814bceeaa1034fdf4110)
 ([#14134](https://github.com/yt-dlp/yt-dlp/issues/14134)) by 
[bashonly](https://github.com/bashonly)
+    - [Deprioritize `web_safari` m3u8 
formats](https://github.com/yt-dlp/yt-dlp/commit/5c7ad68ff1643ad80d18cef8be9db8fcab05ee6c)
 ([#14168](https://github.com/yt-dlp/yt-dlp/issues/14168)) by 
[bashonly](https://github.com/bashonly)
+    - [Player client 
maintenance](https://github.com/yt-dlp/yt-dlp/commit/3bd91544122142a87863d79e54e995c26cfd7f92)
 ([#14135](https://github.com/yt-dlp/yt-dlp/issues/14135)) by 
[bashonly](https://github.com/bashonly)
+    - [Use alternative `tv` user-agent when 
authenticated](https://github.com/yt-dlp/yt-dlp/commit/8cd37b85d492edb56a4f7506ea05527b85a6b02b)
 ([#14169](https://github.com/yt-dlp/yt-dlp/issues/14169)) by 
[bashonly](https://github.com/bashonly)
+
 ### 2025.08.22
 
 #### Core changes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yt-dlp/README.md new/yt-dlp/README.md
--- old/yt-dlp/README.md        2025-08-23 01:59:42.000000000 +0200
+++ new/yt-dlp/README.md        2025-08-28 01:58:14.000000000 +0200
@@ -1802,7 +1802,7 @@
 #### youtube
 * `lang`: Prefer translated metadata (`title`, `description` etc) of this 
language code (case-sensitive). By default, the video primary language metadata 
is preferred, with a fallback to `en` translated. See 
[youtube/_base.py](https://github.com/yt-dlp/yt-dlp/blob/415b4c9f955b1a0391204bd24a7132590e7b3bdb/yt_dlp/extractor/youtube/_base.py#L402-L409)
 for the list of supported content language codes
 * `skip`: One or more of `hls`, `dash` or `translated_subs` to skip extraction 
of the m3u8 manifests, dash manifests and [auto-translated 
subtitles](https://github.com/yt-dlp/yt-dlp/issues/4090#issuecomment-1158102032)
 respectively
-* `player_client`: Clients to extract video data from. The currently available 
clients are `web`, `web_safari`, `web_embedded`, `web_music`, `web_creator`, 
`mweb`, `ios`, `android`, `android_vr`, `tv`, `tv_simply` and `tv_embedded`. By 
default, `tv,tv_simply,web` is used, but `tv,web_safari,web` is used when 
authenticating with cookies and `tv,web_creator,web` is used with premium 
accounts. The `web_music` client is added for `music.youtube.com` URLs when 
logged-in cookies are used. The `web_embedded` client is added for 
age-restricted videos but only works if the video is embeddable. The 
`tv_embedded` and `web_creator` clients are added for age-restricted videos if 
account age-verification is required. Some clients, such as `web` and 
`web_music`, require a `po_token` for their formats to be downloadable. Some 
clients, such as `web_creator`, will only work with authentication. Not all 
clients support authentication via cookies. You can use `default` for the 
default clients, or you c
 an use `all` for all clients (not recommended). You can prefix a client with 
`-` to exclude it, e.g. `youtube:player_client=default,-ios`
+* `player_client`: Clients to extract video data from. The currently available 
clients are `web`, `web_safari`, `web_embedded`, `web_music`, `web_creator`, 
`mweb`, `ios`, `android`, `android_vr`, `tv`, `tv_simply` and `tv_embedded`. By 
default, `tv_simply,tv,web` is used, but `tv,web_safari,web` is used when 
authenticating with cookies and `tv,web_creator,web` is used with premium 
accounts. The `web_music` client is added for `music.youtube.com` URLs when 
logged-in cookies are used. The `web_embedded` client is added for 
age-restricted videos but only works if the video is embeddable. The 
`tv_embedded` and `web_creator` clients are added for age-restricted videos if 
account age-verification is required. Some clients, such as `web` and 
`web_music`, require a `po_token` for their formats to be downloadable. Some 
clients, such as `web_creator`, will only work with authentication. Not all 
clients support authentication via cookies. You can use `default` for the 
default clients, or you c
 an use `all` for all clients (not recommended). You can prefix a client with 
`-` to exclude it, e.g. `youtube:player_client=default,-ios`
 * `player_skip`: Skip some network requests that are generally needed for 
robust extraction. One or more of `configs` (skip client configs), `webpage` 
(skip initial webpage), `js` (skip js player), `initial_data` (skip initial 
data/next ep request). While these options can help reduce the number of 
requests needed or avoid some rate-limiting, they could cause issues such as 
missing formats or metadata.  See 
[#860](https://github.com/yt-dlp/yt-dlp/pull/860) and 
[#12826](https://github.com/yt-dlp/yt-dlp/issues/12826) for more details
 * `webpage_skip`: Skip extraction of embedded webpage data. One or both of 
`player_response`, `initial_data`. These options are for testing purposes and 
don't skip any network requests
 * `player_params`: YouTube player parameters to use for player requests. Will 
overwrite any default ones set by yt-dlp.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yt-dlp/README.txt new/yt-dlp/README.txt
--- old/yt-dlp/README.txt       2025-08-23 01:59:43.000000000 +0200
+++ new/yt-dlp/README.txt       2025-08-28 01:58:15.000000000 +0200
@@ -2226,7 +2226,7 @@
 -   player_client: Clients to extract video data from. The currently
     available clients are web, web_safari, web_embedded, web_music,
     web_creator, mweb, ios, android, android_vr, tv, tv_simply and
-    tv_embedded. By default, tv,tv_simply,web is used, but
+    tv_embedded. By default, tv_simply,tv,web is used, but
     tv,web_safari,web is used when authenticating with cookies and
     tv,web_creator,web is used with premium accounts. The web_music
     client is added for music.youtube.com URLs when logged-in cookies
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yt-dlp/test/test_youtube_signature.py 
new/yt-dlp/test/test_youtube_signature.py
--- old/yt-dlp/test/test_youtube_signature.py   2025-08-23 01:59:23.000000000 
+0200
+++ new/yt-dlp/test/test_youtube_signature.py   2025-08-28 01:56:57.000000000 
+0200
@@ -148,6 +148,11 @@
         
'gN7a-hudCuAuPH6fByOk1_GNXN0yNMHShjZXS2VOgsEItAJz0tipeavEOmNdYN-wUtcEqD3bCXjc0iyKfAyZxCBGgIARwsSdQfJ2CJtt',
         
'ttJC2JfQdSswRAIgGBCxZyAfKyi0cjXCb3DqEctUw-NYdNmOEvaepit2zJAsIEggOVaSXZjhSHMNy0NXNG_1kOyBf6HPuAuCduh-',
     ),
+    (
+        
'https://www.youtube.com/s/player/5ec65609/player_ias_tcc.vflset/en_US/base.js',
+        
'AAJAJfQdSswRAIgNSN0GDUcHnCIXkKcF61yLBgDHiX1sUhOJdY4_GxunRYCIDeYNYP_16mQTPm5f1OVq3oV1ijUNYPjP4iUSMAjO9bZ',
+        
'AJfQdSswRAIgNSN0GDUcHnCIXkKcF61ZLBgDHiX1sUhOJdY4_GxunRYCIDyYNYP_16mQTPm5f1OVq3oV1ijUNYPjP4iUSMAjO9be',
+    ),
 ]
 
 _NSIG_TESTS = [
@@ -395,6 +400,10 @@
         
'https://www.youtube.com/s/player/010fbc8d/player_es6.vflset/en_US/base.js',
         '0hlOAlqjFszVvF4Z', 'R-H23bZGAsRFTg',
     ),
+    (
+        
'https://www.youtube.com/s/player/5ec65609/player_ias_tcc.vflset/en_US/base.js',
+        '6l5CTNx4AzIqH4MXM', 'NupToduxHBew1g',
+    ),
 ]
 
 
Binary files old/yt-dlp/yt-dlp and new/yt-dlp/yt-dlp differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yt-dlp/yt-dlp.1 new/yt-dlp/yt-dlp.1
--- old/yt-dlp/yt-dlp.1 2025-08-23 01:59:44.000000000 +0200
+++ new/yt-dlp/yt-dlp.1 2025-08-28 01:58:16.000000000 +0200
@@ -2669,7 +2669,7 @@
 \f[V]web_embedded\f[R], \f[V]web_music\f[R], \f[V]web_creator\f[R],
 \f[V]mweb\f[R], \f[V]ios\f[R], \f[V]android\f[R], \f[V]android_vr\f[R],
 \f[V]tv\f[R], \f[V]tv_simply\f[R] and \f[V]tv_embedded\f[R].
-By default, \f[V]tv,tv_simply,web\f[R] is used, but
+By default, \f[V]tv_simply,tv,web\f[R] is used, but
 \f[V]tv,web_safari,web\f[R] is used when authenticating with cookies and
 \f[V]tv,web_creator,web\f[R] is used with premium accounts.
 The \f[V]web_music\f[R] client is added for \f[V]music.youtube.com\f[R]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yt-dlp/yt_dlp/extractor/generic.py 
new/yt-dlp/yt_dlp/extractor/generic.py
--- old/yt-dlp/yt_dlp/extractor/generic.py      2025-08-23 01:59:23.000000000 
+0200
+++ new/yt-dlp/yt_dlp/extractor/generic.py      2025-08-28 01:56:57.000000000 
+0200
@@ -772,8 +772,8 @@
 
             if default_search in ('auto', 'auto_warning', 'fixup_error'):
                 if re.match(r'[^\s/]+\.[^\s/]+/', url):
-                    self.report_warning('The url doesn\'t specify the 
protocol, trying with http')
-                    return self.url_result('http://' + url)
+                    self.report_warning('The url doesn\'t specify the 
protocol, trying with https')
+                    return self.url_result('https://' + url)
                 elif default_search != 'fixup_error':
                     if default_search == 'auto_warning':
                         if re.match(r'^(?:url|URL)$', url):
@@ -786,9 +786,7 @@
                     return self.url_result('ytsearch:' + url)
 
             if default_search in ('error', 'fixup_error'):
-                raise ExtractorError(
-                    f'{url!r} is not a valid URL. '
-                    f'Set --default-search "ytsearch" (or run  yt-dlp 
"ytsearch:{url}" ) to search YouTube', expected=True)
+                raise ExtractorError(f'{url!r} is not a valid URL', 
expected=True)
             else:
                 if ':' not in default_search:
                     default_search += ':'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yt-dlp/yt_dlp/extractor/skeb.py 
new/yt-dlp/yt_dlp/extractor/skeb.py
--- old/yt-dlp/yt_dlp/extractor/skeb.py 2025-08-23 01:59:23.000000000 +0200
+++ new/yt-dlp/yt_dlp/extractor/skeb.py 2025-08-28 01:56:57.000000000 +0200
@@ -51,6 +51,20 @@
         },
         'playlist_count': 2,
         'expected_warnings': ['Skipping unsupported extension'],
+    }, {
+        'url': 'https://skeb.jp/@Yossshy_Music/works/13',
+        'info_dict': {
+            'ext': 'wav',
+            'id': '5566495',
+            'title': '13-1',
+            'description': 'md5:1026b8b9ae38c67c2d995970ec196550',
+            'uploader': 'Yossshy',
+            'uploader_id': 'Yossshy_Music',
+            'duration': 336,
+            'thumbnail': r're:https?://.+',
+            'tags': 'count:59',
+            'genres': ['music'],
+        },
     }]
 
     def _call_api(self, uploader_id, work_id):
@@ -87,7 +101,7 @@
         entries = []
         for idx, preview in enumerate(traverse_obj(works, ('previews', lambda 
_, v: url_or_none(v['url']))), 1):
             ext = traverse_obj(preview, ('information', 'extension', {str}))
-            if ext not in ('mp3', 'mp4'):
+            if ext not in ('mp3', 'mp4', 'wav'):
                 self.report_warning(f'Skipping unsupported extension "{ext}"')
                 continue
 
@@ -100,7 +114,7 @@
                         'url': preview['vtt_url'],
                     }],
                 } if url_or_none(preview.get('vtt_url')) else None,
-                'vcodec': 'none' if ext == 'mp3' else None,
+                'vcodec': 'none' if ext in ('mp3', 'wav') else None,
                 **info,
                 **traverse_obj(preview, {
                     'id': ('id', {str_or_none}),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yt-dlp/yt_dlp/extractor/youtube/_base.py 
new/yt-dlp/yt_dlp/extractor/youtube/_base.py
--- old/yt-dlp/yt_dlp/extractor/youtube/_base.py        2025-08-23 
01:59:23.000000000 +0200
+++ new/yt-dlp/yt_dlp/extractor/youtube/_base.py        2025-08-28 
01:56:57.000000000 +0200
@@ -305,12 +305,13 @@
             'client': {
                 'clientName': 'TVHTML5',
                 'clientVersion': '7.20250312.16.00',
-                # See: 
https://github.com/youtube/cobalt/blob/main/cobalt/browser/user_agent/user_agent_platform_info.cc#L506
-                'userAgent': 'Mozilla/5.0 (ChromiumStylePlatform) 
Cobalt/25.lts.30.1034943-gold (unlike Gecko), Unknown_TV_Unknown_0/Unknown 
(Unknown, Unknown)',
+                'userAgent': 'Mozilla/5.0 (ChromiumStylePlatform) 
Cobalt/Version',
             },
         },
         'INNERTUBE_CONTEXT_CLIENT_NAME': 7,
         'SUPPORTS_COOKIES': True,
+        # See: 
https://github.com/youtube/cobalt/blob/main/cobalt/browser/user_agent/user_agent_platform_info.cc#L506
+        'AUTHENTICATED_USER_AGENT': 'Mozilla/5.0 (ChromiumStylePlatform) 
Cobalt/25.lts.30.1034943-gold (unlike Gecko), Unknown_TV_Unknown_0/Unknown 
(Unknown, Unknown)',
     },
     'tv_simply': {
         'INNERTUBE_CONTEXT': {
@@ -369,6 +370,7 @@
         ytcfg.setdefault('REQUIRE_AUTH', False)
         ytcfg.setdefault('SUPPORTS_COOKIES', False)
         ytcfg.setdefault('PLAYER_PARAMS', None)
+        ytcfg.setdefault('AUTHENTICATED_USER_AGENT', None)
         ytcfg['INNERTUBE_CONTEXT']['client'].setdefault('hl', 'en')
 
         _, base_client, variant = _split_innertube_client(client)
@@ -656,7 +658,14 @@
     _YT_INITIAL_PLAYER_RESPONSE_RE = r'ytInitialPlayerResponse\s*='
 
     def _get_default_ytcfg(self, client='web'):
-        return copy.deepcopy(INNERTUBE_CLIENTS[client])
+        ytcfg = copy.deepcopy(INNERTUBE_CLIENTS[client])
+
+        # Currently, only the tv client needs to use an alternative user-agent 
when logged-in
+        if ytcfg.get('AUTHENTICATED_USER_AGENT') and self.is_authenticated:
+            client_context = ytcfg.setdefault('INNERTUBE_CONTEXT', 
{}).setdefault('client', {})
+            client_context['userAgent'] = ytcfg['AUTHENTICATED_USER_AGENT']
+
+        return ytcfg
 
     def _get_innertube_host(self, client='web'):
         return INNERTUBE_CLIENTS[client]['INNERTUBE_HOST']
@@ -955,7 +964,8 @@
         ytcfg = self.extract_ytcfg(video_id, webpage) or {}
 
         # Workaround for https://github.com/yt-dlp/yt-dlp/issues/12563
-        if client == 'tv':
+        # But it's not effective when logged-in
+        if client == 'tv' and not self.is_authenticated:
             config_info = traverse_obj(ytcfg, (
                 'INNERTUBE_CONTEXT', 'client', 'configInfo', {dict})) or {}
             config_info.pop('appInstallData', None)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yt-dlp/yt_dlp/extractor/youtube/_video.py 
new/yt-dlp/yt_dlp/extractor/youtube/_video.py
--- old/yt-dlp/yt_dlp/extractor/youtube/_video.py       2025-08-23 
01:59:23.000000000 +0200
+++ new/yt-dlp/yt_dlp/extractor/youtube/_video.py       2025-08-28 
01:56:57.000000000 +0200
@@ -257,7 +257,7 @@
         '401': {'ext': 'mp4', 'height': 2160, 'format_note': 'DASH video', 
'vcodec': 'av01.0.12M.08'},
     }
     _SUBTITLE_FORMATS = ('json3', 'srv1', 'srv2', 'srv3', 'ttml', 'srt', 'vtt')
-    _DEFAULT_CLIENTS = ('tv', 'tv_simply', 'web')
+    _DEFAULT_CLIENTS = ('tv_simply', 'tv', 'web')
     _DEFAULT_AUTHED_CLIENTS = ('tv', 'web_safari', 'web')
     # Premium does not require POT (except for subtitles)
     _DEFAULT_PREMIUM_CLIENTS = ('tv', 'web_creator', 'web')
@@ -1817,6 +1817,7 @@
 
     _PLAYER_JS_VARIANT_MAP = {
         'main': 'player_ias.vflset/en_US/base.js',
+        'tcc': 'player_ias_tcc.vflset/en_US/base.js',
         'tce': 'player_ias_tce.vflset/en_US/base.js',
         'es5': 'player_es5.vflset/en_US/base.js',
         'es6': 'player_es6.vflset/en_US/base.js',
@@ -3610,6 +3611,10 @@
             if f.get('source_preference') is None:
                 f['source_preference'] = -1
 
+            # Deprioritize since its pre-merged m3u8 formats may have lower 
quality audio streams
+            if client_name == 'web_safari' and proto == 'hls' and live_status 
!= 'is_live':
+                f['source_preference'] -= 1
+
             if missing_pot:
                 f['format_note'] = join_nonempty(f.get('format_note'), 
'MISSING POT', delim=' ')
                 f['source_preference'] -= 20
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yt-dlp/yt_dlp/version.py new/yt-dlp/yt_dlp/version.py
--- old/yt-dlp/yt_dlp/version.py        2025-08-23 01:59:38.000000000 +0200
+++ new/yt-dlp/yt_dlp/version.py        2025-08-28 01:58:09.000000000 +0200
@@ -1,8 +1,8 @@
 # Autogenerated by devscripts/update-version.py
 
-__version__ = '2025.08.22'
+__version__ = '2025.08.27'
 
-RELEASE_GIT_HEAD = '5c8bcfdbc638dfde13e93157637d8521413ed774'
+RELEASE_GIT_HEAD = '8cd37b85d492edb56a4f7506ea05527b85a6b02b'
 
 VARIANT = None
 
@@ -12,4 +12,4 @@
 
 ORIGIN = 'yt-dlp/yt-dlp'
 
-_pkg_version = '2025.08.22'
+_pkg_version = '2025.08.27'

Reply via email to