diff --git a/client/app/components/TopTracks.tsx b/client/app/components/TopTracks.tsx
index 85fef79..bfe31ca 100644
--- a/client/app/components/TopTracks.tsx
+++ b/client/app/components/TopTracks.tsx
@@ -28,17 +28,19 @@ const TopTracks = (props: Props) => {
queryFn: ({ queryKey }) => getTopTracks(queryKey[1] as getItemsArgs),
});
+ const header = "Top tracks";
+
if (isPending) {
return (
- Top Tracks
+ {header}
diff --git a/client/app/routes/MediaItems/Album.tsx b/client/app/routes/MediaItems/Album.tsx
index b300422..afba6f7 100644
--- a/client/app/routes/MediaItems/Album.tsx
+++ b/client/app/routes/MediaItems/Album.tsx
@@ -50,17 +50,17 @@ export default function Album() {
{album.listen_count} play{album.listen_count > 1 ? "s" : ""}
)}
- {
+ {album.time_listened && (
{timeListenedString(album.time_listened)}
- }
- {
+ )}
+ {album.first_listen && (
Listening since{" "}
{new Date(album.first_listen * 1000).toLocaleDateString()}
- }
+ )}
}
>
diff --git a/client/app/routes/MediaItems/Track.tsx b/client/app/routes/MediaItems/Track.tsx
index 2a45e2f..20258c1 100644
--- a/client/app/routes/MediaItems/Track.tsx
+++ b/client/app/routes/MediaItems/Track.tsx
@@ -49,23 +49,28 @@ export default function Track() {
}}
subContent={
-
appears on {album.title}
- {track.listen_count && (
+
+ Appears on{" "}
+
+ {album.title}
+
+
+ {track.listen_count !== 0 && (
{track.listen_count} play{track.listen_count > 1 ? "s" : ""}
)}
- {
+ {track.time_listened !== 0 && (
{timeListenedString(track.time_listened)}
- }
- {
+ )}
+ {track.first_listen > 0 && (
Listening since{" "}
{new Date(track.first_listen * 1000).toLocaleDateString()}
- }
+ )}
}
>
From df59605418a4f0e250e4f2c991e911620d107022 Mon Sep 17 00:00:00 2001
From: Gabe Farrell <90876006+gabehf@users.noreply.github.com>
Date: Wed, 14 Jan 2026 00:08:05 -0500
Subject: [PATCH 03/37] feat: backfill duration from musicbrainz (#135)
* feat: backfill durations from musicbrainz
* chore: make request body dump info level
---
db/queries/track.sql | 10 ++++
engine/engine.go | 59 ++++++++++++++-----
engine/handlers/lbz_submit_listen.go | 2 +-
internal/catalog/duration.go | 84 ++++++++++++++++++++++++++++
internal/db/db.go | 1 +
internal/db/psql/track.go | 26 +++++++++
internal/repository/track.sql.go | 42 ++++++++++++++
7 files changed, 208 insertions(+), 16 deletions(-)
create mode 100644 internal/catalog/duration.go
diff --git a/db/queries/track.sql b/db/queries/track.sql
index af7006a..933fcc1 100644
--- a/db/queries/track.sql
+++ b/db/queries/track.sql
@@ -137,3 +137,13 @@ WHERE artist_id = $1 AND track_id = $2;
-- name: DeleteTrack :exec
DELETE FROM tracks WHERE id = $1;
+
+-- name: GetTracksWithNoDurationButHaveMbzID :many
+SELECT
+ *
+FROM tracks_with_title
+WHERE duration = 0
+ AND musicbrainz_id IS NOT NULL
+ AND id > $2
+ORDER BY id ASC
+LIMIT $1;
diff --git a/engine/engine.go b/engine/engine.go
index b8e01b8..f259efb 100644
--- a/engine/engine.go
+++ b/engine/engine.go
@@ -2,6 +2,7 @@ package engine
import (
"context"
+ "encoding/json"
"fmt"
"io"
"net/http"
@@ -105,6 +106,32 @@ func Run(
l.Warn().Msg("Engine: MusicBrainz client disabled")
}
+ if cfg.SubsonicEnabled() {
+ l.Debug().Msg("Engine: Checking Subsonic configuration")
+ pingURL := cfg.SubsonicUrl() + "/rest/ping.view?" + cfg.SubsonicParams() + "&f=json"
+
+ resp, err := http.Get(pingURL)
+ if err != nil {
+ l.Fatal().Err(err).Msg("Engine: Failed to contact Subsonic server! Ensure the provided URL is correct")
+ } else {
+ defer resp.Body.Close()
+
+ var result struct {
+ Response struct {
+ Status string `json:"status"`
+ } `json:"subsonic-response"`
+ }
+
+ if err := json.NewDecoder(resp.Body).Decode(&result); err != nil {
+ l.Fatal().Err(err).Msg("Engine: Failed to parse Subsonic response")
+ } else if result.Response.Status != "ok" {
+ l.Fatal().Msg("Engine: Provided Subsonic credentials are invalid")
+ } else {
+ l.Info().Msg("Engine: Subsonic credentials validated successfully")
+ }
+ }
+ }
+
l.Debug().Msg("Engine: Initializing image sources")
images.Initialize(images.ImageSourceOpts{
UserAgent: cfg.UserAgent(),
@@ -201,6 +228,8 @@ func Run(
l.Info().Msg("Engine: Pruning orphaned images")
go catalog.PruneOrphanedImages(logger.NewContext(l), store)
+ l.Info().Msg("Engine: Running duration backfill task")
+ go catalog.BackfillTrackDurationsFromMusicBrainz(ctx, store, mbzC)
l.Info().Msg("Engine: Initialization finished")
quit := make(chan os.Signal, 1)
@@ -221,19 +250,19 @@ func Run(
}
func RunImporter(l *zerolog.Logger, store db.DB, mbzc mbz.MusicBrainzCaller) {
- l.Debug().Msg("Checking for import files...")
+ l.Debug().Msg("Importer: Checking for import files...")
files, err := os.ReadDir(path.Join(cfg.ConfigDir(), "import"))
if err != nil {
- l.Err(err).Msg("Failed to read files from import dir")
+ l.Err(err).Msg("Importer: Failed to read files from import dir")
}
if len(files) > 0 {
- l.Info().Msg("Files found in import directory. Attempting to import...")
+ l.Info().Msg("Importer: Files found in import directory. Attempting to import...")
} else {
return
}
defer func() {
if r := recover(); r != nil {
- l.Error().Interface("recover", r).Msg("Panic when importing files")
+ l.Error().Interface("recover", r).Msg("Importer: Panic when importing files")
}
}()
for _, file := range files {
@@ -241,37 +270,37 @@ func RunImporter(l *zerolog.Logger, store db.DB, mbzc mbz.MusicBrainzCaller) {
continue
}
if strings.Contains(file.Name(), "Streaming_History_Audio") {
- l.Info().Msgf("Import file %s detecting as being Spotify export", file.Name())
+ l.Info().Msgf("Importer: Import file %s detecting as being Spotify export", file.Name())
err := importer.ImportSpotifyFile(logger.NewContext(l), store, file.Name())
if err != nil {
- l.Err(err).Msgf("Failed to import file: %s", file.Name())
+ l.Err(err).Msgf("Importer: Failed to import file: %s", file.Name())
}
} else if strings.Contains(file.Name(), "maloja") {
- l.Info().Msgf("Import file %s detecting as being Maloja export", file.Name())
+ l.Info().Msgf("Importer: Import file %s detecting as being Maloja export", file.Name())
err := importer.ImportMalojaFile(logger.NewContext(l), store, file.Name())
if err != nil {
- l.Err(err).Msgf("Failed to import file: %s", file.Name())
+ l.Err(err).Msgf("Importer: Failed to import file: %s", file.Name())
}
} else if strings.Contains(file.Name(), "recenttracks") {
- l.Info().Msgf("Import file %s detecting as being ghan.nl LastFM export", file.Name())
+ l.Info().Msgf("Importer: Import file %s detecting as being ghan.nl LastFM export", file.Name())
err := importer.ImportLastFMFile(logger.NewContext(l), store, mbzc, file.Name())
if err != nil {
- l.Err(err).Msgf("Failed to import file: %s", file.Name())
+ l.Err(err).Msgf("Importer: Failed to import file: %s", file.Name())
}
} else if strings.Contains(file.Name(), "listenbrainz") {
- l.Info().Msgf("Import file %s detecting as being ListenBrainz export", file.Name())
+ l.Info().Msgf("Importer: Import file %s detecting as being ListenBrainz export", file.Name())
err := importer.ImportListenBrainzExport(logger.NewContext(l), store, mbzc, file.Name())
if err != nil {
- l.Err(err).Msgf("Failed to import file: %s", file.Name())
+ l.Err(err).Msgf("Importer: Failed to import file: %s", file.Name())
}
} else if strings.Contains(file.Name(), "koito") {
- l.Info().Msgf("Import file %s detecting as being Koito export", file.Name())
+ l.Info().Msgf("Importer: Import file %s detecting as being Koito export", file.Name())
err := importer.ImportKoitoFile(logger.NewContext(l), store, file.Name())
if err != nil {
- l.Err(err).Msgf("Failed to import file: %s", file.Name())
+ l.Err(err).Msgf("Importer: Failed to import file: %s", file.Name())
}
} else {
- l.Warn().Msgf("File %s not recognized as a valid import file; make sure it is valid and named correctly", file.Name())
+ l.Warn().Msgf("Importer: File %s not recognized as a valid import file; make sure it is valid and named correctly", file.Name())
}
}
}
diff --git a/engine/handlers/lbz_submit_listen.go b/engine/handlers/lbz_submit_listen.go
index e92eb48..91eeaac 100644
--- a/engine/handlers/lbz_submit_listen.go
+++ b/engine/handlers/lbz_submit_listen.go
@@ -103,7 +103,7 @@ func LbzSubmitListenHandler(store db.DB, mbzc mbz.MusicBrainzCaller) func(w http
return
}
- l.Debug().Any("request_body", req).Msg("LbzSubmitListenHandler: Parsed request body")
+ l.Info().Any("request_body", req).Msg("LbzSubmitListenHandler: Parsed request body")
if len(req.Payload) < 1 {
l.Debug().Msg("LbzSubmitListenHandler: Payload is empty")
diff --git a/internal/catalog/duration.go b/internal/catalog/duration.go
new file mode 100644
index 0000000..808ebd0
--- /dev/null
+++ b/internal/catalog/duration.go
@@ -0,0 +1,84 @@
+package catalog
+
+import (
+ "context"
+ "fmt"
+
+ "github.com/gabehf/koito/internal/db"
+ "github.com/gabehf/koito/internal/logger"
+ "github.com/gabehf/koito/internal/mbz"
+ "github.com/google/uuid"
+)
+
+func BackfillTrackDurationsFromMusicBrainz(
+ ctx context.Context,
+ store db.DB,
+ mbzCaller mbz.MusicBrainzCaller,
+) error {
+ l := logger.FromContext(ctx)
+ l.Info().Msg("BackfillTrackDurationsFromMusicBrainz: Starting backfill of track durations from MusicBrainz")
+
+ var from int32 = 0
+
+ for {
+ tracks, err := store.GetTracksWithNoDurationButHaveMbzID(ctx, from)
+ if err != nil {
+ return fmt.Errorf("BackfillTrackDurationsFromMusicBrainz: failed to fetch tracks for duration backfill: %w", err)
+ }
+
+ // nil, nil means no more results
+ if len(tracks) == 0 {
+ if from == 0 {
+ l.Info().Msg("BackfillTrackDurationsFromMusicBrainz: No tracks need updating. Skipping backfill...")
+ } else {
+ l.Info().Msg("BackfillTrackDurationsFromMusicBrainz: Backfill complete")
+ }
+ return nil
+ }
+
+ for _, track := range tracks {
+ from = track.ID
+
+ if track.MbzID == nil || *track.MbzID == uuid.Nil {
+ continue
+ }
+
+ l.Debug().
+ Str("title", track.Title).
+ Str("mbz_id", track.MbzID.String()).
+ Msg("BackfillTrackDurationsFromMusicBrainz: Backfilling duration from MusicBrainz")
+
+ mbzTrack, err := mbzCaller.GetTrack(ctx, *track.MbzID)
+ if err != nil {
+ l.Err(err).
+ Str("title", track.Title).
+ Msg("BackfillTrackDurationsFromMusicBrainz: Failed to fetch track from MusicBrainz")
+ continue
+ }
+
+ if mbzTrack.LengthMs <= 0 {
+ l.Debug().
+ Str("title", track.Title).
+ Msg("BackfillTrackDurationsFromMusicBrainz: MusicBrainz track has no duration")
+ continue
+ }
+
+ durationSeconds := int32(mbzTrack.LengthMs / 1000)
+
+ err = store.UpdateTrack(ctx, db.UpdateTrackOpts{
+ ID: track.ID,
+ Duration: durationSeconds,
+ })
+ if err != nil {
+ l.Err(err).
+ Str("title", track.Title).
+ Msg("BackfillTrackDurationsFromMusicBrainz: Failed to update track duration")
+ } else {
+ l.Info().
+ Str("title", track.Title).
+ Int32("duration_seconds", durationSeconds).
+ Msg("BackfillTrackDurationsFromMusicBrainz: Track duration backfilled successfully")
+ }
+ }
+ }
+}
diff --git a/internal/db/db.go b/internal/db/db.go
index e725bc8..4695967 100644
--- a/internal/db/db.go
+++ b/internal/db/db.go
@@ -16,6 +16,7 @@ type DB interface {
GetAlbum(ctx context.Context, opts GetAlbumOpts) (*models.Album, error)
GetAlbumWithNoMbzIDByTitles(ctx context.Context, artistId int32, titles []string) (*models.Album, error)
GetTrack(ctx context.Context, opts GetTrackOpts) (*models.Track, error)
+ GetTracksWithNoDurationButHaveMbzID(ctx context.Context, from int32) ([]*models.Track, error)
GetArtistsForAlbum(ctx context.Context, id int32) ([]*models.Artist, error)
GetArtistsForTrack(ctx context.Context, id int32) ([]*models.Artist, error)
GetTopTracksPaginated(ctx context.Context, opts GetItemsOpts) (*PaginatedResponse[*models.Track], error)
diff --git a/internal/db/psql/track.go b/internal/db/psql/track.go
index 6634397..f20263a 100644
--- a/internal/db/psql/track.go
+++ b/internal/db/psql/track.go
@@ -375,3 +375,29 @@ func (d *Psql) SetPrimaryTrackArtist(ctx context.Context, id int32, artistId int
}
return tx.Commit(ctx)
}
+
+// returns nil, nil when no results
+func (d *Psql) GetTracksWithNoDurationButHaveMbzID(ctx context.Context, from int32) ([]*models.Track, error) {
+ results, err := d.q.GetTracksWithNoDurationButHaveMbzID(ctx, repository.GetTracksWithNoDurationButHaveMbzIDParams{
+ Limit: 20,
+ ID: 0,
+ })
+ if errors.Is(err, pgx.ErrNoRows) {
+ return nil, nil
+ } else if err != nil {
+ return nil, fmt.Errorf("GetTracksWithNoDurationButHaveMbzID: %w", err)
+ }
+
+ ret := make([]*models.Track, 0)
+
+ for _, v := range results {
+ ret = append(ret, &models.Track{
+ ID: v.ID,
+ Duration: v.Duration,
+ MbzID: v.MusicBrainzID,
+ Title: v.Title,
+ })
+ }
+
+ return ret, nil
+}
diff --git a/internal/repository/track.sql.go b/internal/repository/track.sql.go
index 883e13c..6b11b01 100644
--- a/internal/repository/track.sql.go
+++ b/internal/repository/track.sql.go
@@ -447,6 +447,48 @@ func (q *Queries) GetTrackByTrackInfo(ctx context.Context, arg GetTrackByTrackIn
return i, err
}
+const getTracksWithNoDurationButHaveMbzID = `-- name: GetTracksWithNoDurationButHaveMbzID :many
+SELECT
+ id, musicbrainz_id, duration, release_id, title
+FROM tracks_with_title
+WHERE duration = 0
+ AND musicbrainz_id IS NOT NULL
+ AND id > $2
+ORDER BY id ASC
+LIMIT $1
+`
+
+type GetTracksWithNoDurationButHaveMbzIDParams struct {
+ Limit int32
+ ID int32
+}
+
+func (q *Queries) GetTracksWithNoDurationButHaveMbzID(ctx context.Context, arg GetTracksWithNoDurationButHaveMbzIDParams) ([]TracksWithTitle, error) {
+ rows, err := q.db.Query(ctx, getTracksWithNoDurationButHaveMbzID, arg.Limit, arg.ID)
+ if err != nil {
+ return nil, err
+ }
+ defer rows.Close()
+ var items []TracksWithTitle
+ for rows.Next() {
+ var i TracksWithTitle
+ if err := rows.Scan(
+ &i.ID,
+ &i.MusicBrainzID,
+ &i.Duration,
+ &i.ReleaseID,
+ &i.Title,
+ ); err != nil {
+ return nil, err
+ }
+ items = append(items, i)
+ }
+ if err := rows.Err(); err != nil {
+ return nil, err
+ }
+ return items, nil
+}
+
const insertTrack = `-- name: InsertTrack :one
INSERT INTO tracks (musicbrainz_id, release_id, duration)
VALUES ($1, $2, $3)
From 25d7bb41c1c3d44cbd7009a776f693cb687c2127 Mon Sep 17 00:00:00 2001
From: Gabe Farrell <90876006+gabehf@users.noreply.github.com>
Date: Wed, 14 Jan 2026 00:24:19 -0500
Subject: [PATCH 04/37] Revise README for project status and update screenshots
Updated project status to reflect active development and instability. Added new images to the screenshots section and made minor text adjustments.
Also since when does AI write GitHub default commit messages...
---
README.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/README.md b/README.md
index 2bc10ce..f657f5f 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@
Koito is a modern, themeable ListenBrainz-compatible scrobbler for self-hosters who want control over their data and insights into their listening habits.
It supports relaying to other compatible scrobblers, so you can try it safely without replacing your current setup.
-> This project is currently pre-release, and therefore you can expect rapid development and some bugs. If you don't want to replace your current scrobbler
+> This project is under active development and still considered "unstable", and therefore you can expect some bugs. If you don't want to replace your current scrobbler
with Koito quite yet, you can [set up a relay](https://koito.io/guides/scrobbler/#set-up-a-relay) from Koito to another ListenBrainz-compatible
scrobbler. This is what I've been doing for the entire development of this app and it hasn't failed me once. Or, you can always use something
like [multi-scrobbler](https://github.com/FoxxMD/multi-scrobbler).
@@ -23,8 +23,9 @@ You can view my public instance with my listening data at https://koito.mnrva.de
## Screenshots

-
-
+

+

+
## Installation
@@ -84,5 +85,4 @@ Not just during development, you can see my complete listening data on my [live
#### Random notes
- I find it a little annoying when READMEs use emoji but everyone else is doing it so I felt like I had to...
-- It's funny how you can see the days in my listening history when I was just working on this project because they have way more listens than other days.
-- About 50% of the reason I built this was minor/not-so-minor greivances with Maloja. Could I have just contributed to Maloja? Maybe, but I like building stuff and I like Koito's UI a lot more anyways.
\ No newline at end of file
+- About 50% of the reason I built this was minor/not-so-minor greivances with Maloja. Could I have just contributed to Maloja? Maybe, but I like building stuff and I like Koito's UI a lot more anyways.
From feef66da122a34dd2cbf6da0c1c18a1234d18513 Mon Sep 17 00:00:00 2001
From: Gabe Farrell
Date: Wed, 14 Jan 2026 01:09:17 -0500
Subject: [PATCH 05/37] fix: add required parameters for subsonic request
---
engine/engine.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/engine/engine.go b/engine/engine.go
index f259efb..31fe552 100644
--- a/engine/engine.go
+++ b/engine/engine.go
@@ -108,7 +108,7 @@ func Run(
if cfg.SubsonicEnabled() {
l.Debug().Msg("Engine: Checking Subsonic configuration")
- pingURL := cfg.SubsonicUrl() + "/rest/ping.view?" + cfg.SubsonicParams() + "&f=json"
+ pingURL := cfg.SubsonicUrl() + "/rest/ping.view?" + cfg.SubsonicParams() + "&f=json&v=1&c=koito"
resp, err := http.Get(pingURL)
if err != nil {
From 231e751be30157741ca1cb259944bc510e8b17b8 Mon Sep 17 00:00:00 2001
From: Gabe Farrell
Date: Wed, 14 Jan 2026 01:26:01 -0500
Subject: [PATCH 06/37] docs: add navidrome quickstart guide
---
docs/astro.config.mjs | 98 ++++++++++--------
docs/src/assets/navidrome_lbz_switch.png | Bin 0 -> 182662 bytes
docs/src/content/docs/quickstart/navidrome.md | 68 ++++++++++++
3 files changed, 123 insertions(+), 43 deletions(-)
create mode 100644 docs/src/assets/navidrome_lbz_switch.png
create mode 100644 docs/src/content/docs/quickstart/navidrome.md
diff --git a/docs/astro.config.mjs b/docs/astro.config.mjs
index 845acb4..7875016 100644
--- a/docs/astro.config.mjs
+++ b/docs/astro.config.mjs
@@ -1,57 +1,69 @@
// @ts-check
-import { defineConfig } from 'astro/config';
-import starlight from '@astrojs/starlight';
+import { defineConfig } from "astro/config";
+import starlight from "@astrojs/starlight";
-import tailwindcss from '@tailwindcss/vite';
+import tailwindcss from "@tailwindcss/vite";
// https://astro.build/config
export default defineConfig({
integrations: [
- starlight({
- head: [
- {
- tag: 'script',
- attrs: {
- src: 'https://static.cloudflareinsights.com/beacon.min.js',
- 'data-cf-beacon': '{"token": "1948caaaba10463fa1d310ee02b0951c"}',
- defer: true,
- }
- }
- ],
- title: 'Koito',
- logo: {
- src: './src/assets/logo_text.png',
- replacesTitle: true,
+ starlight({
+ head: [
+ {
+ tag: "script",
+ attrs: {
+ src: "https://static.cloudflareinsights.com/beacon.min.js",
+ "data-cf-beacon": '{"token": "1948caaaba10463fa1d310ee02b0951c"}',
+ defer: true,
},
- social: [{ icon: 'github', label: 'GitHub', href: 'https://github.com/gabehf/koito' }],
- sidebar: [
- {
- label: 'Guides',
- items: [
- // Each item here is one entry in the navigation menu.
- { label: 'Installation', slug: 'guides/installation' },
- { label: 'Importing Data', slug: 'guides/importing' },
- { label: 'Setting up the Scrobbler', slug: 'guides/scrobbler' },
- { label: 'Editing Data', slug: 'guides/editing' },
- ],
- },
- {
- label: 'Reference',
- items: [
- { label: 'Configuration Options', slug: 'reference/configuration' },
- ]
- },
+ },
+ ],
+ title: "Koito",
+ logo: {
+ src: "./src/assets/logo_text.png",
+ replacesTitle: true,
+ },
+ social: [
+ {
+ icon: "github",
+ label: "GitHub",
+ href: "https://github.com/gabehf/koito",
+ },
+ ],
+ sidebar: [
+ {
+ label: "Guides",
+ items: [
+ // Each item here is one entry in the navigation menu.
+ { label: "Installation", slug: "guides/installation" },
+ { label: "Importing Data", slug: "guides/importing" },
+ { label: "Setting up the Scrobbler", slug: "guides/scrobbler" },
+ { label: "Editing Data", slug: "guides/editing" },
],
- customCss: [
- // Path to your Tailwind base styles:
- './src/styles/global.css',
- ],
- }),
- ],
+ },
+ {
+ label: "Quickstart",
+ items: [
+ { label: "Setup with Navidrome", slug: "quickstart/navidrome" },
+ ],
+ },
+ {
+ label: "Reference",
+ items: [
+ { label: "Configuration Options", slug: "reference/configuration" },
+ ],
+ },
+ ],
+ customCss: [
+ // Path to your Tailwind base styles:
+ "./src/styles/global.css",
+ ],
+ }),
+ ],
site: "https://koito.io",
vite: {
plugins: [tailwindcss()],
},
-});
\ No newline at end of file
+});
diff --git a/docs/src/assets/navidrome_lbz_switch.png b/docs/src/assets/navidrome_lbz_switch.png
new file mode 100644
index 0000000000000000000000000000000000000000..a8b44be848e3a3c4110126b465902368e5649916
GIT binary patch
literal 182662
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