From 4d04551ab5fafb0af841d8448fd376dc2a135621 Mon Sep 17 00:00:00 2001 From: JOY <5027251+JOY@users.noreply.github.com> Date: Tue, 27 Oct 2026 23:35:44 +0700 Subject: [PATCH 01/15] ci(ops): merge-when-green writes a commitlint-clean squash message (#1130) (#1133) * ci(ops): merge-when-green writes a commitlint-clean squash message (#1130) GitHub's default squash message keeps each commit's long lines and mixes the co-author trailers into the body, so the head of dev could fail the commitlint check of the next promotion PR (DOS/Rate#1128). The script now sends commit_title (the PR title with its number, cut at a word if it would pass 100 characters) and commit_message (each commit as a list item, wrapped at 100 characters, trailers gathered once into a footer). Co-Authored-By: Claude Opus 5.5 * ci(ops): refuse unfit titles, send the merge as JSON on stdin (#1130) Review follow-up on PR #1133. A title that is not a conventional header or does not fit " (#n)" in 100 characters is refused before waiting, instead of being cut into an empty or start-case subject. The merge fields go to gh on stdin, so a long squash message is not over the Windows command line limit. Long words split between characters, a trailer over 100 characters is left out instead of wrapped, a PR whose commits cannot all be listed is refused, and the commit-list retry counter resets after a success. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs(release): merge-when-green refuses titles that cannot carry (#n) (#1130) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> --- Docs/Resources/RELEASE.md | 2 +- scripts/ops/lib.mjs | 3 +- scripts/ops/merge-when-green.mjs | 159 +++++++++++++++++++++++++- scripts/ops/merge-when-green.test.mjs | 107 +++++++++++++++++ 4 files changed, 264 insertions(+), 7 deletions(-) diff --git a/Docs/Resources/RELEASE.md b/Docs/Resources/RELEASE.md index fcfb5c3db..34442a318 100644 --- a/Docs/Resources/RELEASE.md +++ b/Docs/Resources/RELEASE.md @@ -11,7 +11,7 @@ This is the release workflow for `rate.vn`. It follows the same model as DOS/DOS ## Normal release -1. Feature PRs go into `dev` as usual: review, green required checks (`Typecheck & Build Monorepo`, `E2E (Playwright)`, `Secret scan (gitleaks)`, `task-claim`), squash merge. +1. Feature PRs go into `dev` as usual: review, green required checks (`Typecheck & Build Monorepo`, `E2E (Playwright)`, `Secret scan (gitleaks)`, `task-claim`), squash merge. `node scripts/ops/merge-when-green.mjs <pr>` writes the squash commit's message itself: the PR title with `(#<pr>)`, then each commit wrapped at 100 characters, with the co-author trailers in a footer. It refuses a PR whose title is not a conventional header or does not fit `<title> (#<pr>)` in 100 characters: shorten the title. The promotion PR's `commitlint` check lints the head of `dev`, which is usually that squash commit, so it must pass `commitlint.config.ts` (DOS/Rate#1130). 2. Check `dev` on its Vercel Preview deployment. 3. Open the promotion PR from `dev` itself, not from a copy branch: `gh pr create --repo DOS/Rate --base main --head dev --title "chore(release): promote dev to main"` diff --git a/scripts/ops/lib.mjs b/scripts/ops/lib.mjs index 297cd4b39..e7c6f4ff1 100644 --- a/scripts/ops/lib.mjs +++ b/scripts/ops/lib.mjs @@ -7,9 +7,10 @@ import { pathToFileURL } from 'node:url'; export const DEFAULT_REPO = 'DOS/Rate'; -export function gh(args, { allowFailure = false } = {}) { +export function gh(args, { allowFailure = false, input } = {}) { const r = spawnSync('gh', args, { encoding: 'utf8', + input, maxBuffer: 64 * 1024 * 1024, }); if (r.error) throw r.error; diff --git a/scripts/ops/merge-when-green.mjs b/scripts/ops/merge-when-green.mjs index e1f258229..93426e0b9 100644 --- a/scripts/ops/merge-when-green.mjs +++ b/scripts/ops/merge-when-green.mjs @@ -131,6 +131,110 @@ export function shouldDeleteBranch({ method, headRef, headRepo, baseRepo }) { ); } +/** + * commitlint's limit (commitlint.config.ts) for the header and for every body + * and footer line. The commitlint check of a dev to main promotion lints the + * head of dev, which is usually a squash commit made here (DOS/Rate#1130). + */ +export const MAX_LINE = 100; +// commitlint exempts any line holding a URL from the line limit. +const URL_LINE = /\bhttps?:\/\/\S+/; +const TRAILER = /^(?:co-authored-by|signed-off-by):\s*\S/i; +const LIST_MARKER = /^\s*(?:[-*+]\s+|\d+[.)]\s+)?/; + +/** + * One line as lines of at most `width` characters: words wrap under the text + * of a list item, and a word longer than a whole line is split. + */ +export function wrapLine(line, width = MAX_LINE) { + if (!(width >= 2)) throw new RangeError(`cannot wrap to width ${width}`); + if (line.length <= width || URL_LINE.test(line)) return [line]; + const marker = line.match(LIST_MARKER)[0]; + const first = marker.length <= width / 2 ? marker : ''; + const hang = ' '.repeat(first.length); + const lines = []; + let current = first; + let empty = true; + for (let word of line.slice(first.length).split(/\s+/).filter(Boolean)) { + for (;;) { + const sep = empty ? '' : ' '; + if (current.length + sep.length + word.length <= width) { + current += sep + word; + empty = false; + break; + } + if (empty) { + // Not even an empty line holds the word: split it. + // Cut between characters, never inside a surrogate pair. + const room = width - current.length; + let piece = ''; + for (const char of word) { + if (piece.length + char.length > room) break; + piece += char; + } + if (piece === '') piece = word.slice(0, Math.max(room, 1)); + lines.push(current + piece); + word = word.slice(piece.length); + current = hang; + continue; + } + lines.push(current); + current = hang; + empty = true; + } + } + if (!empty) lines.push(current); + return lines; +} + +// `type(scope)!: subject`, the header shape commitlint's parser reads. +const CONVENTIONAL_HEADER = /^[a-z]+(?:\([^()\r\n]*\))?!?: \S/; + +/** + * The squash commit's header: the PR title with its number, which promote.mjs + * reads back. Null when the title is not a conventional header or the header + * is over the limit: cutting it could leave an empty or start-case subject. + */ +export function squashTitle(title, number) { + const text = title.trim().replace(/\s+/g, ' '); + const header = `${text} (#${number})`; + return CONVENTIONAL_HEADER.test(text) && header.length <= MAX_LINE + ? header + : null; +} + +/** + * The squash commit's body, like GitHub's default (each commit as a list + * item), with every line wrapped to the limit and the commits' co-author and + * sign-off trailers gathered once each into a footer after a blank line. + */ +export function squashBody(messages) { + const trailers = new Map(); + const items = []; + for (const message of messages) { + const lines = []; + for (const line of message.replace(/\r\n?/g, '\n').split('\n')) { + if (TRAILER.test(line.trim())) { + const trailer = line.trim().replace(/:\s*/, ': '); + const key = trailer.toLowerCase(); + if (!trailers.has(key)) trailers.set(key, trailer); + } else { + lines.push(line.trimEnd()); + } + } + while (lines.length > 0 && lines.at(-1) === '') lines.pop(); + while (lines.length > 0 && lines[0] === '') lines.shift(); + if (lines.length === 0) continue; + lines[0] = `* ${lines[0]}`; + items.push(lines.flatMap((line) => wrapLine(line)).join('\n')); + } + // A wrapped trailer no longer credits anyone: leave out one too long. + const footer = [...trailers.values()].filter( + (line) => line.length <= MAX_LINE + ); + return [items.join('\n\n'), footer.join('\n')].filter(Boolean).join('\n\n'); +} + /** * What to do with the PR now: 'merge', 'wait', or a final 'done' / 'fail' * with a one-line message. @@ -210,6 +314,7 @@ export async function mergeWhenGreen({ let blockedPolls = 0; let apiErrors = 0; let mergeRefusals = 0; + let commitListErrors = 0; let branchUpdates = 0; let lastUpdatedSha = null; for (;;) { @@ -249,6 +354,12 @@ export async function mergeWhenGreen({ message: `PR ${number}: cannot --ignore required check(s) ${conflict.join(', ')}`, }; } + if (method === 'squash' && !squashTitle(pr.title, number)) { + return { + ok: false, + message: `PR ${number}: its title must be a conventional header that fits "<title> (#${number})" in ${MAX_LINE} characters, so the squash commit passes commitlint`, + }; + } } const checks = evaluateChecks(head.runs, head.statuses, { ignore: [...IGNORED_CHECKS, ...ignore], @@ -293,20 +404,58 @@ export async function mergeWhenGreen({ continue; } if (next.action === 'merge') { + // GitHub's default squash message keeps the commits' long lines and + // mixes their trailers into the body: send one commitlint accepts. + const squash = {}; + if (method === 'squash') { + let messages; + try { + messages = ghPaginated( + `repos/${repo}/pulls/${number}/commits?per_page=100`, + '.[] | {message: .commit.message}' + ).map((c) => c.message); + commitListErrors = 0; + } catch (err) { + if (++commitListErrors >= MAX_API_ERRORS) { + return { + ok: false, + message: `PR ${number}: cannot list its commits: ${err.message}`, + }; + } + await sleep(intervalMs); + continue; + } + // The commits API stops at 250: never write a body that drops some. + if (messages.length < pr.commits) { + return { + ok: false, + message: `PR ${number}: only ${messages.length} of its ${pr.commits} commits could be listed for the squash message`, + }; + } + squash.commit_title = squashTitle(pr.title, number); + squash.commit_message = squashBody(messages); + } + // The fields go as JSON on stdin: a long squash message is over the + // Windows command line limit. const merged = gh( [ 'api', '-X', 'PUT', `repos/${repo}/pulls/${number}/merge`, - '-f', - `merge_method=${method}`, - '-f', - `sha=${pr.head.sha}`, + '--input', + '-', '--jq', '.sha', ], - { allowFailure: true } + { + allowFailure: true, + input: JSON.stringify({ + merge_method: method, + sha: pr.head.sha, + ...squash, + }), + } ); if (merged.status !== 0) { // A check re-queued after the last read (for example by a PR edit) diff --git a/scripts/ops/merge-when-green.test.mjs b/scripts/ops/merge-when-green.test.mjs index 3329c13a9..2000e1f1c 100644 --- a/scripts/ops/merge-when-green.test.mjs +++ b/scripts/ops/merge-when-green.test.mjs @@ -1,4 +1,6 @@ import assert from 'node:assert/strict'; +import { spawnSync } from 'node:child_process'; +import { fileURLToPath } from 'node:url'; import test from 'node:test'; import { @@ -7,9 +9,13 @@ import { evaluateChecks, ignoredRequired, latestRuns, + MAX_LINE, mergeMethodFor, requiredChecksFromRules, shouldDeleteBranch, + squashBody, + squashTitle, + wrapLine, } from './merge-when-green.mjs'; import { encodeRef } from './lib.mjs'; @@ -291,3 +297,104 @@ test('gives a green but blocked PR a few polls before reporting it', () => { assert.equal(last.action, 'fail'); assert.match(last.message, /required review or check/); }); + +// The commits of DOS/Rate#1127, whose default squash failed commitlint on the +// promotion PR DOS/Rate#1128 (DOS/Rate#1130). +const CO_AUTHOR = 'Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>'; +const LONG_COMMITS = [ + `fix(shared-data): earbuds regex reads glued brands and drops over-ear titles that say tai nghe (#1125) + +Any brand glued to Buds, FreeBuds, AirPods or WF1000XM now reads as earbuds +(PixelBudsPro2, HuaweiFreeBudsPro4, SonyWF1000XM5), as do AirPodsPro2 and +two glued tiers (Buds3ProFE). + +${CO_AUTHOR}`, + `fix(shared-data): over-ear WH with a space or underscore, glued Redmi/Samsung/Enco/Tune Buds (#1125) + +Review follow-up on PR #1127, with a reference line that is far longer than one hundred characters in total. +See https://github.com/DOS/Rate/pull/1127#issuecomment-1234567890 for the review thread and the whole discussion. +A path with no spaces: ${'packages/shared-data/src/'.repeat(6)}earbuds.ts + +${CO_AUTHOR}`, +]; +const LONG_TITLE = + 'fix(shared-data): earbuds regex reads glued brands, drops over-ear tai nghe titles (#1125)'; + +const repoRoot = fileURLToPath(new URL('../../', import.meta.url)); +/** Lints a message with the repository's commitlint.config.ts. */ +function commitlint(message) { + const r = spawnSync( + process.execPath, + ['node_modules/@commitlint/cli/cli.js'], + { cwd: repoRoot, input: message, encoding: 'utf8' } + ); + assert.equal(r.error, undefined); + return { ok: r.status === 0, output: r.stdout + r.stderr }; +} + +test('wraps a long line under its list marker and splits a word longer than a line', () => { + const words = Array.from({ length: 40 }, (_, i) => `word${i}`).join(' '); + const wrapped = wrapLine(`* ${words}`); + assert.ok(wrapped.length > 1); + assert.ok(wrapped.every((line) => line.length <= MAX_LINE)); + assert.ok(wrapped.slice(1).every((line) => line.startsWith(' w'))); + assert.equal(wrapped.join(' ').replace(/\s+/g, ' '), `* ${words}`); + const word = 'x'.repeat(250); + assert.equal(wrapLine(word).join(''), word); + assert.ok(wrapLine(word).every((line) => line.length <= MAX_LINE)); + assert.deepEqual(wrapLine('short'), ['short']); + const url = `see https://example.com/${'a'.repeat(120)}`; + assert.deepEqual(wrapLine(url), [url]); +}); + +test('splits a long word between characters, never inside an emoji', () => { + const wrapped = wrapLine(`a${'😀'.repeat(50)}`); + assert.ok(wrapped.every((line) => line.length <= MAX_LINE)); + assert.ok(wrapped.every((line) => !/[\uD800-\uDBFF]$/.test(line))); + assert.equal(wrapped.join(''), `a${'😀'.repeat(50)}`); + assert.throws(() => wrapLine('x y', 0), RangeError); +}); + +test('keeps the PR number in the squash title, or refuses a title that cannot carry it', () => { + assert.equal( + squashTitle(' fix(web): a thing ', 7), + 'fix(web): a thing (#7)' + ); + assert.equal(squashTitle(LONG_TITLE, 1127), `${LONG_TITLE} (#1127)`); + // Cutting these would leave an empty subject or a start-case one. + assert.equal(squashTitle(`${LONG_TITLE} and more`, 1127), null); + assert.equal(squashTitle(`fix: ${'a'.repeat(89)}`, 1133), null); + // Not conventional: commitlint ignores `v1.2.3` alone, not with `(#n)`. + assert.equal(squashTitle('v1.2.3', 1133), null); + assert.equal(squashTitle('Update stuff', 1133), null); + assert.equal( + squashTitle('feat(web)!: drop old route', 3), + 'feat(web)!: drop old route (#3)' + ); +}); + +test('gathers the trailers once each into a footer after the commits', () => { + const body = squashBody(LONG_COMMITS); + assert.ok(body.startsWith('* fix(shared-data): earbuds regex')); + assert.ok(body.endsWith(`\n\n${CO_AUTHOR}`)); + assert.equal(body.split(CO_AUTHOR).length, 2); + assert.ok(body.includes('\n\n* fix(shared-data): over-ear WH')); + assert.equal(squashBody(['fix: a\r\n\r\nbody\r\n']), '* fix: a\n\nbody'); + // A trailer is never wrapped: one too long for commitlint is left out. + const long = `Co-authored-by: ${'a'.repeat(90)} <a@b.com>`; + assert.equal( + squashBody([`fix: a\n\n${long}\n${CO_AUTHOR}`]), + `* fix: a\n\n${CO_AUTHOR}` + ); +}); + +test('the squash message of PR bodies with lines over 100 characters passes commitlint', () => { + const header = squashTitle(LONG_TITLE, 1127); + const message = `${header}\n\n${squashBody(LONG_COMMITS)}\n`; + // GitHub's default squash of the same commits fails, so the test has teeth. + const github = `${header}\n\n${LONG_COMMITS.map((m) => `* ${m}`).join('\n\n')}\n`; + assert.equal(commitlint(github).ok, false); + const result = commitlint(message); + assert.ok(result.ok, result.output); + assert.doesNotMatch(result.output, /warning/); +}); From 8371712986b6697e8de167bdf226e5a1c1dfe49a Mon Sep 17 00:00:00 2001 From: JOY <5027251+JOY@users.noreply.github.com> Date: Tue, 27 Oct 2026 23:35:53 +0700 Subject: [PATCH 02/15] feat(web): full-width category layout with a sticky filter sidebar (#1135) * feat(web): full-width category layout with a sticky filter sidebar (#1132) Category listing pages now use a 1800px frame instead of the 1320px container: a 280-300px filter sidebar that sticks under the navbar and scrolls on its own, and a results grid that adds columns as the screen widens (3 at 1280-1440px, 4 at 1920px). The deal radar moves below the results so the product list starts right under the toolbar. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): fit the catalog sidebar and cards at 1280px in every locale (#1132) Keep the sidebar at 280px, lower the card minimum to 290px so 1280px still gets three columns, let the radar badge and the card buttons wrap on narrow cards (long cs labels), and stop the keyword header from breaking over three lines. Adds the before/after screenshots. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): let the page scroll past the catalog sidebar's end (#1132) Review P2: overscroll-behavior: contain stopped the wheel from moving the page while the pointer was over the filter sidebar once it reached its end. Drop it and document the sticky offset and the badge wrap. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> --- .../1132-category-layout/after-1280.jpg | Bin 0 -> 128399 bytes .../after-1440-scrolled.jpg | Bin 0 -> 105475 bytes .../1132-category-layout/after-1440.jpg | Bin 0 -> 132687 bytes .../1132-category-layout/after-1920-top.jpg | Bin 0 -> 166325 bytes .../1132-category-layout/after-1920.jpg | Bin 0 -> 197918 bytes .../1132-category-layout/after-390.jpg | Bin 0 -> 32146 bytes .../1132-category-layout/before-1280.jpg | Bin 0 -> 93884 bytes .../before-1440-scrolled.jpg | Bin 0 -> 79475 bytes .../1132-category-layout/before-1440.jpg | Bin 0 -> 105979 bytes .../1132-category-layout/before-1920-top.jpg | Bin 0 -> 125509 bytes .../1132-category-layout/before-1920.jpg | Bin 0 -> 129391 bytes .../1132-category-layout/before-390.jpg | Bin 0 -> 36069 bytes .../[locale]/components/list-sidebar-one.tsx | 10 +- .../web/src/app/[locale]/smartphones/page.tsx | 362 +++++++++--------- apps/web/src/app/style/scss/_catalog.scss | 84 ++++ 15 files changed, 271 insertions(+), 185 deletions(-) create mode 100644 Docs/Screenshots/1132-category-layout/after-1280.jpg create mode 100644 Docs/Screenshots/1132-category-layout/after-1440-scrolled.jpg create mode 100644 Docs/Screenshots/1132-category-layout/after-1440.jpg create mode 100644 Docs/Screenshots/1132-category-layout/after-1920-top.jpg create mode 100644 Docs/Screenshots/1132-category-layout/after-1920.jpg create mode 100644 Docs/Screenshots/1132-category-layout/after-390.jpg create mode 100644 Docs/Screenshots/1132-category-layout/before-1280.jpg create mode 100644 Docs/Screenshots/1132-category-layout/before-1440-scrolled.jpg create mode 100644 Docs/Screenshots/1132-category-layout/before-1440.jpg create mode 100644 Docs/Screenshots/1132-category-layout/before-1920-top.jpg create mode 100644 Docs/Screenshots/1132-category-layout/before-1920.jpg create mode 100644 Docs/Screenshots/1132-category-layout/before-390.jpg diff --git a/Docs/Screenshots/1132-category-layout/after-1280.jpg b/Docs/Screenshots/1132-category-layout/after-1280.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7436dcab089ae2422925d2d941fff74a6bc2755a GIT binary patch literal 128399 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�ara!Mm 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 PkjdDDAevt+mP@> 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 literal 0 HcmV?d00001 diff --git a/Docs/Screenshots/1132-category-layout/after-1440-scrolled.jpg b/Docs/Screenshots/1132-category-layout/after-1440-scrolled.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b287a5779f94ef7d3725b00eea26c667ec115911 GIT binary patch literal 105475 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%0D`>jn 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 a<st>NY&OWa&>3eX#FVoj@R(5c|2F};o&t&h literal 0 HcmV?d00001 diff --git a/Docs/Screenshots/1132-category-layout/after-1440.jpg b/Docs/Screenshots/1132-category-layout/after-1440.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f8e62f6466e8f9c6140d3702934235b434e71ff6 GIT binary patch literal 132687 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%0AE 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 F`d^q40kQx9 literal 0 HcmV?d00001 diff --git a/Docs/Screenshots/1132-category-layout/after-1920-top.jpg b/Docs/Screenshots/1132-category-layout/after-1920-top.jpg new file mode 100644 index 0000000000000000000000000000000000000000..59857d5f09ccc05214c424419ac21ae0c378f95d GIT binary patch literal 166325 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 KVLk38J&tIAJ@6_+RNSU=~o_%_@Aig<~`s>XeA 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�D{M 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⪚H-Gq^SB$cyjSPX^ac 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 G|0V#jp=D<P literal 0 HcmV?d00001 diff --git a/Docs/Screenshots/1132-category-layout/after-1920.jpg b/Docs/Screenshots/1132-category-layout/after-1920.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d9a45d86c397706a916c7bf24ae347154624b286 GIT binary patch literal 197918 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 `9)4-HBw)rVnvWLd${xhYZ+b_kwpZ#-Mg` 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�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 GPW~^!qM5M( literal 0 HcmV?d00001 diff --git a/Docs/Screenshots/1132-category-layout/after-390.jpg b/Docs/Screenshots/1132-category-layout/after-390.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c083922d0ee777231242ffd1539917a32723e693 GIT binary patch literal 32146 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 literal 0 HcmV?d00001 diff --git a/Docs/Screenshots/1132-category-layout/before-1280.jpg b/Docs/Screenshots/1132-category-layout/before-1280.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a69702a44f657b232c0e98db1b787aad41624a82 GIT binary patch literal 93884 zcmeFZcT|(jwlE$HMWiUbg$`1K(nD2VdM}{|Pz0oe5_%J*Xh2G60@6b71f+!~2qH~- z=%Gk&0@6{i{P4W@ocG+de&??5e(U?=yWcvKl|B2Jy=Tv!otgbi&99kXOMqKiYMN>Q z0s;Vl;OYbTwL&nXsjU3Kz(`+BQ%ChrLLcBN5Z(m<+}wS<jMV?&Ft@PeAX)k|$8Vag zoj2ll{4c_l+_S0Q(gA>R@W0^suaZga9lY(X7!Iz!JYH9YUnxs_h0{9ziSz%)AN`5T z|Hl1&5I$Et2ETDHV<Y7&-2MvZcl;;((LdpK2(RD#u~$6uZmzz+%laLDYfSFoZUViE zuU~yZ0B?X1KppVM@A_XoUj>hR0043d000yIN_&(J05rY;02uLqrSaqf05_il0N9bg z(*Cju!q&_7Z{i5A;I+q(0f3_t0D!^*0H7HK0B*qkM!N$4LN|^p66i`VkE@R(z!l&C z-~ea>+yQm~kt<9La2Fs7koq+TPzI0^lUyeuCcRE_{l*PaG79>e6y)R-EVOjD=s8%q zxHwqZ*?IUSgn4d@^0Bjn6~LmB(z3F$+(P$M?m?6#WMrj(3n931;|2ve1@q0D%+kE< zywd;e@T&trbshMe2mmDD0$iga08$bB`fyc&s|HB)yCMD~Tq6Jy5?yJ0MTOo15CDM$ zgv2C-B*aA5hzLjt0N1XlRMf;YoT5sGMz)Dbv|M81P|q>Cu$oR1W0T}O+%i1__aBeE zcqDxaYQx|2N=T_j94MQ5`{vixj~`wMWg)mK4)`1VBM|%+N=$M^l%%>U;p&lyh=dUM zCkFx5H6SM;wIK~HooFJFl9BBg7t}K>uclL6V);Pqk3;TXcmVko?=>nQ72qD=?1PF4 zp~`&~)AI6%g|V7YAud~ldr1~~awyfK+mG{nsi=NaRsJsmo*g=xvmT3IwnASP>lFva zk4f}TjEG)va5*QJq3up|#eBsFpGIBJu-|cf{ewm)Tj!WP|Jv<z+4PNjD&u@m`QCqI zgo-#5ERi2^tP>eh5io!ebDw$Xl=F!5bL*E{h_B6m?`OJ9l|D~?{KN9yx$95gDqlo= za2*>k`lHC*H2avipGU5rD$IWF<qYR6>Smt0`~oc0eVf>;zo?G%d_dUBW99LWygq;N zW@B@pT}{>D)=47Lm;H55F%K@W&t#tkN_k9H`~vumZ0gPFmo3kmb&B*eu>4q?eP>$z zWA0w|y|<atJCnZvt&YbfZY2{3`$9|qQipNu_)dU7-GO$kYR@mgUy}8|+#b4Uc(y<L zeS6ONR9-InEAK4V>a%~6{FlO4)j+d$KcU`D^nCYM?Z*Go*bg6~Pr1@g>Zj54=^t`G zD~@2XF%3}Xe4kOBW2BTHLFwr=QYKSLM0#ne%z?Zf<FUi@@d6dqnm#VBYg`;x;P@8+ zhv~q|Y6ssGZ+o_MPcp4uN;{6zSGT=5@ZrV=oOkfz#c;cLNPz@YPO@fwq84)KxgCrC zi8>vrcr`2@$2NS1M5nPLWxpQvKJf3~YL!M@>h)`y>e*~{JiCkpe*a_k&h>)Imix=< z>XO>571#LtNz4W?L67^)_v?q<+*aECHI&A6?0LxJkA2Z=xT&nOlIq@IIaab^@8}%< z^OlAUvv;@@H{x+q^DQZNt#8hYmeS%)%}eCTg?FoUAKWwB14`MQyz^<%)VWBlHEZ<i zeVFxzXfhVoo90`0uP6v!w4EB$Rt~q;i6@V3*HyMyo4z)cy7|Qh)&A7M+GAV#BvREv z+2cf`%>S_&d@?WA&sSy!q=&e+=(Z*mon4mQ3dJ5trQ~ikj(s??RRAo><enyfsDN~* zo@ugi$Bp<QMm67WoZWN71Y7e$!JZ~}amchUGgF(Up0SWqy0uIo)Z$slro)Rx%vA4q zi)EmV=93^c++EV;#6btUr!U>yGO+DO7yWr|*_bj>^^dMD5cy~0-=VJ>$N1Y_3tJ4_ zbgkW<;@uP+K=^mdwn)CV%5PV18pP6FeajQ}Q50_4n!CxeVkgHGuX`svkW@sNCzd*3 zHI!SyMNg8bO_M?3!k}Tudj>zI@r?<pqrfH3#E~tpu{<T#BuG({_%6>S8`?Cj&Y1^~ zY4b2&1N{QL$sytrZmj3}w*L#DZsGKUe%8gltd!1Vve>_=Z+BZ*R($}#-e!$&L%$v0 zO=*Oe`-KO(ka3QY`AU0DOE}~9ta`~0m`38(!C$tTe}pzq*hnc(Tbu9sQmejXdp4-V zeeWs5{Tf56TU2yxXKL@ifu`!cy-@%qV}od?V)s&e`?&Q~$gSegC=DQAsIeXXEK;;{ zNM4DABe(o-P4;hqzn`1iy^L*&d{qRpf>a|xGSn+{aW=0!U87cwr1*Fv`Wy${dHrF$ zEme$+3!&JB3aQGnOOr<oKe{Fef855LS<N(#hJ032h#!uWoPj`OI(L+e|8%w95tddf z03Z+gIiV>FOk>B<M5>%duS2_tnt}p|*5?gG!DpsxI)@N_2pK}(E2Rn+`{v5_;p)Oo z%S46-ZDGqVhA91S%^wQVp58KU7%s_>v7AnY^c*aKD6d1dN%Dw3{H-8Wpgfl-XG+-f zB{_r6%TZmrc-^9f5x&B%{H#Rr#t5neG39u5$_6rPZ+8jTa(n9c)5%4(+x>tgs=@@N z4a$J<TMk@8-p0zr(&OrEfp7%Vp^_&pSB5~?-H%sH+8|2WQ7Xd`J2K_0sWgx@ACn-p zu`+0^i)XCX!n@Tj3z&oA1D0GD;bH?#GM@E~Za`#8692=<LWUEa!qw3ND^C(HUE!VJ zZ>Z-ChIGxF$P96?N=-N8#y1c%$)bUkDv2%)r?{e;)a^#YgeGF-@o-Seqr_yj{zt(N zSUS9I#uJtTZv`1>(vi(fOICR+XYYmw<Rq2<c0C1IQxeS|By;VP5Z7L2aMGXj4K0dS z8}ukT-Hx6U<apwKC1yh!k3evQ>@0DFD)q@n{Wo5ORElT!(!bwmuVfEqAN)!5K+}-E z<?so1mWgHGmy3#%6J3#|CvyP6n4O(Je&&=julc>gYV*0SPUCVHe8+AGNh5mn(x<N; z+g4F)T|TF+WXY4=k<i65m*u^24R10D9fS5m%_I;?j00<lofxOjJVzF4hN*|(pp3xn zAx9dT<JmxZ1zlfWVRCeFF=JkE#+1f+=rn^D0BwIF0G%8+k$pU_Pg@nXA*0MjY8UxU zPlj#X{LYm>ZoJoePxNa=^!(4Q@4YMGF~mR5RUb9=bw$>unn|F-nN7W>_t<{{^sVo0 zt^Wdal%>6@8~a&&FIJwDis97{fC?--bGBt6H+!fE*JsBaEdEVe!P>F)z?AE;3!{sR zZAt8U)`YT7jAwnO9IWmXjH=LHNtP>1?_YXKl15Y(7oWJC*f0`|0$Pe`>FDTcB8!<{ z_XG^R=dYT8j_BUrFJ|I=DqgHcpK}evKYW`nfJ%?QFnu|p=Nns~WE@XvVnoCcnIYXy zkX8o9CQe@hAJFRee)q{islcYs&FnXQwzd>c!XmZx4dug)ywyz#%^v8>BYGtg`eq7; zBb%Q~e%*|~RjGPlQo=P#ci6i6hhBbQe@ANMZO1alM7J$a&IQjFrhX%dx3YSFHz+;` zYGgdwJXBPY;ni98{x-uy-z;9xm>HZuDq2A8T$S72wrfT?LtW_xf5euLicRZr&6Urg zBA~iuURCM_293Xa<;oivLP6(-tLaG+v#~C1P4HN3liK`aAdaQ1FnFdnF=^P|S76L= ze6(Z6*^d0-&h|G<;PTKtzMC}f*FU(Z4%tyMXE5L%<hE#2?&qNvrrw|emw4DSPAFZv zbwPAIOy*>vJ$WOnTF1<c9b<ju<P}JH?1>{({!K4vW0SSIGPrv4MzvVoZqa_`NwY;r zMvQK)GN=9J6lnc5Td8dG`5j%=+S{+?^9$_0Tq<0sGYq}XJ&AGMpEP879QT@1u@$j- z^ZaJ>L#S)<^zQ!byu0ZDm~Kk8<ZZWtPHdN?oGHTUI(Onvve`r%XRScRj$QXrJa%Q> z^X<53{psDoaYIlnICya>K!WwY_Xa(Ek1J~0we6xjYVKiK-84km#IVh=WkpiLg%AWe z;HY*`*+@c5yUY%?&bYMTt+R6rS`3WkpzPwAT_A!^Zw*LK;EU<q)7x{Mb!GzYr#?qE zyipgRYmkl?GmwdmP|}e>#73*JkymZjaA%|Q1G~gldqy~U6$M+dP5|3fycyao#rSE= zS=wH|+kw$9zyXuc^UQ_s53e8H_sh1dWnPiF6RZ+jT9WfL_3Y7R$n2#rMR=^<PGG0# zOU5B#a*kjX|Jzf$3yZ54ck}8DaULR6>U!*yrx8TCE~hVhZ)Tj(YFm20E0}X|$g$g- zU|{r@G^ly6aY|w*!uOiTODJE(NQvqegZPC`?-~7GmYvW1=8rvVu?7=eeG9#dpe8Of zDKR^3B_%vEK>o)4<p-?!(^&fCI!s}SfBx|2SRXfne2&3}5qN;3nMiUsd<$EAAY`kU zX(FlM+frQ2H>s@GnJNusXW`}@@=#;bI*|)0pL2!Jx;5gAr1V{(9W!0+0U(o%keu3a zNK3|;$IIafQdD{zpFvkMWn#x^WfgT+T-AEeq?0sRUS;&2b7~-$5BbBmJv$9B7;re* zD|49=7lqzd(yyhGU3r|}WY|_!<ReTGqYTWjT#|IG=Gkoa-^<N+-_+%W%-`*$=koaK z%5iP#VCgzAbVp;0Kc99*P|NSeLsf{YE=z*ib&s27k(4(q^z>ceSK|PWNkiCve115Y z+-HEj=-U>xrm*gggU{^YQ@BqaHCsurmswLYJWWyxU4U@YusB90?y0riBkS+4jB5wC zi;7<ywTsiBw>rIF2iBuU{CR(u_e4KBDLXzIJm~JKOO$w~PD!x@@mfl)0%uy7uDbY2 z8vA;Lpj`TwA3BR^O}%M^tU%Hbj24&NW)_B9baa`TbnuGO^Zf!*HQabttV0uL0Yql< z7zS4jPnw1rN*EZ%c{PvjJFP~&pC(>!b{eRKCFv`&YKtJpTpNdkC+IJ<oFAXZBk5~K zz9m44Ixz2DGTi15RNG&qfBMjqd|OWUGk4u!L{}65b2Mozc|4)o9Jl8F2yxmKv@oG> zral50P`&abF4!XMwCia=TLQl{Uy%M?S<#=BtE^wGMEa&p#&C<DzfkFljEx&e9;h1- z>)w5A5zCgGZT%VNQYKKrO*IAWmbdL(u6+X`q2yRPLDh%witnTwUj$e~S+to%AKroM z-@SSFrcsUDO|cp)kym&1p)}lfeD#{px4}-YH`)rII&Lq!yVE_FmJm-J+^~M9-XY_T za|-K?{QDF7sR1g6_4haGS#@y)K%R)KLu>g=85cL!C$th0_4=5XW7=SO3OFiPO%E_4 zUpDJ1^;tqRT1(4s;yR2rMfe3K$zYV&N}Z-3_Pj*WTRQAQJ#AObpyfd=Q}sCLtWocD zzCNPcd3Tz52WC|tp6}!?nT9WJPW@UCTnJuS>eW%Ul$$5rw@DSqrBf?aVko3{AH);a z&Tr}kuF4}CrbBY_nqY$bv)ZaGMc#$*Pa6G}{rbNE^`pz-UveacOBh`6EPHqs3TeC= zS}OzJ;=Ji<s4(LCFcqzux3C&HDD)0b)|)%$R4x)uGUSg&2BUZGDsxYkgfS~;hl;<L zH^Ms!WD@U0r&K>rs~HT#;Lgcqx`1H{5c9@NTHmvCBf}PSf~?yy-kCd9#!62Q3-Rn< zO;8%qY6QaGq-nLL%?VdDNwvL7*$-#J_teu9H`W69cn-g(88ygB+c`w127KrVEWa(T zE3$i+;TAFTSZ6K(K;~ML!oYo@D*9UZaJp5uSUZNrO0$dXu1_So-!JP#q#0Hk&itC4 zNXKx9JmMxwEmE?pG-8M&FxyR+x24)Sug-F7o6s-q;{$a$-mn=yr6;lyk%{Q!E{wJl z7QLyisi0bgEey%l*4ci9y5V=f7Xpk-%XaUR2Lj%o+<;4#CnZ_R!rVX-<M!I*2+7K1 zdCKCji1Sk88R1DNX*ouMMvJNSW>PvzR>rv>)S7BWswZ{o-`?U@j7IJ5m}86&CX|2= z<2pa|mJNAwWPzSsPK}(z@YL=?9b(0weA~7f-QAvWa8%r_%AVR`xDmP|>m_K(1QC_~ zZW<QK+BL<v+^rX+<?@=4j`m>SI!DynLvJM#?ywyWTWvEkL&JcQxfrX<``|Gt!5fV= z6OYwH0nWUg9sXXHpG`;Sw?Aj+2QJXPpEb1NDGkpM+h!hxal@#1$R9rXL!WYeJIQE# zK#ngJ%{RniHKnm}Z6jh3I0y_&iPWt-vs9Ovz(!x!jtCPS7cGoLAeLm<Ue%W{sRq9r zQ+KT>t@iC5-#s>A_P^gl{IN%}OE2Lj=#Vg{S(xGTtF*X`mzRGGM2PqtjX(j>oUNSc z0B0ru2qo_&Q}tz3fSGFn+C`Ha+Y6j!QF>8mN50&F0LdW8lpfC#DEUP%Lt(7SWnJgs zXcR<j^T7L4$($dtc!$3bLiV|edAZnS$yKAS=9y8JNpqweQ)6)xZNnx^Z`{+M^wWu8 zn`IiGjKH<|#Ky8|)8h9wl4Qk|wVWRzd=QMVyyu{BmRKNK@I$<8i}h!pX+w1&8$LVF zSM-U`feYNSV>xbv(MDrwbF=rxDc#3&5Phq?2{><Yp{Phq?W5z{?pE&~k9*7F0u;>G zNI?PTI6P)tNuI{QsGT|T%k8+)daSx%mgt8AkiL<UOCz*fpO%)krdMa>D|4SEp`Hw3 zy<ON!0II=Fpc8gSdZT^T(9qv!H)KcK{!I&73afT)iA{rva!KZvT+78B9JmEpZNHyF z=VLrRqOUHLmt>x?sp50&%*~y!))+o_f3yS7{E$gBJNJ)IrpiOBkqsXXH@hF8ub10C zp`#Krw|9oGCgu$x<U2`T8%=g8GPxbQc2_&DBgg1^_}a@RCTbkkYw9;+JS*NEnx}zF zn#UKpGf>!a7g0Y4GW^$v_9Rj83`n}wlAbSub;c&#X<H{j!#VFx3E>}mGlTbIZ;g+2 zMG{3{(q*5zSB8|onAAsj7yHVQ4TSaa&I~I7<Gm~;THVijy=MLUmZoAVysQu;Up<WR zaxv-kQlgqXckE`3wIdjh$n5&MqIg0+I2QRxlerNM-|qIxFRqBInwT<HnFT03ycJO4 za|SaJvU3C1M$><=vZETW$$Qa7*+W8(BEf*IbWxw5JPDSAKJb<FwBcVD|6_~W&U~Y{ zls+}odpb#-O*wyLt9%b;#!A;xtZvw;eSdm<oW4GzLzCFre3)Rl&<?F{bV3g+wR4bT zQrDXrm%svMG6=8gw+JGJAdFG79#P|rrOxKgO0*ZYPV*6i;*k~TwfbTsF8<2k#D|S0 zOuSEo=ieE}5;jMW@DSi+swHOwwp`Cy$n^^Ar(_?u)td>~BV~%1Ne9P{Wq>bvmQILv zw68_?JLi^#=u*^1XXJgG6qeYt%SH!sIG87XnDs;MiC0RKR>fs4z<I*q?mKrmoF;b@ zBpq7Ry!0jC%w_PyJ^T{*u$m^cUM+GVlg~Tl^b$6K;lN&X;7HOAM?Fm7b758Zf+n4P z`m{kGGml^3dWU`4yxS`VjZC_a(HT`zSq%+Tl1pqg329BoAA^e|Rl}pFox_7f4WUrb zD~WJsWFJ$~4{9BiNAg)m3ipZpMxM1T3Sb`-&xg>R##cn=JLSc7uLvU(6D)61qF4u- z(f!V)Mab0rX;oeclDqFO{OHwxj>X<=wnol+l-zyI@BHX417rOkQ~LvL`SX-a+r5(R z)M#G{RooY^*<xcWZ6WURCTL47#G(}G&{CgR2nm}+t<UV5_&S873^xt)l_JZ7{B;;v z-jXK{5r%buC|@+77L;id`&sG4*;&wMGBpzP%|FLTK&0CWf_n<`w1dLMNQn6+LuyaQ zsFj}PGESe`INjufih&n<A%42s9yv=0)s-C1d*hz#UdGDaaGT^(i9KkY!j`=tuDDK9 zS3wSQ^ejT(XhG~c+rd^RD5&o;t-N1bAFN_R-AS_<DOYCIVKsP+3yeJ%g3j>^J`msG zcP{c7Bu~NpG0ntGscfD20XS;%QY*0SeZL7&?GImitzbINI!%J2a5dJ;Z;=U|g%9n0 z4{hQf{{p-+_yrj6{RN0J+YD!pVkc5D93aD6eq9{hX!5-kaI3gSN=h=;3C?_Xs{SFt z1oh)dV-<tHO}hRUfXd~}Psanni#H*=&&0pdh44gX{CxeRLj9x1kC+53nLxeqh2QzO zp1*A^LAHEAP>Eik=WuXZy^XNn+#I*V@M|4zp1LV-jS)qT7v(=YT}O6TFTdSO4}5Dz zl-h2_WR|vdK}mzpV78KymFY2K6~debHg0|X1*pV)lDYSDF0Ib0G{0$X$H|5GQR&OE zxBgTwsv35SlEzK(<u^D%dxRwEY`cy*Vy4@^Th7C1NfCDE!vN2qF*KDZ72UgyBTRNi z@Vejd?y2p>CE0q?Teh@6{1Ka*Sw99!X6}7MU9BE}-_ZZg++xnpzr9mZUQ$>RUHrtO z*j^XD)(ci4&uP;`r)H$%TF_|zZ1MA?*E7ua{?0QS!5=?~9XneVYx7D}mSlR1XDIXF zSaVN6Y;a{=>!($v(Jv;{kQ!_h4i@gEYfkcnGMg2JIrjd`K2G`nv5HV7<b7Fi%pQFM z{B-OW;N*1tC+flX8#DjuDLqj8ar~+1ciZLbQEy8=#Y{g_o!F0jtb=0wG@-Dk@DT8+ zyC{$vKX>Q!MC?7Qi3P9l69uLQFEyMjGP!FXCQ%nF*6bOqj2wv?TkEljzc4Bhcb(&f zdpDQDU+xgn|Kt&ovu%i~rZx<97cLx<BDRtpP=CN%*8HjBbJ1(5@+w&iNRW8>T4Js* zt9txm!^H8Bu8>1<sz#v)U(X6o@t}6Zh)>bUdAUjW<g3Nl$EVMR^pAE+w>{DV+(s9j zS)lsup0?#FV;^@VlE|7`_2;p=vjdVQy5+W7Lkr49uCdQQ_Q+}QP*qTFT~3pN@#~UM z!J_K2Cx@5ROnR^*g&RgTRkeMyJk6#udpr$2{y~KYkkw9ZDEkx3_4jc7?_RM_zE{bA z`R-Bob{4PgUGC=3EXb*KEO8)%NgSqxTOtBZs=S@bN_lIH=C}E~g{#Yw7#gZYD1i_@ z1tDd+o)-FsH&YWmj4K;Rt>r?rz2}BW$;5;ramTlHAFwAP_HAk;n<J}>UZI|(&dFDu zgUQW}AKx42PW@jkrVj9iVWXp?UCefTRqAV)D9`1y2$<L<pKd#yMD6Q%XBrw^Y%!m` zKUZRT3FK&mhAMp5TH2~gIU)DvuW;dj|0wR}bW->(Yl59N6|I81Y{G30xkD2|H&J>D zKX%R%ZFEBhjKrEga(`PqKmY!A0X;eAOgY?=7whUZrYC@(SxXs&2f@-sv)B^o*?O&n zRI#Uwm8In2Vf!!h%^rzQjiE`_n(?g-9~+ReEf?vpJySJ>V)SGX!}Ri!G##@nggCWX zSpNOq1h&Njl&zg?;t*mso;1x?HgIU@lbM5krF|x!{5eE7FlnQwNte4;6RxJY5ddx= zDrT|nsYz6^D@>|MRMXX&l_%(clZYmNh8)-+K9(bun(U9TtU>3tYtm*mvX@gI=j!Qv zQ03x7W{N+agG}0<-$Q~lHe-crCgL#Fu<!}A^ZO@17IRXEi?{WO=!YISKPp~~s$!fv zZ)#ctmS!C@{REli2v^rv970a;S^8g)r=M1ywZ^lzJ*pJ{D0bwFz{@zR^g#XJZC~RO zX1$X)MiumB_|KKx|I4=M{@gD7a|x90)M0NzHfqg8a!`(MUnztx&f8bKQ*vlxgoy5+ z9tau6%%`QH@-$WpItTyEMaVGO{A27}e7Ev%igDMXQbH_cX!-3o9)~S3x*kZU_a|*3 zOA<}6kPPkXrebr4fmaS=$M5ghRL`*RIw%)k%g=h7CiA9GV(t8v=ee-QK7Qz8=-C&h z?=cark1qy88r~0DeJc2v7*u`k_V~x+cjvJ`RetVOeyW`Qd6?6eJ!kmD@x^DwctO>j zcMA=fry0Khi{jsCF0pk_>mFS8Jmd0rQ|<|{soOd#w5j+pXYtOW`p4?M#Cxr9>CckC z0B;?S`1~g1|3`@^f)x1Fid`9YacL?Hr*(SgFOw;b)R+eALIv|($90(oSj9VWK?eXf z!Cs2&{oZ?Sh_TpVY4NYJ5-QeTlCIvibhY{xhP(@o-9&5V-~64vmb+Ym3T0k;sS>~V zXcvFyMS(vbvR5*)@&3^U{i<<g3nc-?C4Si}ufz=P{>Jh<rHK5MIsP}x-!t8AB=Piq z6Fku%SO3HasU_^Dw<p&vDOdl6HZLiL1=^~2sQWvG-#))*Vt@QC^mmFD6MxMW{}<Zd zDgVy&Z$tdMMf_J?gPo4mU1VwVp??v1{eSL!SKar&(_@{!{zvy!6l}h707c}_O_lsD z4vh#;Q;0N-IrVS6R`MWyA%B~W{vg9-@b)bj?q5fi!Xz2U<qB@n=Zu%g)7#5!+W$uX zZHND%ji3xk&~N?TmZ(jj$m(B5FT6>g-+FJWPx_pez?jHNa9PQUi|YngIY+)={=cKY zo8X%5?|s$(g(?2OS^jON|J|lS1k&Uzh_o<Xs4L3-{x$a;_3h@6CZWIUu5_pLZ=iWg z-EX+-3C(XnoB010fy^hivEa3l3c&|^uGpu0?>GuWqoS@yT>-M_If^_yoba%ph_2XD zFuHWRY+yY(u<UzGC?im2O>57L`$DszyfU{Qi^_0bV4Xs%M-_;Go%lo`Yb2I68(Jr3 zF+&s~Sk}Cd;+r~28qbX{r<>O#=u?|web;Wu-VLIgk^16LlEGi_cKmb7)ghh+3ESpj zO#r2O*!%Z$L9*r9d9xPIWyKi~!8M<1l-M$(@RF4}=do20QPNvi%3)kTyo{zd*uG9> z$KM4mjT*=jO%O%#<yk%tQiyTFuqc75>!#I>IQ`Nk!pZalIM~~qZvWtf%{^<Gwe$F{ z3Zi_XFIyuV=j@#xCohT$Tpg_yJ~6rVGf@gzHi4@}yI4N#kF^(52Y5$%@qkrv=-M<l zzp#x@FkxvqgJ`r9hxaU|(oZ?+OrMhdZVJ$|4(99F+U-$-ZpjeB7*ixpVE70=IBLk( zEo5PQe*v8NUCu(yUH0jd|Jb$wP3)%{3ZcBamz+TNnQtn}a3@WPjae?l%|xlT<QhY* zIG!9vu~t!~xri_hs9Ojb*4KQhGOcLfnK1K&ZsTWF)!pFECnT}*eazOJ+$0fo=vbmh zTmwNx3j4DXbhs{~g@v|#R0Y`EU$ubemb#gdc3|-((Rqd&bo@H`ZkM+9Tr7&v-f`{i zvFjFG;4EdT8~~%7RHyZ({{^^|R#Q9t^aMWYK|3kxda4Re!PxIc_yYqF06SnoQWrRX z8J(rFNd;yl9$!!poN_nzd6c^2slSDj8Hq=#<p!{Ykoh-AL+xgFE|V>%H3?OEroFsJ zh~udlC>*ivLNBt<U<w~mSiYP38D%J{=64%sD9B;Y-4<}uF8~Vj#)5>(!iqP&%~M4( zXN9?8TW2J*BDRa%3#EVltmoN);%RV3SFMrt=UkczCB5l>TANbuVFDnUSpOMOW!)a@ zcH@PR$<L%kiuWWV`n-fyexak3Y#_OBD6)GVxh=-KMLtq$&8PZKM3|luac*<>AfHV# z)GXXeqSeAR)4?@O+l?`7uerUQucn&u)KW4@JEB#deyiM5Zf;`?FMRDzLq)ot!|+~) z)utS%53U6HV$Pz};I{)tGcaqn5$ct?JFUHzRnyqV2%p9q_VQNDy(af>VgAb12A$~D z`?^|<9gjvf^2xHZk#d*FD`sevV>4uhfK?Kb62jouLxvs=Vp_<oi_kjl=MG&jJ2n!D zTFtSwALn%G-sf-YHkBh@)`^=&+!j;62xNydZd*u!^XuJ!yuRpm!9241K9&U7`7KJh zZ+Ap;YZoXeXl`Sz^rR|qAbb?*)6Z;kZ$weG5C?y$j{++{cx+sTge!|vk;GWHS@Pg8 z8G`wjAnHfNz5}jje$(<Nr{@}Z8QFXGvECqUO(swz8!LC{wz<DseLmJ^i!&q07G9no zqFFhORw3T*m0$P1wZH<Oi>nRZoopoFN8bAik**@_-EHy)oE|M78P2kzTVNhAE}^aB zZUqX>#JSpyj?Jdj`ql)9fB~!ygCDS+E%Pv)iz8cRtMnQ^m&~}x0!-$dtn#{GVNSvm zXYdz`L3qIQ<VLZJD2J{0o2g_LWHC(_cRZVn5IRI*V~%112P@}_w$As7PkF_%%^j)n z3qXAv^6>B%;4TRn)Te%-LckBJW?<u@YLV}Ar=sXX-L^kX5e68#)pLIXqvW9>7hIdq z{4#DQM^&zir^8c5riWN;Up=aCsj;4}zEKcT!S85)ax87^b@u>aRpB=NED&6A!gq1E z*8TZhLGHc4-JKqB6sqXX*g|`Grfs^ayckaJfdSCL)-FA*m4syDM$aR<+DKPFzu?AM zL+kAYSjGKVn(+NTKZ)ddO4H)$3*`oeiLNJ=MS0mNN8>7k$z_!gN`FTMM*<f=ON&xr zY+EK~R<NZUZ<(d>t*oQOqf+m?mXh;QfZa<WW+6$BGj_L!zSshspgY}7q&TqQqu2s( z0TW_}^U5QFq%)tKHoQViL>e1PR+m0>J_RC`hVOdGrbaqTy$>g&13OUk;QK1-T9X=* zATn7>TvBm*t6jO|n@z_jx=k~F$gOSRM!{lh@X1iv$*2q5X67XIZSs!iXLG;2U@T0^ zCBqVyLMO*xNIj(PMq@0c>-b%~tndw0#6Yy6`}={XZ}3v?Q`<t$0^8-l=V~&nJeEkS zCD8p2P+%BJ+v5?Q%yd+VXDVoBC!MAKod!q!c{l;tpl~WI(;4fVLjUow8P8OlSl6MQ z&eQ|iCAWK*X0+!j0qtzO)HS-Wuq#0ey3H4hF>zAJbgpS^Yevz3YQ*l4Ev!U;Gt^h7 z0M)1ihx506#SQzI)~D*uGF|qtF>)>zUU~MDqB{lR3^GZ+a^ytaZv$TxHqHq?tIzb7 zm=N3F$%}iVaFC@Vt#WHT9u{vjwmT{LbZF8-WST{_C&=58_Qe~htfq6}O_8qj!E3Tc zxk03OIbF$UmIiCwE1XQhPu|Fh;1*?dnyiSfmu9<Z0}dDIlTy)rJCES?O^qD&r?(L5 ziws%gxKD1G_h=7cI|8<qZ~Kim)K%~=xAOdJVN4{HeLIkk^FLABa63G>u)G|(HsfLq z%ttR@k2|(4;UmcPMF6>x0fn9Jr&RQUe?NTx*Ky|mqgd3RBO{gI-Y1b8SL1{?cNomw zZjtVARHQ`8NKEXfX#jb$IhOo$M^y8Q@vR}&Jd#vmRg614D1IJv;;t*|sZU~p7{vR= zvB>1DdGJ(uDHHg~p{!QqeGSy@`iD)9D6%)ABk_9F$YuKS0w>I?F)IhOR}XBBY9uws zDOB0=-k@GysH|3BK?~H>R9BPju;G?EC`ojeqh6l+)4Q;xSK@|F<=CnPy0(V9OeIMc z_Q>npFTNyMFlrzu09n^4^?Bu_MxiFN4w&-v%GAWj@z=Ib)EJOE2;pay5U&x5ycX3+ zrxv3{@Zq#U+i<u}SXoiwEe(!{51<!Odj*YBU(RfO=JuAJ_c!}(X~9axZA2^dK^$}W z|8eKxzcBWnL#qPzR*yb`-`6AlGb@D^?4CR7>~eVfOSQMQN|M&*^-jR8o@C@ED}fu; zExJZ%#|6?@mT^Je4QyW&+MIg~I0h^U{T`+LZK!tFX^&RIjCt;b1aFE-cX8fD|8(I) z1RpTcX!w6?3&GesBJg<Ux?nW(!ssXJjD=Y?kF9X0Jj_Dk#?P03gHgAyXup&HhZDgE z{I{dy5dI<|swV$`6HP+(xBh)kU9`9t<<{;=@({)N*%dZSiN=Wp=LWzn#WZmNM6aSC z<<ZPjyNbijue|#e+9r~Rbf%ugAPGu|bB@W6Hai_*d`Wu^$aM-<D+vRG*U~8lvef6z z%QJ8*0uF)?s~|JI=$Ye;3W||S)xh?S{&fkH!x4RDo@dJwVPwkl^Qb$$#EE^VBdqaR zOGVY>{O5ENKkWE`ww9fbE7ccD_5|NIhafRo@ovAUROryzQxvv~w|(7A^?@OwKBgp1 zhv-<`>LODlR7{Ct#Zp$OhtB=vJa}T7WDawzM7QV?^q9HHW~?PjW+X}N*vbD5L8s8z zm~e?e&B;03Vd}H0Z!}l`q7YYVs&o{AKgk;gFByWFk#A|@K5n>prwWl#*v@8ikTU+G z#~&#ZhrK1*g3KG?)AACYtEJ(VfL?Y(mD*RaJ8^}ZQ6y2l2U{j82C#%|OQnvU0RGjs z#Ycs|00B>xkBv=edxPJ0i!Oc<wNwtQF7?$(ZG{U8I4^E6w1-fp44p*~C-)t!sF}F? zf87=+bGV5l(OU>^!RQ9K%UTj}$6wPYSd8#Rod-tST?u_7SnY?G>e<O?ntdA|Fvx0| zIVC!>Z-PE`D=9`6TlRerzbpY}KjVPp^b`BZEo=z<&RC~zp=(W=fqJaV=;@9H#iHQU z=pQa+WeyT_HHyw+%wuRCZ>G=t8xeMYFQx(a31cwPj@H`B6aq1C94@VR#vYCMOUCQh zzY?iHr<R*<Z#Zb@+G*ESFm}pA9NUODS@)0sR#6ubhNjZ}1e|PsTpVPPl!voRzL{M5 zi@d2Dz8;2YphJptyvV4Ji2d;c*hXyncNM2C+&!A53N>k6pHS})<fR3&GyywjKy?va z84ZT@v<cR?vCBRA5c2sZnh)C}eH?SYjq&=6|7(nHg_D!Jp$Zq8)A%c4F{{cdQezmh zT5_Y?;XBl_Opq1Kc2U%V<n>Du9cnM*D|pGs$}in?m9hA$Xd!L=;Jo7UTr6o}`f(Q~ zS>|%cswT}R8T}+x6?aTj+md<%BOLu$V^u(LI12#;X?~<g{fEYxmEuxJErIPdWU)1K z)@pJ`5=+<~V$Bm*Jw5NVw`W_KrCymZwUj0YIv}Br;QNPt+#B&hS`fbQAjg+qdp0!? z%P2byo)aI$wgtA11#=+Flr0D9SmrKVWN<7o(<0AGjk}L#C0w^LeXuLHR?Sly6@9&T zf9~jpmgpt+dw9}6{4Lmb>g{;DtW$s7(Q($B)E@EJqfXB)_P{UqXC!w65%7$au1J7) zMC{U!4*}&E#gSita2IFkn?y;?N4k{|nPC~AOh3Y1EYkw&Sy(#&&Wra|!-m_%2W;HU zu^96B7R7pF>I8;}Nv!?!2+8uoK5f-Aw>SniE5Vs^tI3-v57Vc>1e$t3S#M-A&y`<| z)m7qEQFF25i3>=HU>eS`KLp({E^6#+zHA?7W@*Ag4O+@`Rc;4-5|gjbvJG1tZ}K8z zarxqHfMt+PDtq-NRbL)cYR}v8Ea95h>J+hTZ3=J8E2|;DDMf)D?%W1_OMFnkj?LM} zDFT)-nbq;IK5z5dJxO>qg>Nm&WyiuTw%h^Y%{`t5YHB)1^wO>;Erf&JcsG~_0B`U2 z?#EKT7M*A90LAB!gH7nCG|eQ1p_ZG4sFrLTPUjo*(h*B(I0@AP+Sv%ZJ?1$l-C*K1 zKD*jtFcQ6yD%RBeI!P%x4j2WJ`2`@#W}8S14F6=|5puUIajfH9uU9@X$2oL8cQs7w zRij!=O5q&0Txns_xFH>#iBhqfW?~_!<Sk-!!1B-|7`C=HyH;^oRsJN$sb2>Ud_BhY zpeRCLjD$R=TgJZ0ue9NOYD)I`1%;i{Nt3K|W6=CeFM~6qV&i;+9Gy3M#U1PmuW;sg zErt#>XA)ps0gV#h4WuRzfPq`=ts2~Cm^F8P0lw<0ysG!*LI)u=<|VQoBGG&=*-a8P z>+5vSV#O^5xiI+@p2gIn>wEsS%3&Q}cD`Kc{YOkJb`R>bRS{<;-md^wrZ9DZ@!RqE zUz?UjrXG!Vk>wY*id7w2D3PmR6Jy16E086g6u|ZF+q`ZyD(2_>j%cJ)+3oqkjpZa? z_JPgO-1gpvrBs<JK!S$M3glLKeT`Uc#^S7kpoU$n?br>|^-vHS(+Y_^%GS-<H%N}G zm?la5Eda0-$aZ6pth6cSbgCVFYC-3Q4^|LYCL#}irO0HZPJNz=Ml<%ow6Y6I!!@?H zohXKDWgm|i?>IB};m2{f{lHERUfvc7%g!f-ej_aNkJNEd<TDhfZ%C+6?Jr)s;F&&e zm6S`BDO)fmfd>yi@{)Ydjp$tH?G`khTeET?p1h&qaT9~|HyM}4WmA>AV#xUjFyN(m zU%T!H75I!~qL0}pG;=%Y_b*z^+IF8}!$yD*nJpPT3vJ)1<_db8J`}2~jA*=?tefzs zk}jT6NdYD_*hb`64|FkQt%ka)hUyj|T4XU}4$ULVCoe`i`{j|cO@~^GsSAQ4L2hNy z%$A$&i9eIIP4R~MrH|DiaXf7Kluy^~jTdd_t~<NHxqKB=C2;CGeI0O#ROI@6|7vfZ z0C+sVxADR;PxUOPAo}gIms{T!He2P*xSjDr&o4Fl9WzbPErDfa7P)|F^;kJb|70XD zxYgdO?eVmxJ~$9H0+p0(cUv&tP0ST-A~7I|X+DBh;>#>7O!PhKN2~<$QU3iPjMGAM zORf0eYC(~p(Ur1>nTAZw1LoTcXHYkACHbfrX&}4&DpIVrGT4N5xUC*)bRmILc^pYo zYp{U|#D$o7t{D|xH8O3pdW7MmHAnf2u?%KUBarnMbMJvKjOHdRFdkpyiA2j!yvDDF zN|U$^dgvSGGZt*-TEmSoEk34#E~~}4Nwo+&6eKpDa$}TO&rGPMu_Ei#3%a;Ib&+8@ zg^MF-G1nx@A^{-|wZJp^>rPT1CZd@(>nEV2rv1&RGMq#hClA09vKlGjH!Blv8HpDp zYQIqe)i>pFXI$FjKpu0a2DOf-8ZA$9t!38l=Q0Gst+vnosdP1O;pW#doGmB-Xjlus zdwL<)Ul!HXR91|j?%{QfTM;9(S|sGvnnOfI|HC_T-B7@*Q#vMLi4{Y5O}^WIBfM{z zq^8PJn6hWbNa~%10I>34Zck_CHmaVP6|O%0q$OdC^rWQp4{CCReChG*c5(ia06Vie zHve3t8Z1CSfm|lu39zyh1*HRJcpfJ99m|jUO3;l>i<znQ*7<YBVs(IBB}_}#SH#1W zNQxZpNYq#>j?82i6y#PGhFI6~X?=_qWrR1>8Tc_utjS%SP{h%XJM2r+d=hw+*D}4p zZ(r!WvtV+a0;zANmqsl8a-hj`{S|9VotX&{=(bCl1?|JIvV8z`;LY?Mt75!O#hH5* zb4K8-u;kv!V<l05(w%P(BMP7pk7l@3hIGtO`M7sQ^W^)vCrKI?T55yecqf>xV0kly zGF_pdgNS#9uP4S;MUmz@ag+-m0m0s*_xXsdZJzlx-Oz3*M&^I>X&i0AZ%bas-wy7= z6W6ptAbiMcpIkAz`&DyFlHPWrtwFbw{1`Wam7`vEh5|@EXtJIp_-Hi6m9@=-VUF$# z#t;~j-t?4mSopMN>-2O-bIBU5+w{dwTYITpxwh+2Np_8TSYZow$L1!}S=RC|KoN-} zg|)=~IE9Ll9N}_2;Sz|ZtMuSo#lSF@@{&kxbn@LZRnFEA7frK(c&i{bwaD!iO<UX3 zrehe3s>1#^SJV%pvwU>9KSQTx5jwWVWvN$Mub{)z&pWx3#3?522Zz-rcJ`sfv5AuK zBtpfZD5`D9Ie@aa9D&digP^scp3U>FhbBrCAF<`kF}kYO@+k=o$<Tf_nG4L4FC`@t zqtYj?<1K9TwragQx;%HlF*+&1<Zk`5@NLUy-6N*C1p6{uhDCUnEyo5;L$Ha8(L8)5 zNj5+S70jsd5I2@Zd0l~mL9{Ndtg2NzFow<$*GVB0&HS2N&)Kg{of2@^VF}-}HrAPA z$rj#V{%A+ULoH3%Gs?UgdzyaZ=6%y0K4b<rSm)|uD+fd0(kLkeq#yYHIQZwJb!N>$ zx2Az@n`%2<l4ODKt((>}JqmUOgN@fRDqKE)Udh-tQP*`(;$KFkR}$g2;O8h2=Me^S z0+fcFicLtZWP_o}%$BZl7LRX-3Hni>1qbtGtrtReYG)08heaEVW{J~nPfblp?%T2E z(zH5<5R`Q+=Sm!HzG4+xoSE6YI*cyiFznd@tSlWjRyG0h6=lfeB{(FhEnS_q4TsPT zxDlyZC)>f9{3=T-vcJqjN934C_uRY4BbdF!le^feOrsuTQ+7>8!!n6f>4sh%PvMAJ zS6PLgePC8{=0&Y|j_@l8F!0ryG|({wZ9S~6Y{I9LyQ7M$IB>kY_}3uj1!ZP^5hiov z^UFB4=>?dz;?c0ntj1ud0=+Ve)i`<}CTg{B6+`0nJd~6V;8QJI<EHB^C_G&4>t^Lk zzg?L4>SV)=;pH2UvYHwRWl@q;Rwmn&*%V33ji3lRdAdZWp3+&QOcf|5dwePaTU1_B z8CEwoLVM6EYyWb22(sLPx^cAPciYypVIBi+X*e}*09yMJM9Hc(kx0%08s+B(zL(Yc z&@sS#XRJjgPZK?MO3%d^Pw1~%l6DbHqE1+AMV>u&hxXSPGmzS5RC#LPwwABnpX4C> zP|cpeN=!z3os$!VtJK8~q=Ej8soIpx*Nyv>^5R{nTW%U7BN!{Y21@x}NkT_bMce<l zwf&zb>QroppE$pj@y7>zN%%gIKp*2$A-HlW6^``Q1^1NRcL6HL>QZ=TSzhNhr05v2 zT&!dnDn=h_2<%u3JH%6~O57Re(FbLXj~bDP*HhU@c{uK;+_iCW*`6h1r6~tm%X`5A zOUTfTgg~l<iU;*a6E>9-6P{Mi7DC0Jf^=C{Ttih>03sm7eR=vG-T1=N@S2p<$<yS? zo|zn|_|?7#JR-spsB9@F7GfjhfT)Mg3zoXveu4>ML2q?k2kh9|j!@=f-pijw{{kpz zW8Ux8OW(NN|2R6A`LSe=rgj!7w{i<$xzm;1te(aQCV0olM!?xxja4`m@0ZS^SnyeE zh_}NThaeWyGlSaCmJ11w4rqgw7wA~{=iYj22;1_|ghCD#7Ctu0-7KEEaF85s|0I{c zpy6yYs4>50uTTYuMROCu!akZVl=HS&E-_SKbcIvf4$)&;r0ExjrH$J4vCrtT>kUjh zb)8BJ+ZQ?MOpH&y*k@u}wVRX311Y~>(D%1;>Jru`!K$Qhkc>lv#C0g+@aYwXlW*;6 zHCIz=D(iY-+Nu=Rx++zLXqh<yFlFNIdIbeAUJsxhmaeL|V`;t|qB2SOuru`$*}`!L z@T*W?3>_5}QR8LT5qm~{#aGQ_9335KPuzXVZvtmD*Cr-C_)TDgMiS#*tH(w<a!p@& zO|YM07`3spswVVFftxGg{zjcLUUTh80g8TmV10v2rj<9NJRG~YJu@xF%+Pb*&_xl9 zW-attWjZi7_DM-ick^nwUYMPzPgNvdQ{9zQ0rf%z*vSW(J*vFALpasLU0ICG3tf{k z@9Mb66=7KOyk*wlXiD0|b^n7S_-uq5CpRStF0Pd`$tSr_`08|S8&=j{;S1T!VY5rR zx+n&*bM+Lhj4Pmks{vR$HAzUU-xb$udn`Z)7@NWcE#$0A(<AD)H!B?p{plLY>ZcSZ z{a+*i!Mc8DqGj!Mz7m@<`|?wlyBBw~Pu?k)oaDr{xWAJUt2OXqAhU+S-S09Ax^On# zgAtmD_TVH!l~04_MF)YM?$r}1(AhXi`Vu+en-7z<3uCFu@)ihVV-GG<yAPCkYKC}p zd}<v1jz+b;M@aIllm>U#SwEtd?0n@<rcy;0<H^?SVn{ibXFU5hQ6Vy07IY^j&)kQg zbaF+={Lt|oc!q==PwZMm1UeRT#Ido`Fj>n2^an6&`PbT(wdaYhg1#Q^m`h9rr_g}M z-34tn46tbP?c!KPX<*JV=$7|r5QBY`OoouPE`?jZ(>8lcH0h&MQE{tBcMvi>tK4C0 z^wt|UIs>uOMq?SJ+q3+Md3$hV?x@7h)gnftQ$$J$)>JA;_GO-{NYd6tTGv~TuWrH! zU=9t=6Ai!T<a|5B#bSHgr7#J6UsqF(i6^j^{N5x2vWl+K_7J``xV0dx6P)i?I*>u? zyq-8=@&Pm?sj!I3zq(GQxt$!u8Sb>=&Ah>C8OFr<wh07A50B|8!Cg%_F)27jb<q;e zj4bOywp~mHN5PNCCn@U=^OpBF0*C^6Ra6Yr?)iO6Ffxo^Xk4RB`1@%K+XZJ{43huR zE0u-M54dZ3wF3^m^j-bcNB*G7trDbc0E`xl>p=m30j9+lYwk$USn;15H;fw$Pe=Aj zSQGkC{d{~HUYAI6SIS7M8D7#huOQ;m@<4U)?sXW8I2y>uC+}sdTIaZv*EDXrAo54U zNy2OAj6P|l+yfDRnxy-{T=0dE*Q-rzn&a(ug)ZE7CU9lp^$vfgK<r72v^{-m_d~PY zdxe^Y&DF7DL67f0Fx0x8dUtAjfXzx2jV61e(k#f#?3OvtJiZ;&CWw^P_l=WfhE?Q% zHq#D`>vyMT$GiE8zDWCRjM@3dE^V6KTmEkPgL>V$6g#Ux@)+iD5*HA5=uvNnA7PdG z^4a_sV7B_(o$n96S23vWx9wY$$ba=c!Cdh6>-m9G$CT}hPH;~Ll5J|}rQcrfy=Rsa z)Y-VJT)N}LbFxLoUrs)Bb&HQ@cI55T%H-ahgPmO}5u?0eaR(nuw-dI^9Aylh<+;tL zO6wA)<q;<1Gzb6GK+Mm~xb<hn9@18AAwixwt@k>8qSAPkuN^Bvt@T-)s;EatXv20B zBcOV+p!vA_r^0a7R9J|ETZo%S(bSYPwL;DHnXB70fcYE{=DmQ+rVI7~PC%soXL`x_ z&K$JDH+zvR#O6r|`iV@1e_RrSZ04(<nXQuH<afKuFrrz@U5alMxWl&-VM$pL*ud0s zShubXoW&Z*=?f;JkAn~fVF*vJ=KgPHVyw<uX&<#JW*V$YD)}p@hmx!T$ezA*{v)<V z%xTc;nq}Zp;#UE#=#EmXnk}M)sFsajBxOyya#jARHWxBUkXd6pm&Bj3W5P?{!fZ^~ zds>bHSM1WM9`Zz@A?`zhF7c&0IV)k4Gog={soqCjwKK(jZwdDkHJp}1s5S<3W(A3b z*q{50WYaZk!AtkRxiw;w%JPZVS43-FNg!-f*E?5x$#Q;nd2m&KnpOri81F?&_=M9V z{4jb>o)em&K*YygLlM)gXJ@=$+@2n_pvBG91nS2Pug|ivW+5Xz4==!R<B!`%D|~*Y zwNAQ+&}UDDR3Cf)WbgJEyZRA}9U^t#kC|=DT*_vTIxSod){}3_%XqES-bsDeP_`5q z(z0OOtLWo09O($^RcxqH1v}@K&%WM~%3$d%1;=Gr^GczpHAa`FlhL93RWCA4oaq=^ z;K{{Zwk1hG`W(0g$Quo6X)*1mUMmKIJ#n+yZdkc7b1olGxtR075jH-)9Lv${aBQz@ z5i&|$|AF4tB7T|P#tKKu<5&_;Ue!R?Ebu|K?p*GL>QA6GFCDA3Ew$*xx5YYbFY^^O z@ehvCO|JfYpZ0efP1--{T{v;NqDmGe_sBW6``O-nzM8nt=6h>FGu(S{#EKM`Kj@~$ zlv>9>16Z?zS}xyI&s5UU<5PzW&2+^r==b8nUnC^|ERo|$KI(w2X{QuNI$<BnEx55N zm+Nq`n?5FXe8!f$M|kC<0}l=Gx>*@#N1wEdT`6PyThT9TUyrz4b?Y3u(R`~{;|s2j z-#Na>kZtT{L#lnVT5$JfiACAH1ZI5j>w|5>w<<7H-O9Y8eh2FG{)6C7=N0*YsyOPk zlACof$p;F>qjTBzu|-A6&$jNA;0_K}L#=ZhOBgRF!L5>r>VnGRiptcCa9C{ZfY!w` zOSQ-~XHR)%gzSxdLzyCh!70}mL0gPR5wc$rQTd|h)-p{fkf`vY3vlWU6QZkvIb~1M zbPBB_ASFev<PU)fK%O6Kn0(%kqyIeFCG%K12<oBI?SMS2a0EmA<1NX_y35kcA32wm z6{Ru}ChF@POxMixYH-9--&G>Blv0e=n8)MGKlToou<Cp%^(M{w|JZx)s3^9)T^J;Z z0)hkyO>RI*l4+tM8H6V1q%@()IU|bNC_)QOl+Z}dxyh15a?Ux&CTA1`Z|j*kb7tnu zTJyg5e)oItTJz8D>Z)BkRn>2&=Xri5PYPX#aUO1BxtZQ(8qjwLFUmbp4=>K3)N#)E z5S<!kKe3z?nLPz?@$VP@1mh>-ewz_nnwl=TPcevJ<WEeg`#GzuL^^YL_*`Vyfl86) zG+_`<TdUj&qF2Roh@xSmK%FIK2o7l{SgVZ7t&0mRxa?>qEo0fFki-n85kshKmuj?U ztnzYm@?alErdGL6rc40J#I`gYfD(yV6O_=AUb7)9Au_qh!D(y(%S*5YBpJe2MuwlY zT7In0*_me-meDJ>DOv);-*D}eEYFt`Ga#9$^G<D6qnC#`!eA;)r%JQxkXLuA5%ac@ z{g`17C)0ZB<P?YA!&75JXOYRNO+$1yc5*GBY>8m@TU-W7fmGhM!Or?u`X)4vvD)0R zYh8mlZ^c+AM`*#f2Nopal->xBPfLpC;SY8TjqEs-c6BoGkl4pBtSxJ>#?#+4)GXVt zgl&A|D5}vL9g@ajlk2fRCJj`0k{Z^D9zN<qli??X*q~XC-&#Z9o>oAeqh_vzHCSne z<#U=-IC!CS`-0I4B``Au%}e4rR0B%1hd{b_>_E%#_scN@X+*UCCKP9O-BFCp35Ahm z3J9U+J<9;WE6bsZGvfH{V&obmCnoyrZkoe^0+#rMk0d$L5-ZFDuR#uQV%Bc7nO&!T zq%p}Gah;vV=LDZmRRBc(0vQloV_43wrgxqv5&n5zsI*e7mvsWSIUTE7tO&cwWrR=f zgcOPvahq3^sx;CBKAokAeAKiZ%or{|Ny7niM<OykOIpnhDLsT^JSa;`+8Z<7W!!Jk z^OD#nDENeh!CzO(0nScUrn>BuW+wBDRV6l6IedaLdKMIN2?1bo_`|@iZV`1@DJ;v* z*KtTE)Vp6<{nXZe=~?BW6J{Xm_Xs_RZAV{@x-GB+_^fPM`$;<WJuB7*@ret_#a2pE zZ<f@yAdyGbI*=TlmFu5_Hdkdh=@m~{4?%2Ww=-*{Tk)Kbs{#9w3Th@(lTTcsmUCnH zu*mGm1rqUg>DLW%w5n1G*X{8pQRX(f%J^$`1|}^u*k4e|tncbBI`p5G2_VMJ<z=*i z-~t5HyC1tvv_lz)4abqBnk2O}woR=vM(5<hn6uxOmN0zeE7K&UG;CctA-enCV6j0; zW$U4B)1T=>$&l^QV+QhwzwC))lRX_-GpfEPVAM(djWJ^(VrVezEbbOAjZ*1VN9FM} z8jOJ!ToInim!Eoa?9v^}M7(3%erL1237!$%NP!qXu+e(9*eFMH{b%%NeHoW6&))ub zBR^!th1}hpoNx{<|2+wC8Ba=i?gN+kw42kFUUUnIKZAnHNQcX0<qOy)`R`?k)jHit zhJ9uK8E`%Ly<itClNaJqXT;}h(e-sUPZ|h+1~>XAsrn~JQmUN?rGGEA)qSU*S^o<D zEPq4Q|K|(PKs$D5%gB^hVh_EyanCA0{dI&i70vaxsi_M@5f2x9xL0uHWT-EvpUEiy zHfsL;1(GlH?1JW7WmPp3O~(eGb#tZDbm9{6ty3>AM2jd@6xOH_JLrsGXATJ%GWeS5 z@lp&6Czi-YQj*Hl(UAui-*4(o?jkM@u$b5h?5lET@acd_4zHSf;R))5IfR6-i!pm0 zuA<|KIw_1C>E|Wuu=L^K;c;2J&O|};6DLr*wUz5QvX)lqB}>X==ep(>0byyc(oxn| z>Rf$YN+V!2)&-<>Z(4C#;`6at(|dG{%VU&O_Yr$m4C0G2_O=Vt!omUl=F;DmYyYc9 z%rw+@->}v>>q#pT);R~o=dxViot|I2_y5kZ-ZL9crRVtg|DxvqfRHIQ{edNx^#dy_ z@dwu3Sgls??`w%y3C`csWRP#t%m!Rcu)pQxvb+OYcE4m8r@D9uSpEsCNd-o>XZxID zw5EgskQ1f^3|8cB{f^~L3~vtwsZPQoRi?zoy+$H~)_o}V_?U?$D{GTyL>L<(*nT7D zdO@!?kw6Q@`<6AJ!VEbAAH1*c#-Fq=qoXr2v&<@GsQXa<(OL+Um$o#?22KiMkYhyL zNW(!g|HRmn?yu#TjD=M{7w?qOkyjKeq;Y>v(|$WR=grF-n2|htF{UO_7*t&umDJXi zn)webHI6Gb2xl-0)1SgyMsy$Y#4y?_vL=&_OftJ-J!uD4!QAuVglI0OQqCPzMU<kj zECb|?-|Mpa+Ghr=@BK<tNn)|xb1oh!16aC^0X$4$LMwM%`aE5mq_FLSlvdtR;EIJy zClk;R<ViUpR~s@ahX#9rBilX*&8;|<GrMmqNU6;oD|#LecG@XhI~ERhvGiL`&*blW z6ebagQWsX$^{PES?u*-AIMB4S<+hY94Q@#>2fA`lZyFrT^6K2L)2hrWEWEgP^7uFu zrpgNJuZZ;*>*tQypcqSZ<ko6Yb<Tj@QvgC-gbRK4uv|4@ozNF>2vyhJsWmE)NOHP1 zSOf`>+0;+C;TD!xGgYKB<s_`zRyNKfo0fu?rYA&}fyD<pH1Ns~yZTTLes62X1*}#w z*H=dyEewB5!ooMgUVJ%HccwWUSEkTHXBGZBQiatiXUdP(waIO<J9vFVL~VZtozJ<I z8m}!i#9uNfKp?e3mb(i*ffH^Jx@bwbyB1d5;LJBE4m5P1xcfD>XBHS|c?s%!wwhf% zs;9y&Bs5w+Dy#kY+pJdSG)2^d5UewtY#K=d$~o}_0v(am0R<aNRpWaWBV$Ml1|NgN zDV`{;%2;DhR&>JB+UE^g141+ob(dW95_4g3%or_acT*<ZT^kUk)k`x*7tX3dD_biF z58O(d$m<Ht<DAIO^EC0OK*$iQ?msS|ZU(wby2iv9mZLm%QMbkK%JTr-6gLthEPZ@% z;+Vrcc`}71DI!E}7+Aunh(thBv}50&E61}ixLOOxZt2D@;<aTz9%ofQHwhmLQQF>b zbDxj#QeCx~8qpo`^z6&Zskvc^CRbqf_arr%2qA+HHk)F^Rj;SN(j0!1_Uur^DKYbX zpC>k)0C-@aRx<dmd@JzwOWEgMDRNFnek7h->)**S&+WGEEXzm4A@Atx{n=g#Xg6%5 z&1y)7x^uyIJ-8~MPS>e2wD1hQk$*RfZ&<TTp&~Ph&m$6{uH0ev-0@g}oG?9`UtDc5 z?8_|Mx4r^Pq|d5tu|F5jT%NbG%UjgZ^KsN5U(c9FMcF<R!@d^#?aYC}>IMV>XthlQ z0apH8n@dLraI^#of5bk#kx%vL?{Q-P!s`4Jp6q`!-oJ0fYU)2$7-!Z_WyA)@>?P#9 zHQ6wF{L*XBcKJPXf38Pp&vD6!GA^QAd*NAipVH7a8S)A@r^pMfbD?v_Zk!&BjfV>k z6Jf#<pCP~=Ab1pgWICyDs4|@>h{u;_e@RmV+@$57Jb4!2TR5s#2G2c`_VKLs`JzQH zXJ-q1(R6~y+N8DV<?eegpi26BU2~}!$@t}Cb4|anLRY^w07hu802%2&Ocq-}os^A$ zg>-J;>4BmRdCvx3we~$zxb={l9so8lRmys$bwh1}&*{wX7FjlRd+=vO>%*^0PaGf4 zqDqS$by8P99mf$s;7c0zO9gfMdfHlV<#Fa8vBzYQt_z=+wn&Eb+6;_?HOqSoqm)uy z*6CScA8!EyyE$(LvPl-iUN>r2y#69VxyeGTP3&H)BAA#lO_70V$T(ed#rI%+=w)(d z?k6x??H!Z&VRIF0UPlRcGFxZ-^<sT>Uk_l#(fG9OVyqi`%zJ@$Job|zsFz^-sJ$C# z)p@yU=*ziHI~BbeO(=QJc_FA{y?qie`j*?{mV+8uH^T-<s8wRZWf?&T#SQkmL9E6w z(AQ;T*LBH4hz5G$xW2XIVEuumv9W8s1<e&Ar5z$xjVDS_z;a!a-c>c#wS;5D^ekZ1 zJI7^jmF~MflK~2mq=9dPy{JBO`Wn0B<OF22o$`mh=OAu#bM5AM(2U;zEuxI$?DFHR zMjI=QS?b7Kw1aHM`q>Xx+fyiC@D*Q}9q{m&xJYx_nz>SyoZ(k5zyB8W-fvdla3eo+ zZbXs2Y?g$-=j%yT?v&Dq*uI#)v2&(nmOC@CVB5q>GZWSGhtwMjU?5=CaVkw@Tu-~~ z`Z@*0P{kUby4i9BSOBxi;5TLe$wSwZI~TGqu2-!<ZOOxf>#{bS9|9(^(%O0&oHeTn zR;8oiE@>w*TPI6}cMzobb*EJfX>@(FfF!n~gc_91nTZ)!Y2P;O0!W|g@RvJEy7mY( zKfGi*6i4DTK4;+4r%M*56zTsI#mX6Wd;LSOB#5!TmSC<{Y-2g02$>TnVjzqk8~Fuf z@p87~dy~R6+R!D?|LL{dgEzD6U@G{oxgRklUe>g^v45Z=z2tk!*J=8E_7=0{Q8i)S z+_OkeQ?;^Ljq|dN761dF=L5{8-ELz+5M$>8Q!4u<hgB&udUmu*bd;!%o`Xsxlotpd z^$2;a*|N_r9`EqHQ)Ut(3+4lPFbz3Uq#WqF+P)9Zvauf!b_WQ%x4V5o4GJGlXMZdg zpP5K!Pjl;7o);>obs17EbMb+{9@3dc+d%@NT66ba4}dmVxh30izWe4Mv~?^wJf^lZ zqQ&>c1r+tGnJPM!ij8t35;E)3@i&NZWRtE-cAoegyKWd#oN<MuYnlRc!UuHKJ9_WF zAtv@mg-IY&Tf`RopBv{Cq9SEgiCmwG%f{oUZvx21+h0hI<`kgFbZ@}q_SZhu7YKZ6 z8)tAL;!u(VlZtED-7UJKC?jtwtm7PNSFXN+%S6n!Yb&-M`C@i<D3yL`U9vAH8?qN( zp>SWp@!o&|V@7gd5$=hHWv26_V+MrmVTUV))}Fzv;>$yI-xEYZL+8WuVkHmo2;?>u zA(Hhz;~IA#!hb)wZ)C7VACf;GB3An73}(li0ZW2-ET>RrdP<ISy}VaX0?&*vUUbK^ zR;4vfTCg|(;Yd-NI?C~n$N<SPbO51>oj!qE*Gf4HMuZ>nY`Y14>76#E=ntQg0HT5w zU1d~pOM9&|0(kss>YD853#tJ8`Pp&8#h<2UHQkR>9%a;&M!>`o-p@C_M&;JvLJpVV zCS!fbkijjSB^N8Md(#ved>DuvLS4+QNv9Asq}Rj#p{z_}mafAlK%HlkEdvrT0EKd9 zCa8K6r+E))OCz5ya^b9ml{VKZC<6#tGhB?{QR<9(t##@cp%c#9&V(#L6|FVx3a&9; z$VtV=U+HnNVMtL$D#8;ZC7}1pi!b>jBZFFBEMFuTn5-`Y4_tvqdu;fB9P)AdkAF{S zyh;FnSLwjG8Tj+L&fjln{{QM};2(EWxf<7n=8uPiR&RG1REUKZ-Kb~l34b5Hm<}YM zN?NW)G4;#8KCQ3HT2zq;>m@h<SL~#qpbwtS=S3Hc7?|5nKd>EocG;+NVK#Z85Oub5 zo=Nnd)Bl@og7=3R1vl+ft>3vJ^zIsD?*mN0(#6F>k`U+upmNJ$Vfk}hCll?A;x|R< zV~Vkv1psm}dUR&*p8j(z3nE+@8-4drnZn)@UAim(IsQ*O{N)`W$@W$G^oBd+n#(PQ zOkLMr5^8268eG&7;}@nscmw!-_<j91AV&0WbO5Datc!m?2>uO){P+CY8zmRGC)HP+ zp(PiMpRU+2Fc3|-f3lhKHt#xtNC*}QIT(YF*Yu@Kmcl^DhcP&LIWu{ipXY?m>UuQ( zFCBwQf(h5KaaSpQ$tW-e{eNoV+{f$7P=<NLl84GdJE!R{Qd=7Zlo-AA#tt;jRpmV& zo6QIvD$U13S@+GZoz*JV?76xpxnTqnxl)YvTyjDRxBGBNxDvV7ZT+gw;;b(97JqZ) z;$=SS#E5a!Qp_RWKPTwVK>YbQMZX}(_pj%({}%bsL;c{x!pwc;6TkMqo&8(XVh*`I z8sz`H1ah0t6-&EW4ZdzMLnY0=COq7CebDU7!r{}CV(HTOK!1?ps8#zWdv;`*+(B%8 zHq&cYmj`J^HCAcG8UAnK1f|=!hokuqz7~D+dJ-qifB(Z0N}{3C$lHU3rMC|=OReCj zclHOb6y<CAw*|akdHyE!<6js|fBTkLq?Q|GkF+#@13)pc@K_I+Nw;POKT+k;i5d|= zg3{fMRFjijU2#(Jd+&&fjLR#lnr(&G79sLN$t2Jj-0Vu7ZCPSPJgkypD?E-v4Gl+u zLL*)^oH;u&{2z>rN$A;enn%_{h_3O!7*ATiF|ZS9yFCq7_N<%b2@5r_u6m%_6aVEU zh^@Zqido;P5|IeC$Vb9yEa6CZ5=eV-6X_y6_&TS?Y}zVRq(@ba-cue~iJS!1l^U7T z#SiDJn+)tcw8_57@&hZ#iuiQc(V?upF+$wCOr$0?o5#{b`9wDPMFipEV6Rc+Aj=SO zRyv)|B{CABsKMe87Sm+w%aqJ?T0+?Fs!`>rCL9<j4D>jx81B@jGugJF2GH&S_O)Q& zsPHI<#JiI}zlf|aPUR1&UM3lvmA$F0SyAi|BQQ9bpU*S$-oukJq9z`%VGMT1&WC_$ z!2@7**CPkD???$~w5tvgptCnZL%cbJ+886xD2d<KHXJ}bANNQ1Hb#~y3OQP)El2c- zN+w|Vby~0;s@hmITEBMM!{t2MwGEP}|7|`hgUADm#C?dWa<w8-vsV|_LvTb54<hs; z%-#4?K==rsGS;mGjg3LKqn(KCP-`$WAKpN-_-e4`AP&^!@)-aye))2EpbVp8Og>y2 zVag*+!IPIuvE#lPz5og~QjY^%Q;>#m$@;yM@tR7ochof@$xbkrbHLXxr^eSu+dm6@ zz^3Aeksm0|%T6mDRU;PG%tCwwlN$l}qk<P)+jCXuukl(JJK92dNN22rU4R9itZCG| z;l1uJ-|k{(e2=-v8r7cO%*%bveR6wvmm1e7=nFzimYR?Wrv-?_qO?=Eydxn!^pjMa zm%m*hRGbmuzoxWrWa--M&oC1Lr2)D~ir<mD&P3{Vi|wD8V}FX4(PQ*JOZk$=*|K|e z^fmg<9Z|n2&MyD&A`<er!n(y-!o0$i60yS1mvKg2T{)xxca*AUQB}GoT<KN{-9z&{ z(@Fe;T@!g0QBv6;zwD6mV7`d5sUSPsje-&rueVu!-v}*pH%YPyUVah9;iVVDK};KO z<?`ydj%ny9YJ%@}1H&irT&OM>hKx!2XE}4}-H>l9$U2ocjnK@H5bl<_hpx8N7{o=! zguSj+*`&_atH;^MvNEIe$L$2yar*IBTsVpWpnU%8$?xoPc|9lubv80{3S$ixvq|o| zqd>t51l&YXVR&>5Bbp{o6_xX-yX;6YaC)dWprZ-jcb}Jl2@MR0V=KF0_Ak?E)!Cru zFM|8oWl0-!=OnCGmmVZtaEQ6f^r`#D%*IT<i(%7^MJ_uPw-)wEBQC<MlQXVihd;kV zZ@41sIu?V!J9dQf@~3;rJ9?lEYJ=FDC)Iphh`?I@a(L6+W17nmr;yxv0Ws@3$M|?| zv4F^_;BYyr1#noTYqV)KokxdU5J%7jl+<diofo@LJ#2IDU;vry_B*tWML0C&rx8<7 z#vpo#!Xzpi^<Fj|^eOTxYls)`n1*b_OkelmJUX+5e2mJSjhOSRD~*=Wed^di_p&H@ z31JgIdCv>m1veI%{@jPMqqY+jZT4ZqV_1N2&s|4p%8-e?_KpzL!)jeM&?z9a+-lNz zL_J;DLjbEc)zkjfD0j?fa?H-<`rCeez%iSQ8#=#oYLq@J7VVr9T!b*1KtrN@Kg#AD z@OE@GEx&wSSvK$JJpoJ@G^W&M^$Ll#;gMQ6FmZJ1F=ekYF`HuAU~e266BH06c^i(s z+veBKYm@6iWo&B7JK;ziP_mI(;3&Pi*el*`BwLLWIoQk2WaKrbN-`upZETM~VAd)h zPjy0;4#=>-@LlsbSWsTZ@U(djX8|7XDX+;IeLmM~yO|6k9^HJ87@y(s6qc}ZDw-h} zXqV9>>gS~<@&E85Y-I&!098j*t}hX|QM*M=p;w)vX79BRs(<h6>Wa0`oLaa%l1Q{= zJ)tvlGdpX-{z)v%*7DfTjU(o>OoXZeRufZX6dZ#eHOZi|ul}?HIIehLa}GJ~&(57K zGgY(1@)-gXEx@IGZ{}<1S|z=|c)wIZ2lfj@go;^Y3VRB4rh#yd<DO*pVL0JqQ43VF zzoOJkXCfCpra+r`R`Pf}^kNRTKePBo?nyW1oz`LDquc;pCE+phhtq2Es)pM701aKN zC+>~?v71=li^g=y*2iQf_DhcZac*Yct5h#|ajmke7u|Fzyl)EmKX`O*qvuCCC8HWw zBJSg@MYSA3f))AlMeH%jJ^$cOD%}~C%M>x*39`f#WrCVSP#RY#56J_;4oD^jq*|Yy z=2&<#b|#YVtx0iPLD@3i?6hhO7vkdO1Lxw!h^^jy{xP<eePok}XBk#~2=!)Kj(o1J zvd$|~mpOTMW6=o_Gu$cHfzCuoS(U05_It%q!EqNLNJh6(%_r4ww{jp^HM-imW8z+& zlqUSmnSCTDM_a*j3+^x4b2Y>-GA(n`v)$>j1V$9e=0PaZWjHkf?<Ro2Z$QG%>2XG3 zjrgdFW3=b(R<3D-ozqy!iasKKv}Ad>DinnhrYzAAiIrM}H4vt3VZ($cIYLJby;MYR z)bK79>~XDqK(&=##0hnne73YlC4~XVjtD6VI!<e+y2BmmJqCxxk*Ospg!;!d;pV<Y z*fmqQB*@+HWLgGVHG0FSYhx)9E5c0{d&NW%|K)(X0II^v2<>=bOb&e!`1uhOR*8{} z7Ui}@FMeV0(c8M~<k9Ga(Vh3Scbc(GQl^GLzD#sOMi#b-Y(_~Iv_3lR(ka_i=}6z0 z`nnX$H!c+qEX|IB6X2gAu}!My3%%MErlvZU1w@S>;>~5-E&xO?6+`@nhYY#yt<?)3 z?9oXz-0;cZWn8L>tjW#}xh-~5=n!jMNO7P(!7C_Y>_M>?3QMD+o~Kh{p8kvt9ql0> zZssJg(bla?^;8oA=bs2G0)XV~z7_}qhEI#`13RX2l^vO$xMbtq`oes#PYm8BmhFH& z5`2X4PyHUv8Ejnjmk(-g@b5C)3(<%sxQN*`_4i}DfhVUb+g0^79VuZ5w62EjNx48P zYjS1_hcfG^7a_wv3UN-ZIUcvMIYT`1r_Yj?Ic~S!T@2x$z+DHm2_kQbOuMDmK1Ao( zI272UK3P=scxxxP$m}w^-FCR_QlYVf<^t1xU@e6ghR)-bR_s_<Be0j64&AnGXwYcm z`q<P2!u%~xXubs^vxo5j(}l3MC}6WZ(EW7KbGV`W1{)>Ja-uEElVvSW$sI!mk`z~d z37~ap0zr@fH@{#_v)yYAoT~M;v^F~04QcePGBLfx!@0$Hh0P}+-0+})EvP-~)D!pM znBi9XN~IQ~Q&fZ6ljcugqU98}!je{>Se4p$F?o5I9U<~Wv|A@m+H))qg{H}ysF&@a zB{%RxVwik7)Sio@G9f>JOly{QU8|Ne3Wy;(HGXl5ARtL|@!?r5YM@Idw?ntQ0{c%5 zEr!b!@$`2rvsS-uH{cc)s-lBL7_wFA$mW>XGitO~7EmR<$ZYNF-rue!vfMS*>zmF% zO)h+l+<CTAU+C^<SP*-8uGIfb%NC+HJ~ZGYC1CxTBU+xu%f-z71yUA-R+&0CqVLb_ zndmvJyqn;rI_HZ;a68jf5$uu?izuV&#Vs5<1-UTW71W7z2byP&j`h1BMdEYKHN%?k zKs=FE?wrI+>EAF8nOb!<zlU6eECny0;7dHjn^?HTUF3hEviuZYit0VC8u1fN-&|!c zuzbMFm2NUD;%2==Qy|cK>JvXA0!TI<nz5m76Kqc?H9K^kiIKlT&2rw&fkKhzj^gPF zfw$EnQ#33YxKb_O#gB_+W;|B~^Uu^I?!ebw6H;GpPcFvIs%p~Q9)@Sd!XNmW(hI4> z67D7)vBozIow>W>B&g|qF$!A=nhByTn35>pJ|<2;CJyCgMwZHei`5U>-%A24uK9ZK zB#JSfF}Av&C8~YiLQx<Tb)|^eD0l<hKeM=}2wrLl)fcS{_$+^)5!ZQ<<a|1@6YWi# zkR=1w8;ei6LKx>WN?uEw%_vVG|7nCl(Q@mJJOf9aMHnl*c5TIO!->jZhl2O@XhBx} zR)+g5ovDyhsA6Obb`fqh(Q^=qj2;G#>YsE`Ft&`7R}}q-RxIO*`zxEocgnWFBodB@ zuC7#`q0t@r>y^sJ&i-~)o@6pWNc_y_vx-kLGz?>kBwW0h?*f`tOd&Wf*A*_4nGLdk zUk2D!<M?=+&}6o6-1C!~u?bI^)(2BXfX5L=pW^eqikjV_rNO2oqV?c%<0sYU@_pgQ z<D7YRo9SHU#6J!37svzsqU-J7Wcu(WVsMIU^~6KPz4-@lc;sB^kKW0UfEJ&-?WQ() z7ZN3c-QmbZ7pgq{X<JTUsQ!(1!gmHP>-ZQx|FYKP4jZw&qf~u#=^l~rzRC|Q10w#S zPD#DI(K5}B^KZOYvBtsy<sym0j5Yo@%Z7eh;uFSC_b3Y5b^<FU!adnMda{mvEyIgk zIW+ufG5Vl>FL~R*B!IC%jIU9<O7#h@e9O>B14|_8Fr>OG&M5slHgt1)v`pL4o$m3? zA{>fz?Vv9|u&@ia7Pqc}79ZIeCpTnmFrgY2rla{`Qi!%e@>hO0F_ze4zt4!iXManF z)!7_XX&<l`T-E?uu{2t*!bRKHfEHYwgP4kDoGa^|gz1e52y%IrV40};nLa0>yGn1i zEi`^${HVL&c8LnGa(GytJ@ty~16_ij8z{2B@TsbG?cj*^r~qA9^XbIBj8K@5!N!V( z7|9&zP4yy+V>gx8UV^GRYxqPpR<%Me`h`+5j<(8>DEly`P^E0qG;j&EazOz0nW z&}(1OnGr6bh4ulrn0yvI3VVa!ZEx{VGHkcjyb<-XnzP*<eUaq3z-yM*>f+g;l>O0D zSFq?vr(bT;Xk6#flE(sqK#F$=L$c4%*w_|TE|UI0Y$fTUtJz-@EzgV)rDtxc_=3~f z@&a&U6pV^f2+Y^U%ZoLlgY?7oY1>8g@lj%}g|o4TlJ9~$CT|8D6Jwwk!JZ8;!<V_X z=By?g3MmHX886~ohX~u}O7D89iziHf8h3s?t20)spj}zI12Z_T!t1dwal^PbJlB3w z{odA5OBd6(Ri0~4jPIflYZbjCgiQ<lLq7M6i%;{DWpg*|En_u?76u~=(-RYvT0(p} zjK(MJtn;U=VQ*Nfwc9BrKf>R1gR#F@#8|@;R*g-qjuW+awks;8JL$Qd9A34jKlU?G zM~Zd7^d+HJgUxLjyM<=a+Uqumht$LUS94+p<(l~TbA-QCuRm{>;oLzi@s3q<$tke1 ze_XR0&FpoBHlt|>2r_uA#~SvyEYd2cH?uMmrQ@Wy2L%+$OJ<#&Zq}LN#4#A#tIG1A zwjFP7(6&Jxxw;9%NU;1~RYh#DNqyF>I7ZQ>JpNEhxJst5ZiBZDqFE7yM;8`nrp}z3 z^oI3wJ$;)EtY447a^=(=@i@Do4CP{W7*LtLZy9opDzCfTv1;_()YRdOa2XmJb3)xi z=A~%-UbQ9$|KK;no0oGXd)aaz6M{;)l)#9(rDJeC*FI7Dj|~MK?~Gr;oxk7M*KKL_ zZ9!kYzLfldMdqowy_y-j<#BQbg=Q98TViN=1Wc|>XRo`8A0}MNc$R5sjhpvM#~&D8 z&u|a>q)7DQMR$6k-Ef%o&c?w9yXEdqPyey2z0XE<PVFjNt)^`5)&U+9;<-&<KCHG* zU|H@NZS6FmM#o1IKug(K5ek<hkJziE`}6zXlQbrv6H$8puTD<L8}32`_#RDF&z({y z5YY21m?s_Ws@5O2dpS-;j+5hhvfpWckY3*u`y%qW;6SB1NN;Gl#r$o!Qqn=n-TG{2 zuDtJ;0A1a(Ja`eUQQLK3v~cg(;`4DgApG^G8i#l3*%^UZ**gS1<26%Q_AWh;Dvmb> z7xu2{HKxo7^Zc>w+5!SgpXXSm@N9-1DTOH+`r@s5W5f53VNjPA6Q5&?{Y?Y8C+@d5 z`nBIA@%2;B`-gr5r!<H{9V?admP50$4A6HOmWH*tU;_9`IAR>Z$iYctySmEY1buK} zn7hdu8d#TVy%RGAD;OFyoG*eUiG3R~j;luaklw;m%c#{H+u;$m;+{fJOvt8Ww$S?S zvvNMRB;)HQRtqR^7Ylv+cIs2Dd7pu9ouFT8W}vPvZWv53M1lu&@uE*+q^-+bO~OvP zFG6n39=9evL^3kz^}qw$!nJjj`;91|r%NfSsdRpcRLpJhtnj-U%)T&i*k7M6vx;=n zH+QbBjZdt4U#iKwU>Qt!7$*|oOqPw&ZF}G4r!W`v;6YUXgL3cp5095+n6ih9HCe^| z4w9A|Z!lVzN`VH>S?hs{^@F($?Pl&_ykiO9%8yIM26Z1&pR<zQg6a1c17wkIIPL?5 zx+bRJQvUG~xvxcnG8;VZ%_Q!E$+ADNRJ?pVtpGM;o*>^|`7iA$>$_*4j`u;@!Gw9h z+2K}TahpeJW;-KOxnrD+bNIH%`HezF@w}(^S*u-ddRtEA`T0j{>rCyS4$6TI3GpF^ zD<nlX_4vcSbyw+Y>r;PdzxjP86&JvOr|EFN3g491UAI+@UXZ~@fdBocvqHbNfa#JC zNl&dg&BD)_eqim+Uol>84aOy1y?Jm^^#d#92bSNl)rM`5IwRwb^Pb@MMq4s6C*RL3 zOkBS$4*qqKFhc3ySS94OapobPy}PrUnVFLpDD2?YaF^4Ymz!oZ*lZAKupBv13sC~# z&9!=e(wwom5IZh%Y#hkRwa#-uG~Oq1NAAc4MPqM~_p>R-Dlbk+WSW}7R`n(~SrLS} z_LFotat;jT-o5>#zQJ`PdR@M=&w9*yDn`9FUg_$J-gwg;R!EZ>FLdW<ZD`=(dQ(w| z)wXk`_z4)ujuDnH-Z%#~^S_Dj2_BBU;K;!c5W0LTifxK^Cfgk_d?8AqE5zYcLRZ3R zC%NU^9jmZgt|N*hYRkP=rd}#%zQ_|jCz4dbn$ltI-SjAJmSwt%1D@_OAB(V}OY->a z+ai9;UU@aTCQL%Yg2P(UNR89#7Hw)*Ae1AL$&*xN+|WyXRhuVs{G3C9HMZ6$5>GFg zByzE*+42R`!T0g>G(&ZFYi{*&GiN9Goicdpemp&J?a{U%$<mT(e<2j(jATmHN*4i# z6)ub@^Uw$K_*>Y^!QC5MPhMVXEjQsL;mxraf~E5&^H(qncs=*It4FlTRMw^75?OMC ztli3;z$$8Vzt+t5Y{Hgx<9I?|y1B9`9h;|2c%<!zh9V)+!s;c0Z~7W<tw5)p?p1S@ z!Ca1#?xWop0&hF>aKo#L0v{+4Yw_c<Bq*%lMlZ5<)>K=U2QY&C;FF#7g_CyjDNF=E z?vC&TK{he4=n~Vkz3o=K{M!0MmGG>k@fq}{vDRjD1ClB!_Kws-a37N^pj}-LJ!Y;p znQ(r?-paA|sa(X3uB@J&EtfSANa;J4k@%x6GVW}m3(Bc{t9)~9B|7hF{Z?(EYkJAV z4q+{xHUvaA=0@SQ-BN5<i`x26Y96DD)RDCDToV&7N%&MnTO{F_4dJ4l+g+}=w+nUk zhD;_kNiP@-)?x|l7|yMQ;fqOOP}lzRXr5SOl)s?PRz+GuLql0+ab8-iLb5AL_@!!j zwjM1&z!&*?7Spy8`5DC-lheoSh_ZyxN_MRQjnPrUmD`P@K+<(66zDSIOWy2<Cuz;; zlg_~wM$A!+Z6fyp_n#ai{X46XWMuMxW%d28B#aj>^D2ZC6xF_#*yc68RGgO68X0}q zAlfy7+?dT11zj_64TGl#Yw2nCrUy)93@n`5W1(GE6gBq@m14P_X{Mb+e+3P1{_p;= zyTv5*@(Tl_a3BWOimBG0*P~Wc<!3!|UpL)ux1^z0#QmDllbs~=cp`(?#b34wgsF(n z*8iA_*q^?JBbwbU@l7_BAJW^%nBg~snfX7v1kh~GOC_XH8yrR9Ho;2HNN<sB^O~`O zx$~av`m=@)4Xm|j*<J1l%TN8l@`@`SE5vv&2|DCBgZf?C&0k;~Zn3OwyKkIHD!%@@ z*vhgKRHr(=g_$SKJ-~QFLDfI2aK2prffXqMIA>t}{M}_K(yMVcbL%8OXpiyx+si4l zMx&}LjKpR~GCc4W+2S*ht5Ti$?$F8kXye)YpB`84n->~mG`@adt*Ez4hrHQu1b{N* zFEZOyoD~oaxdWDT*^ienS}`C~@E=MP^oN34<qn1&d<T46C%I>yTacGeM5!zIn3dWB z@o0xN#|E+0_%8~~qyBFGt8(Ic2*taKKNbW0x6)zi-SAJ93UzrFwhNC;OREfzTz?mD zvLwAku!O1I?ZEWU?U#!sm!zf5ar%*)QKST)?E9DQr11p82UQ_eW$^IqhvG@gy}M{O zhda-ZlGSpmD_>`Q#+L*}+Pi}G<>V8i<>c_}z&`zv-(yC9`$Z6vk?H)?XZKH{bMDo{ zMjILV1yOR38GWT>>#cb2ALnD9T;>m~JjSmzPmm_nJ+&ayyJKVR>H%5cJ@(=AOy`)C zo|HMY>=TuFE{w0Tr@XvJiRkZiuhG)Q+E<5;5AyWB8Gi4)T$u{eDLgFy78lFnoz#!N z=m*Xp!Mq`f;LVr@y&!=gUy+niu7H9otJOEj>w?YIW>K3b5B@X*4&R=Ar#l(v4X?uY z{AqWvYoCL7mnhw?x&!71S<f85;jwK<%K#e7=0%Sm{|dF_$ht3hj)LTVh4R3Eyh!59 zG3tEl<S*CdY*0V2QZU?O#rxY;y_e*_LW~;sZy5;u$_69U{r49=A230kz~_x=R+q8g z8q*kk<|DsH|JPC=+rc6*5Yy6(nyp*W!4RKuEq~SJH+sikH-0FeoCW!QS4k_7-rIZd zR>qZ#Li2Yc`qw!B^qBv<7jBW*7J|RDwRHA3U%YsL!2g=^^d5tF8^O{eXY=z<NS^cj zoZvAGUO&HcX+H12bSkf3NN2yn?yVukW163Cf>53a-+RH=aY<#CuFE+4{lFSsIdC2o zExt4ZQ(fwg$k_jTrvestWSQs#ZY}7xRfDb#NBC0e+DVgl40dDB`}Pmw{pDNuuYD7( zS22w%I*lioaqb=7LD!&6=WmqvFEI)|t=(o--`S?O_jXIZn;Dc9iJa#<?7%8nDd6E{ zSbj+Y4=z1l4?Tm|U(4Fr5FVSzV`Mi6^wDth&@=-|TiU;RrDWVHM{lpy=FL(<7T#F8 zV{Dtc4+6Ac8E3TAu9`^LHLqH{LpZeLI=EW*1MA7EUbkA{=#a?#V|0(j9sEd)kYB;u zQ?EU+B%hirD<mnBP8s7ZY`A65;1v9=m*Dbo&^NqMc@;aavBQN4vkh+qhBJGV+&y9a zkoQ}GYa2UVMa9u@pLb~f;rH4fSR_vCHnA|rZrpNZz$2A#zGQxz#*CnR#Mpf;ByoGD zKxiz#uD0FSQ%|8M{XSlxl52uvV!W!5kGF58FK31NM{B%PqX;8ePBDNXapCkgR<pG= z#?#x>jof3+HZOy0uV}?@aK3x33eBY+?^#eaG8<c`UwI8*Fj^Y!0Z`6kMjPkyrfO;p zaL%kUrj2`0I-!QjKu5MILnM+>w{NF{o5EjFo08iR&O*D;hK1Fw;BxH)bWCJ2y|pc? zn4=qgGP!;5OMmYd^5ql8M_}h^1^vq%W7ADP(9#!eZN3E+fNR9V4oSZQc!BE)3$HoJ z4)>WK-6+?lV|k^IA=i?7;uN&`9KLj;&ZSy&`ktw_OD-IVA8~WV3m?oR-tYEp?^ura zBvEeK6mQMnlOLM%p)_d^$Au3Y7ZMCYz8LQGZyOvN(9mj?Y90K78xPAe@D9t42&O%n z-0V}7v<WSzymz~&%H-~@M`3Q&h@vJT(Edr^^|f1?y9V2hQ;?cOOJ0iILR{2m2Ehmc z#U2v4ebPjJvLsRQal*tVv1v~k?I~ZScqgEFTL?mA3BIP7-wQ?CF$X4$J`Hc#nc&?C z7_j`V0FAFdBpVo-IiG=N-mS`FSy`=c#Hs8PZ!>v9@$^IQ=tcmJ_w(J$28_RY>D95j zIptG9{TT5=?$eZ`@4=%xru2@E@H7dl-qWe9Dq{{?To;0u)oxNVLDy(VXE&@r=@?li z7Zqi{E$h6aWMBTi`-^A6>R~u?%Qq3qoR?h-#`|2R_j$8ja(#@+uRX(U-(0Os{KBk1 zmj7_pe&IRV<8^_@p@&TbASlGBn;XjF7(?F{YW%A5>*iBW2=^@n>2^)H<Xie1tz+Np zQQ{&qTMJnpH3L8|LYxoZNE%dOlOGuErqG!+8hYAYTbc>AS?Qjw)1TKRH~j0(Xdlur zVYdME`to)hKTfH>_8jt=R5W)88CZ>YQiihUwRG=ERulJ4%9XFvlPb0}YbOwHVQyL> z8_WCjb+Qs>3ZFdpGlG5os&+3Hsp1H>W*|xPBq65mc5MfY`zm!VXNAYOi$I%NRvi3r z-WxcnOKLsQmOf}?{dVte$}ejlO)dJao;WrpM)ck^?){iZ;XbrGoM7banx5OY?&DhC zV}H3V)4(<Va6a3d7i9pamNLGFSP+W?dU}(%%q!T{SV76n!l4r>h`TiiigaTk26X}< zNP3_4ewcQ+eCF=1(;Zqa2iHz>jD!d<LZOAVG`Bs1ezWSvxvCXcUj8O)cJ>qOAte`l zb%Fyk-}6Vu-?H*@i%_}^39+`UsgdwEZGx;f=iK&p)TMJyd`OUN9{ylshvLcx&b)6M zfh1W3BhsLj<i}UHoIV8)h(QjpRg9f^;*4&hcoU}eDIcqO#fghTa7N1Suvrw;m_m6Y z2IlCriG;DEy~UtY2V5S(i!d~1AyAko2rsTA_M))11&lYB`rh3T_L+HLqdF<rlirkG znNOThYPvyQSpn>|7pbN3KcSm5N}Q9qI{Jb24%0C>`x0FAU-8O#8s+A~VhQ>+_B%d= ztFylJ@7GxVa!kUxIVK)l#+g@RyO}%Dm5cixGSU|jf-jtO-QVZQ%k)CL<k)<ey)i3X z<E$ll4Fp^L@&akt4)7!!qncBQEA1uW29g5A;3t_PM#bf9m5Q3q!El3lx)0z-Yfp-B zB^Z}TZ;=n^EqQfpKpbw1h^Z=B&dkbWe_Upj=IoLUtuo#7jLULZiQ%?VqkyS&wZW`y z6@>7sKGrcY0QjnOjlq;scxwei^`FN@(7hy#Oa79I`l!;>i8XC`d0`&=4<6Y`y=?aB zBR0IJEs2p$CpNHaRUQ-Pp)H=FH(NfY*GMXJv&Tz@JO_n9Toyn<lwN8Rb-F%?*fNY$ z4m-R`GCCwt1WXxm>-uclW0%!1OJ)a$v+i)GQB$6w!54~;sSWS?yA3GFNV<8t@1hMv z)n0pg#9iz9N<B5p){h8N=JtC?ZQl)}Yl)RUsYxqSm4B8~BWoZk%&*Y-(ZfVFp6|Ms zPe6&booFS`mhF0WenD#GbaoyhHpN#{$k~Dva(jk=(O|#tS~JRI)0v{uPdVRiAwPB& z{XXY;n{X1k885?Q)n=yBDbGLI%Bpt5cG~oMXr3TelpZ#AFEE^gfSwcMLQ-3a$N6I& zHAh;;u`&a+<yAqS&$U2p<Y6LRnTXM<zFV1^u?VhwpQDI+HrjSL4k;IRO)qN@WmRHq z&s(9(>sq0#&F>URhpL9ezDPDTVB!sJw!UC!>$b_DLD~Pnq9|AQ1R)LgjB-SH*@uU< zNAzf(hR(B*w^$CD0c1u<)cN5i+Lm4neU5bUItL@Qh5bl^(MOYcY4N0UKtJU6!h8L= zTM08QsK_pEh_+;4!I0tBt^NI36Th)Wn*uix<w;GAad{kiRoFD0IvQkYR*u*uprO8@ zw}Z&bL=J7fYtDg<tzTz7w&>SERpD+f`MU0|M9CTF>tU9VdzG)+u6XrzF-*}Tt)SAz zcd^`Yy17!z(u#-rfB97c%E@cU{pNrZgS`C9(LdnY@7y`Z%-kZiFypja-%aY|+n&YH zt{XtRWtb}-BE+Ti@rw1YZtt81of$m4FOZp^lO8#w)$`SCEjCVJ8^B<Bmy1(g5dB&% z@ht$baY7F~SuQk?Uo&Z#a&5ET(6vu$ClHE_?0ETF4%0$w;cOXV8Nr}naY{1Wmve;7 zeYpET2D`g&q+kD32%-$V2&8XgZ!uS+lvDHZffSNBrFJaj|27ynnNKb?bxig2&}~C7 zs=mz(i{~S#$grf@+%;5sLkJf`|EwR`Z^QlDwjU(#!}LNFSyfGjhi+XXLk?dBMQF(s z2Zj!vQ*W3$W*i&5@o;&QK>Jzz;fB<r0~sl4*wL>9{;n5@cv?CAXbNrr8YmsdB@2u% zxl{A;XO6lbs|KgjJcK9)wZE*##mWtgZA$iC>-^c!01$@RK=Zp*MEn#H{!^aoZ-agv z-B<hWexWztyh(fWyD<CTV2%H0j&9sWRbQKjW;3gi8Xdn0soZZFISNKb5wyMUqr?oy zhb+Dhe*5hAn347YNM94LSo!6$;yNLkFTnQuqNyBJJ^QV2#w3o6=7aR3*BFxIalEw9 zGnaq=b{2-WM$03^QQs+_LPyX5KGQIgj}I;>T}dhb`m$yxbzcpB&A7($lN9_9w8Vd4 z6&8*Rx9H+5<b-3Oq#^t*O!;r#ksG%pNf4K3tPhx8tY2zh+$?X*sXN;{FAArkN76G7 z&V$~6>K-#$KfPlUr0Kmke*)g-?Ym0bn{V8#6;kgfiSX`Y-4i&86T5spIX_~0arSp< zke9b)&>y|I=&85r3wq+^eRAj7<qs^KtIykeo4l77SNZ93+xuvOfF<dp`-U=+8<qy+ zjl|S6V$z(oV8{8Ejf{7q0^+}p5`O#thBf1K_Pg}kUty?H@IPGq7<Rt9e0a_tHSN8B zevjokTB<7ORvPqIh+u;MI{mLMzD(Nkdbam(M*h2$Zr~qu0>6)HVivyse5QJxY18>Z zt1c;S%lBTFi?aL%8^gmGIT_O<@&4$nZ^<@Yx@36XJzLURiEExI_jKea=LHMCsW^Wa z3&_+Y)eq<^U%mIATmI8xfA_**b%F7PzIUZ75Ckdf{$nTgtGoJ#o{EfuE#a<l9+Za8 zJ*>V7mt0;!3c)8WD%>miPF+TGUcOGi*{}{Un`05U!5+%4KrH63P(<9heyB6oUN`4V zQ@3MBeIO&G8GsQ=FrJ!KB<^ejYbbWKQH9hO@`7wRXrwxTp%N2k)@sW_Bu*oI(kFy@ z7SBt-lA0e#s2TQ!8B&q9ylG(w0ropxr={tMNiLL?V_J>kc2B(U)qw=qcq=;Y6GH>* zLU&x8z`_Ne=I`xz^v0>K2Yi?<quS~xv7rY@+eF~*%b?^#)J&-}Lxwrg-fMhj20J`J z_;YpFBSVReD&yHLQG>pES#T&}T4h%}BV7jMpeFn@iQzh<U-e%-cl=Yg@TXLf>u<2# zQ7@m1MN{zNe85@L6%E^|YBjZ|om0bB#tUDTa6C}^8R!rG=g)uI;J^JIe3V&n3sn!# zenTzwM2;MBi|@}~(%|1bp|Jf${^;6jCB{#T_2h=#65PPt(;~nPC00aNbwm)nsVDq- zR@Uv6tZRC9{u>DmD>=2uk0%RoD9)>*;>^h{*Z@5e&OTfQ6FHZ<ON(bYW7I?oA|O?G zxJhHgv+;2<IlZ(Yv=&Zt*H9aW%aX`_MyO1SPu)!xBdL;8tP2}<3`UCk@Ek`rQv@q5 zL5PVh+c~iCvG=s|s|NKV>}}DT*P*t8a^s8H@k?R=qVKVK(MM;>!nK#>iBfv&je}cf zD6Km9VNxp-7P692=L{;vh1GC&IX+rZV%*R_%xh-z>`eW5eRMGFa%&_jJrilbmXJUL zd>(ako|;`ife<QL?RobyMSjEj-2nQMtm!2_x~@DbY7?Umni-ARF;S)<snwpio9+uK z8%v&U|7OM<fx7I&wq398M8(zNjqY&6L(7nfin_8dJkobt6hlu4p&vgCiW{){r+QVt zizf`9XfqyhQCb`;yy<!KA#r*(cDZvCndqzJ2D9-XVHOn^qTJy7gPv1J<#dOg*gPB> zml2>xUyJLQ8_2uxH6<mo;RHnhwa7?FBPik16E2$7cAAoLDv}jHR8-l>EYau=4Bg%| z66B(m;mvpw(a3sh&QhZZ*Rmcm!+ly89ogwxr8(O0;K^{)c<lGL0Ls#ED8}*4_70n* z+VPfsn$y<MWU(<pnUc@)U>H2J`SODd_*{I7Gr^D6U=vT?<f-1Hu{x#r=QA&oTmTYr zxmZ|OMA#j8aEwGotctcGc;gU(W}X$5?GyusS*#pz%H@aENgr>`^}H*f`nq(SD@1EJ zcSc?v#J5I5ZE_MCeo}5gL*FoNWDMbu@1Ah}+WzLmw0+mCm`7N$|Lu_s1^m_K+kOkS z5bBQ21x%Zj<cWB-Yju3kwyt_SVVuU^snULZx}UgXK_a*^dd;h{+woYHe67ORSg=TF zP`UO+X01<flM-%K-B<3*hRonNiz1!l=>684mbQ?`7WM>1bJT#~4S76r=t8z58z?xb zVxW!1DZXRHi2nsV?B1xh_Lz19vgmqtuuMoR7f!<B+^uVw`Ca!%=55}M2x?B>T|xH8 zw%R{fjF`kXWg40{9-{`W#%yW&X9b~nbn3($;j{Y6_NgCJg}H~;73FE5n<Fz%=2<Fx zscq?HbJ-nqf6?v!Y5MmsnAdm)fe61D-M{Qf{C_(k`KSKtH=9wY{8{e|vtM(5#kpC* z@yVv+N*U|lfN^l!hkr&)s@rj`L-=vR)zMN9-Ps_;QkOi{=n7E|WdVd_iY_cGAiht% z=++}pc!0;69S7Pe<ifQ)1r@Zd{5|)wda{4&!71=cclmDh#aJNou{1$TfT3Ue;P(7< zc+zG153Hx)Rq#$*-?PCVSfw0?#WZqzhQ}|PzB<3VZ*VS^_~%I_Z%Ie^FcKeFZ80jA z2RVtjpT56*`yl2)6`k0H;?<Xwu1{9v^)^Gda26Z5>n%4<o&T0W_UW?C1KS^16H(vv z!_vG9&Se$?L|fwu0vURLFRaehjKlg4<HhYD&Vy+6lN2S%Td=QXC-2ke3&(G$CiCTd zOpcOM7Z&|^Le|3_0uqA6tk0(@(u?Y?EKt8;2uj<_IGsLxfY=`DPN9zLcdaFB*;>se zcV$#n^_lyDbx&>C|9hqkRhL`#C+DE(tb_V1t&eXX`L~^6hV^vwtDM)PIsVUGU<X1$ zofmBsF>x0p-?+Mz{sm$CHx5*cyg}gnT+r>{C6>Es@8-tb*GDMLc6fNDuq|DIQ9Va` z%y&fFQ;}?<ecQK0kB#VHBgT#=!<v1Zra<Cb(XHy==;)L>fG7Z-cyDH<mi8d{6T)Z9 zedFpqdB**w&L$krA!F|bZwueXH0R_AjI*+ektz_UEu?TzlC(XiZiv~#35zHySn##o zV8F*u8p_79tSLm05W6Q(T%tp%PWj5|buWU%bM|kuFV?Q!;ZK@_JwC!J!&?U)3w%}} zq-kffKJZH`FJskP|G@4QpZfOop_1RrN1BdVzixQ@Th4=u6;xGIo4hQBbi{(FzIKI0 zpn4ylk<W3~u=&%nDS6FU5#@Wtue!#?Y9!rceHO4(G#z*Um_RAcmy&i?lkpG~NbD0_ zkq_lbXKtI7n*+1aL1`=3CO9kj!bLsrU_XyGPM?=3k(?j=OLNt=jv*&)V;8>B)Dh#0 zx-x&ckStRI!c}SMKW4)For?>TGh_Vd8bU>{x6B@O+V+#&ldr1#V~tIThhqJc<!kSV zoltDsXSM|D*+g&@*XYckjlCQT`&{xo*sW2h#a;peyt|bx0lQ6@z1-hQ05uQDK!mPK z2{ku7H|qo<1PsPeki)izyZR!2Ta;_V#1OFMTUyA#b?oISEC$K*p?8i|zn-z$Q5{b2 zB^7cnC>7OBL5UBwv%+l$gUK@@o7_S4H%{=TLYJL|kE24gQ4-p3n92do1aFw{R(Ag} zb6c;cU%PuT#5Ey-_zZWGr{O)+0L8prvE~~QJEm#=LRGeTfK8>8G}(`v_GS3j*M}(6 zrZ0cxOa3bv`C|CGDo^j}nAjYmL$1#$Djc}rs%q7hfTk!L66=F#)!wnn@aqL}YC6LH z_@LGwR8qZ=Nb}#M9s^f<^kqNWR!*{Lq+To9Q9I|N=Vlw01q^pkw{QX0UPR_Z%t;b- zV_eT<R{h;eX6RKnXmsy`ltTs~fQHTz>Ym}cLQ8Nv-KKuf3^y%uNW?(tc8d_kQ3IG8 zl`CKQcaIC~-Ka5T6-szEG}3kR!`~W>c*@wgaA3U5ZPPc~ftWdj<&kR!+~WJtJEyZh zwE3L}sJM;oVdIJOH&2Dh@vBwol4D(PgXb|msla%V{*BYyPm^Y>Jf5bu7BIhVVFes? zCulmh{jvVTCL*wD=Nb%S(wZf!m@ca#W1RzsBh_kVm!h&(bacFj<weqrj3k%|Ye_}Z zVdsx6p7Fofd+(?wy1i`}q^T4^Is`<DNEZl@Kv0nyBGOv|DgshN?}#EOO^6U7Xz0Cz zKnNWXr1#LPNbkKUSib0e&bdA1Y3F;^yVkqb``09ynZ5T+X7Ab8{$0Q8!XpJ5=J^NI z--Y;O%*b<unR6a^1wxvtk2cS}O&GMg9$HJ}>1ha}!0t=22<N}+(+EWuIhdl1LuQ1! z=3s8qs7z{*5{be~y2BS0a;+w-c8eZ6A66gIekiS;t^7JR*gl_w)<u5*z2T!%Td`g> ze5QzNRuB@Ni)KGt2sJr+@r`!E^nPFu^X;499Rn51XtMU%0|Az)KgN=TUp++(*|bhU zYtAeh6|--oVHsW;==u~rj|P#v6+Xfbs~hWUgYzik-j}ye*i^@$rKD!BU3}r8@OvkN zuh-KTre|GTLsy_4Q3Q**-|PT?Va}-7ygf?YuqEtv>c8OO7!x~ao$1o?I0>>J)68Xk zS8v+u_X{8p4TXxc6<&NwOeud+FOZeVG7skQKvCGJn$zHyMnCXBx)7#0Eh^Ab)knGC z=N5~Q`@O%o4=ETr7Z)9XE|+|yqO6lgsfBec=EkgjTNhW@B#&jTD2h3a5UhX2Ma5G- z(YUH9hX1=^Mw94_sjIKo!<Q8^j2zack!0=QY4rhmizcW}ptf(Xu2_pZ08Eamvx+T4 zug&@d#UiZ#?*C(PIIKAofQjw1bKTjLvd;9}WnThu3x6wH)bfZhwF4|m37Hc!78D;Q zGNn(_{{GbT4s9YEu$BD_L7(0UOqfgvoqG(%?93@NjS;5p><gCC!rl>hqR<+n*CMHC zo~2K6{eE(4id`<}1I#*2&oq@h=s2xslm|2zcy39a)X2-hwt*0lE<D%1Zr57*f%nm! zf&R@4L?Y1RjZef|FaG<j?^muc3g76hRn=M6lU3pjvltq^_-jn*Djv{*ud!>1f47g9 zzPp5F)!6ABAdA-f`(DSwT+@JAR_C&&NjKqVcL=>O>&qO9oDe~F=9ghH53DozZvzNZ z_oFrXB;Q}fFaO=&7CUM2Fc07565>k>)R$#d@N&-^Yr9Y<y0RU6@orW*-qBdCai86e z9dLncu;(g%^!JnPcqd?vxP$UC<JW8XT0nKBc^-bt+L*brB#&%lE6itPEqC_g>xmg; zFNoW;Qx_Tb`k=gV(cB?81n$O?Kj0R$?G#cIZxW&7G8zfa1kkISTz*(O0l1(vt7m~k zhyAp=_>bu=@K-a^3r_?*|Jd>esi+V|g#H@S_{*n%)YtW0UL{g7h*Qch?~WvtiGftJ zA0(SMzB_+=ap&E^;>xMuY4?pA6L-Ce^_xz@=Yx2t7kn(0Ky!D_;PDFbpXVEN-aNR7 z>uuyPQ#;2;6>2QAtYX&C2FU?Dw1`KP#oL3d;|5ekERNIJvHO?0$>Ku9q~+nDaT)0( zgT|vdi?FtnQ;`O2+yN&H;gz4kWFTsl4owjc5H#lD(B3&eT_$fSmRkRGn71!KkrIdg z`hz4^;i(tc+Ib^=#=!L?u~J6C|J}LC-be3jQl_q^DCt%|iteOVPT-dq8YLr~Z@HV< zabtcQc;GHoivKdTD*T4cBak6V%Wh?x)U6h#E6{8sT6w-+B0svbt(}9zjO?xSa}?Z_ zRqO=t(6krS?Yl`_4PO}?94}Z#herkm!?iQw>B)9`EVLPCu^LuvkDSC@wyCHI$YH|@ zgIeJuP={7gPp&)s8i0=D+{&uSW*%x;S!ca>b4TBNlJlG;oUMCr7VKFtu8I`pLk&gd zB(RmlrzE!Re*Xg5)RblCcObPD=do@hdDMB}_t`<1r&>7xbv92`#SvdWfTLXe%;DNo z)%y4_$t}mdXxMc`UHTihkGBMdMeY4M>FdV%oF)BI!3kYFkpthn_%3<-T5*;qvsr8( zT8NAN{Uhz6!95W!r=ua#3ORZbG9S=|Xt-*@)x6i<E6d>3`PkDr?(h@7zf#KIy_$4x z{|*cM#_)sW*!c&^h3|(SJ2oqc&)15}50b&qc7Mca_YV?@2`1f`%?LS-{SX{0;}jD{ zvH1r{bRN<8@6OlrGy5i(f^Wr}wsQ6yX#&*BFS5kM26K{?NS-4+k3M>obJmlWU|+(* zT%sD2z*Mw+;7>z!O+DKB6vdPGa~z(_4iE-mc^S|A;1udFI6gAJ?u-D*`UQoQ3A<{^ z^j3b=tf^GG-6M5_^dzA0066QS>K6s6UEz!O`h18}Pzk1U@;ke3%!-+Cut^=CP&i#i zn;?yaKD`Fk1#2$bHPZ2a%7L=ak(g(<>vm74IL6beW!E)idsUrYQBJzy!V}OQx$m9n zDI#o_xR(1-cCi5^vp9iE!JGvvvWY1As`a$Ml+|ssvs_Sl3Ac_6Rruwxl&2aleROPJ z_KhtwPzneMEp)~vCGuQ2di&#AtGx$?a+yOzFofPui#b5XHJ7Q(0XQgsE<g`hXUX^S zx`kDVXi4gG9H**}Wi~QEY~!_nV;|?cyVqR$T|Y1;1B`7dC7vfJidS|{ppPOHJARPR z57~UZ_VHbcnsoBn;=n|jxR*)>6B9-TQeaEVJ@_~xYpf6AVeR{=*pX90Z?f53pw}Tf zWVt@y6XH^rVo<%=LBC4d3Jz|2W5Q(UCOhmIBwzCV0`o}Xoi!o;>6Y6|LEq>EbsoB+ zLHE%hUd3DUF4_3Oh=>k3S9W$bdFWx{><Ef$K{RV=)MvwaJikiTE8q8ORBKd@w@4Br z!1|%L_Kh~Gr)!Amgv^N1isJ-NmfhGOY_cn3mV2Xr<kMb`@Hvmj^cs@_q3pb5tkCN( zvxD`K+@eEL();I6_QNS?6YOQ1igpx-AI7{=rf~<OHJh3X%U|Bp0I*PmoOLqxt2J!M zkBhCqgjP2N<wIYOD<@>NY%T33^ON}X`<01{JSY&x2Q959-S@xVmyJ9Zxj?4dYl+$b z`V<c{sQ-ddT|ezu7UCEfl>U{hG!gLsL{Yf~7iv%Y=5)+dRGFQgcx*FUTZ`JfZTmhG zJXFYEmAAGgreNuv@0q=5%&ZC#4I9)4Z@LG9DW*bYatg}Lu8JW*9kW$30|r{6KS*q( zefdeh-ee>9m~ZjB&$D;691ol;E-uO&n^#6gYyuD6&j)y))rg4_9C3e3$%$fbs=S|C zJ0X6|0iQ65WX3(+2;k&?;4n4~>HwUhu2v~a#Jo3#(xwLu>LaU_Ai7oHeLZjtivLvA zd_v7&07;8K<N_SV_P6j$l_g;pB5T=PoV9h$ZwdJqLAHvM5AT&5e-R8SHtJnz5p^R- z$%h82!LW@Nx)e#RH<=r@ed`H>y80?YD?~c?VWdy^c1(>1IUWB6im7ybY`>#=cDc=5 zMzu1(A(N9QSi+8U)9%o0YM-r*d$Hp^Z9qeTtzE$RV^aYuf)qm)XSk;v>GtF3>pQMf z^<o!0T`CdgvjoRQG>S!I%?NL|lvF%rf1l_&NjjR$_1=8E)=;<99Pf9i>7jP)l-yeD zb@Xn8;~c<cn~u7Ic-=FNI#AW}fevG)?xI}(%v|Xp?q#c|iMtDDLMHTwZ=HHBO>2p% zYSDa<zxvv2xpg;`hAx0QM^(ZfKE8bD^&%F*>Re73tRJpq4_=#DQn>Ahs&wFSS)sNr zV;Uv$=$6&paw1jrBXSqA9gZ)z1!K<vF7Q1c<;BM?iaX_&Z`#$?d^9wL>Z<V!!&r8A zK?)E!X!fvxHQb5WUr?u$Q)DIINq;MW(R7`%YPRD_%o<ucac|umE#z>A)28UyUuG{q z8IR@DMrZ&V!b>D2cPll>V;W=Ts#lL5ufxg=_67zFst<3|j}V-u3t8IDI)L+Fw)b0? z{Rkr6vGew#6^5q{kcJr7^gzVCZF20&1+NUuni$XFCmTmDE-l*PG7kKmORM|zs}st} zQ;`bsfWzV#riz@{4po;HB*eowen@_0H7#)PNt1?55Mb}-r{)p>X5CKAJ1O<uP#Gqf zQeR*9HQ74HQR!B+U&}K(eiwH0IbzkbmZv(pj*BDtlZK+0W_}ri&9H3^J`I0(K=I9Q z>&W{^t;d7LGf6~uQOy%C{niPL?W0UUJj*^=s(9MPk;JG4!-=DGScdJ|noz#&a}Wl_ zwLa^^zpSk{+@tQBH~#sOsWt@N;S=%j+Mo;?&l8Zx(MX~wDAFGzCbWF2Zd;F}*juo( zo3#c4n=o=lGMl3*CN&T`K^~etgQ@{zB<;J08Aa*&Q43nkM!AV{HeQIlDbN`;HRIHD zQ*DX#3iCB#WF==5mv&~`J#uokX^bkPh6Drzta_CUE187L=VQ-9S5|vqx$As+9<)c9 z4(`$NecZ4#;sb}IIffPOW#_#$R&_#(O#bAtLm+#WbTSOb`|xsQ?-VO9uP!ZBzAOHR zLw+jS4tx#(GqN3!)qK!_6-=npQA@FR($J&QEN^0DyPj9b!l6>|9;-|yDtKV#Em1Ji z`yG<0RClm(0uEPKxnwe0@zNuBM3k7+Xt_`u3!529WLa95?J*S=tQ>;s+ZIszJ!rZl zVv1R_y*^6AFoHK~Gq@{TQR&rBv>?+bu*n#z);=m0@1slxaXA#I;BusilwxXRA*1Gv zrbq4{ntZ9E&+d{GKbAF`D5?B9FtZ*YaAM)WL&;v&ZM{XHq;!pbWSpi&F1_+m6_8L# zRgO?1d}@!}Q(T)fy~8_gQ&c&Hzr+3@=6g6y+9sw*+|fyFmb#iQZO=r3o$0`kzQv#? zBSae-y`>6fsuBnBWA^5g9R`dPuG+o1C*W?`a=SEa=9~Hpb$ZFJEKwp$>p`_TvewLY zRgn2{yguWsWVF4|$02zapGfcGV;ep+R|>vGnhOw_9aU`EO08kre%VnMnqU$NzMq{e zmNOxg6{Myr8vS}^iGK7`qKls~n7enh$9jT2fOk_{Bwv`uAm*g-wFj3#HPIT)ID^=S z=g18)5t9NFFi*qVG<ZD5NQuGYZSB+EWS<p9&FF+gAScu}XxfmeVlf>Z+v;7%nS;QB zP`;<}F5%V?;wUc0T9nc-sbvVckc~|ku=3=*yUBKlU6ld>5^c~k8;ZaK{K?YLdwy}x zCU2ZZ69I1C7<s^5QJa~Toe`j%m(jl#e!DD5WzBVUzAOG#J2Zh8u-J+9-mJ%_MQg0^ z<s@F$X@V1OHWG8^8w1eUwMg-Dj)FKE%CpK>vMxu(&MsKtf>Dd(ycpbmzJhsY%EO{p zSmE%+%IQnGVhUIlw6uOzpzEtPz9J;gLBhxY)br;;IE;d9mNH*#a>*a%!r4bw<aM<u z3xY+a)aVh-g=0Mo#bq3=JaM&^4we&N@miq1%fZLu*jWeBQ)Rcp1Nl{pD*e{6eB1ks z*I99v6gh2SO&bH?2s_#9B9UGX6UsgM_)C23q9Wbl+O$f6GzTfzPg&)6d1VZNz&J5X zSy?tpsn+F#9z8-(!pe2NE8<WECbaa*RCu+}J73<913lmw)-=Ev{s<{{7)r+%D)Y8# zTqOSpb7&4_iZQ&&gN?8OhO{r?)|`Cl)z8%8?mS4g(Xy{H*qBCB5sdY^j><D%saQeD zU`gw)0PsE^b%0%k!K7EOuXS#5ezxomg_iDcaLEf#5~|0nX1PZd8}8iwOI7!Sq|U;G zdLF-gD$6dw&Y)!sjQ&CLwr+mkT%;<}b4ND<lp0m4(yGo$$<Z1}!gW(*R}D(%(h5G4 z+1a$mEBed*A?!a~tKViPt{&GEL4R$Pc>f#Zox1&l>K`N%PriOUWlbwKc0TgUKZV^s z;Sx`N)BA&jwzoBP!-lFP5MGgPb1ux=UrwLvx(H1<Hj1d8;CoU0#pwmylk#`lZN&VO z(1{!4ACKq1TQ48^9>kA&_i}Da9)`;2P#^1+X^DA-QrUU)p@N7BqhkRX-;#ciJif7{ zy>WfuJF%K~m-a=*mkIjyJ0E>t76M1lmuMAXa@+w5Z8qNA9+iu6ku?&39x8ZriMR}J z^W@{pFR#k`GGkhH2ADZspEM_Tv?eCnfDFu8e>>pM1`;bUZgBZo0r*(4mzK`;avg~v zx}%_o8F*0Y2hpubdLE)imVf8QQpXD7$-l1d)pc~MPch3wL0p@2B6#Ru*VO6ddw?<D z4>|1)uo!q8_JicFS+d&;zgG8`yvS_w3k@nHiV5TSW*>JZHdbkSrTjj}4Ym_B_)zk! zX=#iohKpY=+1Xp>wb)=7T`M=wrdv!0&oR<%T%xZ8k@Ij{3Wa)I2)nKD_R%d`&#gY% zHMZG;<TPB5k4N-}osnKrD%fW$6yPcK14>FN{^nY$4_COxu3skoRlsZS`=6hY|2p?) zq4a0l-!Fv!t+=1zy}&=eo~h71hfUTn6^&-a;h-#JZ<1r8)gCW;|7^*xg4m4w%@xz1 z<6^Vb<@A%k2zceR9|Nj;75Rx`@qasr>B-w|bX^fkbu))XA5?fvGb}9iKV{&BPJdh8 zy(-Sj8^QZ*4}aDQs~n<6ShmciDHL|7mr*Hg%l1jS+KpIAZ2ZnXt9{0`KUO-@5i&M- zEbNr=8M$LLmv`~bXK!ga^)HE2z^@S{nQf~N;syOIXDlx*_A)b0tM5$CCggtSe8j}1 z!|?_FAfDkZsOnnu)+0)AGN87p0-5X=c1b`P$atB?F7j>2fert{aqu&C&Y!0+dR}UF z4#KFL%oTM&bYV<-H!i%6evh)ENttE3_*=<k^25G+O0+{yXdBMey!=%8-URbWi`Iil z`^i_8MhuW<hbzGBCDGZZMItlIRXk~FJ)l;hJ|M|FfJ<{LLE2mQtL*11Yd1nZQm_j~ z2t9~U|FnORO|tvxtFLF2WRIlwIp>?hJ_J)eZGEgMjQF!%+9Et5&`gjOQrwm6ruF5R za+MA~umcuwU6t%tyMNsu-3a6c`mH*jiql|TGwGCcbD>CeA3yzXjkin|vc_Ef7~gc$ zr;S%leMgvC2AShw=?TR4N;Aq(qRJ1Jr*dn5U6$O>mI^J1$aw1NHa<-HaE%@WL_-%y z08kz6KdUqmuOo!rN6YpIB`eOeGg<cz5a#5mm=m;tp7c_-cP{~==o~^dj6ID1JOz3w zT~4t`f^d#7Wpzv*p(J`cnu=s8IFyEApX<EPZ*>O~T~Cz%JWpTc_bVA7|JA@hZYA*d z|3mBl-jgWE;2*719|h&}{ud4rf5dDx{~Eg`4-3oxr?<yHGC?vDIixi6D+Tey9J}b> zBah5!ia#Tea#7oRapaneGji`b^?wB>byWWE*>e$?X!ULWyyh<?zR3R{u`B;6573Bf zPO!(m03`@f?60C7BY%Zbe!ARYmzN->rPzR$9o1OLLYWHW1%BYA<!<jnBtztVlSQ&r zALu2<l?go_%XouJh-d9s<q+a-nhJiu2Rixc+7`cK>b<7fv1M`4?Vg5|_*_U5weJ~Z z!qu;_YkpCrr}_?jQ5&+AN3@@ad^(_S9YWUfw0CG4ApJD5a?5D0@(sK-%v?Zv{ef$k zuKd|XTKO;w{&|cWiMhR?<ej?;2#aVaElW7N2M1v6ErRvV1!Yk3Vrjj;x<Ei#I^2Ap z_s#oW`fX~rK@<sN<owH9lj#`!IG|X_&~nYpC``ukxEGy7pzm?w!BkQ-$J3d);T0qR zF?z!?yEU?Yut=?IuS3vOEN}PN`zWea-UxL^C}bMjLzl90VzzVr7vf%lKGmEhiQ>*B zioFOfm6)Xnm?J?bj*&hJ<tOhw)LoW>H{&e<RVc{rdylgvl3J>3Sg^=u+(p9n8>U`5 zmrx%BCeei?(FWkh(tw(Lm!FA5vOm(2QSHG%aEv@+?GO;^vd2nREMcHo+6%711qf0i zFLbodG5!*)2HtCBX^3E8&mmfJ0`*!nb`7`~(`OVknqgraNd=iUpNsRD%MxLBS0s&O zu`xYXm}4NGgSClz@0#KRSW;ia$Nm8+)ZVsQHhtrX+FF0NOdlQOWcp=2azIdo7f{jk zw6?2@U1f7)E4<sE=X$MM&)v6N_tDbHah&zlr6birSXqJ-*?otrTp-IbPdi#ZWt38% z_C1Q>ba$r3hZQv@PR_a6j}B=w!<0qly1JS#u<Rd}qf|YLhU_MDx!|DXWS8RfSF$Sl zZ}85@Ae0~09^IxR%ggt?&z+la=PVf?_&c>c8l!=?eGhS~*a}}9XpTY-K^wQ(5zk;k z?aiF?sRa=t?w8I<o;ezT(!2BlS`ur?!rQKE0*55xvIX_32nmtSG)%?e&#|EB=8o#+ zxG~<k78wlOSvBC%?NE1;yzbkyglU1I-k9OUy=??gH8S^~1b+W%Ao*7`v;W|?^FztI zDSTf<^8eWKU*zQ_O2YrcVD=AM-RGy0Cm$0tDVVDj@n2sqL|^@#h!SkBcr>l;pHr@- zo86Eu&9BRH$ut8zAL+r(Zh$^TqE4A(hA(|pGl?vEb}hxgCLGkb;AhN*_bAt@a2wH+ zlkr-&@{A?{p*zCeA0Mq<@@uYWUyDk|ZvtZ4m#3l}cdz*)FlwBf>b_(*<aq13<?$T| z84=6)YZX}pmQRU(q^l6n*QWNn(EC_y!#8^r8tyY+tv@7N#^Kjt^Xi2Zd9N4cTR+K| zwlrt_E%;>C3>I5WShh(GfGjLu?1eg*fBeqr`D9(itFJKI+RDTEO;ENPcq1&uw1=&O ztd_4u4^>nV6*tf(!qLISZS^ooHHRFvad1#f)CYs!>LVyd6j#XvY1)}|aPRf6D!)m~ zKuLetS%t%7M8t<V6`^;(WadOqRmOyy4e(stp?lBH)vm~q{YeXE2!%ng4-4GiP<y<} zt;lM7sZQcsn6)?rj2Wd(O3i;n&~Ni9d79e2iNK#DLll5pNdRA5%#E6^=?_llX1IUj zMlS-dNp6czzqPxZnhavUDu-h|?-1$MfYw4r*fi~DMk?me0sM!u3K)#uYg)X16C4&( z)WwMk<$n3zSNS8-T5Nj9pt~m%IcMP<RaOUiC2{2%fF)VJiaT-7*sFJup`=EeJp{9; zs>{gd5r?ixorewslu1hycOgpivBpKb`_zj}p7hA9PU9gzL-L{kzDb3N%P!AD#YpDC z#?EEBHJe^u{aQwyF&b@fZ>N|#xyPk1wa<KebXwXUOo*|URqTD-X*zYx3K~#>3i2nB zA_xAAVEr*|EqpiT-EkMH%fQ6&%QHLnSKc`PUk@|<HCO#R@pqlrI+cA!<xE<6_<W%D z&Awax1DkR=T2PplhL$7BCGUA(TL$Hht7{uKq-H2F9Wr^1&<A?c3Q0OI_GHqlPy674 z)(e7rj@px+;bhaTrJ{GXg&VoR?W$Yj%87(g!2QbCiqIY|je((*lfDew7Z<19)2o|S zbA{QZIX1<``p9N3Fc)P`Bm|f-@2T>^Z9C|QBcBTZ<wpvUA6h~caLB)MW$T?mu8A9Q zWoBhp8cyf0$@N`ue8^@kkWm0LBejD-+viaZ=^=Qm{gn}^hbQ2N^`Ahb^^f$V!ije1 zS~oyn9y>mRuZe6H*T1@ssbR%4<SQrIaXs==_#$E?@<C4V6rryz8dEo`0w9?7YupH% zP3(V_k;fn{sUX{4;q7qPFk;TEdRr@RI=+lmfnp2*I<TonytLiis2ngf?&FfqProQD z1q&nhrc*8gm)4X4WghZfZS{6ya9DRXnqZql=a<RKTI5U76)6{5LKMDSC3e(!xIIYO zD#Fj^&N%jK5Gh&cz3cY-x70B1tcU<ket5W7L=fj>kzO7CVM}2ZihcQIGAP#o$yGnZ z%*-T%E0MJ0$P}lcn5w3E)fYIwr=P-ISldwi@u7FgXh)4|US`8Uf|ZPCTx`*W#~TfD zTpTA=ktnj5g|f{`VTDXe`|}}MY+h(Yzh4;SR%t8@fGclZvb42M@9)6f30hWEG^C!* zjyQM4vCn5{r-`)Lk94JDE<^cAK05n(Jhe}DNFC#yqn^Ux$iPoegVed%P4?&dYVC(d z*Xf?JaJ8<gIy!Kf>x@+-UZaP4x6_H7Uw)FA8G-Uy7rHI|PLQAIFb{Jbo{`)$y`xKW zZD6Q3A2JyWU#s2BN6A8U%^BJG{aXRc2)|ZvVJG~x{pz?bOvE}w>8J4fv#KPt$9^j~ zTh?5~h~1ELEi+p_L4?GGj%{RS(680UJK&R%B;$41N?6!GjnDruT>sC${yQ_%Kjx%y zE$29(<gRVEZbtlqwb!=Z@19Tn4YU63*RyATVbq@hn1}ao2>Lg8d$u0?da0u2d1I7T ztNN3k`{PJ@I1dJ7g|)j9+XdXOl84@Pk<uV>BXJ>dLD2k!+rJ<)!_O+u{lv^SRsM#q z$;iNMOpU#+Er0HW`&R^-EyWOZ7pGQDf&N6@_%~@UojZEuwE@;uBCdY}-P8uL{R4z% zt=o<57Wb_jFD=@#k(&RB(Enw1{~FBees6Bj+{3|_Y3%qE`3v%dd3pb3A_CE~;-^=I z?jK6#sa0VS!qcz?RI+;WIjkBE(|VSotw1o)tiEB;t8%p2tMz+!=~&fGKtIRe24-P? zcyXrYgGsOKbWV}Ht0V*G7vdUD$=uxiw?=J}naP-9+W=s<0MgQwE(sp|!lzbet&O`P z_EgLvS0HSVjIV?nO_{y>(nP-c(8JyQfv7*oDOpbM;o6OR1=_ahx!HAh?XSGNZ79{c zl9bDJQ;sTLT+u;qjk5>H>LVl+U{|2X3s%mMAJb^J^%lI(ZAo3MYI8Qb&L=TLBsWE3 z@COM1h!H7LVeNi@-9A0keO0=&&)2SlJUH-4(26sYr(6IQ`=*q`?~NrJN}Vi-&PAhr z{^eZd*_a&quImzz>?;{|RR>|;FZV)^>J7#8({M`adK0<;iMWCKEpM2b6!6d{C(Wc3 zQ7pMhQj{N(_ZF)-5O8~-exiabkiC(vP&|+El|OD<pRHFiQuX@{V-eT1YGv0tdF+hv zTvg);UTYmudpWDh1>!pR{yx6NEerU{Pto8_Wm&Sus=X=a>!X8<cc}09vARUuNrXXs zrgkH8zXc4KKe4$iQ?^P@bpPx(kd2AWdLDboux|Bina)2@plYL_7HnIRo;<Xc3q0?~ z&KtdMN0{3o8rbfb>j~Ph+Cd(=N6zcM`*Kpf9!KkZ^z=|ipFK7C>Cj@2zgnnOOti+Q zJrhqO&F!~^kr9I7E7azqlA0rslPY=hE<W(CxxI+ItElT-d22qO^Zuo-=#UPBZMFFR zYzsMA15IIJ1m8hOOzwOjr0R^(OrNT*mQP)usNdy0jGT%mSpn^P5TNR?sEOZ#-loMS z@wWCm=Mllr?xS6hV}*pbQ~Djw7_uws`Ns?>zzK_@n7~9$et+i)1B|(9{ZZ{mt>5f4 zp9bLO>Re6i9gSMP2;yC}m)*1V!bI4IuL@>o<)Jky9@uM!w2Arx-fkN<9u!&T;-9r> zbYe7iSGF9!(eA3v?ro87DYCVC92B=)bO}!=rxOt+mU4wC%kfT5s2p#<ruhQ4w%V+! zNE4$0o7j|)Xa`&{)*Ii*VpeVF?zFEuCZ+|`CEc85y$JSZu2N|`+twlDlX&>xLBJ1^ z<+Y}~3Z0?u)tq1h)RJe_V+u>XvDMk?llzv48j80v#jdUDtO|;XY>QuzG1gtQu0?qa z#&5$SD#HF(b4&lS=KDWd`^{aZj6~-b{o+{gU;GWttJ-S+#y7tB?3f7nV}I^9V7U5! z&z=uag6ubZn$SdN3X6{dzR>@eWd9E_ccy>A&;JKf)Bo<*e@jcsNgGKN#}JA50~Bd6 z{WY!J<oJBM*pT$d@H<rqjg-a)W5`pq3#jmU-{a^vd`H52e6g*n{LiBMJ!u8`UczZ! zJRX8OF~<zF00#^@2`d?S*=RBzK$j=Z{xohPA)#dk8}XXP;lmc19XJo=k(sp{?s~ei zCi0S%!(mcXcHO*f6W%Ujk&E`pAjOs9{3a3yp2lG2-*k>bMY-#;v!856*VtMime&XB zXQ$a)*S*_7t)P9SwcNUzMRoSdP1<>1-PIxQbfGN9I;W7T_q0yGs3!*aw1Zo<c2QgQ zcr#Om)2otu7j`O@r$ctG<BRUK1&It48y<{wvKKg5O%FCr>)n8YE?sW1Izz4ebXLun z3zzxsz*y29WsZC)2noOxc?JNE5JjCSHd@Ly$sfKn%aueo+~1%&`EW9(G&))ATwFCI zB^hBPnT7p?mW#IvQcDX3&Og2MT14hBw!07&wSUc^y-hKOaUGn&&f{(6Q_T1<#eq}Z zfm6(of42k1R~-E43#AK?UFr`1aPoHt+5Z%isd!>0P8^arg;z3XZtf|YXGYFO`*80V zmb*oosj|%F7%3htP8QCChPyzgHAIc~UPll5fl1kit9Mot5HiFNU&8Wi>v9Liu9v83 zEZG+kiGIJ{X>ap=oH{#1wc&9+=M3#YqEqD~_ejf^K;!)Mz4bW2!;d(*s73W0-I=iL z*gLy59P{Kd)ot{5d|Y)W@~%$G4%O_-AjG>Z8@g#81%KrlYu%tDw=pVtcU4h~Rj@+B z|A|_Kgu~S62^k$ek=|tn443aosr**ql{Tom(nOeee<`yg>ib=}<k5;oR~0{!0=p7V z?lmMb3|c42HBLTHI#u3`uGWWm4DAiw-jq~nI!?49p@~~!X0FhmC}!+}gcv)<>c!iG zM?4olUO!AQRHn_JwM_TuK_Y{)HKV^Ie_Nkm59LzXJ$%VzoJufgF@@1;DO4y+lSg`; z?b2um39s$<B&CLoyN?UmPD|gr=j@X&{$}gqYE)J=`TSFeWEc7XsPq>duRmr;e;E`6 zR8(~SyPAp*rtH6+PeQMZ=KG|#x^A|Q*lZ1_RNsp*S&D>GPx4(51THYaW?rf2V2K_E zj|SVv=AyFt{Cml6E<smRwOHlsChOzt%v2kuy(8f18V=OlJvMn+jZ^_GNL%rPxQ)U` zbTLJlZ~D8fqq>_D`q%;LeieL*#C-Wh=9y_)PoP^Fdx+&sIV^D|7?shV?#wcvs*hMb zSi-!nF7F&Cb+oQ~&lkg`NwZ+~EyIqdx&vV}f%QSgmR6c1l|<N1N5(@GI1oAHF7tgN z9uxWAg!6c9&b$|LLH9qUma`8ho3sH^>t2{%>4#@{R%heozGcpJs;f~?3Xwqo{pvGD zTAiO@4rv&CjV==dP4x$xEwVR)spRY$xB~>tKED!bb`k?+l9=wDcwg-y(MMUO5Cdjg z@0>bwww>q>^&dqn|95u$JMX?f-g*MAx75%|0N4I#-ap|(?!QC|XZ{2g=bk3czl8q@ zCvfq|L~DX+WIQbKn!z<GKU*8lYR=)7%u2qe1Vmiz-v9#n<?v`_fF$sjAvP+Il0^T{ zDLx5V^wOVAICI|yG(Ykub`j&6d^leNyMD6lj>2Z8l@nA!(;8GXMB5Q^cVZQFe^y}` zRjM{NZ|lHD2B*4t9{M+g@mur%D@^p;p;!NSb;8BmLx3^KXv3lZ0dcKxLgLG#dxy9b zqL2wksi8xj<NkTgW-TS1+i|p!T=Vw^YZW<a{M_h3wR{$C>By$&!5TY@!*M>V7k9F& zUtX}|cnX*RKYwv#XhT#nWR;j6eDXbu&6@Lzq?g;O={<czZGFyegMrqOA$e9cL05^c zKpqdu1<R*>YAlrp<+KKq6mCeqyK`h*e5T#40P1%k#_FoXsj1MTQOz1WW?rS|8HwLF zHQ@4g8#7i-?Sg=%b?cS<yM{P~lCsXXgrKG_iq7aBGP_l`V}r)8r%Hu<8f1VIBhGF2 z*G{p9GL@!RQf#w=-ozfJ(^RB#(Z!AT_bz?%i(-!GQ!-e~=QN~MR4#vGkz>j2-WSGh zklbvO8)9Npq0_-sww-CYI;Om^8G{nvUMj1CyZ#_aUt8<^gab0ixoI=Y7==L#WGH2; z060w-bD}CXl6)KIn6xsv<q6#D2mlW2MTCNfc35XSf&z@W;a`#~Hi1TKoR9bWujb`d zz8<X#FC2dQG?5N;eykimDPRzV9|#?eG^n~c)h(aWJaRhtIwy8|`umk3)1qVSWLz5N ziKf)`x7`n3yE)bE@r66{*3`;yiGEDCpka1zZ$rSQj)tmx9S*E;3Sbh3C`B_?Q)OE` zVs#-WwNg)CS)vZb25)_r5k?kKt?Zm$ImlsuUf$34oS-MUmZh6-BI&a?Li0u^SA`wl zWt{lgpM=!-<;j()>gMg#-t2<k@o-rIl*eI-J`VZF)bgQeXX!EpoWYP2^1kDT`pi|2 zUMiT6`}cw&p$%C-efDfz|E&knUF@hgQT=<@%&vg|E}dCO^rXJFF=r9(f+uwJ%F&x* z$CqTo?yZWBJ_X(SADj(kJdL#S(h3W6A2BgAl_|4V$!DsWZGf|tqm-+5$i1!ovywr) z6@yY3Z*6KzQgn^JkjwfIv~zUa>oEpP5ZaPm*U!HaUOIdt!)MBr>PAsDN3#B%+8GMd zR=?9}58@3v+se*#o7O?y1#pJAVlSS~+oJN16!`zm*`iVAapadv9p-=8^29JO|MkuG zCsSX=zwJ@zQfB%e4tzHa+=JDihDLwT56=Be6%_iJCz#8N`(Ml#{6AjQ1GQI?DRmZ5 z(_iF*%%J~5)aN%!0XLa|@`yLR2MPty(P9EB%qcVmFe*3j)lm(Q4=Dff;g4VG|KINa zcUyiw7yl<82l|TyvZ~<rRP4Vep)ca*k0g!|W`F7LH`D)t2G&|-)Z(1wsj`{WZATJz z`BCxwcTCWepwaOo?4<AO7Nu1bPZev2D$tQ4hny9hYQ@dgYqaS5O~BIDi*6SZ0~5JE zknix!U7nXLhX;MMYs=ojm&(M|<Ed|($DjAeU2}v6qr@Jw{8Cx{Vo7jJ+<a4}sw(c_ z=mhJmf)oHo65nTNmby;m7iRMx5@}+d#*D^IKaQ5+!dfEuW7Z3^EIgdWTqupmg222r zo)7WG930@awUqR;e1FBVtjXp=Hn=|A0SliYfESH%2k0qoJLObqE?J=gaCv!5P3e)V zzWYm?D{l^{Z1T+zMO!cLs<{^Alw3mT_|;u3^RdM8VKn-e5-oWmpUW&897y2I#fbUj z?9a83XkYG2(#coi(iO==FG^9rM1e)k!#td8Cl)fR^dl-i?7KXVV}t>7w7K@puC-Bl zBzgpf9UT1qfd6lXjdbG2zC_=Mz&>ke|3TvZgg!ektimfPt>UhIfgQ3UD%oCeYmJTL zQ`$IRCe1EYSo>_SEph(*cA<Kp%_Cy$OQ|XF&YKuJhzWrd+zO5%l+!ajFfy}SS<4ez zn%NdkHsuaW{1h$acC*>Xvxu2>^@6pCgQ>c<_rq`7{R8|`YSh)1`dG@xhxY0^FX+(A z>ZYcq>RPhZD~Tfp(ohcS5cP}Kh%OWlul|hsR>*L|9%k3Sx56|?x}}We*t)+I-Q}^U zlivw;e4(U^PXKFsoeDc-Y8B3$?eeIqD1l(_Me!V8#E<?I(*(rDpATDIonwE5Rv;0e ziG`El6Ck2H<~=P9&vo_z64N&fP*miUc0<0NB0HO^Xb1lIY_kWa*CC<Z8<kMNHMpA6 zR;y2ep4{0AS;b7;y~v)5k#qMb<w|ShT93%uF?D39uNL=PDr?1L+7TIbx9o2xl&-x~ zdZP0f`06-IW0k?Zvc77(i@CAi-08~s=>EN)4=)=bC^+Fp#I%mlpqcGlVOr9w!OrR1 zF`<{=YyPL4%l{I=M6`J7U(L<Qk3lO&x86l?dV<H;8@U814$RC8kOkQ_leyanuwt=D za>=bX!?e+LPZJeW&orYd&^=}DN1fCpI0JQ>$^Opqq*TR$$Xb|dyj*netqLKhB9>ZP zXQmNq8AAdN)O@E$wUE0U<wCN}A6R{AG-24V4pYL(3W;tNg%b!GYnbkFGBphl8MF<+ zl;w4`itUNU;B}CbyW=+%gaYLB^_E)Nvt4=RNRxIaKeuuTf21MQvpBtM%(@0Y$!Jv^ zS0NUra<-S_tb8wMRzMR`rdooZxw<8*;j{yZfLeUC_dYW+FL*=zI(2O7x63`cG8C%j zL4F9a)_@j)_rtWV?%|hfGRVZpgWH7k@LK~el@bJ+gJC)LtB#B#6UbLi4i0a0Mpj&o zaBm}P+1IIMcky~HE?Je1hgrwij@1Cs(hAz=h0pc`da1(KG-E5_FZ9bsS7cFr%&p0C z&GBHgvS0<{gv(M~<|OUAwDGY8q^Ryx{sSHujiD>BWu0`LCY~;UR`IiDia_OqG>IB- zm(D2BVqyl+J;qP&V*pEE^0zVVvoR?#dI{4vzGW!^Rc`(})2zP?xK(L<P#zR$MT6nb z*pR{hAcXTT4<#WX5;^~bi>5`{NNavvAKG@34+i@bUAnnV2T+2qn+M6CUpDSBN8B@d zFolO#;xN)+0vUYZ!|bcb<ci9_;Y8AFr2KSt|3A^;Z$L8RXIj&uZAC8|LCp_ptY@I2 z`maUn{)tv)AaJC9n(+C#%(;M=?@Qk=Yf+{+6mOO~PB$$CR9PsLj_kkB`0#ugA<cES z>!TO)(5tiNYJpG`h1p<@)c8YJDVb(i$I**WdT@zRVMbQ*3wMMTtqMFCr^V*)1_p3P z$9Z^E6k3W1rR6$s^IKX+LS&j>h4?az6lw`TQ2DinISwM(6ZW6QW!EE{P?RH>5Q}D* zhs_8b<eD4ErH#2vhIg^T81BD#QZ~^#DYWd!V8ljt*RpHsn%}v__T?~;xp{)67|}Vi zg840Bv`6t#Tnto3#8at&3I^>Hb^o-d|F~VpV3WCZ-3^7U5pMr<KRY+u;lsmgYK4i* z;5BNIphU5VO}E^_w^M?nij89qG)^w_LJr?<`R#FBxA(tn=!MO&DR@3mvo@t=oO$<l zL+n|B9!H8)$sS0suO+}Z?>vVjL_b1<yuaL=DM*s2mIHT<RtPH9vceIJ8fq}(s<epx ze4kl|yY7ABWDtWTp^S-6V#-g3^@9js%Lu>lNfEX^P9BDfWP!_VMXr+yb`6{2O$5{V zppfK|wRpwDmv4GwE6Q29L}?qrY;(p1+E6WBptQC&O<5x>&3_EA(!nN>x%X)(7Kb}< zkv&fYL@a0(*K0Bvf`WmcdL$ks-!pUyFr0UOh?>8raU$C$diRCSO1&$cl9yt!*-JVH z-sA>{#ko<ffZCycf_xhnf`(Zw<%x8C4l6Kn*0t&2UinIJzWIvBNq&eh-D>q~OYV0U z5TSI!J?7{^;$JOeT^8ZP!xkcBH?h<Twn&Yn<APd4T8Hns*F(#I6~>xJ&H4f!+R5xm zoNEtk-p;Atp}HQRC}iqUJBfe1tVGe8uaP=Is=BIgfaw6xy?-AYg!nLTtY(}akfK_b z{i=WUkPtNC?Ue9ZiS2R@cL^PUnHC?|qR)_?EjbLTNlVC{d*B-%>DRWD*aFrHk=ecL z6gz16;Y6)Wt}J${$1xhRe7!u-#SY-&-kys@iZY#AmbvLS1KhODr5D}dr2dsA9g2b^ z6eE*GUZ-YvBF2@qpq!{2+2kv48An{0$Mb~puY}mGenOj^^N{c-OJe6E$0e(CY2ICg z+>OZ2549Aw7pNI%uoahZ9DzsJE*!j}sZ%~YGq>N(5J_^~VccFQwJ;~raIkfU!0*6s z>*5f~w|~BC1D`WR(Q?!&XG|8Oci%4h(y^t8;uXg*U!$(OVzOM%@ly`7DF0w#d&|_9 zfiZm^C~{zmm0QQcnW!}^hgf(XCOaRSKJQV}1{u`9EeCY3ZiWhm5vFLCu?JARR~v*u zNfA5EFUiU_A0R?)V&*nS%Ek^k8Cu=&ih!Hu2^D!<8`R#mKqW<4rEJ-<-SETf_hud( zf0RYX9mbe#?T_^?<%dzq%0~Vm2{Dllz385#4grhE!4?^BsIycNa~drS_3@PIiVdZ` z(%0`9(^|4A4Hxh)FV$b4w5x=_K0;g-vYptEkMKdTxo$Vk70I^PSU;JdsnEe!%GdMg zzlA2(oAm0x&N&A>EJfCT^z_6}WCaw*YOJ*%Mt+*&jIU(d?)>;TVlhPPMJ5uW8W{n# z6d%pioZXMd&AJE*qGyavL@POhbzN|XwHzMWg@Z!>w_uu>xD;|p{igQ&Q86m-LnNb! zO9DD%=-V55wqd3JzJ~;hVpHaT&XD2RE4kNNm&5Km<#asl$jFR~4ujNMZ+TXl=cCqf zc<Ox-SU2!CkdA3cGTEwXUR+W9@|_<f{&|l-!iyyxX9l2JNTiBXJ?5CpdWzHrz_PRa z-p@_6NT>@5+^W;LE85zOFyPb}r!22Vx%sSGB?h?eEwQqf6H}HNhD`ILuJq%vqm0L8 z_ektIoG@){Bvzip_w>r$stA<<?F%V3>jkT=y?St2R3vs<jU!xnMd(e5z(%x8))bg* z#5ay$2z47rd?$pMY{{{e&^pGx(tTfN`#6X&8nY3ZLa`cFB1z0qToEoh6;mx^1{yx_ z-7MP{o@lgqzSWnzY?D%0jrDP6g>m<7L}I9;#8exK1r3M0=!8DFzFL?0ny7tYtv-P0 zq7^gL=3S2PN_oilb}E0V#t<gJWkA0ch&OZf|3T8J{$vM1NicRa8W@=3aww@D=&+3l zUkc({pT|Jlopsw}R>O#W_{Km*8GgE)&@fMyx8{()Sl~goOz%5;;qjS$`%^7PgrG}l zM_J{$60s`wC=U<pB;W18b;sZrRe<~6$0eR-L$wrTWy9CAVPXo|{@o~F@eWt8U<zCf z5xX+S78STpV7_v!P0XFq2T(Ho@yR6LHZ1VpS;77<XP$o_U*@}1>)bAMwQXy1@4Uue znVWy)8UHRYmL^elW9s7vp<LL;%VW9S^R|5akx^L$#X{R9GZ!WVL_D&6+)@-U1t3as zc0YbqwGp6QQ1I2H{_Z<77qdfaY%z8mXDkR$FDJl|lCmf;eA5Zw8U4|~WwtD=3L2mJ zhL6MTDC!aCtIbET_jJhwtR%3qoj*vdpErU(^3-j4--Y2JW^<Jh_cTM@*1YT9jeW|c zrxMSK9NW+zmkmk(`k7*}g3)>qbS{H$I>fadQ2J~U<`=S?&@+QyZ}nJ4$?xO}M23PC zGl9`_7bLKIqv~FmZ>lb#rZofO7P*pDy9p!BWB%=e+a^1P?-6z$gNi*k!%YTH)9bm@ z)v1A7X^GZ%_1~=R4(oTE!-D5LloKX)5Oc-yYS)1Eo3^fv{PO}XOhgr&^=~tM&Xt4B z+Pb$?(7MB+O=>PpCLCn<274?WiGnZdaUqii=R7gsOGX!3ET+p9ze?o@PYxUp*t#D_ z_78?C=rn%GJ9CyC5ZqoOE`!6J(&7&Ehg!Hyi*nCUL8#EnG!}Ke#+j2GO9(rT9pwaS zQmWL|^S5;w9SX66RTb#cUO=OZfL1XbyB)db^G^8Hto-bB4+BZ%+FU95a(zz_Rbn6& zH>9cn6FNi~oV+`c(;&2rmb(d`=J8v&KM!tSUo~<S8{%CSaww29I;k{b*Rp#4GP{3T zl+E?fMH(}Yg033PmQ*RhlnqXDhHA30>NSFrX=yzV({ePZG60=!nAKsjr>?eqe6RZi zQq%KunU6*|-{e~xNTAhN%Ab<ZtC8@yituiVAS=&`Yk#87@Q}X53j7>&<4{NyUxK}I zX1TpJ&;xBoc|q@$*(gx4m?G1P-iN;WL>5X`6m1Z4>9(|%&L|F07iBU(jK01Y@09DQ zg|-76)kgN%*^=1Nxv;gloKwYPCo>gv-Y>ZK=m)Tzy4O8Cs5FXFHj>{Rsy3=waKx7a zJ%SQ^wL+!TS?Bd#8!Iohm@&(sjXMn5&45Nu^+=*>JY6z>lHXgON4t?Corr9-$z1D^ znlz*WM3XONn|UN)S?2n_an}T)L@sT*&Lyf_-yL*|uoMLMNH&MvGt_AP7R7Z%2)5Yq z=(g?k)hVAyn<b_&v3D4aPf-NTqtYmLcOr*<TbOCkdG6xbnMP=%&wD<|_rt#MHIYlS zHR&0{GWyqgSH{dXKe9wJ<UoAqzvjVojYVT)B@JI^T<l}Ou#HhqbldUJ-&~uOY%J(R zWU2P*jT#OU+28O{rI_o)++HdTlW#n(<aB^LXU0s{tP614Ij?W;ec`MlA(;i-T%2Nh zoj$(X!}Kg{(XxGsW7gnVq!e58WF48Vlh4!9=WXx@=wt-}m4gFU6%7ZgV1-e1bCeks z-K)N|dlB;notWEg-3Vivk_#9RmMbe0hm#X;{6S(2ugh~P)z=x$;p0QGpvM(0?Q=PG zjZQ*_3G8O0rKvK_+U1#a+@;HLuP*!`(H(w5Q2jyjYA6f;ey_EIopZtR?$;GN7mBgv zr-V#1&L|a{M4DpzRnxm`Cw=OU!Tq?`rPVYYPEcRpA<_<jWV48+pTGd3E96|^vzTNv zy%$Jb2WRPyOBv1D{F@k?XwEw$tW~71TE6GP^My|)#;@9aH2W-<96efH6j{HBB5{4s z-s=7oWv5!>VTNNI8XBEk3b_5!1DSVU)Zu1=a$ui$a$>-kDU)H`eS}SbUCLnai%<Ri z>}&DXRqV5BbkL;|A*biJpq61|A`^{wNL^dC^_Dl|Do_!F`U1YWGMRXd7i=Vl&@LC! zS#`jx9>hd8RNoMwqcZwBZ{|w{P~oc}Jzb!0o#hXb5&d{S37b1b;praPmqloz*hT5s z$rj$)<+qqe4NiV|Jq@~f7gS3U`1q?Rhr9!*VscHAlixi<^iA+rbxq&Mr)X&J<F9!{ zb+?tu$)tI?8c(M~T9frQJ?s(!So6mHqqN`J=KGv!X-pAYuZ(>gV0o*lTHDx+LQH?1 z`>4z8GY!#Oa4@gYjlGYwO?VHp5=V_aOVP;K&e-FwV<tQ`=?SgkGBiX~3*pLX0d51$ zI(%ec5kcELb7OPI2r!LXsK(07jn3Jr;JH|YZ!Rm#f|dJOB8#XhP+|0n_$&Ez{KL8A z0N~CY4JwzpW8wfL?<U<GrdQRaGmlVlnARCf(KI=h!M<LGw#nb5ioT;at)DmotX_~w zwL-g)7@*W(oL1qR{s5^_-~z*xvCKU~Q_{Rtk1|7GA2r!b`(a4kMRj`i?)z3A2Sstu zhdG2TaxH98_w-F)-eY)`tLB=Ryk&3Hg3tZe%Khg*5I_pBJJ(7IP3zZVG4;?~bwur* zUEN0$lEvm=5WAO@5pCo2vw?5e2|kt^9}Yqx3Mpz-dIQJ>rVx3KJnDce@>Lu?+DGua zQa8VzVpx_Fvo8-fAjc^7R>@~CZn)}6foS5Rsr(kaPB_3<g@_^#HD20h!{T>nrD&qT z0qg!=xx{>wd<j^D-1RqG<h3BDYvxZs1Y+EKx@6^Z7v(K;9r_?LUkp)M=xYt&i6dOJ z+33O<aIu0-dPu}4Ehj6lYE`XsF8OJ}Dp6!)BVaHU<g+UvmVy(hJ49foRRunj(41=J z8x7<HnDk0*QMB=e_P{JBV3ij^fyy0JF%&YjxNYWO=MrmA(!8h;0P9;kQG~*dXBi+F zU47OoXjz?{U^oO-gyk+`uTVC9<`=s@c!|B8#6tm#FHcgKcG^^E`Bg;MctHWDPj&`o z{^*$@@NV?7?fq#5K1{Ttesbd8(pz!#(7?UzLmi{`4qkkj#u&UwdVM~@Pcr2l%Ag!K zG2Kw<l{AN)p74%X%qT8S&o7lKo3BIRG*%NokG)SKsmLG;q}n#|7<Gti_4l}DcH1#8 zufQ_P>b9$>#i45q%KS!z>4bv$-&*rQ*{Axp7|xTGLAyRTHv&GuN$Rx`J@CPf{A&%% zq_so-mREk8mdTZv3aJ*R4a=JZ5b$ZF_d$V`JtEa3D@yzk7CwN6y(Q7Gmy2|a(crfX zfzNJ)(!Dii*7C0!{jlb(!6`rsSb8Uk3+<E|iDVcI+Mpn89H1~Q&M_yR*RfI_IG`2I zjV$mKE#TU_{BQ>l=r{E6*EG-2=IzI5gI|kEj-mIefkZu*zZxw3vHfqkfiSRyI!L5g z1jLIhMhN?^BWP97C|V1Lm(w4}ITy@Y-r28;BcQr4Ra0%n2I?o7*EM=!_e!V)3#fHV zj|E$32l}!ilI^axc(QR+HG0}n>4JH7LCbk?v5&m7S7iyGWV>5r3|v~g9C5X+Atz{M z=?Sul>ncQ}uFl;08R7c{wR+P?qct{R{-EUZtuDFl=j?_r`wXJ#u7T)q>C^dQwBI)o zTIH@&Vgsdw_6I{pZ--=AKvCMHiFY~9LBNF$V!J)KDRE}w7XgHbxDd4=LZxymskmcg z2gzO=ce0Wum%PM{vKiq`gg}79s$HHqkU_q*RIQ0UoV||fjz1jhI=*6xn>0p<aTS9z zB1FQgTA=1EQY7xsp_yeG`p1@OaIx|9ex%`AK$4>z^d@?!yR4|l$;#q-^W=zhBkJpc zsJ%nQjC>cl94Xl)H;--16}f4kv_1!&PfW95=HgY)^IgK9(8X{y(3^Azv)xSM3VR#C z5^{lN(JreV>vy^@LaoZxfCWEwrgC+7QT45vTEFx{k?iF2iY8&|1R8g;ti5ZpYQ+3@ z_o~D-@&&6P?TfJr24)SN1|LNVM0%PQVWLc)Zu)HV8U0oSO0ELaw(BOs!zZWrVERwc zC^bB%7EXh0>C7eR;KXyQjSlK0Pr75}hwgf7<C#xuKC0DBZl#NuRX9BYw%$;WNwu>( zY<Ge9w<?S@+jyah^LLfhPAl;1T;|f*@dLbsH9ZnOBkoVZXwZC^=KsgudxkZ&t!u+U zx)iC>0wP6fP)dMMRHTD6=~a<VAe7J%MOX$!2oNA3B}nL1YJeaJB29XYgx)&{QWTc1 zH?DPdIp^E&x6fYty}s+a-s}7snVBP*&&<e7<{0;LKlcqH3aoh98d%$hW5m%Ph!+b# zZbLIh>3%UB-N`x_s#8W6&f`wSg0w0Naf$-?PFC@&9fmJ*;T@zqqVxx50<x|IwDG)& za~l`C2yc;}w^wHi`j!dwHPE^Lw%_{+M@*DrGca|UZ+OTbKRvT#s|&}SX&5KUvc>sc z;_A{-in*DeJB}6jf6{;c>{<k5HfB2U-mx@FY)Ocv*9thQ&D>TxL}AX<%KiM6q!G70 z4-rUU#9jjXF<C|MN=(z;H=z54LW#+VI_P#AXsg@5R<&^2)PjhA86i{;>Uxz!XLo?K z)A=}{arqfou@roV=9!vnwEWZZ28`?w@5eDvo%C3r5ih&!gY-0go`>#UzkHG6Y!_*9 z5uo?viD1VoXsc-(-R%Z8Rej*3-BvV@LZC82i;4=O#0nv3on?lAnC}|!^T|8>@6jV( z8C4bruzXZWKC^PJM~GlrMO^u~26L?9(gWwaP)-Oq4<IU!p{kGfl16mx-X)8kPzgci zefU~d9L=Z1typ@+gjbS2``d(|6WQR9O6qm3U%>IscU^awxuDcvLphJbQdiVUUe{jq z>>BTtG=h^y2b=A_6rP#c3D=JC-Ln<Tjm63W4`eKWEQC5m-#zgq2^UGy(qN)Xu(T*P zh&*x13P`ryeh*3W@MR#|UFSy;T6JXIIh1~Em;0I0Uopq3PLt@7T0BTAUQVn1hTG@K z(7VPQ_36FO3W#{d%16|fT3iKaTH=$C&hgOn#Tal0KN4H~@OgS~{4d>|uiTGAoMJ2~ z<<t_u3_=G=VkM4`U_lMiBT;nt1HxPpFIeTFG?4j*22C6|(w!Qklsc~VrqP!2u1Pm- zQGC3gA5zb?r<-*Q350j^A03sQoXHQ5%4b(zZx<f)B{va5`6_?x)$}S9R;`)WmpaKn zpt&GW<mI}rkxA2{0^vFA46=MXs{=1yXMNe&mjJO<dsk_UcFSKQ=Lx7nB$x#<=C*}M zfGvpJO%$mCW@B&Zsr6ayZg2I{i7`3p`(R%kw0bH9x85KJZaf8%qm@!WX1I%EXU)}s zBkM{+4}6DuNZ-<>owA^1zYVtLY@5@Emp3N}ad3;mS`z~~sR$M2^z@TG1$8wk{`D*V zpRf(Wq}iRN{57QvmQOm;<eVRz{l_LwMLX5B>1zxqC7B2Kl~$Y|K&G}OgxRW}dex2E zV&gRFwOqS6H$Oa3Z3|3&TpEk2H7XeGxS8V?&KY#m+M1@~rEfdCvYZ;LpsVg^7a|Vh z7FE|5!4`O}R7r=&IP~MEHox<4<tfHavD|9rn|IKcbiYnlzv<3MFNy?LFm-Vgw%vzs z@J=d!#i(v=@sG>*Wt@x;$oVj&g~^T8qZALiijWW7ia}+0@k35CU1_yScG{QMF-j>( zww(25CIi4F{vOwKz&8y8zaR*;vmY<e0*oJG7fT(ZaSq7PLfq!!QP&k@SRU0K46Voz zPN@Y;vdUPra%Q)1J}x9L1J)9r@k9s($R)M&IB{#2JH_2lJj!Aum$=IImpZ%uLdv!p zixL{L=`|y1VTj+g1y--cI+iQ-nd9+l!rqi1jYtp1jLUDIPM|K&tA~R=8!+rNv>RGf z_7-IHd1hDRpe}4t@*8nCvt!i55ZYujZ#vbrX&n(Lntrd@s+t>e4K+$J{!<%1F0Hh= zE$FWzVxQ{Gg0{FhRL9K%j#ht6A+FV04w2af3d=5{I7~l0Oi31`qvA7CL8ev@&-FcG z{Tb8HwEBS>h1@WXJLDDHT}~+H@MJ>b#ZGWd6v|q-Ah!^qtEf8iVKVJe571)zuO|sH z>@Ce}7%@)E5LXI|cyzz%xhyG?1vV<S(0-Scv#4>GBnTP!jfTc0^)-3RDb&nU{2no7 z$L3=Ow^Fe!gSjNDM*rn*A;$q2<N+HJffA7(8Exy<vRk{{MdlG)r)?1yHaYZn0Xv6g zC3njUo#iT{vMUmMthOw4d3x9MjSNFpnBG`>$JLvp^9UBe^8-*i3sgmoE2QsbrNM@0 z$|uU5G(Z>qvymqgHxUf%%IS`=dgvs<4+ctu(rH1h$4Z<GU?H~EfzbG;ub|{)ZQWEz z@|DYdKSP@{xUT@tQ&*L*<}r{Liw^AN{1`3FRlq+v*Zasb_9yL?E8g0)j$x*yeggz< zn0uFW#oK%)FsO8?Rz3;^q4?K*re)6S?VWet$o)vYBbr5F^BmS<$iD^b(hh>pR3qAn z8(T}oHDKH+O+nOy$+Q=F;eOF+zU}SjX%?|FNWI0X0}I>oMEUv=Gn)^RvbgI{c<6MY znHY^a<_{zxw$w}stF_6|Vf(zI28*6ep(s5ylIdwn%XD8P%-`s87K<-FMIV)cFS{Ex zVx;a-5kX#}PQe1kck#4=2YSXwA#u+Ni$87d(N_kJt^!enRx;DZf?4U|F8FH(jnyfL zpGXY7R6SdD_k<T^3kE$cI}MAiiPh74KFyVQ%R;XCWm7}KkSd+jdX2QDy*G#GRyM^r zqhkt{vspc+M<s+ww|%+4GL^katOP&B71U^|dtVfd$gcFoN*>?8x&U0p@L%wi?q4r~ zB0i3HYOAw@KjE;`$~o$CiO>;Ngn|)wi(hoy3Lkk{f?=%Hs@oK8S&4*G)6D4?yK65d zV9wl}8+j@M&_I^qFkPVoiED%!`E$@_8l9}IHtXvEbGBU%-?ZnTAl(J6OG6U5nlLR~ zpXWK~l-lRC^_A6Gj+0@$)p00k^-!;1pHouNIG5{mWHP%!VU!u&AkzRE%!*Qj#-z0b z(i9-|%ACt8K?0k>2z6ezy1E|;nt1v-1zmW}DTgmP;<mNXl$*LJhG0X4WZ!mQ6JWSw zcgf@{BPZO@C`8eoTf!g0{bc00Fmk%EuI`@2NK3&4=XF^H$~PXA^J^3b8{+Ke)a<VP z)4Mk@8(X4UXmi|kkNnjE(2!sUA~e$S;R}D$^kmn)xC*?kS~wC-7gvF@hy~rNrH3-6 zr7igS$c#M;ntvE5e3mra+1z03{UhEW?SjKPb8$|hQ|K3=$`>r{|G)#{zpDmG8-cVw zj#*;0ZRL5ZJ@Fr@Q#q!|eZ)TVu>tHW?BI$yN#o@A4YNP?lGITCr~7|~<;wr3mxD=a zcffCe&oio~6UUZje`Gq$44B#eRHYLwPz~Taq?hqW^)HH2W^d{<ZCcP!q=q?tGw#s^ zm)Y6{W~RUGz1`RB)^^Q)`X(7OxzuhB;8n2KR|<`P_);~+89T<%=x5rETceDMZekqY zTAw7EJ$ZZU>Njl3&k%Qi1`xRVw@s>_$Nd?L<~i5T<Nk~#!2k0USbxTP{`8-{lmn8d z^rBns;?}=jf^z4+^OL4`&rOZfrmpPyEU^tUTfHfZMZ{t&bBPb5NQ%hgfL@2dDvt2{ zV4`1G1;%~<2w7f;w5H1>@93Sa<5O4j==QHBA7l2d-JR&IBY1Aehv=(&mZC1ch`0eB zgkIv1#)mBU@h8pbeawXJv2%p=MIb*C=d}xC^Yw)tHY=gi#h0AVX4TVFl15APgJ|CV zNPzPA6L~ZTP~&Pos3B7muyp7sL3#m*)QDqF_3t~=LN1b!Lr)u>g(j66hJp541Fp5% zod*mM^4D2>lo02Jke8W6y)HEpz1(ok(B4F)y%L!_QlGD7R6f$a+<55VrXGZ*;{|oS zgu+s7b%h-eHaXVsoVt$UuL+{4Fc4v@uD<Z7>xw@{9d-%3l@Va_J!2CkF}q%<g7>q` z^29c^rI0LoM!LXjpUf;QOh$ITms^Y*kqkr?j(O0XJS|DtQhhHr?&Xs>MKP}P`WDl& zAapd?pl65+Ve^!4NvEYSIXY=5!SYVoZvY)oQMI`_!S<PIgzA&2wbTjFu*-(>djLZ> zi(fnGqrhIinzAo<IcdesO9qse6hMV0v@OIRCLuR30sJT)L|ra(w++af9>Am$Vw3f) z&4nJu%3`loSFcZ!PeXcp_uBM8v)Dt4NA+y=J8y_K6}5R@X(He^^XQQ(F2>zT52d=K zr+q-nyj@jcZ|_o_VwlXZuN2zKM&ViH74!Uap)9`*-Kc422S3N6inm?{$i)Dn9#Nde z!x>ehvjyyR3CfGwglCbBj8?ng9df_(ben^_O5#v&Ng})|@|B)4Ke%<foIy)UI{TI> z4aL~QzQ-dIHln!7LS#)V7KNahH(;1r8JDr7XHjqQ?N8bb1d7?|PCcoWkT{uJm@Yqa zL5aWr=HcogXsgaW$~BAB{b)OG5(@fJGP<iZn(=awBsHp~v1R2AOC5=N*gH<HugzDZ zWchk0(7@caZ(3YpOQ56_MfJ+%Mf-r?Hze0~x1m`&b~;7F<li9F8)wK5&?hM-66)&E zSwQCDr~&YML@72b%;qC$rLLGEx(dza`VC-AEx2!y|CWe-!^UE_@ycciP#CCA@e9VG z(!a4Ky1|4f|HZS|`}1>;+}IT9$m9fLlz&JvCbffL8fJhv^+&{F^d&0Sv}f|2A|TOL z6R+J8Rmg;ZtnDrz(WhxllWB^PfL@VY$LamceVHpRxMgjNjqlY)%Fdu~3t1q(Sq-Uh zT3-Yj&mFNVYd7U7%v@KOcpIJoQjg)Q?-<jT<8i6MqB@NnAEkVexvz~@c=f7z=}X>I zcSZhW)MH&{mllJxOw;XwmNX?1i|FXP;+)RZ-<v*GM9fXW(2A8D+)CEMr(T$#s&^~2 zOK)%Dkl{gHrhDZ_Qssz+G4_*;QZWYo(=55msHNr6O8~OX1$?6@h~SN#E|EvjT+6^* zlUF@gyV2P!VhZ0mSWe6;Xwd=2A@!+vIxDeFM>p(>SIb=kO>2ViTFV$4#yhJgH!JIY z#BRDyF5658AS83FHW}$}a$8;|@_1i+zY{n*O%H0;^^N`^ARoW;29Crv%?w#wx@Y2J zSNzsy6Kbt#>Ys<Gyz3sNOPu1xSb0FigLw*CC%by#Zwm692D!IhWODj#Q6#=i9JVdP zS;F=d+#ONt>;Ve~f?9_l#aRUA!K0>%Y&1q<ZrVh%u1fQsb!}BIJy?>_172P6Nmb=* zk(iHhtj=0|&HIyHo;J8cN8;k-#RgkjT{SWczVxEI78%NeoLjcdPa@$vi(-6wN&GK( zG|w}Qfc&iA0Kf2d@Xip(>KPlorMk>_L4&QY7VEocL<b~8pJuk*n3675Mi}u4eih{H z3opLf#-v7_bWt|Eh~#-tY|_E2Ds+Ri#Eq2)mpf6B-v$CM!hi27H~%+DhyPK={gh<E zK)H4vTIZVa>mub;3Sx*{+}_Yr<1zYFg_SSsY<{tRMrnp4A7suqWV@MTciO$lVrjTp z_-L^b!p|TWLlp@iqiWrZcoR4{rS614`P7LyXV;oR+RGWnqMv?9uubcIpa6v>hcO7T zv0;}%UPq?&hs{CVU8B3+ioG5SesM>^rM)#Q9q{T-bxUh@VLU42mD!YaOI%~EPCKV> zoA1)-4W-ZKP@HOiMlVCFXD+X**#tW{b8^4FC58au6lz3rb}2g1NN@WzTttkGk_-YZ zN9Hz5wiqOlvmXfzx8n{-PC=@ANxL(LlP{bQ@#9prBf(eq!HR^u&^V8-kj-@@WW%;6 z$S_usvsc`6Epsf>URWam*5u*?vVuv+(E}7It%4qkht&#$2UjU2N*UC!u@*RiLlW_Y zkdG0@SB2r3tfx1xoB#v7Lfwic+I7~+qqt8a_kRNv3GQ3*czZuf?Bu05KA4qQ@disc zzIhdw5W}$n?eLw93JnOZ*c-RWe`~!`R2VK;>NEvbp3ep)AsJzQBT3O;EL%Uu>VL5G zm^n4;G<0+hdx})aYHUFG`%)R*Rx7}|O=Sjdc%ikst)bBQa+Lm(uWR0%&0_KlzMwdY zAWaO*Y|&qqWa}?1aMBg7=!N$+!bO0!Z6G{JdL`xl+P5ESCO<y^8nagR_wyK%a97lq zvS@L4XqgC+*2fH$QL_cDkQ+pyMe7+D0=$E`rQ5b(msnFb%3kF>+`Puxev;aY-g*%? zIxKIom!;dw1)AhGy1|PSy%Ch-MG^u}-kXPJTzv5U%uiz0gkQ0@LyIfYAMB>u8%%6& z5hA=Q5#7kg*0l;s9ct4GJEaqtX6P@-_LpxXJ4XoIClR^6MFnqsBQ)hMJ#fMR04r6E z;erTXzh0LKuTJ*693jr=*YewWk8Rdg@iyFYpBLL0Lp7m{qYk3;K}D6gv2pX!5nK&M zN#yN5=aN=(QdSh?=?DLd{mPE_g2Gn)S%_s<^aMd{s9T64fX#{Wq{o%+V$iX}(3si8 z_(Yhdove`#@!p2;u+?N^BP5?b#`$=;$uT}D56$xu#-5rwN_hWC7~>{gNe|Ok4*<V@ zfP%-ZQkMM~9k<znNo!IVv7yr}<r;IW+dp`y&RkZO$F8cIoy?1g@zCv#T6S*KKn9`K z@ppq>%S1SSkj$&DtC4v#x~CvsBEAvNh8hs0`^9-3!3_|6b48{6tc*eOSlV3Wre%kw zu;9b+NT*NVArl>tV{PWi5COR(TeS!dI!Q|<@ylv~QgC{fromrm`a0~BKAa+fUnR3k zt`#2F;@<CQf=!E3f_}LxMc!}oc(tH<=eWmVm(@tux3CEJ;?l3)0r2|QRdq7_gF=3T zMUlP$d(E>6aG*hDP5c3_FsfKb;g`sb89IkKz(IS@J{i?B+_!vUUjYucY-vg9QZf`S z{G|B(CY=_7k)f?^ds_ltbzDQ($*#fXu6}_9sCNH4=m8Sh?=n9-H_f&-56FEibsZ~L zO>6%=hGoH!j3i$D8zA-=LF`k_K+be~vK>%y1SRO659-k$X{h~4Q-r^8h5s@kRx2hp z%VnxL71!5Pjmqcgpw#$ktZ0N^JHxwV>I0i;J?E!A%d74YON%{iZ)99_UDJwGPv2oq zR9nN>S*(P{m$_WG)WIQ9`l*_@dF#N;aEg@BfDsl|_Zgiw-^DEEiLtEQ+S6oQLr(R! zaJ}gngPio>nZb@fVDyH}?eRHa0%KweGy9sJ-w_X`t|qv_z%<7|TMZ0MQq6Lm12%O| zEq1HiC~}+<KfinAhyMb^o!!tdj-`^<Zum9#(0QHr!39g3Si1^2LK!pOzWjKp41VHO zqnj687G8q)%Zhu#Zjdtd6&EzZPUq}=C_Qw|kI6Bph$9eV-3`WTR1Y+`_?gxvhxz=v z8xK=(SY}2Cp3Qt2uIlQV7-@|v><eW}9Y3Pa&9D~Jh|7*&3E1M+Q3)jp{@JChcsDaJ z;0rtDz(aoZ_~7136@0;Ag7t^>iRBq{@e^*PjPOi`P_JXl>vbNhOwk*M000GR43b)< zHkE+2E0Alx<zCsKYXa_CX17BvfD=t>sI;h!DNshC=czsx*XyNDpfUM-t^KbK_fA9S zwqRLqf>%0WCLlW(t<D(<xe?1<VNLUNvlrjF-PH?y8OJ$YrFz{}r@AQ#<C?8SD9O#q z_cP0AE%p!kK!*DpCpai?#t7puI0ZM7)-6mEE`FsLou**5AiIOQL$utf?^=fzA(kJp z*olcxo9bG!^Ei3I+}o&BH5B2SK!Vu||CE(YoZPs%UFk{eyIt<sGZURf;DyWD94cfe zIB6~Mu;HN;yu%2F-<6xdc?Q?NPZ^a)>2Rw-@AE_W9|X`>PO+>MUA3-Bdm4_n^E%h~ zNHr7SBM{h9gWiNC#c&{hJbOD;Cds4fTu?uz^G)z+5#fmfi>}Cr)LM;tX68Rz1*%Ca zM8DWy_BiQB&Qd`K*AVA@i_(&%vO;u5E*|^pSprO_Pp6#=Xci&({Z^;y&qj*1u5-xt zmUc79vr+xNnwPZso!z_1qpm@hdK#loOU%5e`o=9=aZr8wH_2fqFB}BJ&-xvSMp5%; z+GkH<!+thz=Vfy)vz`Qv2)lUOrAW7WexhKf{DAJ|T$zP*M_M)Cs&2kjThC%<1L}|R z;K}cCSZ`D)=3sq#X!}IxH-OQB(eJIHQ_f{%rlb7BjDwT9%jua`e9nyHOOwrYT-p4; zMrEHqJPCG}u(l4u)r2AH6hef;=^{6RP_m~LL-|jNz83x7NDsYa#_`y~<OozI)v0n- z+#$fx+s<yk=DuG33JPR=zcbLfdr~1>D!NVnlDG>4IVH$UCg)#CTxh`j9I@Y<tnQm2 z-abd1=Vsu!A%23b-Z^R=>I>~zu^SF(-lr3EmpAOLdw2yW$_0sJ=82x^mJ4*r2L^-w zID`K<jaYf&MSXiVGmEcWlyacao==KozX7%jLT8_BY*kjSTi)B^&6FPRcUZ7B8{2hL z^vcbhbtW5|w9NZ`K+D`H4mfo_A|JT~{zSYTwR}hb$w?}hwuPivMKsCylPu7`=opv` zFmhg{tTUZ$c-L<lL^2DNw)nto^!tXvboj5Gl4@+H-uqwJe)iw{Gd-OGzX2464*$SL z$|3<bs4nDX@b-&>u$bMJ9}hEer{7|6{ITIbA7Rt;Yhn*+ikf|%q!<3|MgN-})4!LO zF!QJlUYhgI{})Pq|5{7;7hdb@5$}r0!hzZ^79*U~vV2|9g8n0EfRKpo+uuu@Mqf@q z%3i+-<fSgqG&kVmCb)3}!OZgm0p~`p9Oo+NFN(kDtSP>&y<bC`=ORN)DyPmM<$-8C z=Yw1qGnZ$>ZNp@OT%*#dDR=J~)RDu)wpOdgrlB5dC8Zd73oTCnVcTwAJJa24Y~ww< z>z8{)vDiG6R;RwC=3sX9xkmHNk_EqK__C=3Q}!fGaz1etd3Wzi%jm4)ddICWf>HIc z)0kKVq1OWxSVJ=1i4AJ$u&m=ej4*zzeQ_tV>e}>+<(6T^5AE)lSh01*zQs8pwOcXp zLgf?BJ)bBncaUjojcxOWnB7S>y*t<V4xb{IZODmXQW{6U9k155@9U#`Lx<5r7EgpL z^FGPno0`>_&MM4J#iSWn2y$aX0Q6CYmE;MMMN<lTJO!JG_1jVwrDr{2vqCI)Y=kcP z$lv5&dVDMzgvBm@&qU5Qv&^WWi$H_BaeS>x$Vxh;-r8Cd`)l}_?an~>(oFq8kr&8G zHhC*<C3#e@zIIxW9kp-nK&+J&V)RzIrYewK8R`dES%0x->J-EluJ0Sv<4_qBxG5LN zs?AZdwO9#oc8lHG5Dqw!`=T4~uR&1eb-vK#S@E(Y(PCuGVV<%O=OlN8K@yaOR@>hU z0UqmDAmlq(1>zjz+)2EATJWA#gQ|W|nPmQ}<AB4A*!YnG=EVh1LH_mE^oQ0K&137x z?D~Mis=?FhWXD{juhim@VB{t*oeaS%YM$I?QfpH!$b}ivG$r)Ib6h@tR+UXF;ttwP zKbvnZ(09Fq_=8rKYK5cN6?Oe<7(!k4rDJwGUPw@-am9_Ai(H(IuyKv~re4_ds~HNq zz#7D2d!9&=kni@z8`f)Xc^$&G_jUD_Hk_Cpr`pL)YrDBN$jqi}H&Tps#gbC0S``2@ zT;#8c-b8u9n)QRdj@dr9B1>6~N55wC!+^uG7)HhQo&!svQWVeIfJ5}&wO{bE$g8_5 z+E0gOEDERCoe4@JdY-)Ol13h~rh9cO05XVDc1QXGuHmI$lc~J?-3LjP<Gt$swr$ZJ zs{Dz`7SbLt)`@Pw9A}QD5c26j9Fw4r<jPUpm3O(WrWQUGLl~K*jSiwdk;-mVO_6u; zPU*}#x5CKXo+~<Z)|IN>AVE$+!Qy}t<LOy_SfJqg9Hi@x^9WK(=<s~ZDX1b--w4ET zd99Lq^6poguia<Q85d7e6VJ;s{iP<Z=i=1JeB(37zriQUh;4(?U(1VZ!L}Zvr}Muy zJ>MSNb>}}EqF;Ov@x064@cDvttGcms1gpbme_GgQ43|o%8?RUm?2|)|IRpI!TQW|N z9u~@&U{OxLoI@ES>>bD>N{>8hFzb!#Sz=HeHl#9yAe}1;0&f+J7#WmlohZm!$i~IF zT^vtQn!mHVrpiog$?+Knoj0xOq&k|}#~sDH@Q5HQb$OYdOC!VSA}V2H9dCsEfaC6a zzGI_fYLt?PLlXJWJSUq`As>#d@f}7Hm7xJU`B1^MCkAGdX0$7*m5*#PW4?HBajht> z_?s5gaf<V2A9Jrdt)kTP$o3vX{1&K`C#Dp5!eVt6j>0@&6lR*t)X72chP+vcihRIH za|WnH@%L+&Rpa|I3)Q0Nbg5(dK?a&^=rJRZO7bi90xF%&hKkWs&ruu3&}E81KWp5@ z(ARZ1rO1<>b)Drm+%0Y_vPiCW-RA`_J$Fv0O4oDUicH5_U-KT(ztqPb>kh()eWmAW zr-LLbLP}x_MRRzv>G--BY-H>rDy#+3w^#BETuYqIe9bIAd=;aCQv|Fcg)UIp*@c|} zEW}RSJB47fq}v;!m#b9C`+BmePTy?tmWuh5f|n?)zbr#>0Ib2Y(NN8$?tAiiNWiZj z{=SL#F0y$@&#&2;KGAm>Wp`<T?Lh;qFgH0oN3-b0vQd4uO6cd4C$Vuy;3w{_HONw$ zz9lc1R~5&h&<fMZae0vaB#cAN$a2f4Uv9=T&fC$Q!go+7n2~y7h%(u~EJ9g~m)3)2 zT$@YCZNhJ<s!Z|%w$dijy|0jA?p5&zBn7?8FBl-TU~0BMHo}gnhSr*HF%>0;S5=?b zXcIiJbP6PXOf!`(Ncm#8u1uChwxr8X_C<oWp(me-M$FR%?Hv-I`^v+StPQmja9nCZ z+$zh987&nPesqt63ZIgmMbmwmBP*#N_`UC<gr*C-J*$|A+gI=G!Ibtb2AIdF4NbS< zjW8C`S@iT2x+XqxOvmw64HsQqjF#1H{<B#id?=60(&LS^kr4mbxF&ERT{uzUZX?%X zl+NM@XG)l|M4sG`w@yIPEBelZ75%r6Ab_Azuu5=&YGFvctXr8^)jjgY2QT%TF2`$& zC{i4f$txJf9<!U4Bw)uo*hw=sDr@q9x66tPx<Ilu#YLxG;lc3m%~urhj+w@8U&H!V zI7j=P9{>+-Ma82D7Gj{*Y{l6zIn~6yx<+M+u)!gq^ATloV4V`qO&?e-*UPxNo59LI zmbK#87M;^qB40Q6YACBiW9vnREYM{iY8dhqb%AgX|M}}ec|esaY7@Sx5i&eB{_6oh zA10#j+7yf}X#P&deI1{2;Hd)T;)i66h)4q1mCoDC8$oTSoBvDHBu-VPk<kEt><4Tj zOO-b-oaKWl_YZ7HrTJdL!}jk>h1G}K$;LevKT>EcK+B(j^aW6Ecc!v<^53#Z@4CG{ zcpq8&ktTXHb3-8F>&w9Hb&Cq6+BnbUKGm&dkdnvd()>Ey%u_ZGW4BzCbJlb!QH_^u z)i~{lwaM;3+{5ND41eiPs3-jtg+%9J>}IScXL1j<T83n5`Kq0?3^B)*2z2rI$f$;R z1RuK0%DL`Lol|!3F3Dy@y1T-sR7_zaC6)VNV|Cq7w#>Nu<}XB{*<XAlT{P8S%$dq_ z-lvIk8G`pklCMWrOy1|~aicH5a6ji|Y+QjFs?Q@ih4{EE+^XeMQ)|_Q2BEV&i?P=( zZ0OtBcZfXi72&mG^APo{WSulH5sLRhFkFv-BnTs=_-|xA?QuRWtAX`nJ~OE7Fbx@5 zbmQbdtW^(61=q$Y>n>v45Q^oQ2G%9dc2auZJtGRSfO9+Y-E{ds3qJn=M1#6|J~oNF zh7;FSM|!$i`A?$Sw3&>`8I2e(en%ybl<4>SX>C3abq;vXGzfgDCUQ&0jF=YgWy1Ur zE5QGc1cW<t=29!0>~~LUIUCJzylVlT6zjlmjK|fa{gjn<P2c*`TOGvn@OUJq6*UhG zz`oWs9<cpFnmHu3IVBje=cosx8eFD>oNw!Gx#_<4<Bn9J4!RS+HDKyniVX8SX|s7h z%QA+0Fh+#wjP4x=VMc^Oa&iInZ(@;3PK<~u=)^Q(IP~-T%=+(T=w>&m3G*5%b2~v) zu;~j;vD`=0B0%-5hzFM#$?nXD;M1?Ln`v0wUBi(HT~n3nau(wAa)TD3Eg~p0N|ocl z1c~QmD4M&*n=!$WeyBYWp@l$7rSt2BHH`x|T}s^Jk&-<xBBP7AmT1@e#PAkoQ}u0k z_#A-b{&q^?lb8gL5>JmDi!GZ*_i5Gw_Ull6;N+JRUH((1i~Y6J@woYo>EU&bmerA3 zeH%O74%_5N5<qQZ;RScjaGNyOSd_f<Y%X5!6YsS*Uv5z|3a+pQVtn8pUag(?&BSs@ zLhrIm^IAkioe$UK4WnT4=+1{`-oTW!m+`8aY^^V}^``pc7<$)pzW6J)Ee=5}chNS_ zC6>z@E#*tC_-F2LG46o#<B~s+$UnI=xdBro<^F9~WR=Fpk49Rl$QTpOK_Fvp0u%*{ zD0L`!r)~mbgXNb#o51%gPu96qxI<JzE?lDYI5*PcB^Ssq&(K{(i!R5<_XfBzuI-SG zKOqg1WbI3@lvFIHFp{a4ml4-^d6U0E@W29eF7Ljc`)Z<)WVxl1pI+rG^Zi%pU&E8( zyVqum3Q!odj+o~vrc}G@qiZ$xw)L)?5LrS-AI{-wlZlbJ5&eR?;BtVE`z0x#8&pr& z^BS#JaPsIvv|iD;rm0+%XPBcDx<?lT2RkF<o>hO^Qp(VG?y9bl*WGeXr@eitBZ1+z zFLe<uUSl;-{GI!zaDGw5&EEj#=5onZ_3_uPRryI#d>Nt-tayfnn?v)91CWV*bPf({ zRB6s`LL`>dWo(XX-s^J<*THW*ru1<L`R-(LJG-UHgJo1Wdb0QO(ttXn5KklL`~g?) z3}9_0i*E<J9Ng?b<oJ%i<aaVunJVJfsQkH2l1H+Hm$FmupQMnp3Hecwb*PGa{zWbH zZz*!Ke<5*Bmo<{DvHbd3;2)Yxs4}%d-$AVG@b4*jcCH<TmD1<`LMl8N80aCQBAaRr zw4s6|Kf4^>PO>j6f4BPWhbBAlubF-3f0()dyCgrLX@G0oP>IIUJng5)YVW_GdChVz z_`T!cqGtlEFtL~r-S#<HM@{HItGWDd_=o?6j`+`>GNJf?K-w+7U-^E&{l2C+=OE|D z?!4asWnV>pZzVQTX{VN|H+}<b{h<B5y?7?9_J4ZM#fnJs&MC_zamKrvf8Y*g<3RQA z76-h-79LoE3;&KJ`yX<&LKjIs9;>*m%5ab>_yisNO3axVpI|*^LCA7vxU#-U%}bpN zUCtia8K_*eG={O-RmvT<3}i1RrM-15Z|8)D(EBSw=t@fKOebbbq`;R__wu0)H&6=R zehc^G+$<E`RLCSKn?-K-WK+P+YO)A2O^M)v5w>`xs(H(3-6ieNE+$Xdw2LbKOXGxB zM!I?T-HofM`&raXvxfX0uCymcvDvWkSwT{2ya1aYftfYlaJ!WBK9rp1Qh1050Qgzu zpkJ~HCxx=?nXiLM=0`jzKhnA>&6#HP7@lWBfz(LqUVWJwens2d#Mr>aD<II6cFW!B z<hjce`egJLV8NLhVC=aUZXH|{K`cZeWA*6lHN28T1wWwbcO8#?Z_p4%D;%y9sEqH6 z`UIp@qBCebxi)HbCR-s_iYPw&^4A>z32NrGY+$)l_bZ^=E~6H@@@Wbn5CgdpBl$S+ z%V?TGI<~3LUg&TfJdtuR)|)%PNizMU=~3|y!8RD2X!n`}+Q>_o|C0idIXax-n|P`0 zC!bz(vxoLu+3KDZW%2lVic3iqs=^f_hjyCgl$ums4IayH?Sz`O4T;@7TSa&=fAYBS z@(l(EKS0sfA?l=lS2BbVil9+>ZucRa`A%1-;nsNyx+kAS+xt;l+YAtKuJlrEiQDc@ zbXL>k=upHvd3@#9-f6aLNO4+m!x$yW1^HW+knXx<^XA>~0A*`)c&t%%9!h7!x%kTR zcDs=J*q4Q7qOu)ZF!$L;_EmIURS$tV-yN2O<h?I<xsh^{;C(Mlt&r`^Uv6`vOtA}& zIkM!?1ua#^xRsxB<B2A=VD<deLFw^UnnNdO_CTeeq0voB@7<A`-Sr1VkJ8e@*X7tp zOX4rG#h&iKwM*AoeASy+`#}STeFkAsqFYzwWIFiK7h{7rP#lMSMm<SUG~yFEZVNc` zA$wtS`@nz!`alEQjx0_^M4cR91fxjC+@PVs?)LVI;5YHUANO-s%(?cddw%GVcs*(B z-`JQnG=OUaBUN1CSP;^K$AHopQF&vzV5DzrOE9f;SL7Brui3KC<np+^vy8sFo)b2T zO!-sy<whUgtweaqr=Fd~pa$DV9JbyDlvaKStSrw_7Sko2eL9=jv|Lz!CIFo`lBF7| z|1@>o0=wiFrMuqF{?w0HvODk94w7@NOonfmMEMyDcUWV-hf=RpSnLXKzVjG2HZjrH zbyxEIfP&QAU1(c>{`tm@OZ4lieSUsZA9>=J<^zgl_BY_U6~6ROEUJ-;D%w&K+^aQa zsS{xTi^Q!Ei7Ker>u`-gPR?aCN(Ml!%SFcgwjevztZG~{d!`>cjls&WPjG(vwCv?q z2aYGJAklp9{mC>Bn;D4lB=Q#6?Eezew*MQA=>C8CnLhbMrE{+Q)IYfR@7PQMhZm!m zY&BJX;^zt^@SNT2&w%K*zspl%1>GU-=YwV`NiLYSZ{j8CL_^=l%fI}D<ISrn{tmX+ zXZl+}w*Qx&znd)S8MyoKm);hna25p#{L5(kpT^b&a=ADm=Sa3-@9p5M*BPR)>B)VF z!F1T{y6Cl79^7&BASn^i5c-i8i`Z>}eMy;ZsF?GQa?fq{v3<L$@IP<*pMm&~E8@@T zpX3TY=V#>FH2sUrW#M0mxv{zbjD!0xtWg@fJ>5kzqO+Ek$l5NNgkK5$)$9`PH$ct` z^Y7H)pGRW;rz@0yMnk?W1=k8>MMkktxcu(l^RM{h{#Vnyf6ayIAA>Ug2&nnXzW+mu z1OWjC*l5q!prB15Be;-@P$iV;Yol&RBk`=tj_af%373)Cm(SJ}o+pu?)%9>>mrQIa zaGCNg<c&t-J?;DICfd?)r{WhQja3Vgi_yp*5@ge=T5k1&g#Ib-5l$z#-K`IC4Z2QW z{ip$-yP2Z1YrH!Ry6|((i030SSFnl;NqZUeQ8vy!qiWqie<8S~<Ft6fE+vQ!i8C@X zH`{tZgxnWg<Y%FqjTcc0X?V)J?c+W5e0S^)f747nFT@Y=Y_v|Je?5jOMv?wAqaXPm z9e1*mm`8qYXV=nM7;XPi-C($aUor;BNf%QdiqgI>#~ltj+~utq(bu_JQu?N(!u6y^ zo2jk4kyL-$P5+oqAlh?ZCXCX+g`He<wNn1uFZWb>gc(7TGjSe$M&#YR62Y3aY-WZH zcrj1f*Qii|@wEdPlzmx@l!|mh3s)`M-Tc^eeG{z2(>EUDGq33SszSmce*61sL){JV zJ{w^qw}LVEkmgLx+wo<G_%-PwuH_<(;(Bf{RGqP3)5yZPuxaLXL7-Z(oQdA#2M0qV zUZtbt4-FQVEbq+!0o!Fcbk99uC*OUy{*6+xCE@K4aq8(OLx(h20Rful(V5d9dpEpO zOij7^T1Sc~6O}I|6)b~*TJS!KMX2~m6xN`sme##8=*)F&LRT`7Tis=}Efl=2xW8?0 zKqOF3iV7A#if1y@HlCd#mvZc(=KpL`Q9EWa>s~3VWUwnJ?8HekyvR>RM97XzGTYES z9<#@s8@RlWMJc<?X>}Xnle(<*GwcRJIU(eEoFWBQxLy0TAYz$kaj~t>n=-jbZNdJE zpd!EzLC)h)`2L2i?c<(N6SI4_#-K$-xqgAXLPH+NtVC^kImHDQDy;7t^;$OLVcU&N zkQy?oY!oXz(EHfVcMsU&)JG$?M{G`iN_eWNd&27Z9rzpI`M%EB+u2tTkFGa|U%HL% zOj%bFY_qqP8JCdCfefZ4Gv5tmdem*SsILws-1mQpyZL<l%2)in8u(_4_t|u#%(_KH zw$;S8$3)x_r~*fz#M^B0KSF|2sjvplK*h)#Hy~lT%vnF>o}v;?cn>X8|7Dbe71IA= z--$i}stY9pG#>le*t&G#^@7cG)l`s)sKu5zc@^JLvS50Wep2W$!%W7Ja*)lH==?@! zw-#tH2j^)Gm-hgnOPiCAtgXwaV!T|aR!k)0!7^B4^B@iyZeR9Mubr5=q6~2?#gE_U z`NS>PH5PTsiikUMPRvyKh%@cmq{JZaXSmisD=7cQqQiUp@QUwc`MLMI1ydQ#&i7~v z6Tu^@GtopfuDu?k&^-^)eOn)W6Lr<CJ~c3<bG*|l*ql<B@t$EKFpAocJ@eM4_{_C8 z(e9oP3Nm=&Qih-BCdLCIN56cy5OSahWZ%+jdE01aY%<_kRNFyEgi1tQgZ#1!Bz8SO zZ|$#6)*UMghdu7})@-WdpR}~UZ(_uEoU^3m@SYL=w2hA<s%Cml{@k*DALsB444#al z*-Y=f7ONLpaD6;f=S1!~0>USv*z<nc?qu1m!W4gTJJNaJ1q$8Gy3z-f0n(}U?9;{J zy|ULZUxFV6;rmiS{n8yHm2<IO*-Cc3wn@do2MY~B5$P2TyCAQDJg)$$noeC>R_b`~ zwV52NUwgRpq67O1=SM~yb{1>fwm}g>$r(?1X0HlHtKVK8N*~KXZGtR6(#;kSBsA4M z#Xc|a<~J|`+o>s}c$`iwj$w^E`So?SIAh~+&3nP+LA!f?AmAln^hoNvPvPK*(y@>z zd`_US=6kGrW<}+Aceuz?#UYb>4{2~{ReX8bl(MRGeVzQ-dGyL)tcP0=S~20?wJnjv zUJ<eYGm?}>jOzxBpmgSCmc%Jnfl?F7dJYZP9`fU&i_HHteO!p>v<I=P&+8h2RSm$P z-n!B5Qf){j3-yEOq$Es1J?x`>#nGg4J#KJbKes#s8xGw*MTR5-43B5P^loJ>*3U^) zmHkbsSPWw7zFTn-8VybM5T8}?f#$+!gG+sF7LiG(QZa5P=#jcRc{{Nc2SvVK<pHqx zei5{Kq(oAajeP9Uw7G!+3Kf4aFIf7BsptL4`(giYyjhU>UE5{`EIt_~k6KmX7TvZr z<WIIWteIS#A?sP5WJ`~=CrI%`)XHy_mU@<<Ux^vMs_PKU=ne{`T2`I<_>_p(vuzof zIMuVTE%CUTCF_46<oI29COa#Rth@QmATDN1@*Gl+OP_|8=3%P8WONZ^ZGr1`d;RKC zlhQK{^=MFuxA|ymH*Nf}JW(+>QKzfr?DiZOpHRBv_Tu9B<*k!j?${QC`#hEOm|RpE zF3Yr4kY41|32}4>DRj8J9IuJ<>$I#Z{0345F%%Xgb_?3<8ZvS%$@s&^FV{ZY;RsW$ zEyEK`EYx+u<PV|S&`eXY5MM<<isiJc9s5=s-pE$7@%hrtO(*ydLR2eCOxWGq)X9Ug zX{c=I*H8Db1Je>Bn-{2ctt8gxJMMOmn~&Gf3VI9bM<P`jAHaL5bApA3iSk|Tp-oD& zus19dR2&G-x#2Y=8U^tE#@^{5@8gb(IoAx#7!~yt-w@0z#2%&3ZPJAJ!Lt~X`pAU? z1iF2B9BTuY(l6RbKo_#lrngk;0Mc1G%~5yNnq5Mt^(j#`Hp;1fvDj<!+Fe(}2a~g| zm;n!$Cr0Zz4Bq8oTc$ePo=)1F>570aDB$mCQz4#q=SUab5>Av%{S7c(HqbwINxh^V zhY<reOopgv$tHafq|>ZEmk4XH3%X}R1Wk*IdJ2>%PbvqUDx#6pNVScRW;_iI5x9nT zZm%1sq|9;-OrHy&+zb4uZ{kRGtdO<<U!XR7L5%l?SGZDNrT_w0iCcJB8h9i9!mp8b z3n!kA<eZM*E?59<Z`IeaX>r?l7MkjZlwb<E#f!1o2g*D(1X6}3D=w-!@6#;SbzoND z^4O+fOSe7!rE=)3q<7bo4<ax2gOtpR4d!0mf7D=G{u=;F7!OmujCf}k=c}lK$nqTG zv-&tX&>-(g6hE<n8MwHp@@&CXC0}cd{BTnM9Q&?Er^cUY6k=9MQl~6uAO-_f4X|?T z)Tc>~=)Jx#MJj&dmLia*UB1bAD|fM_iX1n4R*!{JFQT3OR*Z_{>zs~@8h84enV*z5 zo~f#0wqfjk)6<rwt$8UptwwstTdk!2<rk~%cP7r%aD6`B<{x_L{RcPP=X#vO%hYf8 z$Hyrca}7C254dlX+Zwqxjg6ZS1<Je)(A-@0<~6spl3ri1A2R+805iwyGfvu`JaOIK zDJo|h-$}7F9iHr_C-%K?`}*o6<Y3giSRstP=2$(ro+rNWzJ4@g7b0<KaiCF=|CIgx zrBM*^*}3}3YGno&=-|D_rei3)Z}r6Hbe%eV5U{z{@Gg%B)Ya`=UWgwHQyI0?m#}VS zS&iXTs)6?vCD;smGk%zT!x2%Qnk0YCLMHV{_NLb6qolaR+YnwmZM`H5*bFf!*<DON zHfp3k0KLYOVi+M=NBI?+A!GG<FDn3f<!1cEw&%{IUg7ABxC1dp!*y1Z0@YLwoKfc{ z=}xSBpM1}Iw`*Rw{iLqjv#74~8ahnhHQ?~=gQTKF-roS7+CGxO;(g<Rlg;){Yixzr zENv@6MXxFc)%kcMt(Wd$yCTlLcE@XM*068yIHiPXRN*kX4RtdwTeMK`FG(&Z(cP@| z#swjjtVJ3dH0`d1`S;9yUnc9OC+}{~Sdjqn_}#*)!H-HmwGIt0s@r{ZebEb<!!W}A z65LAcK7CJZv8_}V1AAZIO<@Bwn`LkFHiu{FYm<|7G+e|PW>=BNKJRR&?|YQ6vkeO4 zJM?|EZ>RyDwVUrwtbsC{?|WzpE_0~qs<ZVg1wYu7QqmDhp2Mp~))H()r4nZz%;3XQ zzG#8#r{X_&sL*!zWqkR1^0;)nYGU%DZ9t%9xaL%c`pjf=(7I<2{CS)2!TV}vr}|u? z?RWgCniuh-KJ4WSxQFNNQ0RjYuHm(J34HH<1E_P`ze(|$k^Nrl!wzPzF~#MkBr8S| zfC%-d^+tL|Mc(zoiJI<E{G8;WrIna`*o1r1Shqfdx^O^EQd>L#phObbEQjxW>N{p& zuW8kTWDB#K+ZGl^wbUKLRv?$Waz6nZ;|lJ;c6X<Jps}5r)*(&zwlUi3Z=)b`c&#s# z1^9HoAEtz-skka{-Xix08Bha@?^U-nUU#iQVv6hA*gNidrGC(VSQ<Ng_Heqryv(_Q z%=o0ikbGvHPfBrRrZUqN#6HerT6bJ;4BIR#dU3QrIaW^fAd5Vy`_09>clL$}kCXLx z($2~PnOqENe0y31Aap{mxCYZk1>NJ8tkr-?@471cRWt^@(4oS#U%=>;PEM_GVS&si zMA$Fb`xQ|PH0=nD8f$U+SY<vsE?;<qaJF;otHZy*+FiDqjT`mK?%J=TJka`7;#}3M z;Yl}*&@%#P!I7VDRH!vaxKDdy-de~bqZUiu>W4_)Wy>sbaF7&0dC%<ibVPQeWv8aT zFF|rBz_+nO&?$9bjr(v`>O6K;ltc^gE1l|rf|!U?j`8ycHxqj)_UReip|&5$BMrkR z@yTu{rMOL}j7<Y;kUe|2YXv$y#V5X^cNu7)2=$xI$zdy&vY$neY&WYc?Mk<n%GhfA z2})>;*20Z*C7oWu=C76RKa%fG@~9HI-Ai7X`gwzG-Jmm{@|0?9cH~%}X2m`2^^w0g zaNo0vFlxs?GXVD1h@;#MvRdBCs!RQ78|37kS$nSRSyBg^^>{1eA#{{JGbJ#-&Vf|r z0zyu&b?tprZK$!Z-ZMYh`l^%b^R*Q<B|z_Y5_n<ON~D;tplm9;{^?OL7wj}l4?WT~ zHTSi|1)+5Vd26w$2}H`z461R_nb(DLh2ZT@O5OS6%gX|V>JYj-g>a_hjGuoew=H}! zRqHa1OyEu9)|s%hon%eQ>-k-$hKD=J#Xu_LQL#c0uA+A8yrp~Rj4s-_WY`&c*T)^M zEkj@;JCE&jBe^o<XIFK@$JYn>9hr0s_C+|MbqfcZyijY)+F-6XJhD;?+D6*YjEquy z@81BlgK=`cgGRu^9y^U1OSRf&i1Q<hUXRV|OgQe3dXslOBZB>)+%nP_p`0cG0sXMm zQx9)>TCrvP1ni12-$R}TWrrjbRbt2iP$}$k<@Hgij~};;`(EEnS?J>J`%GYs1o~}d zA+rJxm&)pbVz*|ir(Qmj<KA??4=GNz)r!AM_LjDHc_OusuoJ&$kc1!ZxUDLVJ=<#h zBpm1Y((3BeAS8fK^`nMbb5R1cctiXR)fadn+fjY>Sd}(K{Eak)Xa}A4l@KKP=dR|* ziJ&)A)15&>W}T+iu=qCtrX7N}djTwrC~dxHubX$`4-28w*xX5C*#zkB{blX#4{d?U zFB_eT53Fq+Yfdxcr#*_W*g0)mXzaycAFEk^@Iumu&kK+&N>7Ga$|A3d;IFej^)sAO zdj)gg<}|7pr_4ZlMe=dI!k%4c1%}kTCI?TkO;292!jzWwcv))Zr<k{HbX27TYt1?w zPyaBLu`TFcO{x8|)-Dm^1W~~&f`U3nCL0_##Wj(1$=j7$Ri@*r6-?EGi~JK9et?$Z z!M)dEdIFMW|1359mjv^_V>wW~7DLYzMHJin$-MqayDs}bNx%LZlUrC);N<3)uf<nL z7vHU3dvbCzlYS^tXZefqzm1ds@3Hm&f}kgAXfP+tHmtCvIGuWbqZInf_?iFi@FX7l zhqE>1hyPqRto9-RH!@qCk8K>Q!Dig`jQ<tMsC_^u_8Od9!3lUkX+|o~;GQ~p+-G7Z zQ3{e{nTX<j7okjd2;tRmlW_h!E#;^QbFiw5^5)h8GDL{;k$)AWl6T>=1mCnfj%am4 z+&!xE4(;ny0lB`xP_t+JXXnG}JvO-pak1jET(9vlg}X`3$x%HTObF41XNm8Jdq}o@ z+z@~wpzvojIz~DddJgWFadQ1GF8Vf8g}^zU9`^J<jz?!pH8kb19UrJ#7$sh#->_5k z;IWZxG5xAn5*aho-+aLSds{ZibFwQ>gaiM06pA91kp5*%|9b7JG4JypUdcc`KSh4K zG@$#hM)~i0Y+Ai3mLr)dkmYuX&U_vldzxAnac(&D61n0tRMI51dd*iWtdaH5qVV2y zos}6uRJd?XXZMnevPkM{*4#>p@4qHQ#WlooW(|M45;fV_RIO5<JM;26CoFulz#9|W z>0&46yYJ@5AS4GEU0MnSP_sPNxAtzq7g|r70(}vBpPbr5r9!#dDPJeFh~Jyew^<B~ zqPbn3TIhFebr&Jh=p(l^N=2)}_Je>uavc;3g<_oOnU$?W)@C_LPN3ozQ$5uiWggq< zr(-IO(q~uDm(k7nOt-f!9yFT_uG6eM<|ZiHV&OImki?}MelrF1D>kLJv(h9sQd0mY zqJg(Rj!MRt09Z^O>64H`wqmLeWmrCc{cP7O2&bV=>WEzI$fy_d%D0Jeu-O#HIt3dR zWhbTe@f<aq_!zHmKL|NADQ%>l6)c)}FLHib38#pb36OiMV5Ab(wEXMEeBA0~hSH_J zlzS~ny?lGxH)5(g6ouTL^V;Fr@%nY}F7h7dy@1?uKyx%u%Mijydk;4yFgg$_-L7-e zOE>fNml|}Z1On3vKqDX7PxO_Ehfh$jKu~x0&A@|jCwRv2o<<`*AnY(z%=eQ(XWpBl z3K{te-%XZHo#Xp`hXi8)z7|3p_+YaEip7zpR4S@Qt)<ZrC#fzn$cmmBnusOHZ*vf@ z7lwC5E%E>bLU;xt9zk-+eML=rm;-fFSpkH0@>P&ioDtMc`vy>pb|FMq*XzjU>%N?f zVUMlEvCd)7%)=1qjBFyoi8^V;tQ2;)sL7P11Oaq|J`cBA;)x4n{Ly+P%&ej|2}-$i z@hM%2P~R0<r|T##a{H{$9$mDHhrHr)X|4kfU$efR8cH!G0i#WPR21W-Hdp(2#qN<# zu`9MU!{n}0nm|75rP7E8RAG(2+ZM23(G3J5K9CZh$(NRt&nMhj5k&o%1wFOV)VnV; zP86Hp(gf?%Kda_)u)X4bSwV0ugz<;I3ur3}Fua*_b(R(mG<s6}q+efKic<XEVzp+p zNf4HVYoHoeqwYAx4>7p8qobeBS=g~^o6y5Gc1?PIH?BIomr5!a|Lf25-`e^!Hy#bU zAB6ee0JS62o<eBFl7ez(vzuyJvg$9oAKz9R7Fa3`!YuO*D7#~}LOjI99~`;&j9ZiE zL-jFgU07O0VDkhlGhB_~{Z;R>qVfVHvJjhF4Q!TV0C8;$>eUN3YuLRk!^Mu17zvZ5 zv4!YTcPs|Y?cZVa_Uh~EGh{i7Y*KfVRpV?!cp$}62Dz@@n(bN%NV%)`h7>uZD^bIV z;(xVw-a$=n``!;tREnU05CS5ECW2B;=#dTrBE8u{4=sd_sGzg}k&Z;V)BvG|5>$Hc zB_O>>N01K6R&U(yv**k??>lqvd1v0g?qAQEXU#LS>O5=x%IAynH*h6gzN$fBb(uVk zuKoZCd8a45F5uAQTwmRw^Aj+Au4%iut=ffQ@l=<rxnZoOCRcdH*whp(+rs${1qAjf zBZsxXJIw~J%WP!aQ^lC&2DrE=v&c&d<Cb%`6VwGfqY?>|)q_Tr(EDt5Wxf5N>se(u zV#0LdLI9{+GxH_n{+NwVH(S%@>K4<}%`HSvR7o>ByCq?&hKI`N5h!e9qyKmN;=Zug zZ$t`~F%VpVeO!80>?+N|1gSNClai}7-BBe|t+&b0muNI=t>TVOx@M83e>U#5wt_n4 zeqTO+e}^K_4{2dH_hs<&om(4k64{9Px5rlEbsjRtNVldvEo&OMZQ%O-az+Efl}QnI zR*dcR?bWz=)~fPHF9O8E)RhB5i;*CIKM^+c$u_6C!kuH{dH<8moLpP+pmx*NaVE|p zzbNJoATk}&ZQ!P%)?+xgX*0puHZ)bL^)}G*@nN8q>gt)Lz!njS?_Rj-i8VYjl>N<h z^)j}ffK$PT5b`u#=w!)yuhzaLGi>E(9pF`jBvuc%ZEDWIMmiUQ24Y+<{K&+~5Fhub zpQz}H;BxZnGz5PF%2B+i{tL?UXBE_hY92=ph{~CJCbdrO<Gs5-@&yD+poKiU=s@3j z!f4YKAfk)JH(Y^t#x46k;B^;r)9@ja%5sH3&`?Xk2KTv}mY(70e|LyQJ>6>H$$9&y zBEsK6$;FCaz9>Z){XRtqiShEH+iM#)iUM`zZL{`TSETA=z;N`a)}xe>Zq@Q_E~-d) z*8<coc-yM{1Rum2k&_p6RP++5kT8qhI;0cMkx*z+!Jh4G(bM2ww)@b9EC|`5Z9kF~ z5Dy_qh?ma;0+nxmj_o}>7E5GZiF<unTPxpIDxqEBP(E9|`nHO7WAHh^ryzNE!pgXN zz)In>?1&jtE)~8D-l@_=&t%7exsV36>v?f>){hEZ)L{9DXtx|_F)Ey4X1x(ipZZ4w zzg<Pj(eXFLN(i2{H1SQJ1>OA_2<kc6`?0)8WYH1MpQr@Kj136Hf54$8S15rCp;1x$ zAn3t@S@1YAVsG0fG&WC|Gu$rV<7$R&6NcRmy2I}_bUpv3v+?jZl?)<0Cy$xI_}(2I z0#%$9gb@@x)1iGdlUKxFU(?vxH~<P>e8yDCEMTYY=;Y#cPuGn7(Tu*lA?@Xuc?<K{ zD6d=T#;?kjT`b$fmx2!Ew%l+Da4}N!$3v|FzKl9gq10i+GbCLFJ}2H}Z?p9buqz@0 z3~k+IUx+$PEX}MKz1s&K?BbASj3NJgz--Bos;W;x9E(t-$dd?LsAI{+VVO4u7>zD! z&)mE`v*!V@rbF7|3*5e6cg<f_^sNzgRM#v7gN5F5cys2~Li_dPO%8ueg3&>ong^~B z=^6o#E&=S)5GylSBlz(?hQ_K_xC;@McV`7DviczM&~Le}%sRpYT@Iy5AE34Y+#feu zn>CC&1C@QHG@^NeMh?xHEb=i)GnX>B9rHb3HOa%qd%~2=M4S1$^t5C5WV0vS&}RI$ z{IE{A6_|m+y=PK+Xn^dM`qphehkT2B;k|G+fP1{Q=0$nyLr^TnN)Z9QXp@H(G1{uJ zEKEH)9MJ>&QO^ezB{M!T;i?#ZRE$YkyoFY>^mVdBHc?B3UNO$k(E5tBz9uM@Fm%^a zWFcvK;yXL+_IMTa71Hy04Pd^CVy}ywt51lkCE~-CzklWxthP^DZvsOeg7)PhPsaK# zb~^}__|Tzvydb$)1MQFeh}o4YCM`y4sU@WRP1bHXsjBiGb~4u@+ZnLST{f!Kp?sLM zMNW?vHO7zN#1$ZMPBQ98-B-4x*uK5yZcwrhS{|zz3!h`fVW2>ZBjxtG{MS4*NfDAZ z%He3C|Dl%2KjcgP<+J}pMTOu~FXuWub^j}srJBiPn%JwmPpO`RPEh^6dzPxOUL$8r z!L>r+%^E356E#y1XPRX)Vc`pdY#4443J(&@;7{`>Q$jDFcS08`HKNn~{jQFDq0Xf0 zkQc|`6YEsVds`|^&*`#Uwj3<Z%#I~{d~=yUXx#cZt7O2~LDhH*d|kLf!@C=+T{Bv% z<x`NjPlt&Eb<tG}a~5%zQbZky^^tjv{b>mpr+`*tg1VtcVm!jepZ*2{IJmMa4|C0$ zFBkGw%$v|~J(c}DW_nL~!%rY7*~*K#uI(dAn)0STCD-^Eaa1R^U}BTgg@q)V^vKY_ zR5&TyfGHY}1U!`T006|}_bq%ryQn5OSAE#%Fz4VA&G+Jwl#yTc<|lnVu-8Mjh?J_< zfpSe+n=GY@OK=wl`;cCqRrT3a{hy_a#Tb{)4m@MjQEaJ{s-_FEsjj%1T?m)d1Zp}* z58y%inmlkWI^PHnscJ-^E<^J^=M>p$VQjE|Q>%dchQkF%&<We>Pr$vlAKg?H2_~0K zD1|dFMYUgXQw=&9N#|&X;$vCLdrh5R*kdb)L};W%jSdcP<TEYFn9ZJZUlcEpq7?77 zuTvj)skgw7+%q&)-H?q~DnSO;wE~WpI^NBGGUetj_1`eC1m)^=jeP)qJFn9iJn}$f z2}`BTCE}I(zBv9a0F>?mw)K=wU^1Q(sOg>_={XnDxO=GC+^u%qW6(JurGnt?h!=3e z)@))4gY&h))BZ#va1eSRa?Fr`E^;im5i?4p9a-u-Yi9|iM_K4|Q<IesJRo8btaYGh zwoa1{w_JkBthqEUZDHlC!?9a3<0$Yrxt@%ZJYzD}1v6wF+eH>XgyU8bkL_TscU+U= zF>zj3-idbe2lER3+gcA6Kdt^FIPUj9>>q6H^S>{>1}0a0jx$;_Yk%!2U;4xg=F_lY zSqKs)b$9Sf_!o);UB(m4&K1>5Y7D;%zu*3E_5TjbpX=iP=W<Zi(PUh_z#II30Uulh zfMWnF+O5QC$1S6aW5)G&kWup}<QmnxQqUyB+tLq4(2?#H!`0Dz#CsFWkIGqs(?)y7 z;sNA_{RR>x$qDB^F5~PgEFIiTWAd>Xl~h9aMSqSB+N~>nv<MoBF&z+r+rKxRz)@F8 z*1dpw+AP2N8j=kuIS$J${CuVINOErF*v6tS?Y-fgOK;H&lJB8yRBDo3(YF%pW<*3} zSWr5L<1%EK^(HTG@n6Q0e>IWZzU={k^!o`H{nlgV(cs$NXXyxd*JjMBCO-Q`{Ekn3 zudxBm|4WfOOzu~BG&0N(w#i}AB?gZ3i)~!cQ}UjRG3n6n{UMYmH?ty)Irc;2c>jFB z-_JhAh5v^|AuR{+rIzBN?w(&bhNVPi=Knsn_EieiN#Wn3VrL690dek>%ibC;k0*5! zUD&g|ZbsC1JCbwPv?482is|W*ZesGoVJ4BL0z+ntsW8#Spg5umQ#9#1;|*Gx+5!30 zM|#BX_BEX+o7+`J1Ftj#><SQcUX<!E1)eL^S><YZf!{MGwMA47WXv|!=8PtjdSXLk z08}7U>Z*u9+*gN^;y_leVYGjqy^*-yxI8=qfNBzQW=6RBa5!wUZ8%Kbu{7qJ{Jy0O zZ)6xKnD$?-&+?FJ$k7SP#B5ntUWD0rPSu!nSas1U1agpZm$nvhv(F>nggKX#)LRR= z8j{gjXtPC(1v;tbSz*vLMZ0+VVRh}Si+8p9X<~a^Y{hA%eBZ-oJ%Z@F{c1sm{)BsN zEQDLvAa7GbH8a3li2H*Qn&4e_K6HX<fOGY#)#KWGiXoZFM%8w&+o8)7%`c?c_^Vf8 zULhlvB96F4L{;66_V{!E2pR`OHBsBTD667+=<Y*Y%HTKWSM;uBeX8QM{GYhw&-jzb ziVO=&Q(s?$@oZ2o8%*U8m*u+Xc#%o8WwAZ57B%3pCR2U1l~y)t&7rfd_p<D)4_5jz z<kn<Uhhk2lXsue;lnk+S%WSJ&%hn6)nDt~(o>bv5JBIYO63+?hK+kAYv6=H=eYZ!& zLeG#XIM>)M*?lUkP%R4QRBR&IW<0Wp%J$V`hNM=;xD);hfI}P45}JJ{F(YY0%#@73 z)0)uZi^fKZnaYD_`#EB~Vkid0eu+qY!gC_-J#eran9%JzzNTSJC@pe<M!(RP4_4|M zAFSA{##YbRzr_-}kE}QCrVXdyg@~Sv4vu(sDk|`&V56k<SQL|sO~P1xqTP^%lc?P+ zRl2krJmHGH4>`LfzJ-gr*h#mPD3kYUt0cLwW^nAC27_jya~s~L@*P~=Jfq><J<Bq+ zma(n(lfbEZhw6u<!O7g~1%)mF?4QqsU1Yb6Z`|wNEJ+-)+8QMsEHnejmwKvDMv#O= zf<)|p4F35S>(1Te8M#_p-P?bHV-ha?pBd?X9qacAr{AufiDPHCbKeBd`#wA=RkB`P zf1KD?npM<Ma1v$y#c|-rax*228b#MP{$beV=tEBw{AEk>_nD!o>U$PNHi?%=YP$F4 z#|=li8aqMm=aiO7o%Yz(JhUeN6GQRd*q4Mp_a<sjRsv?pzQ(%GMJ0orSR^Xeb>r%U zA_c+;mtXuQ&{!llUeht4F6IpF4jp}+6ZxP^Sm{ak{s~}S9^*1yYbWfuP~>*ajJD2O z{>a;<ZM?#|vDx_(pq_xwa7?+$T_UgVrzB3MCVCvUO|?AWTX|1lKQ1AXWyBhuheu{D z{dF!1=9`sUQj+HX%REi_n-QGY_D|_(Vw7_(NeeFTt<)x$^{r{VOjgLJuB;%8EG#On zc^0G&75nb7{Sj+Q%)2$?+K$2b^hsZ`hd=i7>j@ej+!8Fhci#EOh|zRTC^Qo;ZE+P3 zwwImO<XdiXB(twdGOOF%@(;|N5bGZXQ%H<tlAWL&eF#wj-nq2o-n}7mWS4{|UaP%U zBxGZ&^cHeYp~N}X{_0D%R5<2r6UR#VRQW*}>~>FJU?9t==PbHAoV(90vSLeDRNi+L z@Ddo9T(4`5s>BZAab^geNUN1<$}Zpty92}>6vQVl%Qo&ZpA$MG+H7hH%p78nk~$o@ z4UX-gCsRKuwdB8j(2<#|lsWZ0`dWCWPwJ)?y~_=1h<xy>93Ovc4Rk=u+<5G@2%bec z@j?Pt5W1^+cJRKsG;>tk8DvN98G29BQFQc8iGqO#`syeJl}Lg-rIujIr_{injLNMu zLtQQt-F6kh+10C>U!(S+3ndJQvtj_GVtFU~X|k7;Ggh#TXSAb=&{E8e&~ch@vP5hR z*jii7*=vA}7EL7?;4SL$p;4bSJM{10MUCrh3WXe9RvwZ%K3mWdZB+aSm4%3mpiTlv zHr4ja_TM9sMKC^-m^$?Jj)zTPOiv^<Pi$-ksIHH1(%XD{r`)(^P2=4&q}TnGI`OtY zHq@A~OU|kjHX9s!-Ng>#9EojR4X)I$oO3ke&wFQNH6v{o0ha7<0bg*X^K_tyZUXFp z{5@VMCT)VJbRIZ~mucwg()aoHYx()|d^I6CiL#w7Nj#Kpudcx3@?<owC*E-Ebc8e_ zl)1+>E;K-=GI@E={i&?^as6vXo7FGx6l?j&z7qO;HZQ$pB8&7v-ubZp&OMMd{g;qw zrP1aKyH?vxBXujEQ0VOP16E0gY)p2ZRzr)O`p)IJKzRHfg{P^uz;p?TMIY;6E^l{B z>m0>Aw=WnZQk5`dFx;Yhr?K<VLpTt6Cg?fS!;0@P{?RGm#w%^=U<Pnj3YFq)no^r% zgJu~?rWaATZS2{c(%WkEWsv(5pSqRCMSx%^vIApkR_10>dqZYj$SIAFH>N6{gJQPm zMc7UM+l(p>S@__6uR1Fsu|u}n6wbF^T)oZg?KR`>(G`@RQunEnX=<ks(bi(ECRWas zggBWqT_Akd)qIe~(+k?~y(Y}WjHM+wqubMg?V%(?n20J0Al@O$Uk750lVI!q<djou zAwbY;p456Yom4hYsBP>pVYawI_|m=!a}4D~<;R5^jovwym;Ue}4oG`Z^DA=4LbmAh z?cPbY78W;rov{WMU8w59+^Lhgcn(QRHA>A0S*iz$fQ$$`rix@G%)Dz4)W(JFi)Sn< zR4gC|?j1CE{DiOY*2_WJ+A%{TUGqC9{LvL(z~H*fTE}5j6oi{wD2k4Iq-$*qCo`f> zS2P3Tds!NrTM|8R0iM<x3|O5TCDKWc>4bRArfYs|A0%zFTc*}JAS#~pFrP|t+2XN4 z-05o^8fny>-#;Sd0S^b!0h;(UT~j@;Pw^+w-O7FKbj>~v?{Y9~BoA%-rh;l@9JoQx zcvi;YKaT4CmAl;c$8GH2jH?$aHPWo3r=kyzjHM1)D>~{zV#?|o8%U&<7(jgba%V?n zO-V|fa~pz-)tTk_U0p6#&dH<Z-L`?lnF3m5KjlHIi9lTXjU*$B>h=l70n*sG$&5Yb z+(O>0q=~w;(jQo@0T60oxcUxO<o@J+bC1f=85<W|(q&ofo2T<z>^vA>Z|L4ao4;-~ zNeyw3p-kpA84|PItouoPb?IPoBw`Z}!2sr2Sl7mg?amXA*DC2SwEP@pPsOozexGIE zl5Jpi{Q*2T4(pqHdJ%s~*ike;U?z!dc;yRYT;__e(qETT&@iRhyA}!WNo{dM3q5qF zmXma(+4A95jZaP76#AvXU7T0=#_`C+K{zi-$VpIAA&S5J1qXl}X74}t!p2)HAhge* z<te_dL%VD4DghcDkqSlv-&@;o(^8jet6k4e?Rp%j*5Q^@K=`1q84{fvu--NM_)=3C zDA3ts-E36qP$nQTd)2pc++>*8#wudTDv}o{|27i40vGLENcFj)ujYsLQwy_qWg2rv zxw3WnFzZ@MW<Rl*((c%eE`_w{oA?`vSt@wQ)Q@_4N{f%QRoyOzu>evY0&Lnl=#^f9 z9=-_K)J$!Il!WGpy_*s9t-mCNY+pwdq-am*pn}H$!<zjP8nYGN)p5ADPBMB<{(iRT z^Mz?5ADb=N#pf?GciNYDh39S?wvlD)U$3HykKqJNo!iHwk&N4drnGxAjw3(doA$Xr zb2(UT;ug9nKR49e>HeB~C;R=+5kM_~7g7YL=A6%ESRnvGxOyd@KP7ZkT~g6+pr=&O zh0?=;kaQj8QwBA~=FdeF4zY`9-)mwl22Bw*0MK&kGz{9b_#VcxBHZ@*$t5Ef>%Dyj z8Z{as4g!x(WO|(@6-{e+z|EH~;a4nLS8qCI{j~X1>|hGwAWbkb(vKwpp8MQ!X9uiC ztoGi3slM;_`+g)MKRk&OIg<H+e=*pLgvNBPj?C{w?=V``LiQjQmnxI5Rwikqr@Wq2 z8JTkA$Q)gC;>&q<rUtMyk8(wk$Fh@5%MrBeGqKtV(BVSQ7`j&Xu7NYNiylS#UAH&v zgx8kI0g&w`w(a=cs&T}F3D0^1$3mM}bbHThVGd5c2kBF<u3{efKNb|%ze*hJIKq%r z+$*+3RW>#v3w7xYUAd*CD3z~b4#PC%FXuY9ASNouR;(w-#%0p7y{iCJ<vmnkVKh~0 z0?t{?EdN~@aGE-s>y4mp!uw~4lWU^^@TDrr&RxPmd04%-Lk@r4yk6dJ^8#tKTOw_$ ztX+U}X7ltx)2-62XEg0DqVUyvMJ&)zWNpzo`X_+Wk1pN!`OE}GSXh<s?$_dv+vD2b z3g2d;u^B^I5qlEk81Pkjdp#J?UDn<AK-3y<x-w8XIU{rUy>$M~_)$afVs7p98m^S! zxg9h(qQjZNLQK^Zbyd+*SM(JrC@H`KRYavlHozy&D2u0lND4Djci>)ph@=m>HPo{W zgg-9daw;r(=R7aH;>3Fr<aIZI!gob;IPm@zF$8yyRs(uz<2)K`Y1K=gACSX8!9n8l zx~Qy_WVGe6@jlhfwbK8`_>S(c?x8p(=>lbO0jNB-?8eUH3h1Iag>3qa>dxALHfGEK zCL9s-C8V9OD3sbA0c5AG+PeC2UXB<~=*RbKuH+m38cBg)ovMp0VL3?jJZ#Ry`g^wz z(qm>XN=Omjr9OyZBol}yiXMC2soL*eHSJtggyl{G)g{{F8`nE&x#W$vJcw0G=vr6) zB4@Q=^VcnWRb`N%f<wj%yxW7xA9NYD-%d@PY|>kJu<ENxrAAMw@!m7n7m4V)**IQo zUGFU_sA$^DTIo0Mc4(8u*zb9HMC{uFkv9)S|DL^pEoo6*n*^qjwE!QyXDl#TrPxtH z^i%I@@Ti8ASA(6!F=}{(h;zVYA0)r4>*W}E*RKif*25ze9f3%3*SWt3%RNr^?U2A* z#D;x#Uft_7kVo3*SjYa*)a8$YNvIIQ1c!~J)w-uXm(-<ONYM7^T9X5R&e9*d=^UD* zZu{OeNO+Cz-vd@Fv917^J>LJGDJEC!W}PGHm+zAgX_rexM9yjWypzrL9=~VudcGCU z0Jm6qJ_Bu{=9Y&n>rIIjO{moWS^<}SHOoq&RkpC^^d;$1hoPH0%cLzzRrw~wot757 z+dXUT>Lpd(E!f!k{Tg0#(RGLGI;t*?mYa-jBIc~O`2A`MpPjqBZ%CtJlFQhLnlaR~ zYN-8Wnm+(LPEpJR`t%}3))b*4T#%ig(sD)<yQc`h_Nget@H#K&O%I9RqEi3NQ5lY& z9>((Wh};WkfAVSxU-bJKqZy8VYhA_Wdn2h!XjK-qslEd#Z;8Dx?ptLtf$LN7R15o~ z6lAeGc0v0%#10>qUU7-Rin)(09srJJywc`K8j9Ba{zd2c5$4H_iP!IJ_xHML292$p zQgqemaucUtXo&5P%8i$%MNTY!SD&0d*4&Yos2*keCg*8M1Uh6ouJAc<d`(Y$%gyHI z=Z{UF8Cm`bSdE(NE1nR|cxAsem94U2+mavSA(+XyaA?`8Hh~e3GE($0H5Ij5m0wvQ z2kjL9bzx-Y-krPpwUFGy-<Bt49s_1p*uTXE{gas}{Mx^`Qo_T9egYoN@%u6JtE%4p z9li5+xB-n>;N0x9i{ZhGyh4AQbbbdW{hPJ=9|r3GQHA)1LiwIWeF!%6lbj$9t#aK( z6fq(BiH93<sHuAYY4LrJnW$d%K9`M&+g+l)2ObO8gH!q?H9_zu2pDqN<0nAIB+xo^ z!j$iU^ev_)4*G!CprI~2;Q7L|0UIv#$q32o2z|N3lrs}}ZMT7<A6N$9l7~?A&`AN# z(1O+OeLSp^B8|GeEsQjlYh-+gbk&#%3F97^g6CmV%I`c%!E$#Pb<SIkN^D>8;5E8@ z6IOXN>1!Jb$(_;RUhnm~g8}-7TDNSQyJY6N+%e`=+Rcje;*5+Kp3RiR1a)A^pNPa8 zwn@cmiAc*{cCyoIgtWUCw>am75)NZqRloFW1%z|7Yr48i2Bk7WRJFy7i!#ZQ6-imk zTS+O)Lv{I}_Ol9YaFvJED)%Nn<z4Odi;bRzlw%aGrVL-`<P|nRptN-0H9BWQ2IVvp zN2IDv!=zVJ7-{*og-%%sqx9KQnJ~`7GU;tbM7>2&f52XN39L^+1z!EeH}k+?ZR=^7 zwA@{9RFMfPoh&tNThpf9ZD+VBpe;aUS#h7y>r!g`zN+@imGpu)tYzchka?Wn0|s0s zy^g9@^#XR{Kf1(^``c7CjW}IUtbbv((3!MKjj3S1nB|vWX#Ti*jO1^ud-F*?@VyV< z506obmhxG)8aJGpK>r67efpn(#j-O!MO3eDTEJ-Ev8V~~<|0#SJ&vx;RTcYi8SN^s zZ}0@$tFFc!)y^-~^?$;oAFkhVfU8*C9E+kDWoBve;)pup+&drtr=~*o4bv+^9@-A! U1%GYz@Lzj8^RK0@^mF3B00?bq0{{R3 literal 0 HcmV?d00001 diff --git a/Docs/Screenshots/1132-category-layout/before-1440-scrolled.jpg b/Docs/Screenshots/1132-category-layout/before-1440-scrolled.jpg new file mode 100644 index 0000000000000000000000000000000000000000..702e7dc5f28e3ba0c630014741de9a1897c6ce99 GIT binary patch literal 79475 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 aR0h%g{!hQ-OR}D+f}j5$q;md{{J#M8>jT*U literal 0 HcmV?d00001 diff --git a/Docs/Screenshots/1132-category-layout/before-1440.jpg b/Docs/Screenshots/1132-category-layout/before-1440.jpg new file mode 100644 index 0000000000000000000000000000000000000000..537af70328c593a880a101890aee6bf12a2b2726 GIT binary patch literal 105979 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�*<7`pay0&cKG^4)2LJYZ$`1^HtA<$aO= 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%0Aci5LOx&_`Kl#4ggWmMbTS(2m%_qsP zR}+7Kxsld7fC9g&#E`~&VgoWxOUc=PVLl@nx%5KBS$p8lbKAvXGG0ylI+;|J&f1t* z44<w|uF5{k4xh0J4A4d!?yDn%CM>9(U3U;Dmyq|S;mF7_O)LpGDX++836c}@)p;3O z&9>U@yKR!br_PZ~IM}X2*E7&{FJz_0ABu!Rn-o`IXApgMmgwo(lW>^t-YM508(;an z$0*V$<&!_xv!Sr_M}xKU7$nu}gucTc<bo?O2!}_XeGeH+oN}}}7!bv;Yke2y1u#^7 zaVVfYn3S@%?VX;QSFSB>mRs3tP{U2cW$|fc4@k^Mem8#$t(;viVe>J)^Z#J)y`!4i z*1h2<AV?MI5PFdoqy-Y1AiYcP0tTc*=uMQer3n!N1PDm)RZ8d}h|+rr9g*IffP(Ff zd*8G7x%Zws-gEAE-*1d>yx%`7bFE~~`K&qD$eQzcp5O1+O(u?1ddL+mNf6J*lJ$JC z==K2ILQz0xaK4h(#pi@6E=N^W;H*t)va%DYBi5b%F(pb-{H%eww9a_q5}2sWttIS% zccyZza}7vDcv-EkRGX#08}!0-Ze9j@an;h|T*5p~o%U(&5IS{_rm3*7dCK~t5WAP` z6X#m7EHag6wY7WIPj7X~vzm#0_iVNv`V-)Ow7Jpkx&h;6k|g0@t3VRxJqd@9SktP1 z8oZL<LR<?v<xV~wF1S)T@oimn!+thYmN%mYUw_=_wT);@n0!ActLbUrm(Qf&{ARHy z!}a33@X#imD4%*iApi$HHt~ykDPEgd)g3vg7g$*kGrr(l7O|sX>-dx@3PPS|T-MN% zHT>*N%eHNJPz^%?x{Od0m>BtSm@(i7gVmL-U~$%jM_tY1JfxH)V@!0oM00K>2(q%O z_OUlxV|sbL*|LhxVuP%0lz>JNpXUDK_}Sk!W}Q|Q`q$gds62Hg<`<Xmii490&*SUS z176Twm+sIXwid7VD(1f$?LJQUnzU<YBTI?NtzhL`ZU<9&>gc*IF@q<1;nne@4F+1D zr0Y{9Bxye);LL!tN+1T&WFb*iM&!7pwrfc|;K<5yIV(e+r_i|rxT~h4ZZC8Cm0S6p z>v<O9#bBdPWqC<N(Cq10Cw4sx*e?)xC0mw$A?8uxWN+1CVxaNXOGU1FFlwd6M|0a? z@Zwb?)6(jZk$YoH5&w-^A_ppPYwGK$rqF<<ttf(q=Ea?@^0~^KDqD&6$)T4Mmb3P7 zdLe*sxM*vECSSj6#%krf!1TcUTToIox?h~O!3-dkIra?QGOT(QVGKMFWwKBr=w=Jt zy2J8KC>N%wpbhc?*D8@|k$J-sZWEDj%H}T@R?3v2%IIc~Xw!E&E2^`~^mNr}*q1$g zgXH%!$)89`4Q%h42?i@a>|ZJ~-oIc8TI#(AUdn4lW(B`a<xyAAR`aO;)TDol*FwE; zpUvlu47|B`a>}BCgFjj^ThYtW^?>y|U&bBuktZJEB3<>QexS^`=%un!>*uKLl&cI@ zQrn0e!QU43NdfQ1R8$DT1N#=L<1=+(*#*v0bmp-F{m(&TPZ2hmi}}9f4L<=Bm%M%7 zJv?Ne1PURF8X^Z9z|;O8TO*555)-;y_QRco7B{YSjRJ+{M6#Uc4Tj&HQ%jSW&<Ik* z&uGlN_Xz9OjNtMoCrl;Hes4VoGjM9QJOJ18JjaN4=;@N5*OFpdtimClJtjF7LB!S^ zMYjT#&gng+2cq@@`$xp4p!l_DkMYmnGhA>IG^#%Vo~CDU9+&Z!;&CBNtf~tFrOF_u zEuX1I^^N&CULn27`}3v#2`$NLcAupB=|6TO8+Ex14TD*|nuRm$sH<GoaT8hqVziWJ z1@915trurZb@0z?zizfLRjv(E!5|$$uC)MPXb$f0I@)O$<SPxmulPzq&xF88tcBCl zV~=53f#tMa8~4ORORJ0OrVeOi`xKZ%tQ4N`RJ}TF$h!?7bI)`rXIL?@vZabg71D?g z6{hw#b#}_X4D0OTLeOs-uMrgtO!m6gpKIsjHFTAGK84}+v6}d^&nypt;$P*WD$`&p zj0=mQ<hiML^_2a&WopjOsjKG&hUvXO`_^@tP(7O=30*sKf*zSsCmQJ-#3CX~>+8@A zJ_Fmog$Cx!x!*sl*M1KP=F;!B!i+ERGdx)7@vx^P>W<t$nM^{E1it?I;W(xI*{i2I z&~u+BuN$W86K3=WH4TU1150<^^F*a;A?1lZeK1$gdT^Yhi#Ze^MV)T07V>zlo>sqx z#8=vE9U5$Oo^DD>`L~=?LU04?`44S}e83`i017IqnuKXvR@<18I<5BwtA4wupwuIQ zlrn$yzUL0Ks}cec0<9JHB0|c?^t=akHV^hER@X>j%pI>naNf^RoyqA=kt*Lj-u$ZD zlX3@CoTvVMj6GRyE=%uTdh$;XMDm+ktgSpbkl2kLzO(n?D(`@6?WK+`cssh7Zvt`| z)AVu_E0?YDqYCD}66*pI$B=O+8ot|V)nhcb#Ea>zag@laN*^sh)$e<ysmoA=)F=fv zIraHy17#2IEVnZVSD6Q=jjciTC`Ejqe&750)Y2`F-`FiV$uJNjHvXPVD(lJTTfPZm z5#MS2!lqOmc^;4H3L0t`x|E7=rjeZbQX<?pp3mkoY-V;OXWjksdFslf`e3s7C!h+? z(U~o|mXIzA2kVYB-&uz(t3g08`N1!q0^SA&7DAm3d4zqtje0fj59FS)m%MZrZLw3E z+>_O6DoN{+xYEA*3COCJEfUvmd%ZtZtD#)`XjFETX#|MzIqlPXJ=}ukj}2;2=PgV; zH$0Xz8RR4T33%wmxDvAbemfL~wBZ}LYSCq;qGEb>uew^dd{ht&x^hqI=ZdMBni$y0 zkIhq8XK!YDd&n5|8r04WDf<p2dO^~k=Sk)S<+4LO9BUbZA$g>H4|}Q^IvzdZFS;{> z`3ZQ|9nm=Pz~qg?4o7gd+LgLih26-t(QD245m_N5w;19ltj=8xKl7M4#>q~k`#66x zr-#teewE!DpTvXi=oonRYLDuUVjUVkw9EY1(wS5YY4*57W0;E91W)f&ecu-8*(=ak z4ztS(&cZe|h;AaG%y*)X%y=;f>W}5`bP7~;b-(R=`PL)=(voO)P5DfCxWk2sHWLe* z=-uL?8c+O&`V5;r%G)iT__A7BhH_N!V8%a&Tzs-3lyfYCn6#QN8agYTm1bA(eP4c7 zcTS1>dzf9?IBidYeli$lOJ2KkUeg*Xi#K0kwma`3ammNZL}2K3v}Uh`Y`ZK7WA`VM zKeG*zBh=>`INRNm@zEanU|MZGv-9vLAPUd9n7YRG{S$rd4Y2-Uk$0gdg{@1IO{R^l zzY!@?4fkSMQVYDN=6COU6$cjL78`i}C1!d+H0|t1$LB9j?$rKxssh%QyOB*!OA;x? z4+CIxN86hXv`zecmB)%^azFeeDUxv1Q4cH5KAEXu=%*I4%<E9n4i{mRG~V|;lzswQ z3=NCUbiWoV8~&p-IO<=zzXaUBQwHPWPk+&B{ZXQQy<EE9T05t<z4@vjz2}q8PL4wq z1!TRE&8zPYP^|8sVB7sKGB^}?e-G9?h#D6=d=92oG7Ludq{?>T;(?HB1i+rQz%E6& z6!7C>F)%K{IsPDE&uO5*TUp3oU*yYHVdqDDf4qjH)Npq~w-0v-;E>z$oSbR9#!Gr6 zW&%SMlXL}AQ5oGbL2qc>72(qEmjOI0eoLpvh6N=whWlx%T()cMwXk~}_uEjQ-&??6 zBwy%wNW9CPjA>$S#E}C2UP+(~ol&lnTh7oE@KMm>_n+MS{cGwBaoxo6S{3NQ)i62! z%K&{YfI0-P@ZbMt_M)$+LlQg$@AKACAg+Qt4o2fu6ut-!Tks$3lKkEJmb`ujo_wbH z1FrfVXcw@zUGVR%HPI6+tn55!-B`)^y^i{%(wrGpflcBi$QC|WGm2NJEolCCR?+lA zE1bL+8OMi`Lh~;3U}-abJ<VHW1f6ujEfeqle!P5D)ETJ20~a;TctQ}M{<}Y{`C}}7 zZx8&tMyE9ST>fqd|D#b>O0}rQznhBxJF1t>nnE|0Ppddke@PbnQ>A~Mo(huY=JVMt zZ{7hrWvsI6^ypSUnO%*$%0@98xYK*>ozT<s`q~*&S3`^mL#cCNL5OA2+g{{naoYC@ zodM8ge-nZw?EWisOI2P`8QP(vpnhcBNC1`!xK<k0RUC>JZ9!~dPs44A@i~@&7RDz+ zJ2M?0`_z-mlV;(O7$>hdAATmmVEg^+H2H!-cgsWQ{WG8xj!*1-SDGjsiQmoiI}clh z)SB%+3b{)1rsAHkoTO5BxD8m#jOZ5V$bD^oaQ@UpRkJnYHkn25Exe`5S^O3IMWYhG zN5j_=y6<B>1PELr9<GpfC)H%J96o&4#8;e)(;sL!CEDZV=cNZBA<A6)0fEb6Bi%q% za!cbpfi|pLQ@e?=;eeY*+GIN-5EL^URx2LX=Rm=7N*A<CY+`BVDe`Q(mXpM8DnK{^ zCpI`l5M@$_ik;nEE6a1mDYYhz%*ZYW&jXycx+7G%g$Q3Ql)1Z}HVc%M;ZH18p0-CS zM*mi<=OBlNPZ~_8*^nyL>Na6kQUFIXfwU?gd*MZ_bw}^?vZA+l1tnS%E&2Hv*s94+ z6Si)%7TC7S5be>Mw%)6o!s4KB&H+nCa%NnSPCP=<RD~@CTx;}w8=2*B1LDXoj|Oe` zs-jlI_j&^JTu;ss2`0BEH&M;AT%Q<KR3LEEpMU~QU+IGr6X#NU)f5B8GX8XWaVg_) z;hAgisCpSJg8c^ODyQ|PCMF>2L>!b{r)sm_qkc1x$Y&R!4RplB7AcVM2GII_6*Z=k zmrxwd$Vw0qv9*zxuTEAk=8W182fdwrib(0nG+K{n^T^byTALm%bS|x;nOp`N633cI zJ25boeh~JHyp;3VD2Q`F5E5()<rMn9Po<*!ZowhkpsgBl6F<%Y*lF6+?F!~8n0(qa zO<a4h)-LQGy6;fe4Q!8b(h;-ejdzokRkkWyJ^ehy{BSR+p0c!i{77stYWkw`d1Svb z%j`0zQ@O}EvHxVvbR9&vxgd*R(Mwgw_+qJ!w$*hA6@&3~^z??EUJlu0ZVla?oCu<Q zLQRd+Q^vlhMaL#|iJeoGt91uB-~rCK`gJ5-I8o)UJ3AQ)7VtO=92Mc6qAKw(exDd) zu#4wD<-ts52C~cJ)aTwqoAbr4!-?yOoR3}9{GQf$Oixe7omEwB)nOM3E%<lm9`G}; zY^xJkzJA3pLLNmLcV2F2%;@4ffHWu82yiOhVZ~GP{v07h-nkY|ev|8DR2S@#vzW&* z5dDu-)Bn8oU&x(s|3OW5>vx{Aycc?y;BLD#m7aS-Ht^urA|=7Z3nkj5MwC)~Yj!oQ z5os4uct-@LJ6z3|jfQl@ft;~fC{NPrGJDC)aeClQdWN+)_?}VCsI*X)He0f&x!dQx zbP`K7w(Iy$A}Khh8V#q!lPkRWoNS)Iyc$Lbj~zXw;d47PL<kiYgws*R_0l_C28TB! zj~h-8>(+zyM0$uG`;Z~a0g>=u8AXA1aRiLJWl@I18hwKq+<xIOJM-6^E|K8Nf~|t} z<Bwx4l9LKNpDaaMg8)ee*RX_w=Ou&6nt~n(bH|7M<i(iraA44=*~;yeqHu)ymK-AL z$*wU2kF7|w<_q&{44ojt7#!uuMpYGNV!<w}@-((`&zb?Is1mmlN4gbdt+A}Eu1yrD zs7r-!Mj82<jA08=QC5q-;eMvb<R2*54VcUd*c~v_HiFqPsRH9m5_9YIrRB-Gx-+n1 zI094C8bfSL__CFS8A#hQcw!dz8}LS4s3ia|dMjzF@pMu_Z1yr2q1ub=l?_F0Wl5zp zm+)>yLL3Uh)$*_6p4ebIK8~RbXa_Ao+9;{AxPCT@>4NK41&MuduC-iekkPfT_xpDl z^ygz^9a1r8r{XGLNwQTO-apGsZhEqt8m___DWTHUU*QONdd;wxAz8z8X~jL^n<rkm zthzlEtEfwWo#E#4c^kiR@cbA@SVfEUr5b|Ea&3|DU~uHClqx4O@z-M&b8etAp>2@3 zpMY<)1B}FwJ3hzy3c%5;2~lBS$c7~feKV_fnAA&71_j;6Z<INiLK$Qhl~iV>5$##) z%vRQnFj4ERv_<(gre5o`ef+T4XMxw5#k^OJH%kX{T~lMB0sSg8Qh`drCN8v7X1u@S z@J@Jn&hz6#R%-Vsfcv0=JE73c5Dmv&0e)Wlvasn1oey_#P|luSIZ5ceJWd8FNbDPm z%NO%nq6`V;dOnl|m=xf+>wdEAr+6dV!<uGX**!0ofjt)SDp7NXem2zQ`x;Q6DTJDI zoQzq<tq<a=4OHlpX(6_x5p=Okif!3d-(`h_?T>TLkL^R7yCwiz`{uDQBLWdS@C0Vk zij^wU^sV`l&WOyiz0UzcqW#E)k>#5+9B73w+cSR7%$qV1>!^f)2WPi32mxbcpH9_g zE?G`@m>7Rq;9OF<5UCC*Ci4S8199>NdK;lqw2HfXQOQPuux{IGS5SnaIEqgEmX27q zbe8d<Gb41%?vs8O*U(k1oUo<rd#%Y%^UX9E$oss>kzQy|ZW-@ojS#WR1scux0&G!a z^K_T4Jv8guye<&rS~D?t)?JQ%yS<a1(?(i@79|O4+dthQDNKw@K_FDX`#2fyj|r-J z#6xG|zPDAm&R(m1`H`PZ&)u<qs)n?Et_QMk74CpCF<a!v-To|odo3=kJTkwRVaJrB z0_m*F>4SOsYWl_<rEOc$HJ!W(^`+Cb>~8e-<4C?$AA_ELPB>1%Eu5l_2H}=`Bh7%3 z9|rKtrQK;!*z187Xi-n-8P6DBQs1aj^BsK9&w}lFs7OH`zW6ngcDY{$LwnJZ`?a5m zbM0;?V|`Po8c?ju?!CG;dHk@9$o5D)DV|Q?S~>r^XD!c8Ogzj>2bYznqpoiktxie( zpGkTD(N^TYdF@}{<lF#T^+d*WVN&YHAaP-WmA0}QrdL73U(F+aXv&x%+_Y-7>-{A) zR#*889PgAsLZw5^F>8adY3S&uFEv*J?0>U|4i7H<$f|pa#d(O3qtt&@{*5DxKUi{I z>X}UYhn+pi180g$K^$Lg#Rp8uz4f~H0r&63X7wiQd^`R8?9YpGe>Oz(kqB3vMX~tP zf7yIM>3$%2_UK*zKl?QJv!92zVpfZ5{<Y4H8V40K85b&VdaeLUAL|YWNd3*iE7ol8 z`zs$R<Ugn6&8k~V^e=o6c#+9?v3^e2M3F$^^|ZD9%jMn2Vl5ojudtIFyY^8|X<zTO zIk>g&{5tFsVRW317#2K&JboR*xo`fzdQ#$T)!+FwwxJ}j{%oC_q%S(>pUYn2xX$qp z5hj1-?foAv{kDw5llzqXE182g=kI-u+`*-K<7htu%{OZP{pqRKdFmM%>)FY7HYNR+ zDkrVO=AvMyEkq{o_H3)e5m_<KjRiwn&~$~0TCe$gahm%vDH*AO((6m$@9w(~Bj9$M zmkz$AsmzDFq)n8~ls>y3M}gDLZrGN&oqCaQ1`kp3z7c{>ah$u8-R~9e#gn$D>?ukc ztkxg)F1}}i-%eY(EnWJGeO!*KGlqQj`AU2Hte>wElX6Sc*>rHN+654cP@4;fo1Y$% z%PprAw)LtSJ!%;k^aY70gWu9;<B1~|*G6Rd?F%0wcM5xTj2K`u2YX<0d1dzK0nWfU zAl(jxu$<r5r*3@6wk+mE1Hk=~UdF`8y_EAT@L|tn=jnXHTTM~8DpqcMEJ(PK?ue(d zvVCGyQOinK{*JxMOY9yQ{il}p7)DPKzh=*7SSe&gmgBM9^!H`=7vmPLd8Ze1KVn12 zq;R^N^~{@<(CO-OSz_Z>FjL8#f`z&gm+#HA!<FEI)teNeS$K<7NrI#A;L$DF-{4>$ zu(;dv=?5($GLO_g{V2*xiEI37fd61}PD>9Hsrke`(6J{UYaHf1!0&W0KH@7JSD>WK z%rbl>_Y+Xhd+$5WRmh1t{_g+vCm_fC9?tiji=!?)xOWL`jQU;0{;I{gpEdvZiNn`; z-Amm=4vvK(!GOK(jY?FcREd=dm103y?ez=1KGdgcc6Y^^H9$<hKJ%P!`PFw;%I`HH zWgL#-wnqxvo-^aP#SE$MgN`bmD0MtLf_=h7&a}-!0xMai$@lnSN5uhlIe43`fHm0w z&i24pNSJH$;!z`^Ch0WFe`aWV7Wk#RPzpd826A*<>kjX4lso)dXrGl;+d^n$zGOgI zT81#QkjO3k;cz1&%Z#0{koSn8qRzti8glWZ*L=M}|J<NHRl#(Qm6@BHi4#rPDOI}o zkYWiy@na*xtH|eB0aLtz^RDUU9BG_m5*Zh?n|^nv*P5ESo!OFRYN!;aM@jOfW(5fG zefg-o%*I~JX9O)G6E9?^+--msK@zGlFz<yoGJbupjE?{8yz6N9S~Sm^CqZO1=>cwC z4?Pof@lW}%=VvzUPn=eaTr%b^DP~8?fcJqXotdNw5fkIyUnz|YEb6)kompjSbY+;f zj)Uj>fn(~-5WLti*Xh-&yq^GBko|xeFE4{wDR<X!0C{(&?p5P6lPEby>B#BHj#>?g zJ~Aa&ieP}8i#i+CQP-i#4BA}ie5hld-)XBFm9^iWWnrO56}KYX{Jf@a_gX0QY$dL; zYCw})OX3B_cw)qPuWNZ+?IJB}|27OJERI@BTkG87m1cBK<NxS7Ri`ShGs4Og5!ThU zDqH3r%xDhW3}1^356ph_NjB5XzGJ2ib8NZWSK2Iv*3jQP^ml)f&gePH2_1PxP7>JY z^VHzU+#_da_8aX(JbdD7=N{0{$GuI-%*eaod6H>6qohT*X@BM=*&eC;k4s__91P6A zEZiE*9y)=@vaJa24yFtURO$>hRN0ysSOb$Mw?^za!-9{Wjzl${5J|sNk~jRNwLWb` z@xPH){~L|P?`;0cv<*js<J0pNc+q#uy)}Jru}I!dpr~VG?F1nw-N>|MnYGbD&8y+G z*j7Vi8#rHB>xTNrVReVQ%G*cD_hY4E`z<uqcs5S@0%~<o+5R%8y)2f-eYd>B$)R8A zqzydhQU~>n$VLV?l9XFTH6QefBl5sc39Io+_*{K_jwi9AOzqt757X4N#kzmf9>Zda zNA4s+sHRXu_E_YCY@RgKHP)1`t*oKUZ&JUj{MxBBN>{%Vvv~0~YljR+unsykFcf)@ z@#|)HCC7s#NWWxxU43vKS^L?&05!G!zGumBpv7+h-rM|UNA7%BfB$^*YlETx0%Ek+ zPJHgk(dkF&vRB2L@?=uxgw5{!8Ln#!rm#5(KTpeqws*zt+LW=0;le{FPU+VZ-z1A8 zX)iuJ%TKj`zRKTiO$twyb6kbr^$xrYwe#HWCFrt{2zEKZ27_)ER#GQ23>(Q3_`nA% zN4bCN&n}PXFBT~J&OBQs5ua4vxLEpLRtrPbT(KN;Bh^bP4Eimg;2pE+_>Y9#irJ<k z5qe(!qGWljk%S4R`p$RuilHbV{D#y`k{cjQZmny(?@48GlZm=HM~V3AV;6Y0LO`(k zi(yt1R3MAMjfJ{kO?BAZ43n6ZS>3s=oYrp1iDB>7h)Z2$VwSSbTCKE#U)_PSYcgq3 zb*nDk$Ht@iRVGT{vdog|a^-zrKMQ3{@<m9p@0C=bgRP^8(x&Y5cW2U|!JvS|Z&-Bk zS&XiB07fETi?(H+&`@?XT>Cgd8V4@v+xn3ua|tS%e6ZLMVdKI(r@THxjD{14BkOnI zY&%mBpC{PbY3H_4j4?^2Tjf-u{`?1RVV{$>n#<0sVuUISv$L{*(0N1hZBss%ibnIt z#B+^$+FZBQPF_|P@iZD_N+Ad-d#iDdh6yEViE^#U!}5)?@>8dRLWD6U6o}&o?eo7o z{b{W;0ds4%p=#PCl2*ZhhHk=046CeaMlB{KY18wO-4C#pm|zSR>T}};mDbkIv}G~p z(%mpXV`V4aBOcuk$ad<InJ&?(wvIVKNvI9&1S>|WkW;)a<-NbvLH~j4v1D^ji>Lw! zvMLGz@>PicA6}vShvxsEFIcABjE9%<JFtUfWXehgLp!ElV0Y;~M<8B3a15*b@-w@c zpMaic;g^9h)Xw(z<;afY9hgXRkZP;t3)mUi)`j-7Zw_DXj7etCfpKIe*(-Go!BU^< ze>i^4@sLy`Us)_CHTO9jR;*tuXIQU!ZzTUbA!dV8<Z6D{LDLFLsBls7CdcDmEiSUW zcCSk=tnEjCH4bEf!``~^z+{Qe(!SkY@|Xq}C5}xQzn<(_Oy|%1)W*8Ytn8v~rJ0YC zG}MBn%&*%9b}wO7)&Hxu@Lx@gQ04w+s1-6hb&l~F*QAlv8dv3=<fK2v>#g@GYw5t8 zs&kg@0x!+-R2eKa7p8OqUOwu(y7B2N501;_8`U<`=sp_9+A?~q(O-Eb>CgH+*S9J5 zE(gsti{_wro0R7?qWaMg;=2)ZMqh@3Ik#(ec_K!K%ta&~$JO=^Zx8>6ghTgeMeno6 zz-cNSPAYA#aEVA^*>^jR+YIZnu@kf3@dCdmS^oqu{J8n&DDyQ64fj+f2iddwHPiO~ zWt5To=(6R?xKmaCUU2|U@gVrFwC?81*6DkyA1<B~;ubVN0qb7NtW~&3;Teflt>0y3 zu&k=8J|I1wdj+`C{C@VE*z+1V`}#^kQ1}(v)AXI@@uIOFsv}UfVCcsxzr*a&Z$%-9 zFB%IYWj&}5%3{t;U}l-{f@_c`+R|e;Zd9@OlVcLIVI8;AFQh;63d%($9(jMz#LL`n z6!MI_4clj}+h4C?uNixwcxP-%T%3jg;p)|^@j+772FA$-?;D{Vl<R%MEw=Cf_JNC^ z-!L;WZ0aC2M6k9aa8r<MS?yCQko;lS6s@*)OJr3*8Gp&nCYnvjOP$Jc^SZD+7rf65 zitCr}mjU7L#KjZjB)c{7-4UQcU|%QbWvxhm$B0J4!glErRZf0!+}jyZjy|-cn`b{+ z=gLhWy!KbW2EPm-XmWB|c|O*KulH_s3mRub#@)-c;*0dEtX)!Ma>`()5wp-t)M28M zkK!cMrI3swC*l0lZX12miZg?w?E^z$?UFZvG}4R*O1E_6x59&`R_Ye`$_uKB8}*gV zczmZsZ(t5bWtvD+(*GPWkp+)DJ3Xa&DZgHl&xyiHW1P>ZO7npfRPTJtuwxUJ?29uK zT?V({elhtJ?y8&-6V+RPn-a1oC?;`?M>%Tp{#ELl;Yblq`Y_IJO%|_7fcip}ED!a` zOn+{JlAbSZRuNw$2`PrORPSYB*=QWC`EXO~EAw$Ojq>jwzs?nm6vuI(lV1a3Brn7U z2#k1VOE9IR_xCtLuD|j&Z~qZJ{0sM`tO~8X8o^sO^#4V?k%Q*_i@9T)Czk0i){dKb zk$*9EggfT`#nzF7f#(%9>uD=nkvuL+Z?TJC%%tgKM`RJLgoP!ljP;1Lp#h!5t^ZV0 z|E>Q2|4M(*ru_G2@Bdq)7w>I#Zb{Kpmczk8^aoZj`H%g7S@=KlL;L}u`yCw4h67~f zdRq*41`iaSylVJd4$F9{qfu7>_a2z!|Jf5ELhxcH&e-xh8M-?6TiJ0jIlTuYv*aWh z%cZ}&d;m5!9RDW`_}|>lZtk%E9lS&S`P|LP$%N#)9320YAPjHbsr<*GOagAg?~Xq{ zpYifz!;bc3rV?@K#s4uK;vdPR{m)-h9wz*Nh34Pnd?^e!OlCMQ`1)at4b8#!udlR7 zIE$B`q04f1K4)*1m5J<?Zy%gUm|vAR<$HHCUKWrN^d|K07*<v1H@=&5+07}6KO%K0 zN)V@Gk#{KczE@C2beK$AcC(#Xc>pq62Z9f*-Sth8R&;{7C`><!i7OlBG=5C^4L!s9 z<2VAl%fGWz5Dr}@3sF2%TD<*mpDOIjb))mmRtNvG*t{Kh!_*?<SIfAU23xUG0n3W& zjt+F{C6q%x$1=2Tt9#!0O*6A=Wyyw1T+c6d#FD63-&%$Y3;D0!^7jblbT0*B8!LOS znS<fPJ>%(w$x>o$ao2ScJhN>EHhuy$s9TrfQu3TKTG7`vS;LR8;+}h3*#YLmg;iCJ znjw*hj+{VnS<2YJmNVQlrL$F*>o=1SJsI)W>atoDvGntnmn<ucV^E|nThR<*Jx)R- zF+o-Bp?CfLs&G(#L%&yfMKP-9s`{#!kX9WzSq!kD9Pf8?t*mG`0C&XCNVPNxxK*Q7 z450-g`+|Vi0P#4;v663x0bvTU)!EYrW^GH(jP+ZLHPcxsjJpFt#14kj{jJZl&92nR zE;4<BP1v6n+gtD4K&O9(ZsVg;FQ-n4mcOZI5>j?oN0}HK*OIhb&Cj{#qRQ6v^tTL~ zs|!%P1WJ19g|%{uaXze)*)q0-1qe=dx(u@_I_a}uu&(TU8KnV@O$iF65~aZz;G$Cj zgX{pF64!s$xQdllZfH5t)71sNtwKAmT-2IGzxd7dZtr!^cb^~%J4DTH&nwVHn(O+O z1x?D@4<AK3G_eY+j4%M9NxcPCg#^F0@nA1ql_O8%(LamI3Y3)elG5*MCtI)dKWeJB zjlASdub4&z^sfyGoMGxyeDbQ0MGQO9T-wxOLu}rw5FuTsCF9|y8Yw=<e1{~%Z7>;R zG(Gc#We5be3U=I>cYc9iqwJ1!R<kdOsr1ns*m6ogz$teqYI=`nIZ6*IkEiPLJz*-I z>}7K`P!<kIumP@kI<576CAuSE(>8x%WcJAZN92NEX{ntb*03S)AuG2`;gviV(8n1~ zh=Rb)Oo&^HMzL0$g-z2lRF6Ykm<$!qhGt+O04eFSVx+(u<5vcF{IDXQ@tAcdZw?{G z%<;GcDfzx5OK@4~n48e(<ir89_5kC6Q&AR_$E8c^8aX}ihId#WEJ|Z!UgM6*0S1lZ z7!nVg0-F~U!Cm^MSpjO0&j?;bS#1?DzrU`L07py{!KmL2^-k89l}ht+W^4EG(vw;- z0beJ(Je9SaC~|xjSgM=?JlXerhTny`wq;93Pus+VG$kIFoJw!0<Ti~UXR}KT_o<3{ zw9Au)*ih%z+_lZGL}n4^$Lk9N0ulgRw^f4R5g{OZK|z;|l9;$BxP0zW09{h(_`xWt zz-TZGmdzPqI*#Ms21v~$={;zXMaIWfmfgPRga?-W*dxjh1Orq=12aDfxLL!S=3w*0 zL{+|`@A0R?QjC<;uKcv*gKJfYfIWd6tvHT*#MVu8WNwlQa{=lM=n(z+R>(V=<hJE= zGb=m9cSZNs>1kD(8Vo4Q32(hP`3*gmkOLAL2#X>}f|s|rez%{HvWU0xlyJb-V3h7@ z4f~0X0XloH0@;qn;Sy!V3iYk`bT#XJC3#)=iqHY;>DBn#_z)X7!w4Ze0;lg&uU%F- zUv6I|9dFMpe&$P&+HXhd{X#2XEdt?y<SaGjb#bbq9xlyGPrAP<A55;mmhjZ3>iT;# zZ;vm|YqImTx#!dR`i6=E87<z7bHa-9^!{n&fte{xvf2ZmxFeAk7+1=vN#hQG`Qw>4 zN;#4-g!F`Is}W=CrQv*ek!JaJbq+qgkn7(_Gs!avd;?#JRJ8Wj-I}&^R;nnk4xJXR z*Vq&@PzA!ct|h%h?_Tf(rGw7v&wcf$8Ko{u^HGmT7JCxoRSQlwBXa*+?lNlD^L*S} zqO|1Rp6cf}xeDM%4Q2d{(A`}i6DehjYSS4&)abnb2hz65WH!HUfjxb~vW!7jup+Mc z^*bHQEm#7MA;jC5;Csw`7lt}TRP+8Wajd_jAw`ne*hQ4cT<0c5ziZCC0JpM|_?Xo; zSC(yBp1meX_GrS0F6Ux1zoymZ`-b{+vFP0$A!-$r!?<3D#C;e;+?x?Uh@AtwmjrM8 z=p#4U4ByxaOJ=z1aJ8G{ZW<GxP{LpzkPNbQYMcw&^JP-DD@yCu3&@GpV~?)YK#A|s z55jfjIHT$X3}>*z_5MtXxs(mDS$x9^Nf8mBy6Hd0%bd2&n{jww>_(gNAJQ15)GCv{ zHt@Jn$*Jc3X1w5)nT#~b=;6o*d&GAS#Lc+V*;00@TZ;CH*;Zj&VO(}k`5stIfEvq< zrY9ukyz(o2o;>8+av2QyB0&7<32M$n@DZaEM{Kxx?W8^vpWrrW*Qcj5_ct2kqNm)L zX<+&7m@^;uXmq)cPmM6}X+;7y)g~^^j#Thfb#7(0^J7#NBG2?y-MMfKXUvHEac1N? zMMY3^q4JA{_U7uui{`r)Q0|u4?M+csX-Zrs9R#N@1EAe--EXybt@ar=Hq?JG)zDyW znu98B*%&+crQLid*SWzO_5sw=ZS<tclAl?b)JsuO%nS%uV-!I}hHD0in%t8cHN5x8 zFNaB~r^BKRiDQh=@~?J3DXj7!O^iEXnRX_xR&TNfN%YSV^lT|>ibn_{0_S@nzM&c> zxT{+zlf~_wOnTOsVi$5GoPuglAfkD4(7nwK+BCc8u5zHu<hUN5JVZn~+3Lw^K)%+? z>>Mmshe>c#E=@&KNjqHxzLs<1m|?P;d5^A%3-vtI&uI(<FE8kN*uM>a&gG*EXvqB} zuCjmHT^ErO6xo3Ms5Or!PII>L^BE-Ro_}_$4aLNbMR(PCqg{Rzw%Buyt5H<rMzL*4 z`<+mQ^|7pldeOOD$>p9pyTq&6zYnh}>3h=hDuFH&U^%-G&$d=@J&7QB;j#UE3`lIg zxUkR-m-Ssy65!s@b0EZ?Hj)*<6?e{S?)UbiXGwm>H?Z-bvdh^dwpNex_0#eXw-{i$ z4+8|<3hS|!esg*B+>4s9lH${NLcf{j#cTd-Aum#E=L%sLep%t&K6!8S424Z*hM9f~ zE;<fari#LJU(4|kcp%H<TwQDG)>A~{ru^0w`j$7^Mc%RBdpSTHAln8P#=u;vz&;JV zW*0%`1F-`V)9qEIl*%N!JVzw(Er)!T>9%>(f(!@u#QVMKoIBhu^j*kRb2wl}AiS*Q z;lYAH-37n2)$$!pW%`PW;@l^QVs~NFF~XY=pEclAH1`{6pZ*Hez&wd7h9;FULYs`K zkaUvMy9D}89#4HOBC9ayrJJoA?(H9x7t#@|*zKHq`=&zQpbrFQ>?L)5%frXDWbP}0 zECFhdIUHSbX$2|tcAjUHnF)RJLx?L?@+CM%w{C_hKElcIzz{5cc3YQ5xjFTQBie~k zF}vI(Q-KX&{oXuma>6ZS93%cr+qGT0BNDR;aaPuR4D#-%I*Dg^{0t}<wA9$DXyNZh zJH*(+WLTI&1FD8GhmNf(l6VEMn3=c6Tdg@&Vc+EK_~lLN_jA(3rwZ$fN@Tu~ZDdgd zzQry%!md=EbDPZkP`T&6%2P#=e2o;0jMvz1^#*nqu-ts`(y+lq*}GAHW-^M%`H^b{ zIXwj4H!xt{p5_)T5wtkiYCgX?S+9c)1^7X2;D;*>FUbC>+|9qE=lTob`=3fAqi@ux zeGMzC+pq`9J+VAJSPRE(E|J|-AYK$sJt5V{*FK2&<Iw_@e~X*6NAg!KzE?z(n)s-T zq4}qHT+V)?y1+Hrf!;EWo~cI1_3zB@&A<~bzV_go=+_3Jb6g4Hx4;zTy;-t@m2;(b z84hk<L!WU^3WxXdC)|@Fs=gzj`D`xZV6&H|W<h5bqx7ZR{tAjX&HM@`qX$B0yq4-_ z<^`x}Kh|$dbP3w0kmbNUN#vQ@q0kYzMsP?JVLe@Js^vxEXXgBt1@~l8)_l-eH3(ta zIjC;K@-!$YN{;w@w_{PO@!Y+4bS--{Rb^B2s9{C+7a<RxzP<}M#``X}F>Ng&vEx-< z>B?kert6Ax`MuNYVCMrId&7berW6lIc=l>j*2kGM-b|Sj2wu;;|A^}CCb_C20x!x1 z-FQ=fmG>g=#A~kAx3rNst&HD8WpVeLW46~K@MQhlEwRxPE1dy#3&#cNtYKZRilzw( zlvGQgi`}xuP$sl+iTz>f*)z=_jK!Eq9F?}4tS(9w4kCY+?7+Rz77g7v)NkAm8Axf= znDdKN_rRPqh`>)(#P9c<lD&j{K2cA5SQ#>&@>RD{l0@t-9f>`215&cFk7r3r-MUvu zmW}**Zlm=Ple%u51Yeb}c&*`}{=mS1N%ThI>(lO*n;%nVmL=pq8u++jN9%7}xZl=q zKv!9FyH>u+PpU`aY1G}_zTyQ*#0G;$%$c5-9zLPzVQ2SzHZwKZ8J>!lRxvN|K76wN zBH&PL+VH`27Xi1MX2gaI&w+FSLdN)XhWY7`+xwQWufuP*RJ{ul4{1JmSOF{6P+6g> z_lKiw*pTmib6YHVDk@tvcuJ}$qZe5|l$eiqUPC-Qf7(@RRPSH(@NQ%8QaO9*<Rq2W ztOXT?Sg4Nro@SU;#XSGKOQFQ*9Istzv$6c8fBdT&B6^7PAbLe7h{*hC9IV|_8+!tt zXlck(v9yb+nQpHZaq1-v>&|B1JYKo(_MOJgf6#4tXs}L*Qt8Vp5Dm4jph(iW<&10- z6bi(8Y){N_H%wY|&;hQ{J9p%88EA!rp_`0bct;-(iGA{yW=h2N)IYz;F?isBO*(oe zUt5~@-*Jc3N`-7)mgN!@gj0wHke2;&8ka?D>k=r$jgoq$WpTZ<P^^b|!ACg{jIG>q zg73geN?$m$u!?DEzpJ9}e$^eb0?Ep$_5PbP_6C7=?5K(1Zdt1l={dQ3swPMpxGELH zDFB=uYE@-kt}3jJb$rDPB>PR$yPPq`Pu&x8VMFtmTk}>)IAaMbftKDdX@urlV(u_} zm+h13+i_P)`sXbPDlk{&jL4OmVvxH?AB$q{<3D}eBvfO1Q&Osi`UV3#9E)uoJWVZf z{e7z+9Juds7k^NdTLqoDiqvZ38JK&bBE}%(EbqPlbOPJX%!3*^wBLSEH`Mgm3^4yx z4DF>HlreO!XejHmiL9Dal`;Gg31xH1U|qt8f1~yL<y8OGb53vMlA_M`D*_sE6=sXP zKJ*eJ!YYoOLFQ!G=Aq!D+ED$m7Gz4snqZ=)Qh#nTQXShJx1PCv%d6q?Z=UZ6gE~J2 z`{EMvS9PNX5?3a*>{Mc*V~m|TsL(M$|L4k<-#z%hcgBL_33XooCDWU8%@cq(#KK9u z)>D*-6^?C)O_v4vh4laOOh><Kns;l|W>sG(6_5-Z-?$~A4c&^DUqiMs({LF+RizOm zEu1iGa<vgt-xNQ6+y19FTiB@rg*I1r+^I~~(;xEY5-fIveLuh>JTckKk5!d31}7S( z#c7wgy4{88%5$+WtVMKL|LKhe4yW3EQ1l6JDXT)M8q}=v=s%E1gN_2AM_p2x^1Y-K zkG5aw;_Wg#*oOI>)MJpS>zfgAp@E@r>6D>g-t6Dq*io{1b9ySf(1SCie)GmA-P?(` zt6o;c^dss}GwS-OGoSt9f^c58INQW`o!I(dzzWS@b)!KN<ATT+A#6x9Cc&4Bl6Qlj zmdEtomZAXrP8lM64t>SBr^(3D(t7LxHiW)$zU6a&&cF?Hzf)lWP7!rZnMSZz^!|Wf z<h|uF;b$~YogoF@8!$5(_2_r=kv$U^;%C<tK4w8=Xukbv^U$21_L-y_E)jmm&R3d+ z!=4+@DI)V2FY6ms={r(*=Y>$r)UjM{3VEcYE|aDipN)_sq>nI-5U<(t&%vYLZyZ<Y zGaZofYamR0i+wl7={ceq0GH9F#NzThX{7UfsC`bPc$#ZaN>~&ju!)o$kaefh?$2kR zG~nP&PfAi*Ri{^JOHOnaO#(csP$kFTirF!-DGtw+G3W-~S50Tl&27mHY+6f~bq@U7 z&4-so{bGsx)l^xir99vhVf0&)lIXlY_^STk`cnJrMgQ+pu45^##=jqJ8&3VPkIF%F z%si|%^fS#xHU{}m5aqk-r8bXnLI9rI3a{C2DXbfF=glZT&OwAP;Al={wjVc2GjL^b zB@Lxixnt*<6~T|MjB9UZkPbZ&a!qXS1<)p@yw2LuBp5+2arTv#!agwhWZqhS5=2u< z5>ghs1h$)kAFfxVjY6?&mFqAWU2@AP0(3LhtuS%=KBf3Vv3iS}UfA2~-`3Qgiew{4 zi{Dt3-K8;3+my4=8r$InaYm7=7N=<>H@S{GW@At|P~jmHE}_O?kPV0En9x{JW3L1T z(J)}JQ5Nf!q62*&(_fGDzTNDglTPr~r94_s;qHF&;(FDIs=74+X|;c{F4H>9eBuc< z4yk*;S6bDLHpm61W2UZuQ7h>P<?h9cYUgunRK98Fswby<?80an(q*F<T#%|`A)_#! zPH+Ewn8J|(A}a&=sKLZ#ypo>uwjTzC%>!lM*$Jc*BCqo(tcOPQU!zGY%R@PRbdp+O zlfe-b+Oc}oF2s2mDC^-H3<H}%B6Tu2l@;pTwAf)IEuZ8GLmf4Q#I7fv%x&kiTqM!5 zn$ID~f!qQACxGq2L*<t=50FJ_{$i4<SBpd7r2sjZE73|zA^5_vLu^j{+9-l!MHGHR zRYyP4Sy0XW)}Wv#?I7?aEQ?8iMCTgd)92^>S8uqYOe4)Kbr@%7t-fUXJo_T5AE_Y# zPsbPh&>X2nrkoR&ZNtAQzZn`kt#vXnIjG0S0YN`py%9k0Qr$be%$CS*T+OVq63sEJ zy~8PU`CBeJc1rA~wSbbBxXOW4rZ97N{%ln^1sA@tZ7IUZ0U@fH3wQbA#fA4R+DL4* zM4=_=1<B_$#=td(z18qt0nw>m>f_E+-yutSkx@MEhg{_L*KQ?1%kKxoYnI}OP|UG} zsI~802^4)fEz#tGzXtWijoLkJ)d%buftljX!?qxsJAkG$yNc#Q1W~r&C~16X^N397 z&HIj+v&NvH^f~gwygTYilxR9(^=>&Qxe<g52XPHp>2<Wj<D>5$j~S0VPrlLQ%@L)q z{njUwjBi@I$d^|g8L7IH^*B|SvNP;p&xE}+)_<t4f9USmw>X;>*7f@&eHEhy)D+K= zw@F9GhW?ly{UT3Y@?%x5HhHpWyX>7W$#jV-k};evop5r7?nt7~&;Kr>_g8H1KbQ2d z<3Dnj^P%jSQaZGvN#a{s!H?5}7Un&ITs)lG_pD3|$e6`bXhext<LpOdNp2(06^vX$ z2B4ZwX5|L!PEL$E6nO8ohrBa}-3}z%!HxCH=fxPyovNu01C_0`?m?Lg+5}ZO0@(D2 zQm1me{6(y`xNYHTR{H6UEtIAzfh6$AU!k(S=yOrSMaFV{(nCJ>CRIiD1dZ>UQsk&q z2emsDJF<g3=raCPEq3m=cMcc#;ZxAiAb8bU=G-p}cYal_5S8ByEK>2z;+DKCVTS(G zdNVUKT}3MUvLwG=*$P7Z%Ml1(RDJoScK`6>zv?P$6>V$|idh6}A8G%(2itH8Zo@@y z`_#(z+~op{=afqsnrvuz>Bg(I^vHX%Nt1|_S32tWzFgW>QW-_5{}xN&`?uwmxvw_m zt$#gznt%ko?2fl=BpG+m*lqz_4DvEE%9UM{c01Dkb$Fokf5C|nxl1#I)zf&ILLw{k zx7<KVYRaVX)<wfVm~Q{>dH(kiYUMvdO#IG&ylx(7d$k5CTUne5xV=>n5EArEd7X~0 zNH_xDWtpDls1er;o!3q)E1ui^d~;Vwl7F{}RlG*A;A0iQ3FaM2*#59&Zg(K0yb)!* zxMv%}t;sBF5V1h=0uI6CGhCbtZO|<7>57Az25Twz6KYH(+MIqHdh`=e43L%{-V(A5 z**&{pdQmMo7!MR}Xh53U=O+%aV*sjAuUQgQ$(bP!V`G|%)6E<YCCZpHTLzsg5|hJ= zpgZZ5V#<}h<fM>0U2blEUsEn3zYV69xPf5!K1Ee1$YU<NEr>W?sAt@{&_^7<2Nle* z%AYv4HGUQ492C8su0Y~o>jYs5jtsilOH&>x5cd`8GWRm~kP>TPBs?gdunNGoH8tH! zq<@$d(^MFH(R>C5ISP5kbmB;ryUZQkd?^|fL6%1;#}kR9*V&fH1$$YLo?Sjf1=`e` zoDGB8%y-A9dTy>as?D)rorcofU#V6@w+>8CCu+`4Nv!aXAB7tm;^C#)dE%+9%6xW^ zQ3?5G@-X(0ZxFk{^?agsNdxAZti4Q>Q5>Myqad5Nq*xvM#?ej8FWj0VKSWR^z5|xG zWQT)z{{&ciTI_s8<k5ADF@9MV-fXhFRWUwhpht%e=<_}XewH2e#7h{Afn4z5;LZNC z&glkix$%eK#6a=q5mMw&X0mdw`LlW%)@^@{(B#{CawE!<W%JHGa>7su5W?aRzMO|L zPz1@0%y#K;B!#TIx$leb65>TlO<33+TY_q1TjmqytV%QsFj=ssW5-?=k|#0tPysM- zzp79aGgJm!bntexocKW~RVdUQ2H|AbUZFkx2>>D&Ec?>7T7xMk#*;!XkacGGu375n zMRm4oBmJv{cQ>oJMlA&L^{f?`?GMwYCU54r$%O7bE+TYx7aPxVG1AszprLHj)0LHW z(sGTPY_X!43ar1b0P3Nr@r_0qq!wUW{ND-rM7q&_=L{NFsG5R{&Ev65yVb8NQynIY zO>Krtbf>)-@&N1-zCN_nfqJjBypJ(+E2v0N*P|`onb3T=x$B|V#lX_tW%V9hQ*-KS z0E<U>FDXP~^0{6C!{0_iGvqGP8yVlut23UMQRPp-g|WA>nMjdtff5*F&+kMP!T@>z zA9wPq48la&bii4as36}((>C`B*<A{t@O~<U^u&sWfQk1AtX))mYf_GAgnn4??qJ>i zh{&mhq542yBpOv%pDO*rA+r3u4m0G<R}ic=HhzwtfIcr5H^|5z${j8Rqvr&8Ew>y; zDX_a_WRsmQpAlg5aG<lfO{VyU+;Och`9A2O2QBv(8}Zn4QX+!AUF?eGRIG2tTv>xj zYZLavidD((96*HPsblzh3{-Di@hp`*E(vIOx5PuJw%IDQB99+&a9RFAby|#j>hN?2 zR0-puT#vcoMbf#lZ)2C3G8N59)dKHo_g2(w=^P;(Dvv$X@B$0J<tw*#%SWLyEec$5 zNIbT!wc!={einZgnahd=8Icf9{A6k`1C{wl^T=&2+rz%ep}=>6iz<PiRvRakfyW&T zXlAB)^UbUTLo}W_;|&1)&1R=T>%0<42ctlli4HOrT|9R0{1RYaa43ZBbo5%>S!Jc2 zuO#y;kl;^1DUzqD$J{KH^!6ePCkj$o#%B+H)Q0VVlx{oY9cyOG2*urpdxn490v>-n zSjA9_=SW2xjBAtGxdv3Gj5W7>n@q5ZyC>8|&+Y4oGDs<E(A3p+6Bq9xP90ang>xo+ zw;6r2+Rh6*_#F=~a&;BB1;ZKe3r`%U4mi_)0`#_eU&^_ZdMl#MSBN<ASyE!uUGwvk z0(Hq#cP4Inzbf#Ryfe(wS+!n7Hn6<A*FY2uDEMyK^+sR*Sb?y57L%xGB4!Qhi8N8( zxGH0#OeGAXcZ7RfWt2D+ueVG;szMU?z4IlV8e7>+Py@-@AlSYlMa{j=l06NFVD?nc zd0XtqTI9&ww+h?wQt@V<o5wQbUl+N7rr+b1F4mWN43MAjw~1?%YKG%i<snhTkVeCk zNJ;MA7~HM_8IW|qZ_v%GbT{(xZv2{Nq-R0~GEMp(NlpU>aTh0aPxuZtv3Pu~07>{j zmc*{)1^_R?$PD${Kf`ma;GDlp5!6*4G2pcRo3@}-k7S}Wxko)sO=8OeBJ26f=4U3u zk8QgR7}A~RnA~W$JnXBg$owkWi=4>SR`67T!KfrV=Xh>ZZi*q@4Jqh)a?O;Neb*?L z6a8w)VyboXGl$KL)QhJsU?B_9M%LPt>O72z$HC043qwsv+=LAD!263+AA{WcN8d@F z+doN8PK`bklMvGeiDkD0hjvcC6o(~}Z(DV2e9uO^ThCn<YIvQNdCzDDqBYFSu3hQK zV;LiN$7!z(_KhG_bTZGfgPtRtXWjKJ;zbaVv~A*PmP-&$b!>o4(`_9(^}ku;q&b+; zNYNnfj@;ah)EhRslXOFsI@uk4huN%~<t?fEMW&!;C7Du^<+q{*BhY}`c;he=@Pw#y zg=>9DXv90NT5<7B-6!qAulK~~lL|#Q{RW;-qacbq+J*_EB#YSI%2{&8V`vt`3M~OR z9Yb|Mpy+7X&lM*c*U#{n(H4)4Fjeo+s_M^s65P=mo*eBguZT>HZ<tYCzld20M7<gw zLYs>tIxMBGXl7k8)Ez2&R^rL$ROVcE69Cmc_>$D93$*81-r?uF``@Olb?jhiUvTKa zDDjnWDrc|4tqTZSl%pUhd_k6KL7O*oU|4FIQ8eUDa51~9UtVl;DqYJQ=}WhXYnsye zP8=LS;ZKN%PVmv!LXjWp&Lno?rhMEG_m`wFbWR=*`XMZx4NSOMbaq3E*OqysH0bo) z2*xYI_KR*Ah~A-1n7L7pAS@;+D*6d9S*d|F)=HI@rPK1HiK`u0b_c>oq>O#E#+GFU zu)=$Vzr8EU8Lhmt{3A?TA=_NH{rmNWvHyYOmA`iG|5l2)z7d2mw_<Wn<=2o@yJ=IB zUNJ=|V|QZEu;eyl`hmN)1zi~j3C>BD5kCil+?U0f<Jxau<A}8ch9EIByGXXW1*dGd zo3hqp1!mHk?lu=ju`*RpM+R1t7=<Za3vB{zS@B7cq^VRQQ(d|QQO`r-t4~Ym?Taqf zb@3(TJ{bdL+xGAPzw?@PF)jde964ld*xm0r#wf$Yr9s)VJijOlnR|LE)@`{uG33d% zmc9zf*)=NNwJG+|&T?Gy8C~jOSpokq_TD?HsczjD1_4oNf`F8OC?Fl_9Tn+d=%EF$ z&;o%_61pgYbO;b2V1Up=2k8)sAkwAx-g{BHg1EoD@4L_5XWxD9`QCfZ8RL#S#{Mf~ ztgL6Qxz?Ivt~sCQR~ndGb`)sHHWF&JwtK+b_~rwBpspmyLfp7|&!%EORpmEi#^Y{I z(xsO!+b}z9>O4<@6Bt+*@_{kw>NQ<q7We>C_CRSH(l}qS<xxF2C-iNWA7>-&?Z65W zj1pI;kAlWvm!eh|We$5bJr&QcZSPBXB+_Y<-WR8E<j=-<hm+r3YjkU&#VTk~r~MO@ ziQ#v&#~+wXveiEc!~EMKmyQxmq;XUq<EA8`H~7_be`yiJw!=27a1%%`AwMo(=Y2oa zx6_M;^p+|W^$BvH{d(qn`CMBo>5#H=lXXLAAjGTK%k|s8g8%iv{$Cm-f1ULH7`z%C z6s=r8W(Vs2Tll@3<{BJFJOMqwC(!c?{|<-0k@feS`hWTGHC<AWNb`-b_kv;))dyXJ z>vinUgT4s*UV!jxl&-V9e2!UBYf)Ij$M%94z-aZiia|%nj1qBJt1^%|ydU9v7c#iv z|58Ne*2s7%9!owdmO0q5wc-Hf79{H<XC^u#TJ#cl|8Ke4AYGsG8`F#igK|i;RFCZ| zvB3(6Ef3fBi%tNcrT`x=csVugXDgm!@Ukf1U$YQ_yINinPn=QSh#(pyT1j`D-S{{3 zIi=UkW{#~gS9TtpAL+=liBXvq-EcjsBa%7c2k(tabv<RAmh;sJA2lOY3cxl}C&vG+ zO28lSxBdj?7yJ(#{+~@i-+CM0P0T1s<<Hh}OR~8XTgb6I{GA&*eQjNgMiLbeR$Nh- zb|Pj_k;P-AHn??{<`3c~IT_iiYPe#5ASSQ7P=F)Ce*`zz{CK1RFxQ#kk<qJKmeD-5 zZ;)IvVa`(jxZ74yn~TF^ks%QX0vb=?(OG=coyqery<MT9QmO8o1%x^OH-#@#+{zOH z%O_BW#`5BM7XKZuw@oFo{fb45@sM3mwID9L3GB%8=Bg@{g$o?-P2{fUOlw+FoSTv7 zq3ZEeVo-WVTjFgr`=Pg>Z|_)Ph>T5X{g9!UTXLGDG7}e@GuOeoEXROqw8=A7RqZuU zBI5XX_K~GTiM7n(vJQO#ln=_60@5_3Jl-b_&x)0OM*~?5JQrl4=qp?kSgy6$EL@GU z-ObCl32y#ILk9h+YJFI#e%#m46Lid^P=INxjB@CQW8Y;~{(1YBe@;FAbF6Cjp41e+ z(>p7}HY+PLk%3l;Ti<h^ckb>YaqFn-b<R+Ac0O9`V%7dVsSzNg4!nonu`ZQn*@Hz0 zeGASkVRn1KarVM$N+=69G&mqoz?EH)oA03rl%KzorFKNz78J_vI5>ZAX&>wdq5}1e zH({|$uxf=)uqnS8d#H3|)rY7ClGzGjR@m9t(2!GKmUbUdm7`ebFr;Pti4WZd$!F}l z0&UN0b)COr9d!EI-~>LX0Iu-xKDe47Ld@GwK~Yb<2c}A%_9;C%scA?nIc>;gf-dN6 zrSQVpy8FC|=nKFINIfuPdKxb<QhX}UmE=2_aTpO25%Os=*~g7z6`LFVVC%~D5-Cii zBHnTPqG+~@_i5n0;eoP(&H!S5gSjkWDYlO|+lZ}ahzv|b#RNwPF4WYoIz69dsU-;O zco_tB+;IU`JrhKk3vdVZ@J&0iirYTl_)Huqhsvonj<kH$G-$d-rRuLDilW|^y>DY@ zAje|0DE_^~u6<AYG>iWSRgIR^uo0ffQrw1ybN^8BRVO=Xu0YOTtH}Sh3{{f&o15|< z^51&@{5Dk{>&Fb$&eA9RCWl8#_aB|`|9|YyDc$M48ISq;<_V4<9Z_;;{#P*Rgygwu z!^43J(1=n|PaY&MkBZqX?iZv5FhKW)Y`9n;8W*y`&6POlVyP~IrEF@EQtDa+-09?R zIa(MxJ{|{V7nKi-;pDUkW)U2R5e|3nL#A2plT2S9Ah!{qH@VD?v2jk(l{_}OJubxz zX~c?jGua4sJRU2{d)rBE`8wvAeP&s4PDy?c$ddgdPl95f;HZcXI|ni-v3ECS^Ki~F zBg11F&Ae|^AqQNAYrLGuM>lA;X$NrF)G8>xbzI^r%CFy}dg^Csc6HE4KyZv8GkXOq zePz5#Ub~yQ^Kl1(Lv(2B?kogkvl?7j3eGASm*bmZW~PEye!d`f-{gCwKFV-gpwIFg z%O7WEVgF8DBKp$mDk}#Qd00R7lPzH2=yqXYlD^s&f58k;Dogv>&DA;C4w+*z;TuV! z6=MzB$8!>(1&vYg2JXHCG$Sv@i+7nqT0K&iHmEn0fvvJMt@gZ-==6vDsc)gd996fg z%=zSiaMTil(K(@F%CWI<L1Vq2b58P5mn%1Fw-$_y+oiaVZ+9*$mP|y<^aMRUH@I90 z-A+4632^Hy!&sOeMUr9sa#(qU%ItzGyS|8z&avN%`ZCzhaTT@UIH0>+Yyh$%(A(ZL z&cGUy^UDnFVq80=p4&h?^KR<us@*QpH)vH>C*u~7c2#0RO4+0dkr3G&n2%I4!kvq2 zSstBhO{FQS_)Yxy%0&lHMRK^3lFk|?7uV14*8;QYO@g2yeYd3brLN6$yV+H2Bwaxq zyMAh~S#X&F`qUa4TFf~i3%h!{NnJ%(HOokA^<>Bomge!j&0VHt3|63LD$hipNAKGV z#CQ*NDM&;sFC?Z=q36iDlb9U9Y=(Tn0_+nvS#QcxQT5AS&@JW>#KI=Fi-h|PYc%_8 z5ht`pMnkQvx!&*M)+N6`7w%*)m7yq|EG!y5J}H03nJ&_=sxU?wjnZUhKAQeyeoYpj z7<nIvD({9OC%5mMo92qEkd{#+pJ)n0kMaTWUBwNO=ml$>zhXtYduL<Uq18tHzCv&6 zvgX6Xco7-j84yF!aTpoJOB~{qAcKZAf%~Pm54dgK;V7?pjk1hSu`@GNt*lNsDWxA8 z*K2vYw3ZW28oCqI$wl1f3mA{MzVB2I)VX8a#iqk<;nv{R4NG0zn5`afiki9r!UZ7C z%d#tDc;UpaPUiKS&~U1O4+NEA0+W|elC8DbmrQiMZkL^tIOxa~A`?@BG+SypMhJmA z1cbOt=M>Nc520FCC!?x_7~=B)dj)n%NWaC}yamLe)JS}Ayt4_H7L2OYhvBf+oMGm2 zm%&rL!B0ITjp*bcOHP!2{J0miRnMjSTs2UsY10FerBo5+YWM0a9a7K4SkiyWx45L| zV>xwR&0g_#H}}o+5$<2uJ0a5Vx>&upMJ1g=Dbl4r%5iBx)Gec+OVlLhA6GsA!)2hO z`vVi(zsbM3e|S$vlg@GM$Ryv>u}{f4zt(V2b+wx7{nTACX3cdA3r(+O(5zu>vyw}N zGcZ8k>9bzPc8DtQnW`axyS=R+n#`IcLCvH1(?rq)iYe`^9+B#UV(wcMK202sb$khN z6&@U(f9}TaZIx&@S&~*^TvIUzqa78^E%sY`l~O)Br?T~vAtHU~w0F#?PhZ~|zMz0} zP%2DOp4ZV7n#fC6yM>^iGrJ#>)u$vWp7V;%uw!$MXIw~#iD$af$T~VsZF1S#w1a58 zI-7{Nizw$q)_+8X`Y#?kiW&C!gv%<OQr3Lg1Y%*0VlV*es%(5-m*xtogDdzvP*;5k z@hP45QJr6TUT18!|FyhEx|>U4bQRPlx>hVb0O_>37`qI~uX8#b7<DO5;#9dnM%-}I zQOGQpxpZJ{`KHjl+(bopZeZ9Yg_{GhjbEy(+fGY8TzzBQ!%VVSn5rh(g$TOCZmkIL z7K|)G`=@(^cPzX{RGkiKbNh$y`OT`!EHFD9`6^d5Su)HTb{2S=e|4NHvK_104(I19 zyT8KS$OgY=*~SL*CSq?E@PQVWBtgo+*4z<041xyRn!=|GiLdEvY7H-E3<q>YbG zIIT~OFT4(_pU|I!yriN}xahtcm%Xi+P0)-<C1@JFY;+ov`m$hOJv#OfW1cjwKV0b} z2uz8i+UnFgIR>^XL{!@EpIzvTTD`0pH3V9kkRB(1geVhtLra=S50-Ypy%u9L`n6Is z^_3RRRh~VXEJx3-ZVe><l&C_y9d9BdNM%2ok#lgUSswB!tOQv)7w4i#*d$nwD05b2 zDyL;^ZC;0OIzpVi>_%tuYQu%&HR*4uXKP=Bi4Ll(sZ&#AH9L)=e|=B)u5CBkRH99a zUk@6HI~6#ED&jje9Gs1caRH5u<?lPPM>=Pdh9kBI{+C67t>J&c{o}DJF8iaZBmu~& z_ad~*#+qqEgE&_9?Nsa85@a8&t`9Chy@(bxsKHk_ix`d!WP{&&Nk9KaoI8uZ>MfvL zt=c*3*@R931{Pwl=7g+z5a;aAuC6vof(Za5;5z4|F{l%oomE^Mov@rGQ^0{q?f50$ zY*HT$*(8dUxiH8<bX9py?|dsmVvn41oeU-WZH^7))IO^zOl(6o1_=*^ajWV!<HA~% zdBNU3hKX6!*;X@pWP2cmiRiGC&WBEhPZ_7$?VP*rC=Vp2uNEqf`;>Y7Z8Uj-l@nGk zw!SJuB(W0L)8Ie-eNUQITOk#w1ipns=awFe1`ggq#wA6aQ1cIN(>m_eni$UuSIO5@ zSKa5B2(`DWaWt=W25Qu?O2^i2rSlF>R;Nt`VgEuTbB_16u5O#orOv!gWRpr%Rdu^| z%wXP5L=rcrFDOL3@Jv~$d%NE_68fOxqun07olWh$;sNg~`lG9~tk&a)I`OeGuB$r4 zU0ueZ4x~dyPr3`%Y|0gEW1?I8Tz5#}h8E*PRsy@HY8EB*qmmM|EuCz;rO}`1h=y5) zMFZu~^Qf!}0Yu{M5JOe27Xz-ixB&=+x!;0#;9)SY{k;|DYH0_~O3{Sz^-+t0oWlD! zdzG$93Pdf3Owx;$hl3!8(~1q(b75Bh=9nI+Lbg68b0!n-N?P8UQ(xMz^r@P=fy<)J zvrzZj8pv;RQs8-k2UDI6{yo=u8xiyaHA-Uz3GhWrzMj?wR*v`PNUbPTOFq<96u+~f zwjSz2wDdWeoFtc@uqLmE)=bnS=yKERkG9Mxmx^kZv3zr7-REDu-CM;#FEY=Yzhv7c zh{IyMG+6JW7ALCv9F~cfY1HUKwIWR_rDcUrA&!MiliOmO8`k0>U7d^#%$r>T5CVtv ze<NP?r=+iV|DcW-{&jsC2#G{qay@;SS4Fa>#xu(_Wt|HTT7^-YOT=oG-{uo;zm1;2 zZ>d+Bn5{VXV8h1-eJDXFnWwDzjsTs<JQ;~K1r2jK(>q>?VEYWg>;k_R9@;iepQSm2 zXq0w#OdMbbx0B^~RLk|9!NQ5KM!Kn|A(`!^+}}kZYse_;OiO8Ka0ArkHcz*}-jF6G zNH2-*E_71lo1Do0>rW{L^9hl?yOjfo?5QG<t+TQNe<MyawL5h}$8;qZQ@=8m7@wtC zB7Nae3T+f0WHeHy0>2fB>(sVl*CeG@FOfnYBP@idh6!$|QWaP;R!vnXoouliQJ(-j zXd>W)C0PHLx!HXNgRcu93X997(XZoxK%a!^n&Wq-XIH>V2Id;~cy6kzU#Txt({Ol> ziD2n6=L0y}yzi%aZM_trd#ecf*x+7wl6hoWZoRSI@Cc@j{s14)KiGk;W4!u}D?W7t zdnFAxyrj%n7_TjmlZ%3!Il+|ygVZ#s?lMP<DcUYW5S|7TeP&iYzBPEkjG#G_DT{WH z>u!7;irO1d+#`n>pL?ckdhSD%M;F@8{G!`aM9FPiOQ=#cyQJ8o5MMnY4Ce{*r_dz$ zsYv$;vHz@H&!(4q#?V}n<=n^qy{X?b`z{wdp_T)F6{-2mMDT*^{9}P&LgrtHik1Q& zD=^d-LAmN?SQRNp%imij$r;PYpTL$v2;O0@Ba;b3Tk;j?DbC0Fh1`Lz$e?UhQhe@g zz^W*gLf)Yu%b)S*4qf#@m28D<BSnisOjWK&*10r)4BWI+arJ7IP5dAu(wir*Vb~CC zYa?{%W8u|0OjA4`t;};^x}N2?i}-N0mGz8W@9^8<oS6`dvc<?3g6+$1ettvB0(Rl3 z&NLe0zFq>Aj-4Nx9<uWcjCXzzulyGx&1SbaWPCrh5XXzQP-;ilIRR*Z2Ty!k7Fu?d zuBt)bl}DqM2_Sm_%&pC@I*~LO-A%2AwQ-}ux)3(c(HnsigT34g)&!Pdm8e|e{^t|c z4y~miEa_Iuz?*X3TD`~w<et9P^oC^ILz5@`By&K)#|?Mu+WIv*MAR6!LvUqVHzMRZ zmG9a(#g&BzrvfxuNwK94qN+8#)is^<V`q;y=vd{Il@vZ2&ug0<Ck$HxpBm*})JIDZ zTy`zY@~?OW^{tCXxf5=4IBR^Osjp#r8lY^k<w4|qNA$^orJ_W6JCMuSFL?v~Lm^&f zg=um2xt}J%P*F7lhqr)HKhKr;u#S`qYKk7{O)Cl|rv}Itds=SS4o_^m#7Fw^9QyOT z7vAcZJtkmhZEAHQRSn(i^rY;@SR9_M#^gtJvSL`)SA;m~R^13ok_avQ_=FM}G{evF zu9(QDPjjT!9IL4@^66x}HDk90-n{QP9A-aNqTZ_*-F9^rs4R+A&<-J12&F7(8n3z} z6S4&aXC8!#J$+s!6C)p^C;QvDEMPp>MwA;V>kGnGO3L2%AI3<0yW1JQl!{bfq@o-d z>D9G5Rf>$)9PaZ?MkLj8)rGn;t%?q{^44lZVgnDr^b*yQfmn@gzGpHvf^cmLbG9fH zJoSVuP8;mXP(=%pOFS6s*!V@j)!7lrbh`~ad_@-t(}$mVfhvB`k0Sk|=yB?gX|98d z$tgWnlBxs{wX(JtyTPtb7JQ$mCa*A*6%UP}M3$NX2%1wls(nB+SFHC7vBy(Obui`0 z35e_5E!3RVyqSJ+Jy8D^#L?P%RgzBatOBdaqAUV$aOm#OY)QR8JSQi}DmdKdVt0P~ z^C{gI#Zp)XHOYs41$Fa&vp*+-NpJHyWKEM`SQRv%Q<*R-<dQyd2t2xY#{Dw$P@Oa; zL})kKK`2HKmOU2V4S4{%t(BHm;Fg05^mk?<Q>K{z5^ZilP0Yz52=0^pBIis9<XU)C zeQ5Ezx98=@v7r&eaYH?fvDPF%RvUAvaw||1<{M*B{yGq{Zz7+l`Y3Ve@nnDU{)6D5 zDjIo8mn**Bu}OkQ_e*BJrceL4|KqX@wN`fXi-5yd!F2j!C)?ujB_8p0$;Q-Y1=&bh zL~#Q*LZ<+Y$+E{Uai;#bngnrRB8%dAI}%GR=bc+7220udTZcM^tc0buXH~i~vz_Gn zo>mQOecC;MM$#mU4l9|Sq^P>K_moCgy;gS?q!V3gAF&~qsh%RDWCu_ibdQyJJ!^gg zT}|0IZPreiKF4(J(T{+)rK$a&a-gU+-~pXiWZYK9WdxpS&oyQp{DmlR7HqaXSEvp< z@vNi#*)ZHanvC&~Cq!%h)=a%`bVebPMY=lnHqZ%G(h}6V2h|{n5$0((jf9jM^+iCV zj4D(W>rbMbsNfc#2B}e+vi&~afSuCYJ7)uXui{_*n&@_~*=Z+;TLBdbt~2uQXi`MV zTfej^kwhYWj!axke(Vu8lf3{P7t~kCcR=&gEkOnE1EDn}nczCm5^wq2>wV3$<HG*J zecUV;b?J`8F@g2E_`bx%=#4H9YqWAbXE*&(icYzF7FgGd!@|Xy|7R+!)G)S$9Q28I z8GdkPyWJ)ZPa=3vU9==hA}HT=S&k7G`eKKTDht!xG<tm6<3nn<ptm`1>({S?h>{Qw zT{b~P%qFZj`*DMn^qt;~Doc{#Ykcm_EB42>abBZ(2)j=0wzW1}{&JE(xv;bZS#y6_ zqw95am#~K{Qkm0ysjEt6(QU2OD=djyR!%6r4&*E;x&IaDgu}c?GH1noMSK++NxCgr z2Vrhm`D)^c9YWOiDhOp&&O&lyXvIDnvOWFzyzXYFBOpd9Zk%B11hD_kpH)$sHlbZ@ zwT*h4@Sz!<In;fZ@ClUtDd#%RtWZ~AcB)f>@pJMZsI%!08H^5X3A-WU6#M1^uXQMc zgDy>8hPxXkPwu4_e*jqmfrk7q(hed_Y?8tzhsQ%#;Upvq@Zc9Sk_Zp`k!BG2NY<-r z{9N7Ps};9Yd#06Cf0#h2N_n@g-A9AwueuIW8^g0}h=!hU_KA`DJ>p*w2O5BwO!X7X z2oK9w_X}4*4BTuKe0;A^aMsyJ=fU6EWLyZ&l9Tt$baa18y8eaeN^fO{_Z@*pCb|Nt zyRe{EyKJPd8a44MUhCXNpw`IXw!^}c&7-kc^%Jvexyb8i*2JE4`|b5=@b(=gb#B4q zq<iaBK9JFcu?EgBTmW}|M8mbMoLY)DUc20YF~#HZ?IG&pT5apD^ODx>jTYf8hKf`b z@NM%8|H2`C<1V4`t<|^+eGO~OQ(w;3I%;M)q)&h^$iY(%AA)Bz9G8N=GLbT=8tvHt z#<Qky@aO_i*H(s2oCpsvsA$r0$jp~sQeruzVopd=Q0z7d$*O0T49U7Z&s6FQXU^(* z{_T<@s}xl#?#h$$Hg(SRSHo8s12v(pL_7iHJh>j%(1z;e35oRR`z&2w3`hHfw3l65 zW4sUdc&3Rdyu<#-7P?Y*sxNO`FV@=e;BFo5FN*Zuc2F5iQ*rQK^=5w*(W}CgB=5mJ zp445mJl|GOHj-Z(siV}zaRkCFXiNGlzAASt%!8)TW5R~n20~olFeHRYJe|Buw{0<z znqf-SY$O3!k)KxC>%1XL6+AuQMqr;(6tyszr)tC!BUKh%x6L+7x`E=S#@*aFR`8}d zWYG=rbbRkA*T&tcQQ4E?A|PhLKF?nf|NcYAnd2L}<)d*;uJm^MEQ^E*vtrK~E`xSx z?oBcK9dBxQ#Tz<5G=TNa^SnAKJS&`4-pa-WyWG)GEH0<?lktRZHOI!<HhQShHioQ} z?RowU?_d!e)uo2rR~_B44$*XXd<5kS<)@U-3duca!vj!{Uv#L~#;zBu+h#<gL{!cs z50b-P4S1s2ong8d#Yr%!@hXnNwwZ4wwnpYl>AO#q8TELd#i(CUx*<mtszR$Eg%z;* zPARVIhYU$-l6?3XLg*8Bk0E<u1h#w-kK;I^_#Ah@NzJA}FCbJ^T_L3vBGXhN*vkbM z8~MV<W#f0FS5?TgBP4k+;?|u@k>@dL*(d61K1HaJcEQ+gPO(i3OXluHSM@_~OBI%F zD1nG8XV*dMe3S`0SrzS+3v-ZDfB1I1lHXyuFsxnPLnPJ>B@-0aJIyev&6uWps}QUQ zJ|7n;FYR6=SQxw}e%U<mWOF%6?erSPybUm59i&SqMy+wmfDN~1;lE*;$_BWbqjHyt zhd9mDd?q-#8*j@+-yx-3&)Uu90NLy&A8?sc-0_T<%@yUy2uIiL9sa7g|LLBWT4ofx zMPl9VsNm>RcMVJCn3Iu*PbH2>^ksfB`f~S-Sj=z}(To9N9@y=5XwDykQ&+eSyUe2V z!mA(TQ(ZzQnKo<=h)`D_(UoSQMbaH}J+!wUZ8LKrsbBBo)W~lVEe|fr5)UG)_3=5Q zObhvq8s^-tF9<V-z8xZd?^B;DOv~C>&u~0>PA1++1uZB0j2Wgz!x#&CFGP>Jb`sug zt*zXM1FGh%hO(Kto&t)GwNaQi-!A!zMwL@^rahHdITLp|uDD+(=K>(f3+(VyY8&Mp zHznHZsi^PfrlAI1)thXyEOI5`W_;}oMiQ-`%rZnmdj(d9MO&y;7X7Y#REFZRTnU)K z?hJ9mRrqmjK|K%2B%>pD_fwVzAcIW|%6neBh3;z4Y0YC<N1}kQ?KbK_N<>z&xY1pV zL}QX|le)s#s=-*0wnJ8KVnsV^Z!(2hW8zmz^32T7A-}GZWrbiZSM}vNWF$-D`k}-d zxj9Q8Lm1r!+zsi$TbM3Zz+)c;+t_WckU)ZOZ)X5tykf={g>7aDH`8T$i-f8?@T(@U zh4LSE^~@9QL&!(L%5Y8YjRkYVSo{f`U@BcbW()yqecyCgBs=;#I|Vom+(%82pzjcJ zKQ`Ltj?SK*1|RU5#bTHsd1b&d)1I6UR(R<P)~09-U1yt@pv2^~wr;G@b-MgSG_`8= zHO2FA_k>DKAOjaw2;&x{`}{LXmrhebce(5y@1IL>3cv%cmj>NS?{T%aizG($Xb2S8 z;EKX4+Bn)K_Y*4yM}Ec4VpykK-1{el4V9<|%$KtBb8Kbjj8<M*3iPHU&D`Xg9TWW& z9gFkDM-8@psA#UJhjg*_8Y;Dw?~x%`ehY=T*f#Yz>nK|a35sh{tlDLhRI7hpA~4rv z-Hq>7>$egJt@^a`M<@dE#SO)xLo7r1JO|ee&iDGoEBguUn>chsN*M(_I^dEP)Ci<q zC|c_j>S7qALCt=0BMn<^H0nao7XB<DTjGc5+&af&sM%s5mRCbg!GH8TMMvA@nKIBd z*F)0AuPdCKxIO2lI|0rKIN>z}^KLa}d(iyiWZiRtS1;kcSFyph|NhGGgbPu7T>pA( z)aT8*FGnHrDQddJZQnM{bgB)AX_1Vftt1)mJ_<ukA2V?(s1x_W5YiR%tG~67Fzs$( z8DnRgg;z3@=Ut{hXo{;z?%K1R<1ssW48VxVBsP^+4_R>I&=tg-Tj`DOP-;o9$z$%e zlr;aX>&_a3`8YHtd~mMF@r!Fn|744w#U5<<+R@uZ*>9c8HKU6Gy5{wnO>wh1#j4UF z*s1crLPan^vW+JV=VW<CL$sv#fA{Lr`op;kr1VdaEP^PN+9S0ESA*XRmNzwNZ-O7V z@#qkd1D-g(0sDQFq#gPCs1IahVt76?_XC%AQrmE3q{1-ztLE&rL&2r<{?9R5GLJ_k zO$(Sm&R0>g)ZKCMTF0c1&wuUHzxj`Wx2z*8XhcV2++alOzN6OX`)4%UD1Xn3m}6ZJ z$$#I9%0I^amoNB_fuxhmyFp((IA_5Dve;^-Uky!d=Q-(?%`2C;=79gc+qC}}_b2W! z!|yH22PK(BhTlPM61U@MRn>lzH8S`^YcTfj>R<n;Ow0fvc}tEe<Os2vC&M>oN;Zr& zG<p|gU4wcRd3hfIVJEP!?EH{GmbvY@c?Cmo6S$!>0>cqf>s#v;LqGo2c>iD-7k0N~ zzGQBt{a?ZVdSL%A3=-S@)wzemIfE=jfJA+QDBgd8G#2;!w4{f)7&rofSS-uxfld`# z=h820yehCs0gp<2sL08SWPdW2&Q(<o?w0fv?i3c*3<$=Kh6GG#=lm#bVPbZ004rt? zfMJ)G#C7!*gTwV-{W({9?R;P?ngeROl!($d5UGdq9_YUi9g~9VppfYSjy!_qM*hgj zOwgAgLRR_eR0@d8<Cc<p)d0a5kqcFtENA@aRR@s;^~0h%B*5p$c<%ztZIp1ObVOfO z*F8o8-mE5XSmijpjucwF&gQ*Iuut}FIslni2>ir*JC7I+wKGWVMmsNCZm{Xfkc5y| zMuZIP&b1!b$igPBe0M(HL(t<=l&9{-=<cu;^$$}75YaeNNTq!!VANJ-(}78A6&mUb z+aj-qkXsXIwOrqbsFA^=ru!ePN?d38FsJIgvepL$NYYReB;eXzc=RM(SJ&y#yvGEj zZ^&Z*u=E`eP|Ra8I!d9T5awmRRYHG%4i=JlSYsmMGc3jU8K6t2Y%cQX=Xy}uhZ{3v zC}{jw$pkBX6NxVfRU~C_PIU?Ko+}B}0P&ZSr(P6|VBwjc6LRk}k*nPfXPHrmgy2tN z>`W}w8QP)L0LJ-Hd#FyI@$Sz`7Ogk@e%5IjGQCeXb~v8@$Rn-gDUuP8cN8)-nJy5L z5Fvhg9+o0XN=z?!xAW~r+T9H5D&tF9T85aNhS^7jnkO^+kA^t^;Y*@#ZIN!shR11L zn-Ma6=@udlAb$iP{%NdLZmGM5fRBXd2K0Pt6%-ymwShZq-lgqys_w_(*0kwUl=ZpI zqA)wQJ&7L_^K@kbtaVBDTsyU<I;&yMhnN{lXMf(JxC6ubG1~gos#{5F)aKX7$zy77 zh&avlI9~XxZXfn^fKTMEwrk@3u;$=`{n6cTJOM=Z5v|ouf(Z=96Dh%b5es@-n0pzN z=vUQkClye+v<-O6nFm>y)O?obP&Zp(Mw=z)Qtq1s^^Kn4eNu!p6_5V*TCeo8nlH#H z`Xlfh19Zpo$+m+%)C|x<=b_oFLr#K}T`e2h&5JiMbNE?nGL-0&KZfr()AJq~2%XsI zL}^z_-ow_&f!~qz?4%og--gUc=t2WnYpYV@+GI)ZRb+qc;;vRQaY1AK-c_h)4ol8d zbR^kx-fdY46^7CkL1(COZ7___>v)g)a>B}PfJ%6*lZeK*BX6=EvdL?v?2f$ABiGHJ z9cvKXHGU0FY97KI)I#pMW3uI`rjbUmUhk4?J34E%*8;0BH3tWH!~5U-;*F4YLJW@L zaT5w&OaiQ`t3q*Q4-#7#Lq4Lf$#$=`+f6+fv4DAaPWL)hNgBneb44Sf{dAg4ht);b zkA4VQUf9=4OvtTkn{gePsDiI&2RzhZ@2Jk$;u!#3=WyeQy@Kl)ndp7fU@5=`;)1tP zK1JgaMsC;R!$+8pg48kx-uDQIj!BNCJbR|A{xC#OPeM#Oz5y|eQt}3TW0CI}>~m{0 z+`S}Vg|@g(r2MjVzKN)CMP~+o5ptotx#23ixzdXGHnZ*E*^$-ETdhA~AR7Nj@6w_? zJ}<=GeS+OGv9!@?&afm&i(lQPeR*-}z9)$^E!*9n18J>kY_DQHqFw!zQ@WypL23cx zA;`zi`LhJ>OnBA3F^b=*oqdy~eloXzXN>E7@9fSdb~`Jo<Uw>FboSHYW4IgoLd_@< zAJX%k%ZW}(R$Ie*wofT9BQ7r8^9g5Um6eO+S<UWhwV*Aid|f*jOd_s-n`#p3OHm=| zx)g+b;pFhuu$^pJ%iOVW>t6jss$06O%<M!f`EPTB4itPr9Fv<{oV9)GrkneSN;xyA zC407E*>Gr7R4Bsj$W^r4taP&0NO8CmOp<f1rM2D((rkLS14|RO%S?rn-(~QmstU}S z0vsP3XoH2U^WSR%isf=4TuVPj@<`<HcsT~H8BQv$W<y7;{5u9WgI+amhr7ep+L(P6 zz=fQT0OEpKNRs_teU*v2s|SMNO2Spqei*8a$%}D?^DW>q;_G)Uv!IQVx^O72G_cem z<tmz%mc<(C0iZ;neAcciG&qBF*$lTmUwgMV8&@<&B+uT3elTA@{eDwpDY&lEI3lHQ zn^s7<5o?-)Q<o^OkGdm5bPYgQ_X{vCRm>9rXR2%XhslDnbN2Au%%;~~g2zI^r9;R5 z9UEpJ=Y0@yAJw8D!!5J+3h=07j;X@mWk>!%>E1iM$D7~1Ik(TRCFU#b7lHbF>GZnt z=KHfJn0F7u(-D06S@*J2S;XMqDKiRrU06rI2H*~wbiUsp=tuwl`}?8al#2iL7vZV= z>uLPo8XNHz05S3JQ5=Q;4VmEgQMY0>1`Kdt_Zn79!m`l6{ib}Z`HC`);Dh~|Y1VAG zfc@b9bARN#v7BGJG|(+waQhYE3~>=YL_)kCe#@wd0RPtFZ_Q~<{+~Ddzm51Gyxt$v zgx_!7%#R{LX?B{MqVDnjDd*0xzZrf06J71ksmJ}d!|qCFy_w_ZH}vJX9L_5IkD9w7 zdM<Sli27YhJWwMnaLO-S&Xq`J`PT0VgM4JV&o9TqEd1};fIoKlSsbOmrxE_xaOZ~! z{GLV_`ThLDdpEX!OFKyXo?vhc3;f5xcq<R0UAL_px}IoMNlfX$n`3_WOWn_JB#eGb zL3IB$A3^({Wg!0ZjXeyYb8V}|gdyot-7j%95j?)~`8jpeyFYp(cpiO5_)h=%?*57U zq;cgmzQzN%l9jo67PB7s=RYGIbt7^WA&z!B-`O}3;mm#c!mSD(ln;Ulm40x(I~Tmu zysqkl-e{+CyrEU+XNi4lgtyG@k4Aj`Yl;`nf*!oDJj6z;Kga%X%STuTFm>uL7k?6q zb9<J{k5AqkZ}3-CNhqJ)7d04AfDNyA?5>gwB{~X4S332LW3sy4r22N<#msMiu@ZPS zAFyGsx6#I@j5q#raQ*XD<Ljw&PsEn;k&PY?I3|lu&f6+3Bsn5xFBC0ZP>`du9|+`8 zWf~{a`}yJNw@OgeYmi@2lcD*GwBre)4z+3D+R>)sBTc71Io6hRakMP5p{lkj>j;XT z+<RD(i<zRzH<;ogo7d}>?CO*4Anx!vICC`>tg|XSUB)lHu%+~%n_Ns=t~7%x9ep72 zj>j?sbDJ!|Xz$FS=ES%iSExrFl@39JKp?WPNxSM%mfTG7ff%2o(8%rb_rupn0ruH} z%Z~fy6UxptH~2NF$S}7`OEI`?!}*rS)-PqE7HJd?wpZiAU0|vkRSjl-^`mAbQs#2L z{N0;WAkF&gckonl5^rOdH38kL)n`+lNaw=I4PBs;uAg9$0~EXQm^yC5btTHJ!~Z>@ zUz)cC%E79Zp0$>2-Vtflp40UXYZCR8uivHytR#M+s+&$Sg?I*a?+MjTOh{eJ8a@(q zdLYz`EWXup@<x?k+t<&kGwG^qsgR5-xs0N!+V!RU7yb(6J%ifX$%~8E)@2?@vOd0m z*W`{ySAyqf>Vij%T-1()mJwB`vz1sFwz}r>_B_y8^3%xb=z-XTfZ46Z2#pj@z;)7! zCl)kf@Bu#6hG5wB<@_jZT><W>Lq7n3X8Cs9?%Z|_dV~Qr#vorLd=}AlmdHKL8C@s* z(1Bb=LF7sF{lR%p_?E`w97zd=1oY-+77cw#_;eUt$?fh&&IP%oC;F7j0@?S>#eEOh z(e}oc7==wsr0rE<XE9%iy1DFKA~XR#O+)QTpeLQJfYwR<hap|hI3+en$eA}f=UTOd zwr+@NbWK}wV#bk40J62G|H;cYYH}u;R!si@GKo}x6(BX)fCkgyy;!jYscS!w<o#|k z1JnwjY4FJ281|VKKbfKm6+8^e&z$+0Bx)st-CDsvlG}Sv@%#*qn+zAK?0nqq$d!lS z9&Rf26I1y4Q5Z(l!ozV~y5m$fAz%x{&e%n~A3Kx%;*2ViubUo9q9Z0vNERAV+>OTP zz|H4t0c7gEtkmqMwISZAt~*wSRbX8Y^hnjQ^fW6-y990^Sq#0?5ZlzU{m|1lj15p% z+z{==umatetVuzf7%N^uY2M>nDiJ20^|8;e=BujByLb5YfNi<cuDWHWz1bHNA#VIt z0O=bM4mh-6VfuppU{CxRYsqBk5z_2jHi`GG<Vv_@{7HG?=~p>%)b$q%^#BiB&A>U9 z2Ul~#M%qm(zX2tTBpVD@6KUw!bi#<&li({ymNor)ZIzF5A|k2MEj;m&kV1(Lb;WXx zJ9(V?Ts8tS=wnHjH`h`h+s3>C=d0&Cj!YoEt=?2!K)tG+*+3*|u$tix&O<X8{gG^< z&4Jerb8CS6@{QIRU_LfvAG(!O-b(<r(<uX-^RX}4iM`=dA>}!4EETfs*K4$WQ4bW8 zpi&Vlo>*i%RfUw;1eLePb01E<ZWoOA5u530$yl}nPyOqdkDtX<Cby{oD73hoGKQ@; zkNJi^48^>ZD$^?HepRM=8bF;y{d^_&X)H0<B6Z@D2@7w3kCPCCDn6@%1z*OSt~@<= zk;8?)VsXur<{`;6p0TA5JxvZ4iqmDQY3@^0slgXKEqS}=aG}oJK~2NnthFb!O;Zpk zlOh=Zc{24elpv-sAb7_S->3s!z0J=`Rkk_f$I4dLa}9&WW!-n|RW<|I#JbX8cjK_+ zWf?Wj&c6!ADL|!xXp}Er)1#(Q%L^8@BFm#sN=<aIEQ1@KPmWBS+}Rs|Ncq;7qYYZ! zaru}8yj0z1tA3qU*-mz|eJdyaG7$LI%lx83WQAdsApOPgrFqc2$QhltJyXk~+_0$7 zKBRFv5B3#p>`W%Pj1KhOaSd|a);sMu;%gZNzzLFH{nhEzBMZ(+dFGyB=1);Gb0)g_ z6zTL&h0gn88;r@TJosv~z0?D`^{r<(Nmg9p7Gi*r*e6E<c5|}=uzNEWJI?-!mXwFr z`5f}1qy1PkVK&FnoH-uFT>_2^=S+varhyB*8GbGA6r`jAcQ=nJsL4s<J0lvjeOU;5 zpy7?1ELSxZ0uOI%`lDAq&{g<q?z<25Z?2_2QloTkeM4vAHW1dmZ3apK!yBg9?8-7T z(Hn}hGt_rD`R4LS>jD;+<wUWMxTe9QnP}N%rw?5OKjL1i&MVhWZ{iwLe(JhT@jhUz zD>+>^F))6-$afZqReS2a6x^wF=DN~b=6YGtG*wiVkaX_%Y9O;VViU+%6L`HN$&n{7 zZ!*QEHY4k3nhiId3`-Fwo0r!NJSq4*BDypb%@X8Y7j*#eUzx7-j3C%g#XzYdI%Zt^ zs>Z_kr;h^JmDn9t+Bzq58TX7#Pc_6@F^kuk9R_Ioe5%V}QXyWua~{r;)##be^Sby* zvqU6-qC!VRg9qU4RV*(xGV8#{%O{w?*mdWbcM(nyZpB35svMK5<L>T1$z<Y$KJkG0 zEaye_>I>Y9g8R*~kT09W?g7ug!pq0?=3Zn=p7yRuD2-010N!^44xcO-SqPumJ4^LC zb9tW0$vfmnn2UUyz3F<*O+l%Xz@XX;tJ{lim@BNYw&My3>dD3mF(gtai+o}cVGC-X z>U^?ml$=XT`x{~N@4_Iexi!yHKrY1v`7sCw?P>|YT6P@!PX<WM7GuSLC&TC<OGsFu z?flF8t1+U}y6kIiXTJB_0dEf#E65qcmi+ozTy==Lh>ml$z={m%{6XCcWxfkMLyhwY zhYt5@%4sSS@{aGA9<?W1X#$_4y&;`!WI<)wkB0bdYEBqQlXwf*9wh-;Nv<AbM!S8s z*&<Da516b+Hw?+~<%lT;0$f<Rbge^td~$3yvPmM0N-Bq5>d!h9aiL@Ym#fcjS7@Ym zO3QXA2W%U8^e0xo29~TpUi_q@BS_83aod{cLM)f@i)u-3gR+p(hi0X~4Vc9}f~vK8 z+UF=bY99u7<X2TNCud&VYFD3IlFBJL5;gpoJbAT53oOf6Q@A}Tu%Mc`w463_of0O* zw9~S-H&BWBT!y#f<-Ap1^2*6yB~D6Lv~-J_N{;-Y@DKP6)Xb=<gbD9<kz;`wAYi19 z$`;vHNAe{KadNPp)tmDKm&N?84X_s?LhR-vM7^p=NHG@(eNfHM$2ZGx4RHyl^swC` zc^S7swXyydrLH662l|SG%#hOf&2D`8v|hu6Jw#l>i0c=1HLe?gUq)U<?WvoIzs!s4 zhfiC5vWA;~lSQLMe2xV`CdrU}x{*=IrKsSF9UGVr5sF$_sfB4hk-G*`op{@uqbM3@ zoJ>KI1ApmP<#?V`cV&=<-P`1Tqh6c*5=uQ(ZE@;a_*yX!)99jzc-)s<O{Zh?^T<9b zg)*d>m4uAwS6YSgQW*lrufrS3Y>2logE>*Za@TBnU;ZNsUXH~Qogs3yW+WL)aYs6w z1@wonE2wD@vE2<Xx)wD6-w(A?@<Wy<B|GjqKyBTkH?(6oEUu!DU3rkcav(nEEI~up zTuS(tW~kllt(?nOD**h!L(OMk26|^PIvbyRQj$nFzw*=<8R@8m;v9>gCR2H}+5+z> z-SKcrA=u%QW!bd5nX^}Yo9fIEwdNYUeA1QO0;>*CWz!$*8`3*8MX50mGV_F*F-DTo z<0nkEPBGpo@->~eW{;4sA<Rr$U5gdG+lwUux>}cRbdNo+EmPAxf*2(F|M#mJq&!3k zDgf16HGyY#1RfdC&!2PF#-E$@Mf6~ZL@eohmT)=mST*rhYa?gQQid9{`yW}^7@YIR zWI~_Jb{8~CYK#o(x=+j7?2EJ-y3{PBX*=Zmr9MB@+j>dO)l}Y{{~VBNn-lyY($3)? zeh8$-yn2kdkCd}l&$l+zkmbqNkws*zzON#vtx-HcKU0Xn`fexRafjZEGE(ViQ2u#} zj*69~R=jcfaCnYQ)l6I24cXWYj|d6b+?+I5o~8(=YO^x?Y(se~czn*Od=|!t&uhv| zpi{iaQ_t5d2(H^`V;;Dd`>LYVt0qEmr67%UM)1~?t1sg6gj@k1spAq@+_?K&{i{dD zED7#uv)E0Ie56z}pR#rv#&l>sjqCa0Qo9EfoB6?{c}Lf+c@F%Ho6~~eosj}(1uO*~ zO3EbBwqdX8k_{5jT}0=*XMZ7jlJ{Wrr}~lJ9ZLeWWYcKvJU#3eB>&z$jw<;V&rBS0 za_S9xz(8H20YST1k54N(Sk92^)Jvnay)0|03>^!Gs(Rv7Dmu|ClWI5N(vj_krCyn2 zDnm0Ro}adAS(MYnTV02jsVU6G$2J7>PYG-bY!#?e07yj%^38D-#!5>kw*Wk@&{P}D zRKRkk{DQNfZ}SVvoB|yuR0EgSx5#yTS%@|UlbmBCHn?;5ix4lvqa!@S4*9bkpjGS& zS8*gG!*cpY`O}4&oLO1rqabZvo$ej;spPp9*DlDwgeUP*+kEZm_N1^8{mE#laA1~H zH!~;TT9-K(Juso^R$N?V307S@kdni71Dm=b9EzcO!@B^tuC-Q}5aQ<aUezdl#=b+A zlhdfX>s6U7u{c_?J11=WCW(LD3Y*!Fy3~X8)AgIzKzjPIajaqM#0Ey*qn*-dHF|by zn`y^xhh4Z*RcXCN;WkrGk(rI~@F$(@bqQIFIv{=!|LCCcq4BlM_{|Z}YF6c|FJC1g z{a@v(9G8mLf<2RLRJo~;a=vp6=p>)&dv~<jPA0)caqRP?SBi&sq4_(SxWa7b>xGgm zcU-JDm_4&v`D8{=Z$@HeNQNW2il=M!ESIuNYMNPmwpAqz<+2oEZi{RU<Z{=yHg-+* zoK-CatM#>YxnEVx+h*aSkx+?%zQ;C;)^C@MSU;eoa!Z{*B|qs6C>`Zh`=wlF71~?W z&qflkxe+Dw&W|q(FIOhiA6cA4C12{BY?dv%*$+Qdilm<I_i`yHA0VYHq6eYgPwstg zZ_OZ*X{r}mX~U%1%_sv+^l>4YLdTUq6je>%2UPzcLU*R=KzK+mzTNovu*U^bRM1$< z4uU(sE}0l>o8Ds@xKk8$;Unm^3!QQ;K%+{La^{6Gym1vXQ-XbN9Cc#q03!bqneI>2 zwHS`Yu)yCF28H>)iYq@d8p9&^|HwQ4!Oi)5b|_Hq{J#GnE|Vt9e(r`NZ^-~9h*pko za*ESSs?LVN?Ix6`LJyW!mytWa(l<WOe7a;~zV{96;6=YeRM)iMAt`h8upLbR=1x4@ zt&&%ALM_0<x=Fry17u49sWeIyK**#Pg@<=pex0SThkl23h<32fam%m>!j(zJ(tx{b zZFv%E<Ed?#Svl^bSd$NWvV6J&Z;Sk}l1FOW8GD2L1uxhYorT`;%*n&N;YCMaic}uF zcGn>q74umP9wR^#H`2>b&)Qyx^?`7waKnvS!6UbIpGFyvHLbY{1mpRZz+Fu4u;$|) zI`;LrhUYB`tS8M@?H^U@S@?nI%-kty!f+nN@I3kc6bbjjSf(Cyh<6r1T>S26t2qyY zxjw3j+8F<^t<mYIA0iI;;V#++XaP)k5@4tA>zzPkF0q;n&OOM|5Kekf!U@l-b#`ZX zDs|>ayU+!#W9_Ip4-QpkS*(qp;P5=|QrJ+4L-|iyig9-Xfv8qZ+jEuSW;2E6f)lau zFb>(-mKK2G4=ZQk&vQIjYzVr~QdyU+z4BMh_EZ7Kb2qMz)==B|p|&R9bFQbK3{l0C z6t+NBRYS*}#X@wQi4-K~Il{o29R`l_qc-le_k0;|zYX1X*e>F~U*`8remjSTyN{`> z1#q+!P#cycprg5vy`wv{n~TIX^Svzgw~=(~VU-YjwBvBMuJc1+^yQst)#_1~{L;ij zW3d{?0&XY{qlRS(hl%bI30Kpt@f8KOYhN82T`=S7D9lQ$`uf6kkYyzHaR>Z+G0$#r z)4{WBanMV`8wr*EvJ@lUxAc7t!HX^-Yp~fAIvF-rmekH6V5Yeg`#3#Y1H7eoUNuF6 zb<gE%hHsE4yWtJG)pfRC2pWpWnWio;Pp~Q4954x#tJL##)*kyfB1c?mN5*F}2*xZY z^e41mh6F5DP~v%{ubE9e&j+}N7t|c~#uzF`blAK3pkSar4LEsOMEApz2PBCgP&#!P zh{j`o_3nBk7@f&x!a4m7?eagr@=*Nc+8gs^ZuT!k>gb|q4}ZfVSi)YJ9R}m;n?|ek zxWx@76E_e;c`V#|3z4wKGpTi*|0VXuMWR58+BDxQtX=J!TWUmJDFf3Ywes?IxTy<8 z$-?l%<{PfcY@%eH1hsA=IbU=)-I_)542eA^Voh6Mdsbiv=n$(xvXqq3@pvf)W^C2B zo5m1`%POx1RgaAkNonD?YEg_xAUO%K%aE`Z{B~1BZX*b!Ei}ACDj5xRba;`^TA=KY zbQsxdrC=;NhC8NCh_TEhatpy(y0;wGq1K-0Er;b{ZyFel)~>#=0fxe}dl0;nQyk)$ zq{&UftKo-H+Y2K4<}&`nk5M(-K7S7^*Go^0Hdp)ny;78{y|mx`F-gv`5T3gzDEsox z!#umanv}7QELkBCjXyUK?@TiipMzTe#=(v(g*rP-M%q?a_e(OIRC|0#<}N8o_mkR< zav+T&{x1BUFlJikrKFG(N-*>|VbJD8S2?3+#976ch5tfirFM;ZfTOl5g-2Q2t;VDV zSEIQ%`0(175f{nOqX%3z>24&GwVO!-Ku}<t_KUzm7R~#9j*d13uTNTHH?SPfsVOvd z&lPHvC=t7*^(+wRj3p&?VsN=)PO5ZYKgzN*FJQTWR6DNUWY-qAWa5=ya!dQTSie)j zwnY;EumE;dX=~k>`_bn4`1sflf7_llA>ad)OOZXzD>o030MQ970cu~*_sR71AqE_j zSA@D~tf|rB_ZshIb}E;}xVMZS5`9zru`0)}h{?>Ea;tnhqN!YmAZ=<hgH~cWh_Q;= z?!Q6(Yn*@#%~?Z_l4c$6IM7L@yy0Y9Z_32$u*eX}Sl^hvAc0`e6}N$=6QdKD)BbK{ zn?UOkW|DxjHNwc{mZdp796jex<|jB$-5N7eS2#iSOaSjj{m4j@8J7D{x!)kF4tnN> zm*W{T8q;HuHt6QH(S^BRRn{cMVjr#z-m^$JY{E_n<WCDQJVozBvq@HZZ{U~QZ8ac5 z!<=Cf-yl0JzqFfD><hT3@8q#@Ef;n5-49sGR+8-(P5t#Ka3<^Nv|)1Si@i9#Dc%{y z7s!E!zfzNGg*`Rfe$I2osL?}C87DNkDdPrAfox9I<=cMV%{tG2d^8EAPIuha7dB3< zw)-@_y;_RW+#xP5iKqcSa3SyPqLJP{SQ*&^O;e#!xo45VIRD$=;A`2eXUmMzWkH(# z;^X*t1fcK@s-zGkvQwAM*#=luOB~yq8=v}ohmBMAQN%(P@BdPFph%0f-*CvjYTCx4 zQ3&BViKcmAC*yH+N{8n%zK_DNKtUeNI5f?Dlxdm_{0=8(c<N66O=Vr$w{16OoNqI2 zIb=RSs+GskSUcJT<0HeVkJKzgd>DrA!B807bdJ1CuMJAFB8=2_uN#(m$tVe|SaL<% zkNpso+g#8YVkOKVGO_ONLv5kl&4f`iFgm>tDn)C>a7FjOjgu^n>t}|xg>zN$>Au z6_p^0t(9NEuS3&9)s|l^k_&T&t$i-p=1v%z#Gy;KER9zvvJq~gWdTXzoW_scNK8bB zMuPeF#!B%nTW2CwJri<}b#GzF`h<G4up;xoAvi~yuV2Zo&c{+=>_K$Lt^4(shMZq8 zn8$Z>UZnmYOVf77+{yBg6JK@3%ZljInUfRjJgN!3EH2B;$J7m6-7G&Yd%LvHQOm;- zMUsvhZ*J9_4XNRK_o0*Z1f<PG*!JjR7D}n*T=7PPw{m_%wm_gTmDCRV{L?VNL!vsf zu0z&!BQb18;b0C|Khn*VHXJPkM<%J~X7(w_urrf-kTs}Oq>lL)YPp_Iv3FkEz&sgJ zh_j99JWm#nd)r1TI89-caAeRMmduINJFWiem3l_f(h$D(In@unM3{I-^~^VLQlHK` zUZHPyTyh-<cZjx4mgy=9CML#9ei>2Z4bF&<T`EeawsHm2Yx8|EHr*E=VR2q{aR`wT z!Q<3w#Kr?&wTSG-rD8w694M&P6;d3QY8G*vpHN466OAJk9(IG@0f!Ay^>P|NOJ{Ti zABcmbl$fFK>V>H}q?tJP?3ut9)q-PsZL1fRT;dgaQvh?eoWm}1ws!k_W<ZG=e7MjA zi@*ML{yZ`9ei@>zjkZZ+HrxD^gb&NItY&u;pat*ok4N$$E|{-&8XLQo|6hCW9o9s* zwtb^Ck&bkNqJY#yIst-$)X;lxN)63G=tU_Ch!8qR?+|+LMUW2CJE3=wfFeb)+;7l* z?|nb*`}V${{d~uJJm3CjGBcT(wPwvqX69Pwb^f^T?s4TL&YGFC@qZDGYp<&lUp#l{ z&01dq_bEV1(UCxz{UZC_ZuLY`RsO+stXUe#N1W9U%vf=^wGj1L%L|El9Z2#iFvF0< zXK{vh0LfUX$cme7mRqMIr?0Nfvp&O?VrVo0C;k|)3~)jE(QZ*~77Fv;tAVO(eA!FA zTeKkCGaONOGz0lSMh+s(q^X)O=tnD)<dXTtKG;v(q>CjZr;OGcr?Sm{h*dEB<ILb+ zkes5|onm+qr`-RPao9hO>p9@6xkAs1D6VyGX4PWHdTamuSa0x;+_u5vkOQ~I%tzW< za*6)(UlVj1EVH|Pul`f2{ofhq4SyaW;EhKkN7A+!V0Tu)h7n!+Hl|9=&jEWwzWq9` zb|v%^*0-`dz2Mt}l*ek5Pj3xlT`j3RQa}8Fy_8V>{7mSE90_#cN!OQu?fS1~`oF77 z2%KT<=jQURv9iWU>--7lG}@s>=w!f^K8jxn1+u>szyHsp_<vOL|GNZ)|6Mx<9^%<| z;%x-z{G_~&naRr0Fi0}B^+1269{eqKFU{$H<NmI;M(DU8mLEW^5tmA6{6<*#FNpHH zVcC$<AcngMomIUPJ76r`Rf#BP{2*g$%t@DeTJKCp_D-D42Fk*rR|*cs`@pgZoI|Mb zts*eeIyzI!V>?I(b9L`RRJ)$x+<=@M8~+e%7~{34F2QL#fxFUGa#E|_6fRSB4HA9h zlZxy)Mg9<-iXwm6NBOzx7hcisH<8bogiIoHPXe7Ar^dU0^+!*fT&^bi?3+@mDE5=W z*{qPt-d1f|%h{;Jgz8FZZFa%uSyxTEg5-%-%M|DDWW({UN{zB%pOU1`6Yw=Pq6wh% z?{)DgW4c-HZ10K8Od8fw&96E^{WPIG#iq2c6(4nVxQKxvU=sLtDZ2g`ZLY6yEw@P; zAMwsDA#QRnB)cmbHsZCq!D4L`yQBpanZ(fCAD+;j(wUgiWqgUobJ3E&c@7CuxT>Jl zQ1ew=&MzY;x%RYHI37bDo7he|6<8Qo6?^TQR>&!huqfU>J>YXOmZvQxH>i)nl!uoW zh-#VS=jX-CXq%JXFZMF;50wyGi%G*BHfhD=3s)aF#TebA<LV|&?_E)0cQ9I)8cidA zSjXP%W<;DgJ%KLbWJ?U$U^n%8NBcQzT5||Agb0lIIH2*$iT9{-*el_ab`M?%0~R@T z*Q&j=rmh=Kq$SQ~vXtt$Tkgq;nH)30B)C?#Upo{+mwf=70HPJKS-!*H*^LFhu-BPo z=UDa9&9+A~dNfKvhf+4W?ssEtA5o}la6CY8H;pd!zZnhs+qlqwcMkvBmsWR)PrnoU zg6zVAZv507<^K{OW&H;*Cia~m_g3zcMlR02UG(8Kwy-eXUs|K!pNx8JVE1nl%wKcc zXT@h<g(v#TVXS!>-i8`;YXWqE46MP@o)A~lJ2Q)AW~Od+Ge;-hcu{fk5l6y&4Gg1X z-h0v`f{s}d3NCSjcSTYpG*Es|3f!D$OM|2kGDvwst&vdsZKOhvd(Ef}YmrrP0a<d? z4gO#d40uuA2>^ec{#rgH<JL5*t1~6xZs>f>Av?3$Fanxk&hYcL%(je7Dld*6@@f$% zRzz*)7w~Hxb_qv_9Wo*dEyxT27vsuiv*N|YkqI+JDA@a=bWK%AY}G=r5ny!{+z{CR z{>)Xk0fQ(m<}}rWq4KjDTjXerHy<ri5jhtid8e-QJ#eO#@qne2whX2_)=#vj4=-)_ z0Xp7#e`#$ip<Ss?(6~R3Z#|`hE_*Ty#VH&+mb#tVw=Z5BJVxN7$<QMB6!oTiKQost zKljsf1e6CFGwcHEQlJ1MB!|4}S|sc*sK!a(JbSa$wBwzt<_>O2R5zMu`Hv0%ry`ZV z`&p_=W7$*>+OUb$<uWJPh7uxhqg}Xz^Cy9D$~1q=om(Dh=jClQf!i~Q`i|R+a`^u2 z!tB81=h94E`^-F^m7;-cRgLVeVj%I6_kw4S2Zt=Y7e@1#nph-!^Ar(%(|e;enQHp2 zjrK6uraWzntz#|v0W4@<_KP`*cy04z;?^BHKr}X2EnzYKSUL3!;agwUQk$Aw9=H1~ zl+K}Jvbm4LzSpIXeiT1b_hhClH=OxnOL}ImfZfO^jgeMMWGPh}Xxu8lc52bK(67SZ zA6gWzC{5~u^QaLQH&jh;Sd{vBW&E2EAq-|+V*+e8lr`2=b;?T!#H{5F?tlY6_<Zm# z#ni)@%)ycp!n#o}eduvq=?9C=wK9BbjKvVGMjkdfM~Fg^3;MO9pxBhxbt7<#@v^PH zL?4{Ntzw{#`aEetEB%}A^0B8}SeBxAPIuWwo5|o=E!KlA$xijPd3`+QmAlUUlm|JU zkuK~h4=%vJ;pnxOi)qyu-G9AMqI-90GUcWGaMh$7Kg7JX1H{aR9f@c&32=!SiY<2L zT9<k1p=^V7hkqc`X{-%6EVJAUY&Kb=h!zSm;t!0ASo1W`<;+2@z}=bMgoV^gTwc_U zK>_>#(ua~(TTL4s8)Bx(>wFq;dLl7HHL@S(bbGYvQzz@*Opj2!!2mY#&!QhUn~3o~ zh^QtwF~2oVaC3iFTHS^me@NyomYeEki)#qqH=8L6Oxt*=+5;Y)ut2%_LO55LxJlQU z(fKfhOyz;qRiazrlTHOAGg^+z6Xy5mX!T4ua;!)xI-8N4U7Z~aY#;a7eeAhz$U)k_ z+t(U#*IOrDx9O>IUWOW0fFe)XgJtp|2&|+1(vJwKW8<bAa$0S(PflbbqFxN+nJ4xm z4`>#!FDMMxi~O&9J5M`V$6~xPZMi`d#u%aF?G2t3nSC>I`qwzC0+5|son{N(^)|#y zZl?{(!^Oq+^h<b^N{_=m0^ANyTwEB|CuawI9%tixx<0SYiV|+ut!^+aD=ls41lFCL z>T2F#dj4V|<>sou+qH-oq%1cPh(_XpIs#PIv;g#+nbIDRF!@rDhx^`TeU%8zk>yKQ zK^YS~fHlh#4Yp%nU~X(+PHz?2aE1x!$ej2}<=JE!t);6;;^MokC~EwM6T-dQo{oxb zYalXbj&i#NI9#D(!~n@zK3&ZHP+q=-gsAoawVI9!UQG10#JqzcBsc&HtK~VosQ>KW z`R`bVT4yAZyk306N1#AkQ=n?U-qynlr|6BRhLJy3@Dkf;tf}$|P}P^%=mtQUJF7Mr zlFCLQ%vl^A5oR;YYI{@CxD{YCqM6Z_+DBANM@v&To*rg3qMauc@Bx(yDb0yG0-Pz_ z-NW9`C|~lC5s<kO5#QZIG<Q3#jvwCjw+ri?4^9?zi|d^0XL!%BHc>M=)M8RzUWh$N zDmEXdxW>e)QBLzs;i9^_V0KL4MXx-WbVq+DGcg%y*7C|N>CJ@4{7i0*6aCj*T=3%h zMFX(DBI!vU-p>?du&1E<wK-@DB)_KW7VM5lG-}!>IE;*Bs_)DMH(Ejn{0=^CCgs8l z$|FCRY`L3E)@p0^j<+mr+RyN37_!f6XJ&dd!S~M(_ldBFGSEHQ&Pl7(RaFi~4G`IR z5Vlgj7&U$xk2OA=(w?505-{wGb3ovQ(6*4Vtm2pmB2BN4)VmzUJXaCNU~BPYX^QS1 z)HRV`oo28qS|n}V`{r5XW}3@QZvY7$<-u85;<!$GVwbrlQP(`~E5%*#cG|)FsjZ$# zr@x%Wx--?#6Q}YObz!V^w!E34RL7oj2%lo-C+{CT-ZsTW#q<5#Rxvd?%~zFk`_c|2 zO(maBMLKTV4@`!=a&Gu_4ko7cYq}3R-sdGr>%ngEJT6)~%tOeV5X3|)XzuEB+JmU8 z7dT>@jdEQrBVrVpvdhO&c32q`_0G<cx5k0!Uk<|De55ltgvc)|Ni5FEMHnmd8d*M1 zTNNFqXJxkK@%D_(DgLD35K?SpkoV#flnqSoaSi9HbRQ%>(r;T5I#E<8{rf5Hl?$J) z2Q6F--0|J#zLQeGhr2x2WQp~i670%maH)uwvlosPk#UJln6@Cb5y3hZ3g0w*i#R@X zO)vPqB#o^Pu}sbBjiYiQUBUKetgnS*2O`yAcC6rS1*6I7WoO}0tW)6;%+8*N2^TOx zk8v8nOHBMQB0kz=_SCe0qN(t*ZS`}#yhfFFc(s+c8tldL{DLy_=oioFC}wNHBpKyA z&(wcZbh?jE5Ahb8eCoaJ{nzyF`?Z<A7x)LRe-5|zD|1q%m#Cl3wn*FaZ0T69TT}V+ zQ*{OHIlwDN-SEt5g>C73gJ10bnlE&Jl1C&jPf$nx$^hF&887tDLiQe;l)H(bjD>rP zx$PD)KsRIuN0D{;gOit<q#R?yH0mTFJZa9p>HRolKb;Ljh^MP_LX7r(F1)!O;|=hz z;g|NAYgK92&WJ-(X;fztxd1bb!pB#z$hTWA#Gy^f_}xyr6Ju|IvBsj#@$v@q+jz0^ zQX_;U#c1c5RNb?Ny<~dUlv(+i-rb?|%#w8+oSl@JsfKJl6O<k5TXlIkeNh;m(oVo+ zhJmEm84rbdnK11hh{A+x1xl9}{~%cMyLtF3Y;UX1=*+D8T%E_Mwr1pu!5N)5*uzt9 zcw=a@%-kkugKXLqNcup&J)Coi?~%jZ*AT0SPaUgDPQX3+t%vwLt;M{$Y1-*#Ng;mA z?Zk`~cBNCgZ^Mgslxd)AEq(!%NBiIO@i$LJ(zEB$+Fj|g_C2c9>7)*?-FyA}@O-b= ze|;fYKIvIEBct+!YG&|!a(ZHbtHj~ucwPhGv&BvjwwTIUtx;`BA;I1+tG#D@UNu;> z-hQ`es^c~#spCDtws)_T+gnmk1Kz(~^9awWu-VFOxrV1TizWqB^^!4woekf`&45pN z8_@XJKrrgTG)1c6d+#Wa<YrNAgSvX{8FxzJr1lcbD*bR`4t*CYsf6}uu{HV7yUaQC zvV*B}*yUMnODgNJk*N9JYn9_G&O*uF>?3{e1wS8~0(hT%NzxFC@TXpmTIK<FL!GN= z!spC26@>WvcQei?W-FtOe8}|g4-ST3Fb?)j4Jgj7J2DIf8?%T-r@5}X?eBK-@YB|S z(hW;X3bPCRRjuBI(E8i9u9Cedn;#4rrctI>P6Y(m)7<qMy>fcfE7NY5hwvn>>+zw& zLCtSCzFN)W{=kVKz}TwmwSFF|koVH?a6`M|we;x5dIkA|keHdKmV#NdY4vpV0uO_x zHURjt%*OTRZ#crOeP+IiNtVWjHK{VBG=s}_EakbR&NhyL$KBwTP~IRfo`!7a-c<Wi z8tp!O$%R;`72JV-{tAdAi+9i2jc>L`8mOaE^4cCrbtKjmb^9|-*L;2Wknh5?d!=PB zQ;S4t2OpBTdNGibmwJ<B)i%5=cRxLs%*&~7w)YXQr^nuj85ziA0-gwvL08MC7Eek- z#tboacT(0|3JPBbV5lIt!TqI0CA+KH!V^>73sPg4v#MOen8CGzH->v2GdcBJ5U0H2 z+HT94x8J>8z#W7TT2%N^mXnAgCtJdF!h~-1i$ls7m05dIv5Ty)+OQ{D`KXZc4DoQ7 zF|UBA_RX&7wHcb}zNbiTj*yi0A=4{`sI0UYA}^2ED?36~aPUTt2ag~P&(*)zKjlBZ z>D*!AR1#!(o5IEKA}cH^&UvVFLvv)OUMw}g=lNC1c>_>o-ASzWl>V$v?H;dyWI*qB zTF?X|pZ^zAqL-oHxteWlw_6ciRv5<G?d%%H7CWawpA{}&G^lW7R-CROF`Y%|DK65h z<Xu%yG2yVjKBRKWTgtBjuW7EAKjI29;Ofd@^8A;Az4Xi!FB7DLp_~j2)4utQ3{}}) z{e9Lz7P6Zo*FS{ZmMA1~J{=~x*GEO5cuSzhQ{~{>q}#~ousL}w;`WHB?dze4({YoM zdEP@ZFS18?WUA}$_Rg$t)w~lGE2ms6Sx<2!v_tSQiV0ai4?Gy$J^y`wb>i4hMn11B z?ODn~l$y(E{Fp<drXwsu;H%`PhMFDyMQFSSC6)}?DbFTwI^K>f31XROlM)Yv{Y0Se z5T|<AjlvaS&ue7og0cEUVF={WMK$^TxM4?buE(gH*jVX{!d^?(IeFTy%esnU3!VBf ze~*8-!L~O=|BJthE?l}%m;wfiNtXqKdBYuml0tmaBz0G><@(tGcT(?`TQAvW-m+hI z{%aFCA{{bv=P!J`lX>feb&XL=09BM1JhJdLJuU=nwG)(2FfuW&Bgcs<POlUmE)2H~ z6`}CnTgxy3?*#2O{C?ID-n3asXwB5gw5E!^{k9eUNDxCFnU(Abl3|a<Dvf*eG15lL zueq*{LToGHj&$plMRY8mLJjj3H>LuQr?AUwo<YZ&vXfp@8x)?BL1cg1UvOw06}jOB zcv{64M26@KdKL=9$K^5x%9sr_tmi?Vc&39!_~Q=W?*8@CL3qEDIcPi7cR7X2%YU)< zs}NA;Eyo{q*#qN%d@{NW7Ut+LU<`8jdOz-7|FGTHok6;^iG;j7r$PU<$6&8sZ<$cy zE5G>ISsfiQWJ)>W_IMgWU<mSlM+5anaCpXLzlz2oxf0L}vr}U*sY>)s_;<G0J|>fY z#uxj~1eN|VK<+)f00k;Cc#tAClGQJ!dl?wr3=4Su*RT~1AK%{$TK<RUs2NW4zOIaM zQ85ar(a>MR%fL%p!;ASdRy~xir>Ul!)8|aST%OZoBmJCvbHCw;XOBcc;^yr}Z;V|X zE@%gv+tlfYdzq60w3G2(<Bx*yb0u-rAK2H5+BMPF*O#}3E9+8I%?{~mQu_{sy{zg! zU;s#QAQf=L_1?}uO%-MIU4rP;dF*!A&|BS${1~n13&j#&^1JZhZ#7o#tn(T}d70Qf zOH(o)=}OH`Idj{a^1Qmav;o=ZqX(Z^5{sugwB{^1qNsDk_8pQHba9t@(>JO7zXdW| z1jUQTo8(Ez_?HGO0ndEAG2;D}qK7mBl@j<E=X6Ocp|qH(`q{57nD~?7{DR}~g@NZn zV@(TJT<~Hyf&*~aKJ03RU=3sqYw1el>NkX!XVqKt15^RE6HQ}7efW8aL9^t2+!FfF zg!GB6`5e*FXF7WKxoVv^?vXf`lCd<+v$EbU%nhm)?>3-&A6;wc0K#wnmcb!eijl~A z%5lZ+upvFS;Xaxnw@%5y8i}(3iRgauqK_5Y<w_2P#Ai?EY!$Yxv?nH_Rb?FArlwq` z)U1kQ%7$KrFv^hICgY~e=sGRdEbL^&M#!s@3Vlo(3c|`cqB5?1a=~IFim;L8b&z<< z2BOl?oZWJ-gfKyx+J`4oA|Ph15QLCkON-bk33$89?W`8`UB-#>>cVTA_%{&ateOzX z=60ye<5!wA2LeZktTM|-)bQ#8F~Pk%ESq2Xj1*kQIvWH<>c^S=8>Lm@1vlC)zI_2B zPWn)mF`rz0h-33SP)*$5OH0Ci!tIrmJXMBDfFF<Yfv{=%r#VvCv_W?6vfO5^$;G05 zJD6qD_{0}0RiwT$sjSqOIWP<hF=frW$t6=FXP@YytJS4R`OdYf0(M3jU5@&9B8|T- z{(Y&g;mF%raRd0ojB1J-Gh{TPPVYT?waGoHF!wwDg8BQk%44~~&-#zNKYW>=tA2g^ zN7A3vQbXAagDTo*>0|uA;RXH|2f`!$x#_RH{zwqS{Z|3Mvlai<M1Q4D{;L=Lj@11B z;SY_5#7+!1%1}&8qYK?Fp<h`f6pEw3j<5M=?&2<|sdQWV%EOa7{3aZUTu!G>1Ah1s zxKU)X!O?=zdMd_(TeEwhqzfJ=wc`+aPwUjN0Y(!O<Dyn%cJQzp*7Q}4JJjlsHnh*s zUWl|Ps5t*!p$p=%Kct*cUdHvUQ0)iotvcP~ooRXPEXS;lR*x>ijZbCn=K37W019+? z<+_vB@)F183^YJB2%l~t*QJ}_ty^SIk$BN`QsaMHW2f=KZ#V_govQ+?{@-YIXRYix zS{IzDwY!)eC35J$J$4Z}pqLfKeNPh8$3VYt>cc*uM%H3k?k<vTfdIy$En}9|4S6!( z6h`*35fH34UX}95J~XAd7?rdZCdO3vF*~)}45`@QRdoy1*3E4MO~@;N9Nb=729?YW zevO(GcI|S?DJ{?EQ=oxFA&5X^h)r)hwlp%;)#{RZ=GpL}GA#K(m$KL{gmZTvFym~r zC<L*5Ic4H96n=0isZCNg9jthi*PwHs3-mbt>h1v0FQSvaA26ig(+1B$wJAI*iOeDA zD7MzA8X-0#2)(*!`QCaFNqb6N)xT2DjZGEtYSc9`#9hyL5r1;HZWSVBrrczC6TY`= zKt~$YGOMLS^fY35NDfM{EB5xzt~JQ>0xT3^8My!UNYgkr%~UvRx!$!voSR9m63W9~ z82h|w*e~V*tFekpnsp;ql{yl%;$8ek+O6$6Jw8xkEu0a`e7E{|Vn=Mm0S*}tL}oZ- z%T~Q}LJm)x<rl=RKr|YwrlxHk$~W6an=l3V9f^kc4EC4K&*+&g2_3wc*+DbQ?z+0W zJoUDu@2h(<&g<Pj#}l1@r(_qME(3}zj-0lN+yq7lDvyLd>QfxKLP%_@3v23>b88$` zSJ|H(`$9@XifgjF{s;n&7VM5l!@)64VUO>r)AGizj*Zf*;CK<UQ=y1^!J8+C^=<pl zAC&Q|PMpta*nbHT{<alf_KC{ZY}JRiWJjB+r!=L%&E20p;kGBg82^5>tD%ZTJQjzC zAbpxc3A*r{V-6*8NaE?n5ym&_g6+AutrA~M(NG^cqi)@;$;Oab)&#!06+16otEUtm z2Fq$0gF?FaWd{@K9%SB5%TQ=CViGbMjLfOlR(XVK)sW+i?lxpsW^|9RZsf?M>{_5H zc6e{IAQ7287KWBnr{2yQ=<NKm76I?g@YV`hqs6a3wQp{gM}u_Skx{RDAQ<l_Z}1<P zJ&8qgZ$-$cvT154>lxY0ShJ^Jd42!M!mbiiw~1VZv%{u;x$?{i)H$bFEF!<y+L8l* zguxCWh2LZ>0h%}F!E)sisN;o!Wr>NL?8VMaZW4-cLc*83dU;qXfjPY0$SJOxIC3OB z5k_DL_*934zsHF$$F3dat!Nsb1oJ((p*F+JwtABzQHKf7K-&~kdv<2R(Ws>$`+?a0 zmY}TjD6a%qOdsU{15pnbWfg@K5ZbC#wn`R$yml{VbMI_;0s~1*cA}v^87{!`*AWuX zXn73i4#bvW6Uwk}Ff-hYDo&XNnuaSGJ1v+_GwUY^AA;76%lROS0X}LpmpXu23G-SS zrU%OM7ZRQmG&Jt21xV)4uSVc(%(9eYRY0akZ6&2S3*6+{JY2UOj~u6YV+C&@ai0g{ zX5tm;YrQh~o?Ts?aQdW0qdqy-Ih_k-6a52=NB>G|&1@~~FUW0Id<PYX9ey-0yE*F{ zwwl%cDsCQAhx}M4s!S3upQ6M8mg7p&NE4p(Ac%>uf)8vL)u5ly9Kk^K1)7JjUB(@e zvPml?Mhx2qE-uT*fy>m)GP$yx1!7^Z*JDd4ds)(1&~|pk*m6y9hp+DLVf`0VrMZ%# z4EqIB6(%0F&sSoN`@+sSOS_Fsv)lBHZSwN#jjWsWbm?Fgaqdiv<FTf<@yIRuX!4St zusMZI_t+xJRT_!i63=z&8eeBTRH0C4xIUGL(L}hl$eF9#HJY5IyaV!S2^x@;T1!W} zj0gn=r;$7B@TNlDOUpxu%ZI1XtEjL6QmNM}V}t-`-qX^Uq5GRTOX45^X8Ns{P2<AZ z<AVA=;xtkRdxP1wGB&YyVG)fa?h&P_1#|k<80eEqgZ2b>If_y;cT3oifhkh$NlQMK zmFWY#Ke&=yE7GTX-H^*V+_n=!MX>>h1jGAR73!R+|2}rafBx(K+YkER%uzE8Z(yED z{SL{*`%~7lMj#gsvJOJP4G<<{6(#P!^QE{r#1t*rDR4M{crA><)A1Z{sKvJN4vY0t z&En6k!UB^#M&T+g^}a!O2>!uManr61RTK45{}NA`x=c*?gy^=u$?x_J(2g5#S=6DT zzAWwT<zXo){x*wyS-s@T%E*#j7JOM5N{Y)m5?xkCR_gEB^crAQ-ZWYb{Er&H1plag z=6gZ&SLs&Mg9#PU>tCroe60k<l@nyRwi05JMCe}*r5(7^({CUhN@bD3qkBNlRN95f zsS(zayhcq%!%R8(&+|kPHUhulh|OWeM=$#4azrIx)*3m@a96?IJ8MMRYFCOa9P^rG z?y<myHZli%VK_nLcdCH2%{;<*ZnSfrLgPC!!cB7nY#-S&tje5~ymhK&cQDfwmAZ@E zB|KK)3>F2;q(<`5JI`{V;?-WByv1$l?L*8LD}WmeTUA;Q@3MppvEFaN9lfg9|4l#N z7^9=NS8_Ku)RWz+*L$Ra`3Wn-x|i!Fn0IPXd!+t;*pw49jb(0I-HDrXSW1bTTNNMR zX=(IKl0`&>6$x*8MRr-Hy-i{UGRGjj=9KRx>&p@64{0Hr<fT4M<sYfr^TAF@bLT_O zmDA=Ry6d5uGJxo@cQXnADuM{>?5x=3h=kG6nrZU6bQHlje?{UETjjG!=J)7Um_uq8 zn<Ye{&S#LPS;;$nB*WN!12){-XY49!?}b)iqb{(JvPnmWUA*?Z34X6VpPpVCY!6gv z9ZN>5*9-@Kg3>mk@3!+!M_A!Txt_#hbr(KN>@z8yHHZ|4=X}QR?IWsW6xkD5b|gGL z-U#f!xe?$>=YY+9I<|L+RJ861Do6GEHK#|@rQw*&p(9x~@~$>_YuOCCcrGZ%)n8n1 z@fTbw7=pOG+h!h%ZvnzQdB4)JKdRG_)~(rIvTf<{2`SX=JdNL~eP>zI2J9chrY{tF z2ERDqEMHHH+M^1pU!y^alXE&oG<Tn?;u*aIcC{W~W5q4~VANJJPpIwKKBg-t`S!@G zw7}7LK+1PWCUC5mKkLe50A2Q-7<Mr6R?Y5E#?Yc6EYa7R<cZbPN&Lmqjl~Ye?{f^` zUIBuKb5El<i!GeCtChs;U=Afql0e?lv28&dtA_7ltYGZp;tAKL`&sJnwI*|?#QnlW z*c11=oah^MswAbP?70AWxGNaWb0^96P=v@~J*VyqVq<<r9&aqEM^h|j#8=G={E<Ul z=~PzVMV)*8bIHcSko%y$Z{A7t0#=nJKDmi`L@!amUxxQpFzw_<kCh`$LGySm|MVhI zyHDLENJe(7PhxlGJ>vY{fju7J!$zl%{oVDn@)dJXeK8nzkhs4Po|0o^58E@9fEjmz zZs)#g{6H8q?hS1C#*PP^cNp%)=J`Uk1{*g+@{d@O)R;zO;)XhX#JQ{?>8WD+u60gU zv`kLA&GY)yW(rWPE=s?5Vu+MJe+@Vxz}mcO0j*oBH{h6PoL^LypO6H5f5-2!lWGSH zbb_4j(=f{kKjhk6C_j<lA{%O+uZ=e4R8Cgav}b&T+Q}YCihe?&2uVOkHW!C{hxwny zeuq1H=ygiU)vE1?J9*z8jR^Ab&dA>nOAU8@kSlJ#piKQyS4$PD#GNO^H&rQM^VTcU z!fglg`Lw)=(#GdcXgE+C`FW?@*rb8M5p9Ear9P#}8S0RyL~U3KPHl@Z>-zlQdG9$t z=GE<CFl(6JS$N~PLGW`Mh2b0uf_CS%Owp0Ub^XzFla`iVN}-h}=2#@qDHaK|zI&LU zw=b$CEz647&kfIja&3jMR)~q;bmb530Js>^c{{(0od;A;e37moaaf<CKihp^*fhG9 zalc1w-ZNqA)ID_;%i_7LMI9~oLQ1`EpV6I_NgZ*j-9XZ(I4rAiNPh=1;<ACSGVH9F zNs%iz$Vg(mlMx~9-YgqQ_W=ppTg%#(xyx_rj#b}dQ9AEb0ntun49CgK^Q#FXk)xlO zA}k1wjqICtu<`Ga9Pv12W}97Q8f;d6B?VuvMcv{tVw790Uh{AY*4>8dgQfY1R$%-R zo8RN<>O5w!O}yLIb(KrjIj&INzx^G^byihdQ{BBmp|!vd(YviVDv?G%La0`iLDspI z#v|U;eNjU%+tc#1CNhE@10Fag2|x$Cc{TJ4S!7`z$j<H2=yI!7;|B&_i?z6SUlUhg zcM&44YrKRb$F_+vhicBc`!$7hs%gTHy;6B^2q-QJ%vJ`GH@-kz*33n?N?FtRNuBoF zy`tQPm&O!DZa|lQ2GElm$iNxB{Q>PQCSgDol*?mpLsunmgp2`T+687!i7AQy8dpe3 zyZqOSwo(6-16^W=)hI4<b6a?Xhs@r$IK}}Dsb9(P6R4O&1KIb#5TP=1-TKoe1y8Bg zC)6ulc8M69&N<YW^)9da<&i*)OU3lO`tmwz7tI#|gXvn0FL8sbvCdCwU<>$Lw3#K% z`2~}^@+LJh2x`)+XxIv8!BJ%SFruBB?t`rkDC+mdP9j!dtNRT{9?e~R*Ppf6-V)L9 zTwJg3^a_04_kv1{JqZExm+g((GvpdN57o|fa3`=IamfH&@D)mc-VcVlU-q5LPNbYU z-#~8<s#Wz}QCHSrB5O#Z4H{E+_4>dgr>k#@pe>20aMU@a8Gael#Tx;)aJg9aAOi2x z>!&98<iWa!+Lqr`Y*xsAw~XRzO3(PN+IuR$B1fYb6I@~}6LvJ}v%B{j&h%%{0%Nk8 zuE0(PKk*>R#f1OSF7?!}5rTUTvHuhu?B+I|amKVM)^5OEhhjpzV>g*Z6KwD0p<GuP zcd9`0Vg}^gV0&2b#n83REGOr<F&8O+Kh#G)Vl~K&@FI#&!>|eiImW&j_TFu;SDN3= zPrN6bl7sgi7Zm_@qbh^exj$^K=R}>aoSI3?srBJ}xoZdVUEJs_CG9i6Q_VKdJj~ow z-x9o9nvL?8D$2Mm^5qCm(QM2(Z66Z$wstrwgR^0L>DhN^65*_z*1k)g*zm-5Q{bYJ zyf=lny9=px`&T%rHE?vWD8Ha_QcGN9O8B_x5Wi>CBaK#qHQ1&9*!0DEqER>;`@bQw z-ILU=h-b^nEWWVzqQGWA@i&~==|$PP36ncz88)5y<x3GFA`O}o{F8AL^=KIf|Ls}! zR-F{DZG`NIgRA*Xzil#B27n+&x?&DiF05xev&g+&Y%M$De>*+Gp&OEnrE7CAHo29_ zH8_D(8}z14%GkFhin3osD=n$9U&wfU=wIt&0i1xAMFcp}04GvQ90wyY95MW%-*BE= z6L_V<E%N=xlV}A8M(P_Sv{Ot=@Br{tevA}q0h<@?Hfy6Z{<`c*QA%=kwIVunBg^Vd zk{WpJ(Of-J$#%NO)!O;XR7Kf~nyDU8L8W&WFRt`DWLYLR-}#<|ApUxLj!)6z?TqDp ztj72wPK#dF0oEhS2$NYQ`9p7E;1Ped=r}BViVN_AUcjC$$;uVj<^5rw$AMr>LFmlj zg+yR;$KGpqAHEqvi_=fW`9ljHM)k<*NlELqI?aW3KR)>d>6-;&*}0liu4{pP0cURI z*%Y#}_%h>1w}y2!PJH`5NxNPG4>W#%c9xZuCZ`;|76#s9a4%eFac{;tshjKY?Wgpr z0~igjtrDiviy<1xAc3a9UW`-S?uFV0RH1bwiZi`xzYk*13Yn428Q-KyVw~SO4lmxT zYgT1+<0BE^6Y#o{>CIO5eCoq!<O%-((rAH9V$87oI3=9WpAN!5%qo9q+hEK{eo;w& z6VO;rD^Yi5jNd@x$zbh1n8R3HEG_~CVM3%<M5XNpNEzOqNa5gI2@u0+Y7}v84q2k6 z9qJ77+TTXa><TNe#2mU<&ZDeIO*#of{KEv!jOxYFmMb*w)|Oa@zUZ0mxvj{JRKQGK zmgUk!E$vcGWA!AWqS<KZg>e6bY(JZGp^a3>idX+e|5rMNnln$MM@4R@cZ<u*5t6bC zLWJM|uqX!(4uOC-Q2R_?TisL<9gGiD?MXOz5*Pb<k<DRo0%HIdhl5FcHEum~XCIze zS})38M6(qqrl}0DIv9Pk4H$STjs$NkRF?We*@fzWjnyqCwG(<$^ZSpJv<(E-w#oVD zSclia@IB*}`r$5*Mjahp6;DC*%EQko%V0zeO5y=8&@`yyT)ddODTiN%Y4;;DN~>8V zfcP|4xe;L92>5)be#{9Ep>7?f-N;l*mK>^|OKRakZZ6zx(pG3)V)q^>IAg}7%UsUU zh3Aw<xo?@mD9o$?q6c`9+bZo-V$Gv|zF$rMlwke+Tny@4r@7cs(jwF^j;yqBd7ByP zph||_`Q#{%QhqM?9wJR1j<YdV&y#@eRlENJ6%<>LUpq^y%nHjE01M&91(dqSC%z>` z)v3!E>kZ^N*oD|z#&QTKe#fwK539{Bz_#7gj~fzY2Qqex%s%vjt>`Goz#!KxWpi&P zIS=H#p(^#v3VRSyPWL333OWY<dezw8{=jpvXuHOg+gP|cQN&x4CyjVvge5~JO1SuW zllye4oI`GXC){5#_IfNHQ$bR*mN!AI3%g}cU41feI-vk+=|l@D;Ch6xeg&zX>~TGr z@lB5nwJq7sPRtt{lGx{h^)~dfW8(y)>QzQ<6N~pWFf=n6^M-iZnhL6T0&is}8zEE} zz-Lz?4U-l<41V25v=!3z%p|=ac^D>+6znVcXpqoiX`5S;m|@5P4_x5p2q$dkG@aVH z63`SncSwuLtCmy6rm;5YUe7XmE5|c*%~xH61J8CLM|FA9vC+_?VbQNzsmVGdCnF|K zMq@TE(%I{FZWQ43?i|Q;nteUIy15{n2%3@{;oC`%U(P^An8&N6T39!o0_={ZG-itk zc->FVd$AI<b(RtG$@!S^;yTRU!M33}2&FBT25uOB%E*T!cE-DRP>nuhVpUbfi<OaO zcdX`rURUTj+?UG%nL>e#eLbephgwzf@Y(*^##-e~SLb7~FLQklYnQ6)+iUuJB!>q1 z0G7uL!UQ{vVSV@Pw>_x1cJm5?%2Jg{TJ{8qi~92zIPhYZO(9>(k=*uy7cv>BPR>G+ z-b&T1UC?ZrZK8kpJ6Wjfo~A)rfweVYYQo>pz{o#&&*UrDz5}NNH;8Xaz;qH8Y<RQq zQ6UKaL=m*Rcg5z;jP+#DwSI&1>%AIU%{hwOF=f5Rcxo|y9ND=qjlQSBtaO3Y??U)l z#y+pQk;VlKEVaDyX)A%pP3UH2FTA%#aQKmwEp^N`LvJaa)io2C5V10xAq<7SDmbDN z>F32@DRD!LW)ov~-m@JWVZEG8j9H%r85zzC)zR31ml(*rJm6A$qYuZFtIwHQ6N?{m zqvp``R#AM>OBS2*>k4FGHbjRJ%4TaxrgmmNJ0}_WTF&_Xdh*E24#mT&3?yJ?3m(_J zh6uJ^5-!il@KJtctW6)-Srt+nDH9@elOB@fQNyqN-%>yQR7Cwj0+kS7sjoGltTPNB z6l!Z?WnBiB-ZcQeD@?gU5{1;jP31j?z_%hAH<tMt3hv%I`KeqwRwqpwpAqI7)trN2 zJxWe1`Hxj(3K7=6bzs-qBjSy2E~^z?Rt*nX$FEES&>zkfcffDxr=VgG@tOC3PzL$a zrOZxFbgJy7;|e9`2`IX%6<UydJjeG`oG!uD<4<!j^!;6aQxQ5K+9d-THD)h69=P** zija=*i%KrTMu&aJ%@HMcS{^4=!{U@w9V8qP(m>GG6@!rOWL=;=`dev}CuR<+k|`@1 z3n9bmr8*GkU9+Q7f-3;O$-}qlq{YY}F+=4W$?ak>+X`ZbkjBQeZ!_rM_nz#sK2ft& z*R;(lDhSC?B-^Jj>a99-zCzE+vKb^6JZwEg;@Yu$bL=seQ|rSg&-Vwt7HQJhwh*XN z0}54Dm#|J6NX`)>DR=1dw$z5Zym%_1iYHIHBw@r7IW9k@7Cnog-$Y=H{jrKGp-btN zHnv<d2dLcR`msUlf<oZapxz|Kb352JQ><H*2en=OQ?!i!mfN_}{DsN>OXdvvb>grG z;md#33wgmV05h>EJ&yUM$BkUUHuyd5zORf--__-<+Ro9iSE8*8km)Cf<2M%1D0#Y4 zOh?HGA&8lV)Zbe@gXv!OFwDBzI6ph&<y40>5dlk|Sbk_J7_jqE#;QIQ;q*fVU(mFu zj0}Ezex%HB#J_29=?~(q_E6!{hB0m9tVPY9mPalwpI*IsxebLt&&#Npgn2-`>6nJY zRLyo$OB?(`u_5_SiVs4_wGJ+IV?V`i94`hHrwelCpHSZ|I!y8fs*EHYO(Okp`ZRFx zYYPDYo%2hDSpbd&3I3$=L-^oUT1}nKUz9s2!S~SfH(6#$LVqgEX~=y4)3<4zp-ZX5 z0az97|Atbpn^N6l<w>{p<wWa$a^WYQN*Hljjs}0$CfWVT_{yKbPMT?Ev`^HkQqZ-+ zmM0DCT$dB>xgf4XH0E=-^X0_gpS<uhFRc9Mp$UWlfqe_EiELrv*ZwYy!tY^Fx*!EI zi%phT&bp4T7g54&fAFgOtGMg`i*@(}{;>P!C)dm2H-BUg(_aI4$HiXSq5s2Kj6gbY zT&M*u@@FVn=VwpRmHB4`od08N`rfX~{SP#~>8gaK*2daV;|+^cx>t9o;0HJ^KO^qf zf2C61{__#`|F^ik)Xr6bgCLile~_6*Nr?}bX?ZVn%S&@fVIRGS1)w!YO*b@&YF^Zz zbLCuf&OLQHRGoTS);4Gt#Dw~8>>KBPtK^9*mYcT!KyP{TUpxJ)A^v$if^(+sjc%52 zQ1NBP@$==Ezu~x{ihen%TxKCt;jm#7NR_&q7hxD3su|rD6_<!rgv&1Of<DrTV0?Ck z8?d*9;QF+!UAOF@&`|nSA82YY`Q2P5==0M;Izj$P`g7katqUpN$(qIqJyc}`zs)#4 zv5Fv%9QGxr!0N}_y^Wb9_uGdx*t65$F%0E$@IGq=QTDjMC(keXaBJ-c$;EfGgI9(% z4aL5grUbZm#ZAYmxY$1Trw%r4F8uuP&kSpc8QMrq?W=dVJN}Zi_wS(&{d?z`+r@tw zkqf%R^0rmM6i7VpScFV;^?LXDboU9=Zqsx+<K_?L7a^bgO6m{3RTQ-xZs)`r6=9}S z5=NuJ1i^{4NJb?1p8PM*NIF4iO_GFD^O7>G{hBG1=*8Cs(@m`)SLR%U+g%l$A~V+; zd3dL$g-)wyy0<egUZyafyNFHU;7|_H1L85~uS`c2`kb0Hr`!3H>N7n0jU=;fydcIe zkN_5Q(<*&=rJTuDK`$UV0zy=c$ExF}(m*I;ABBJiwhcN2f>RbIT??#DJ7@chQLxpU z>Hx~B(L`s+O{~4OS~TM_2amCP(+a-nwPN>m<gHv|VTJK{)uhwzFC9tz9TsFV;R`Ds z9y_k>+9t3g3K<%nXPT;#WM4|-3e*)BTe7IYZoDaI-D7<@AoG`KC5t7sTMFf(Ei?Sh zy`hLb)+8;GFo#peNe9fN_y*S1wKYUPdQy}O?*q<_L*k4&r^rEN_Hd(D62&}+5gwT6 zcQbVh2F$3P{orN(iDn1g9AfKOCLNG(b~tdk@Rr#8wt8)>(v*>ho;|@l1F$nrV7%4w zcI^f6+&1hA7V02=;S)q+G@MPHsamf;E0U*<FQh4=IP%gef`XL|3;B#aK;nI+c52b$ zbP{$f4aq;%5tJQZP0Wr>7icAjVU-6EsPkt4^suTQ)^bs3rtV8_`$xs0e1u_{Ot?}& zj!{BF*3bt%mg5H-<t<`51N#i>>>i<gP4(gC9K0+I{IMo#*|C5l4+=MmB}3pv!NeW7 zAN9u(tI?}BP57gJtfb79F=q@ILcNNbO+YFoC{!WxDr>=#aQ2IC3gH_+%Hvi=!>~fq z!plT|POi&De<JSsU*p1LmtYYTwl88q7|Qx8kAv!cL}SS=aNe#Rd|FsLHnGllZ~kO{ za4EZK@qIb4AjPgVzM8hKvpVrAu>l!e{6kC6aEmpf`qV=m_!~~QDq9O?c6u80i4oBU zXv&&hxi>vopYo#CJ>HWDw~$Z9n8dmYH^7uN5GVF2YLv2jL##i_QB~HX*9cQbGfgw5 z%xbX5z+jnsyPTXOU|pRu^YPFd$MMER*r8C3R-Z2QUBc_l(wa<jYER1xqNO*b_qg4d zz%U0)0<y$0DyJZkj$pE$|8{h363!yQhC1&}zl$zW+rxKl3maut_X3jci`|J1GB|6j z>tYRDC#M-11s<+=)eHFc#bX`q8llce5obdc!6e)~2#nEh-7AAQd;Y8X*c4g*%2Az; zvPc=@)0Ux+5gCSWCymbRKgoEZ8r#3BYFs4C6bKk2Yv>`Y4h<O&Qd@zeQB=Xk%**u> z!!k#7OiQGq6L;xxvMmb6qv-+X^6F_m2qbHmaalv_B5%A9!k8;rV!JGyF0_$^P=fwE z!*ExlV!q_XTPRm?g>&pAyJGs(Vd1+*JP8lB=~Dp-u|ASA<iz~&;o^dg8rN31*G~Au zVGBtl85Sh1K!Uhd%33R|wag8KFIeAA0k3FlzOitW#&CpS4cFc9bFmJ{?7FeT%F@7I zqvjM%osBJx?(Zus=B%j^n;&po`ff6es>|8<(J>`B)~UuSea^8=nX3(<6{?Nt{xsq; zjxoV_47@UJpB1_x;1kYhGY%eb5>`!q(M9M1!14}V$*-hkEgFgBWNZnSU%M0k#R*dV zJ`Sg{7we4y2METEcLmKEl$W+@G#7)@DIAZx^7|kL$BRF}MnxiK#exo~>}CagcVf24 ziRPCDVn*NSNYTnNUIFst3V^c2;RRCU{HAk}Fo!>Hfj*y5?0J$aK>XQ{Ymqs3Sh)W{ z5hLyo%gN=)^=vHS{P_^9_%{(X578%~lZK$i(rD?a$>49(o_YRuqpO<wnno-Bq2F4y z{m*V4f7CFQbND%<dOr7Ts0V*auVLlUZ#eg;e{S=yZ~xUA*iQ1luW!h3J<t>U98dH5 zONx(ar>4eLwL(DVW-%656+H4l>9k^HTtg_jqf0Q<kOQ}cu+978=z%hIxsyMs8KkfK z@n~J)gCEChS6G6?UVL&tN*4KE@pglLjSv09-OU3NpIAK4E_<q}t<xwxb#e?BAOu`h zzi@YD*lya(i6t_peurRt1VotdNi*X+SvE0XW)a33JJY)Kuav8m`#sd*MhnG7@9(bY zD(zWKFq$1&T?srUW^h6k`rmXuXc$%h7Nz!K|BbwGMX((yNbRtI<LXN7GRryca+|65 zt=)-)NsQoK+~LBPM;yySzu|lxnx$(9X^R^6v*-V4Dk1k9PG(lvtFbTG2hU%jx651P zb)}z3E}}bkh*^Jn;Urr^2LS$|ME~<|^#3MUkoGjPeKocI^j3EQJN{p?&a3h^k@vfv zFEyY)(l|;}pF5p>lM}t1@cvIO{2ZOq|5*+$Bbn3&MogJXR_?#hss0;T+drg%`)6<L zP#-jke>~3)*irM_T_&UjyYlqjqYXz38y1#_RbrE{HeQ*DckY>eD4m|ro_YAFBuFgx z!EQ`;*LLInZf~Kv=fvuL)=c7Wf^-q>PYp#bu9rk=bD^@`s#~J%wlI=13vGS}W}|fb zA~QSltR07gXbt0C%((L|EGMw=b!3+9vX4HAmtlMLMM@^~B>Fd;zKE6S(s^KJlr09G zBeQSaRT%BckwtFt(YRagppU+n`&Rn&^pL*Ts8~}BB@N>D=J?5%mz8GwbMcs8d44hf Ph1U50ii`E^xB34A%SZz) literal 0 HcmV?d00001 diff --git a/Docs/Screenshots/1132-category-layout/before-1920-top.jpg b/Docs/Screenshots/1132-category-layout/before-1920-top.jpg new file mode 100644 index 0000000000000000000000000000000000000000..19c1a2c81c6067efba0930c36d7ef4123cb2da02 GIT binary patch literal 125509 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ˋA_MK%%aXDb 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 Y0v+;w`~MUhx+93&{b&BZ`EBff0No)xcK`qY literal 0 HcmV?d00001 diff --git a/Docs/Screenshots/1132-category-layout/before-1920.jpg b/Docs/Screenshots/1132-category-layout/before-1920.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d4e732d145bc3e389d0fb115ffc2fe4bf3eeab77 GIT binary patch literal 129391 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 literal 0 HcmV?d00001 diff --git a/Docs/Screenshots/1132-category-layout/before-390.jpg b/Docs/Screenshots/1132-category-layout/before-390.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d5bf7c4bb5d08a75e6c5dea14fe972f707cd4938 GIT binary patch literal 36069 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 literal 0 HcmV?d00001 diff --git a/apps/web/src/app/[locale]/components/list-sidebar-one.tsx b/apps/web/src/app/[locale]/components/list-sidebar-one.tsx index 0a01f634d..fe1fd9f2a 100644 --- a/apps/web/src/app/[locale]/components/list-sidebar-one.tsx +++ b/apps/web/src/app/[locale]/components/list-sidebar-one.tsx @@ -323,7 +323,7 @@ export default function ListSidebarOne({ return ( <> - <div className="searchingSidebar pe-xl-5"> + <div className="searchingSidebar"> <div className="offcanvas offcanvas-start largeshow" data-bs-scroll="true" @@ -349,14 +349,16 @@ export default function ListSidebarOne({ <form className="search-inner" onSubmit={handleApplyForm}> {/* 1. Keyword Search Box */} <div className="filter-search-box mb-4"> - <div className="filtersearch-title d-flex justify-content-between align-items-center"> + {/* Wraps in the 280px sidebar: the badge drops under the + title instead of squeezing it onto three lines (#1132). */} + <div className="filtersearch-title d-flex justify-content-between align-items-center column-gap-2 flex-wrap"> <h3 id={keywordHeaderId} - className="lh-base text-uppercase fw-medium mb-2 text-sm" + className="lh-base text-uppercase fw-medium text-nowrap mb-2 text-sm" > {t('sidebar.keywordChipsetHeader')} </h3> - <span className="badge bg-light text-muted small border"> + <span className="badge bg-light text-muted small mb-2 border"> {schema.directoryName} </span> </div> diff --git a/apps/web/src/app/[locale]/smartphones/page.tsx b/apps/web/src/app/[locale]/smartphones/page.tsx index 21cf48790..8d8e4dfdf 100644 --- a/apps/web/src/app/[locale]/smartphones/page.tsx +++ b/apps/web/src/app/[locale]/smartphones/page.tsx @@ -403,7 +403,7 @@ export async function CategoryCatalogContent({ borderBottom: '1px solid rgba(255, 255, 255, 0.08)', }} > - <div className="position-relative z-1 container"> + <div className="position-relative z-1 rate-catalog-wide"> <div className="row justify-content-center align-items-center"> <div className="col-xl-12 col-lg-12 col-md-12 col-sm-12"> <div className="position-relative mt-2 text-start"> @@ -433,9 +433,9 @@ export async function CategoryCatalogContent({ {/* Top Hero Search Bar matching grid-layout-01 `.heroSearch.style-01` */} <div className="position-relative d-flex flex-column mt-n3 z-2"> - <div className="container"> + <div className="rate-catalog-wide"> <div className="row align-items-center justify-content-center"> - <div className="col-xl-11 col-lg-12 col-md-12 col-12"> + <div className="col-12"> <form method="GET" action={basePath} @@ -561,12 +561,14 @@ export async function CategoryCatalogContent({ </div> </div> - {/* Main Content Section matching grid-layout-01 */} - <section> - <div className="container"> - <div className="row g-4"> + {/* Full-width catalog (DOS/Rate#1132): a fixed-width filter sidebar + that sticks under the navbar, and results that take the rest of the + width up to the .rate-catalog-wide cap. */} + <section className="rate-catalog-section"> + <div className="rate-catalog-wide"> + <div className="rate-catalog-layout"> {/* Left Sidebar: Dynamic 10-Field-Groups Filter */} - <div className="col-xl-4 col-lg-4 col-md-12 col-sm-12"> + <div className="rate-catalog-sidebar"> <Suspense fallback={ <div className="bg-light rounded-4 text-muted small p-4"> @@ -583,7 +585,7 @@ export async function CategoryCatalogContent({ </div> {/* Right Listing Grid */} - <div className="col-xl-8 col-lg-8 col-md-12 col-sm-12"> + <div className="rate-catalog-results"> {/* Active Filter Chips matching `.alert.tag-alert` */} {activeChips.length > 0 && ( <div className="row align-items-start mb-4"> @@ -723,173 +725,6 @@ export async function CategoryCatalogContent({ dealRadar={categoryDealRadar} /> - {categoryDealRadar && - (categoryDealRadar.genuineDeals.length > 0 || - categoryDealRadar.fakeSaleTraps.length > 0) && ( - <div - className="rate-card rate-home-radar mb-4" - data-testid="category-deal-radar" - > - <div className="rate-radar-spread-head"> - <div> - <span className="rate-eyebrow mb-2"> - {t('page.radarBannerBadge', { - title: schema.categoryTitle, - })} - </span> - <div className="rate-radar-item-meta"> - {t('page.radarAnalyzedSub', { - count: categoryDealRadar.totalOffersAnalyzed, - })} - </div> - </div> - <Link href="/deals"> - {t('page.viewAllRadarBtn')} - <BsArrowRight aria-hidden="true" /> - </Link> - </div> - - {categoryDealRadar.genuineDeals.length > 0 && ( - <h3 className="rate-radar-list-title is-good mt-3"> - <BsGraphDownArrow aria-hidden="true" /> - {t('page.radarDealsTitle')} - </h3> - )} - <ul className="rate-radar-list"> - {categoryDealRadar.genuineDeals.slice(0, 2).map((g) => ( - <li key={g.id}> - <div className="rate-radar-item-main"> - <Link - href={g.productHref} - className="text-truncate" - > - {g.productName} - </Link> - <span className="rate-radar-item-meta text-truncate"> - <span className="rate-radar-platform"> - {g.platform} - </span> - <ContentText - text={g.merchantName} - locale={locale} - /> - </span> - </div> - <div className="rate-radar-item-side"> - <span className="rate-radar-price"> - {g.priceCurrent.toLocaleString('vi-VN')} ₫ - </span> - <span className="rate-radar-tag is-good"> - {t('page.vsMedianBadge', { - pct: g.savingsVsMedianPct, - })} - </span> - </div> - </li> - ))} - </ul> - {categoryDealRadar.fakeSaleTraps.length > 0 && ( - <h3 className="rate-radar-list-title is-bad mt-3"> - <BsExclamationTriangle aria-hidden="true" /> - {t('page.radarTrapsTitle')} - </h3> - )} - <ul className="rate-radar-list"> - {categoryDealRadar.fakeSaleTraps - .slice(0, 2) - .map((trap) => ( - <li key={trap.id}> - <div className="rate-radar-item-main"> - <Link - href={trap.productHref} - className="text-truncate" - > - {trap.productName} - </Link> - <span className="rate-radar-item-meta text-truncate"> - <span className="rate-radar-platform"> - {trap.platform} - </span> - <ContentText - text={trap.merchantName} - locale={locale} - /> - </span> - </div> - <div className="rate-radar-item-side"> - <span className="rate-radar-price"> - {trap.priceCurrent.toLocaleString('vi-VN')} ₫ - </span> - <span className="rate-radar-tag is-bad"> - {t('page.fakeMarkupBadge', { - pct: trap.fakeMarkupPct, - })} - </span> - </div> - </li> - ))} - </ul> - - {Array.isArray(categoryDealRadar.priceSpreadLeaders) && - categoryDealRadar.priceSpreadLeaders.length > 0 && ( - <div - className="rate-radar-spread" - data-testid="category-price-spread-leaders" - > - <div className="rate-radar-spread-head"> - <h3 className="rate-radar-list-title"> - <BsArrowLeftRight aria-hidden="true" /> - {t('page.spreadHeader', { - title: schema.categoryTitle, - })} - </h3> - <span className="rate-radar-item-meta mb-3"> - {t('page.spreadSub')} - </span> - </div> - <div className="row g-2"> - {categoryDealRadar.priceSpreadLeaders - .slice(0, 2) - .map((sp) => ( - <div key={sp.productSlug} className="col-12"> - <div className="rate-radar-spread-item"> - <div className="rate-radar-item-main"> - <Link - href={sp.productHref} - className="text-truncate" - > - {sp.productName} - </Link> - <span className="rate-radar-item-meta"> - <span className="rate-radar-platform"> - {sp.cheapestPlatform} - </span> - vs{' '} - <span className="rate-radar-platform"> - {sp.priciestPlatform} - </span> - </span> - </div> - <div className="rate-radar-item-side"> - <span className="rate-radar-tag is-warn"> - {t('page.spreadDiffBadge', { - pct: sp.spreadPct, - amount: - sp.spreadVnd.toLocaleString( - 'vi-VN' - ), - })} - </span> - </div> - </div> - </div> - ))} - </div> - </div> - )} - </div> - )} - {/* Product Cards Grid (DESIGN.md v3.0 Rating & Review-First .rate-card) */} {products.length === 0 ? ( <div className="card rounded-4 bg-light border-0 p-5 text-center shadow-sm"> @@ -934,7 +769,7 @@ export async function CategoryCatalogContent({ </div> </div> ) : ( - <div className="row align-items-stretch justify-content-start g-xl-4 g-3"> + <div className="rate-catalog-grid"> {products.map((item) => { const keySpecs = (item.key_specs || {}) as KeySpecs; const specs = (item.specifications || @@ -1004,10 +839,7 @@ export async function CategoryCatalogContent({ } return ( - <div - className="col-xl-6 col-lg-6 col-md-6 col-sm-12 col-12" - key={item.id} - > + <div key={item.id}> <ProductCard slug={item.slug} href={`${basePath}/${item.slug}`} @@ -1072,6 +904,174 @@ export async function CategoryCatalogContent({ )} </nav> )} + {/* Deal radar sits after the results so the product list + starts right under the toolbar (DOS/Rate#1132). */} + {categoryDealRadar && + (categoryDealRadar.genuineDeals.length > 0 || + categoryDealRadar.fakeSaleTraps.length > 0) && ( + <div + className="rate-card rate-home-radar mt-4" + data-testid="category-deal-radar" + > + <div className="rate-radar-spread-head"> + <div> + <span className="rate-eyebrow mb-2"> + {t('page.radarBannerBadge', { + title: schema.categoryTitle, + })} + </span> + <div className="rate-radar-item-meta"> + {t('page.radarAnalyzedSub', { + count: categoryDealRadar.totalOffersAnalyzed, + })} + </div> + </div> + <Link href="/deals"> + {t('page.viewAllRadarBtn')} + <BsArrowRight aria-hidden="true" /> + </Link> + </div> + + {categoryDealRadar.genuineDeals.length > 0 && ( + <h3 className="rate-radar-list-title is-good mt-3"> + <BsGraphDownArrow aria-hidden="true" /> + {t('page.radarDealsTitle')} + </h3> + )} + <ul className="rate-radar-list"> + {categoryDealRadar.genuineDeals.slice(0, 2).map((g) => ( + <li key={g.id}> + <div className="rate-radar-item-main"> + <Link + href={g.productHref} + className="text-truncate" + > + {g.productName} + </Link> + <span className="rate-radar-item-meta text-truncate"> + <span className="rate-radar-platform"> + {g.platform} + </span> + <ContentText + text={g.merchantName} + locale={locale} + /> + </span> + </div> + <div className="rate-radar-item-side"> + <span className="rate-radar-price"> + {g.priceCurrent.toLocaleString('vi-VN')} ₫ + </span> + <span className="rate-radar-tag is-good"> + {t('page.vsMedianBadge', { + pct: g.savingsVsMedianPct, + })} + </span> + </div> + </li> + ))} + </ul> + {categoryDealRadar.fakeSaleTraps.length > 0 && ( + <h3 className="rate-radar-list-title is-bad mt-3"> + <BsExclamationTriangle aria-hidden="true" /> + {t('page.radarTrapsTitle')} + </h3> + )} + <ul className="rate-radar-list"> + {categoryDealRadar.fakeSaleTraps + .slice(0, 2) + .map((trap) => ( + <li key={trap.id}> + <div className="rate-radar-item-main"> + <Link + href={trap.productHref} + className="text-truncate" + > + {trap.productName} + </Link> + <span className="rate-radar-item-meta text-truncate"> + <span className="rate-radar-platform"> + {trap.platform} + </span> + <ContentText + text={trap.merchantName} + locale={locale} + /> + </span> + </div> + <div className="rate-radar-item-side"> + <span className="rate-radar-price"> + {trap.priceCurrent.toLocaleString('vi-VN')} ₫ + </span> + <span className="rate-radar-tag is-bad"> + {t('page.fakeMarkupBadge', { + pct: trap.fakeMarkupPct, + })} + </span> + </div> + </li> + ))} + </ul> + + {Array.isArray(categoryDealRadar.priceSpreadLeaders) && + categoryDealRadar.priceSpreadLeaders.length > 0 && ( + <div + className="rate-radar-spread" + data-testid="category-price-spread-leaders" + > + <div className="rate-radar-spread-head"> + <h3 className="rate-radar-list-title"> + <BsArrowLeftRight aria-hidden="true" /> + {t('page.spreadHeader', { + title: schema.categoryTitle, + })} + </h3> + <span className="rate-radar-item-meta mb-3"> + {t('page.spreadSub')} + </span> + </div> + <div className="row g-2"> + {categoryDealRadar.priceSpreadLeaders + .slice(0, 2) + .map((sp) => ( + <div key={sp.productSlug} className="col-12"> + <div className="rate-radar-spread-item"> + <div className="rate-radar-item-main"> + <Link + href={sp.productHref} + className="text-truncate" + > + {sp.productName} + </Link> + <span className="rate-radar-item-meta"> + <span className="rate-radar-platform"> + {sp.cheapestPlatform} + </span> + vs{' '} + <span className="rate-radar-platform"> + {sp.priciestPlatform} + </span> + </span> + </div> + <div className="rate-radar-item-side"> + <span className="rate-radar-tag is-warn"> + {t('page.spreadDiffBadge', { + pct: sp.spreadPct, + amount: + sp.spreadVnd.toLocaleString( + 'vi-VN' + ), + })} + </span> + </div> + </div> + </div> + ))} + </div> + </div> + )} + </div> + )} </div> </div> </div> diff --git a/apps/web/src/app/style/scss/_catalog.scss b/apps/web/src/app/style/scss/_catalog.scss index 119c37b05..91ecb8338 100644 --- a/apps/web/src/app/style/scss/_catalog.scss +++ b/apps/web/src/app/style/scss/_catalog.scss @@ -130,3 +130,87 @@ .rate-export-menu-list { max-width: calc(100vw - 1rem); } + +// Full-width catalog layout (DOS/Rate#1132). The hero, search bar and +// results share one wide frame instead of the 1320px .container: a fixed +// filter sidebar on the left and a results grid that adds columns as the +// screen widens, capped at 1800px so rows stay readable on large monitors. +.rate-catalog-wide { + width: 100%; + max-width: 1800px; + margin-inline: auto; + padding-inline: 1rem; + + @media (min-width: 992px) { + padding-inline: 1.5rem; + } +} + +// The template's 80px section padding left a tall gap under the search bar; +// start the results closer to it. +.rate-catalog-section { + padding: 2rem 0 4rem; +} + +.rate-catalog-layout { + display: grid; + grid-template-columns: minmax(0, 1fr); + gap: 1.5rem; + + @media (min-width: 992px) { + grid-template-columns: 280px minmax(0, 1fr); + align-items: start; + } + + @media (min-width: 1600px) { + grid-template-columns: 300px minmax(0, 1fr); + } +} + +// From 992px the filter panel is inline (style.scss .offcanvas.largeshow). +// Keep it under the sticky navbar while the results scroll, and let it +// scroll on its own when it is taller than the window. top clears the +// ~73px navbar, as #main-content's 5rem scroll-margin-top does. Scroll +// chaining stays on, so at the sidebar's end the wheel moves the page. +// Below 992px it is the off-canvas drawer, which must not get a sticky or +// scrolling parent. +@media (min-width: 992px) { + .rate-catalog-sidebar { + position: sticky; + top: 5.5rem; + max-height: calc(100vh - 6.5rem); + overflow-y: auto; + scrollbar-width: thin; + } +} + +// Results: as many 290px+ cards as fit (1 on phones, 2 on tablets, 3 at +// 1280-1440px, 4 at 1920px). min() keeps a single column inside 320px. +.rate-catalog-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(min(290px, 100%), 1fr)); + gap: 1rem; + + @media (min-width: 1200px) { + gap: 1.25rem; + } + + // Near the 290px minimum, longer copy (cs) must not overflow the card: + // the radar badge wraps (Bootstrap's .badge nowrap otherwise wins over + // .rate-product-card-radar in _custom.scss), and the second button drops + // to its own row instead of breaking its label over two lines. + .rate-product-card-radar { + max-width: 100%; + white-space: normal; + text-align: left; + } + + .rate-product-card-cta { + flex-wrap: wrap; + + .btn { + flex: 1 1 auto; + white-space: nowrap; + } + } +} From 26773bf5943ebdd1f294591fd2576f49097023c8 Mon Sep 17 00:00:00 2001 From: JOY <5027251+JOY@users.noreply.github.com> Date: Tue, 27 Oct 2026 23:36:02 +0700 Subject: [PATCH 03/15] docs(design): item / variant / listing data model (#1129) (#1136) * docs(design): Item / variant / listing data model proposal (#1129) Survey of the per-storage master model across DB, importer, web/API/extension and Rate-Services, a recommended schema (Item above master_products, which stays the variant level; NULL cluster_id = unknown variant), impact, a phased DOS-Me migration plan with rollback and verification queries, open questions and a task breakdown. Proposal only: no runtime code, no migrations. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs(design): address review findings on #1129 design Single-variant Items keep their unknown/standard master (earbuds no longer collapsed), variant_key keeps the literal key format, pg_trgm schema looked up at run time, archived masters backfilled, safe M2/M3 rollbacks, idempotent constraints, compatibility sync triggers, Item-level vote/rating path, trust view and URL-lookup consumers, Rate-Services ordering. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs(design): round-2 review fixes on #1129 SQL drafts M3 multi-size rule ignores archived sizes and earbuds; sync trigger re-derives item and variant on re-key and publishes the Item; M1 and M2 ship as one migration with an Item status recompute; SECURITY DEFINER sync triggers so rate_worker needs no write grant on rate.items. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs(design): retrigger checks after pr title fix Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> --- ...2026-10-27-item-variant-listing-model.html | 155 ++++ .../2026-10-27-item-variant-listing-model.md | 725 ++++++++++++++++++ 2 files changed, 880 insertions(+) create mode 100644 Docs/Proposals/2026-10-27-item-variant-listing-model.html create mode 100644 Docs/Proposals/2026-10-27-item-variant-listing-model.md diff --git a/Docs/Proposals/2026-10-27-item-variant-listing-model.html b/Docs/Proposals/2026-10-27-item-variant-listing-model.html new file mode 100644 index 000000000..5f942de97 --- /dev/null +++ b/Docs/Proposals/2026-10-27-item-variant-listing-model.html @@ -0,0 +1,155 @@ +<!DOCTYPE html> +<html lang="vi" data-theme="dark"> +<head> + <meta charset="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <meta name="color-scheme" content="dark" /> + <title>Mô hình Item, Variant, Listing + + + +
+ Đề xuất, chưa code + Chờ JOY quyết 7 câu +

Mô hình Item, Variant, Listing

+

Ngày 27/10/2026 · Issue DOS/Rate#1129 · Bản kỹ thuật đầy đủ (tiếng Anh): 2026-10-27-item-variant-listing-model.md

+ +
+

Tóm tắt một đoạn

+

Hiện mỗi dung lượng là một "sản phẩm gốc" riêng (iPhone 17 Pro 256GB và 512GB là hai trang, hai thẻ, hai suất trên bảng xếp hạng). Đề xuất: thêm bảng items đứng trên, giữ bảng hiện tại làm phiên bản (variant), mỗi gian hàng (listing) gắn vào Item và gắn vào phiên bản nếu biết rõ dung lượng. Mọi phép so giá vẫn so trong cùng một dung lượng như hôm nay, nên phần rủi ro nhất không phải viết lại. Listing không rõ dung lượng gắn vào Item, không bị đoán bừa sang bản 256GB nữa (giải quyết luôn #1105).

+
+ +

1. Mô hình JOY đặt ra, áp vào dữ liệu

+
Item: Apple iPhone 17 Pro (1 trang, 1 điểm đánh giá, giá "từ ...") + ├─ Variant 256GB (giá thấp nhất riêng, deal riêng, báo giá riêng) + │ ├─ Listing: Shopee shop A + │ └─ Listing: FPT Shop + ├─ Variant 512GB + │ └─ Listing: CellphoneS + └─ (chưa rõ dung lượng) + └─ Listing: Lazada shop B (hiện riêng, không tính vào giá "từ ...")
+

iPad Pro 11 inch và 13 inch, Apple Watch 42mm và 46mm vẫn là hai Item khác nhau (khác màn hình, pin, thông số), giữ đúng như #1113 và #1124. Sản phẩm không có dung lượng (tai nghe, nhiều đồng hồ Garmin) là Item có đúng một phiên bản, vẫn có giá bình thường; nhóm "chưa rõ dung lượng" chỉ xuất hiện ở Item bán nhiều dung lượng.

+ +

2. Hiện trạng (đã khảo sát 4 mảng)

+
+

Database

Bảng master_products mỗi dòng là một dung lượng, có slug, giá, điểm riêng. Listing trỏ về qua cluster_id. Không có tầng nào phía trên.

+

Web

Mỗi dung lượng là một trang, một URL, một mục sitemap. Bản 512GB có thể hiện thành "đối thủ" của chính bản 256GB, và một mẫu có thể chiếm nhiều suất trong top 10.

+

Importer

Khóa brand:model:dung-lượng. Tiêu đề không ghi dung lượng bị so gần đúng rồi gắn nhầm vào bản có dung lượng (#1105). Giá thấp nhất của cả listing (mọi dung lượng) bị ghi cho một bản.

+

Rate Services

Mọi bộ kiểm tra giá, rủi ro gian hàng, seeding đều nhóm theo cluster_id, tức theo dung lượng. Đây là lý do nên giữ nguyên nghĩa của nó.

+
+

Số liệu công khai lúc 27/10/2026: 16 sản phẩm đang hiển thị, chưa mẫu nào có hơn một dung lượng được công bố. Dữ liệu chuyển đổi nhỏ, phần tốn công chủ yếu là code web và Rate Services.

+ +

3. Các phương án

+
+ + + + + + +
A. Bảng Item + bảng Variant mớiB. Thêm Item phía trên bảng cũ (đề xuất)C. Một bảng tự tham chiếuD. Biến bảng cũ thành Item
Logic so giá theo dung lượngViết lạiGiữ nguyênGiữ nguyênViết lại, dễ trộn giá các dung lượng
URL, ID cũCần bảng ánh xạGiữ nguyên, tự chuyển hướngGiữID đổi nghĩa ngầm, nguy hiểm
Độ sạch về lâu dàiTốt nhấtTốt (đổi tên sau bằng view)KémTốt nhưng chuyển đổi rủi ro
Chi phíCao nhấtThấp nhấtTrung bình, phức tạp kéo dàiCao, rủi ro cao
+
+ +

4. Dữ liệu nằm ở tầng nào

+
+ + + + + + +
Dữ liệuItemVariant (dung lượng)Listing
Thông sốGần như toàn bộChỉ dung lượng, RAM, giá niêm yếtDữ liệu thô của sàn
GiáGiá "từ ..." và khoảng giáGiá thấp nhất, số gian hàng, deal, chênh giáGiá hiện tại, lịch sử giá
Đánh giá, điểmMột điểm chung cho mọi dung lượngKhông tách riêngTừng review gốc
Báo giá (alert)Để sauGiữ nguyên theo dung lượng
+
+ +

5. Ảnh hưởng

+ + +

6. Kế hoạch chuyển đổi DOS-Me

+
+ + + + + + + + + +
BướcLàm gìQuay lui
M0Đồng bộ 8 migration còn thiếu vào bản tham chiếu, chạy truy vấn kiểm kê chỉ đọc, sửa các khóa seed lệchKhông cần
M1Thêm bảng items và các cột mới (chỉ thêm, không sửa, không xóa), kèm trigger đồng bộ để code cũ đang chạy vẫn ghi đúng Item. M1 và M2 gộp thành một migration để không có khoảng hởXóa phần vừa thêm
M2Điền dữ liệu Item từ bảng cũ, thêm các hàm truy vấn mớiGỡ liên kết rồi xóa dữ liệu Item trong một transaction; dữ liệu cũ không bị đụng tới
Giai đoạn song songCode ghi cả hai tầng, web bật trang Item bằng cờ, URL cũ chuyển hướng. Tối thiểu một đợt promote và khoảng 30 ngàyTắt cờ
M3Với Item bán nhiều dung lượng: chuyển các listing "chưa rõ dung lượng" về thẳng Item, có bảng sao lưu. Chỉ chạy sau khi Rate Services đã sẵn sàngKhôi phục từ bảng sao lưu
M4Khóa ràng buộc (bắt buộc có Item, listing và dung lượng phải cùng Item)Gỡ ràng buộc
M5, M6Tùy chọn: giá theo từng SKU của sàn, đổi tên cho gọnXóa bảng, view
+
+

Lưu ý: luồng beta của DOS-Me đang bị khóa (ROADMAP 6.4). Có thể chuẩn bị và thử trên preview ngay, nhưng lên prod phải chờ luồng beta mở lại. Mỗi bước M1 đến M4 đều cần JOY duyệt riêng.

+ +

7. Bảy câu cần JOY quyết

+

Mỗi câu có phương án đề xuất. Nếu JOY đồng ý hết, chỉ cần trả lời "theo đề xuất".

+
Câu 1. URL: mỗi Item một URL được Google index, chọn dung lượng bằng ?v=256gb (đề xuất). Hay mỗi dung lượng một URL riêng được index (nhiều trang hơn nhưng nội dung gần trùng)?
+
Câu 2. Listing không rõ dung lượng: hiện thành nhóm riêng "Chưa rõ dung lượng" trên trang Item và không tính vào giá "từ ..." (đề xuất). Hay tính luôn vào giá "từ ..." (trông rẻ hơn nhưng dễ gây hiểu nhầm)?
+
Câu 3. Trục phiên bản: trước mắt chỉ theo dung lượng; kích thước màn hình hay vỏ là Item riêng như hiện nay; Wi-Fi và Cellular tạm gộp, tách sau nếu so giá bị lệch (đề xuất). Hay tách Wi-Fi và Cellular ngay từ đầu?
+
Câu 4. Điểm đánh giá: một điểm chung cho cả Item, gộp review mọi dung lượng (đề xuất)?
+
Câu 5. Báo giá: giữ theo từng dung lượng, tính năng "báo khi bất kỳ dung lượng nào xuống giá" để sau (đề xuất)?
+
Câu 6. #1105: tiếp tục giữ, gộp vào task sửa bộ khớp trong kế hoạch này, không làm bản vá tạm (đề xuất)?
+
Câu 7. API công khai: danh sách /api/v1/rate/products giữ mặc định theo dung lượng trong giai đoạn song song, sau đó mới chuyển sang theo Item kèm thông báo (đề xuất)?
+ +

8. Danh sách việc sau khi JOY duyệt

+

15 việc (PO sẽ tạo issue sau khi JOY duyệt): 3 việc nhỏ chuẩn bị, 2 migration DOS-Me, 2 việc importer, 6 việc web/API/tiện ích/E2E, 1 việc Rate Services, 1 việc tùy chọn. Đường găng: chuẩn bị, rồi M1 và M2, rồi importer và tầng dữ liệu web song song, rồi trang và Rate Services, rồi M3 và M4. Chi tiết kích thước và phụ thuộc ở mục 10 bản tiếng Anh.

+ +

9. Kết quả review

+

Đã qua review độc lập (một subagent mới hoàn toàn, Codex, rồi thêm một vòng kiểm tra lại SQL). Không có lỗi P0. Các lỗi P1 nằm ở SQL nháp và thứ tự chuyển đổi (ví dụ tai nghe suýt mất phiên bản duy nhất, chỉ mục tìm kiếm sai schema trên prod, cách quay lui không an toàn) và đã được sửa hết trong bản này. Phương án B được cả hai bên xác nhận là hợp lý.

+ +

Tài liệu này chỉ là đề xuất. Chưa có code, migration hay thay đổi dữ liệu nào được thực hiện.

+
+ + diff --git a/Docs/Proposals/2026-10-27-item-variant-listing-model.md b/Docs/Proposals/2026-10-27-item-variant-listing-model.md new file mode 100644 index 000000000..866d6792b --- /dev/null +++ b/Docs/Proposals/2026-10-27-item-variant-listing-model.md @@ -0,0 +1,725 @@ +# Design: Item / variant / listing data model + +- **Date:** 2026-10-27 +- **Issue:** [DOS/Rate#1129](https://github.com/DOS/Rate/issues/1129) +- **Status:** PROPOSAL, awaiting JOY's decisions (section 9). Nothing in this document has been applied. The SQL is a draft for review and must go through `DOS-Me/supabase/migrations/` with JOY's approval. +- **Vietnamese summary for JOY:** [`2026-10-27-item-variant-listing-model.html`](./2026-10-27-item-variant-listing-model.html) +- **Decides:** [DOS/Rate#1105](https://github.com/DOS/Rate/issues/1105) (Tier 2 links storage-less titles to a sized master). + +JOY's target model, in JOY's words: one Item per product; the other storage sizes are variants of that Item; an Item has many listings. + +## 0. Summary + +- **Today, the storage variant is the unit everywhere.** `rate.master_products` has one row per `brand:model:storage`, and each has its own slug, page, sitemap entry, aggregates, alerts, rating and leaderboard slot. There is nothing above it. The UI and stats therefore count iPhone 17 Pro 256GB and 512GB as two products, and a sibling size can show up as a "competitor" or as a versus rival. +- **Recommendation: Option B, "add Item above the existing variant table".** + - Add a new table, `rate.items`. + - `master_products` stays the **variant** table, with new `item_id` and `variant_key` columns. + - Listings (`rate.products`) gain `item_id`. + - The existing `products.cluster_id` keeps meaning "this listing's variant". It becomes **NULL when the size is not stated on an Item sold in several sizes**. Sizeless lines such as earbuds keep a single variant. +- **Why this option.** Every price computation that must compare like with like keeps working unchanged, because they all group by `cluster_id`: per-variant min price, spread, deal radar, peer floors, merchant risk, price alerts. Item-level views (pages, directory, search, leaderboard, rating) are added on top. +- **Effect on #1105.** A storage-less listing attaches to the Item with no variant, instead of being fuzzy-linked to a sized master. Fuzzy matching moves to Item names, which carry no storage. Variant assignment becomes exact-only. +- **Migration.** Four required DOS-Me phases (M1 to M4, additive first, constraints last) and two optional ones, with a compatibility window. Sync triggers keep old writers consistent during the window. Old variant slugs keep resolving and redirect to the Item page with the variant preselected. The published catalog is small today: 16 published masters, all with three-part keys, and no published Item has more than one size yet (read from the public API on 2026-10-27). The backfill is cheap. The real cost is code, mostly the web app and Rate-Services. + +## 1. Survey of the current model + +### 1.1 Database (schema `rate`) + +`supabase/migrations/` in this repo is a reference copy. The DOS-Me ledger has eight later `rate` migrations that are not mirrored here: row provenance, audit aggregate RPCs, the `rate_worker` role, listing availability, the iPhone 16e offer move, review vote eligibility, plausible min price, and the product images bucket. `packages/shared-data/src/database.types.ts` is generated from the Rate copy only, so it lacks `origin`, `availability` and `spec_provenance`. Mirroring those is a prerequisite of phase M1 (section 7). + +| Object | Level today | What it assumes | Source | +| :--- | :--- | :--- | :--- | +| `master_products` | storage variant | `UNIQUE(model_key)` and `UNIQUE(slug)`, both including storage. It holds every catalog attribute and aggregate: specs, images, `min_price`/`max_price`, `merchant_count`, `user_rating_weighted`, `authentic_review_count`, status. | `20261005130000_rate_recover_master_products.sql:28-83` | +| `products` (listings) | listing | `cluster_id` FK to one master, with NO ACTION on delete. There is no variant, condition or region column. Raw marketplace SKUs live in `models jsonb`. `UNIQUE(platform, platform_item_id)`. | `20260912120000_init_rate_schema.sql:81-108`, recover `:267-270` | +| `price_history` | listing | Keyed by `product_id`. There is no master-level history. | init `:137-146` | +| `reviews`, `review_flags`, `review_votes`, `review_analysis` | listing | Reviews never reference a master. `reviews.variation` is free text. | init `:151-182`, `20261014011054` | +| `price_alerts` | variant | `master_product_id` FK with CASCADE. The alert compares against the variant's `min_price`. | `20261015010000:10-27` | +| `promotions` | listing | `sku_scope` is the only SKU concept in the schema. | `20261005130001:612-635` | +| `crawl_jobs` | listing / platform | No master reference. Payloads carry master ids as JSON. | `20261005130001:25-73` | +| `match_master_product` | variant | Filter `($4 IS NULL OR mp.storage_gb = $4)`: a NULL storage drops the storage check (the cause of #1105). No status filter. The signature is pinned by the contract guard. | recover `:137-179`, `:283-292` | +| `search_master_products`, `get_category_brand_facets`, `search_catalog_autocomplete` | variant | Return one row per storage, and facet counts are inflated by the number of sizes. | `20261019060000`, `20261018120104:30-53`, `20261018120102:94-187` | +| `refresh_master_market_stats`, `refresh_master_product_rating` | variant | Aggregate over `products WHERE cluster_id = master`. | `20261018120103`, DOS-Me `20261024060000` | +| `submit_community_review` | variant to listing | Takes a master id, then writes the review onto that master's cheapest listing. | `20261018100000:45-271` | +| `upsert_price_alert` | variant | Resolves the master by slug. | `20261018120000:60-188` | +| `listing_price_context` (DOS-Me) | variant | Peer price floors are per `cluster_id`. | DOS-Me `20261018160000` | + +**Notes** + +- The contract guard in `20261005130000` compares the live columns to its 28-column list with a FULL OUTER JOIN (`:216-235`). Any extra column therefore counts as drift. It passes only because it runs at its own position in an ordered replay. Re-running that migration on a database that already has DOS-Me's `spec_provenance` would fail today. So the guard is not what limits this design. The real limits are the frozen `match_master_product` signature (`:283-292`) and the code that reads `master_products`. This design **adds** columns and renames nothing. +- `rate.v_products_with_merchant_trust` (`20261014033000:17-61`, re-created in DOS-Me `20261018153000:320-365`) is the listing view the web reads offers from (`rate-api.ts:1292,1358`). It has a fixed column list. A new `item_id` column must be appended at the end, so that `CREATE OR REPLACE VIEW` still works. +- No trigger maintains `min_price` or `merchant_count`. Callers (importer, worker, auditors) invoke the refresh RPCs explicitly. + +### 1.2 Importer (`apps/importer`) + +- **Key shape.** `ProductNormalizer.normalize()` builds `model_key = slugify(brand):slugify(model + appleSize):{N}gb|unknown` in one place (`product-normalizer.ts:1685`). Name and slug include the storage only when it is known (`:1694-1700`). RAM, condition, region and colour never enter the key. +- **Registry.** `CANONICAL_PHONE_REGISTRY` (`:227`) is already keyed `brand:model` with no storage. **That is the Item key.** +- **Apple sizes.** Since #1113 and #1124, Apple screen and case sizes are folded into the model slug, for example `ipad-pro-m5-11` vs `ipad-pro-m5-13`. They are therefore already separate Items. +- **`:unknown` is overloaded.** It means "storage not stated" (`needs_review: true`) for phones. For earbuds it means "storage not applicable" (`needs_review: false`, `:1623-1626`). +- **`EntityMatcher.resolveOrCreateMasterProduct`** (`entity-matcher.ts:148-406`): + - Tier 1: exact `model_key`. + - Tier 2: `match_master_product` with `p_storage_gb` (NULL when unknown). Accepts at 0.70. + - Tier 3: AI enrich, then insert a master, `draft` when `needs_review`. + - `enrichMasterProductById` can back-fill `storage_gb` on an `:unknown` master without changing its key (`:530`). +- **Pipeline** (`shopee-to-supabase.ts:401-985`): + - Upserts the listing with `cluster_id = masterId`. + - Then calls `refresh_master_market_stats`. + - Price history is per listing. + - **Existing defect:** the listing's `price_min`/`price_max` span every marketplace variation (all storages), yet they are attributed to one sized master (`:546-548`). They feed that master's `min_price`/`max_price` through `refresh_master_market_stats`. + - `masterIdHint` (`:488-519`) lets Rate-Services pin a listing to a master. +- **Seeds** (`flagship-seed-data.ts`) list one sized key per device. Several seed keys never match what the normalizer produces: + - earbuds seeded as `:64gb` or `:standard`, while the normalizer gives `:unknown`; + - `apple:watch-ultra-3-49mm:64gb`, while the normalizer gives `apple:watch-ultra-3:64gb`. + + Tier 1 never hits these, which can create duplicates. +- **Spec enrichment** is per variant: the cache key includes storage and RAM (`ai-spec-enricher.ts:812`), although almost every spec is Item-level. +- **Rating refresh** is per master (`ai-review-analyzer.ts:2404`). Peer price floors group by `cluster_id` (`merchant-review-risk.ts:474-489`, `cluster-peer-floor.ts`). +- **Tests pinning the key format:** + - `open-core-intelligence.test.ts` (~131 key assertions) + - `entity-matcher.test.ts` + - `shopee-to-supabase.test.ts` + - `arena-audit.test.ts` + - `dist-exports.smoke.mjs` (the Rate-Services contract) + +### 1.3 Web, API v1, extension (`apps/web`, `apps/extension`) + +- **One master is one page.** + - Product pages: `/{category}/{slug}` (`app/[locale]/smartphones/[slug]/page.tsx`; other categories wrap it). + - Canonical: the variant slug. + - JSON-LD: a single `Product` with `sku = model_key` and its own AggregateOffer and AggregateRating. There is no `ProductGroup`. + - Variants appear only as text in `variant_name` and `name`. There is no sibling list and no picker. +- **Sibling leaks.** + - `rankRelatedCompetitors` (`lib/product-competitors.ts:63-93`) excludes only the same slug, so other sizes of the same model show as "direct competitors". + - The same happens in versus links, leaderboard ranks, popular battles and the category "compare top 2". +- **Directory, search, facets, leaderboard, sitemap and home stats all count variants.** + - `search_master_products`, `get_category_brand_facets`, `getSitemapRows`, `masterProductsCount`. + - One model can hold several top-10 leaderboard slots. +- **Persisted state keyed by variant slug:** + - price alerts (RPC `p_product_slug`); + - watchlist and compare-tray localStorage (`rate_price_watchlist_v1`, `rate_compare_tray_v1`); + - cache tags `rate:product:`; + - public API v1 (`/products/{slug}`, `/compare?slugs=`, `/versus?pair=`, `/watchlist`, `/reviews?slug=`); + - extension response URLs. +- **Redirects.** None exist today apart from www to apex and the locale prefix (`proxy.ts:63-80`, `next.config.mjs:146-155`). +- **The extension is already variant-aware.** + - `lookupExtensionProduct` (`server/rate/extension.ts:960`) groups sibling masters by brand + model among the top 8 search hits. + - It defaults an unknown storage to 256GB (`:1212`). + - The side panel renders a variant picker (`sidepanel.ts:343-356`). + - **Defect (separate):** the extension's `/watchlist?add=` link has no handler on the web. +- **E2E.** `apps/web/e2e/seed.sql` has two single-size masters. About 40 test URLs pin `iphone-16-pro-max-256gb`. + +### 1.4 DOS/Rate-Services (read-only; general terms only) + +- **How it uses this repo.** It consumes `@repo/crawlers` and `@repo/shared-data` through `vendor/rate`: + - the ingestion pipeline (with `masterIdHint`); + - `ProductNormalizer` (to read `model_key`, `storage_gb`); + - `AiReviewAnalyzer`; + - the arena spec syncer; + - shared rules. + + It does not call `EntityMatcher` directly. +- **Key parsing.** Its discovery and listing-verification code parses `model_key` as three `:`-separated segments: storage-strict matching, "stated storage" rewriting, and the "other variant" mismatch classification (lineage of DOS/Rate-Services#616 and #618). Title rewriting for some marketplaces exists only to steer a listing onto the right per-storage master. +- **Seeding is per master, which means per storage.** This covers coverage gaps, search queries built from the sized name, the market floor and refresh rotation. Job payloads carry `master_id`/`cluster_id`/`target_model_key`. +- **Every auditor groups by `cluster_id`:** price spread (which also writes master `min_price`/`max_price`/`merchant_count`/`key_specs`/`status`), price anomaly, merchant risk, review burst, catalog provenance and wrong-listing cleanup. The price alert evaluator uses `master_product_id`. +- **Its test harness pins about 184 key literals.** These include `:standard`, `:1024gb` and legacy `khc:` keys, so the third segment is not always storage. + +## 2. Requirements derived from the survey + +1. **One page, card, leaderboard slot and sitemap entry per Item.** Siblings must never compete with each other. +2. **Price comparisons stay within one variant:** min price, spread, deal radar, peer floors, bait detection, alerts. A 128GB price must never set the floor for 1TB. +3. **A listing whose variant is unknown is kept and shown, but never feeds a per-variant price.** +4. **Old variant slugs, API calls, alerts, watchlists and compare trays keep working.** +5. **No fuzzy assignment of storage.** A variant is assigned only from explicit evidence: title, marketplace SKU, or a single-size registry line. +6. **Additive, idempotent, reversible DOS-Me migrations.** Do not break the `master_products` contract guard. + +## 3. Options + +| | **A. Items + new variants table** | **B. Items above `master_products` (recommended)** | **C. Self-referencing `master_products` (`parent_id`, `kind`)** | **D. Repurpose `master_products` as Item, new variants table** | +| :--- | :--- | :--- | :--- | :--- | +| New tables | `items`, `item_variants` | `items` | none | `item_variants` | +| What `master_products` becomes | legacy, deprecated | the variant table (unchanged identity) | both levels in one table | the Item table | +| `cluster_id` meaning | must move to `variant_id` | unchanged (variant); NULL = unknown | unchanged | changes to Item; every per-cluster price computation would mix storages | +| Per-variant price logic (DB, importer, Rate-Services auditors) | rewrite | **unchanged** | unchanged | rewrite everywhere | +| Old slugs and ids | need an alias map | variant rows keep their slug and id | keep | ids change meaning silently (dangerous) | +| Contract guard / frozen RPC signature | untouched (but table goes stale) | untouched | needs new columns with mixed semantics; queries must filter `kind` everywhere | violated | +| Clarity of the end state | best | good (the table name is legacy; a view alias can fix it later) | poor | good, but unsafe migration | +| Cost | highest | **lowest** | medium, with lasting complexity | high, high risk | + +**Recommendation: B.** It gets JOY's model (one Item, sizes as variants, many listings) at the lowest risk, because the riskiest logic in the system (per-variant price comparison across three codebases) does not change. Option A is cleaner on paper. But it rewrites every per-cluster query in this repo and in Rate-Services for a naming gain. That gain can still be had later with a `rate.item_variants` view over `master_products` (section 7, M6). + +## 4. Proposed schema (Option B) + +### 4.1 Levels and what lives where + +| Data | Item | Variant (`master_products`) | Listing (`products`) | +| :--- | :--- | :--- | :--- | +| Identity | `item_key` = `brand:model` (Apple screen or case size stays in `model`), `slug`, `name`, `brand`, `model`, `category_id`, `status` | `variant_key` (the literal key segment, e.g. `256gb`, `1024gb`, `standard`, `unknown`), `model_key` = `item_key:variant_key` (unchanged), own `slug` (old URL), `variant_name` label, `sort_order` | `item_id` (required), `cluster_id` = variant (NULL = unknown), `platform`, `platform_item_id`, `url` | +| Specs | `specifications`, `key_specs`, `description`, `images`, `thumbnail`, `spec_provenance`, expert review | overrides only: `storage_gb`, `ram_gb`, `key_specs.storage`, launch price | raw `models`, `attributes`, `title` | +| Prices | `min_price` = min over published variants; `max_price`; `price_variant_count` | `min_price`, `max_price`, `merchant_count` (unchanged logic; known-variant listings only) | `price_current`, `price_history` (unchanged) | +| Ratings and reviews | `user_rating_weighted`, `authentic_review_count`, `average_rating`, `total_reviews`, computed over **all** listings of the Item, including unknown-variant ones | during the compatibility window the columns mirror the Item value; no separate per-size rating | review rows stay on listings; `reviews.variation` text stays | +| Counts | `listing_count`, `unknown_variant_listing_count`, `merchant_count` (distinct over all listings) | `merchant_count` | | +| Alerts | (optional later: "any size" alert) | `price_alerts.master_product_id` unchanged | | +| Deals, spread, peer floors, bait detection | none (rolled up for display only) | per variant, as today | input | + +- **Ratings live on the Item.** Reviews of a 256GB and a 512GB phone describe the same device, and splitting them halves the evidence behind every Bayesian score. A per-size rating has no product meaning for storage. +- **Prices live on the variant.** The Item only shows a "from" price and a range. + +### 4.2 Variant axis + +- **v1: storage only.** `variant_key` is the existing third key segment, **stored literally**: `256gb`, `1024gb`, `standard`, `unknown`. This keeps `model_key = item_key:variant_key` true for every existing row and for what the normalizer emits today, so Tier 1 matching and Rate-Services fixtures keep working. Display labels (`1TB`, "Standard") are derived; they are never keys. +- **When `unknown` is a real variant and when it is not.** + - **Single-variant Item:** the Item has no sized variant, for example earbuds (the normalizer keys every earbud as `:unknown` on purpose, `product-normalizer.ts:1623-1626`), Garmin watches, or a line not yet seen with a size. Here the `unknown` (or `standard`) master **is** the Item's only variant. Its listings keep `cluster_id`, and it has a normal price. + - **Multi-size Item:** the Item has at least one **non-archived** sized variant (`variant_key ~ '^\d+(gb|tb)$'`), and its category has a storage axis (never earbuds). Here `unknown` means "size not stated". The listing gets `cluster_id = NULL`, and the `:unknown` master is retired (M3 and the importer rule in 4.5). +- **Single-size registry lines** (`only_storage_gb`) get that size, as today. +- **Apple screen and case sizes stay part of the Item.** This keeps the #1113/#1124 behaviour: iPad Pro 11 and iPad Pro 13 are different Items. They have different specs, battery and screen, not just a different SKU. +- **Colour stays a listing attribute,** not a variant. +- **Connectivity (Wi-Fi vs Cellular for tablets and watches) is an open question (Q3).** The key format reserves room: `256gb-cellular` is a valid `variant_key`, so adding the axis later is data, not schema. +- **RAM** that comes paired with storage (e.g. 12/256 vs 12/512) goes in the variant's `ram_gb`. RAM-only differences at the same storage are rare in the catalog, so they would also be suffixed (`256gb-16gbram`) only if they occur. + +### 4.3 Draft DDL (for review only; the target is a DOS-Me migration) + +```sql +-- M1: additive +CREATE TABLE IF NOT EXISTS rate.items ( + id uuid PRIMARY KEY DEFAULT gen_random_uuid(), + item_key text NOT NULL, + slug text NOT NULL, + name text NOT NULL, + brand text NOT NULL, + model text NOT NULL, + category_id uuid REFERENCES rate.categories(id) ON DELETE SET NULL, + status text NOT NULL DEFAULT 'draft' + CHECK (status IN ('draft','published','archived')), + entity_type text NOT NULL DEFAULT 'product', + description text, + specifications jsonb NOT NULL DEFAULT '{}'::jsonb, + key_specs jsonb NOT NULL DEFAULT '{}'::jsonb, + spec_provenance jsonb NOT NULL DEFAULT '{}'::jsonb, + images text[] NOT NULL DEFAULT '{}', + thumbnail text, + default_variant_id uuid, -- FK added below; nullable, so no insert-order cycle + min_price numeric(15,2) NOT NULL DEFAULT 0, + max_price numeric(15,2) NOT NULL DEFAULT 0, + price_variant_count integer NOT NULL DEFAULT 0, + merchant_count integer NOT NULL DEFAULT 0, + listing_count integer NOT NULL DEFAULT 0, + unknown_variant_listing_count integer NOT NULL DEFAULT 0, + total_reviews integer NOT NULL DEFAULT 0, + average_rating numeric(3,2) NOT NULL DEFAULT 0, + user_rating_weighted numeric(3,2), + authentic_review_count integer NOT NULL DEFAULT 0, + expert_rating numeric(3,2), + expert_review_summary text, + expert_criteria_scores jsonb NOT NULL DEFAULT '{}'::jsonb, + metadata jsonb NOT NULL DEFAULT '{}'::jsonb, + created_at timestamptz NOT NULL DEFAULT now(), + updated_at timestamptz NOT NULL DEFAULT now(), + CONSTRAINT items_item_key_key UNIQUE (item_key), + CONSTRAINT items_slug_key UNIQUE (slug) +); +-- No shape CHECK on item_key: legacy keys (e.g. `khc:`) must still get an Item (M2) and are +-- reported by the M0 inventory instead. + +ALTER TABLE rate.master_products ADD COLUMN IF NOT EXISTS item_id uuid; +ALTER TABLE rate.master_products ADD COLUMN IF NOT EXISTS variant_key text; +ALTER TABLE rate.master_products ADD COLUMN IF NOT EXISTS sort_order smallint; +ALTER TABLE rate.products ADD COLUMN IF NOT EXISTS item_id uuid; +ALTER TABLE rate.products ADD COLUMN IF NOT EXISTS variant_source text; + +DO $$ BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_constraint + WHERE conrelid = 'rate.products'::regclass AND conname = 'products_variant_source_check') THEN + ALTER TABLE rate.products ADD CONSTRAINT products_variant_source_check CHECK + (variant_source IS NULL OR variant_source IN ('title','sku','single_size','single_variant','manual','legacy')); + END IF; + IF NOT EXISTS (SELECT 1 FROM pg_constraint + WHERE conrelid = 'rate.master_products'::regclass AND conname = 'fk_master_products_item') THEN + ALTER TABLE rate.master_products ADD CONSTRAINT fk_master_products_item + FOREIGN KEY (item_id) REFERENCES rate.items(id) ON DELETE RESTRICT; + END IF; + IF NOT EXISTS (SELECT 1 FROM pg_constraint + WHERE conrelid = 'rate.products'::regclass AND conname = 'fk_products_item') THEN + ALTER TABLE rate.products ADD CONSTRAINT fk_products_item + FOREIGN KEY (item_id) REFERENCES rate.items(id) ON DELETE RESTRICT; + END IF; + IF NOT EXISTS (SELECT 1 FROM pg_constraint + WHERE conrelid = 'rate.items'::regclass AND conname = 'fk_items_default_variant') THEN + ALTER TABLE rate.items ADD CONSTRAINT fk_items_default_variant + FOREIGN KEY (default_variant_id) REFERENCES rate.master_products(id) ON DELETE SET NULL; + END IF; +END $$; + +CREATE UNIQUE INDEX IF NOT EXISTS uq_master_products_item_variant + ON rate.master_products (item_id, variant_key) WHERE item_id IS NOT NULL AND variant_key IS NOT NULL; +CREATE INDEX IF NOT EXISTS idx_rate_products_item ON rate.products (item_id); +CREATE INDEX IF NOT EXISTS idx_items_status_cat_price ON rate.items (status, category_id, min_price); +CREATE INDEX IF NOT EXISTS idx_items_status_rating ON rate.items (status, user_rating_weighted DESC); + +-- pg_trgm lives in schema `sign` on prod and `extensions` elsewhere (DOS-Me 20261018183000:93-103), +-- so the trigram index is built with the schema looked up at run time, as init :41-57 does. +DO $$ DECLARE v_trgm text; BEGIN + SELECT n.nspname INTO v_trgm FROM pg_extension e JOIN pg_namespace n ON n.oid = e.extnamespace + WHERE e.extname = 'pg_trgm'; + EXECUTE format('CREATE INDEX IF NOT EXISTS idx_items_search_trgm ON rate.items USING gin ' + '((brand || '' '' || name || '' '' || model || '' '' || item_key) %I.gin_trgm_ops)', v_trgm); +END $$; + +ALTER TABLE rate.items ENABLE ROW LEVEL SECURITY; +DROP POLICY IF EXISTS "Public can view published items" ON rate.items; +CREATE POLICY "Public can view published items" ON rate.items FOR SELECT USING (status = 'published'); +DROP POLICY IF EXISTS "Service role write items" ON rate.items; +CREATE POLICY "Service role write items" ON rate.items FOR ALL TO service_role USING (true) WITH CHECK (true); +GRANT SELECT ON rate.items TO anon, authenticated; +GRANT ALL ON rate.items TO service_role; +-- plus: rate_worker SELECT policy and grant on rate.items (pattern of DOS-Me 20261018183000; writes go +-- through the SECURITY DEFINER sync triggers and Item RPCs, EXECUTE granted to rate_worker), the updated_at +-- trigger (pattern of 20261018120105), and `item_id` appended at the END of +-- v_products_with_merchant_trust so CREATE OR REPLACE VIEW keeps working. +``` + +**M1 and M2 ship as one DOS-Me migration** (schema, sync triggers and backfill in one transaction), so there is no gap in which the triggers create Items that the backfill then skips. Sections 4.3 and 7.1 stay separate here only for readability. + +**Compatibility sync (M1, removed in M4).** The old importer and Rate-Services keep writing `cluster_id` without `item_id` until their code changes ship. A listing can also move between masters after the backfill. So M1 installs two BEFORE triggers. This makes the order between the migration and the code deploys irrelevant: + +```sql +-- products: item follows the variant whenever a variant is set +CREATE OR REPLACE FUNCTION rate.products_sync_item() RETURNS trigger +LANGUAGE plpgsql SECURITY DEFINER SET search_path = '' AS $$ +BEGIN + IF NEW.cluster_id IS NOT NULL THEN + SELECT mp.item_id INTO NEW.item_id FROM rate.master_products mp WHERE mp.id = NEW.cluster_id; + END IF; -- cluster_id NULL: keep the item_id the writer supplied (unknown variant) + RETURN NEW; +END $$; +-- master_products: a master inserted without an Item gets one from its key (created as draft) +-- SECURITY DEFINER: writers such as rate_worker are subject to RLS and hold no grant on rate.items; +-- the function only derives an Item from the row being written, so it exposes nothing else. +CREATE OR REPLACE FUNCTION rate.master_products_sync_item() RETURNS trigger +LANGUAGE plpgsql SECURITY DEFINER SET search_path = '' AS $$ +DECLARE v_key text := split_part(NEW.model_key, ':', 1) || ':' || split_part(NEW.model_key, ':', 2); +BEGIN + IF TG_OP = 'INSERT' OR NEW.model_key IS DISTINCT FROM OLD.model_key THEN + NEW.variant_key := NULLIF(split_part(NEW.model_key, ':', 3), ''); -- re-derived on a re-key + INSERT INTO rate.items (item_key, slug, name, brand, model, category_id, status) + VALUES (v_key, rate.item_slug_from_master(NEW.slug, NEW.model_key), + rate.item_name_from_master(NEW.name), NEW.brand, NEW.model, NEW.category_id, + CASE WHEN NEW.status = 'published' THEN 'published' ELSE 'draft' END) + ON CONFLICT (item_key) DO NOTHING; + SELECT i.id INTO NEW.item_id FROM rate.items i WHERE i.item_key = v_key; + END IF; + IF NEW.status = 'published' THEN -- publishing a variant publishes its Item + UPDATE rate.items SET status = 'published' WHERE id = NEW.item_id AND status <> 'published'; + END IF; + RETURN NEW; +END $$; +-- An AFTER UPDATE OF model_key, item_id trigger moves the master's listings to the new item_id in +-- the same statement (UPDATE rate.products SET item_id = NEW.item_id WHERE cluster_id = NEW.id). +-- CREATE TRIGGER trg_products_sync_item BEFORE INSERT OR UPDATE OF cluster_id ON rate.products ... +-- CREATE TRIGGER trg_master_products_sync_item BEFORE INSERT OR UPDATE OF model_key ON rate.master_products ... +-- (each wrapped in DROP TRIGGER IF EXISTS; slug collision in the INSERT falls back to a suffixed slug) +``` + +```sql +-- M4: constraints, after the backfill and reconciliation are verified (every step re-runnable) +DO $$ BEGIN + IF NOT EXISTS (SELECT 1 FROM rate.master_products WHERE item_id IS NULL) THEN + ALTER TABLE rate.master_products ALTER COLUMN item_id SET NOT NULL; + ELSE + RAISE EXCEPTION 'M4: master_products rows without item_id remain'; + END IF; + IF NOT EXISTS (SELECT 1 FROM pg_constraint + WHERE conrelid = 'rate.products'::regclass AND conname = 'products_item_id_not_null') THEN + ALTER TABLE rate.products ADD CONSTRAINT products_item_id_not_null CHECK (item_id IS NOT NULL) NOT VALID; + END IF; +END $$; +ALTER TABLE rate.products VALIDATE CONSTRAINT products_item_id_not_null; -- no-op when already valid + +-- A listing's variant must belong to the listing's Item. +CREATE OR REPLACE FUNCTION rate.products_variant_item_guard() RETURNS trigger +LANGUAGE plpgsql SET search_path = '' AS $$ +BEGIN + IF NEW.cluster_id IS NOT NULL AND NOT EXISTS ( + SELECT 1 FROM rate.master_products mp + WHERE mp.id = NEW.cluster_id AND mp.item_id = NEW.item_id) THEN + RAISE EXCEPTION 'listing % variant % is not a variant of item %', NEW.id, NEW.cluster_id, NEW.item_id + USING ERRCODE = '23514'; + END IF; + RETURN NEW; +END $$; +DROP TRIGGER IF EXISTS trg_products_variant_item_guard ON rate.products; +CREATE TRIGGER trg_products_variant_item_guard + BEFORE INSERT OR UPDATE OF cluster_id, item_id ON rate.products + FOR EACH ROW EXECUTE FUNCTION rate.products_variant_item_guard(); +-- Companion trigger on master_products: changing a variant's item_id is rejected while it still has +-- listings on the old Item (moves are done by an RPC that moves the listings in the same transaction). +``` + +### 4.4 Listing with an unknown variant + +This applies only to multi-size Items (section 4.2). On a single-variant Item, every listing belongs to its one variant. + +- **Stored as:** `products.item_id = `, `products.cluster_id = NULL`, `variant_source = NULL`. +- **Never feeds a variant.** It is excluded from variant `min_price`/`max_price`/`merchant_count`, spread, deal radar and peer floors. These already filter by `cluster_id`, so the exclusion is automatic. Every consumer that groups by `cluster_id` must still treat NULL as "no variant" rather than as one group (section 5). +- **Counted at Item level.** It feeds Item `listing_count`, `unknown_variant_listing_count`, Item `merchant_count` and Item ratings, because its reviews are about the device. +- **Shown** on the Item page in a separate group, "Storage not stated" (VI: "Chưa rõ dung lượng"). Each row gets a note and its own price. It is not used for the "from" price (Q2). +- **Kept fresh.** Refresh jobs for these listings are keyed by listing and Item, not by variant, so they keep being re-crawled (section 5.4). +- **Upgraded later, never guessed.** It moves to a variant when a later crawl gives explicit evidence: a stated title, a selected marketplace SKU, or a single-size line. `variant_source` records which. The AI enricher must not set storage on a listing. +- **Multi-size marketplace listings.** A Shopee listing whose SKUs span several storages is one listing with one `price_current`/`price_min`/`price_max`. + - Phase 1 attaches it to the variant of its cheapest SKU only when that SKU names its storage, and otherwise to the Item with unknown variant. + - This fixes the variant's **min** price. But `price_max` still spans every SKU (`shopee-to-supabase.ts:546-548`) and still feeds the variant's `max_price`. Phase 1 should therefore write the SKU's own price as `price_max` for such a listing, or the variant max must ignore multi-SKU listings. + - The full fix is per-SKU offers, the optional phase M5 (`rate.listing_skus`). + +### 4.5 Keys and matching + +- **Normalizer output**: + - `item_key` = `slugify(brand):slugify(model + appleSize)`; + - `variant_key` = the third key segment in today's format (`{N}gb`, `unknown`; earbuds stay `unknown`); + - `item_name` and `item_slug` (no storage); + - `variant_name`; + - a new `variant_known` flag. + + `model_key` keeps exactly today's shape, so Rate-Services helpers and fixtures keep working. +- **Shared helpers.** `packages/shared-data` gets `composeModelKey` and `splitModelKey`, so Rate-Services stops parsing key strings itself. +- **Matcher, item first:** + 1. Item by exact `item_key`. + 2. If the size is known: the variant by exact `(item_id, variant_key)`. A missing sized variant of a known published Item is created as a variant row. Specs are inherited from the Item; only storage and RAM are overridden. The Item stays published. A draft is needed only when the Item is new. + 3. If the size is unknown: on a single-variant Item, its one variant; on a multi-size Item, no variant (`cluster_id = NULL`). + 4. **Retiring `unknown`.** When an Item gets its first sized variant, its `unknown` master is retired by the same rule as M3: listings get `cluster_id = NULL`, and the master is archived. This is an RPC run in one transaction. + 5. Tier 2 fuzzy runs against **Item** names through a new RPC, `match_item(search_title, p_brand, p_model, p_threshold)`. Item names never contain storage, so the #1105 failure mode (bare title vs sized name) disappears. The RPC calls `similarity()` schema-qualified through the run-time pg_trgm lookup, as `match_master_product` does, and is granted to `rate_worker`. The frozen `match_master_product` stays for the compatibility window. + 6. Tier 3 creates a draft Item, plus a variant only when the key states one. +- **Pipeline hints:** + - `masterIdHint` keeps working (a variant id implies its Item). It must **reject archived masters**: today the hint is only checked for existence (`shopee-to-supabase.ts:488-519`), so a queued job that still carries a retired `:unknown` master id would put the listing back on it. When the hinted master is archived, the hint is mapped to its Item with no variant. + - A new `itemIdHint` is added for storage-less pages. +- **Ratings.** `refresh_master_product_rating` keeps its signature. Its body is replaced so that it resolves the master's Item, computes the rating over every listing of that Item (including unknown-variant listings), writes it on the Item, and mirrors it onto each variant row for old readers. `refresh_review_vote_counts` today resolves the master through `cluster_id` and skips NULL (`20261018120103:170`). It switches to `products.item_id`, so votes on unknown-variant listings also count. + +## 5. Impact + +### 5.1 `apps/web` + +| Area | Change | +| :--- | :--- | +| Data layer (`lib/rate-api.ts`, `server/rate/*`) | New `getItemBySlug`, `getItemVariants`, `getItemOffers` (grouped by variant, plus the unknown group), and `resolveCatalogSlug(slug)` returning `{item, variant}` from either an item slug or an old variant slug. Price history: one series per variant. Reviews and summary: across the Item's listings. | +| Product page | One page per Item: `/{category}/{item-slug}`. Variant selector with a price per variant, preselected by `?v=256gb` or by the old slug. Title and meta use "from X". JSON-LD becomes `ProductGroup` (`variesBy: storage`, `hasVariant` Products with their own sku and AggregateOffer) plus one Item-level AggregateRating. Competitors, leaderboard standing and versus suggestions exclude same-Item siblings. The page also checks that the route category matches the Item (fixes the `/tablets/` canonical leak). | +| URLs and redirects | An old variant slug gets a 308 `permanentRedirect` to `/{category}/{item-slug}?v={variant_key}`. Canonical is the Item URL (Q1). No alias table is needed while variants keep their `slug`. Slug-collision rule: an Item slug may equal only one of its own variants' slugs (for example single-size earbuds), checked by a verification query and by the importer. | +| Directory, search, facets, autocomplete | One card per Item with a "from" price and size chips. The `?storage=` filter means "has a variant of that size". Brand facet and pagination counts become Items. New RPCs: `search_items_v1`, `get_category_brand_facets_v2`, `search_catalog_autocomplete_v2`. | +| Compare and versus | Compare by Item, optionally pinning a variant (`slug@256gb`). Versus URLs become `{itemA}-vs-{itemB}`, and old variant pairs 308 to the Item pair. Same-Item pairs are rejected. Tray localStorage entries migrate on read (resolve the slug, keep the variant). | +| Deals | Deal computation stays per variant. Cards link to the Item with the variant preselected. | +| Leaderboard, stats, sitemap | Rank and count Items. The sitemap emits Item URLs only, with lastmod = max over variants and listings. "Products tracked" counts Items. | +| Watchlist and price alerts | Alerts stay per variant (Q5). Old slugs resolve. The UI asks for a size when the watchlist entry is an Item. | +| Cache | Revalidating a variant slug also busts `rate:product:`. | + +### 5.2 API v1 and extension + +- **Additive only within v1.** + - `GET /products/{slug}` accepts an Item or variant slug. It returns the current `product` (the selected or default variant, so existing clients keep working) plus new `item`, `variants[]`, `selected_variant` and `unknown_variant_offers`. + - `GET /products` gains `group=item|variant`. It defaults to `variant` for the compatibility window. Switching the default is a documented breaking change and needs an announcement (Q7). + - OpenAPI gains Item and Variant component schemas. The doc text also gets corrected: it claims `/products/{slug}` accepts a `model_key`, which it does not. +- **Extension.** + - `lookupExtensionProduct` resolves the Item and returns **all** its variants from the DB, not only the siblings among the top 8 search hits. + - Exact listing lookup by URL or `platform_item_id` today requires `cluster_id NOT NULL` (`extension.ts:1101-1103`, and the same in `inspectProductOrShopUrl`, `rate-api.ts:3706-3728`). It gains an `item_id` fallback, so unknown-variant listings are still recognised. + - It drops the "unknown storage means 256GB" default; unknown shows the Item with no size preselected. + - It returns Item URLs. + - The side-panel picker already exists, so the client change is small. + - The dead `/watchlist?add=` link gets its handler in the same task. + +### 5.3 `apps/importer` + +| File | Change | +| :--- | :--- | +| `product-normalizer.ts` | Emit `item_key`, `variant_key` (the literal third segment, format unchanged), `item_name`, `item_slug`, and a `variant_known` flag, so callers stop inferring it from `:unknown`. `needs_review` stops meaning "storage unknown". | +| `entity-matcher.ts` | Item-first tiers (section 4.5). Variant creation under a published Item. Fuzzy only at Item level. Return `{itemId, variantId \| null}`. **Closes #1105.** | +| `shopee-to-supabase.ts` | Write `products.item_id`, nullable `cluster_id`, `variant_source`. Pick the variant from the selected or cheapest SKU only when it states storage. Refresh variant stats, then Item stats. `itemIdHint`. | +| `ai-spec-enricher.ts` | Cache and enrich per Item. Variant overrides only. Never assign storage to a listing. | +| `ai-review-analyzer.ts`, `merchant-review-risk.ts`, `cluster-peer-floor.ts` | Rating refresh at Item level. Peer floors unchanged (per variant), and they must skip NULL `cluster_id`. | +| `flagship-seed-data.ts`, `arena-spec-syncer.ts`, `jobs/backfill-specs.ts` | Seeds become one Item with a list of variants. Fix the seed key drift (earbuds `:64gb`/`:standard`, `watch-ultra-3-49mm`). Specs backfill per Item. | +| `package.json` exports, `dist-exports.smoke.mjs` | Export the new helpers and types. Keep the old exports for one vendor bump. | +| Tests | Key assertions gain `item_key`/`variant_key`. Matcher tests cover the bare title linking to an Item with no variant (the #1105 case). | + +### 5.4 DOS/Rate-Services (general terms; its own issues in its own repo) + +- **Grouping by `cluster_id` stays correct,** because it remains the variant. Every auditor that groups by it must treat NULL as "no variant": skip it for floors and spread, and count it at Item level if needed. This must ship **before** any writer starts producing NULL `cluster_id` (task 13 before M3 and before the importer flag in task 5). +- **Key-parsing helpers** should switch to the shared `splitModelKey`/`composeModelKey`, so they stop splitting strings themselves. Their about 184 fixture literals stay valid during the compatibility window, because `model_key` keeps its shape. +- **Listing verification** gains an Item-level mode. A page with no stated storage is accepted for the Item with no variant, instead of being rejected as "other variant". +- **Job payloads** carry `item_id` plus an optional variant id. Queued jobs with old variant ids stay valid, because variant ids do not change. The one exception is a retired `:unknown` master id (M3, or the importer rule in 4.5): the pipeline maps a hint to an archived master onto its Item with no variant. +- **Refresh rotation** is per master today. Listings with no variant must be refreshed by listing and Item, or their price and availability go stale. +- **Seeding and coverage** can run per Item, with per-variant coverage computed after the search. +- **Writers of master aggregates** (the spread auditor, cleanup scripts) also call the new Item refresh RPC. +- **Bump the `vendor/rate` pin** after the importer change lands. The local submodule checkout is currently ahead of the pinned commit, which is worth syncing first. + +## 6. #1105 decision + +With this model, a storage-less title resolves to the Item with no variant. #1105 option (a) (fall through to a draft `:unknown` master) would be throwaway work. During the interim, it would also hide those listings from public pages, because the `:unknown` master is a draft. + +**Recommendation:** close #1105 into the matcher task of this design (task 5). Keep today's behaviour until then. Rate-Services already guards discovery and refreshes against the wrong-size link. + +## 7. DOS-Me migration plan + +**Common rules for every phase** + +- Every step is idempotent: guarded by `IF NOT EXISTS` / `conrelid` + `conname` checks, or written as re-runnable `UPDATE ... WHERE `. +- Each phase is its own DOS-Me migration: preview, then beta, then prod, each with JOY's approval. +- Reference copies go into `DOS/Rate/supabase/migrations/`, and `database.types.ts` is regenerated. +- **Dependency:** the DOS-Me beta workflow is locked (ROADMAP 6.4). Until it reopens, these migrations cannot reach prod by the normal path. + +| Phase | What | Reversible by | +| :--- | :--- | :--- | +| **M0** | Mirror the eight missing DOS-Me `rate` migrations into this repo's reference copy and regenerate types (a docs/types PR, no DDL). Run the read-only inventory queries (7.3). If duplicates exist, fix seed-key drift as a separate, reviewed data step: earbuds seeded `:64gb`/`:standard` vs normalized `:unknown`, and `watch-ultra-3-49mm`. Duplicates are **archived, never deleted**: `price_alerts` cascade on delete, so alerts are moved to the surviving master first. | not applicable | +| **M1** | Ships in the same migration as M2. Additive DDL (4.3): `rate.items`, new columns, indexes (pg_trgm schema looked up at run time), RLS/grants, `rate_worker` access, updated_at trigger, `item_id` appended to the trust view, the two compatibility sync triggers, and the slug/name helper functions they call. | One transaction: drop the sync triggers, drop the FKs, drop the columns and `rate.items`. No existing data depends on them. | +| **M2** | Backfill (7.1) and new RPCs: `refresh_item_stats`, `match_item`, `resolve_catalog_slug`, `search_items_v1`, facet and autocomplete v2, plus `submit_community_review` accepting an Item. `refresh_master_product_rating` and `refresh_review_vote_counts` get Item-aware bodies with the same signatures (4.5). Other old RPCs are untouched. | One transaction, with writers paused: `UPDATE ... SET item_id = NULL, variant_key = NULL` on both tables, `UPDATE rate.items SET default_variant_id = NULL`, then `DELETE FROM rate.items`. **Never `TRUNCATE rate.items`:** it fails while the FKs exist, and `TRUNCATE ... CASCADE` would wipe `master_products`, `products` and, through them, price history, reviews and alerts. The old rating bodies are restored from the previous migration. | +| **Compatibility window** | Importer and Rate-Services ship Item-aware code. The sync triggers keep old writers consistent meanwhile. The web ships Item pages behind an env flag, then switches, and old slugs redirect. A reconciliation query (7.3) runs after the last writer changes. Lasts at least one promote cycle and until the sitemap has been re-crawled (about 30 days). | Flip the flag off. | +| **M3** | Retire `unknown` masters on **multi-size Items only** (7.2). Single-variant Items (earbuds, Garmin and other sizeless lines) are untouched. A backup table records each change. Runs only after Rate-Services handles NULL `cluster_id` (task 13). | Restore from the backup table (7.2) | +| **M4** | Constraints (4.3): `item_id NOT NULL` on both tables, the listing/variant/Item guard triggers, `default_variant_id` filled. Drop the compatibility sync triggers. | Drop the constraints and guard triggers, and re-create the sync triggers | +| **M5 (optional)** | `rate.listing_skus` (per-SKU price and stock per listing, with nullable `variant_id`). Per-SKU price history. | Drop table | +| **M6 (optional)** | `rate.item_variants` as a view over `master_products`, for naming clarity. Deprecate the per-variant rating mirror columns. | Drop view | + +### 7.1 M2 backfill (draft) + +```sql +-- Variant key = the literal third key segment (format unchanged: 256gb, 1024gb, standard, unknown). +UPDATE rate.master_products mp +SET variant_key = NULLIF(split_part(mp.model_key, ':', 3), '') +WHERE mp.variant_key IS NULL; + +-- One Item per brand:model, including Items whose masters are all archived (status 'archived'), +-- so that M4's NOT NULL can hold. Representative variant: published first, then most merchants, +-- then oldest. Nullable source columns are COALESCEd because the Item columns are NOT NULL. +INSERT INTO rate.items (item_key, slug, name, brand, model, category_id, status, entity_type, + description, specifications, key_specs, spec_provenance, images, thumbnail, + expert_rating, expert_review_summary, expert_criteria_scores, metadata) +SELECT DISTINCT ON (k.item_key) + k.item_key, + rate.item_slug_from_master(mp.slug, mp.model_key), -- strips '-gb|tb' / '-standard' / '-unknown' + rate.item_name_from_master(mp.name), -- strips a trailing ' GB|TB' + mp.brand, mp.model, mp.category_id, + CASE WHEN bool_or(mp.status = 'published') OVER w THEN 'published' + WHEN bool_or(COALESCE(mp.status, 'draft') <> 'archived') OVER w THEN 'draft' + ELSE 'archived' END, + COALESCE(mp.entity_type, 'product'), mp.description, + COALESCE(mp.specifications, '{}'::jsonb), COALESCE(mp.key_specs, '{}'::jsonb), + COALESCE(mp.spec_provenance, '{}'::jsonb), COALESCE(mp.images, '{}'), mp.thumbnail, + mp.expert_rating, mp.expert_review_summary, COALESCE(mp.expert_criteria_scores, '{}'::jsonb), + COALESCE(mp.metadata, '{}'::jsonb) || jsonb_build_object('backfilled_from_master', mp.id) +FROM rate.master_products mp +CROSS JOIN LATERAL (SELECT split_part(mp.model_key, ':', 1) || ':' || split_part(mp.model_key, ':', 2) AS item_key) k +WINDOW w AS (PARTITION BY k.item_key) +ORDER BY k.item_key, (mp.status = 'published') DESC NULLS LAST, + mp.merchant_count DESC NULLS LAST, mp.created_at ASC NULLS LAST +ON CONFLICT (item_key) DO NOTHING; +-- The helpers use single-backslash regexes ('-(\d+(gb|tb)|standard|unknown)$'), which are correct +-- under standard_conforming_strings = on. Slug collisions are found by the M0 inventory and resolved +-- first; the migration aborts if any remain. + +UPDATE rate.master_products mp SET item_id = i.id +FROM rate.items i +WHERE mp.item_id IS NULL + AND i.item_key = split_part(mp.model_key, ':', 1) || ':' || split_part(mp.model_key, ':', 2); + +-- Re-runnable and self-correcting: also fixes listings whose master changed after a previous run. +UPDATE rate.products p SET item_id = mp.item_id, variant_source = COALESCE(p.variant_source, 'legacy') +FROM rate.master_products mp +WHERE p.cluster_id = mp.id AND p.item_id IS DISTINCT FROM mp.item_id; + +-- Items that already existed (created by the sync triggers, or by a re-run): recompute status from +-- their masters, so a published product is never hidden behind a draft Item. +UPDATE rate.items i SET status = s.status +FROM (SELECT item_id, + CASE WHEN bool_or(status = 'published') THEN 'published' + WHEN bool_or(COALESCE(status, 'draft') <> 'archived') THEN 'draft' + ELSE 'archived' END AS status + FROM rate.master_products WHERE item_id IS NOT NULL GROUP BY item_id) s +WHERE i.id = s.item_id AND i.status IS DISTINCT FROM s.status; + +-- Item-level aggregates and ratings +SELECT rate.refresh_item_stats(id) FROM rate.items; +SELECT rate.refresh_master_product_rating(mp.id) -- new body writes the Item and the mirrors +FROM (SELECT DISTINCT ON (item_id) id, item_id FROM rate.master_products ORDER BY item_id, id) mp; +``` + +- **Specs in the backfill.** Item `specifications` are copied from the representative variant. A follow-up importer job (dry-run by default, like `backfill-specs.ts`) strips variant-only fields such as storage from the Item specs and writes them as variant overrides. +- **Listings with no master** (`products.cluster_id IS NULL` today, if any, for example listings never matched) get no Item from this backfill. The M0 inventory counts them. Before M4 each is either matched to an Item by the importer or archived, because M4 requires `item_id`. +- **Legacy keys** (`khc:`, old hyphen-format keys, anything without three segments) still get an Item, so no master is left behind. The inventory lists them for manual review. + +### 7.2 M3 retire `unknown` on multi-size Items (draft) + +```sql +CREATE TABLE IF NOT EXISTS rate.m3_unknown_variant_backup ( + product_id uuid PRIMARY KEY, + old_cluster_id uuid NOT NULL, + old_variant_source text, + master_old_status text, -- nullable: master_products.status is nullable + backed_up_at timestamptz NOT NULL DEFAULT now()); + +-- Abort first if the 7.3 seed-drift query (sized earbuds) still returns rows. +WITH multi AS ( -- Items with at least one LIVE sized variant + SELECT DISTINCT mp.item_id FROM rate.master_products mp + LEFT JOIN rate.categories c ON c.id = mp.category_id + WHERE mp.variant_key ~ '^\d+(gb|tb)$' + AND mp.status IS DISTINCT FROM 'archived' + AND COALESCE(c.slug, '') <> 'earbuds') -- sizeless categories are never multi-size +INSERT INTO rate.m3_unknown_variant_backup (product_id, old_cluster_id, old_variant_source, master_old_status) +SELECT p.id, p.cluster_id, p.variant_source, mp.status +FROM rate.products p +JOIN rate.master_products mp ON mp.id = p.cluster_id +JOIN multi ON multi.item_id = mp.item_id +WHERE mp.variant_key = 'unknown' +ON CONFLICT (product_id) DO NOTHING; + +UPDATE rate.products p SET cluster_id = NULL, variant_source = NULL +FROM rate.m3_unknown_variant_backup b WHERE p.id = b.product_id AND p.cluster_id = b.old_cluster_id; + +-- Archive the retired masters; any with price alerts are reported and resolved first +-- (alerts are per variant and an unknown master has no variant to point to). +UPDATE rate.master_products mp SET status = 'archived' +WHERE mp.id IN (SELECT DISTINCT old_cluster_id FROM rate.m3_unknown_variant_backup) + AND NOT EXISTS (SELECT 1 FROM rate.price_alerts a WHERE a.master_product_id = mp.id); +-- then refresh_master_market_stats for the affected masters and refresh_item_stats for their Items +``` + +**Rollback of M3.** Restore only rows that are still in the state M3 left them in. Report the rest instead of overwriting a variant the importer has assigned since: + +```sql +UPDATE rate.products p SET cluster_id = b.old_cluster_id, variant_source = b.old_variant_source +FROM rate.m3_unknown_variant_backup b +WHERE p.id = b.product_id AND p.cluster_id IS NULL; +SELECT b.product_id, p.cluster_id AS now_on FROM rate.m3_unknown_variant_backup b +JOIN rate.products p ON p.id = b.product_id WHERE p.cluster_id IS NOT NULL + AND p.cluster_id <> b.old_cluster_id; -- conflicts, resolved by hand +UPDATE rate.master_products mp SET status = b.master_old_status +FROM (SELECT DISTINCT old_cluster_id, master_old_status FROM rate.m3_unknown_variant_backup) b +WHERE mp.id = b.old_cluster_id; +-- then refresh the stats +``` + +**Community reviews.** `submit_community_review` attaches reviews to a listing. Moving a listing to "no variant" keeps the review on that listing and on the same Item. This avoids the orphaning seen in the iPhone 16e offer move (DOS-Me `20261022140000`). + +### 7.3 Verification queries (read-only; run after each phase) + +```sql +-- Inventory (M0) +SELECT count(*) FILTER (WHERE model_key !~ '^[a-z0-9][a-z0-9-]*:[a-z0-9][a-z0-9.-]*:[a-z0-9-]+$') AS bad_shape, + count(*) FILTER (WHERE model_key LIKE 'khc:%') AS khc_keys, + count(*) FILTER (WHERE split_part(model_key, ':', 3) = 'unknown') AS unknown_masters, + count(*) FILTER (WHERE status IS NULL) AS null_status, + count(*) FILTER (WHERE status = 'published') AS published, count(*) AS total +FROM rate.master_products; +SELECT count(*) AS listings_without_master FROM rate.products WHERE cluster_id IS NULL; +SELECT split_part(model_key, ':', 1) || ':' || split_part(model_key, ':', 2) AS item_key, + array_agg(model_key ORDER BY model_key) AS variants, count(DISTINCT brand) AS brands, + count(DISTINCT category_id) AS categories +FROM rate.master_products +GROUP BY 1 HAVING count(DISTINCT brand) > 1 OR count(DISTINCT category_id) > 1; -- expect 0 rows +-- Earbuds or other sizeless categories carrying a fake size (seed drift), to fix in M0 +SELECT mp.model_key FROM rate.master_products mp JOIN rate.categories c ON c.id = mp.category_id +WHERE c.slug = 'earbuds' AND split_part(mp.model_key, ':', 3) NOT IN ('unknown'); +-- Unknown masters on multi-size Items that carry alerts or community reviews (decide before M3) +SELECT mp.model_key, count(DISTINCT a.id) AS alerts, count(DISTINCT r.id) AS reviews +FROM rate.master_products mp +LEFT JOIN rate.price_alerts a ON a.master_product_id = mp.id +LEFT JOIN rate.products p ON p.cluster_id = mp.id +LEFT JOIN rate.reviews r ON r.product_id = p.id +WHERE split_part(mp.model_key, ':', 3) = 'unknown' +GROUP BY 1 HAVING count(DISTINCT a.id) + count(DISTINCT r.id) > 0; + +-- After M2, and again as the reconciliation after the last writer changes +SELECT count(*) FROM rate.master_products WHERE item_id IS NULL; -- 0 +SELECT count(*) FROM rate.products WHERE item_id IS NULL AND cluster_id IS NOT NULL; -- 0 +SELECT count(*) FROM rate.products p JOIN rate.master_products mp ON mp.id = p.cluster_id +WHERE p.item_id IS DISTINCT FROM mp.item_id; -- 0 +SELECT i.item_key FROM rate.items i +WHERE i.min_price IS DISTINCT FROM (SELECT COALESCE(min(mp.min_price) FILTER (WHERE mp.min_price > 0), 0) + FROM rate.master_products mp + WHERE mp.item_id = i.id AND mp.status = 'published'); -- 0 rows +-- An Item slug may only collide with one of its own variants' slugs +SELECT i.slug FROM rate.items i JOIN rate.master_products mp ON mp.slug = i.slug +WHERE mp.item_id IS DISTINCT FROM i.id; -- 0 rows +-- Item names and slugs must not carry a size +SELECT item_key, slug, name FROM rate.items +WHERE slug ~ '-\d+(gb|tb)$' OR name ~* '\s\d+\s?(gb|tb)$'; -- 0 rows +-- Published variant counts per Item, for the page smoke test +SELECT i.slug, count(mp.id) FROM rate.items i JOIN rate.master_products mp ON mp.item_id = i.id +WHERE i.status = 'published' GROUP BY 1 ORDER BY 2 DESC; + +-- After M3 +SELECT count(*) FROM rate.products p JOIN rate.master_products mp ON mp.id = p.cluster_id +WHERE mp.variant_key = 'unknown' + AND EXISTS (SELECT 1 FROM rate.master_products s WHERE s.item_id = mp.item_id + AND s.variant_key ~ '^\d+(gb|tb)$' AND s.status IS DISTINCT FROM 'archived'); -- 0 +SELECT (SELECT count(*) FROM rate.m3_unknown_variant_backup) AS moved, + (SELECT count(*) FROM rate.products WHERE cluster_id IS NULL AND item_id IS NOT NULL) AS unknown_now; +-- Earbuds and other single-variant Items still priced +SELECT i.item_key FROM rate.items i JOIN rate.categories c ON c.id = i.category_id +WHERE c.slug = 'earbuds' AND i.status = 'published' AND i.min_price = 0; -- review any rows +``` + +## 8. Risks + +| Risk | Mitigation | +| :--- | :--- | +| SEO: every indexed product URL changes. | 308 to the Item page with the variant preselected. The canonical points to the Item. The sitemap is swapped in the same deploy. Keep the redirects permanently, since they are cheap. | +| Public API clients break. | Additive fields only within v1. Item grouping is opt-in (`group=item`) until announced. | +| Old writers (importer, Rate-Services) create masters or move listings without `item_id` during the window. | The M1 sync triggers derive `item_id` from `cluster_id` and create draft Items for new keys. The reconciliation query (7.3) runs after the last writer changes. | +| A writer produces NULL `cluster_id` before Rate-Services handles it. | Task 5 writes NULL `cluster_id` only behind a flag that is turned on after task 13 ships. M3 runs after task 13. | +| Rate-Services and this repo drift during the compatibility window. | `model_key` keeps its shape. Variant ids do not change. Helpers are shared through `@repo/shared-data`. The vendor bump happens only after the importer change is merged. | +| Item spec backfill picks the wrong representative. | Published, then most merchants, then oldest. A dry-run diff job is reviewed before applying. | +| Unknown-variant listings make an Item look cheaper. | They are excluded from the "from" price and shown in their own group (Q2). | +| Beta pipeline locked in DOS-Me. | The schema can be prepared and preview-tested now. Prod waits for the beta workflow (ROADMAP 6.4). | +| A listing's variant and Item disagree. | Guard trigger in M4. Verification query after every phase. | + +## 9. Open questions for JOY + +Each question has a recommendation, which is the default if JOY agrees. + +1. **Q1. URL scheme.** **(Recommended)** One indexable URL per Item, `/{category}/{item-slug}`, with the size selected by `?v=256gb` (not indexed). The alternative is a separate indexable URL per size, `/{category}/{item-slug}/256gb`, with more pages but thin and near-duplicate content. +2. **Q2. Listings with an unknown size.** **(Recommended)** Show them on the Item page in a separate "Storage not stated" group, and keep them out of the "from" price. The alternative is to include them in the "from" price, which is cheaper-looking but can mislead. +3. **Q3. Variant axis.** **(Recommended)** Storage only for now. Screen and case sizes (iPad Pro 11 vs 13, Watch 42 vs 46 mm) stay separate Items, as today. Wi-Fi vs Cellular: start as one variant per storage, and add `256gb-cellular` later if price comparisons prove misleading. The alternative is to make connectivity a variant axis from day one. +4. **Q4. Ratings and reviews.** **(Recommended)** One rating per Item, pooled across sizes. +5. **Q5. Price alerts.** **(Recommended)** Alerts stay per size. An "any size" alert is a later feature. +6. **Q6. #1105.** **(Recommended)** Hold, and fold it into the matcher task below. No interim fix. +7. **Q7. Public API default.** **(Recommended)** Keep the variant-level default for `/api/v1/rate/products` during the compatibility window. Switch to Item grouping with an announcement after the window closes. + +## 10. Task breakdown (filed by the PO after JOY approves) + +Sizes: S is up to a day, M is 2-3 days, L is about a week of agent time, including review. + +| # | Task | Repo | Size | Depends on | +| :--- | :--- | :--- | :--- | :--- | +| 1 | M0: mirror the eight DOS-Me `rate` migrations into the reference copy and regenerate `database.types.ts` | Rate | S | | +| 2 | M0: run the inventory queries (read-only) and write the data-fix list (seed key drift, legacy keys, slug collisions) | Rate (PO runs the queries) | S | | +| 3 | `shared-data`: Item and Variant schemas, `composeModelKey`/`splitModelKey`, `item_key` and `variant_key` rules | Rate | S | | +| 4 | DOS-Me M1 + M2: `rate.items`, columns, RLS/grants, backfill, Item RPCs | DOS-Me (with JOY's approval) + Rate reference copy | L | 1, 2 | +| 5 | Normalizer emits `item_key`/`variant_key`; matcher becomes item-first with `match_item` (**closes #1105**); pipeline writes `item_id` with nullable variant and `variant_source`, `itemIdHint`, archived-hint mapping. Writing NULL `cluster_id` sits behind a flag, turned on after task 13 | Rate | L | 3, 4 (flag on: 13) | +| 6 | Seeds as Item plus variants; spec enrichment and backfill per Item; review rating at Item level | Rate | M | 5 | +| 7 | Web data layer: Item queries, `resolveCatalogSlug`, 308 redirects, cache tags | Rate | M | 4 | +| 8 | Product page per Item: variant selector, unknown-size group, `ProductGroup` JSON-LD, canonical, no sibling competitors | Rate | L | 7 | +| 9 | Directory, search, autocomplete, facets, leaderboard, sitemap and stats per Item | Rate | L | 7 | +| 10 | Compare, versus, tray, watchlist and alerts per Item with size pinning; old-URL redirects | Rate | M | 7 | +| 11 | API v1 additive fields and `group=item`, OpenAPI schemas, extension lookup returning all variants and the `?add=` handler | Rate | M | 7 | +| 12 | E2E seed with one multi-size Item; redirect and canonical assertions | Rate | S | 8 | +| 13 | Rate-Services: shared key helpers, NULL-variant handling in auditors, Item-level listing check, payload `item_id`, seeding per Item, vendor bump | Rate-Services | L | 5 | +| 14 | DOS-Me M3 (unknown collapse) and M4 (constraints) | DOS-Me (with JOY's approval) | M | 5, 13, compatibility window | +| 15 | (optional) M5 `listing_skus`, per-SKU prices | DOS-Me + Rate | L | 14 | + +**Critical path:** 1, 2 and 3, then 4, then 5 and 7 in parallel, then 8 to 11 and 13, then the task 5 flag, then 14. The web tasks (8 to 11) can share one feature flag, so that they ship dark and switch together. + +## 11. Review log + +Reviewed on PR #1136 by a fresh-context subagent and by a Codex adversarial pass (no P0). Fixed in this revision: + +- **Earbuds and other sizeless lines would have lost their only variant in M3.** `unknown` is now a real variant on single-variant Items, and M3 is limited to multi-size Items (4.2, 7.2). +- **`variant_key` now keeps today's literal format** (`1024gb`, `standard`, `unknown`), so `model_key` and Tier 1 matching do not change shape (4.2, 4.5). +- **Trigram index:** the pg_trgm schema is looked up at run time, because prod keeps it in `sign` (4.3). +- **M2 backfill now also covers archived masters,** so M4 can enforce `NOT NULL`. It also COALESCEs nullable source columns, sorts with `NULLS LAST`, and copies the expert and provenance columns (7.1). +- **M2 rollback** uses `DELETE`, never `TRUNCATE` (7). +- **M3 rollback** is conditional and restores `variant_source`. The backup allows a NULL master status (7.2). +- **Constraint steps** are idempotent and the guard trigger is created (4.3). +- **New compatibility sync triggers** keep old writers consistent, and a reconciliation step follows (4.3, 7). +- **`masterIdHint`** to an archived master maps to its Item (4.5). +- **Ratings, including votes,** roll up through `products.item_id` (4.5). +- **Round 2:** + - M3's multi-size rule ignores archived sizes and earbuds; + - the sync trigger handles re-keys and publishes the Item; + - M1 and M2 ship as one migration, with an Item status recompute; + - the trigger functions are `SECURITY DEFINER`, so `rate_worker` needs no write grant on `rate.items`. +- **Other consumers covered:** the trust view (1.1), and the URL lookups in the extension and inspect (5.2). +- **Refresh of unknown-variant listings, and ordering** against Rate-Services (5.4, 8, 10). +- **M0 duplicate merges** archive and move alerts instead of deleting. + +Not applied: one finding said the slug regexes needed different escaping. They use single backslashes, which are correct under `standard_conforming_strings = on`, and a verification query now checks that Item names and slugs carry no size. From 6d035d41fd608edb57074e22543d460e065bc3f1 Mon Sep 17 00:00:00 2001 From: JOY <5027251+JOY@users.noreply.github.com> Date: Wed, 28 Oct 2026 00:20:49 +0700 Subject: [PATCH 04/15] fix(ci): close an incident only after every failed job succeeds again (#1134) (#1157) * fix(ci): close an incident only after every failed job succeeds again (#1134) incident-report.yml closed the incident on any passing push run, even when the jobs that failed were only skipped on it. The logic moves to scripts/ops/incident-report.mjs: the incident issue keeps a hidden marker of the jobs still waiting to recover, a job leaves it only by concluding success, and the issue closes when the marker is empty. Otherwise it comments which jobs are still unverified. An incident without a marker closes only on a run where every job succeeded. Unit tests run in CI. * fix(ci): harden incident recovery tracking from review (#1134) - Read the last marker and strip every marker, so one quoted from a commit title cannot replace the real state. - A failure with no failing job names keeps the jobs already pending. - A matrix name recovers only when every job of that name succeeded. - Read the jobs of the event's run attempt, not of a later re-run. - A pending job no longer listed in the workflow (renamed or removed) does not keep the incident open forever. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/ci.yml | 2 +- .github/workflows/incident-report.yml | 66 ++---- AGENTS.md | 2 +- scripts/ops/incident-report.mjs | 290 ++++++++++++++++++++++++++ scripts/ops/incident-report.test.mjs | 239 +++++++++++++++++++++ 5 files changed, 546 insertions(+), 53 deletions(-) create mode 100644 scripts/ops/incident-report.mjs create mode 100644 scripts/ops/incident-report.test.mjs diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f27e26a1d..58edbe848 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -59,7 +59,7 @@ jobs: run: node --test scripts/e2e/stale-stacks.test.mjs - name: Test the agent release scripts - run: node --test scripts/ops/merge-when-green.test.mjs scripts/ops/board.test.mjs scripts/ops/promote.test.mjs scripts/ops/verify-live.test.mjs + run: node --test scripts/ops/merge-when-green.test.mjs scripts/ops/board.test.mjs scripts/ops/promote.test.mjs scripts/ops/verify-live.test.mjs scripts/ops/incident-report.test.mjs - name: Replay rate migrations on PostgreSQL 17 (Docker) run: node scripts/test-migration-replay.mjs diff --git a/.github/workflows/incident-report.yml b/.github/workflows/incident-report.yml index 05912f130..67add2954 100644 --- a/.github/workflows/incident-report.yml +++ b/.github/workflows/incident-report.yml @@ -2,8 +2,9 @@ name: Incident report # The incident inbox for agents (DOS/Rate#1057). When CI fails on dev or main, # open an `incident` issue (or comment on the open one) with the run, commit -# and failing jobs; when it passes again, close that issue. Agents treat an -# open `incident` issue as their first priority (AGENTS.md). +# and failing jobs; when every failing job passes again, close that issue +# (scripts/ops/incident-report.mjs). Agents treat an open `incident` issue +# as their first priority (AGENTS.md). # workflow_run only fires for this file as it is on the default branch (dev). on: workflow_run: @@ -36,57 +37,20 @@ jobs: BRANCH: ${{ github.event.workflow_run.head_branch }} CONCLUSION: ${{ github.event.workflow_run.conclusion }} RUN_ID: ${{ github.event.workflow_run.id }} + RUN_ATTEMPT: ${{ github.event.workflow_run.run_attempt }} RUN_URL: ${{ github.event.workflow_run.html_url }} SHA: ${{ github.event.workflow_run.head_sha }} COMMIT_TITLE: ${{ github.event.workflow_run.head_commit.message }} steps: - - name: Open, update or close the incident - run: | - set -euo pipefail - # Events can arrive out of order: only the run of the branch's - # current head speaks for the branch, so a stale failure never - # reopens an incident a newer run has closed. - head="$(gh api "repos/${REPO}/commits/${BRANCH}" --jq .sha)" - if [ "$head" != "$SHA" ]; then - echo "Run is for ${SHA:0:8}, ${BRANCH} is at ${head:0:8} now: skipped." - exit 0 - fi - - title="incident: ${WORKFLOW} failing on ${BRANCH}" - # Untrusted text, shown as inline code so its @mentions and #refs - # ping or link nothing (backticks removed so it cannot close the span). - subject="\`$(printf '%s' "${COMMIT_TITLE}" | head -n 1 | cut -c1-120 | tr -d '\`')\`" - gh label create incident -R "$REPO" --color B60205 \ - --description "Production or CI breakage: first priority for any free agent" 2>/dev/null || true - # Read the list first so an API error fails the step (pipefail does - # not cover process substitution) instead of creating a duplicate. - list="$(gh issue list -R "$REPO" --state open --label incident --limit 50 \ - --json number,title --jq '.[] | "\(.number)\t\(.title)"')" - open="" - while IFS=$'\t' read -r num t; do - if [ "$t" = "$title" ]; then open="$num"; break; fi - done <<< "$list" + # The script comes from the default branch (workflow_run runs there), + # never from the run's commit: no untrusted code gets the token. + - name: Check out the incident script + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + sparse-checkout: scripts/ops + persist-credentials: false - if [ "$CONCLUSION" = "success" ]; then - if [ -n "$open" ]; then - gh issue comment "$open" -R "$REPO" --body "Recovered: ${RUN_URL} passed on \`${SHA:0:8}\` (${subject})." - gh issue close "$open" -R "$REPO" --reason completed - fi - exit 0 - fi - - failing="$(gh run view "$RUN_ID" -R "$REPO" --json jobs \ - --jq '[.jobs[] | select(.conclusion == "failure" or .conclusion == "timed_out" or .conclusion == "cancelled") | .name] | join(", ")')" - body="$(printf '%s\n' \ - "**${WORKFLOW}** ${CONCLUSION} on \`${BRANCH}\`." \ - "" \ - "- Run: ${RUN_URL}" \ - "- Commit: \`${SHA:0:8}\` ${subject}" \ - "- Failing jobs: ${failing:-unknown}" \ - "" \ - "Agents: this is the first priority (AGENTS.md). Claim it, find the breaking change, fix forward. The issue closes itself when the workflow passes on \`${BRANCH}\` again.")" - if [ -n "$open" ]; then - gh issue comment "$open" -R "$REPO" --body "$body" - else - gh issue create -R "$REPO" --title "$title" --label incident --body "$body" - fi + # Closes only when every job that failed has concluded `success` again: + # a job skipped on a later push proves nothing (DOS/Rate#1134). + - name: Open, update or close the incident + run: node scripts/ops/incident-report.mjs diff --git a/AGENTS.md b/AGENTS.md index d16251171..3b6d9446f 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -72,7 +72,7 @@ gh issue list -R DOS/Rate-Services --state open - **Quy tắc Định danh Agent (Agent Nickname) & Tránh trùng lặp:** - Vì mọi Agent đều chạy dưới tài khoản GitHub của JOY (`@me`), **MỖI AGENT PHẢI TỰ ĐẶT MỘT NICKNAME NGẮN GỌN** theo chuyên môn hoặc phiên làm việc (ví dụ: `Crawl`, `Web`, `Core`, `DB`, `QA`) và gắn cả **Nhãn `agent:`** lẫn **Cột `Agent` trên GitHub Project #9**. - **TUYỆT ĐỐI KHÔNG** tự ý làm các Issue đang có nhãn `status:in-progress`, `status:in-review` hoặc đã có nhãn `agent:` đang chạy (trừ khi JOY chỉ định rõ). - - **Issue có nhãn `incident` là ưu tiên số 1**, trên mọi việc khác: chúng do `.github/workflows/incident-report.yml` tự mở khi CI đỏ trên `dev`/`main` (DOS/Rate-Services có workflow tương tự cho crawler theo lịch), hoặc do Upptime mở trong `DOS/status` khi rate.vn sập. Nhận issue, tìm thay đổi gây lỗi, sửa tiếp (fix forward). Issue tự đóng khi workflow xanh lại. + - **Issue có nhãn `incident` là ưu tiên số 1**, trên mọi việc khác: chúng do `.github/workflows/incident-report.yml` tự mở khi CI đỏ trên `dev`/`main` (DOS/Rate-Services có workflow tương tự cho crawler theo lịch), hoặc do Upptime mở trong `DOS/status` khi rate.vn sập. Nhận issue, tìm thay đổi gây lỗi, sửa tiếp (fix forward). Issue tự đóng khi mọi job đã lỗi chạy xanh lại (job bị bỏ qua, `skipped`, không tính là đã hồi phục). - Sau đó ưu tiên chọn các Issue đang có nhãn `status:ready`. - Nếu yêu cầu của người dùng chưa có Issue tương ứng, **TẠO NGAY ISSUE MỚI BẰNG TIẾNG ANH** và gắn vào GitHub Project #9: ```powershell diff --git a/scripts/ops/incident-report.mjs b/scripts/ops/incident-report.mjs new file mode 100644 index 000000000..06520d32d --- /dev/null +++ b/scripts/ops/incident-report.mjs @@ -0,0 +1,290 @@ +#!/usr/bin/env node +// Opens, updates or closes the CI incident issue for one completed push run +// of the Verify workflow (DOS/Rate#1057, #1134). Run by +// .github/workflows/incident-report.yml with the run in environment variables: +// +// REPO WORKFLOW BRANCH CONCLUSION RUN_ID RUN_ATTEMPT RUN_URL SHA COMMIT_TITLE +// +// The incident issue keeps a hidden marker with the jobs still waiting to +// recover. A job leaves it only when it concludes `success` in a later run: +// a job skipped on a push (path filter, `if:`) proved nothing. The issue +// closes when the marker is empty. An incident without a readable marker +// (opened before #1134, or with no failing job names) closes only on a run +// in which every job succeeded. + +import { + DEFAULT_REPO, + encodeRef, + fail, + gh, + ghJson, + isMain, +} from './lib.mjs'; + +/** Job conclusions that open or extend an incident. */ +const FAILED = new Set(['failure', 'timed_out', 'cancelled']); +const MARKER = //g; + +/** + * The job names still waiting to recover, or null when unknown: then every + * job must succeed before the incident closes. + */ +export function readPending(body) { + // The script appends its marker last: an earlier one may be quoted from a + // commit title. + const match = [...(body ?? '').matchAll(MARKER)].at(-1); + if (!match) return null; + try { + const names = JSON.parse(match[1]); + if (!Array.isArray(names)) return null; + if (!names.every((n) => typeof n === 'string')) return null; + return names; + } catch { + return null; + } +} + +/** The body with its marker set to `pending` (null keeps it unknown). */ +export function writePending(body, pending) { + const rest = (body ?? '').replaceAll(MARKER, '').trimEnd(); + if (pending === null) return rest; + // `--` cannot appear inside an HTML comment: - keeps the JSON equal. + const json = JSON.stringify(pending).replaceAll('-', '\\u002d'); + return `${rest}\n\n`; +} + +export const failingJobs = (jobs) => + jobs.filter((j) => FAILED.has(j.conclusion)).map((j) => j.name); + +/** Events can arrive out of order: only the branch head's run counts. */ +export const isCurrentHead = (sha, headSha) => sha === headSha; + +const describe = (jobs, names) => + names + .map((name) => { + const job = jobs.find((j) => j.name === name); + return `${name} (${job?.conclusion || 'not run'})`; + }) + .join(', '); + +/** + * What to do with one run. `open` is the open incident `{ number, body }` or + * null, `jobs` the run's `{ name, conclusion }` list. Returns `{ action }`, + * one of none, create, update (a failure on an open incident), close or + * unverified (passed, but a pending job did not succeed), plus `pending` (the + * new marker), `failing` and `unverified` job names. + */ +export function decide({ conclusion, jobs, open }) { + // Matrix jobs can share a name: it succeeded only if each of them did. + const succeeded = new Set( + jobs + .filter((j) => j.conclusion === 'success') + .map((j) => j.name) + .filter((name) => + jobs.every((j) => j.name !== name || j.conclusion === 'success') + ) + ); + const before = open ? readPending(open.body) : []; + + if (conclusion === 'success') { + if (!open) return { action: 'none' }; + // A pending job the run does not list at all was renamed or removed from + // the workflow: it can never pass again. A skipped job is still listed. + const listed = new Set(jobs.map((j) => j.name)); + const unverified = + before === null + ? jobs.filter((j) => j.conclusion !== 'success').map((j) => j.name) + : before.filter( + (name) => + !succeeded.has(name) && (jobs.length === 0 || listed.has(name)) + ); + // Unknown pending jobs and a run that lists none: nothing proves recovery. + if (before === null && jobs.length === 0) { + return { action: 'unverified', pending: null, unverified: [] }; + } + if (unverified.length === 0) return { action: 'close' }; + return { + action: 'unverified', + pending: before === null ? null : unverified, + unverified, + }; + } + + const failing = failingJobs(jobs); + // A new incident with no failing job names stays unknown; an open one + // keeps the jobs it already waits for. + let pending = open ? before : failing.length > 0 ? [] : null; + if (pending !== null) { + const still = pending.filter((name) => !succeeded.has(name)); + pending = [...new Set([...still, ...failing])]; + } + return { action: open ? 'update' : 'create', pending, failing }; +} + +/** Untrusted text as inline code, so its @mentions and #refs do nothing. */ +export const codeSpan = (text) => + `\`${String(text ?? '') + .split('\n')[0] + .slice(0, 120) + .replaceAll('`', '')}\``; + +export function failureBody(run, failing) { + return [ + `**${run.workflow}** ${run.conclusion} on \`${run.branch}\`.`, + '', + `- Run: ${run.url}`, + `- Commit: \`${run.sha.slice(0, 8)}\` ${codeSpan(run.commitTitle)}`, + `- Failing jobs: ${failing.join(', ') || 'unknown'}`, + '', + `Agents: this is the first priority (AGENTS.md). Claim it, find the breaking change, fix forward. The issue closes itself when every failing job passes on \`${run.branch}\` again.`, + ].join('\n'); +} + +export function recoveredBody(run) { + return `Recovered: ${run.url} passed on \`${run.sha.slice(0, 8)}\` (${codeSpan(run.commitTitle)}).`; +} + +export function unverifiedBody(run, jobs, decision) { + const head = `${run.url} passed on \`${run.sha.slice(0, 8)}\` (${codeSpan(run.commitTitle)}), but it does not prove recovery`; + if (decision.pending === null) { + const which = decision.unverified.length + ? `: ${describe(jobs, decision.unverified)} did not succeed` + : ': the run listed no jobs'; + return `${head}${which}. This incident does not record which jobs failed, so it stays open until a run in which every job succeeds.`; + } + return `${head}: ${describe(jobs, decision.unverified)} did not succeed in it. The incident stays open until each of them concludes \`success\`.`; +} + +const incidentTitle = (run) => + `incident: ${run.workflow} failing on ${run.branch}`; + +function main() { + const env = process.env; + const repo = env.REPO || DEFAULT_REPO; + const run = { + workflow: env.WORKFLOW, + branch: env.BRANCH, + conclusion: env.CONCLUSION, + id: env.RUN_ID, + attempt: env.RUN_ATTEMPT, + url: env.RUN_URL, + sha: env.SHA, + commitTitle: env.COMMIT_TITLE, + }; + for (const key of ['workflow', 'branch', 'conclusion', 'id', 'sha']) { + if (!run[key]) fail(`incident-report: ${key} is missing`); + } + + const head = ghJson([ + 'api', + `repos/${repo}/commits/${encodeRef(run.branch)}`, + ]).sha; + if (!isCurrentHead(run.sha, head)) { + console.log( + `Run is for ${run.sha.slice(0, 8)}, ${run.branch} is at ${head.slice(0, 8)} now: skipped.` + ); + return; + } + + gh( + [ + 'label', + 'create', + 'incident', + '-R', + repo, + '--color', + 'B60205', + '--description', + 'Production or CI breakage: first priority for any free agent', + ], + { allowFailure: true } + ); + // An API error throws here instead of creating a duplicate incident. + const issues = ghJson([ + 'issue', + 'list', + '-R', + repo, + '--state', + 'open', + '--label', + 'incident', + '--limit', + '50', + '--json', + 'number,title,body', + ]); + const open = + issues.find((issue) => issue.title === incidentTitle(run)) ?? null; + // The jobs of the attempt this event reports, not of a later re-run. + const attempt = run.attempt ? ['--attempt', run.attempt] : []; + const jobs = ghJson([ + 'run', + 'view', + run.id, + '-R', + repo, + ...attempt, + '--json', + 'jobs', + ]).jobs.map((j) => ({ name: j.name, conclusion: j.conclusion })); + + const decision = decide({ conclusion: run.conclusion, jobs, open }); + const comment = (body) => + gh(['issue', 'comment', String(open.number), '-R', repo, '--body', body]); + const setPending = (pending) => { + const body = writePending(open.body, pending); + if (body === (open.body ?? '').trimEnd()) return; + gh([ + 'api', + '-X', + 'PATCH', + `repos/${repo}/issues/${open.number}`, + '-f', + `body=${body}`, + ]); + }; + + switch (decision.action) { + case 'none': + break; + case 'close': + comment(recoveredBody(run)); + gh([ + 'issue', + 'close', + String(open.number), + '-R', + repo, + '--reason', + 'completed', + ]); + break; + case 'unverified': + setPending(decision.pending); + comment(unverifiedBody(run, jobs, decision)); + break; + case 'update': + setPending(decision.pending); + comment(failureBody(run, decision.failing)); + break; + case 'create': + gh([ + 'issue', + 'create', + '-R', + repo, + '--title', + incidentTitle(run), + '--label', + 'incident', + '--body', + writePending(failureBody(run, decision.failing), decision.pending), + ]); + break; + } + console.log(`incident-report: ${decision.action}`); +} + +if (isMain(import.meta.url)) main(); diff --git a/scripts/ops/incident-report.test.mjs b/scripts/ops/incident-report.test.mjs new file mode 100644 index 000000000..850a61d50 --- /dev/null +++ b/scripts/ops/incident-report.test.mjs @@ -0,0 +1,239 @@ +import assert from 'node:assert/strict'; +import test from 'node:test'; + +import { + codeSpan, + decide, + failureBody, + isCurrentHead, + readPending, + unverifiedBody, + writePending, +} from './incident-report.mjs'; + +const BUILD = 'Typecheck & Build Monorepo'; +const E2E = 'E2E (Playwright)'; +const job = (name, conclusion) => ({ name, conclusion }); +const incident = (pending, number = 7) => ({ + number, + body: writePending('**Verify** failure on `dev`.', pending), +}); +const run = { + workflow: 'Verify', + branch: 'dev', + conclusion: 'success', + url: 'https://github.com/DOS/Rate/actions/runs/1', + sha: 'abcdef1234567890', + commitTitle: 'fix: thing @someone #12', +}; + +test('the marker round-trips through the issue body', () => { + const body = writePending('Body text.', [BUILD, E2E]); + assert.deepEqual(readPending(body), [BUILD, E2E]); + assert.ok(body.startsWith('Body text.')); + const again = writePending(body, [E2E]); + assert.deepEqual(readPending(again), [E2E]); + assert.equal(again.match(/incident-pending/g).length, 1); +}); + +test('a job name with dashes cannot end the HTML comment early', () => { + const body = writePending('', ['a --> b']); + assert.ok(!body.slice(0, -4).includes('-->')); + assert.deepEqual(readPending(body), ['a --> b']); +}); + +test('a marker quoted from a commit title cannot replace the real one', () => { + const fake = ''; + const body = writePending(`Commit ${fake} ${fake}`, [E2E]); + assert.deepEqual(readPending(body), [E2E]); + assert.equal(body.match(/incident-pending/g).length, 1); + assert.equal( + decide({ + conclusion: 'success', + jobs: [job(BUILD, 'success'), job(E2E, 'skipped')], + open: { number: 1, body: `Commit ${fake} + +${writePending('', [E2E])}` }, + }).action, + 'unverified' + ); +}); + +test('a matrix name recovers only when every job of that name succeeded', () => { + assert.equal( + decide({ + conclusion: 'success', + jobs: [job('Test', 'success'), job('Test', 'skipped')], + open: incident(['Test']), + }).action, + 'unverified' + ); +}); + +test('a missing or broken marker reads as unknown', () => { + assert.equal(readPending('An incident opened before #1134.'), null); + assert.equal(readPending(''), null); + assert.equal(readPending(''), null); + assert.equal(readPending(undefined), null); + assert.equal(writePending('x\n\n', null), 'x'); +}); + +test('a failure with no open incident creates one pending its failing jobs', () => { + assert.deepEqual( + decide({ + conclusion: 'failure', + jobs: [job(BUILD, 'success'), job(E2E, 'failure')], + open: null, + }), + { action: 'create', pending: [E2E], failing: [E2E] } + ); +}); + +test('timed out and cancelled jobs count as failing', () => { + const d = decide({ + conclusion: 'cancelled', + jobs: [job(BUILD, 'timed_out'), job(E2E, 'cancelled')], + open: null, + }); + assert.deepEqual(d.pending, [BUILD, E2E]); +}); + +test('closes when every pending job concluded success', () => { + assert.deepEqual( + decide({ + conclusion: 'success', + jobs: [job(BUILD, 'success'), job(E2E, 'success')], + open: incident([E2E]), + }), + { action: 'close' } + ); +}); + +test('a pending job skipped on a passing push keeps the incident open', () => { + const jobs = [job(BUILD, 'success'), job(E2E, 'skipped')]; + const d = decide({ conclusion: 'success', jobs, open: incident([E2E]) }); + assert.deepEqual(d, { + action: 'unverified', + pending: [E2E], + unverified: [E2E], + }); + assert.match(unverifiedBody(run, jobs, d), /E2E \(Playwright\) \(skipped\)/); +}); + +test('a skipped job that never failed does not block closing', () => { + assert.equal( + decide({ + conclusion: 'success', + jobs: [job(BUILD, 'success'), job(E2E, 'skipped')], + open: incident([BUILD]), + }).action, + 'close' + ); +}); + +test('a pending job no longer in the workflow does not block closing', () => { + const jobs = [job(BUILD, 'success'), job('E2E (Chromium)', 'success')]; + assert.equal( + decide({ conclusion: 'success', jobs, open: incident([E2E]) }).action, + 'close' + ); + assert.equal( + decide({ conclusion: 'success', jobs: [], open: incident([E2E]) }).action, + 'unverified' + ); +}); + +test('recovery is tracked across runs: each job may pass in a different one', () => { + const first = decide({ + conclusion: 'success', + jobs: [job(BUILD, 'success'), job(E2E, 'skipped')], + open: incident([BUILD, E2E]), + }); + assert.deepEqual(first.pending, [E2E]); + const second = decide({ + conclusion: 'success', + jobs: [job(BUILD, 'skipped'), job(E2E, 'success')], + open: incident(first.pending), + }); + assert.equal(second.action, 'close'); +}); + +test('a new failure adds to the pending jobs and drops the recovered ones', () => { + assert.deepEqual( + decide({ + conclusion: 'failure', + jobs: [job(BUILD, 'failure'), job(E2E, 'success')], + open: incident([E2E]), + }), + { action: 'update', pending: [BUILD], failing: [BUILD] } + ); + assert.deepEqual( + decide({ + conclusion: 'failure', + jobs: [job(BUILD, 'failure'), job(E2E, 'skipped')], + open: incident([E2E]), + }).pending, + [E2E, BUILD] + ); +}); + +test('an incident without a marker closes only when every job succeeded', () => { + const legacy = { number: 3, body: 'Opened before #1134.' }; + assert.equal( + decide({ + conclusion: 'success', + jobs: [job(BUILD, 'success'), job(E2E, 'success')], + open: legacy, + }).action, + 'close' + ); + const jobs = [job(BUILD, 'success'), job(E2E, 'skipped')]; + const d = decide({ conclusion: 'success', jobs, open: legacy }); + assert.deepEqual(d, { + action: 'unverified', + pending: null, + unverified: [E2E], + }); + assert.match(unverifiedBody(run, jobs, d), /every job succeeds/); + assert.equal( + decide({ conclusion: 'success', jobs: [], open: legacy }).action, + 'unverified' + ); +}); + +test('a failure without failing job names keeps the jobs already pending', () => { + assert.deepEqual( + decide({ conclusion: 'cancelled', jobs: [], open: incident([E2E]) }), + { action: 'update', pending: [E2E], failing: [] } + ); + assert.equal( + decide({ conclusion: 'failure', jobs: [], open: null }).pending, + null + ); +}); + +test('a passing run with no open incident does nothing', () => { + assert.deepEqual( + decide({ conclusion: 'success', jobs: [job(BUILD, 'success')], open: null }), + { action: 'none' } + ); +}); + +test('a superseded run is not the branch head', () => { + assert.equal(isCurrentHead('aaa', 'bbb'), false); + assert.equal(isCurrentHead('aaa', 'aaa'), true); +}); + +test('the commit title is shown as one inert line of inline code', () => { + assert.equal(codeSpan('fix: `x` @a #1\nsecond line'), '`fix: x @a #1`'); + assert.equal(codeSpan('a'.repeat(200)).length, 122); + assert.equal(codeSpan(undefined), '``'); +}); + +test('the failure body keeps its run, commit and failing jobs', () => { + const body = failureBody({ ...run, conclusion: 'failure' }, [E2E]); + assert.match(body, /\*\*Verify\*\* failure on `dev`\./); + assert.match(body, /- Commit: `abcdef12` `fix: thing @someone #12`/); + assert.match(body, /- Failing jobs: E2E \(Playwright\)/); + assert.match(failureBody(run, []), /- Failing jobs: unknown/); +}); From 479f142e167a2d54e6e67703b6e9df7551f66e2a Mon Sep 17 00:00:00 2001 From: JOY <5027251+JOY@users.noreply.github.com> Date: Wed, 28 Oct 2026 00:21:36 +0700 Subject: [PATCH 05/15] fix(normalizer): a Watch band size list across "," or "|" stays the band's (#1137) (#1161) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(normalizer): a Watch band's size list across "," or "|" stays the band's (#1137) A band phrase that ends in a size now runs on over the lone sizes listed after it with "," or "|", so "Sport Loop 42mm | 46mm" names two band sizes and keeps the size-less key, and "(Sport Band 42mm, 46mm) Case 42mm" keys -42mm. * fix(normalizer): a band size list runs on over sizes with a fit or trailing text (#1137) Review follow-up: a band phrase holding any size starts the list, and a part that starts with a size continues it, so "42mm S/M, 46mm M/L", "42mm, 46mm Chính Hãng" and "[Sport Band 42mm, 46mm] Mới" stay size-less. * fix(normalizer): a listed size that names the case ends the band list (#1137) Codex review P1: "Sport Band 46mm, 42mm Aluminum Case" lost its case size after 61aadd12. A part with "case", "mặt" or "vỏ" now ends the list. Co-Authored-By: Claude Opus 5.5 --- .../__tests__/open-core-intelligence.test.ts | 56 +++++++++++++++++-- .../importer/src/shopee/product-normalizer.ts | 23 ++++++-- 2 files changed, 70 insertions(+), 9 deletions(-) diff --git a/apps/importer/src/shopee/__tests__/open-core-intelligence.test.ts b/apps/importer/src/shopee/__tests__/open-core-intelligence.test.ts index b2d633139..0b66cf002 100644 --- a/apps/importer/src/shopee/__tests__/open-core-intelligence.test.ts +++ b/apps/importer/src/shopee/__tests__/open-core-intelligence.test.ts @@ -419,7 +419,7 @@ async function runSuite() { ['Apple Watch Series 10 Sport Loop 45mm cho mặt 46mm', 'apple:watch-series-10:unknown'], ['Apple Watch Series 10 Sport Band 45mm cho mặt 42mm', 'apple:watch-series-10:unknown'], ['Apple Watch SE 3 GPS Strap 40mm for 44mm case', 'apple:watch-se-3:unknown'], - ['Apple Watch Series 10 Bracelet 42mm | 46mm', 'apple:watch-series-10-46mm:unknown'], + ['Apple Watch Series 10 Bracelet 42mm | 46mm', 'apple:watch-series-10:unknown'], // A band is sold by the case it fits: a band's size alone is the case's. [ 'Apple Watch Series 10 GPS Dây Cao Su 46mm Chính Hãng VN/A', @@ -447,14 +447,62 @@ async function runSuite() { 'Apple Watch SE 2024 Viền nhôm dây cao su [40mm/GPS] - Mới', 'apple:watch-se-2024-40mm:unknown', ], - // A decomposed or upper-case "dây" is the same word; "Bandit" is no band. - ['Apple Watch Series 10 da\u0302y vải 45mm, 42mm', 'apple:watch-series-10-42mm:unknown'], - ['APPLE WATCH SERIES 10 DÂY VẢI 45MM, 42MM', 'apple:watch-series-10-42mm:unknown'], + // A decomposed or upper-case "dây" is the same word, so "42mm" after its comma is a + // second band size (DOS/Rate#1137); "Bandit" is no band. + ['Apple Watch Series 10 da\u0302y vải 45mm, 42mm', 'apple:watch-series-10:unknown'], + ['APPLE WATCH SERIES 10 DÂY VẢI 45MM, 42MM', 'apple:watch-series-10:unknown'], ['Apple Watch Series 10 Bandit 46mm cho mặt 42mm', 'apple:watch-series-10-46mm:unknown'], ]; for (const [title, expectedKey] of watchBandSizeKeys1124) { assert.equal(keyOf(title), expectedKey, title); } + // DOS/Rate#1137: a band phrase that ends in a size runs on over the sizes listed after + // it with "," or "|"; only a size outside that list is the case's. + const watchBandListKeys1137: Array<[string, string]> = [ + // The titles of the issue. + [ + 'Apple Watch Series 11 GPS (Sport Band 42mm, 46mm) Case 42mm', + 'apple:watch-series-11-42mm:64gb', + ], + ['Apple Watch Series 11 GPS Nhôm Dây Sport Loop 42mm | 46mm', 'apple:watch-series-11:64gb'], + ['Apple Watch Series 11 Dây Vải 42mm 46mm', 'apple:watch-series-11:64gb'], + // The list runs on over every listed size, and a pipe list keys like a comma list. + ['Apple Watch Series 10 Sport Band 42mm, 46mm, 42mm', 'apple:watch-series-10:unknown'], + ['Apple Watch Series 10 Dây Vải 42mm | 46mm | Chính Hãng', 'apple:watch-series-10:unknown'], + [ + 'Apple Watch Series 10 Sport Band 42mm, 46mm | mặt 46mm', + 'apple:watch-series-10-46mm:unknown', + ], + // A band phrase without a size starts no list: the size after its comma is the case's. + ['Apple Watch Series 10 Dây Cao Su, 46mm', 'apple:watch-series-10-46mm:unknown'], + ['Apple Watch Series 10 Dây Cao Su | 42mm GPS', 'apple:watch-series-10-42mm:unknown'], + ['Apple Watch Series 10 Dây Cao Su S/M, 46mm', 'apple:watch-series-10-46mm:unknown'], + // A listed size keeps its band's fit, a bracket or text after it. + ['Apple Watch Series 10 Sport Band 45mm, 46mm GPS', 'apple:watch-series-10:unknown'], + [ + 'Apple Watch Series 10 GPS Dây Cao Su 42mm, 46mm Chính Hãng VN/A', + 'apple:watch-series-10:unknown', + ], + ['Apple Watch Series 10 Sport Band 42mm S/M, 46mm M/L', 'apple:watch-series-10:unknown'], + ['Apple Watch Series 10 Sport Band 42mm | 46mm (S/M)', 'apple:watch-series-10:unknown'], + ['Apple Watch Series 10 [Sport Band 42mm, 46mm] Mới 100%', 'apple:watch-series-10:unknown'], + ['Apple Watch Series 10 Dây Sport Band 46mm, 42mm.', 'apple:watch-series-10:unknown'], + // A case size before the band phrase still wins. + ['Apple Watch Series 11 GPS 46mm, Dây Cao Su 46mm S/M', 'apple:watch-series-11-46mm:64gb'], + // ")", ";", an en dash or " - " still end the band phrase and its list. + ['Apple Watch Series 10 (Sport Band 45mm) 46mm, 42mm', 'apple:watch-series-10-46mm:unknown'], + // A listed part that names the case ("case", "mặt", "vỏ") is the case's. + [ + 'Apple Watch Series 11 GPS Sport Band 46mm, 42mm Aluminum Case', + 'apple:watch-series-11-42mm:64gb', + ], + ['Apple Watch Series 11 GPS Sport Band 46mm | 42mm Case', 'apple:watch-series-11-42mm:64gb'], + ['Apple Watch Series 10 Dây Vải 45mm, 42mm mặt nhôm', 'apple:watch-series-10-42mm:unknown'], + ['Apple Watch Series 10 Dây Vải 45mm, 46mm vỏ nhôm', 'apple:watch-series-10-46mm:unknown'], + ]; + for (const [title, expectedKey] of watchBandListKeys1137) { + assert.equal(keyOf(title), expectedKey, title); + } // The registry has one entry per line: a sized title keeps the line's benchmark, but // the entry's screen and battery describe only the size it was written for. assert.equal( diff --git a/apps/importer/src/shopee/product-normalizer.ts b/apps/importer/src/shopee/product-normalizer.ts index ed689baa8..927ae5b98 100644 --- a/apps/importer/src/shopee/product-normalizer.ts +++ b/apps/importer/src/shopee/product-normalizer.ts @@ -1107,6 +1107,8 @@ const sizePatterns = (size: string): [RegExp, RegExp] => [ const WATCH_BAND_WORD = /(? = { ipad: sizePatterns(IPAD_SIZE), 'macbook air': sizePatterns(MACBOOK_AIR_SIZE), @@ -1140,11 +1142,22 @@ function readAppleSize(model: string, title: string): string { // next ")", ",", "|", ";", en dash or " - ") is the case's. A band is sold by the case // it fits ("Dây Cao Su 46mm"), so a band's size counts only when the title names no // other: "dây Sport Band 45mm cho mặt 42mm" does not tell the watch's (DOS/Rate#1124). - const caseSize = own - .split(/[),|;\u2013]| - /) - .map(part => part.split(WATCH_BAND_WORD)[0]) - .join(' ') - .match(WATCH_SIZE)?.[1]; + // A band phrase with a size runs on over the parts after it that start with a size + // and follow "," or "|": "Sport Loop 42mm | 46mm" or "Dây 42mm S/M, 46mm M/L" names + // two band sizes, not a case (DOS/Rate#1137). A part that names the case ("46mm, 42mm + // Aluminum Case") ends the list. + const parts = own.split(/([),|;\u2013]| - )/); + const outside: string[] = []; + let bandList = false; + for (let i = 0; i < parts.length; i += 2) { + const part = parts[i]!; + const listed = LIST_WATCH_SIZE.test(part) && !WATCH_CASE_WORD.test(part.normalize('NFC')); + if (bandList && /^[,|]$/.test(parts[i - 1]!) && listed) continue; + const [before, ...band] = part.split(WATCH_BAND_WORD); + outside.push(before!); + bandList = WATCH_SIZE.test(band.join(' ')); + } + const caseSize = outside.join(' ').match(WATCH_SIZE)?.[1]; if (caseSize) return `${caseSize}mm`; const bandSize = own.match(WATCH_SIZE)?.[1]; const sizes = new Set( From 645c155ebf449e57bc6cb142f90895bb84770de4 Mon Sep 17 00:00:00 2001 From: JOY <5027251+JOY@users.noreply.github.com> Date: Wed, 28 Oct 2026 00:22:25 +0700 Subject: [PATCH 06/15] fix(web): show only true review, risk and median numbers (#1139 #1140 #1144 #1145) (#1165) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(web): show only true review, risk and median numbers (#1139 #1140 #1145) - Leaderboard: the "blocked fake/spam reviews" count is the stored reviews the analyser excluded for that product, not total_reviews (the marketplaces' rating count) minus authentic reviews. Same for the leaderboard and versus API field filtered_noise_review_count (#1139). - Merchant page: the DOSafe badge and status use the home cards' cut-off (below 20 clean, 20-49 caution, 50+ alert) through one shared helper, and 0 analysed reviews no longer reads as "100% authentic" (#1140). - Deal radar: the median sentence names the number of listings behind it instead of a fixed "10 platforms", and the home radar counts listings and merchants separately (#1145). * fix(web): composite score starts from the buyer score the header shows (#1144) The reviews section blended the raw weighted mean (5.00) while the header showed the Bayesian buyer score (4.54), so a product with only buyer reviews showed 5.0 next to 4.5. The composite now reads the Bayesian score; the 60/40 weights and the 0.6 confidence threshold are unchanged. The buyer-score maths moves to a pure helper so a unit test can pin it. * fix(web): no multi-platform floor badge from fewer than 3 offers (#1145) With 2 offers the median is their midpoint, so the cheaper one was always "Đáy giá đa sàn". genuine_all_time_low now needs 3+ offers; a cheaper than median offer among fewer is a plain best_market_deal, and every radar badge (product, leaderboard, compare, watchlist, exports) names it "below median" instead of the multi-platform floor. * fix(web): merchant directory deal badge says below median, not cross-store floor (#1145) The badge counts every genuine deal of the merchant, including below-median offers among only 2 listings, so it cannot call them all price floors. * revert(web): keep genuine_all_time_low unchanged in this PR (#1145) This reverts commit cce676f1d86c28e18f4c1acaf3b9e6e7cf7ab76e. The PO keeps the deal verdict rule as is until JOY decides on the 3-offer threshold; this PR only fixes the copy for #1145. * fix(web): review round 1 for the display truth fixes (#1139 #1145) - Leaderboard and versus APIs show no blocked count instead of failing the whole response when the filtered-review read fails. - The merchant profile deal count no longer calls every below-median deal a cross-store floor (same wording as the directory badge). - No median sentence when the offer count is unknown, rather than "2". - Offers with neither a merchant id nor a name count as their own seller instead of merging per platform. Co-Authored-By: Claude Opus 5.5 --- apps/web/e2e/merchant-risk-badge.spec.ts | 32 +++ apps/web/e2e/product-detail-locale.spec.ts | 15 +- apps/web/e2e/seed.sql | 8 + apps/web/locales/cs.json | 16 +- apps/web/locales/en.json | 16 +- apps/web/locales/vi.json | 22 +- apps/web/package.json | 2 +- .../web/src/app/[locale]/leaderboard/page.tsx | 42 ++-- .../src/app/[locale]/merchants/[id]/page.tsx | 47 +++- apps/web/src/app/[locale]/page.tsx | 8 +- .../src/app/api/v1/rate/leaderboard/route.ts | 19 +- apps/web/src/app/api/v1/rate/versus/route.ts | 19 +- .../leaderboard/LeaderboardExplorer.tsx | 20 +- .../components/reviews/JReviewsSection.tsx | 45 +--- .../src/lib/__tests__/client-messages.test.ts | 2 + .../src/lib/__tests__/display-truth.test.ts | 226 ++++++++++++++++++ apps/web/src/lib/jreviews-user-score.ts | 73 ++++++ apps/web/src/lib/leaderboard-engine.ts | 38 ++- apps/web/src/lib/merchant-risk-tone.ts | 17 ++ apps/web/src/lib/product-detail-copy.ts | 14 ++ apps/web/src/lib/rate-api.ts | 83 +++++++ apps/web/src/lib/rate-domain.ts | 1 + .../__tests__/core-rate-architecture.test.ts | 55 ++++- apps/web/src/server/rate/deals.ts | 27 ++- apps/web/src/server/rate/index.ts | 13 + 25 files changed, 746 insertions(+), 114 deletions(-) create mode 100644 apps/web/e2e/merchant-risk-badge.spec.ts create mode 100644 apps/web/src/lib/__tests__/display-truth.test.ts create mode 100644 apps/web/src/lib/jreviews-user-score.ts create mode 100644 apps/web/src/lib/merchant-risk-tone.ts diff --git a/apps/web/e2e/merchant-risk-badge.spec.ts b/apps/web/e2e/merchant-risk-badge.spec.ts new file mode 100644 index 000000000..c66b88db1 --- /dev/null +++ b/apps/web/e2e/merchant-risk-badge.spec.ts @@ -0,0 +1,32 @@ +import { expect, test } from '@playwright/test'; + +// The merchant page used to show a red "scam risk" badge and "risk alert" for +// any DOSafe score above 0, so every store looked like a scam while the home +// cards called the same 4/100 "no scam detected" (DOS/Rate#1140). +const LOW = '/merchants/11111111-1111-4111-8111-111111111140'; +const HIGH = '/merchants/11111111-1111-4111-8111-111111111160'; + +test('a 4/100 DOSafe store shows no scam warning', async ({ page }) => { + expect((await page.goto(LOW))?.status()).toBe(200); + const badge = page.getByTestId('merchant-scam-badge'); + await expect(badge).toHaveText('Rủi ro lừa đảo: 4/100'); + await expect(badge).toHaveAttribute('data-tone', 'good'); + await expect(badge).not.toHaveClass(/bg-danger/); + const status = page.getByTestId('merchant-scam-status'); + await expect(status).not.toHaveText('Có cảnh báo rủi ro'); + await expect(status).toHaveClass(/text-success/); + // No reviews analysed: no "100%" authentic ratio. + const summary = page.getByTestId('merchant-review-summary'); + await expect(summary).toHaveText('Chưa có đánh giá để phân tích.'); + await expect(summary).not.toContainText('%'); +}); + +test('a 60/100 DOSafe store shows the scam warning', async ({ page }) => { + expect((await page.goto(HIGH))?.status()).toBe(200); + const badge = page.getByTestId('merchant-scam-badge'); + await expect(badge).toHaveAttribute('data-tone', 'bad'); + await expect(badge).toHaveClass(/bg-danger/); + const status = page.getByTestId('merchant-scam-status'); + await expect(status).toHaveText('Có cảnh báo rủi ro'); + await expect(status).toHaveClass(/text-danger/); +}); diff --git a/apps/web/e2e/product-detail-locale.spec.ts b/apps/web/e2e/product-detail-locale.spec.ts index 8adf4e2cc..13334a376 100644 --- a/apps/web/e2e/product-detail-locale.spec.ts +++ b/apps/web/e2e/product-detail-locale.spec.ts @@ -3,22 +3,23 @@ import { expect, test } from '@playwright/test'; // The rating confidence tier and the deal radar note follow the active locale // instead of the Vietnamese strings rate-api and deals.ts build // (DOS/Rate#574). The seeded iPhone is cheapest on Shopee, below the median of -// its two offers, so it carries a genuine-deal note. +// its two offers, so it carries a genuine-deal note that names that count +// instead of a fixed "10 platforms" (DOS/Rate#1145). const PRODUCT = '/smartphones/iphone-16-pro-max-256gb'; const COPY = { vi: { radar: - /^Rẻ hơn trung vị 10 sàn 1\.500\.000 ₫ \(-4\.9%\) tại Apple Flagship Store \(SHOPEE\)\.$/, + /^Rẻ hơn giá trung vị của 2 tin bán 1\.500\.000 ₫ \(-4\.9%\) tại Apple Flagship Store \(SHOPEE\)\.$/, tier: /^(Độ tin cậy|Ít mẫu kiểm chứng|Chưa đủ mẫu kiểm chứng)/, }, en: { radar: - /^1\.500\.000 ₫ below the 10-platform median \(-4\.9%\) at Apple Flagship Store \(SHOPEE\)\.$/, + /^1\.500\.000 ₫ below the median of 2 listings \(-4\.9%\) at Apple Flagship Store \(SHOPEE\)\.$/, tier: /^(High|Medium|Low) confidence|^Few verified samples|^Not enough verified samples/, }, cs: { radar: - /^O 1\.500\.000 ₫ levnější než medián 10 platforem \(-4\.9 %\) u Apple Flagship Store \(SHOPEE\)\.$/, + /^O 1\.500\.000 ₫ levnější než medián cen 2 nabídek \(-4\.9 %\) u Apple Flagship Store \(SHOPEE\)\.$/, tier: /důvěryhodnost|^Málo ověřených vzorků|^Nedostatek ověřených vzorků/, }, }; @@ -39,7 +40,11 @@ for (const [locale, copy] of Object.entries(COPY)) { ).toHaveText(copy.tier); if (locale !== 'vi') { const text = await page.locator('body').innerText(); - for (const vi of ['Rẻ hơn trung vị', 'Độ tin cậy', 'Ít mẫu kiểm chứng']) + for (const vi of [ + 'Rẻ hơn giá trung vị', + 'Độ tin cậy', + 'Ít mẫu kiểm chứng', + ]) expect(text).not.toContain(vi); } }); diff --git a/apps/web/e2e/seed.sql b/apps/web/e2e/seed.sql index 9ca76bee0..ffbd9fb9a 100644 --- a/apps/web/e2e/seed.sql +++ b/apps/web/e2e/seed.sql @@ -14,6 +14,14 @@ VALUES -- Its listing query fails on purpose (FAULT_MARKERS in scripts/e2e/run.mjs). ('eeeeeeee-eeee-4eee-8eee-eeeeeeeefa17', 'shopee', 'shop_fault', 'Faulty Listings Store', 'faulty-listings-store', false); +-- DOSafe scores on both sides of the shared risk cut-off, with no reviews: a +-- 4/100 store is not a scam warning and 0 reviews is not "100% authentic"; +-- a 60/100 store is (DOS/Rate#1140). +INSERT INTO rate.merchants (id, platform, platform_shop_id, name, slug, is_official, risk_score) +VALUES + ('11111111-1111-4111-8111-111111111140', 'shopee', 'shop_low_risk', 'Low Risk Store', 'low-risk-store', true, 4), + ('11111111-1111-4111-8111-111111111160', 'shopee', 'shop_high_risk', 'High Risk Store', 'high-risk-store', false, 60); + INSERT INTO rate.master_products (id, category_id, brand, model, model_key, name, slug, ram_gb, storage_gb, screen_size_inch, battery_mah, has_5g, min_price, max_price, merchant_count, status, metadata) diff --git a/apps/web/locales/cs.json b/apps/web/locales/cs.json index 02ebf6409..8b8cf7840 100644 --- a/apps/web/locales/cs.json +++ b/apps/web/locales/cs.json @@ -676,9 +676,9 @@ "radarMdHeader": "### 🔥 Cenová minima a falešné slevy v 10 obchodech - Rate.vn", "radarMdMeta": "- **Kategorie:** {category} | **Analyzované klastry:** {clusters} ({offers} nabídek)", "radarMdGenuineTitle": "#### 🟢 Skutečná minima napříč obchody", - "radarMdGenuineTableHead": "| Zařízení | Obchod / prodejce | Aktuální cena | Medián 10 obchodů | Skutečná úspora | Skóre JReviews |", + "radarMdGenuineTableHead": "| Zařízení | Obchod / prodejce | Aktuální cena | Medián nabídek | Skutečná úspora | Skóre JReviews |", "radarMdFakeTitle": "#### 🚨 Uměle navýšené původní ceny", - "radarMdFakeTableHead": "| Zařízení | Obchod / prodejce | Prodejní cena | Deklarovaná původní | Medián 10 obchodů | Umělé navýšení |", + "radarMdFakeTableHead": "| Zařízení | Obchod / prodejce | Prodejní cena | Deklarovaná původní | Medián nabídek | Umělé navýšení |", "radarMdSpreadTitle": "#### 📊 Největší cenové rozdíly mezi obchody", "radarMdSpreadTableHead": "| Zařízení | Nejlevnější platforma | Nejdražší platforma | Nejnižší cena | Nejvyšší cena | Absolutní rozdíl |", "noScore": "N/A", @@ -858,7 +858,7 @@ "filteredSpamCount": "{count, plural, one {# falešná nebo spamová recenze odfiltrována} few {# falešné nebo spamové recenze odfiltrovány} other {# falešných nebo spamových recenzí odfiltrováno}}", "noAbnormalReviews": "Žádné podezřelé vzorce recenzí", "priceRangeLabel": "Referenční cenové rozpětí:", - "radarGenuineBadge": "{count} minim napříč obchody (-{pct}%)", + "radarGenuineBadge": "{count} nabídek pod mediánem (-{pct}%)", "radarFakeBadge": "{count} varování na falešnou slevu", "radarZeroFakeBadge": "Žádná varování před falešnou slevou", "viewTrustProfileCta": "Zobrazit profil prodejce →", @@ -888,6 +888,8 @@ "scamStatusLabel": "Stav varování před podvody:", "scamStatusClean": "✓ Žádné záznamy o podvodech", "scamStatusAlert": "Detekováno bezpečnostní riziko", + "scamStatusCaution": "Některé rizikové signály", + "layer2NoReviews": "Zatím žádné recenze k analýze.", "entityVerificationLabel": "Ověření subjektu na tržišti:", "entityOfficial": "✓ Oficiální značkový obchod (Official Mall)", "piiProtectionLabel": "Ochrana osobních údajů (PII):", @@ -902,7 +904,7 @@ "statSabotage": "Sabotáž/Bombing", "profileRadarBadge": "Cenová minima a falešné slevy", "profileRadarAnalyzed": "Automaticky porovnáno napříč {count} nabídkami", - "profileRadarGenuineCount": "{count} minim napříč obchody", + "profileRadarGenuineCount": "{count} nabídek pod mediánem", "profileRadarFakeCount": "{count} varování na falešnou slevu", "profileRadarZeroFake": "0 varování na falešnou slevu", "openRadar10PlatformsBtn": "Slevy z 10 obchodů →", @@ -1055,7 +1057,7 @@ "bayesianTierLow": "Nízká důvěryhodnost", "bayesianTierSmoothed": "Málo ověřených vzorků, skóre upraveno", "bayesianTierPrior": "Nedostatek ověřených vzorků", - "radarExplanationGenuineDeal": "O {savings} ₫ levnější než medián 10 platforem (-{pct} %) u {merchant} ({platform}).", + "radarExplanationGenuineDeal": "O {savings} ₫ levnější než medián cen {count} nabídek (-{pct} %) u {merchant} ({platform}).", "radarExplanationFakeSale": "Obchod uvádí přeškrtnutou původní cenu {original} ₫ (+{markupPct} % nad tržním mediánem), aby vyvolal dojem slevy {claimedPct} %, ale skutečná cena je o {aboveFloor} ₫ vyšší než tržní minimum.", "offersMdSpreadLine": "- **Cenové rozpětí ({count} platforem):** Ušetřete **{spreadVnd} ₫ ({spreadPct} %)** na **{cheapestPlatform} ({cheapestMerchant})** namísto **{priciestPlatform}**\n", "shareAuditPriceSources": "{price} ₫ ({count} zkontrolovaných zdrojů)", @@ -1176,7 +1178,7 @@ "scoreDeltaLabel": "Rozdíl {delta} bodu", "view1v1ScoreBtn": "Zobrazit souboj 1v1", "radarHomeBadge": "Cenové signály z 10 obchodů", - "radarHomeAnalyzed": "Automatické porovnání {offers} nabídek napříč {clusters} produktovými klastry", + "radarHomeAnalyzed": "Automatické porovnání {offers} nabídek od {merchants} prodejců napříč {clusters} produktovými klastry", "radarHomeDealHubBtn": "Centrum slev", "radarHomeInspectBtn": "Ověřit odkaz na akci", "radarGenuineTitle": "Skutečná minima ({count})", @@ -1661,7 +1663,7 @@ "leaderboardBadge": "Žebříček", "sortByPrefix": "Řazení: {label}", "radarBannerBadge": "Cenová minima a falešné slevy ({title})", - "radarAnalyzedSub": "Zkontrolováno {count} nabídek v 10 obchodech", + "radarAnalyzedSub": "Zkontrolováno {count} nabídek", "viewAllRadarBtn": "Zobrazit všechny nabídky z 10 obchodů", "vsMedianBadge": "-{pct}% oproti mediánu", "fakeMarkupBadge": "Nadsazeno +{pct}%", diff --git a/apps/web/locales/en.json b/apps/web/locales/en.json index 8ae090dd4..ba67f63b6 100644 --- a/apps/web/locales/en.json +++ b/apps/web/locales/en.json @@ -676,9 +676,9 @@ "radarMdHeader": "### 🔥 Cross-store price lows and fake-sale warnings (10 stores) - Rate.vn", "radarMdMeta": "- **Category:** {category} | **Clusters analyzed:** {clusters} ({offers} listings)", "radarMdGenuineTitle": "#### 🟢 Real cross-store lows", - "radarMdGenuineTableHead": "| Device | Store / seller | Current price | 10-store median | Real savings | JReviews score |", + "radarMdGenuineTableHead": "| Device | Store / seller | Current price | Listing median | Real savings | JReviews score |", "radarMdFakeTitle": "#### 🚨 Inflated list prices", - "radarMdFakeTableHead": "| Device | Store / seller | Selling price | Claimed list price | 10-store median | Markup |", + "radarMdFakeTableHead": "| Device | Store / seller | Selling price | Claimed list price | Listing median | Markup |", "radarMdSpreadTitle": "#### 📊 Largest price gaps between stores", "radarMdSpreadTableHead": "| Device | Cheapest store | Priciest store | Lowest price | Highest price | Gap |", "noScore": "N/A", @@ -858,7 +858,7 @@ "filteredSpamCount": "{count, plural, one {# fake or spam review filtered} other {# fake or spam reviews filtered}}", "noAbnormalReviews": "No abnormal review patterns detected", "priceRangeLabel": "Reference price range:", - "radarGenuineBadge": "{count} cross-store lows (-{pct}%)", + "radarGenuineBadge": "{count} below-median deals (-{pct}%)", "radarFakeBadge": "{count} fake-sale markup alerts", "radarZeroFakeBadge": "No fake-sale alerts found", "viewTrustProfileCta": "View seller profile →", @@ -888,6 +888,8 @@ "scamStatusLabel": "Scam alert status:", "scamStatusClean": "✓ Zero scam reports / alerts", "scamStatusAlert": "Active risk alert detected", + "scamStatusCaution": "Some risk signals to watch", + "layer2NoReviews": "No reviews to analyse yet.", "entityVerificationLabel": "Marketplace entity status:", "entityOfficial": "✓ Official Mall (brand store)", "piiProtectionLabel": "PII data privacy:", @@ -902,7 +904,7 @@ "statSabotage": "Sabotage/Bomb", "profileRadarBadge": "Price lows and fake-sale signals", "profileRadarAnalyzed": "Automatically cross-checked across {count} multi-platform listings", - "profileRadarGenuineCount": "{count} cross-store lows", + "profileRadarGenuineCount": "{count} below-median listings", "profileRadarFakeCount": "{count} fake-sale markup alerts", "profileRadarZeroFake": "0 fake-sale markup alerts", "openRadar10PlatformsBtn": "Deals across 10 stores →", @@ -1055,7 +1057,7 @@ "bayesianTierLow": "Low confidence", "bayesianTierSmoothed": "Few verified samples, score adjusted", "bayesianTierPrior": "Not enough verified samples", - "radarExplanationGenuineDeal": "{savings} ₫ below the 10-platform median (-{pct}%) at {merchant} ({platform}).", + "radarExplanationGenuineDeal": "{savings} ₫ below the median of {count} listings (-{pct}%) at {merchant} ({platform}).", "radarExplanationFakeSale": "The store shows a struck-through list price of {original} ₫ (+{markupPct}% above the market median) to suggest a {claimedPct}% discount, but the actual price is {aboveFloor} ₫ above the market low.", "offersMdSpreadLine": "- **Price gap between stores ({count} stores):** Save **{spreadVnd} ₫ ({spreadPct}%)** at **{cheapestPlatform} ({cheapestMerchant})** instead of **{priciestPlatform}**\n", "shareAuditPriceSources": "{price} ₫ ({count} checked sources)", @@ -1176,7 +1178,7 @@ "scoreDeltaLabel": "{delta} pts apart", "view1v1ScoreBtn": "See the 1v1 breakdown", "radarHomeBadge": "Price signals across 10 stores", - "radarHomeAnalyzed": "Automatically cross-checking {offers} listings across {clusters} product clusters", + "radarHomeAnalyzed": "Automatically cross-checking {offers} listings from {merchants} merchants across {clusters} product clusters", "radarHomeDealHubBtn": "Deal hub", "radarHomeInspectBtn": "Check a sale link", "radarGenuineTitle": "Real lows ({count})", @@ -1661,7 +1663,7 @@ "leaderboardBadge": "Leaderboard", "sortByPrefix": "Sort: {label}", "radarBannerBadge": "Price lows and fake-sale warnings ({title})", - "radarAnalyzedSub": "Checked {count} store listings across 10 stores", + "radarAnalyzedSub": "Checked {count} store listings", "viewAllRadarBtn": "See all deals across 10 stores", "vsMedianBadge": "-{pct}% vs median", "fakeMarkupBadge": "Inflated +{pct}%", diff --git a/apps/web/locales/vi.json b/apps/web/locales/vi.json index da11c176b..259bbb572 100644 --- a/apps/web/locales/vi.json +++ b/apps/web/locales/vi.json @@ -674,11 +674,11 @@ "personaGaming": "Hiệu năng và chơi game", "personaEndurance": "Pin trâu và sạc nhanh", "radarMdHeader": "### 🔥 Giá đáy giữa các sàn và cảnh báo giá gốc bị nâng khống (10 sàn) - Rate.vn", - "radarMdMeta": "- **Ngành hàng:** {category} | **Cụm sản phẩm phân tích:** {clusters} ({offers} gian hàng)", + "radarMdMeta": "- **Ngành hàng:** {category} | **Cụm sản phẩm phân tích:** {clusters} ({offers} tin bán)", "radarMdGenuineTitle": "#### 🟢 Giá đáy thật giữa các sàn", - "radarMdGenuineTableHead": "| Thiết bị | Sàn / gian hàng | Giá bán hiện tại | Giá trung vị 10 sàn | Tiết kiệm thật | Điểm JReviews |", + "radarMdGenuineTableHead": "| Thiết bị | Sàn / gian hàng | Giá bán hiện tại | Giá trung vị các tin bán | Tiết kiệm thật | Điểm JReviews |", "radarMdFakeTitle": "#### 🚨 Giá gốc bị nâng khống", - "radarMdFakeTableHead": "| Thiết bị | Sàn / gian hàng | Giá bán thực tế | Giá gốc ghi trên tin | Giá trung vị 10 sàn | Mức nâng khống |", + "radarMdFakeTableHead": "| Thiết bị | Sàn / gian hàng | Giá bán thực tế | Giá gốc ghi trên tin | Giá trung vị các tin bán | Mức nâng khống |", "radarMdSpreadTitle": "#### 📊 Chênh lệch giá lớn nhất giữa các sàn", "radarMdSpreadTableHead": "| Thiết bị | Sàn rẻ nhất | Sàn đắt nhất | Giá thấp nhất | Giá cao nhất | Chênh lệch |", "noScore": "Chưa có", @@ -699,7 +699,7 @@ "maxBudgetAria": "Ngân sách tối đa", "searchPlaceholder": "Tìm nhanh theo tên máy hoặc thương hiệu (Apple, Samsung, Xiaomi, Sony...)", "radarBannerBadge": "Deal giá đáy và cảnh báo giảm giá ảo trên 10 sàn", - "radarScannedSummary": "Đã quét {offers} gian hàng trên {clusters} cụm sản phẩm", + "radarScannedSummary": "Đã quét {offers} tin bán trên {clusters} cụm sản phẩm", "copiedRadarMdBtn": "✓ Đã chép tín hiệu giá", "copyRadarMdBtn": "Sao chép tín hiệu giá (Markdown)", "exportRadarCsvBtn": "Xuất tín hiệu giá (CSV)", @@ -858,7 +858,7 @@ "filteredSpamCount": "{count} đánh giá ảo hoặc spam đã lọc", "noAbnormalReviews": "Chưa phát hiện đánh giá bất thường", "priceRangeLabel": "Biên độ giá tham chiếu:", - "radarGenuineBadge": "{count} giá đáy giữa các sàn (-{pct}%)", + "radarGenuineBadge": "{count} tin bán dưới giá trung vị (-{pct}%)", "radarFakeBadge": "{count} Cảnh báo kê khống giá gốc", "radarZeroFakeBadge": "Chưa phát hiện giảm giá ảo", "viewTrustProfileCta": "Xem hồ sơ gian hàng →", @@ -888,6 +888,8 @@ "scamStatusLabel": "Trạng thái cảnh báo lừa đảo:", "scamStatusClean": "✓ Không ghi nhận phốt / cảnh báo", "scamStatusAlert": "Có cảnh báo rủi ro", + "scamStatusCaution": "Có tín hiệu cần lưu ý", + "layer2NoReviews": "Chưa có đánh giá để phân tích.", "entityVerificationLabel": "Xác thực pháp nhân sàn:", "entityOfficial": "✓ Gian hàng chính hãng (Official Mall)", "piiProtectionLabel": "Bảo mật dữ liệu PII:", @@ -901,8 +903,8 @@ "statSeedingFake": "Đánh giá ảo", "statSabotage": "Phá hoại/Bomb", "profileRadarBadge": "Tín hiệu giá đáy và giảm giá ảo", - "profileRadarAnalyzed": "Đối chiếu tự động trên {count} gian hàng đa sàn", - "profileRadarGenuineCount": "{count} giá đáy giữa các sàn", + "profileRadarAnalyzed": "Đối chiếu tự động trên {count} tin bán đa sàn", + "profileRadarGenuineCount": "{count} tin bán dưới giá trung vị", "profileRadarFakeCount": "{count} cảnh báo kê khống giá gốc", "profileRadarZeroFake": "0 cảnh báo nâng khống giá gốc", "openRadar10PlatformsBtn": "Xem deal trên 10 sàn →", @@ -1055,7 +1057,7 @@ "bayesianTierLow": "Độ tin cậy thấp", "bayesianTierSmoothed": "Ít mẫu kiểm chứng, điểm đã được điều chỉnh", "bayesianTierPrior": "Chưa đủ mẫu kiểm chứng", - "radarExplanationGenuineDeal": "Rẻ hơn trung vị 10 sàn {savings} ₫ (-{pct}%) tại {merchant} ({platform}).", + "radarExplanationGenuineDeal": "Rẻ hơn giá trung vị của {count} tin bán {savings} ₫ (-{pct}%) tại {merchant} ({platform}).", "radarExplanationFakeSale": "Gian hàng treo giá gốc gạch ngang {original} ₫ (cao hơn trung vị thị trường +{markupPct}%) để tạo cảm giác giảm {claimedPct}%, nhưng giá thực bán cao hơn đáy thị trường {aboveFloor} ₫.", "offersMdSpreadLine": "- **Chênh lệch giá giữa các sàn ({count} sàn):** Tiết kiệm **{spreadVnd} ₫ ({spreadPct}%)** khi mua tại **{cheapestPlatform} ({cheapestMerchant})** thay vì **{priciestPlatform}**\n", "shareAuditPriceSources": "{price} ₫ ({count} nguồn đã kiểm tra)", @@ -1176,7 +1178,7 @@ "scoreDeltaLabel": "Chênh {delta} điểm", "view1v1ScoreBtn": "Xem chấm điểm 1v1", "radarHomeBadge": "Tín hiệu giá trên 10 sàn", - "radarHomeAnalyzed": "Đối chiếu tự động {offers} gian hàng trên {clusters} cụm sản phẩm", + "radarHomeAnalyzed": "Đối chiếu tự động {offers} tin bán của {merchants} gian hàng trên {clusters} cụm sản phẩm", "radarHomeDealHubBtn": "Trung tâm săn deal", "radarHomeInspectBtn": "Kiểm tra link khuyến mãi", "radarGenuineTitle": "Giá tốt thật ({count})", @@ -1661,7 +1663,7 @@ "leaderboardBadge": "Bảng xếp hạng", "sortByPrefix": "Sắp xếp: {label}", "radarBannerBadge": "Deal giá đáy và cảnh báo giảm giá ảo ({title})", - "radarAnalyzedSub": "Đã kiểm tra {count} tin bán trên 10 sàn", + "radarAnalyzedSub": "Đã kiểm tra {count} tin bán", "viewAllRadarBtn": "Xem tất cả deal trên 10 sàn", "vsMedianBadge": "-{pct}% so trung vị", "fakeMarkupBadge": "Kê khống +{pct}%", diff --git a/apps/web/package.json b/apps/web/package.json index 5bc16df08..2ebcd54ae 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -8,7 +8,7 @@ "lint": "eslint . --max-warnings 0", "preview": "next build && next start", "start": "next start", - "test": "pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/server/rate/__tests__/core-rate-architecture.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/app/api/v1/rate/__tests__/write-paths.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/logger.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/review-display.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/concurrency.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/catalog-listing.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/discount-verdict-copy.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/product-detail-copy.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/product-competitors.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/analyzer-copy.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/sold-count.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/content-lang.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/image-url.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/client-messages.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/seo.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/offer-plausibility.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/sitemap-lastmod.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/leaderboard-badge-copy.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/focus-trap.test.ts", + "test": "pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/server/rate/__tests__/core-rate-architecture.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/app/api/v1/rate/__tests__/write-paths.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/logger.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/review-display.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/concurrency.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/catalog-listing.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/discount-verdict-copy.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/product-detail-copy.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/product-competitors.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/analyzer-copy.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/sold-count.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/content-lang.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/image-url.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/client-messages.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/seo.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/offer-plausibility.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/sitemap-lastmod.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/leaderboard-badge-copy.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/focus-trap.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/display-truth.test.ts", "typecheck": "tsc --noEmit" }, "browserslist": [ diff --git a/apps/web/src/app/[locale]/leaderboard/page.tsx b/apps/web/src/app/[locale]/leaderboard/page.tsx index 553ffe2be..f038fea75 100644 --- a/apps/web/src/app/[locale]/leaderboard/page.tsx +++ b/apps/web/src/app/[locale]/leaderboard/page.tsx @@ -8,6 +8,7 @@ import { } from 'react-icons/bs'; import { Link } from '@/lib/navigation'; import { + getCachedFilteredReviewCountsByMaster, getCachedMasterProducts, getCrossPlatformDealRadar, } from '@/server/rate'; @@ -83,23 +84,29 @@ export default async function LeaderboardPage({ params }: PageProps) { // The 100 best-rated models of each category: one global top 100 could // leave a whole category out of its own leaderboard tab (DOS/Rate#473). - const [productsByCategory, dealRadar] = await Promise.all([ - Promise.all( - [...VALID_CATEGORIES].map((categorySlug) => - getCachedMasterProducts({ - categorySlug, - limit: 100, - sort: 'rating_desc', - }) - ) - ), - // No fallback: the page is cached, so a null radar would be served for - // the whole revalidate window (DOS/Rate#491). - getCrossPlatformDealRadar({ - categorySlug: 'all', - limit: 36, - }), - ]); + const [productsByCategory, dealRadar, filteredReviewCounts] = + await Promise.all([ + Promise.all( + [...VALID_CATEGORIES].map((categorySlug) => + getCachedMasterProducts({ + categorySlug, + limit: 100, + sort: 'rating_desc', + }) + ) + ), + // No fallback: the page is cached, so a null radar would be served for + // the whole revalidate window (DOS/Rate#491). + getCrossPlatformDealRadar({ + categorySlug: 'all', + limit: 36, + }), + // Real counts of excluded stored reviews (DOS/Rate#1139). On a read + // failure no product claims a blocked count, which is still true. + getCachedFilteredReviewCountsByMaster().catch( + () => ({}) as Record + ), + ]); // Back in one best-rated-first list (same key as search_master_products' // rating_desc), so the top 15 in the ItemList below stay platform-wide. const ratingOf = (p: (typeof productsByCategory)[number][number]) => @@ -345,6 +352,7 @@ export default async function LeaderboardPage({ params }: PageProps) { diff --git a/apps/web/src/app/[locale]/merchants/[id]/page.tsx b/apps/web/src/app/[locale]/merchants/[id]/page.tsx index ab014465b..0dd4a3692 100644 --- a/apps/web/src/app/[locale]/merchants/[id]/page.tsx +++ b/apps/web/src/app/[locale]/merchants/[id]/page.tsx @@ -31,6 +31,7 @@ import { BsStarFill, } from 'react-icons/bs'; import { isPendingReview } from '@/lib/review-display'; +import { merchantRiskTone } from '@/lib/merchant-risk-tone'; import ContentText from '@/components/elementary/ContentText'; import { contentLang } from '@/lib/content-lang'; import ClientMessages from '@/components/providers/ClientMessages'; @@ -145,10 +146,13 @@ export default async function MerchantProfilePage({ : 'bg-danger text-white'; const brk = merchant.review_risk_breakdown; + // No ratio without analysed reviews: 0 of 0 is not "100% authentic". const authenticPct = brk.total_reviews > 0 ? Math.round((brk.authentic_count / brk.total_reviews) * 1000) / 10 - : 100; + : null; + // Same cut-offs as the home merchant cards (DOS/Rate#1140). + const scamTone = merchantRiskTone(merchant.dosafe_risk_score); const canonicalUrl = `https://rate.vn/merchants/${merchant.id}`; @@ -396,10 +400,14 @@ export default async function MerchantProfilePage({ {t('scamRiskBadge', { score: merchant.dosafe_risk_score })} @@ -410,10 +418,21 @@ export default async function MerchantProfilePage({
{t('scamStatusLabel')} - - {merchant.dosafe_risk_score === 0 + + {scamTone === 'good' ? t('scamStatusClean') - : t('scamStatusAlert')} + : scamTone === 'warn' + ? t('scamStatusCaution') + : t('scamStatusAlert')}
@@ -466,9 +485,19 @@ export default async function MerchantProfilePage({
-

- {t('layer2DescPrefix')} {brk.total_reviews}{' '} - {t('layer2DescMid')} {authenticPct}%). +

+ {authenticPct == null ? ( + t('layer2NoReviews') + ) : ( + <> + {t('layer2DescPrefix')}{' '} + {brk.total_reviews} {t('layer2DescMid')}{' '} + {authenticPct}%). + + )}

diff --git a/apps/web/src/app/[locale]/page.tsx b/apps/web/src/app/[locale]/page.tsx index 3a5c5cddc..3df3be7e5 100644 --- a/apps/web/src/app/[locale]/page.tsx +++ b/apps/web/src/app/[locale]/page.tsx @@ -54,6 +54,7 @@ import { contentLang } from '@/lib/content-lang'; import ClientMessages from '@/components/providers/ClientMessages'; import { siteJsonLd } from '@/lib/seo'; import { productImageUrl } from '@/lib/rate-domain-core'; +import { merchantRiskTone } from '@/lib/merchant-risk-tone'; // Cached after the first request, refreshed every 5 minutes or when the // worker revalidates its cache tags (DOS/Rate#491). @@ -627,6 +628,7 @@ export default async function Home({

{tHome('radarHomeAnalyzed', { offers: dealRadar.totalOffersAnalyzed, + merchants: dealRadar.totalMerchantsAnalyzed, clusters: dealRadar.totalClustersAnalyzed, })}

@@ -842,8 +844,7 @@ export default async function Home({ {merchants .slice(0, HOME_MERCHANT_PREVIEW_COUNT) .map((merchant) => { - const tone = (risk: number) => - risk < 20 ? 'is-good' : risk < 50 ? 'is-warn' : 'is-bad'; + const tone = (risk: number) => `is-${merchantRiskTone(risk)}`; const overallTone = tone(merchant.risk_score); const trustLabel = overallTone === 'is-good' @@ -901,7 +902,8 @@ export default async function Home({
{merchant.dosafe_risk_score}/100
- {merchant.dosafe_risk_score < 20 && ( + {merchantRiskTone(merchant.dosafe_risk_score) === + 'good' && (
{tHome('noScamDetected')}
diff --git a/apps/web/src/app/api/v1/rate/leaderboard/route.ts b/apps/web/src/app/api/v1/rate/leaderboard/route.ts index f167ba98d..42fb90e2f 100644 --- a/apps/web/src/app/api/v1/rate/leaderboard/route.ts +++ b/apps/web/src/app/api/v1/rate/leaderboard/route.ts @@ -1,6 +1,7 @@ import { NextRequest, NextResponse } from 'next/server'; import { computeProductRadarSignal, + getCachedFilteredReviewCountsByMaster, getCachedMasterProducts, getMasterProductOffersBatch, } from '@/server/rate'; @@ -54,11 +55,18 @@ export async function GET(req: NextRequest) { // Brand, price segment, query and the criterion ranking all run on this // list, so it must be the whole category, not its 100 best-rated models // (DOS/Rate#473). 500 is getMasterProducts' cap. - const allProducts = await getCachedMasterProducts({ - categorySlug: category, - limit: 500, - sort: 'rating_desc', - }); + const [allProducts, filteredReviewCounts] = await Promise.all([ + getCachedMasterProducts({ + categorySlug: category, + limit: 500, + sort: 'rating_desc', + }), + // A failed count read shows no blocked count (still true) instead of + // failing the whole ranking (DOS/Rate#1139). + getCachedFilteredReviewCountsByMaster().catch( + () => ({}) as Record + ), + ]); const ranked = rankMasterProductsForLeaderboard(allProducts, { category, @@ -66,6 +74,7 @@ export async function GET(req: NextRequest) { priceSegment, brand, query, + filteredReviewCounts, }); const pageRanked = ranked.slice(0, limit); diff --git a/apps/web/src/app/api/v1/rate/versus/route.ts b/apps/web/src/app/api/v1/rate/versus/route.ts index 3d70254f2..939efab2d 100644 --- a/apps/web/src/app/api/v1/rate/versus/route.ts +++ b/apps/web/src/app/api/v1/rate/versus/route.ts @@ -2,6 +2,7 @@ import { NextRequest, NextResponse } from 'next/server'; import { computeProductRadarSignal, getCachedCompareMasterProducts, + getCachedFilteredReviewCountsByMaster, getMasterProductCategorySlug, getMasterProductOffersBatch, } from '@/server/rate'; @@ -191,8 +192,22 @@ export async function GET(req: NextRequest) { const prodB = compared[1]; const category = getMasterProductCategorySlug(prodA); - const scoreA = scoreMasterProductForLeaderboard(prodA, 'combined'); - const scoreB = scoreMasterProductForLeaderboard(prodB, 'combined'); + // filtered_noise_review_count counts stored reviews only (DOS/Rate#1139). + // On a read failure no product claims a blocked count, which is still true. + const filteredReviewCounts = + await getCachedFilteredReviewCountsByMaster().catch( + () => ({}) as Record + ); + const scoreA = scoreMasterProductForLeaderboard( + prodA, + 'combined', + filteredReviewCounts + ); + const scoreB = scoreMasterProductForLeaderboard( + prodB, + 'combined', + filteredReviewCounts + ); const requestedPersonaId = ( parseBoundedStringParam(searchParams.get('persona'), 32) || 'balanced' diff --git a/apps/web/src/components/leaderboard/LeaderboardExplorer.tsx b/apps/web/src/components/leaderboard/LeaderboardExplorer.tsx index 8859e2762..5b0cf660c 100644 --- a/apps/web/src/components/leaderboard/LeaderboardExplorer.tsx +++ b/apps/web/src/components/leaderboard/LeaderboardExplorer.tsx @@ -18,6 +18,7 @@ import { normalizeLeaderboardCriterion, scoreMasterProductForLeaderboard, type CanonicalCategorySlug, + type FilteredReviewCountsByMaster, type LeaderboardCriterionKey, type LeaderboardPriceSegment, type MasterProduct, @@ -112,6 +113,8 @@ interface LeaderboardExplorerProps { readonly products: readonly MasterProduct[]; readonly dealRadar?: CrossPlatformDealRadarResponse | null; readonly locale?: string; + /** Stored reviews kept out of the rating, per master id (DOS/Rate#1139). */ + readonly filteredReviewCounts?: FilteredReviewCountsByMaster; } interface RankedProductEntry { @@ -173,9 +176,14 @@ function buildCategoryTabs(t: TranslateFn): ReadonlyArray<{ function computeProductScores( item: MasterProduct, - criterion: LeaderboardCriterionKey + criterion: LeaderboardCriterionKey, + filteredReviewCounts?: FilteredReviewCountsByMaster ): RankedProductEntry { - const scored = scoreMasterProductForLeaderboard(item, criterion); + const scored = scoreMasterProductForLeaderboard( + item, + criterion, + filteredReviewCounts + ); return { product: scored.product, categorySlug: scored.categorySlug, @@ -218,6 +226,7 @@ function TabFromUrl({ export default function LeaderboardExplorer({ products, dealRadar, + filteredReviewCounts, }: LeaderboardExplorerProps) { const t = useTranslations('leaderboard'); const locale = useLocale(); @@ -464,7 +473,11 @@ export default function LeaderboardExplorer({ const scored = filtered .map((item) => { - const base = computeProductScores(item, activeCriterion); + const base = computeProductScores( + item, + activeCriterion, + filteredReviewCounts + ); if (activePersona !== 'none' && totalWeight > 0) { const weighted5 = Number( ( @@ -524,6 +537,7 @@ export default function LeaderboardExplorer({ activeCriterion, activePersona, customWeights, + filteredReviewCounts, ]); const top3Slugs = useMemo( diff --git a/apps/web/src/components/reviews/JReviewsSection.tsx b/apps/web/src/components/reviews/JReviewsSection.tsx index 1a7c40a0f..c8b714e30 100644 --- a/apps/web/src/components/reviews/JReviewsSection.tsx +++ b/apps/web/src/components/reviews/JReviewsSection.tsx @@ -16,6 +16,7 @@ import { BsStarFill, } from 'react-icons/bs'; import { contentLang } from '@/lib/content-lang'; +import { computeJReviewsUserScores } from '@/lib/jreviews-user-score'; import { escapeCsvCell } from '@/lib/csv-safe'; import { computeCombinedDualScore, @@ -270,40 +271,12 @@ export default function JReviewsSection({ (r) => r.reviewer_type === 'expert' && r.helpfulness_weight > 0 ); - let computedUser: number | null = - userRatingWeighted && userRatingWeighted > 0 ? userRatingWeighted : null; - let userWeightSum = 0; - let userWeightedStars = 0; - if (validUserReviews.length > 0) { - userWeightSum = validUserReviews.reduce( - (acc, r) => acc + r.helpfulness_weight, - 0 - ); - userWeightedStars = validUserReviews.reduce( - (acc, r) => acc + r.rating_star * r.helpfulness_weight, - 0 - ); - if (userWeightSum > 0) { - computedUser = Number((userWeightedStars / userWeightSum).toFixed(2)); - } - } else if (computedUser == null && averageRating > 0) { - computedUser = Number(Number(averageRating).toFixed(2)); - } - - const priorMean = 4.2; - const priorStrength = 3; - const bayesianUserScore = - userWeightSum > 0 - ? Number( - ( - (priorStrength * priorMean + userWeightedStars) / - (priorStrength + userWeightSum) - ).toFixed(2) - ) - : computedUser; - const bayesianConfidence = Number( - (userWeightSum / (userWeightSum + priorStrength)).toFixed(2) - ); + const { + user: computedUser, + bayesianUser: bayesianUserScore, + bayesianConfidence, + userWeightSum, + } = computeJReviewsUserScores(reviews, userRatingWeighted, averageRating); const confidenceTier: 'insufficient_data' | 'low' | 'medium' | 'high' = bayesianConfidence < 0.3 ? 'insufficient_data' @@ -336,8 +309,10 @@ export default function JReviewsSection({ } } + // The buyer score the header shows, so a 100% buyer composite equals it + // (DOS/Rate#1144). const dualScore = computeCombinedDualScore({ - userScore: computedUser, + userScore: bayesianUserScore, expertScore: computedExpert, userConfidence: bayesianConfidence, fallbackAverage: averageRating, diff --git a/apps/web/src/lib/__tests__/client-messages.test.ts b/apps/web/src/lib/__tests__/client-messages.test.ts index 872885bf2..939dafa79 100644 --- a/apps/web/src/lib/__tests__/client-messages.test.ts +++ b/apps/web/src/lib/__tests__/client-messages.test.ts @@ -118,6 +118,7 @@ function main() { categoryFilter: 'all', totalClustersAnalyzed: 1, totalOffersAnalyzed: 2, + totalMerchantsAnalyzed: 2, genuineDeals: [ { id: 'gd-ctrl', @@ -142,6 +143,7 @@ function main() { marketMaxPrice: 28_000_000, savingsVsMedianVnd: 2_000_000, savingsVsMedianPct: 7.7, + marketOfferCount: 3, claimedDiscountPct: 14.3, fakeMarkupPct: 0, jreviewsScore10: 9.0, diff --git a/apps/web/src/lib/__tests__/display-truth.test.ts b/apps/web/src/lib/__tests__/display-truth.test.ts new file mode 100644 index 000000000..6533e2b87 --- /dev/null +++ b/apps/web/src/lib/__tests__/display-truth.test.ts @@ -0,0 +1,226 @@ +import assert from 'node:assert/strict'; +import { readFileSync } from 'node:fs'; +import { join } from 'node:path'; +import { computeCrossPlatformDealRadarFromData } from '../../server/rate/deals'; +import { merchantRiskTone } from '../merchant-risk-tone'; +import { radarExplanation } from '../product-detail-copy'; +import { buildRadarIndex } from '../deal-radar'; +import { computeJReviewsUserScores } from '../jreviews-user-score'; +import { + computeBayesianRatingSummary, + computeCombinedDualScore, +} from '../rate-domain-core'; + +// Display defects from the live audit #1131: numbers and warnings the site +// showed that were not true. + +type Messages = Record>; +const readLocale = (locale: string): Messages => + JSON.parse( + readFileSync( + join(__dirname, '..', '..', '..', 'locales', `${locale}.json`), + 'utf8' + ) + ); +const LOCALES = ['vi', 'en', 'cs'] as const; + +// DOS/Rate#1140: one risk cut-off for the home cards and the merchant page. +// Every merchant scored 4, 11 or 14 and the detail page called them all scams. +for (const score of [0, 4, 11, 14, 19]) { + assert.equal(merchantRiskTone(score), 'good', `DOSafe ${score} is clean`); +} +for (const score of [20, 35, 49]) { + assert.equal(merchantRiskTone(score), 'warn', `DOSafe ${score} is caution`); +} +for (const score of [50, 60, 100]) { + assert.equal(merchantRiskTone(score), 'bad', `DOSafe ${score} is an alert`); +} +for (const unknown of [null, undefined, Number.NaN, 'abc']) { + assert.equal( + merchantRiskTone(unknown), + 'warn', + 'an unknown score is neither clean nor an alert' + ); +} +for (const locale of LOCALES) { + const merchants = readLocale(locale).merchants!; + for (const key of [ + 'scamStatusClean', + 'scamStatusCaution', + 'scamStatusAlert', + 'layer2NoReviews', + ]) { + assert.ok(merchants[key], `${locale}: missing merchants.${key}`); + } + assert.ok( + !/\d+\s*%/.test(merchants.layer2NoReviews!), + `${locale}: the no-reviews text must not show a percentage` + ); +} +const merchantPage = readFileSync( + join( + __dirname, + '..', + '..', + 'app', + '[locale]', + 'merchants', + '[id]', + 'page.tsx' + ), + 'utf8' +); +assert.ok( + merchantPage.includes('merchantRiskTone(merchant.dosafe_risk_score)') && + !merchantPage.includes('dosafe_risk_score === 0'), + 'the merchant page must use the shared risk cut-off, not "any non-zero score"' +); + +// DOS/Rate#1145: the median sentence names the real number of offers, and the +// home radar calls offers listings and merchants merchants. +const master = { + id: 'mp-aw-ultra-2', + slug: 'apple-watch-ultra-2-64gb', + name: 'Apple Watch Ultra 2 64GB', + brand: 'Apple', + category_id: 'smartwatches', + metadata: { category_slug: 'smartwatches' }, +}; +const offer = (i: number, merchantId: string, price: number) => ({ + id: `offer-${i}`, + platform: i === 0 ? 'cellphones' : 'shopee', + price_current: price, + price_original: null, + url: `https://example.com/${i}`, + merchant: { + id: merchantId, + name: `Store ${merchantId}`, + platform: i === 0 ? 'cellphones' : 'shopee', + risk_score: 4, + is_official: true, + }, +}); +const radar = computeCrossPlatformDealRadarFromData( + [ + { + master: master as never, + offers: [ + offer(0, 'm-a', 16_490_000), + offer(1, 'm-b', 23_490_000), + ] as never, + }, + ], + { categorySlug: 'all', limit: 10 } +); +assert.equal(radar.totalOffersAnalyzed, 2); +assert.equal(radar.totalMerchantsAnalyzed, 2); +const deal = radar.genuineDeals[0]; +assert.ok(deal, 'the cheaper of two offers is still below their median'); +assert.equal(deal.marketOfferCount, 2); +assert.ok( + !/10 sàn/i.test(deal.explanationVi) && !/10 Sàn/.test(deal.verdictBadgeVi), + `no "10 sàn" claim from 2 offers: ${deal.explanationVi} / ${deal.verdictBadgeVi}` +); +assert.match(deal.explanationVi, /trung vị của 2 tin bán/); + +const signal = buildRadarIndex(radar).get(master.slug)!; +const note = radarExplanation(signal); +assert.equal(note?.key, 'radarExplanationGenuineDeal'); +assert.equal(note!.values.count, '2'); +// Without a known offer count there is no median sentence at all. +assert.equal( + radarExplanation({ + ...signal, + genuineDeal: { + ...signal.genuineDeal!, + marketOfferCount: undefined as never, + }, + }), + null +); +for (const locale of LOCALES) { + const merchants = readLocale(locale).merchants!; + for (const key of ['radarGenuineBadge', 'profileRadarGenuineCount']) { + assert.ok( + !/giá đáy|cross-store low|minim napříč/i.test(merchants[key]!), + `${locale}: merchants.${key} counts every genuine deal, not floors` + ); + } +} +for (const locale of LOCALES) { + const messages = readLocale(locale); + const sentence = messages.productDetail!.radarExplanationGenuineDeal!; + assert.ok( + sentence.includes('{count}'), + `${locale}: median sentence needs {count}` + ); + assert.ok( + !/10[ -](sàn|platform|platforem)/i.test(sentence), + `${locale}: median sentence must not claim 10 platforms` + ); + const home = messages.homePage!.radarHomeAnalyzed!; + assert.ok( + home.includes('{offers}') && home.includes('{merchants}'), + `${locale}: the home radar line needs both offers and merchants` + ); +} +assert.match( + readLocale('vi').homePage!.radarHomeAnalyzed!, + /\{offers\} tin bán của \{merchants\} gian hàng/ +); + +// One merchant listing twice counts once. +const sameMerchant = computeCrossPlatformDealRadarFromData( + [ + { + master: master as never, + offers: [ + offer(0, 'm-a', 16_490_000), + offer(1, 'm-a', 23_490_000), + offer(2, 'm-b', 20_000_000), + ] as never, + }, + ], + { categorySlug: 'all', limit: 10 } +); +assert.equal(sameMerchant.totalOffersAnalyzed, 3); +assert.equal(sameMerchant.totalMerchantsAnalyzed, 2); + +// DOS/Rate#1144: with no expert score, the composite equals the buyer score +// the header shows. 9 rating-only 5-star reviews (weight 0.25 each) are 4.54 +// in the header and were 5.0 in the composite. +const ratingOnly = Array.from({ length: 9 }, () => ({ + reviewer_type: 'user', + include_in_rating: true, + helpfulness_weight: 0.25, + rating_star: 5, +})); +const header = computeBayesianRatingSummary(ratingOnly, 5).bayesianRating; +const live = computeJReviewsUserScores(ratingOnly, 5, 5); +assert.equal(header, 4.54); +assert.equal(live.bayesianUser, header); +assert.equal( + live.user, + 5, + 'the plain weighted mean stays shown as TB trọng số' +); +const composite = computeCombinedDualScore({ + userScore: live.bayesianUser, + expertScore: null, + userConfidence: live.bayesianConfidence, + fallbackAverage: 5, +}); +assert.equal(composite.blendMode, 'user_only'); +assert.equal(composite.overall, header); +assert.equal(composite.overall.toFixed(1), header.toFixed(1)); +const reviewsSection = readFileSync( + join(__dirname, '..', '..', 'components', 'reviews', 'JReviewsSection.tsx'), + 'utf8' +); +assert.match( + reviewsSection, + /computeCombinedDualScore\(\{\s*userScore: bayesianUserScore,/, + 'the reviews section composite must read the Bayesian buyer score' +); + +console.log('display-truth: ok'); diff --git a/apps/web/src/lib/jreviews-user-score.ts b/apps/web/src/lib/jreviews-user-score.ts new file mode 100644 index 000000000..1ea4ab413 --- /dev/null +++ b/apps/web/src/lib/jreviews-user-score.ts @@ -0,0 +1,73 @@ +/** The user-review fields the buyer score reads. */ +export interface JReviewsUserScoreReview { + reviewer_type?: string | null; + include_in_rating: boolean; + helpfulness_weight: number; + rating_star: number; +} + +export interface JReviewsUserScores { + /** Plain weighted mean of the counted buyer reviews ("TB trọng số"). */ + user: number | null; + /** Bayesian buyer score: the number the product header shows. */ + bayesianUser: number | null; + bayesianConfidence: number; + userWeightSum: number; +} + +const PRIOR_MEAN = 4.2; +const PRIOR_STRENGTH = 3; + +/** + * Buyer scores of the reviews section. The composite score must start from + * bayesianUser, the buyer score the header shows, not the raw mean: 9 + * rating-only 5-star reviews are 4.54 in the header and were 5.0 in the + * composite (DOS/Rate#1144). + */ +export function computeJReviewsUserScores( + reviews: readonly JReviewsUserScoreReview[], + userRatingWeighted: number | null | undefined, + averageRating: number +): JReviewsUserScores { + const validUserReviews = (Array.isArray(reviews) ? reviews : []).filter( + (r) => + r.reviewer_type !== 'expert' && + r.include_in_rating && + r.helpfulness_weight > 0 + ); + + let user: number | null = + userRatingWeighted && userRatingWeighted > 0 ? userRatingWeighted : null; + let userWeightSum = 0; + let userWeightedStars = 0; + if (validUserReviews.length > 0) { + userWeightSum = validUserReviews.reduce( + (acc, r) => acc + r.helpfulness_weight, + 0 + ); + userWeightedStars = validUserReviews.reduce( + (acc, r) => acc + r.rating_star * r.helpfulness_weight, + 0 + ); + if (userWeightSum > 0) { + user = Number((userWeightedStars / userWeightSum).toFixed(2)); + } + } else if (user == null && averageRating > 0) { + user = Number(Number(averageRating).toFixed(2)); + } + + const bayesianUser = + userWeightSum > 0 + ? Number( + ( + (PRIOR_STRENGTH * PRIOR_MEAN + userWeightedStars) / + (PRIOR_STRENGTH + userWeightSum) + ).toFixed(2) + ) + : user; + const bayesianConfidence = Number( + (userWeightSum / (userWeightSum + PRIOR_STRENGTH)).toFixed(2) + ); + + return { user, bayesianUser, bayesianConfidence, userWeightSum }; +} diff --git a/apps/web/src/lib/leaderboard-engine.ts b/apps/web/src/lib/leaderboard-engine.ts index 8ed6325b4..58c0c4492 100644 --- a/apps/web/src/lib/leaderboard-engine.ts +++ b/apps/web/src/lib/leaderboard-engine.ts @@ -385,9 +385,13 @@ export function computeJReviewsCriteriaScores( }; } +/** Filtered-review counts per master id, as read from stored reviews. */ +export type FilteredReviewCountsByMaster = Readonly>; + export function scoreMasterProductForLeaderboard( item: MasterProduct, - criterion: LeaderboardCriterionKey = 'combined' + criterion: LeaderboardCriterionKey = 'combined', + filteredReviewCounts?: FilteredReviewCountsByMaster | null ): Omit { const safeItem = ( item && typeof item === 'object' && !Array.isArray(item) ? item : {} @@ -479,9 +483,12 @@ export function scoreMasterProductForLeaderboard( Number.isFinite(rawAuthentic) && rawAuthentic >= 0 ? Math.min(Math.floor(rawAuthentic), MAX_LEADERBOARD_COUNT_CEILING) : safeTotal; - const filteredNoiseReviewCount = Math.max( - 0, - safeTotal - authenticReviewCount + // Only reviews Rate.vn stored and the analyser excluded. total_reviews is + // the marketplaces' own rating count, so total minus authentic is not a + // number of blocked reviews (DOS/Rate#1139). + const filteredNoiseReviewCount = readFilteredReviewCount( + filteredReviewCounts, + safeItem.id ); const rawMinPrice = toSafePositiveNumber(safeItem.min_price); @@ -524,6 +531,20 @@ export function scoreMasterProductForLeaderboard( }; } +function readFilteredReviewCount( + counts: FilteredReviewCountsByMaster | null | undefined, + masterId: unknown +): number { + if (!counts || typeof counts !== 'object' || typeof masterId !== 'string') { + return 0; + } + if (!Object.prototype.hasOwnProperty.call(counts, masterId)) return 0; + const raw = Number(counts[masterId]); + return Number.isFinite(raw) && raw > 0 + ? Math.min(Math.floor(raw), MAX_LEADERBOARD_COUNT_CEILING) + : 0; +} + export function rankMasterProductsForLeaderboard( products: MasterProduct[], options?: { @@ -533,6 +554,7 @@ export function rankMasterProductsForLeaderboard( brand?: string; query?: string; limit?: number; + filteredReviewCounts?: FilteredReviewCountsByMaster | null; } ): ScoredLeaderboardItem[] { const safeOptions = @@ -568,7 +590,13 @@ export function rankMasterProductsForLeaderboard( : []; const filtered = safeProducts - .map((item) => scoreMasterProductForLeaderboard(item, criterion)) + .map((item) => + scoreMasterProductForLeaderboard( + item, + criterion, + safeOptions?.filteredReviewCounts + ) + ) .filter((entry) => { if (category !== 'all' && entry.categorySlug !== category) { return false; diff --git a/apps/web/src/lib/merchant-risk-tone.ts b/apps/web/src/lib/merchant-risk-tone.ts new file mode 100644 index 000000000..18885540b --- /dev/null +++ b/apps/web/src/lib/merchant-risk-tone.ts @@ -0,0 +1,17 @@ +/** + * One cut-off for every merchant risk score shown on the site, so the home + * merchant cards and the merchant detail page agree (DOS/Rate#1140): below 20 + * is clean ("no scam detected"), 20-49 needs caution, 50+ is a risk alert. + */ +export type MerchantRiskTone = 'good' | 'warn' | 'bad'; + +export const MERCHANT_RISK_CLEAN_BELOW = 20; +export const MERCHANT_RISK_ALERT_FROM = 50; + +export function merchantRiskTone(score: unknown): MerchantRiskTone { + const n = typeof score === 'number' ? score : Number(score); + // An unknown score is neither clean nor a scam alert. + if (score == null || !Number.isFinite(n)) return 'warn'; + if (n < MERCHANT_RISK_CLEAN_BELOW) return 'good'; + return n < MERCHANT_RISK_ALERT_FROM ? 'warn' : 'bad'; +} diff --git a/apps/web/src/lib/product-detail-copy.ts b/apps/web/src/lib/product-detail-copy.ts index 8456094fc..c27fef1d8 100644 --- a/apps/web/src/lib/product-detail-copy.ts +++ b/apps/web/src/lib/product-detail-copy.ts @@ -55,6 +55,8 @@ export type RadarExplanation = pct: string; merchant: string; platform: string; + /** Offers behind the median, never a fixed "10 platforms" (#1145). */ + count: string; }; } | { @@ -82,6 +84,14 @@ const safePctString = (value: unknown, max = 10_000): string => { return String(Math.min(num, max)); }; +const offerCountString = (value: unknown): string | null => { + const num = parseDecimalDetailNumber(value); + // A median needs at least two offers; deals.ts never makes one from fewer. + return Number.isFinite(num) && num >= 2 + ? String(Math.min(Math.floor(num), 10_000)) + : null; +}; + const safeLabelText = (value: unknown, maxLen: number): string => { if (typeof value !== 'string') return ''; return value.replace(COPY_CONTROL_CHAR_RE, '').trim().slice(0, maxLen); @@ -97,6 +107,9 @@ export function radarExplanation( if (!signal || typeof signal !== 'object') return null; if (signal.verdict === 'genuine_deal' && signal.genuineDeal) { const deal = signal.genuineDeal; + // No offer count, no sentence: never print a number we do not know. + const count = offerCountString(deal.marketOfferCount); + if (count == null) return null; return { key: 'radarExplanationGenuineDeal', values: { @@ -104,6 +117,7 @@ export function radarExplanation( pct: safePctString(deal.savingsVsMedianPct), merchant: safeLabelText(deal.merchantName, 200), platform: safeLabelText(deal.platform, 64).toUpperCase(), + count, }, }; } diff --git a/apps/web/src/lib/rate-api.ts b/apps/web/src/lib/rate-api.ts index f0439b5aa..495118464 100644 --- a/apps/web/src/lib/rate-api.ts +++ b/apps/web/src/lib/rate-api.ts @@ -3357,6 +3357,89 @@ export const EMPTY_RATE_PLATFORM_STATS: RatePlatformStats = { * Fetch live platform statistics, category product counts, and recent verified/flagged * reviews from the `rate` schema to power the Homepage with 100% real database data. */ +/** + * Stored reviews the analyser kept out of the rating, per master product id + * (DOS/Rate#1139). Same rule as the platform's filteredSeedingCount below: + * include_in_rating false, or NULL with a flagged category or a fake verdict, + * and never a review still pending analysis. Masters with none are absent. + * The leaderboard must not derive this from master_products.total_reviews, + * which is the marketplaces' own rating count, not reviews Rate.vn read. + */ +export async function getFilteredReviewCountsByMaster(): Promise< + Record +> { + const supabase = getRateClient(); + const [explicitRows, derivedRows] = await Promise.all([ + fetchAllRows<{ review_id: string }>('filtered review flags', (from, to) => + supabase + .from('review_flags') + .select('review_id') + .eq('include_in_rating', false) + .or('verdict.is.null,verdict.neq.unanalyzed') + .order('review_id') + .range(from, to) + ), + fetchAllRows<{ review_id: string }>('filtered review flags', (from, to) => + supabase + .from('review_flags') + .select('review_id') + .is('include_in_rating', null) + .or( + 'and(flag_category.neq.authentic,or(verdict.is.null,verdict.neq.unanalyzed)),verdict.eq.fake,and(flag_category.is.null,verdict.eq.suspicious)' + ) + .order('review_id') + .range(from, to) + ), + ]); + const reviewIds = Array.from( + new Set( + [...explicitRows, ...derivedRows] + .map((r) => String(r.review_id ?? '')) + .filter(Boolean) + ) + ); + if (reviewIds.length === 0) return {}; + + const reviewRows = await fetchAllRowsInChunks<{ + id: string; + product_id: string | null; + }>('filtered reviews', reviewIds, (chunk, from, to) => + supabase + .from('reviews') + .select('id, product_id') + .in('id', chunk) + .order('id') + .range(from, to) + ); + const productIds = Array.from( + new Set(reviewRows.map((r) => String(r.product_id ?? '')).filter(Boolean)) + ); + if (productIds.length === 0) return {}; + + const productRows = await fetchAllRowsInChunks<{ + id: string; + cluster_id: string | null; + }>('filtered review products', productIds, (chunk, from, to) => + supabase + .from('products') + .select('id, cluster_id') + .in('id', chunk) + .order('id') + .range(from, to) + ); + const masterByProduct = new Map( + productRows.map((p) => [String(p.id), String(p.cluster_id ?? '')]) + ); + + const counts: Record = {}; + for (const r of reviewRows) { + const masterId = masterByProduct.get(String(r.product_id ?? '')); + if (!masterId) continue; + counts[masterId] = (counts[masterId] ?? 0) + 1; + } + return counts; +} + export async function getRatePlatformStats(): Promise { const supabase = getRateClient(); diff --git a/apps/web/src/lib/rate-domain.ts b/apps/web/src/lib/rate-domain.ts index 106f21c5c..80d2b2d5d 100644 --- a/apps/web/src/lib/rate-domain.ts +++ b/apps/web/src/lib/rate-domain.ts @@ -70,6 +70,7 @@ export { normalizeLeaderboardPriceSegment, rankMasterProductsForLeaderboard, scoreMasterProductForLeaderboard, + type FilteredReviewCountsByMaster, type Flagship1v1BattlePair, type LeaderboardCriteriaBreakdown, type LeaderboardCriterionKey, diff --git a/apps/web/src/server/rate/__tests__/core-rate-architecture.test.ts b/apps/web/src/server/rate/__tests__/core-rate-architecture.test.ts index 4261ecd1a..b19de8590 100644 --- a/apps/web/src/server/rate/__tests__/core-rate-architecture.test.ts +++ b/apps/web/src/server/rate/__tests__/core-rate-architecture.test.ts @@ -5345,6 +5345,7 @@ async function runCoreArchitectureSuite() { marketMaxPrice: 28_990_000, savingsVsMedianVnd: 1_500_000, savingsVsMedianPct: 5.6, + marketOfferCount: 3, claimedDiscountPct: 12, fakeMarkupPct: 0, jreviewsScore10: 9.2, @@ -5373,6 +5374,7 @@ async function runCoreArchitectureSuite() { marketMaxPrice: 28_990_000, savingsVsMedianVnd: 3_100_000, savingsVsMedianPct: 11.5, + marketOfferCount: 3, claimedDiscountPct: 17.6, fakeMarkupPct: 0, jreviewsScore10: 9.2, @@ -5403,6 +5405,7 @@ async function runCoreArchitectureSuite() { marketMaxPrice: 27_000_000, savingsVsMedianVnd: -500_000, savingsVsMedianPct: -2, + marketOfferCount: 3, claimedDiscountPct: 18.8, fakeMarkupPct: 25.5, jreviewsScore10: 9.1, @@ -5431,6 +5434,7 @@ async function runCoreArchitectureSuite() { marketMaxPrice: 27_000_000, savingsVsMedianVnd: -1_000_000, savingsVsMedianPct: -3.9, + marketOfferCount: 3, claimedDiscountPct: 33.7, fakeMarkupPct: 56.8, jreviewsScore10: 9.1, @@ -5486,6 +5490,7 @@ async function runCoreArchitectureSuite() { categoryFilter: 'all', totalClustersAnalyzed: 2, totalOffersAnalyzed: 4, + totalMerchantsAnalyzed: 3, generatedAt: new Date().toISOString(), }); @@ -5527,6 +5532,7 @@ async function runCoreArchitectureSuite() { categoryFilter: 'all', totalClustersAnalyzed: 1, totalOffersAnalyzed: 1, + totalMerchantsAnalyzed: 1, generatedAt: new Date().toISOString(), }, { id: 'non-existent-id', name: ' ' } @@ -9666,10 +9672,54 @@ async function runCoreArchitectureSuite() { 0, 'scoreMasterProductForLeaderboard must preserve explicit authentic_review_count: 0' ); + // total_reviews is the marketplaces' rating count, not reviews Rate.vn + // stored and filtered, so it never becomes a blocked count (#1139). assert.equal( scored898.filteredNoiseReviewCount, - 25, - 'scoreMasterProductForLeaderboard must count all 25 reviews as filtered noise when authentic_review_count is 0' + 0, + 'scoreMasterProductForLeaderboard must not derive a blocked count from total_reviews (#1139)' + ); + const iphone15 = { + id: 'mp-iphone-15', + slug: 'apple-iphone-15-128gb', + name: 'Apple iPhone 15 128GB', + brand: 'Apple', + user_rating_weighted: 4.6, + total_reviews: 6833, + authentic_review_count: 15, + } as unknown as import('@repo/shared-data').MasterProduct; + const lb1139 = lbMod.scoreMasterProductForLeaderboard(iphone15, 'combined'); + assert.equal(lb1139.authenticReviewCount, 15); + assert.equal( + lb1139.filteredNoiseReviewCount, + 0, + 'iPhone 15 (6833 marketplace ratings, 15 stored authentic) must not claim 6818 blocked reviews (#1139)' + ); + assert.equal( + lbMod.scoreMasterProductForLeaderboard(iphone15, 'combined', { + 'mp-iphone-15': 3, + 'mp-other': 99, + }).filteredNoiseReviewCount, + 3, + 'the blocked count must be the stored filtered reviews of that product only (#1139)' + ); + for (const bad of [-4, Number.NaN, '7' as unknown as number]) { + assert.equal( + lbMod.scoreMasterProductForLeaderboard(iphone15, 'combined', { + 'mp-iphone-15': bad, + }).filteredNoiseReviewCount, + bad === ('7' as unknown as number) ? 7 : 0, + 'filtered review counts must be non-negative integers (#1139)' + ); + } + const ranked1139 = lbMod.rankMasterProductsForLeaderboard([iphone15], { + category: 'all', + filteredReviewCounts: { 'mp-iphone-15': 2 }, + }); + assert.equal( + ranked1139[0]?.filteredNoiseReviewCount, + 2, + 'rankMasterProductsForLeaderboard must pass filteredReviewCounts through (#1139)' ); assert.ok( Number.isFinite(scored898.activeScore5) && @@ -9791,6 +9841,7 @@ async function runCoreArchitectureSuite() { genuineDeal: { savingsVsMedianVnd: true as unknown as number, savingsVsMedianPct: true as unknown as number, + marketOfferCount: 3, merchantName: 'Shop\u0000A', platform: 'shopee\u0000', } as unknown as import('../../../lib/deal-radar').CrossPlatformDealRadarItem, diff --git a/apps/web/src/server/rate/deals.ts b/apps/web/src/server/rate/deals.ts index 7ea837283..8b6ff6c1e 100644 --- a/apps/web/src/server/rate/deals.ts +++ b/apps/web/src/server/rate/deals.ts @@ -51,6 +51,8 @@ export interface CrossPlatformDealRadarItem { marketMaxPrice: number; savingsVsMedianVnd: number; savingsVsMedianPct: number; + /** Offers behind marketMedianPrice / marketMinPrice (DOS/Rate#1145). */ + marketOfferCount: number; claimedDiscountPct: number; fakeMarkupPct: number; jreviewsScore10: number | null; @@ -85,7 +87,10 @@ export interface CrossPlatformDealRadarResponse { categoryFilter: CanonicalCategorySlug | 'all'; platformFilter?: string; totalClustersAnalyzed: number; + /** Offers (listings), not merchants: one merchant can list several. */ totalOffersAnalyzed: number; + /** Distinct merchants behind totalOffersAnalyzed (DOS/Rate#1145). */ + totalMerchantsAnalyzed: number; genuineDeals: CrossPlatformDealRadarItem[]; fakeSaleTraps: CrossPlatformDealRadarItem[]; priceSpreadLeaders: CrossPlatformPriceSpreadItem[]; @@ -250,6 +255,7 @@ export function computeCrossPlatformDealRadarFromData( const priceSpreadLeaders: CrossPlatformPriceSpreadItem[] = []; let totalClustersAnalyzed = 0; let totalOffersAnalyzed = 0; + const analyzedMerchantKeys = new Set(); const boundedClusters = Array.isArray(clusters) ? clusters.slice(0, MAX_DEAL_RADAR_CLUSTERS) @@ -393,6 +399,17 @@ export function computeCrossPlatformDealRadarFromData( totalClustersAnalyzed++; totalOffersAnalyzed += validOffers.length; + for (const o of validOffers) { + // Without an id, a seller is its platform and name; without a name + // either (the name fell back to the platform), only the offer is known. + const named = o.merchant.name !== o.platform.toUpperCase(); + analyzedMerchantKeys.add( + o.merchant.id || + (named + ? `${o.platform.toLowerCase()}:${o.merchant.name.toLowerCase()}` + : `offer:${o.id}`) + ); + } const prices = validOffers.map((o) => o.price_current); const marketMinPrice = Math.min(...prices); @@ -493,7 +510,7 @@ export function computeCrossPlatformDealRadarFromData( verdict, verdictBadgeVi: isAllTimeLow ? '🔥 Đáy Giá Đa Sàn' - : '✅ Giá Tốt Nhất 10 Sàn', + : '✅ Giá Tốt Nhất Hiện Có', productSlug: safeMasterSlug, productName: master.name, brand: master.brand, @@ -513,10 +530,11 @@ export function computeCrossPlatformDealRadarFromData( marketMaxPrice, savingsVsMedianVnd, savingsVsMedianPct, + marketOfferCount: validOffers.length, claimedDiscountPct, fakeMarkupPct: 0, jreviewsScore10, - explanationVi: `Rẻ hơn trung vị 10 sàn ${savingsVsMedianVnd.toLocaleString('vi-VN')} ₫ (-${savingsVsMedianPct}%) tại ${bestOffer.merchant.name} (${bestOffer.platform.toUpperCase()}).`, + explanationVi: `Rẻ hơn giá trung vị của ${validOffers.length} tin bán ${savingsVsMedianVnd.toLocaleString('vi-VN')} ₫ (-${savingsVsMedianPct}%) tại ${bestOffer.merchant.name} (${bestOffer.platform.toUpperCase()}).`, }); } @@ -573,6 +591,7 @@ export function computeCrossPlatformDealRadarFromData( 100 ).toFixed(1) ), + marketOfferCount: validOffers.length, claimedDiscountPct, fakeMarkupPct, jreviewsScore10, @@ -617,6 +636,7 @@ export function computeCrossPlatformDealRadarFromData( platformFilter, totalClustersAnalyzed, totalOffersAnalyzed, + totalMerchantsAnalyzed: analyzedMerchantKeys.size, genuineDeals: genuineDeals.slice(0, limit), fakeSaleTraps: fakeSaleTraps.slice(0, limit), priceSpreadLeaders: priceSpreadLeaders.slice(0, limit), @@ -674,7 +694,8 @@ const _getCrossPlatformDealRadarByKey = cache( }); }, [ - 'rate-cross-platform-deal-radar', + // v2: the response gained totalMerchantsAnalyzed and marketOfferCount. + 'rate-cross-platform-deal-radar-v2', categorySlug, platformFilter, String(limit), diff --git a/apps/web/src/server/rate/index.ts b/apps/web/src/server/rate/index.ts index bb1bce96b..fe2728516 100644 --- a/apps/web/src/server/rate/index.ts +++ b/apps/web/src/server/rate/index.ts @@ -16,6 +16,7 @@ import { getMerchantProfileById as _getMerchantProfileById, getMerchantsList as _getMerchantsList, getRatePlatformStats as _getRatePlatformStats, + getFilteredReviewCountsByMaster as _getFilteredReviewCountsByMaster, getSitemapRows as _getSitemapRows, inspectProductOrShopUrl as _inspectProductOrShopUrl, isCanonicalCategorySlug, @@ -500,6 +501,18 @@ export const getCachedRatePlatformStats = cache(() => })() ); +/** Stored reviews kept out of the rating, per master id (DOS/Rate#1139). */ +export const getCachedFilteredReviewCountsByMaster = cache(() => + withRateDataCache( + _getFilteredReviewCountsByMaster, + ['rate-filtered-review-counts-by-master'], + { + revalidate: 600, + tags: [RATE_CACHE_TAGS.REVIEWS], + } + )() +); + export const getCachedInspectProductOrShopUrl = cache( inspectProductOrShopUrlWithRadar ); From 06edb5dabc3920fb6f06c5d71c0bfcd7fb558c61 Mon Sep 17 00:00:00 2001 From: JOY <5027251+JOY@users.noreply.github.com> Date: Wed, 28 Oct 2026 11:00:03 +0700 Subject: [PATCH 07/15] feat(shared-data): item and variant schemas, model_key helpers (#1149) (#1167) * feat(shared-data): Item and Variant schemas, model_key helpers (#1149) Add the Item / variant key rules from the design doc (#1129, section 4): composeModelKey and splitModelKey (model_key = item_key:variant_key), isItemKey / isVariantKey / isModelKey / isSizedVariantKey, and the ItemSchema, VariantSchema and VariantSourceSchema zod contracts. The helpers are zod-free and exported from both the root entry and @repo/shared-data/rules. Tests round-trip every key in the importer fixtures. Nothing consumes them yet. * test(shared-data): stricter fixture key scan, note legacy variant_key rule (#1149) * feat(shared-data): allow _ in model_key segments, as slugify emits (#1149) PO decision: the key shape accepts '_' in all three segments, because the normalizer's slugify keeps it and real keys carry it. Empty segments (e.g. samsung::unknown) stay rejected. The design doc's 7.3 inventory regex now matches the helpers. Co-Authored-By: Claude Opus 5.5 --- .../2026-10-27-item-variant-listing-model.md | 3 +- .../src/__tests__/shared-data.test.ts | 243 +++++++++++++++++- packages/shared-data/src/index.ts | 3 + packages/shared-data/src/rules/index.ts | 6 +- packages/shared-data/src/rules/model-key.ts | 113 ++++++++ packages/shared-data/src/schemas/index.ts | 1 + .../shared-data/src/schemas/item.schema.ts | 121 +++++++++ 7 files changed, 480 insertions(+), 10 deletions(-) create mode 100644 packages/shared-data/src/rules/model-key.ts create mode 100644 packages/shared-data/src/schemas/item.schema.ts diff --git a/Docs/Proposals/2026-10-27-item-variant-listing-model.md b/Docs/Proposals/2026-10-27-item-variant-listing-model.md index 866d6792b..1e4c52df5 100644 --- a/Docs/Proposals/2026-10-27-item-variant-listing-model.md +++ b/Docs/Proposals/2026-10-27-item-variant-listing-model.md @@ -594,7 +594,8 @@ WHERE mp.id = b.old_cluster_id; ```sql -- Inventory (M0) -SELECT count(*) FILTER (WHERE model_key !~ '^[a-z0-9][a-z0-9-]*:[a-z0-9][a-z0-9.-]*:[a-z0-9-]+$') AS bad_shape, +-- Key shape = the shared-data helpers (splitModelKey). `_` is allowed because slugify keeps it (#1149). +SELECT count(*) FILTER (WHERE model_key !~ '^[a-z0-9_][a-z0-9_-]*:[a-z0-9_][a-z0-9_.-]*:[a-z0-9_-]+$') AS bad_shape, count(*) FILTER (WHERE model_key LIKE 'khc:%') AS khc_keys, count(*) FILTER (WHERE split_part(model_key, ':', 3) = 'unknown') AS unknown_masters, count(*) FILTER (WHERE status IS NULL) AS null_status, diff --git a/packages/shared-data/src/__tests__/shared-data.test.ts b/packages/shared-data/src/__tests__/shared-data.test.ts index 09c94fc63..19a5a29a1 100644 --- a/packages/shared-data/src/__tests__/shared-data.test.ts +++ b/packages/shared-data/src/__tests__/shared-data.test.ts @@ -823,29 +823,258 @@ function testPriceRules(): void { } } +function assertRoundTrip(modelKey: string): void { + const parts = sharedDataRoot.splitModelKey(modelKey); + assert.ok(parts, `splitModelKey must parse ${modelKey}`); + const segments = modelKey.split(':'); + assert.equal(parts.itemKey, `${segments[0]}:${segments[1]}`, modelKey); + assert.equal(parts.variantKey, segments[2], modelKey); + assert.equal( + sharedDataRoot.composeModelKey(parts.itemKey, parts.variantKey), + modelKey + ); + assert.equal(sharedDataRoot.isItemKey(parts.itemKey), true, modelKey); + assert.equal(sharedDataRoot.isVariantKey(parts.variantKey), true, modelKey); +} + +function testItemVariantKeys(): void { + const { + splitModelKey, + composeModelKey, + isModelKey, + isItemKey, + isVariantKey, + isSizedVariantKey, + UNKNOWN_VARIANT_KEY, + ItemSchema, + VariantSchema, + VariantSourceSchema, + ItemKeySchema, + VariantKeySchema, + ModelKeySchema, + } = sharedDataRoot; + + // Exported from the root entry and from the zod-free rules entry. + assert.equal(rules.splitModelKey, splitModelKey); + assert.equal(rules.composeModelKey, composeModelKey); + + // Every key form the normalizer emits today (design doc 4.2). + const forms: Array<[string, string, string]> = [ + ['apple:iphone-17-pro:256gb', 'apple:iphone-17-pro', '256gb'], + ['apple:iphone-17-pro-max:1024gb', 'apple:iphone-17-pro-max', '1024gb'], + // Apple screen / case size stays in the Item (#1113, #1124). + ['apple:ipad-pro-m5-11:256gb', 'apple:ipad-pro-m5-11', '256gb'], + ['apple:ipad-pro-m5-13:1024gb', 'apple:ipad-pro-m5-13', '1024gb'], + ['apple:watch-series-11-46mm:64gb', 'apple:watch-series-11-46mm', '64gb'], + // Storage not stated, and earbuds / sizeless watches (single variant). + ['apple:iphone-18-pro:unknown', 'apple:iphone-18-pro', 'unknown'], + ['apple:airpods-pro-2:unknown', 'apple:airpods-pro-2', 'unknown'], + ['samsung:galaxy-buds3-pro:unknown', 'samsung:galaxy-buds3-pro', 'unknown'], + ['garmin:fenix-8:unknown', 'garmin:fenix-8', 'unknown'], + // Literal legacy / future variant keys (design doc 4.2). + [ + 'samsung:galaxy-buds-3-pro:standard', + 'samsung:galaxy-buds-3-pro', + 'standard', + ], + [ + 'apple:ipad-air-m3-11:256gb-cellular', + 'apple:ipad-air-m3-11', + '256gb-cellular', + ], + [ + 'samsung:galaxy-s26-ultra:256gb-16gbram', + 'samsung:galaxy-s26-ultra', + '256gb-16gbram', + ], + // A dot is allowed in the model segment (design doc 7.3), although + // today's slugify strips it. + ['xiaomi:redmi-note-14.5:128gb', 'xiaomi:redmi-note-14.5', '128gb'], + // slugify keeps `_` (it strips [^\w-]), including at the start. + ['asus:vivobook-x1504_va:512gb', 'asus:vivobook-x1504_va', '512gb'], + ['samsung:_galaxy-s25:256gb', 'samsung:_galaxy-s25', '256gb'], + ]; + for (const [modelKey, itemKey, variantKey] of forms) { + assert.deepEqual(splitModelKey(modelKey), { itemKey, variantKey }); + assert.equal(composeModelKey(itemKey, variantKey), modelKey); + assertRoundTrip(modelKey); + } + + // Every three-part key literal in the importer's normalizer fixtures. + const fixtureDir = new URL( + '../../../../apps/importer/src/shopee/__tests__/', + import.meta.url + ); + const fixtureKeys = new Set(); + for (const file of readdirSync(fixtureDir)) { + if (!/\.(ts|mjs)$/.test(file)) continue; + const source = readFileSync(new URL(file, fixtureDir), 'utf8'); + for (const m of source.matchAll( + // Wider than the key shape (upper case), so a fixture key the helpers + // would reject fails here instead of being skipped. The brand must + // start with a letter or `_`, which leaves out ISO timestamps. + /['"`]([A-Za-z_][\w-]*:[\w.-]+:[\w.-]+)['"`]/g + )) { + fixtureKeys.add(m[1] ?? ''); + } + } + assert.ok( + fixtureKeys.size >= 100, + `expected the importer fixtures to hold 100+ keys, found ${fixtureKeys.size}` + ); + for (const modelKey of fixtureKeys) assertRoundTrip(modelKey); + + // Not in the brand:model:variant shape: not parsed, not composed. + for (const bad of [ + '', + 'apple_iphone_16', + 'other:key', + 'khc:legacy', + 'a:b:c:d', + 'Apple:iphone-17:256gb', + 'apple::256gb', + ':iphone-17:256gb', + 'apple:iphone-17:', + 'apple:-iphone:256gb', + 'apple:iphone 17:256gb', + // Empty model segment, as the normalizer emits for a title with no model. + 'samsung::unknown', + 'khac::256gb', + 'apple:iphone-17:256GB', + `apple:${'x'.repeat(200)}:256gb`, + ]) { + assert.equal(splitModelKey(bad), null, bad); + assert.equal(isModelKey(bad), false, bad); + assert.equal(ModelKeySchema.safeParse(bad).success, false, bad); + } + assert.equal(splitModelKey(undefined as unknown as string), null); + assert.throws(() => composeModelKey('apple', '256gb'), RangeError); + assert.throws( + () => composeModelKey('apple:iphone-17:256gb', '256gb'), + RangeError + ); + assert.throws(() => composeModelKey('apple:iphone-17', ''), RangeError); + assert.throws(() => composeModelKey('apple:iphone-17', '256:gb'), RangeError); + assert.throws( + () => composeModelKey(`apple:${'x'.repeat(190)}`, '1024gb'), + RangeError + ); + assert.equal(isItemKey('apple:ipad-pro-m5-11'), true); + assert.equal(isItemKey('apple:ipad-pro-m5-11:256gb'), false); + assert.equal(isVariantKey('256gb-cellular'), true); + assert.equal(isVariantKey('256gb:x'), false); + assert.equal(ItemKeySchema.safeParse('apple:ipad-pro-m5-11').success, true); + assert.equal(ItemKeySchema.safeParse('apple').success, false); + assert.equal(VariantKeySchema.safeParse('unknown').success, true); + assert.equal(VariantKeySchema.safeParse('').success, false); + + // Only a stated storage size makes an Item multi-size (design doc 4.2). + for (const sized of ['8gb', '64gb', '256gb', '1024gb', '1tb']) { + assert.equal(isSizedVariantKey(sized), true, sized); + } + for (const other of [ + UNKNOWN_VARIANT_KEY, + 'standard', + '256gb-cellular', + 'gb', + '', + ]) { + assert.equal(isSizedVariantKey(other), false, other); + } + assert.equal(UNKNOWN_VARIANT_KEY, 'unknown'); + + const id = '018f3b2c-1a2b-4c3d-8e4f-5a6b7c8d9e0f'; + const item = ItemSchema.parse({ + id, + item_key: 'apple:ipad-pro-m5-11', + slug: 'apple-ipad-pro-m5-11', + name: 'Apple iPad Pro M5 11', + brand: 'Apple', + model: 'iPad Pro M5 11', + }); + assert.equal(item.status, 'draft'); + assert.equal(item.min_price, 0); + assert.equal(item.unknown_variant_listing_count, 0); + assert.deepEqual(item.specifications, {}); + // Legacy keys still get an Item (design doc 4.3): no shape check on rows. + assert.equal( + ItemSchema.safeParse({ ...item, item_key: 'khc:legacy-thing' }).success, + true + ); + assert.equal( + ItemSchema.safeParse({ ...item, status: 'hidden' }).success, + false + ); + assert.equal( + ItemSchema.safeParse({ ...item, average_rating: 6 }).success, + false + ); + + const variant = { + id, + brand: 'Apple', + model: 'iPad Pro M5 11', + model_key: 'apple:ipad-pro-m5-11:256gb', + name: 'Apple iPad Pro M5 11 256GB', + slug: 'apple-ipad-pro-m5-11-256gb', + item_id: id, + variant_key: '256gb', + sort_order: 1, + }; + assert.equal(VariantSchema.parse(variant).variant_key, '256gb'); + // Before the backfill both links may be missing. + assert.equal( + VariantSchema.safeParse({ ...variant, item_id: null, variant_key: null }) + .success, + true + ); + // model_key = item_key:variant_key must hold. + assert.equal( + VariantSchema.safeParse({ ...variant, variant_key: '512gb' }).success, + false + ); + assert.equal( + VariantSchema.safeParse({ ...variant, sort_order: 40000 }).success, + false + ); + + assert.deepEqual(VariantSourceSchema.options, [ + 'title', + 'sku', + 'single_size', + 'single_variant', + 'manual', + 'legacy', + ]); +} + function main(): void { console.log('🧪 Running @repo/shared-data unit tests...'); testVersionAndZeroStrapiExports(); console.log( - ' ✅ [1/7] Version & Zero-Strapi root export isolation verified' + ' ✅ [1/8] Version & Zero-Strapi root export isolation verified' ); testRouteConstants(); - console.log(' ✅ [2/7] Route & REST API v1 constants verified'); + console.log(' ✅ [2/8] Route & REST API v1 constants verified'); testTenFieldGroupsSpecificationsSchema(); console.log( - ' ✅ [3/7] 10-Field-Groups ProductSpecificationsSchema verified' + ' ✅ [3/8] 10-Field-Groups ProductSpecificationsSchema verified' ); testMasterProductAndScrapedProductSchemas(); console.log( - ' ✅ [4/7] MasterProduct, ScrapedProduct & common schemas verified' + ' ✅ [4/8] MasterProduct, ScrapedProduct & common schemas verified' ); testSupabaseClientGuards(); - console.log(' ✅ [5/7] Supabase client fail-closed env guards verified'); + console.log(' ✅ [5/8] Supabase client fail-closed env guards verified'); testSeedingRiskPenalty(); - console.log(' ✅ [6/7] Shared seeding risk penalty verified'); + console.log(' ✅ [6/8] Shared seeding risk penalty verified'); testPriceRules(); console.log( - ' ✅ [7/7] Shared price rules (@repo/shared-data/rules) verified' + ' ✅ [7/8] Shared price rules (@repo/shared-data/rules) verified' + ); + testItemVariantKeys(); + console.log( + ' ✅ [8/8] Item / variant schemas and model_key helpers verified' ); console.log('🎉 All @repo/shared-data tests passed!'); } diff --git a/packages/shared-data/src/index.ts b/packages/shared-data/src/index.ts index a1a9c407a..fd477b1ac 100644 --- a/packages/shared-data/src/index.ts +++ b/packages/shared-data/src/index.ts @@ -15,6 +15,9 @@ export * from './clients/index.js'; // Export constants export * from './constants/index.js'; +// Item / variant key helpers: model_key = item_key:variant_key (DOS/Rate#1149) +export * from './rules/model-key.js'; + // `rate` schema types generated from supabase/migrations (pnpm gen:db-types) export type { Database, Json } from './database.types.js'; diff --git a/packages/shared-data/src/rules/index.ts b/packages/shared-data/src/rules/index.ts index 3523dc373..8ea5fd486 100644 --- a/packages/shared-data/src/rules/index.ts +++ b/packages/shared-data/src/rules/index.ts @@ -1,9 +1,11 @@ /** - * Business rules about prices, shared by rate.vn, the importer and the - * crawlers (DOS/Rate#1089). Plain functions and constants only: no zod and + * Business rules about prices (DOS/Rate#1089) and catalog keys + * (DOS/Rate#1149), shared by rate.vn, the importer and the crawlers. + * Plain functions and constants only: no zod and * no Supabase client, so client components can import * `@repo/shared-data/rules` without pulling either into the bundle. */ export { MAX_VALID_VND_PRICE } from './price-limits.js'; export * from './offer-plausibility.js'; export * from './listing-price-floor.js'; +export * from './model-key.js'; diff --git a/packages/shared-data/src/rules/model-key.ts b/packages/shared-data/src/rules/model-key.ts new file mode 100644 index 000000000..5830bfa18 --- /dev/null +++ b/packages/shared-data/src/rules/model-key.ts @@ -0,0 +1,113 @@ +/** + * Item / variant key rules (DOS/Rate#1149; design doc + * `Docs/Proposals/2026-10-27-item-variant-listing-model.md`, section 4). + * + * `model_key` = `item_key:variant_key`, the shape the normalizer emits today: + * - `item_key` = `brand:model`. An Apple screen or case size stays in the + * model segment, so `apple:ipad-pro-m5-11` and `apple:ipad-pro-m5-13` are + * different Items. + * - `variant_key` = the literal third segment: `256gb`, `1024gb`, `standard`, + * `unknown` (earbuds), and later suffixed forms such as `256gb-cellular`. + * Display labels (`1TB`, "Standard") are derived from it, never keys. + * + * Segment shapes follow the design doc's inventory check (section 7.3). They + * allow `_`, which the normalizer's slugify keeps (`x1504_va`). A key outside + * them (legacy keys without three segments, upper case, empty segments such + * as `samsung::unknown`) is not parsed: `splitModelKey` returns null for it. + */ + +const BRAND_SEGMENT = '[a-z0-9_][a-z0-9_-]*'; +const MODEL_SEGMENT = '[a-z0-9_][a-z0-9_.-]*'; +const VARIANT_SEGMENT = '[a-z0-9_-]+'; + +export const ITEM_KEY_PATTERN = new RegExp( + `^${BRAND_SEGMENT}:${MODEL_SEGMENT}$` +); +export const VARIANT_KEY_PATTERN = new RegExp(`^${VARIANT_SEGMENT}$`); +export const MODEL_KEY_PATTERN = new RegExp( + `^(${BRAND_SEGMENT}:${MODEL_SEGMENT}):(${VARIANT_SEGMENT})$` +); + +/** + * A variant that states a storage size. An Item with a non-archived sized + * variant is multi-size, and there `unknown` means "size not stated". + */ +export const SIZED_VARIANT_KEY_PATTERN = /^\d+(gb|tb)$/; + +/** + * Storage not stated (multi-size Item) or not applicable (single-variant + * Item, e.g. earbuds). + */ +const UNKNOWN = 'unknown'; +export const UNKNOWN_VARIANT_KEY = UNKNOWN; + +/** Same 200-character cap as `master_products.model_key`. */ +export const MAX_MODEL_KEY_LENGTH = 200; + +const isString = (value: unknown): value is string => typeof value === 'string'; + +export interface ModelKeyParts { + itemKey: string; + variantKey: string; +} + +export function isItemKey(value: unknown): value is string { + return ( + isString(value) && + value.length <= MAX_MODEL_KEY_LENGTH && + ITEM_KEY_PATTERN.test(value) + ); +} + +export function isVariantKey(value: unknown): value is string { + return ( + isString(value) && + value.length <= MAX_MODEL_KEY_LENGTH && + VARIANT_KEY_PATTERN.test(value) + ); +} + +export function isModelKey(value: unknown): value is string { + return ( + isString(value) && + value.length <= MAX_MODEL_KEY_LENGTH && + MODEL_KEY_PATTERN.test(value) + ); +} + +export function isSizedVariantKey(value: unknown): value is string { + return isString(value) && SIZED_VARIANT_KEY_PATTERN.test(value); +} + +/** + * Splits a `model_key` into its Item and variant keys, or returns null when + * the key is not in the `brand:model:variant` shape. + * `composeModelKey(itemKey, variantKey)` gives the same key back. + */ +export function splitModelKey(modelKey: string): ModelKeyParts | null { + if (!isModelKey(modelKey)) return null; + const match = MODEL_KEY_PATTERN.exec(modelKey); + if (!match || match[1] === undefined || match[2] === undefined) return null; + return { itemKey: match[1], variantKey: match[2] }; +} + +/** + * Builds a `model_key` from an Item key and a variant key. Throws a + * RangeError when either part, or the result, is not a valid key, so a + * malformed key never reaches a writer. + */ +export function composeModelKey(itemKey: string, variantKey: string): string { + if (!isItemKey(itemKey)) { + throw new RangeError(`Invalid item_key: ${JSON.stringify(itemKey)}`); + } + if (!isVariantKey(variantKey)) { + throw new RangeError(`Invalid variant_key: ${JSON.stringify(variantKey)}`); + } + const modelKey = `${itemKey}:${variantKey}`; + if (!isModelKey(modelKey)) { + throw new RangeError( + `model_key longer than ${MAX_MODEL_KEY_LENGTH} characters: ${JSON.stringify(modelKey)}` + ); + } + return modelKey; +} diff --git a/packages/shared-data/src/schemas/index.ts b/packages/shared-data/src/schemas/index.ts index 37b17a032..db4fdd3b3 100644 --- a/packages/shared-data/src/schemas/index.ts +++ b/packages/shared-data/src/schemas/index.ts @@ -8,3 +8,4 @@ export * from './listing.schema.js'; export * from './review.schema.js'; export * from './common.schema.js'; export * from './specs.schema.js'; +export * from './item.schema.js'; diff --git a/packages/shared-data/src/schemas/item.schema.ts b/packages/shared-data/src/schemas/item.schema.ts new file mode 100644 index 000000000..38b7cb23e --- /dev/null +++ b/packages/shared-data/src/schemas/item.schema.ts @@ -0,0 +1,121 @@ +import { z } from 'zod'; +import { MAX_VALID_VND_PRICE } from '../rules/price-limits.js'; +import { + ITEM_KEY_PATTERN, + MAX_MODEL_KEY_LENGTH, + MODEL_KEY_PATTERN, + VARIANT_KEY_PATTERN, + splitModelKey, +} from '../rules/model-key.js'; +import { HttpUrlSchema, StatusSchema } from './common.schema.js'; +import { + KeySpecsSchema, + MasterProductSchema, + ProductSpecificationsSchema, +} from './specs.schema.js'; + +/** + * Item / variant / listing model (DOS/Rate#1149; design doc + * `Docs/Proposals/2026-10-27-item-variant-listing-model.md`, section 4). + * One Item per product (`rate.items`); each storage size is a variant + * (`rate.master_products`); listings (`rate.products`) point at the Item and, + * when the size is known, at the variant (`cluster_id`). + */ + +/** Strict key shapes, for keys a writer builds. See `rules/model-key.ts`. */ +export const ItemKeySchema = z + .string() + .max(MAX_MODEL_KEY_LENGTH) + .regex(ITEM_KEY_PATTERN, { message: 'Invalid item_key' }); +export const VariantKeySchema = z + .string() + .max(MAX_MODEL_KEY_LENGTH) + .regex(VARIANT_KEY_PATTERN, { message: 'Invalid variant_key' }); +export const ModelKeySchema = z + .string() + .max(MAX_MODEL_KEY_LENGTH) + .regex(MODEL_KEY_PATTERN, { message: 'Invalid model_key' }); + +/** How a listing's variant was assigned (`products.variant_source`). */ +export const VariantSourceSchema = z.enum([ + 'title', + 'sku', + 'single_size', + 'single_variant', + 'manual', + 'legacy', +]); + +/** + * A `rate.items` row. `item_key` has no shape check here, as in the table: + * legacy keys still get an Item (design doc 4.3). + */ +export const ItemSchema = z.object({ + id: z.string().uuid(), + item_key: z.string().min(1).max(MAX_MODEL_KEY_LENGTH), + slug: z.string().min(1).max(200), + name: z.string().min(1).max(300), + brand: z.string().min(1).max(120), + model: z.string().min(1).max(200), + category_id: z.string().uuid().nullable().optional(), + status: StatusSchema.default('draft'), + entity_type: z.enum(['product', 'service']).default('product'), + description: z.string().max(50_000).nullable().optional(), + specifications: ProductSpecificationsSchema.default({}), + key_specs: KeySpecsSchema.default({}), + spec_provenance: z.record(z.string(), z.unknown()).default({}), + images: z.array(HttpUrlSchema).max(100).default([]), + thumbnail: HttpUrlSchema.nullable().optional(), + default_variant_id: z.string().uuid().nullable().optional(), + min_price: z.number().nonnegative().max(MAX_VALID_VND_PRICE).default(0), + max_price: z.number().nonnegative().max(MAX_VALID_VND_PRICE).default(0), + price_variant_count: z.number().int().nonnegative().default(0), + merchant_count: z.number().int().nonnegative().default(0), + listing_count: z.number().int().nonnegative().default(0), + unknown_variant_listing_count: z.number().int().nonnegative().default(0), + total_reviews: z.number().int().nonnegative().default(0), + average_rating: z.number().min(0).max(5).default(0), + user_rating_weighted: z.number().min(0).max(5).nullable().optional(), + authentic_review_count: z.number().int().nonnegative().default(0), + expert_rating: z.number().min(0).max(5).nullable().optional(), + expert_review_summary: z.string().max(10_000).nullable().optional(), + expert_criteria_scores: z.record(z.string(), z.unknown()).default({}), + metadata: z.record(z.string(), z.unknown()).default({}), + created_at: z.string().max(64).optional(), + updated_at: z.string().max(64).optional(), +}); + +/** + * A variant: a `rate.master_products` row with its Item link. `item_id` and + * `variant_key` stay nullable until the backfill and the M4 constraints. + * When the `model_key` is well formed, `variant_key` must be its third + * segment, so `model_key = item_key:variant_key` holds. A legacy key outside + * that shape is not checked; the DB derives its `variant_key` with + * `split_part(model_key, ':', 3)` (design doc 4.3, 7.1). + */ +export const VariantSchema = MasterProductSchema.extend({ + item_id: z.string().uuid().nullable().optional(), + variant_key: z + .string() + .min(1) + .max(MAX_MODEL_KEY_LENGTH) + .nullable() + .optional(), + sort_order: z.number().int().min(-32768).max(32767).nullable().optional(), +}).superRefine((variant, ctx) => { + if (variant.variant_key == null) return; + const parts = splitModelKey(variant.model_key); + if (parts && parts.variantKey !== variant.variant_key) { + ctx.addIssue({ + code: 'custom', + path: ['variant_key'], + message: `variant_key must be the model_key's third segment (${parts.variantKey})`, + }); + } +}); + +export type ItemKey = z.infer; +export type VariantKey = z.infer; +export type VariantSource = z.infer; +export type Item = z.infer; +export type Variant = z.infer; From 7780e341589b70a37c27b318af0b86d56b3c82f7 Mon Sep 17 00:00:00 2001 From: JOY <5027251+JOY@users.noreply.github.com> Date: Wed, 28 Oct 2026 11:00:45 +0700 Subject: [PATCH 08/15] feat(importer): read-only Item migration inventory report (#1148) (#1168) * feat(importer): read-only Item migration inventory report (#1148) Runs the M0 checks of the Item / variant / listing design (section 7.3) over the anon-readable tables, and runs today's ProductNormalizer on each seed, master name and listing title to find key drift, which SQL cannot. SELECTs only, with the anon key. * fix(importer): inventory report review fixes (#1148) NULL brand or category is not an Item conflict, as in SQL count(DISTINCT). TB and suffixed variant keys count as sized. Slug checks now also flag an Item whose masters strip to different slugs and a slug still sized after stripping. Listings with no stated size get their own drift bucket. Co-Authored-By: Claude Opus 5.5 --- apps/importer/package.json | 2 +- .../__tests__/item-inventory-report.test.ts | 162 +++++++++ .../src/shopee/jobs/item-inventory-report.ts | 328 ++++++++++++++++++ 3 files changed, 491 insertions(+), 1 deletion(-) create mode 100644 apps/importer/src/shopee/__tests__/item-inventory-report.test.ts create mode 100644 apps/importer/src/shopee/jobs/item-inventory-report.ts diff --git a/apps/importer/package.json b/apps/importer/package.json index 43fd56034..d57a72214 100644 --- a/apps/importer/package.json +++ b/apps/importer/package.json @@ -37,7 +37,7 @@ "lint": "eslint . --max-warnings 0", "format": "prettier --write \"src/**/*.ts\"", "backfill:specs": "tsx src/shopee/jobs/backfill-specs.ts", - "test": "tsx src/shopee/__tests__/open-core-intelligence.test.ts && tsx src/shopee/__tests__/entity-matcher.test.ts && tsx src/shopee/__tests__/shopee-to-supabase.test.ts && tsx src/shopee/__tests__/paging.test.ts && tsx src/shopee/__tests__/backfill-review-risk.test.ts && tsx src/shopee/__tests__/arena-audit.test.ts && tsx src/shopee/test-ai-enricher.ts && tsx src/shopee/test-review-analyzer.ts", + "test": "tsx src/shopee/__tests__/open-core-intelligence.test.ts && tsx src/shopee/__tests__/entity-matcher.test.ts && tsx src/shopee/__tests__/shopee-to-supabase.test.ts && tsx src/shopee/__tests__/paging.test.ts && tsx src/shopee/__tests__/backfill-review-risk.test.ts && tsx src/shopee/__tests__/item-inventory-report.test.ts && tsx src/shopee/__tests__/arena-audit.test.ts && tsx src/shopee/test-ai-enricher.ts && tsx src/shopee/test-review-analyzer.ts", "test:dist": "node src/shopee/__tests__/dist-exports.smoke.mjs", "backfill:review-risk": "tsx src/shopee/jobs/backfill-review-risk.ts" }, diff --git a/apps/importer/src/shopee/__tests__/item-inventory-report.test.ts b/apps/importer/src/shopee/__tests__/item-inventory-report.test.ts new file mode 100644 index 000000000..676ac291e --- /dev/null +++ b/apps/importer/src/shopee/__tests__/item-inventory-report.test.ts @@ -0,0 +1,162 @@ +import assert from 'node:assert/strict'; +import type { FlagshipDeviceSeed } from '../flagship-seed-data.js'; +import { + buildInventoryReport, + itemKeyOf, + itemNameOf, + itemSlugOf, + type InventoryListing, + type InventoryMaster, +} from '../jobs/item-inventory-report.js'; + +const master = ( + id: string, + model_key: string, + slug: string, + name: string, + overrides: Partial = {} +): InventoryMaster => ({ + id, + model_key, + slug, + name, + brand: name.split(' ')[0]!, + status: 'published', + category_id: 'phones', + storage_gb: Number(/:(\d+)gb$/.exec(model_key)?.[1] ?? NaN) || null, + ...overrides, +}); + +const listing = ( + id: string, + cluster_id: string | null, + title: string, + price_max = 1 +): InventoryListing => ({ + id, + cluster_id, + title, + platform: 'tgdd', + platform_item_id: id, + price_min: 1, + price_max, +}); + +const seed = (model_key: string, name: string) => ({ model_key, name }) as FlagshipDeviceSeed; + +function run() { + assert.equal(itemSlugOf('asus-zenbook-s-14-1tb'), 'asus-zenbook-s-14'); + assert.equal(itemSlugOf('sony-wf-1000xm6'), 'sony-wf-1000xm6'); + assert.equal(itemNameOf('Apple iPhone 16 128GB'), 'Apple iPhone 16'); + // As SQL split_part does: a one-segment key keeps its trailing ':'. + assert.equal(itemKeyOf('legacy'), 'legacy:'); + + const report = buildInventoryReport({ + categories: [ + { id: 'phones', slug: 'smartphones' }, + { id: 'buds', slug: 'earbuds' }, + ], + masters: [ + master('a', 'apple:iphone-16:128gb', 'apple-iphone-16-128gb', 'Apple iPhone 16 128GB'), + // Same Item, but its slug strips to another Item slug. + master('b', 'apple:iphone-16:256gb', 'apple-iphone-16-vn-256gb', 'Apple iPhone 16 256GB'), + // Another Item whose variant slug is iPhone 16's Item slug. + master('c', 'apple:iphone-16-x:64gb', 'apple-iphone-16', 'Apple iPhone 16 X 64GB'), + master( + 'd', + 'samsung:galaxy-buds3-pro:64gb', + 'samsung-galaxy-buds3-pro', + 'Samsung Galaxy Buds3 Pro', + { + category_id: 'buds', + } + ), + master('e', 'khc:legacy', 'legacy', 'Legacy'), + master('f', 'oddkey', 'odd', 'Odd'), + // A size in TB, and a NULL brand next to a real one: neither is a mismatch or a conflict. + master('g', 'asus:zenbook-s-14:1tb', 'asus-zenbook-s-14-1tb', 'Asus Zenbook S 14 1TB', { + storage_gb: 1024, + }), + master('h', 'asus:zenbook-s-14:512gb-oled', 'asus-zenbook-s-14-512gb', 'Asus Zenbook 512GB', { + brand: null, + storage_gb: 512, + }), + // A real conflict: two categories under one Item, and a stored size that disagrees. + master('i', 'oppo:find-x8:256gb', 'oppo-find-x8-256gb', 'OPPO Find X8 256GB', { + category_id: 'buds', + storage_gb: 128, + }), + master('j', 'oppo:find-x8:512gb', 'oppo-find-x8-128gb-512gb', 'OPPO Find X8 512GB'), + ], + listings: [ + listing('p1', 'a', 'Apple iPhone 16 256GB'), + listing('p2', 'a', 'Apple iPhone 16'), + listing('p3', null, 'x', 2), + listing('p4', 'gone', 'x'), + ], + seeds: [ + seed('apple:iphone-16:128gb', 'Apple iPhone 16 128GB'), + seed('samsung:galaxy-buds3-pro:64gb', 'Samsung Galaxy Buds3 Pro'), + ], + }); + + assert.equal(report.counts.total, 10); + assert.equal(report.counts.khc_keys, 1); + assert.equal(report.counts.bad_shape, 2); + assert.equal(report.counts.listings_without_master, 1); + assert.equal(report.counts.listings_on_missing_master, 1); + assert.deepEqual( + report.legacy_keys.map(r => r.model_key), + ['khc:legacy', 'oddkey'] + ); + assert.deepEqual(report.item_conflicts, [ + { item_key: 'oppo:find-x8', variants: ['oppo:find-x8:256gb', 'oppo:find-x8:512gb'] }, + ]); + assert.deepEqual( + report.sizeless_with_size.map(r => r.model_key), + ['samsung:galaxy-buds3-pro:64gb', 'oppo:find-x8:256gb'] + ); + assert.deepEqual(report.seed_drift, [ + { + seed_key: 'samsung:galaxy-buds3-pro:64gb', + normalized_key: 'samsung:galaxy-buds3-pro:unknown', + stored_status: 'published', + normalized_key_stored: false, + }, + ]); + assert.ok(report.master_drift.some(d => d.normalized_key === 'samsung:galaxy-buds3-pro:unknown')); + assert.deepEqual( + report.listing_drift.map(d => [d.kind, d.normalized_key]), + [ + ['variant', 'apple:iphone-16:256gb'], + ['size_not_stated', 'apple:iphone-16:unknown'], + ] + ); + assert.deepEqual(report.slug_collisions, [ + { + kind: 'two_items', + slugs: ['apple-iphone-16'], + items: ['apple:iphone-16', 'apple:iphone-16-x'], + }, + { + kind: 'item_slug_differs', + slugs: ['apple-iphone-16', 'apple-iphone-16-vn'], + items: ['apple:iphone-16'], + }, + { + kind: 'item_slug_differs', + slugs: ['oppo-find-x8', 'oppo-find-x8-128gb'], + items: ['oppo:find-x8'], + }, + { kind: 'still_sized', slugs: ['oppo-find-x8-128gb'], items: ['oppo:find-x8'] }, + ]); + assert.deepEqual( + report.storage_mismatch.map(r => r.model_key), + ['oppo:find-x8:256gb'] + ); + assert.equal(report.multi_sku_listings.length, 1); + + console.log('item-inventory-report tests passed'); +} + +run(); diff --git a/apps/importer/src/shopee/jobs/item-inventory-report.ts b/apps/importer/src/shopee/jobs/item-inventory-report.ts new file mode 100644 index 000000000..7367ef0ad --- /dev/null +++ b/apps/importer/src/shopee/jobs/item-inventory-report.ts @@ -0,0 +1,328 @@ +/** + * Read-only Item migration inventory (DOS/Rate#1148, design doc + * `Docs/Proposals/2026-10-27-item-variant-listing-model.md` sections 7 and 7.3, phase M0). + * + * Usage: + * pnpm --filter @repo/crawlers exec tsx src/shopee/jobs/item-inventory-report.ts + * + * Reads `rate.categories`, `rate.master_products` and `rate.products` with the public anon + * key (SUPABASE_URL + SUPABASE_ANON_KEY, or the NEXT_PUBLIC_ pair the web uses) and prints + * a JSON report. Besides the SQL checks of section 7.3, it runs today's `ProductNormalizer` + * on every seed, master name and listing title, which SQL cannot do: that is how seed key + * drift shows up. + * + * Safety invariant: SELECTs only. There is no write path and no flag that adds one. + * Tables anon cannot read (`price_alerts`) are not queried; see the issue for the SQL. + */ +import { pathToFileURL } from 'node:url'; +import dotenv from 'dotenv'; +import { FLAGSHIP_DEVICES_TO_SEED, type FlagshipDeviceSeed } from '../flagship-seed-data.js'; +import { createImporterLogger } from '../logger.js'; +import { fetchAllPages, resolveBackfillSupabaseTarget } from '../paging.js'; +import { ProductNormalizer } from '../product-normalizer.js'; +import { scopeSupabaseToRate, type RateSupabaseClient, type ShopeeProduct } from '../types.js'; + +const logger = createImporterLogger('ItemInventoryReport'); + +export interface InventoryMaster { + id: string; + model_key: string; + slug: string; + name: string; + brand: string | null; + status: string | null; + category_id: string | null; + storage_gb: number | null; +} + +export interface InventoryListing { + id: string; + cluster_id: string | null; + title: string | null; + platform: string | null; + platform_item_id: string | null; + price_min: number | string | null; + price_max: number | string | null; +} + +export interface InventoryCategory { + id: string; + slug: string; +} + +/** Section 7.3 shape check: three `:`-separated segments. */ +const KEY_SHAPE = /^[a-z0-9][a-z0-9-]*:[a-z0-9][a-z0-9.-]*:[a-z0-9-]+$/; +/** The suffix `rate.item_slug_from_master` strips (section 7.1). */ +const VARIANT_SLUG_SUFFIX = /-(\d+(gb|tb)|standard|unknown)$/; +/** The trailing size `rate.item_name_from_master` strips (section 7.1). */ +const VARIANT_NAME_SUFFIX = /\s\d+\s?(gb|tb)$/i; +/** Categories with no storage axis (section 4.2). */ +const SIZELESS_CATEGORIES = new Set(['earbuds']); + +/** `split_part(k, ':', 1) || ':' || split_part(k, ':', 2)`, as the M2 backfill groups. */ +export const itemKeyOf = (modelKey: string): string => { + const [brand = '', model = ''] = modelKey.split(':'); + return `${brand}:${model}`; +}; +export const variantKeyOf = (modelKey: string): string => modelKey.split(':')[2] ?? ''; +export const itemSlugOf = (slug: string): string => slug.replace(VARIANT_SLUG_SUFFIX, ''); +export const itemNameOf = (name: string): string => name.replace(VARIANT_NAME_SUFFIX, ''); + +/** What the normalizer keys a bare title as, with no marketplace SKUs to help it. */ +export function normalizedKeyOf(normalizer: ProductNormalizer, title: string): string { + const raw: ShopeeProduct = { + itemId: 'inventory', + shopId: 'inventory', + url: 'https://rate.vn', + title, + priceMin: 0, + priceMax: 0, + currency: 'VND', + historicalSold: 0, + ratingStar: 0, + ratingCount: 0, + images: [], + models: [], + attributes: [], + shop: { shopId: 'inventory', name: 'inventory', isMall: false }, + reviews: [], + }; + return normalizer.normalize(raw).model_key; +} + +export function buildInventoryReport(input: { + categories: InventoryCategory[]; + masters: InventoryMaster[]; + listings: InventoryListing[]; + seeds?: FlagshipDeviceSeed[]; + normalizer?: ProductNormalizer; +}) { + const normalizer = input.normalizer ?? new ProductNormalizer(); + const seeds = input.seeds ?? FLAGSHIP_DEVICES_TO_SEED; + const categorySlug = new Map(input.categories.map(c => [c.id, c.slug])); + const masters = input.masters; + const byId = new Map(masters.map(m => [m.id, m])); + const byKey = new Map(masters.map(m => [m.model_key, m])); + + const items = new Map(); + for (const m of masters) { + const list = items.get(itemKeyOf(m.model_key)) ?? []; + list.push(m); + items.set(itemKeyOf(m.model_key), list); + } + + const counts = { + total: masters.length, + published: masters.filter(m => m.status === 'published').length, + draft: masters.filter(m => m.status === 'draft').length, + archived: masters.filter(m => m.status === 'archived').length, + null_status: masters.filter(m => m.status === null).length, + bad_shape: masters.filter(m => !KEY_SHAPE.test(m.model_key)).length, + khc_keys: masters.filter(m => m.model_key.startsWith('khc:')).length, + unknown_masters: masters.filter(m => variantKeyOf(m.model_key) === 'unknown').length, + standard_masters: masters.filter(m => variantKeyOf(m.model_key) === 'standard').length, + items: items.size, + multi_variant_items: [...items.values()].filter(v => v.length > 1).length, + listings: input.listings.length, + listings_without_master: input.listings.filter(p => !p.cluster_id).length, + listings_on_missing_master: input.listings.filter(p => p.cluster_id && !byId.has(p.cluster_id)) + .length, + }; + + const legacyKeys = masters + .filter(m => !KEY_SHAPE.test(m.model_key) || m.model_key.startsWith('khc:')) + .map(m => ({ model_key: m.model_key, status: m.status })); + + const itemConflicts = [...items.entries()] + .filter( + ([, v]) => + // count(DISTINCT ...) ignores NULLs, so a missing brand or category is not a conflict. + new Set(v.map(m => m.brand).filter(b => b !== null)).size > 1 || + new Set(v.map(m => m.category_id).filter(c => c !== null)).size > 1 + ) + .map(([item_key, v]) => ({ item_key, variants: v.map(m => m.model_key) })); + + const sizelessWithSize = masters + .filter( + m => + SIZELESS_CATEGORIES.has(categorySlug.get(m.category_id ?? '') ?? '') && + variantKeyOf(m.model_key) !== 'unknown' + ) + .map(m => ({ model_key: m.model_key, status: m.status, storage_gb: m.storage_gb })); + + const seedDrift = seeds + .map(s => { + const normalized = normalizedKeyOf(normalizer, s.name); + const stored = byKey.get(s.model_key); + return { + seed_key: s.model_key, + normalized_key: normalized, + stored_status: stored?.status ?? null, + normalized_key_stored: byKey.has(normalized), + }; + }) + .filter(d => d.seed_key !== d.normalized_key); + + const masterDrift = masters + .map(m => ({ + model_key: m.model_key, + normalized_key: normalizedKeyOf(normalizer, m.name), + status: m.status, + })) + .filter(d => d.model_key !== d.normalized_key); + + // Listings whose own title keys elsewhere: another Item, the same Item at another size, or + // the same Item with no size stated (the listings that lose their variant on multi-size Items). + const listingDrift = input.listings.flatMap(p => { + const master = p.cluster_id ? byId.get(p.cluster_id) : undefined; + if (!master || !p.title) return []; + const normalized = normalizedKeyOf(normalizer, p.title); + if (normalized === master.model_key) return []; + return [ + { + kind: + itemKeyOf(normalized) !== itemKeyOf(master.model_key) + ? 'item' + : variantKeyOf(normalized) === 'unknown' + ? 'size_not_stated' + : 'variant', + master_key: master.model_key, + normalized_key: normalized, + platform: p.platform, + platform_item_id: p.platform_item_id, + title: p.title.slice(0, 120), + }, + ]; + }); + + // Item slugs from the section 7.1 helper. Two Items on one slug abort the M2 backfill. This + // also covers an Item slug that is another Item's variant slug: that variant slug carries no + // size suffix, so it strips to itself. An Item whose masters strip to different slugs gets + // whichever one the backfill's representative master has, and a slug that still ends in a + // size after stripping fails the post-M2 check of section 7.3. + const itemSlugOwners = new Map>(); + const itemSlugsByItem = new Map>(); + for (const m of masters) { + const slug = itemSlugOf(m.slug); + const owners = itemSlugOwners.get(slug) ?? new Set(); + owners.add(itemKeyOf(m.model_key)); + itemSlugOwners.set(slug, owners); + const slugs = itemSlugsByItem.get(itemKeyOf(m.model_key)) ?? new Set(); + slugs.add(slug); + itemSlugsByItem.set(itemKeyOf(m.model_key), slugs); + } + const slugCollisions = [ + ...[...itemSlugOwners.entries()] + .filter(([, owners]) => owners.size > 1) + .map(([slug, owners]) => ({ kind: 'two_items', slugs: [slug], items: [...owners] })), + ...[...itemSlugsByItem.entries()] + .filter(([, slugs]) => slugs.size > 1) + .map(([item, slugs]) => ({ kind: 'item_slug_differs', slugs: [...slugs], items: [item] })), + ...[...itemSlugOwners.entries()] + .filter(([slug]) => /-\d+(gb|tb)$/.test(slug)) + .map(([slug, owners]) => ({ kind: 'still_sized', slugs: [slug], items: [...owners] })), + ]; + + // Broader than the section 7.3 check (a size anywhere, not only at the end), so a name such as + // "12GB RAM" is flagged too; those rows are read by hand. + const sizedItemNames = masters + .filter(m => /\d+\s?(gb|tb)\b/i.test(itemNameOf(m.name))) + .map(m => ({ model_key: m.model_key, name: m.name })); + + const storageMismatch = masters + .filter(m => { + const v = variantKeyOf(m.model_key); + // `1tb` and suffixed keys such as `256gb-cellular` (section 4.2) are sized too. + const sized = /^(\d+)(gb|tb)(?:-|$)/.exec(v); + if (!sized) return m.storage_gb !== null; + return Number(sized[1]) * (sized[2] === 'tb' ? 1024 : 1) !== m.storage_gb; + }) + .map(m => ({ model_key: m.model_key, storage_gb: m.storage_gb })); + + const multiSkuListings = input.listings + .filter( + p => + p.price_min !== null && p.price_max !== null && Number(p.price_min) !== Number(p.price_max) + ) + .map(p => ({ + master_key: p.cluster_id ? (byId.get(p.cluster_id)?.model_key ?? null) : null, + platform: p.platform, + platform_item_id: p.platform_item_id, + price_min: Number(p.price_min), + price_max: Number(p.price_max), + })); + + return { + counts, + legacy_keys: legacyKeys, + item_conflicts: itemConflicts, + sizeless_with_size: sizelessWithSize, + seed_drift: seedDrift, + master_drift: masterDrift, + listing_drift: listingDrift, + slug_collisions: slugCollisions, + sized_item_names: sizedItemNames, + storage_mismatch: storageMismatch, + multi_sku_listings: multiSkuListings, + }; +} + +export async function loadInventory(supabase: RateSupabaseClient) { + const categories = await fetchAllPages('categories', (from, to) => + supabase.from('categories').select('id, slug').order('id').range(from, to) + ); + const masters = await fetchAllPages('master_products', (from, to) => + supabase + .from('master_products') + .select('id, model_key, slug, name, brand, status, category_id, storage_gb') + .order('id') + .range(from, to) + ); + const listings = await fetchAllPages('products', (from, to) => + supabase + .from('products') + .select('id, cluster_id, title, platform, platform_item_id, price_min, price_max') + .order('id') + .range(from, to) + ); + return { categories, masters, listings }; +} + +const isDirectExecution = + typeof process !== 'undefined' && + Array.isArray(process.argv) && + Boolean(process.argv[1]) && + import.meta.url === pathToFileURL(process.argv[1]!).href; + +if (isDirectExecution) { + dotenv.config({ quiet: true }); + dotenv.config({ path: '../../.env', quiet: true }); + (async () => { + const { createClient } = await import('@supabase/supabase-js'); + const rawUrl = process.env.SUPABASE_URL || process.env.NEXT_PUBLIC_SUPABASE_URL || ''; + // The anon key on purpose: the report must see what any visitor sees, and nothing more. + const key = ( + process.env.SUPABASE_ANON_KEY || + process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY || + '' + ).trim(); + if (!rawUrl.trim() || !key) { + throw new Error('Missing SUPABASE_URL or SUPABASE_ANON_KEY in environment.'); + } + const { url, host } = resolveBackfillSupabaseTarget(rawUrl); + const supabase = scopeSupabaseToRate( + createClient(url, key, { auth: { persistSession: false } }) + ); + // stderr, so stdout stays one JSON document. + process.stderr.write(`Target: ${host} (read-only) +`); + const report = buildInventoryReport(await loadInventory(supabase)); + process.stdout.write(`${JSON.stringify(report, null, 2)}\n`); + })().catch((err: unknown) => { + logger.error( + 'inventory.fatal', + `Item inventory report failed: ${err instanceof Error ? err.message : String(err)}` + ); + process.exit(1); + }); +} From 70f310f4c716a7cf2af786a77d89ee716ff2821b Mon Sep 17 00:00:00 2001 From: JOY <5027251+JOY@users.noreply.github.com> Date: Wed, 28 Oct 2026 11:00:54 +0700 Subject: [PATCH 09/15] fix(web): every surface reads the stored market stats for price and sellers (#1141) (#1164) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(web): product page reads the stored market stats every page shows (#1141) The product page, its meta description and JSON-LD computed the "from" price, range and seller count from its own offer list, which also holds sold-out and discontinued listings at their last price. Catalogue cards, compare, versus, catalogue search and sort and the API read the stored master stats, which rate.refresh_master_market_stats computes from crawled in-stock listings without bait prices. Buds3 Pro showed 2,694,000 from 3 sellers on its page and 3,140,000 from 2 everywhere else: both FPT Shop listings are not counted by the stats. - productMarketStats() is the one reader of min_price / max_price / merchant_count for the product page, metadata and JSON-LD. - Offers carry rate.products.availability; the offer list labels sold-out listings, lists them last and leaves them out of the bait check and the price spread. The price history's current low ignores them too. - No AggregateOffer with a lowPrice of 0; a product with no in-stock listing says so instead of "0 ₫". * fix(web): review follow-ups for the single market-stats source (#1141) - Metadata, OG and JSON-LD description: no "from 0 ₫" when no store has the product in stock (new metaDescNoStock / ogDescNoStock). - The product page and API radar note use in-stock offers only. - Watchlist prices and target alerts read the stored min_price. - Price history judges bait prices among in-stock listings for both the chart and its current low; the page shows its own "from" price there. - A stored price always has at least one seller. * fix(web): E2E seed stores the bait-free min_price; quiet availability fallback (#1141) - The E2E bait-price phone stored the bait 1,250,000 as min_price, the pre-#802 state. rate.refresh_master_market_stats writes 3,030,000 since DOS-Me 20261024060000, and the page now reads the stored stats, so the seed stores what production writes. - The listing availability read warns once and falls back to "unknown" when the column is missing (the E2E schema until #1147) instead of logging a paged-read error per page. * chore(web): restate the previous subject in lower case for commitlint (#1141) The previous commit seeds the bait-free min_price for E2E and quiets the availability fallback; its subject started with "E2E" (subject-case). * Merge remote-tracking branch 'origin/dev' into claude/core-1141-market-stats-source # Conflicts: # apps/web/package.json Co-Authored-By: Claude Opus 5.5 --- apps/web/e2e/bait-price.spec.ts | 3 +- apps/web/e2e/seed.sql | 6 +- apps/web/locales/cs.json | 5 + apps/web/locales/en.json | 5 + apps/web/locales/vi.json | 5 + apps/web/package.json | 2 +- .../app/[locale]/smartphones/[slug]/page.tsx | 130 +++++++----- .../app/api/v1/rate/products/[slug]/route.ts | 7 +- .../src/app/api/v1/rate/watchlist/route.ts | 7 +- .../leaderboard/ProductOffersExplorer.tsx | 23 ++- .../__tests__/product-market-stats.test.ts | 194 ++++++++++++++++++ apps/web/src/lib/product-market-stats.ts | 80 ++++++++ apps/web/src/lib/rate-api.ts | 129 ++++++++++-- 13 files changed, 513 insertions(+), 83 deletions(-) create mode 100644 apps/web/src/lib/__tests__/product-market-stats.test.ts create mode 100644 apps/web/src/lib/product-market-stats.ts diff --git a/apps/web/e2e/bait-price.spec.ts b/apps/web/e2e/bait-price.spec.ts index f6d4a6aad..0e33db37e 100644 --- a/apps/web/e2e/bait-price.spec.ts +++ b/apps/web/e2e/bait-price.spec.ts @@ -10,7 +10,8 @@ const PRODUCT = '/smartphones/e2e-bait-price-phone'; test('a bait-price listing does not set the lowest price', async ({ page }) => { expect((await page.goto(PRODUCT))?.status()).toBe(200); - // Title and hero price take the cheapest plausible offer (3,030,000). + // Title and hero price read the stored min_price, which leaves the bait + // listing out (3,030,000; DOS/Rate#802, #1141). await expect(page).toHaveTitle(/3\.030\.000/); await expect(page).not.toHaveTitle(/1\.250\.000/); await expect(page.locator('.rate-pdv-price-line')).toContainText('3.030.000'); diff --git a/apps/web/e2e/seed.sql b/apps/web/e2e/seed.sql index ffbd9fb9a..f0f196018 100644 --- a/apps/web/e2e/seed.sql +++ b/apps/web/e2e/seed.sql @@ -261,7 +261,9 @@ VALUES -- A phone whose cheapest listing is a bait price, 1,250,000: under 40% of -- the others' lower median (3,140,000) and above the 1,200,000 accessory -- floor (see bait-price.spec.ts). It must not set the "from" price and is labelled --- (DOS/Rate#797). Old created_at keeps it last in default orderings. Four +-- (DOS/Rate#797). Its stored min_price is 3,030,000, what +-- rate.refresh_master_market_stats writes since DOS-Me 20261024060000 +-- (DOS/Rate#802): every page reads the stored stats (DOS/Rate#1141). Old created_at keeps it last in default orderings. Four -- short-named stores of its own keep the other merchants' cards unchanged. INSERT INTO rate.merchants (id, platform, platform_shop_id, name, slug, is_official) VALUES @@ -272,7 +274,7 @@ VALUES INSERT INTO rate.master_products (id, category_id, brand, model, model_key, name, slug, min_price, max_price, merchant_count, status, metadata, created_at) VALUES ('22222222-2222-4222-8222-222222220797', 'c0000000-0000-4000-8000-000000000001', 'E2E', 'Bait Price Phone', - 'e2e_bait_price_phone', 'E2E Bait Price Phone', 'e2e-bait-price-phone', 1250000, 3690000, 4, 'published', + 'e2e_bait_price_phone', 'E2E Bait Price Phone', 'e2e-bait-price-phone', 3030000, 3690000, 4, 'published', '{"category_slug": "smartphones"}', timestamptz '2026-01-01 00:00:00+00'); INSERT INTO rate.products (id, merchant_id, platform, platform_item_id, title, category_id, price_current, url, cluster_id) VALUES diff --git a/apps/web/locales/cs.json b/apps/web/locales/cs.json index 8b8cf7840..bb8250481 100644 --- a/apps/web/locales/cs.json +++ b/apps/web/locales/cs.json @@ -966,6 +966,8 @@ "metaTitle": "{name} - Od {minPrice} ₫ | Rate.vn", "metaTitleShort": "{name} - Od {minPrice} ₫", "metaDesc": "Porovnejte ceny {name} z {merchantCount} obchodů, zkontrolujte historii cen a přečtěte si ověřené recenze na Rate.vn.", + "metaDescNoStock": "{name} ({brand}) teď žádný obchod nemá skladem. Podívejte se na historii cen, odhalte falešné slevy a čtěte skutečné recenze (falešné odfiltrovány) na Rate.vn.", + "ogDescNoStock": "Teď jej žádný obchod nemá skladem. Podívejte se na 10 skupin parametrů podle GSMArena/PhoneArena a graf historie cen.", "ogTitle": "{name} - Parametry a skutečná historie cen | Rate.vn", "ogDesc": "Nejlepší cena od {minPrice} ₫. Prohlédněte si 10 standardizovaných skupin parametrů GSMArena/PhoneArena a graf historie cen.", "breadcrumbHome": "Domů", @@ -1047,6 +1049,9 @@ "offersOfficialMallBadge": "Oficiální (Mall)", "offersImplausiblyLowBadge": "Podezřele nízká cena", "offersImplausiblyLowTitle": "Mnohem levnější než všechny ostatní obchody: může jít o padělek, příslušenství nebo návnadu. Nezapočítává se do nejnižší ceny.", + "offersUnavailableBadge": "Není skladem", + "offersUnavailableTitle": "Obchod jej hlásí jako vyprodaný nebo ukončený. Cena je naposledy zjištěná a nezapočítává se do nejnižší ceny ani do počtu obchodů.", + "priceNoneInStock": "Žádný obchod jej nemá skladem", "offersMerchantTrustTitle": "Zobrazit profil důvěryhodnosti obchodníka", "offersInspectBtnTitle": "Podrobně zkontrolovat tuto nabídku na stránce Ověřit odkaz", "offersInspectBtn": "Zkontrolovat", diff --git a/apps/web/locales/en.json b/apps/web/locales/en.json index ba67f63b6..b85f6ecb6 100644 --- a/apps/web/locales/en.json +++ b/apps/web/locales/en.json @@ -966,6 +966,8 @@ "metaTitle": "{name} - From {minPrice} ₫ | Rate.vn", "metaTitleShort": "{name} - From {minPrice} ₫", "metaDesc": "Compare {name} prices across {merchantCount} merchants, spot fake discounts in the price history and read filtered buyer reviews on Rate.vn.", + "metaDescNoStock": "No store has the {name} ({brand}) in stock right now. See its price history to spot fake discounts and read real reviews (fake reviews filtered) on Rate.vn.", + "ogDescNoStock": "No store has it in stock right now. See the 10 GSMArena/PhoneArena spec groups and the price history chart.", "ogTitle": "{name} - Specs and true price history | Rate.vn", "ogDesc": "Best price from {minPrice} ₫. See the 10 standardized GSMArena/PhoneArena spec groups and the price history chart.", "breadcrumbHome": "Home", @@ -1047,6 +1049,9 @@ "offersOfficialMallBadge": "Official Mall", "offersImplausiblyLowBadge": "Suspiciously low price", "offersImplausiblyLowTitle": "Far cheaper than every other store: possibly a counterfeit, an accessory or a bait listing. Not counted as the lowest price.", + "offersUnavailableBadge": "Out of stock", + "offersUnavailableTitle": "The store reports it sold out or discontinued. The price is the last one seen and is not counted in the lowest price or the number of stores.", + "priceNoneInStock": "No store has it in stock", "offersMerchantTrustTitle": "View merchant trust profile", "offersInspectBtnTitle": "Check this listing in detail on the link check page", "offersInspectBtn": "Check", diff --git a/apps/web/locales/vi.json b/apps/web/locales/vi.json index 259bbb572..3cbc44795 100644 --- a/apps/web/locales/vi.json +++ b/apps/web/locales/vi.json @@ -966,6 +966,8 @@ "metaTitle": "{name} - Giá từ {minPrice} ₫ | Rate.vn", "metaTitleShort": "{name} - Giá từ {minPrice} ₫", "metaDesc": "So sánh giá {name} từ {merchantCount} gian hàng, xem lịch sử giá để nhận ra giảm giá ảo và đọc đánh giá thật (đã lọc đánh giá ảo) trên Rate.vn.", + "metaDescNoStock": "{name} ({brand}) hiện chưa có nơi bán còn hàng. Xem lịch sử giá để nhận ra giảm giá ảo và đọc đánh giá thật (đã lọc đánh giá ảo) trên Rate.vn.", + "ogDescNoStock": "Chưa có nơi bán còn hàng. Xem 10 nhóm thông số kỹ thuật chuẩn GSMArena/PhoneArena và biểu đồ lịch sử giá.", "ogTitle": "{name} - So sánh giá và kiểm tra khuyến mãi | Rate.vn", "ogDesc": "Giá tốt nhất từ {minPrice} ₫. Xem 10 nhóm thông số kỹ thuật chuẩn GSMArena/PhoneArena và biểu đồ lịch sử giá.", "breadcrumbHome": "Trang chủ", @@ -1047,6 +1049,9 @@ "offersOfficialMallBadge": "Chính hãng (Mall)", "offersImplausiblyLowBadge": "Giá thấp bất thường", "offersImplausiblyLowTitle": "Rẻ hơn nhiều so với mọi nơi bán khác: có thể là hàng giả, phụ kiện hoặc tin câu khách. Không tính vào giá thấp nhất.", + "offersUnavailableBadge": "Hết hàng", + "offersUnavailableTitle": "Nơi bán báo hết hàng hoặc ngừng kinh doanh. Giá là giá ghi nhận lần cuối, không tính vào giá thấp nhất và số nơi bán.", + "priceNoneInStock": "Chưa có nơi bán còn hàng", "offersMerchantTrustTitle": "Xem hồ sơ tín nhiệm gian hàng", "offersInspectBtnTitle": "Kiểm tra chi tiết tin bán này ở trang Kiểm tra link", "offersInspectBtn": "Kiểm tra", diff --git a/apps/web/package.json b/apps/web/package.json index 2ebcd54ae..f7612fbab 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -8,7 +8,7 @@ "lint": "eslint . --max-warnings 0", "preview": "next build && next start", "start": "next start", - "test": "pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/server/rate/__tests__/core-rate-architecture.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/app/api/v1/rate/__tests__/write-paths.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/logger.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/review-display.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/concurrency.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/catalog-listing.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/discount-verdict-copy.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/product-detail-copy.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/product-competitors.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/analyzer-copy.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/sold-count.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/content-lang.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/image-url.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/client-messages.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/seo.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/offer-plausibility.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/sitemap-lastmod.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/leaderboard-badge-copy.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/focus-trap.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/display-truth.test.ts", + "test": "pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/server/rate/__tests__/core-rate-architecture.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/app/api/v1/rate/__tests__/write-paths.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/logger.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/review-display.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/concurrency.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/catalog-listing.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/discount-verdict-copy.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/product-detail-copy.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/product-competitors.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/analyzer-copy.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/sold-count.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/content-lang.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/image-url.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/client-messages.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/seo.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/offer-plausibility.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/product-market-stats.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/sitemap-lastmod.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/leaderboard-badge-copy.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/focus-trap.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/display-truth.test.ts", "typecheck": "tsc --noEmit" }, "browserslist": [ diff --git a/apps/web/src/app/[locale]/smartphones/[slug]/page.tsx b/apps/web/src/app/[locale]/smartphones/[slug]/page.tsx index b7e7fcea4..fa9df8917 100644 --- a/apps/web/src/app/[locale]/smartphones/[slug]/page.tsx +++ b/apps/web/src/app/[locale]/smartphones/[slug]/page.tsx @@ -67,7 +67,10 @@ import ProductValueCalculator from '@/components/leaderboard/ProductValueCalcula import ProductOffersExplorer from '@/components/leaderboard/ProductOffersExplorer'; import ProductSpecsExportToolbar from '@/components/leaderboard/ProductSpecsExportToolbar'; import ClientMessages from '@/components/providers/ClientMessages'; -import { plausibleMinPrice } from '@repo/shared-data/rules'; +import { + isOfferUnavailable, + productMarketStats, +} from '@/lib/product-market-stats'; import { firstImageUrl, usableImageUrls, @@ -98,29 +101,33 @@ export async function generateCategoryProductMetadata( title: t('notFoundTitle'), }; } - // A bait-price listing does not set the "from" price (DOS/Rate#797). - const offers = await getCachedMasterProductOffers(product.id); - const minPrice = plausibleMinPrice( - Number(product.min_price || 0), - offers - ).toLocaleString('vi-VN'); + // The stored stats, like every other page shows (DOS/Rate#1141). + const marketStats = productMarketStats(product); + const hasPrice = marketStats.minPrice > 0; + const minPrice = marketStats.minPrice.toLocaleString('vi-VN'); const canonicalUrl = `https://rate.vn${categoryBasePath}/${product.slug}`; return { // The product name first; the site name, then the price give way to fit - // a search result (DOS/Rate#782). + // a search result (DOS/Rate#782). No "from 0 ₫" without a price. title: fitTitle([ - t('metaTitle', { name: product.name, minPrice }), - t('metaTitleShort', { name: product.name, minPrice }), + ...(hasPrice + ? [ + t('metaTitle', { name: product.name, minPrice }), + t('metaTitleShort', { name: product.name, minPrice }), + ] + : []), `${product.name} | Rate.vn`, product.name, ]), description: fitDescription( - t('metaDesc', { - name: product.name, - brand: product.brand, - merchantCount: product.merchant_count || 0, - }) + hasPrice + ? t('metaDesc', { + name: product.name, + brand: product.brand, + merchantCount: marketStats.sellerCount, + }) + : t('metaDescNoStock', { name: product.name, brand: product.brand }) ), alternates: { canonical: canonicalUrl, @@ -128,7 +135,7 @@ export async function generateCategoryProductMetadata( openGraph: { ...defaultOpenGraph(lang), title: t('ogTitle', { name: product.name }), - description: t('ogDesc', { minPrice }), + description: hasPrice ? t('ogDesc', { minPrice }) : t('ogDescNoStock'), url: canonicalUrl, images: [firstImageUrl(product.images) ?? SHARE_IMAGE], }, @@ -192,7 +199,9 @@ export async function ProductDetailView({ getCachedMasterProductPriceHistory(product.id, offers), ]); - const radarSignal = computeProductRadarSignal(product, offers); + // A sold-out listing's last price is no deal (DOS/Rate#1141). + const inStockOffers = offers.filter((o) => !isOfferUnavailable(o)); + const radarSignal = computeProductRadarSignal(product, inStockOffers); const radarNote = radarExplanation(radarSignal); const peerRadarIndex = buildRadarIndex(categoryDealRadar); @@ -200,12 +209,11 @@ export async function ProductDetailView({ product, categoryPeers ); - // The lowest plausible offer: a bait-price listing far below every other - // store does not set the "from" price (DOS/Rate#797). - const currentMinPrice = plausibleMinPrice( - Number(product.min_price || 0), - offers - ); + // "From" price, range and seller count: the stored stats every other page + // shows (in-stock listings, no bait prices), not the offer list below, + // which also holds sold-out listings at their last price (DOS/Rate#1141). + const marketStats = productMarketStats(product); + const currentMinPrice = marketStats.minPrice; const relatedCompetitors = rankRelatedCompetitors( categoryPeers, product.slug, @@ -215,14 +223,8 @@ export async function ProductDetailView({ const specs = product.specifications as ProductSpecifications; const keySpecs = product.key_specs as KeySpecs; const minPriceFormatted = currentMinPrice.toLocaleString('vi-VN'); - // Same meaning as the catalogue card's seller count (distinct merchants with - // a price), not the number of listings. - const sellerCount = new Set( - offers - .filter((o) => Number(o.price_current) > 0) - .map((o) => o.merchant?.id || o.id) - ).size; - const maxPriceFormatted = Number(product.max_price).toLocaleString('vi-VN'); + const sellerCount = marketStats.sellerCount; + const maxPriceFormatted = marketStats.maxPrice.toLocaleString('vi-VN'); const authenticCount = product.authentic_review_count && product.authentic_review_count > 0 @@ -278,19 +280,32 @@ export async function ProductDetailView({ }, sku: product.model_key, url: canonicalUrl, - description: t('metaDesc', { - name: product.name, - brand: product.brand, - merchantCount: product.merchant_count || 0, - }), + description: + currentMinPrice > 0 + ? t('metaDesc', { + name: product.name, + brand: product.brand, + merchantCount: sellerCount, + }) + : t('metaDescNoStock', { + name: product.name, + brand: product.brand, + }), image: usableImageUrls(product.images).map(absoluteUrl), - offers: { - '@type': 'AggregateOffer', - priceCurrency: 'VND', - lowPrice: currentMinPrice, - highPrice: Number(product.max_price || product.min_price || 0), - offerCount: offers.length || product.merchant_count || 0, - }, + // Only with a buyable price: a lowPrice of 0 is not an offer. + ...(currentMinPrice > 0 + ? { + offers: { + '@type': 'AggregateOffer', + priceCurrency: 'VND', + lowPrice: currentMinPrice, + highPrice: marketStats.maxPrice, + // Sellers, like "N nơi bán": one store's several listings of + // the model are one offer to a shopper. + offerCount: sellerCount, + }, + } + : {}), ...(displayUserRating > 0 && authenticCount > 0 ? { aggregateRating: { @@ -834,15 +849,18 @@ export async function ProductDetailView({
- {t('priceReferenceLabel', { count: offers.length })} + {t('priceReferenceLabel', { count: sellerCount })}
- {minPriceFormatted} ₫ - {currentMinPrice !== Number(product.max_price || 0) && ( - - ~ {maxPriceFormatted} ₫ - - )} + {currentMinPrice > 0 + ? `${minPriceFormatted} ₫` + : t('priceNoneInStock')} + {currentMinPrice > 0 && + currentMinPrice !== marketStats.maxPrice && ( + + ~ {maxPriceFormatted} ₫ + + )} {priceHistory.lowestEverPrice != null && ( {t('allTimeLowBadge', { @@ -879,7 +897,7 @@ export async function ProductDetailView({ expertScore10={expertRating10} authenticReviews={authenticCount} minPriceVnd={currentMinPrice} - offerCount={offers.length} + offerCount={sellerCount} keySpecLine={keySpecLine} radarSignal={radarSignal} /> @@ -1484,7 +1502,11 @@ export async function ProductDetailView({ {/* SECTION #3: Time-Series Price History Chart, Fake Discount Detector & Neutral Merchant Audit */} 0 ? currentMinPrice : null, + }} radarSignal={radarSignal} /> @@ -1533,9 +1555,7 @@ export async function ProductDetailView({ brand={product.brand} categorySlug={categorySlug} minPriceVnd={currentMinPrice} - maxPriceVnd={Number( - product.max_price || product.min_price || 0 - )} + maxPriceVnd={marketStats.maxPrice} userScore5={lbScored.userScore5} expertScore10={lbScored.expertScore10} valueCriterionScore5={lbScored.criteria.value} diff --git a/apps/web/src/app/api/v1/rate/products/[slug]/route.ts b/apps/web/src/app/api/v1/rate/products/[slug]/route.ts index 92181f89f..37dea9fe0 100644 --- a/apps/web/src/app/api/v1/rate/products/[slug]/route.ts +++ b/apps/web/src/app/api/v1/rate/products/[slug]/route.ts @@ -7,6 +7,7 @@ import { getCachedMasterProductReviewSummary, } from '@/server/rate'; import { computeProductRadarSignal } from '@/server/rate/deals'; +import { isOfferUnavailable } from '@/lib/product-market-stats'; import { PUBLIC_API_CORS_HEADERS, jsonApiError, @@ -64,7 +65,11 @@ export async function GET(_request: NextRequest, context: RouteContext) { getCachedMasterProductReviewSummary(product.id, reviews), getCachedMasterProductPriceHistory(product.id, offers), ]); - const radarSignal = computeProductRadarSignal(product, offers); + // A sold-out listing's last price is no deal (DOS/Rate#1141). + const radarSignal = computeProductRadarSignal( + product, + offers.filter((o) => !isOfferUnavailable(o)) + ); return NextResponse.json( { diff --git a/apps/web/src/app/api/v1/rate/watchlist/route.ts b/apps/web/src/app/api/v1/rate/watchlist/route.ts index 3d3c865a4..0eedeb661 100644 --- a/apps/web/src/app/api/v1/rate/watchlist/route.ts +++ b/apps/web/src/app/api/v1/rate/watchlist/route.ts @@ -14,7 +14,6 @@ import { parseWatchlistSlugsParam, resolveWatchlistMasterPriceBounds, selectBestOfferFromListings, - withPlausibleMinPrice, } from '@/server/rate/api-handler'; import { authenticateRateRequest, @@ -130,8 +129,10 @@ export async function GET(request: NextRequest) { const { bestOffer, offerPlatforms } = selectBestOfferFromListings(offers); const radarSignal = computeProductRadarSignal(master, offers); const { currentMinPrice, currentMaxPrice } = + // The stored stats every page shows: in stock, no bait prices + // (DOS/Rate#802, #1141). resolveWatchlistMasterPriceBounds( - withPlausibleMinPrice(master, offers), + master, bestOffer?.price, MAX_VALID_VND_PRICE ); @@ -247,7 +248,7 @@ export async function POST(request: NextRequest) { const { bestOffer, offerPlatforms } = selectBestOfferFromListings(offers); const radarSignal = computeProductRadarSignal(masterProduct, offers); const { currentMinPrice } = resolveWatchlistMasterPriceBounds( - withPlausibleMinPrice(masterProduct, offers), + masterProduct, bestOffer?.price, MAX_VALID_VND_PRICE ); diff --git a/apps/web/src/components/leaderboard/ProductOffersExplorer.tsx b/apps/web/src/components/leaderboard/ProductOffersExplorer.tsx index 73bbd9c4a..81aada4cc 100644 --- a/apps/web/src/components/leaderboard/ProductOffersExplorer.tsx +++ b/apps/web/src/components/leaderboard/ProductOffersExplorer.tsx @@ -25,6 +25,7 @@ import { } from '@/lib/deal-radar'; import { escapeCsvCell } from '@/lib/csv-safe'; import { implausiblyLowOfferIds } from '@repo/shared-data/rules'; +import { isOfferUnavailable } from '@/lib/product-market-stats'; import { contentLang } from '@/lib/content-lang'; import ContentText from '@/components/elementary/ContentText'; @@ -123,7 +124,8 @@ export function computeOffersPriceSpreadAudit( Number.isFinite(p) && p > 0 && p <= MAX_VALID_VND_PRICE && - !implausibleOfferIds.has(o.id) + !implausibleOfferIds.has(o.id) && + !isOfferUnavailable(o) ); }); if (valid.length < 2) return null; @@ -183,9 +185,11 @@ export default function ProductOffersExplorer({ }, [safeOffers]); // Bait-price listings far below every other store (DOS/Rate#797): labelled, - // listed after the plausible offers and left out of the price spread. + // listed after the plausible offers and left out of the price spread. Judged + // among the in-stock listings, as the stored min_price is (DOS/Rate#1141). const implausibleOfferIds = useMemo( - () => implausiblyLowOfferIds(safeOffers), + () => + implausiblyLowOfferIds(safeOffers.filter((o) => !isOfferUnavailable(o))), [safeOffers] ); @@ -212,6 +216,10 @@ export default function ProductOffersExplorer({ }); return [...base].sort((a, b) => { + // Sold-out listings keep their last price: listed last (DOS/Rate#1141). + const unavailableA = isOfferUnavailable(a) ? 1 : 0; + const unavailableB = isOfferUnavailable(b) ? 1 : 0; + if (unavailableA !== unavailableB) return unavailableA - unavailableB; const implausibleA = implausibleOfferIds.has(a.id) ? 1 : 0; const implausibleB = implausibleOfferIds.has(b.id) ? 1 : 0; if (implausibleA !== implausibleB) return implausibleA - implausibleB; @@ -710,6 +718,15 @@ export default function ProductOffersExplorer({ {t('offersImplausiblyLowBadge')} )} + {isOfferUnavailable(offer) && ( + + {t('offersUnavailableBadge')} + + )}
diff --git a/apps/web/src/lib/__tests__/product-market-stats.test.ts b/apps/web/src/lib/__tests__/product-market-stats.test.ts new file mode 100644 index 000000000..7b4eb1e59 --- /dev/null +++ b/apps/web/src/lib/__tests__/product-market-stats.test.ts @@ -0,0 +1,194 @@ +import assert from 'node:assert/strict'; +import { readFileSync } from 'node:fs'; +import { dirname, join } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { + isOfferUnavailable, + productMarketStats, + toOfferAvailability, +} from '../product-market-stats'; + +const here = dirname(fileURLToPath(import.meta.url)); +const read = (rel: string) => readFileSync(join(here, rel), 'utf8'); + +async function main() { + console.warn('🧪 Product market stats suite (DOS/Rate#1141)'); + + // The live Galaxy Buds3 Pro case: both FPT Shop listings are sold out, so + // the stored stats count TGDD and CellphoneS only. The product page used to + // show 2,694,000 from 3 sellers; every other page showed 3,140,000 from 2. + const buds = { + min_price: 3140000, + max_price: 3690000, + merchant_count: 2, + }; + assert.deepEqual(productMarketStats(buds), { + minPrice: 3140000, + maxPrice: 3690000, + sellerCount: 2, + }); + // PostgREST returns numeric columns as strings. + assert.deepEqual( + productMarketStats({ + min_price: '16490000', + max_price: '16490000', + merchant_count: 1, + }), + { minPrice: 16490000, maxPrice: 16490000, sellerCount: 1 } + ); + // No in-stock listing: no price and no sellers, never "from 0 at 3 stores". + assert.deepEqual( + productMarketStats({ min_price: null, max_price: null, merchant_count: 3 }), + { minPrice: 0, maxPrice: 0, sellerCount: 0 } + ); + assert.deepEqual(productMarketStats(null), { + minPrice: 0, + maxPrice: 0, + sellerCount: 0, + }); + assert.equal( + productMarketStats({ min_price: 500, max_price: 500, merchant_count: null }) + .sellerCount, + 1, + 'A stored price has at least one seller' + ); + // A max below the min (a partial write) never shows a reversed range. + assert.equal( + productMarketStats({ min_price: 500, max_price: 100, merchant_count: 1 }) + .maxPrice, + 500 + ); + assert.equal( + productMarketStats({ min_price: 2e9, max_price: 2e9, merchant_count: 1 }) + .minPrice, + 0, + 'A price above the VND ceiling is not a price' + ); + + assert.equal(isOfferUnavailable({ availability: 'out_of_stock' }), true); + assert.equal(isOfferUnavailable({ availability: 'discontinued' }), true); + assert.equal(isOfferUnavailable({ availability: 'in_stock' }), false); + assert.equal( + isOfferUnavailable({ availability: null }), + false, + 'An unread availability counts as in stock, as the column default does' + ); + assert.equal(isOfferUnavailable({}), false); + assert.equal(toOfferAvailability('out_of_stock'), 'out_of_stock'); + assert.equal(toOfferAvailability('OUT_OF_STOCK'), null); + assert.equal(toOfferAvailability(undefined), null); + + // The offer list labels sold-out listings and leaves them out of the price + // spread, so its cheapest offer matches the stored "from" price. + const { computeOffersPriceSpreadAudit } = + await import('../../components/leaderboard/ProductOffersExplorer'); + const offer = ( + id: string, + platform: string, + price: number, + availability: 'in_stock' | 'out_of_stock' | null + ) => + ({ + id, + platform, + title: id, + price_current: price, + price_original: null, + stock: 0, + rating_star: 0, + rating_count: 0, + url: '', + availability, + merchant: { + id: `m-${platform}`, + name: platform, + platform, + is_official: true, + rating_star: null, + follower_count: 0, + location: null, + risk_score: 0, + dosafe_risk_score: null, + review_risk_score: null, + review_risk_breakdown: null, + }, + }) as const; + const budsOffers = [ + offer('fpt-1', 'fptshop', 2694000, 'out_of_stock'), + offer('fpt-2', 'fptshop', 3032000, 'out_of_stock'), + offer('tgdd', 'tgdd', 3140000, 'in_stock'), + offer('cps', 'cellphones', 3690000, null), + ]; + const spread = computeOffersPriceSpreadAudit(budsOffers); + assert.ok(spread); + assert.equal(spread.cheapest.price_current, buds.min_price); + // Here only: the stored max also counts a listing's variant top price. + assert.equal(spread.priciest.price_current, buds.max_price); + + // Every surface reads the stored stats. The product page, its metadata and + // its JSON-LD go through productMarketStats and never recompute the "from" + // price or the seller count from the offer list. + const page = read('../../app/[locale]/smartphones/[slug]/page.tsx'); + assert.match( + page, + /productMarketStats,\n\} from '@\/lib\/product-market-stats'/ + ); + assert.doesNotMatch( + page, + /plausibleMinPrice\(/, + 'The product page must not derive its "from" price from the offers' + ); + assert.doesNotMatch( + page, + /product\.(merchant_count|max_price)\b/, + 'Seller count and range come from productMarketStats only' + ); + assert.doesNotMatch( + page, + /new Set\(\s*offers/, + 'The seller count is not counted from the offer list' + ); + const metadata = page.slice( + page.indexOf('export async function generateCategoryProductMetadata'), + page.indexOf('export async function generateMetadata') + ); + assert.match(metadata, /productMarketStats\(product\)/); + assert.match(metadata, /merchantCount: marketStats\.sellerCount/); + assert.doesNotMatch(metadata, /getCachedMasterProductOffers/); + assert.match(page, /lowPrice: currentMinPrice/); + assert.match(page, /offerCount: sellerCount/); + + assert.match( + page, + /computeProductRadarSignal\(product, inStockOffers\)/, + 'The radar note never quotes a sold-out listing' + ); + assert.match(page, /currentMinPrice: currentMinPrice > 0 \? currentMinPrice/); + + const productApi = read('../../app/api/v1/rate/products/[slug]/route.ts'); + assert.match( + productApi, + /offers\.filter\(\(o\) => !isOfferUnavailable\(o\)\)/ + ); + const watchlist = read('../../app/api/v1/rate/watchlist/route.ts'); + assert.doesNotMatch( + watchlist, + /withPlausibleMinPrice/, + 'Watchlist prices and alerts use the stored min_price' + ); + + // The catalogue, compare and the API read the same stored columns. + const api = read('../rate-api.ts'); + assert.match( + api, + /'id, slug, name, model, brand, category_id, metadata, specifications, min_price, max_price, merchant_count'/, + 'compareMasterProducts reads the stored stats' + ); + + console.warn('✅ Product market stats suite passed'); +} + +main().catch((err) => { + console.error(err); + process.exit(1); +}); diff --git a/apps/web/src/lib/product-market-stats.ts b/apps/web/src/lib/product-market-stats.ts new file mode 100644 index 000000000..ea27a41df --- /dev/null +++ b/apps/web/src/lib/product-market-stats.ts @@ -0,0 +1,80 @@ +/** + * One source of truth for a product's "from" price, price range and seller + * count (DOS/Rate#1141): the stored master stats. The database writes them in + * rate.refresh_master_market_stats from crawled, in-stock listings, without + * bait prices (DOS/Rate#802), and the catalogue cards, compare, versus, the + * catalogue search and sort and the public API all read them. The product + * page, its metadata and its JSON-LD read them through this helper too. + * + * The product page's offer list is not that source: it also holds sold-out + * and discontinued listings at their last price, so computing from it showed + * a lower price and more sellers than every other page. + */ +import { MAX_VALID_VND_PRICE } from './rate-domain-core'; + +export interface ProductMarketStats { + /** Lowest price of an in-stock listing, 0 when none is known. */ + minPrice: number; + /** Highest price of an in-stock listing, never below minPrice. */ + maxPrice: number; + /** Distinct merchants with a priced in-stock listing. */ + sellerCount: number; +} + +/** Listing states rate.products.availability can hold. */ +export type OfferAvailability = 'in_stock' | 'out_of_stock' | 'discontinued'; + +function toStoredPrice(raw: unknown): number { + const n = + typeof raw === 'number' + ? raw + : typeof raw === 'string' && raw.trim() !== '' + ? Number(raw.trim()) + : NaN; + return Number.isFinite(n) && n > 0 && n <= MAX_VALID_VND_PRICE ? n : 0; +} + +export function productMarketStats( + product: { + min_price?: unknown; + max_price?: unknown; + merchant_count?: unknown; + } | null +): ProductMarketStats { + const minPrice = toStoredPrice(product?.min_price); + const storedMax = toStoredPrice(product?.max_price); + const rawCount = Number(product?.merchant_count); + // A stored price has at least one seller, even with a stale or null count. + const sellerCount = + minPrice > 0 + ? Number.isFinite(rawCount) && rawCount >= 1 + ? Math.min(Math.floor(rawCount), 100_000) + : 1 + : 0; + return { + minPrice, + maxPrice: minPrice > 0 ? Math.max(minPrice, storedMax) : 0, + sellerCount, + }; +} + +/** + * Whether the retailer last reported the listing as not buyable. Such a + * listing keeps its last price but is not counted in the stored stats. An + * unknown availability (not read) counts as in stock, as the database's + * default does. + */ +export function isOfferUnavailable(offer: { + availability?: OfferAvailability | null; +}): boolean { + return ( + offer?.availability === 'out_of_stock' || + offer?.availability === 'discontinued' + ); +} + +export function toOfferAvailability(raw: unknown): OfferAvailability | null { + return raw === 'in_stock' || raw === 'out_of_stock' || raw === 'discontinued' + ? raw + : null; +} diff --git a/apps/web/src/lib/rate-api.ts b/apps/web/src/lib/rate-api.ts index 495118464..203db13a2 100644 --- a/apps/web/src/lib/rate-api.ts +++ b/apps/web/src/lib/rate-api.ts @@ -2,7 +2,10 @@ import { createClient } from '@supabase/supabase-js'; import type { Database, MasterProduct } from '@repo/shared-data'; import { createLogger } from '@/lib/logger'; import { isPendingReview } from '@/lib/review-display'; -import { plausibleOffers } from '@repo/shared-data/rules'; +import { + implausiblyLowOfferIds, + plausibleOffers, +} from '@repo/shared-data/rules'; import { type ReviewFlagCategory, type ReviewItem, @@ -27,6 +30,11 @@ import { extractProductKeywordFromUrl, firstImageUrl, } from './rate-domain-core'; +import { + isOfferUnavailable, + type OfferAvailability, + toOfferAvailability, +} from './product-market-stats'; export { computeWilsonLowerBound, evaluateReviewTrustAssessment, @@ -160,6 +168,12 @@ export interface MerchantOffer { rating_star: number; rating_count: number; url: string; + /** + * rate.products.availability: a sold-out or discontinued listing keeps its + * last price but is not counted in the master's stats (DOS/Rate#1141). + * `null` when it was not read. + */ + availability?: OfferAvailability | null; merchant: { id: string; name: string; @@ -1301,27 +1315,97 @@ export async function getMasterProductOffers( ).catch(() => null); if (viewRows) { const rows = viewRows as unknown as RawTrustViewRow[]; - const extras = await sellerExtrasForTrustViewRows(rows); + const [extras, availability] = await Promise.all([ + sellerExtrasForTrustViewRows(rows), + getListingAvailabilityForMaster(cleanMasterId), + ]); return rows.map((row) => - mapTrustViewRowToMerchantOffer( - row, - extras.followerCounts.get(row.merchant_id), - extras.metadataDosafeRisks.get(row.merchant_id) + withOfferAvailability( + mapTrustViewRowToMerchantOffer( + row, + extras.followerCounts.get(row.merchant_id), + extras.metadataDosafeRisks.get(row.merchant_id) + ), + availability ) ); } // Fallback with explicit column list matching column-level SELECT grants on rate.merchants - const rows = await fetchAllRows('product offers', (from, to) => - supabase - .from('products') - .select(OFFER_FALLBACK_SELECT) - .eq('cluster_id', cleanMasterId) - .order('price_current', { ascending: true }) - .order('id') - .range(from, to) + const [rows, availability] = await Promise.all([ + fetchAllRows('product offers', (from, to) => + supabase + .from('products') + .select(OFFER_FALLBACK_SELECT) + .eq('cluster_id', cleanMasterId) + .order('price_current', { ascending: true }) + .order('id') + .range(from, to) + ), + getListingAvailabilityForMaster(cleanMasterId), + ]); + return (rows as unknown as RawOfferRow[]).map((row) => + withOfferAvailability(mapOfferRowToMerchantOffer(row), availability) ); - return (rows as unknown as RawOfferRow[]).map(mapOfferRowToMerchantOffer); +} + +/** + * Availability of every listing of a master, by listing id. The trust view + * predates the column (DOS-Me 20261020230000), so it is read from + * rate.products. A failed read, or a schema without the column (the E2E + * stack built from this repo's migration copy, until DOS/Rate#1147), leaves + * availability unknown: the offers still render, only without their sold-out + * label, and the page's prices come from the stored stats either way. + */ +async function getListingAvailabilityForMaster( + masterId: string +): Promise> { + const supabase = getRateClient(); + const byId = new Map(); + const pageSize = 1000; + try { + for (let from = 0, pages = 0; pages < FETCH_ALL_MAX_PAGES; pages++) { + const { data, error } = (await supabase + .from('products') + .select('id, availability') + .eq('cluster_id', masterId) + .order('id') + .range(from, from + pageSize - 1)) as unknown as { + data: { id: string; availability: unknown }[] | null; + error: { message: string } | null; + }; + if (error) { + log.warn('listing availability unavailable', { + masterId, + message: error.message, + }); + return new Map(); + } + const page = data ?? []; + for (const row of page) { + const availability = toOfferAvailability(row?.availability); + if (availability && typeof row?.id === 'string') { + byId.set(row.id, availability); + } + } + if (page.length < pageSize) break; + from += page.length; + } + } catch (err) { + log.warn('listing availability unavailable', { + masterId, + message: err instanceof Error ? err.message : String(err), + }); + return new Map(); + } + return byId; +} + +function withOfferAvailability( + offer: MerchantOffer, + availability: ReadonlyMap +): MerchantOffer { + return { ...offer, availability: availability.get(offer.id) ?? null }; } /** @@ -1871,7 +1955,12 @@ export async function getMasterProductPriceHistory( : cleanMasterId ? await getMasterProductOffers(cleanMasterId) : []; - const offers = plausibleOffers(rawOffers); + // Bait prices are judged among the in-stock listings, as the stored + // min_price is; a sold-out listing keeps its chart (DOS/Rate#1141). + const baitIds = implausiblyLowOfferIds( + rawOffers.filter((o) => !isOfferUnavailable(o)) + ); + const offers = rawOffers.filter((o) => !baitIds.has(o.id)); if (offers.length === 0) { return { points: [], @@ -2168,8 +2257,14 @@ export async function getMasterProductPriceHistory( } } + // The lowest in-stock price, like the stored min_price: a sold-out listing + // keeps its last price (DOS/Rate#1141). Unknown availability counts. + const inStockOfferPrices = offers + .filter((o) => !isOfferUnavailable(o)) + .map((o) => o.price_current) + .filter((p) => Number.isFinite(p) && p > 0 && p <= MAX_VALID_VND_PRICE); const currentMinPrice = - validOfferPrices.length > 0 ? Math.min(...validOfferPrices) : null; + inStockOfferPrices.length > 0 ? Math.min(...inStockOfferPrices) : null; return { points, From 80eadedd3a5009c4fddab8084f57061309c7c36c Mon Sep 17 00:00:00 2001 From: JOY <5027251+JOY@users.noreply.github.com> Date: Wed, 28 Oct 2026 11:02:42 +0700 Subject: [PATCH 10/15] chore(db): mirror DOS-Me rate migrations, regenerate types (#1147) (#1169) * chore(db): mirror the DOS-Me rate migrations into the reference copy (#1147) Copies seven rate-schema migrations from DOS/DOS.Me verbatim and adds the authenticator role to the replay fixture, which 20261018183000_rate_worker_role grants rate_worker to. * test(db): give the replay fixture's auth.users the columns Supabase has (#1147) 20261023090000_rate_review_vote_eligibility reads is_anonymous, phone_confirmed_at and created_at. * test(e2e): log PostgREST in as the fixture's authenticator role (#1147) * chore(shared-data): regenerate database.types.ts from the mirrored migrations (#1147) Generated by pnpm gen:db-types on CI (postgres-meta v0.99.0). Co-Authored-By: Claude Opus 5.5 --- packages/shared-data/src/database.types.ts | 79 ++ scripts/e2e/run.mjs | 3 +- scripts/lib/rate-db.mjs | 12 +- .../20261018153000_rate_row_provenance.sql | 799 ++++++++++++++++++ ...261018160000_rate_audit_aggregate_rpcs.sql | 207 +++++ .../20261018183000_rate_worker_role.sql | 225 +++++ ...261020230000_rate_listing_availability.sql | 378 +++++++++ ...61022140000_rate_move_iphone_16e_offer.sql | 174 ++++ ...023090000_rate_review_vote_eligibility.sql | 82 ++ ...060000_rate_master_min_price_plausible.sql | 85 ++ 10 files changed, 2039 insertions(+), 5 deletions(-) create mode 100644 supabase/migrations/20261018153000_rate_row_provenance.sql create mode 100644 supabase/migrations/20261018160000_rate_audit_aggregate_rpcs.sql create mode 100644 supabase/migrations/20261018183000_rate_worker_role.sql create mode 100644 supabase/migrations/20261020230000_rate_listing_availability.sql create mode 100644 supabase/migrations/20261022140000_rate_move_iphone_16e_offer.sql create mode 100644 supabase/migrations/20261023090000_rate_review_vote_eligibility.sql create mode 100644 supabase/migrations/20261024060000_rate_master_min_price_plausible.sql diff --git a/packages/shared-data/src/database.types.ts b/packages/shared-data/src/database.types.ts index fd61c82c0..ec7c430bd 100644 --- a/packages/shared-data/src/database.types.ts +++ b/packages/shared-data/src/database.types.ts @@ -189,6 +189,7 @@ export type Database = { ram_gb: number | null; screen_size_inch: number | null; slug: string; + spec_provenance: Json; specifications: Json; status: string | null; storage_gb: number | null; @@ -225,6 +226,7 @@ export type Database = { ram_gb?: number | null; screen_size_inch?: number | null; slug: string; + spec_provenance?: Json; specifications?: Json; status?: string | null; storage_gb?: number | null; @@ -261,6 +263,7 @@ export type Database = { ram_gb?: number | null; screen_size_inch?: number | null; slug?: string; + spec_provenance?: Json; specifications?: Json; status?: string | null; storage_gb?: number | null; @@ -448,8 +451,10 @@ export type Database = { }; price_history: { Row: { + crawl_job_id: string | null; id: number; observation_id: string | null; + origin: string; price: number; price_original: number | null; product_id: string; @@ -458,8 +463,10 @@ export type Database = { source: string | null; }; Insert: { + crawl_job_id?: string | null; id?: number; observation_id?: string | null; + origin?: string; price: number; price_original?: number | null; product_id: string; @@ -468,8 +475,10 @@ export type Database = { source?: string | null; }; Update: { + crawl_job_id?: string | null; id?: number; observation_id?: string | null; + origin?: string; price?: number; price_original?: number | null; product_id?: string; @@ -501,6 +510,8 @@ export type Database = { products: { Row: { attributes: Json | null; + availability: string; + availability_checked_at: string | null; brand: string | null; category_id: string | null; cluster_id: string | null; @@ -511,9 +522,12 @@ export type Database = { historical_sold_display: string | null; id: string; images: string[] | null; + last_crawl_job_id: string | null; + last_crawled_at: string | null; merchant_id: string; metadata: Json | null; models: Json | null; + origin: string; platform: string; platform_item_id: string; price_current: number; @@ -529,6 +543,8 @@ export type Database = { }; Insert: { attributes?: Json | null; + availability?: string; + availability_checked_at?: string | null; brand?: string | null; category_id?: string | null; cluster_id?: string | null; @@ -539,9 +555,12 @@ export type Database = { historical_sold_display?: string | null; id?: string; images?: string[] | null; + last_crawl_job_id?: string | null; + last_crawled_at?: string | null; merchant_id: string; metadata?: Json | null; models?: Json | null; + origin?: string; platform: string; platform_item_id: string; price_current: number; @@ -557,6 +576,8 @@ export type Database = { }; Update: { attributes?: Json | null; + availability?: string; + availability_checked_at?: string | null; brand?: string | null; category_id?: string | null; cluster_id?: string | null; @@ -567,9 +588,12 @@ export type Database = { historical_sold_display?: string | null; id?: string; images?: string[] | null; + last_crawl_job_id?: string | null; + last_crawled_at?: string | null; merchant_id?: string; metadata?: Json | null; models?: Json | null; + origin?: string; platform?: string; platform_item_id?: string; price_current?: number; @@ -833,10 +857,13 @@ export type Database = { created_at: string | null; criteria_ratings: Json | null; downvotes: number | null; + first_seen_job_id: string | null; helpfulness_weight: number | null; id: string; images: string[] | null; is_verified_buyer: boolean | null; + observed_at: string; + origin: string; platform_created_at: string | null; platform_review_id: string | null; product_id: string; @@ -853,10 +880,13 @@ export type Database = { created_at?: string | null; criteria_ratings?: Json | null; downvotes?: number | null; + first_seen_job_id?: string | null; helpfulness_weight?: number | null; id?: string; images?: string[] | null; is_verified_buyer?: boolean | null; + observed_at?: string; + origin?: string; platform_created_at?: string | null; platform_review_id?: string | null; product_id: string; @@ -873,10 +903,13 @@ export type Database = { created_at?: string | null; criteria_ratings?: Json | null; downvotes?: number | null; + first_seen_job_id?: string | null; helpfulness_weight?: number | null; id?: string; images?: string[] | null; is_verified_buyer?: boolean | null; + observed_at?: string; + origin?: string; platform_created_at?: string | null; platform_review_id?: string | null; product_id?: string; @@ -998,6 +1031,7 @@ export type Database = { }; Returns: number; }; + current_user_can_vote_reviews: { Args: never; Returns: boolean }; dequeue_crawl_job: { Args: { p_lease?: string; p_platform: string; p_worker_id: string }; Returns: { @@ -1079,6 +1113,35 @@ export type Database = { Args: { p_claim_token: string; p_extend?: string; p_id: string }; Returns: boolean; }; + listing_price_context: { + Args: { + p_after?: string; + p_history_days?: number; + p_limit?: number; + p_merchant_ids?: string[]; + }; + Returns: { + cluster_id: string; + cluster_official_min: number; + history_avg: number; + history_count: number; + history_max: number; + history_median: number; + history_min: number; + merchant_id: string; + merchant_is_official: boolean; + peer_reference_min: number; + platform: string; + price_current: number; + price_original: number; + product_id: string; + title: string; + }[]; + }; + mark_listing_unavailable: { + Args: { p_availability: string; p_job_id: string }; + Returns: string; + }; match_master_product: { Args: { p_brand?: string; @@ -1096,6 +1159,17 @@ export type Database = { similarity: number; }[]; }; + merchant_review_counts: { + Args: { p_merchant_ids: string[] }; + Returns: { + authentic_count: number; + coin_spam_count: number; + merchant_id: string; + pending_count: number; + seeding_count: number; + total_reviews: number; + }[]; + }; purge_completed_crawl_jobs: { Args: { p_retention_days?: number }; Returns: number; @@ -1203,6 +1277,7 @@ export type Database = { ram_gb: number | null; screen_size_inch: number | null; slug: string; + spec_provenance: Json; specifications: Json; status: string | null; storage_gb: number | null; @@ -1220,6 +1295,10 @@ export type Database = { }; }; signals_valid: { Args: { p: Json }; Returns: boolean }; + stamp_crawl_provenance: { + Args: { p_job_id: string; p_product_id: string }; + Returns: Json; + }; start_crawl_run: { Args: { p_params?: Json; p_source: string }; Returns: string; diff --git a/scripts/e2e/run.mjs b/scripts/e2e/run.mjs index 7ecc95869..eb34c890f 100644 --- a/scripts/e2e/run.mjs +++ b/scripts/e2e/run.mjs @@ -329,7 +329,8 @@ try { name: dbName, runArgs: ['--network', network, '--network-alias', 'db'], }); - db.sql(`CREATE ROLE authenticator LOGIN NOINHERIT PASSWORD '${AUTHENTICATOR_PASSWORD}'; + // startRateDb created authenticator (NOLOGIN); PostgREST logs in as it. + db.sql(`ALTER ROLE authenticator LOGIN PASSWORD '${AUTHENTICATOR_PASSWORD}'; GRANT anon, authenticated, service_role TO authenticator;`); db.sql( readFileSync(path.join(repoRoot, 'apps', 'web', 'e2e', 'seed.sql'), 'utf8') diff --git a/scripts/lib/rate-db.mjs b/scripts/lib/rate-db.mjs index f2e2febef..01fd11c7f 100644 --- a/scripts/lib/rate-db.mjs +++ b/scripts/lib/rate-db.mjs @@ -106,12 +106,16 @@ export function startRateDb({ sleep(250); } - // Supabase-shaped fixture: API roles, auth.uid() from request.jwt.claims, and - // the prod extension placement (uuid-ossp in `extensions`, pg_trgm in `sign`, - // neither on the default search_path and neither usable by anon). + // Supabase-shaped fixture: API roles (authenticator is PostgREST's login + // role, the only member of rate_worker), auth.uid() from request.jwt.claims, + // and the prod extension placement (uuid-ossp in `extensions`, pg_trgm in + // `sign`, neither on the default search_path and neither usable by anon). sql(`CREATE ROLE anon; CREATE ROLE authenticated; CREATE ROLE service_role; + CREATE ROLE authenticator NOINHERIT; CREATE SCHEMA auth; - CREATE TABLE auth.users (id UUID PRIMARY KEY, email TEXT, email_confirmed_at TIMESTAMPTZ); + CREATE TABLE auth.users (id UUID PRIMARY KEY, email TEXT, email_confirmed_at TIMESTAMPTZ, + phone_confirmed_at TIMESTAMPTZ, is_anonymous BOOLEAN NOT NULL DEFAULT false, + created_at TIMESTAMPTZ DEFAULT now()); CREATE FUNCTION auth.uid() RETURNS UUID LANGUAGE sql STABLE AS $$ SELECT NULLIF(NULLIF(current_setting('request.jwt.claims', true), '')::jsonb ->> 'sub', '')::uuid $$; diff --git a/supabase/migrations/20261018153000_rate_row_provenance.sql b/supabase/migrations/20261018153000_rate_row_provenance.sql new file mode 100644 index 000000000..430866151 --- /dev/null +++ b/supabase/migrations/20261018153000_rate_row_provenance.sql @@ -0,0 +1,799 @@ +-- ============================================================================= +-- Migration: 20261018153000_rate_row_provenance.sql +-- Purpose (Rate audit K2): record where every listing, review and price point +-- came from, so real and fabricated data can be told apart in SQL instead of +-- by ID-prefix heuristics and hard-coded seed lists. +-- +-- 1. origin on rate.products, rate.reviews and rate.price_history +-- ('crawl' | 'community' | 'seed' | 'synthetic' | 'fixture' | 'backfill'). +-- The crawler is the only bulk writer, so new rows default to 'crawl'; +-- community reviews are labelled by a trigger. +-- 2. Crawl lineage: products.last_crawled_at / last_crawl_job_id, +-- price_history.crawl_job_id, reviews.first_seen_job_id + observed_at, +-- stamped by rate.stamp_crawl_provenance() from the queue worker. +-- No FK to crawl_jobs: terminal jobs are purged after the retention +-- window (purge_completed_crawl_jobs) and the id must outlive them. +-- 3. master_products.spec_provenance: per-source record of where the +-- specifications came from (filled from key_specs.spec_source for now). +-- 4. Public reads (RLS + the merchant-trust view) and the price / rating +-- aggregates only use crawled listings and crawled or community reviews. +-- 5. Backfill from the existing conventions: syn-* listings, syn-rv-* / +-- bf-rv-* reviews, rate_comm_* community reviews, *_backfill prices, +-- localhost and the scraper suite's fixture URLs. Re-running only +-- touches rows still 'crawl'. Hand-written seed rows need no label: the +-- owner-approved purge (Rate-Services 983d136, 9068be4) deleted every +-- seed row that no finished crawl job also matched, so the seed ids left +-- were verified by a crawl. +-- 6. New rows inherit a non-crawl parent listing's origin, syn-* ids are +-- always labelled synthetic, and community reviews and price dedupe only +-- look at crawled listings / price points. +-- ============================================================================= + +-- Fail fast instead of queueing behind long transactions on the shared database. +SET lock_timeout = '5s'; + +-- 1. Columns --------------------------------------------------------------- + +ALTER TABLE rate.products + ADD COLUMN IF NOT EXISTS origin TEXT NOT NULL DEFAULT 'crawl', + ADD COLUMN IF NOT EXISTS last_crawled_at TIMESTAMPTZ, + ADD COLUMN IF NOT EXISTS last_crawl_job_id UUID; + +ALTER TABLE rate.reviews + ADD COLUMN IF NOT EXISTS origin TEXT NOT NULL DEFAULT 'crawl', + -- Existing reviews get -infinity (unknown), so the stamp window below can + -- never claim them; only rows written after this migration get now(). + ADD COLUMN IF NOT EXISTS observed_at TIMESTAMPTZ NOT NULL DEFAULT '-infinity', + ADD COLUMN IF NOT EXISTS first_seen_job_id UUID; + +ALTER TABLE rate.reviews ALTER COLUMN observed_at SET DEFAULT now(); + +ALTER TABLE rate.price_history + ADD COLUMN IF NOT EXISTS origin TEXT NOT NULL DEFAULT 'crawl', + ADD COLUMN IF NOT EXISTS crawl_job_id UUID; + +ALTER TABLE rate.master_products + ADD COLUMN IF NOT EXISTS spec_provenance JSONB NOT NULL DEFAULT '{}'::jsonb; + +DO $$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conrelid = 'rate.products'::regclass AND conname = 'products_origin_check') THEN + ALTER TABLE rate.products ADD CONSTRAINT products_origin_check + CHECK (origin IN ('crawl', 'seed', 'synthetic', 'fixture', 'backfill')); + END IF; + IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conrelid = 'rate.reviews'::regclass AND conname = 'reviews_origin_check') THEN + ALTER TABLE rate.reviews ADD CONSTRAINT reviews_origin_check + CHECK (origin IN ('crawl', 'community', 'seed', 'synthetic', 'fixture', 'backfill')); + END IF; + IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conrelid = 'rate.price_history'::regclass AND conname = 'price_history_origin_check') THEN + ALTER TABLE rate.price_history ADD CONSTRAINT price_history_origin_check + CHECK (origin IN ('crawl', 'seed', 'synthetic', 'fixture', 'backfill')); + END IF; + IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conrelid = 'rate.master_products'::regclass AND conname = 'master_products_spec_provenance_object') THEN + ALTER TABLE rate.master_products ADD CONSTRAINT master_products_spec_provenance_object + CHECK (jsonb_typeof(spec_provenance) = 'object'); + END IF; +END $$; + +COMMENT ON COLUMN rate.products.origin IS 'Where the listing came from. Only crawl rows are public.'; +COMMENT ON COLUMN rate.products.last_crawl_job_id IS 'rate.crawl_jobs id of the last crawl that refreshed this listing. No FK: jobs are purged after retention.'; +COMMENT ON COLUMN rate.reviews.origin IS 'Where the review came from. crawl and community rows are public.'; +COMMENT ON COLUMN rate.reviews.observed_at IS 'When Rate first stored the review; -infinity for reviews stored before 20261018153000 (platform_created_at is the platform''s own date).'; +COMMENT ON COLUMN rate.reviews.first_seen_job_id IS 'rate.crawl_jobs id of the crawl that first stored this review. No FK: jobs are purged after retention.'; +COMMENT ON COLUMN rate.price_history.crawl_job_id IS 'rate.crawl_jobs id of the crawl that observed this price. No FK: jobs are purged after retention.'; +COMMENT ON COLUMN rate.master_products.spec_provenance IS 'Per-source provenance of specifications, e.g. {"source": "verified_benchmark"}.'; + +CREATE INDEX IF NOT EXISTS idx_rate_products_origin_not_crawl + ON rate.products (origin) WHERE origin <> 'crawl'; +CREATE INDEX IF NOT EXISTS idx_rate_reviews_origin_not_crawl + ON rate.reviews (origin) WHERE origin <> 'crawl'; +CREATE INDEX IF NOT EXISTS idx_rate_price_history_crawl_job + ON rate.price_history (crawl_job_id) WHERE crawl_job_id IS NOT NULL; + +-- 2. Community reviews label themselves ------------------------------------ + +CREATE OR REPLACE FUNCTION rate.reviews_set_origin() +RETURNS trigger +LANGUAGE plpgsql +SET search_path = '' +AS $$ +DECLARE + v_parent TEXT; +BEGIN + -- rate.submit_community_review is the only writer of rate_comm_* ids. + IF NEW.platform_review_id LIKE 'rate\_comm\_%' THEN + NEW.origin := 'community'; + ELSIF NEW.origin = 'community' THEN + RAISE EXCEPTION 'origin community is reserved for rate.submit_community_review' + USING ERRCODE = '22023'; + ELSIF NEW.platform_review_id LIKE 'syn-rv-%' OR NEW.platform_review_id LIKE 'bf-rv-%' THEN + -- The synthetic / backfilled review id conventions are never public. + NEW.origin := 'synthetic'; + ELSIF NEW.origin = 'crawl' THEN + -- A review on a fabricated listing is fabricated too. + SELECT p.origin INTO v_parent FROM rate.products p WHERE p.id = NEW.product_id; + IF v_parent IS NOT NULL AND v_parent <> 'crawl' THEN + NEW.origin := v_parent; + END IF; + END IF; + RETURN NEW; +END; +$$; + +DROP TRIGGER IF EXISTS trg_reviews_set_origin ON rate.reviews; +CREATE TRIGGER trg_reviews_set_origin + BEFORE INSERT OR UPDATE OF platform_review_id, origin ON rate.reviews + FOR EACH ROW EXECUTE FUNCTION rate.reviews_set_origin(); + +REVOKE ALL ON FUNCTION rate.reviews_set_origin() FROM PUBLIC, anon, authenticated; + +-- syn-* listing ids are the synthetic-offer convention: never public. +CREATE OR REPLACE FUNCTION rate.products_set_origin() +RETURNS trigger +LANGUAGE plpgsql +SET search_path = '' +AS $$ +BEGIN + IF NEW.platform_item_id LIKE 'syn-%' THEN + NEW.origin := 'synthetic'; + END IF; + RETURN NEW; +END; +$$; + +DROP TRIGGER IF EXISTS trg_products_set_origin ON rate.products; +CREATE TRIGGER trg_products_set_origin + BEFORE INSERT OR UPDATE OF platform_item_id, origin ON rate.products + FOR EACH ROW EXECUTE FUNCTION rate.products_set_origin(); + +REVOKE ALL ON FUNCTION rate.products_set_origin() FROM PUBLIC, anon, authenticated; + +CREATE OR REPLACE FUNCTION rate.price_history_inherit_origin() +RETURNS trigger +LANGUAGE plpgsql +SET search_path = '' +AS $$ +DECLARE + v_parent TEXT; +BEGIN + IF NEW.origin = 'crawl' THEN + SELECT p.origin INTO v_parent FROM rate.products p WHERE p.id = NEW.product_id; + IF v_parent IS NOT NULL AND v_parent <> 'crawl' THEN + NEW.origin := v_parent; + ELSIF NEW.source LIKE '%\_backfill' THEN + -- *_backfill sources are reconstructed, not observed. + NEW.origin := 'backfill'; + END IF; + END IF; + RETURN NEW; +END; +$$; + +DROP TRIGGER IF EXISTS trg_price_history_inherit_origin ON rate.price_history; +CREATE TRIGGER trg_price_history_inherit_origin + BEFORE INSERT ON rate.price_history + FOR EACH ROW EXECUTE FUNCTION rate.price_history_inherit_origin(); + +REVOKE ALL ON FUNCTION rate.price_history_inherit_origin() FROM PUBLIC, anon, authenticated; + +-- 3. Backfill (idempotent: only rows still on the 'crawl' default move) ----- + +UPDATE rate.products +SET origin = 'synthetic' +WHERE origin = 'crawl' AND platform_item_id LIKE 'syn-%'; + +UPDATE rate.products +SET origin = 'fixture' +WHERE origin = 'crawl' + AND ( + url ~* '^https?://(localhost|127\.0\.0\.1|\[::1\])(:[0-9]+)?(/|$)' + -- TEST_FIXTURE_LISTING_URLS in Rate-Services src/scrapers/fabricated-seed-ids.ts + OR url IN ( + 'https://tiki.vn/dien-thoai-samsung-galaxy-s24-ultra-5g-p274819201.html', + 'https://www.lazada.vn/products/samsung-galaxy-s24-ultra-i284910293.html' + ) + ); + +UPDATE rate.reviews +SET origin = 'community' +WHERE origin = 'crawl' AND platform_review_id LIKE 'rate\_comm\_%'; + +UPDATE rate.reviews +SET origin = 'synthetic' +WHERE origin = 'crawl' + AND (platform_review_id LIKE 'syn-rv-%' OR platform_review_id LIKE 'bf-rv-%'); + +UPDATE rate.reviews r +SET origin = p.origin +FROM rate.products p +WHERE r.product_id = p.id + AND r.origin = 'crawl' + AND p.origin IN ('synthetic', 'fixture'); + +UPDATE rate.price_history +SET origin = 'backfill' +WHERE origin = 'crawl' AND source LIKE '%\_backfill'; + +UPDATE rate.price_history h +SET origin = p.origin +FROM rate.products p +WHERE h.product_id = p.id + AND h.origin = 'crawl' + AND p.origin IN ('synthetic', 'fixture'); + +UPDATE rate.master_products +SET spec_provenance = jsonb_build_object('source', key_specs ->> 'spec_source') +WHERE spec_provenance = '{}'::jsonb + AND key_specs IS NOT NULL + AND jsonb_typeof(key_specs) = 'object' + AND COALESCE(key_specs ->> 'spec_source', '') <> ''; + +-- 4. Crawl lineage stamp, called by the queue worker before it acks a job --- + +CREATE OR REPLACE FUNCTION rate.stamp_crawl_provenance(p_job_id UUID, p_product_id UUID) +RETURNS JSONB +LANGUAGE plpgsql +SECURITY DEFINER +SET search_path = '' +AS $$ +DECLARE + v_prices INTEGER; + v_reviews INTEGER; +BEGIN + IF p_job_id IS NULL OR p_product_id IS NULL THEN + RAISE EXCEPTION 'job id and product id are required' USING ERRCODE = '22023'; + END IF; + + -- Only a job that is currently being processed may stamp rows. + IF NOT EXISTS ( + SELECT 1 FROM rate.crawl_jobs WHERE id = p_job_id AND status = 'running' + ) THEN + RAISE EXCEPTION 'crawl job % is not running', p_job_id USING ERRCODE = 'P0002'; + END IF; + + -- The job must be for this listing: same platform, and the same item id or + -- URL when the job carries them (URL-only discovery jobs have no item id). + UPDATE rate.products p + SET last_crawled_at = now(), + last_crawl_job_id = p_job_id + FROM rate.crawl_jobs j + WHERE p.id = p_product_id + AND p.origin = 'crawl' + AND j.id = p_job_id + AND j.platform = p.platform + AND ( + j.platform_item_id = p.platform_item_id + OR j.target_url = p.url + OR j.platform_item_id IS NULL + ); + + IF NOT FOUND THEN + RAISE EXCEPTION 'crawled listing % not found for job %', p_product_id, p_job_id USING ERRCODE = 'P0002'; + END IF; + + -- Rows this job just wrote: the dedupe index keeps one live job per + -- listing, and one job runs for minutes, so the 1h window cannot reach a + -- previous crawl's rows (those are already stamped or predate this column). + UPDATE rate.price_history + SET crawl_job_id = p_job_id + WHERE product_id = p_product_id + AND crawl_job_id IS NULL + AND origin = 'crawl' + AND recorded_at > now() - interval '1 hour'; + GET DIAGNOSTICS v_prices = ROW_COUNT; + + UPDATE rate.reviews + SET first_seen_job_id = p_job_id + WHERE product_id = p_product_id + AND first_seen_job_id IS NULL + AND origin = 'crawl' + AND observed_at > now() - interval '1 hour'; + GET DIAGNOSTICS v_reviews = ROW_COUNT; + + RETURN jsonb_build_object('price_points', v_prices, 'reviews', v_reviews); +END; +$$; + +REVOKE ALL ON FUNCTION rate.stamp_crawl_provenance(UUID, UUID) FROM PUBLIC, anon, authenticated; +GRANT EXECUTE ON FUNCTION rate.stamp_crawl_provenance(UUID, UUID) TO service_role; + +-- 5. Public reads only see crawled data ------------------------------------- + +DROP POLICY IF EXISTS "Public can view products" ON rate.products; +CREATE POLICY "Public can view products" ON rate.products + FOR SELECT USING (origin = 'crawl'); + +DROP POLICY IF EXISTS "Public can view price_history" ON rate.price_history; +CREATE POLICY "Public can view price_history" ON rate.price_history + FOR SELECT USING (origin = 'crawl'); + +DROP POLICY IF EXISTS "Public can view reviews" ON rate.reviews; +CREATE POLICY "Public can view reviews" ON rate.reviews + FOR SELECT USING (origin IN ('crawl', 'community')); + +-- The subquery runs under the caller's rate.reviews policy above. +DROP POLICY IF EXISTS "Public can view review_flags" ON rate.review_flags; +CREATE POLICY "Public can view review_flags" ON rate.review_flags + FOR SELECT USING (EXISTS (SELECT 1 FROM rate.reviews r WHERE r.id = review_flags.review_id)); + +-- Owner-rights view (see 20261018120102 T4), so RLS does not apply: filter here. +CREATE OR REPLACE VIEW rate.v_products_with_merchant_trust AS +SELECT + p.id, + p.merchant_id, + p.platform, + p.platform_item_id, + p.title, + p.description, + p.category_id, + p.brand, + p.price_current, + p.price_original, + p.price_min, + p.price_max, + p.currency, + p.historical_sold, + p.stock, + p.rating_star, + p.rating_count, + p.images, + p.models, + p.attributes, + p.url, + p.cluster_id, + p.metadata, + p.created_at, + p.updated_at, + m.name AS merchant_name, + m.is_official AS merchant_is_official, + m.location AS merchant_location, + GREATEST( + COALESCE(t.risk_score::integer, 0), + COALESCE(m.risk_score, 0), + COALESCE(m.review_risk_score, 0) + ) AS threat_risk_score, + t.category AS threat_category, + t.source AS threat_source, + COALESCE(t.risk_score::integer, m.risk_score, 0) AS dosafe_risk_score, + COALESCE(m.review_risk_score, 0) AS review_risk_score, + COALESCE(m.review_risk_breakdown, '{}'::jsonb) AS review_risk_breakdown +FROM rate.products p +JOIN rate.merchants m ON p.merchant_id = m.id +LEFT JOIN dosafe.threat_intel t ON t.entity_hash = m.entity_hash +WHERE p.origin = 'crawl'; + +GRANT SELECT ON rate.v_products_with_merchant_trust TO anon, authenticated, service_role; + +-- 6. Aggregates only count crawled listings and crawled/community reviews ---- + +CREATE OR REPLACE FUNCTION rate.refresh_master_market_stats(p_master_id UUID) +RETURNS void +LANGUAGE sql +SECURITY DEFINER +SET search_path = '' +AS $$ + UPDATE rate.master_products m + SET min_price = s.min_price, + max_price = s.max_price, + merchant_count = COALESCE(s.merchant_count, 0), + updated_at = now() + FROM ( + SELECT + MIN(p.price_current) FILTER (WHERE p.price_current > 0) AS min_price, + MAX(COALESCE(NULLIF(p.price_max, 0), p.price_current)) FILTER (WHERE p.price_current > 0) AS max_price, + COUNT(DISTINCT p.merchant_id) FILTER (WHERE p.price_current > 0)::INTEGER AS merchant_count + FROM rate.products p + WHERE p.cluster_id = p_master_id + AND p.origin = 'crawl' + ) s + WHERE m.id = p_master_id; +$$; + +REVOKE ALL ON FUNCTION rate.refresh_master_market_stats(UUID) FROM PUBLIC, anon, authenticated; +GRANT EXECUTE ON FUNCTION rate.refresh_master_market_stats(UUID) TO service_role; + +CREATE OR REPLACE FUNCTION rate.refresh_master_product_rating(p_master_id UUID) +RETURNS void +LANGUAGE sql +SECURITY DEFINER +SET search_path = '' +AS $$ + UPDATE rate.master_products m + SET user_rating_weighted = COALESCE(s.weighted, 0), + authentic_review_count = COALESCE(s.n, 0), + updated_at = now() + FROM ( + SELECT + round( + (sum(r.rating_star * r.helpfulness_weight) FILTER (WHERE r.reviewer_type = 'user')) + / NULLIF(sum(r.helpfulness_weight) FILTER (WHERE r.reviewer_type = 'user'), 0), + 2 + ) AS weighted, + (count(*) FILTER (WHERE r.reviewer_type = 'user'))::INTEGER AS n + FROM rate.products p + JOIN rate.reviews r ON r.product_id = p.id + JOIN rate.review_flags f ON f.review_id = r.id + WHERE p.cluster_id = p_master_id + AND p.origin = 'crawl' + AND r.origin IN ('crawl', 'community') + -- Reviews excluded from the rating (unanalyzed community reviews, + -- flagged ones) never count, whatever their weight (20261014033000). + AND COALESCE(f.include_in_rating, true) + AND r.helpfulness_weight > 0 + ) s + WHERE m.id = p_master_id; +$$; + +REVOKE EXECUTE ON FUNCTION rate.refresh_master_product_rating(UUID) FROM PUBLIC, anon, authenticated; +GRANT EXECUTE ON FUNCTION rate.refresh_master_product_rating(UUID) TO service_role; + +-- 7. Writers that pick or compare rows only use crawled ones ---------------- +-- Bodies copied from 20261018100000 and 20261018120106; only the origin +-- filter is new. + +CREATE OR REPLACE FUNCTION rate.submit_community_review( + p_master_product_id UUID, + p_author_name TEXT, + p_rating_star INTEGER, + p_comment TEXT, + p_variation TEXT DEFAULT NULL, + p_reviewer_type TEXT DEFAULT 'user', + p_criteria_ratings JSONB DEFAULT '{}'::jsonb +) +RETURNS JSONB +LANGUAGE plpgsql +SECURITY DEFINER +SET search_path = rate, public, pg_temp +AS $$ +DECLARE + v_uid UUID := auth.uid(); + v_claims JSONB := COALESCE(NULLIF(current_setting('request.jwt.claims', true), '')::jsonb, '{}'::jsonb); + v_claim_role TEXT := COALESCE(v_claims ->> 'role', ''); + v_is_service BOOLEAN; + v_product_id UUID; + v_review_id UUID; + v_created_at TIMESTAMPTZ; + v_clean_author TEXT; + v_clean_comment TEXT; + v_clean_variation TEXT; + v_clean_type TEXT; + v_clean_criteria JSONB; + v_comment_len INTEGER; + v_recent INTEGER; + v_verdict TEXT := 'unanalyzed'; + v_flag_category TEXT := NULL; + v_reason TEXT := 'Đánh giá cộng đồng đang chờ phân tích, chưa được tính vào điểm trung bình.'; +BEGIN + v_is_service := v_claim_role = 'service_role'; + + -- Fail closed: anonymous callers are rejected even if EXECUTE is ever + -- re-granted by mistake. + IF v_uid IS NULL AND NOT v_is_service THEN + RAISE EXCEPTION 'Bạn cần đăng nhập để gửi đánh giá' USING ERRCODE = '42501'; + END IF; + + -- Supabase anonymous sign-ins mint role=authenticated users at will, which + -- would make the per-user limits below meaningless. + IF NOT v_is_service AND COALESCE(v_claims ->> 'is_anonymous', 'false') = 'true' THEN + RAISE EXCEPTION 'Bạn cần đăng nhập bằng tài khoản thật để gửi đánh giá' USING ERRCODE = '42501'; + END IF; + + IF p_master_product_id IS NULL THEN + RAISE EXCEPTION 'master_product_id is required' USING ERRCODE = '22023'; + END IF; + + v_clean_author := left(btrim(COALESCE(p_author_name, '')), 80); + IF char_length(v_clean_author) < 2 THEN + v_clean_author := 'Người dùng Rate.vn'; + END IF; + + v_clean_comment := btrim(COALESCE(p_comment, '')); + v_comment_len := char_length(v_clean_comment); + IF v_comment_len < 15 OR v_comment_len > 3000 THEN + RAISE EXCEPTION 'Nội dung đánh giá phải từ 15 đến 3000 ký tự' USING ERRCODE = '22023'; + END IF; + + IF p_rating_star IS NULL OR p_rating_star < 1 OR p_rating_star > 5 THEN + RAISE EXCEPTION 'Số sao đánh giá phải từ 1 đến 5' USING ERRCODE = '22023'; + END IF; + + -- Only service_role may submit 'expert' reviews; everyone else is 'user'. + v_clean_type := CASE + WHEN p_reviewer_type = 'expert' AND v_is_service THEN 'expert' + ELSE 'user' + END; + + v_clean_criteria := CASE + WHEN p_criteria_ratings IS NOT NULL AND jsonb_typeof(p_criteria_ratings) = 'object' + THEN p_criteria_ratings + ELSE '{}'::jsonb + END; + + v_clean_variation := NULLIF(left(btrim(COALESCE(p_variation, '')), 120), ''); + + -- Only a crawled listing: a review on a fabricated one is hidden (20261018153000). + SELECT id INTO v_product_id + FROM rate.products + WHERE cluster_id = p_master_product_id + AND origin = 'crawl' + ORDER BY price_current ASC NULLS LAST, created_at ASC + LIMIT 1; + + IF v_product_id IS NULL THEN + RAISE EXCEPTION 'Không tìm thấy listing liên kết cho sản phẩm chuẩn hóa này' USING ERRCODE = 'P0002'; + END IF; + + IF v_uid IS NOT NULL THEN + -- Serialize submissions per user so the checks below cannot be raced. + PERFORM pg_advisory_xact_lock( + hashtextextended('rate.submit_community_review:' || v_uid::text, 0) + ); + + IF EXISTS ( + SELECT 1 + FROM rate.review_authors a + JOIN rate.reviews r ON r.id = a.review_id + JOIN rate.products p ON p.id = r.product_id + WHERE a.author_user_id = v_uid + AND p.cluster_id = p_master_product_id + ) THEN + RAISE EXCEPTION 'Bạn đã gửi đánh giá cho sản phẩm này' USING ERRCODE = '23505'; + END IF; + + SELECT count(*) INTO v_recent + FROM rate.review_authors + WHERE author_user_id = v_uid + AND created_at > now() - interval '24 hours'; + + IF v_recent >= 5 THEN + RAISE EXCEPTION 'Bạn đã gửi quá 5 đánh giá trong 24 giờ, vui lòng thử lại sau' USING ERRCODE = '54000'; + END IF; + END IF; + + -- Keyword rules only decide exclusion. Nothing is ever included at submit + -- time; inclusion is the analyzer's decision. + IF v_clean_comment ~* '(nhận xu|kiếm xu|lấy xu|comment lấy xu|hình ảnh chỉ mang tính chất|video chỉ mang tính chất)' THEN + v_verdict := 'suspicious'; + v_flag_category := 'low_value_coin_spam'; + v_reason := 'Phát hiện cụm từ bình luận cày xu mẫu, loại khỏi điểm trung bình.'; + ELSIF v_clean_comment ~* '(inbox zalo|liên hệ zalo|nhắn zalo|http://|https://|shopee\.ee|s\.shopee)' THEN + v_verdict := 'suspicious'; + v_flag_category := 'seeding_fake'; + v_reason := 'Phát hiện đường dẫn quảng cáo hoặc điều hướng ngoài luồng, loại khỏi điểm trung bình.'; + ELSIF p_rating_star <= 2 AND v_clean_comment ~* '(shop lừa đảo sang shop|mua bên shop khác tốt hơn|đừng mua shop này qua shop)' THEN + v_verdict := 'suspicious'; + v_flag_category := 'competitor_sabotage'; + v_reason := 'Nghi vấn điều hướng sang đối thủ, loại khỏi điểm trung bình.'; + ELSIF v_comment_len < 30 THEN + v_verdict := 'suspicious'; + v_flag_category := 'low_value_coin_spam'; + v_reason := 'Nội dung quá ngắn để kiểm chứng trải nghiệm, loại khỏi điểm trung bình.'; + END IF; + + INSERT INTO rate.reviews ( + product_id, + platform_review_id, + author_name, + rating_star, + comment, + variation, + is_verified_buyer, + reviewer_type, + criteria_ratings, + upvotes, + downvotes, + report_count, + helpfulness_weight + ) + VALUES ( + v_product_id, + 'rate_comm_' || replace(gen_random_uuid()::text, '-', ''), + v_clean_author, + p_rating_star::smallint, + v_clean_comment, + v_clean_variation, + NULL, + v_clean_type, + v_clean_criteria, + 0, + 0, + 0, + 0.00 + ) + RETURNING id, created_at INTO v_review_id, v_created_at; + + IF v_uid IS NOT NULL THEN + INSERT INTO rate.review_authors (review_id, author_user_id) + VALUES (v_review_id, v_uid); + END IF; + + INSERT INTO rate.review_flags ( + review_id, + verdict, + fake_probability, + flag_category, + include_in_rating, + reason, + signals, + detector, + detector_version, + input_hash + ) + VALUES ( + v_review_id, + v_verdict, + NULL, + v_flag_category, + false, + v_reason, + '{}'::jsonb, + 'rate-community-guard', + 'v2', + rate.review_input_hash(v_clean_author, p_rating_star::smallint, v_clean_comment) + ); + + -- No rating refresh: an excluded review cannot change the weighted rating. + + RETURN jsonb_build_object( + 'id', v_review_id, + 'product_id', v_product_id, + 'author_name', v_clean_author, + 'rating_star', p_rating_star, + 'comment', v_clean_comment, + 'variation', v_clean_variation, + 'reviewer_type', v_clean_type, + 'criteria_ratings', v_clean_criteria, + 'verdict', v_verdict, + 'flag_category', v_flag_category, + 'fake_probability', NULL, + 'include_in_rating', false, + 'helpfulness_weight', 0, + 'reason', v_reason, + 'created_at', v_created_at + ); +END; +$$; + +REVOKE ALL ON FUNCTION rate.submit_community_review(UUID, TEXT, INTEGER, TEXT, TEXT, TEXT, JSONB) + FROM PUBLIC, anon; +GRANT EXECUTE ON FUNCTION rate.submit_community_review(UUID, TEXT, INTEGER, TEXT, TEXT, TEXT, JSONB) + TO authenticated, service_role; + +CREATE OR REPLACE FUNCTION rate.record_price_observation( + p_product_id UUID, + p_price NUMERIC, + p_price_original NUMERIC DEFAULT NULL, + p_source TEXT DEFAULT 'shopee_crawler', + p_observation_id TEXT DEFAULT NULL, + p_promotion_id UUID DEFAULT NULL +) +RETURNS TEXT +LANGUAGE plpgsql +SECURITY DEFINER +SET search_path = '' +AS $$ +DECLARE + v_prev_price NUMERIC; + v_prev_original NUMERIC; + v_prev_recorded TIMESTAMPTZ; + v_origin TEXT; + v_inserted INTEGER := 0; +BEGIN + IF p_product_id IS NULL OR p_price IS NULL OR p_price < 0 THEN + RAISE EXCEPTION 'Invalid product_id or negative price in record_price_observation' + USING ERRCODE = '22023'; + END IF; + + SELECT p.origin INTO v_origin FROM rate.products p WHERE p.id = p_product_id; + v_origin := COALESCE(v_origin, 'crawl'); + + SELECT ph.price, ph.price_original, ph.recorded_at + INTO v_prev_price, v_prev_original, v_prev_recorded + FROM rate.price_history ph + WHERE ph.product_id = p_product_id + -- Dedupe against points of the listing's own origin (20261018153000): + -- public (crawled) points for a crawled listing, so hidden backfill or + -- synthetic points never suppress a real observation. + AND ph.origin = v_origin + ORDER BY ph.recorded_at DESC + LIMIT 1; + + IF v_prev_recorded IS NOT NULL + AND v_prev_price = p_price + AND COALESCE(v_prev_original, 0) = COALESCE(p_price_original, 0) + AND v_prev_recorded > pg_catalog.now() - INTERVAL '7 days' + THEN + RETURN 'unchanged_delta'; + END IF; + + IF p_observation_id IS NOT NULL THEN + INSERT INTO rate.price_history ( + product_id, + observation_id, + price, + price_original, + recorded_at, + source, + promotion_id + ) + VALUES ( + p_product_id, + p_observation_id, + p_price, + p_price_original, + pg_catalog.now(), + COALESCE(NULLIF(pg_catalog.btrim(p_source), ''), 'shopee_crawler'), + p_promotion_id + ) + ON CONFLICT (observation_id) WHERE observation_id IS NOT NULL DO NOTHING; + ELSE + INSERT INTO rate.price_history ( + product_id, + price, + price_original, + recorded_at, + source, + promotion_id + ) + VALUES ( + p_product_id, + p_price, + p_price_original, + pg_catalog.now(), + COALESCE(NULLIF(pg_catalog.btrim(p_source), ''), 'shopee_crawler'), + p_promotion_id + ); + END IF; + + GET DIAGNOSTICS v_inserted = ROW_COUNT; + IF v_inserted = 1 THEN + RETURN 'inserted'; + END IF; + RETURN 'deduped_conflict'; +END; +$$; + +REVOKE ALL ON FUNCTION rate.record_price_observation(UUID, NUMERIC, NUMERIC, TEXT, TEXT, UUID) FROM PUBLIC, anon, authenticated; +GRANT EXECUTE ON FUNCTION rate.record_price_observation(UUID, NUMERIC, NUMERIC, TEXT, TEXT, UUID) TO service_role; + +-- Community reviews already attached to a fabricated listing move to the +-- master's cheapest crawled listing, when it has one. +UPDATE rate.reviews r +SET product_id = target.id +FROM rate.products bad +JOIN LATERAL ( + SELECT c.id + FROM rate.products c + WHERE c.cluster_id = bad.cluster_id + AND c.origin = 'crawl' + ORDER BY c.price_current ASC NULLS LAST, c.created_at ASC + LIMIT 1 +) target ON true +WHERE r.product_id = bad.id + AND r.origin = 'community' + AND bad.origin <> 'crawl' + AND bad.cluster_id IS NOT NULL; + +-- 8. Recompute the cached prices and ratings of every master that had a +-- fabricated listing or review, so public pages stop showing them. +DO $$ +DECLARE + v_master UUID; +BEGIN + -- Both branches use the partial origin indexes created above. + FOR v_master IN + SELECT p.cluster_id + FROM rate.products p + WHERE p.origin <> 'crawl' AND p.cluster_id IS NOT NULL + UNION + SELECT p.cluster_id + FROM rate.reviews r + JOIN rate.products p ON p.id = r.product_id + WHERE r.origin <> 'crawl' AND r.origin <> 'community' AND p.cluster_id IS NOT NULL + LOOP + PERFORM rate.refresh_master_market_stats(v_master); + PERFORM rate.refresh_master_product_rating(v_master); + END LOOP; +END $$; + +RESET lock_timeout; diff --git a/supabase/migrations/20261018160000_rate_audit_aggregate_rpcs.sql b/supabase/migrations/20261018160000_rate_audit_aggregate_rpcs.sql new file mode 100644 index 000000000..ffde9ff0d --- /dev/null +++ b/supabase/migrations/20261018160000_rate_audit_aggregate_rpcs.sql @@ -0,0 +1,207 @@ +-- ============================================================================= +-- Migration: 20261018160000_rate_audit_aggregate_rpcs.sql +-- Purpose (Rate audit C2): compute the Rate-Services auditors' aggregates in +-- SQL instead of pulling capped pages of products, reviews and price history +-- into Node. PostgREST clamps every read to max_rows, so the auditors used +-- arbitrary subsets of the catalog and then wrote public risk scores. +-- +-- rate.listing_price_context - one row per priced, crawled listing with its +-- peer price floors and price-history statistics; keyset paged by id. +-- rate.merchant_review_counts - review classes per merchant, the same +-- classification as MerchantRiskAuditor; reviews that were never +-- analyzed (no review_flags row, or verdict 'unanalyzed') are pending, +-- not authentic. +-- +-- Both are STABLE, SECURITY INVOKER and only executable by service_role (the +-- auditors' role), and only use crawled listings (origin, 20261018153000). +-- listing_price_context is plpgsql so each branch gets an index-backed plan +-- (keyset on the products primary key, or the merchant_id index). +-- ============================================================================= + +CREATE OR REPLACE FUNCTION rate.listing_price_context( + p_after UUID DEFAULT NULL, + p_limit INTEGER DEFAULT 500, + p_history_days INTEGER DEFAULT 60, + p_merchant_ids UUID[] DEFAULT NULL +) +RETURNS TABLE ( + product_id UUID, + cluster_id UUID, + merchant_id UUID, + merchant_is_official BOOLEAN, + platform TEXT, + title TEXT, + price_current NUMERIC, + price_original NUMERIC, + -- Minimum price among the OTHER priced listings of the cluster, official + -- merchants first, any merchant when the cluster has no other official + -- listing (MerchantRiskAuditor.computePeerReferenceMinPrice). + peer_reference_min NUMERIC, + -- Minimum official-merchant price of the cluster, this listing included + -- (PriceAnomalyAuditor.computeOfficialMinByCluster). + cluster_official_min NUMERIC, + history_count INTEGER, + history_avg NUMERIC, + history_median NUMERIC, + history_min NUMERIC, + history_max NUMERIC +) +LANGUAGE plpgsql +STABLE +SET search_path = '' +AS $$ +DECLARE + -- Index-friendly predicates: no "param IS NULL OR ..." (which forces a + -- scan in a generic plan); the nil uuid sorts before every real id. + v_after UUID := COALESCE(p_after, '00000000-0000-0000-0000-000000000000'::uuid); + v_limit INTEGER := LEAST(GREATEST(COALESCE(p_limit, 500), 1), 1000); + v_since TIMESTAMPTZ := pg_catalog.now() - pg_catalog.make_interval(days => GREATEST(COALESCE(p_history_days, 60), 1)); + v_page UUID[]; +BEGIN + IF p_merchant_ids IS NULL THEN + SELECT pg_catalog.array_agg(x.id ORDER BY x.id) INTO v_page + FROM ( + SELECT p.id + FROM rate.products p + WHERE p.id > v_after + AND p.origin = 'crawl' + AND p.price_current > 0 + ORDER BY p.id + LIMIT v_limit + ) x; + ELSE + SELECT pg_catalog.array_agg(x.id ORDER BY x.id) INTO v_page + FROM ( + SELECT p.id + FROM rate.products p + WHERE p.merchant_id = ANY (p_merchant_ids) + AND p.id > v_after + AND p.origin = 'crawl' + AND p.price_current > 0 + ORDER BY p.id + LIMIT v_limit + ) x; + END IF; + + IF v_page IS NULL THEN + RETURN; + END IF; + + RETURN QUERY + SELECT + pg.id, + pg.cluster_id, + pg.merchant_id, + COALESCE(m.is_official, false), + pg.platform, + pg.title, + pg.price_current, + pg.price_original, + peers.peer_reference_min, + peers.cluster_official_min, + COALESCE(h.n, 0)::INTEGER, + h.avg_price, + h.median_price::NUMERIC, + h.min_price, + h.max_price + FROM rate.products pg + JOIN rate.merchants m ON m.id = pg.merchant_id + LEFT JOIN LATERAL ( + SELECT + COALESCE( + MIN(o.price_current) FILTER (WHERE o.id <> pg.id AND om.is_official), + MIN(o.price_current) FILTER (WHERE o.id <> pg.id) + ) AS peer_reference_min, + MIN(o.price_current) FILTER (WHERE om.is_official) AS cluster_official_min + FROM rate.products o + JOIN rate.merchants om ON om.id = o.merchant_id + WHERE pg.cluster_id IS NOT NULL + AND o.cluster_id = pg.cluster_id + AND o.origin = 'crawl' + AND o.price_current > 0 + ) peers ON true + LEFT JOIN LATERAL ( + SELECT + pg_catalog.count(*) AS n, + pg_catalog.avg(ph.price) AS avg_price, + percentile_cont(0.5) WITHIN GROUP (ORDER BY ph.price) AS median_price, + pg_catalog.min(ph.price) AS min_price, + pg_catalog.max(ph.price) AS max_price + FROM rate.price_history ph + WHERE ph.product_id = pg.id + AND ph.origin = 'crawl' + AND ph.price > 0 + AND ph.recorded_at >= v_since + ) h ON true + WHERE pg.id = ANY (v_page) + ORDER BY pg.id; +END; +$$; + +REVOKE ALL ON FUNCTION rate.listing_price_context(UUID, INTEGER, INTEGER, UUID[]) FROM PUBLIC, anon, authenticated; +GRANT EXECUTE ON FUNCTION rate.listing_price_context(UUID, INTEGER, INTEGER, UUID[]) TO service_role; + +CREATE OR REPLACE FUNCTION rate.merchant_review_counts(p_merchant_ids UUID[]) +RETURNS TABLE ( + merchant_id UUID, + total_reviews INTEGER, + authentic_count INTEGER, + seeding_count INTEGER, + coin_spam_count INTEGER, + pending_count INTEGER +) +LANGUAGE sql +STABLE +SET search_path = '' +AS $$ + WITH classified AS ( + SELECT + p.merchant_id, + f.review_id IS NULL AS unflagged, + f.verdict, + NULLIF(f.flag_category, '') AS flag_category, + lower(COALESCE(NULLIF(f.flag_category, ''), f.verdict, '')) AS cat, + COALESCE(f.fake_probability, 0) AS fake_probability + FROM rate.products p + JOIN rate.reviews r ON r.product_id = p.id + LEFT JOIN rate.review_flags f ON f.review_id = r.id + WHERE p.merchant_id = ANY (p_merchant_ids) + AND p.origin = 'crawl' + AND r.origin IN ('crawl', 'community') + ), + labelled AS ( + SELECT + merchant_id, + CASE + -- Not analyzed yet (no verdict row, or the community 'unanalyzed' + -- placeholder): neither authentic nor seeding. + -- A reserved re-analysis also resets verdict to 'unanalyzed' but keeps + -- the previous flag_category: a review already flagged keeps counting + -- as flagged; only one with no classification yet is pending. + WHEN unflagged OR (verdict = 'unanalyzed' AND COALESCE(flag_category, 'authentic') = 'authentic') THEN 'pending' + WHEN cat IN ('seeding_fake', 'fake') THEN 'seeding' + WHEN cat = 'low_value_coin_spam' THEN 'coin_spam' + WHEN cat IN ('authentic', 'competitor_sabotage', 'review_bombing') THEN 'authentic' + WHEN fake_probability >= 0.65 THEN 'seeding' + ELSE 'authentic' + END AS label + FROM classified + ) + SELECT + merchant_id, + (count(*) FILTER (WHERE label <> 'pending'))::INTEGER, + (count(*) FILTER (WHERE label = 'authentic'))::INTEGER, + (count(*) FILTER (WHERE label = 'seeding'))::INTEGER, + (count(*) FILTER (WHERE label = 'coin_spam'))::INTEGER, + (count(*) FILTER (WHERE label = 'pending'))::INTEGER + FROM labelled + GROUP BY merchant_id; +$$; + +REVOKE ALL ON FUNCTION rate.merchant_review_counts(UUID[]) FROM PUBLIC, anon, authenticated; +GRANT EXECUTE ON FUNCTION rate.merchant_review_counts(UUID[]) TO service_role; + +-- The peer-floor lateral scans one cluster at a time. +CREATE INDEX IF NOT EXISTS idx_rate_products_cluster_crawl_priced + ON rate.products (cluster_id, price_current) + WHERE origin = 'crawl' AND price_current > 0; diff --git a/supabase/migrations/20261018183000_rate_worker_role.sql b/supabase/migrations/20261018183000_rate_worker_role.sql new file mode 100644 index 000000000..47f0ad561 --- /dev/null +++ b/supabase/migrations/20261018183000_rate_worker_role.sql @@ -0,0 +1,225 @@ +-- ============================================================================= +-- Migration: 20261018183000_rate_worker_role.sql +-- Purpose (Rate audit K3): a least-privilege role for the Rate-Services crawl +-- worker, so the process that drives Chromium on untrusted e-commerce pages no +-- longer holds the shared project's service_role key. +-- +-- * rate_worker: NOLOGIN NOINHERIT, no BYPASSRLS. PostgREST switches to it +-- when a Supabase Auth user whose auth.users.role is 'rate_worker' signs +-- in (the access token's role claim), so authenticator is its only member. +-- * Privileges cover only the worker cycle (ingest, queue, auditors, price +-- alerts) in schema rate: SELECT/INSERT/UPDATE on the tables it writes, +-- SELECT on what it reads, EXECUTE on the RPCs it calls. No DELETE, no +-- TRUNCATE, no direct crawl_jobs/crawl_runs access (RPCs only), nothing +-- outside rate apart from USAGE on pg_trgm's schema for match_master_product. +-- * PII and other products' fields stay out of reach: merchants phone / +-- bank columns are not readable and DOSafe's risk_score is not writable; +-- price_alerts only lets the worker mark delivery; community reviews and +-- their verdicts are read-only to it. +-- * Catalog maintenance that deletes or rewrites data (purge-fabricated, +-- remove-wrong-listings, reanalyze-reviews, cancel_crawl_jobs) stays +-- service_role-only behind the prod-ops gate. The worker keeps +-- purge_completed_crawl_jobs, which only trims terminal queue rows past +-- the retention window (at least 3 days, 5000 rows per call). +-- +-- New rate tables or RPCs the worker needs must grant rate_worker explicitly: +-- there are no default privileges for this role. +-- Idempotent: guarded CREATE ROLE with a drift check, GRANT/REVOKE, DROP POLICY +-- IF EXISTS before CREATE POLICY. +-- ============================================================================= + +BEGIN; + +-- Fail fast instead of queueing behind long transactions on the shared database. +SET LOCAL lock_timeout = '5s'; +-- The creating role must not become a member of rate_worker. +SET LOCAL createrole_self_grant = ''; + +DO $$ +DECLARE + r RECORD; +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'rate_worker') THEN + CREATE ROLE rate_worker NOLOGIN NOINHERIT; + END IF; + + SELECT rolcanlogin, rolsuper, rolbypassrls, rolcreaterole, rolcreatedb, rolinherit + INTO r + FROM pg_roles WHERE rolname = 'rate_worker'; + IF r.rolcanlogin OR r.rolsuper OR r.rolbypassrls OR r.rolcreaterole OR r.rolcreatedb OR r.rolinherit THEN + RAISE EXCEPTION 'rate_worker drift: role must be NOLOGIN NOINHERIT without SUPERUSER, BYPASSRLS, CREATEROLE or CREATEDB'; + END IF; + + -- rate_worker must not inherit anything either. + IF EXISTS ( + SELECT 1 FROM pg_auth_members am + JOIN pg_roles member ON member.oid = am.member + WHERE member.rolname = 'rate_worker' + ) THEN + RAISE EXCEPTION 'rate_worker drift: rate_worker must not be a member of any role'; + END IF; +END $$; + +GRANT rate_worker TO authenticator; + +DO $$ +BEGIN + -- Only authenticator may switch to rate_worker (SET, no INHERIT). The only + -- other membership allowed is postgres's ADMIN-only grant that PostgreSQL + -- gives the creating role (no INHERIT, no SET), as for dosai_pricing_worker + -- (20261002110500). + IF EXISTS ( + SELECT 1 FROM pg_auth_members am + JOIN pg_roles granted ON granted.oid = am.roleid + JOIN pg_roles member ON member.oid = am.member + WHERE granted.rolname = 'rate_worker' + AND NOT ( + (member.rolname = 'authenticator' AND NOT am.inherit_option AND NOT am.admin_option) + OR (member.rolname = 'postgres' AND am.admin_option AND NOT am.inherit_option AND NOT am.set_option) + ) + ) THEN + RAISE EXCEPTION 'rate_worker drift: unexpected member of rate_worker (only authenticator, plus postgres as ADMIN only)'; + END IF; +END $$; + +-- Schema access ------------------------------------------------------------ + +GRANT USAGE ON SCHEMA rate TO rate_worker; + +DO $$ +DECLARE + v_trgm_schema TEXT; +BEGIN + -- match_master_product (SECURITY INVOKER) calls pg_trgm's similarity(); + -- production keeps the extension in schema "sign", other environments in + -- "extensions". On production "sign" also holds Crove Sign's tables, which + -- are granted only to sign_app / service_role / postgres, so USAGE alone + -- reaches nothing there beyond what PUBLIC can already execute. + SELECT n.nspname INTO v_trgm_schema + FROM pg_extension e JOIN pg_namespace n ON n.oid = e.extnamespace + WHERE e.extname = 'pg_trgm'; + IF v_trgm_schema IS NOT NULL AND v_trgm_schema <> 'rate' THEN + EXECUTE format('GRANT USAGE ON SCHEMA %I TO rate_worker', v_trgm_schema); + END IF; +END $$; + +-- Tables ------------------------------------------------------------------- + +REVOKE ALL ON ALL TABLES IN SCHEMA rate FROM rate_worker; + +GRANT SELECT ON rate.categories TO rate_worker; +GRANT SELECT, INSERT, UPDATE ON + rate.products, + rate.master_products, + rate.price_history, + rate.reviews, + rate.review_flags, + rate.review_analysis +TO rate_worker; + +-- merchants: no phone / bank_account / bank_name, and DOSafe's risk_score is +-- readable but never writable. SELECT on every upserted column is required: +-- ON CONFLICT DO UPDATE SET col = EXCLUDED.col reads it. +GRANT SELECT ( + id, platform, platform_shop_id, name, slug, url, is_official, rating_star, + follower_count, location, entity_hash, risk_score, metadata, created_at, + updated_at, review_risk_score, review_risk_breakdown, review_risk_updated_at, + archived_at +) ON rate.merchants TO rate_worker; +-- INSERT and UPDATE cover the same columns, so any upsert payload the worker +-- can update it can also insert. +GRANT INSERT ( + platform, platform_shop_id, name, url, is_official, rating_star, + follower_count, location, entity_hash, updated_at, review_risk_score, + review_risk_breakdown, review_risk_updated_at, metadata +) ON rate.merchants TO rate_worker; +-- PostgREST's merge-duplicates upsert SETs every payload column, including the +-- conflict key (platform, platform_shop_id), and PostgreSQL checks those UPDATE +-- privileges at plan time even when the row is new. +GRANT UPDATE ( + platform, platform_shop_id, name, url, is_official, rating_star, + follower_count, location, entity_hash, updated_at, review_risk_score, + review_risk_breakdown, review_risk_updated_at, metadata +) ON rate.merchants TO rate_worker; + +-- price_alerts: the evaluator reads alerts (subscriber_email for delivery) +-- and only marks delivery; it cannot redirect, retarget or disable an alert. +GRANT SELECT ON rate.price_alerts TO rate_worker; +GRANT UPDATE (last_triggered_at, updated_at) ON rate.price_alerts TO rate_worker; +-- price_history.id is BIGSERIAL (the no-RPC ingest fallback inserts directly). +GRANT USAGE ON SEQUENCE rate.price_history_id_seq TO rate_worker; + +-- RLS: the write policies on these tables are TO service_role; give the worker +-- its own. Table grants above, not the policies, limit it to SELECT/INSERT/ +-- UPDATE (no DELETE). +DO $$ +DECLARE + t TEXT; +BEGIN + FOREACH t IN ARRAY ARRAY[ + 'categories', 'merchants', 'products', 'master_products', 'price_history', + 'review_analysis', 'price_alerts' + ] LOOP + EXECUTE format('DROP POLICY IF EXISTS "Rate worker access %s" ON rate.%I', t, t); + EXECUTE format( + 'CREATE POLICY "Rate worker access %s" ON rate.%I FOR ALL TO rate_worker USING (true) WITH CHECK (true)', + t, t + ); + END LOOP; +END $$; + +-- reviews / review_flags: the worker writes crawled reviews and their +-- verdicts only. Community reviews (and their verdicts) are read-only to it. +DROP POLICY IF EXISTS "Rate worker access reviews" ON rate.reviews; +DROP POLICY IF EXISTS "Rate worker read reviews" ON rate.reviews; +DROP POLICY IF EXISTS "Rate worker insert reviews" ON rate.reviews; +DROP POLICY IF EXISTS "Rate worker update reviews" ON rate.reviews; +CREATE POLICY "Rate worker read reviews" ON rate.reviews + FOR SELECT TO rate_worker USING (true); +CREATE POLICY "Rate worker insert reviews" ON rate.reviews + FOR INSERT TO rate_worker WITH CHECK (origin <> 'community'); +CREATE POLICY "Rate worker update reviews" ON rate.reviews + FOR UPDATE TO rate_worker USING (origin <> 'community') WITH CHECK (origin <> 'community'); + +DROP POLICY IF EXISTS "Rate worker access review_flags" ON rate.review_flags; +DROP POLICY IF EXISTS "Rate worker read review_flags" ON rate.review_flags; +DROP POLICY IF EXISTS "Rate worker insert review_flags" ON rate.review_flags; +DROP POLICY IF EXISTS "Rate worker update review_flags" ON rate.review_flags; +CREATE POLICY "Rate worker read review_flags" ON rate.review_flags + FOR SELECT TO rate_worker USING (true); +CREATE POLICY "Rate worker insert review_flags" ON rate.review_flags + FOR INSERT TO rate_worker + WITH CHECK (EXISTS (SELECT 1 FROM rate.reviews r WHERE r.id = review_flags.review_id AND r.origin <> 'community')); +CREATE POLICY "Rate worker update review_flags" ON rate.review_flags + FOR UPDATE TO rate_worker + USING (EXISTS (SELECT 1 FROM rate.reviews r WHERE r.id = review_flags.review_id AND r.origin <> 'community')) + WITH CHECK (EXISTS (SELECT 1 FROM rate.reviews r WHERE r.id = review_flags.review_id AND r.origin <> 'community')); + +-- RPCs --------------------------------------------------------------------- + +REVOKE ALL ON ALL FUNCTIONS IN SCHEMA rate FROM rate_worker; + +-- Queue and run bookkeeping (SECURITY DEFINER; crawl_jobs has no table grant). +GRANT EXECUTE ON FUNCTION rate.start_crawl_run(TEXT, JSONB) TO rate_worker; +GRANT EXECUTE ON FUNCTION rate.finish_crawl_run(UUID, JSONB) TO rate_worker; +GRANT EXECUTE ON FUNCTION rate.enqueue_crawl_job(TEXT, TEXT, JSONB, TEXT, TEXT, TEXT, INTEGER, UUID) TO rate_worker; +GRANT EXECUTE ON FUNCTION rate.dequeue_crawl_job(TEXT, TEXT, INTERVAL) TO rate_worker; +GRANT EXECUTE ON FUNCTION rate.heartbeat_crawl_job(UUID, UUID, INTERVAL) TO rate_worker; +GRANT EXECUTE ON FUNCTION rate.checkpoint_crawl_job(UUID, UUID, JSONB) TO rate_worker; +GRANT EXECUTE ON FUNCTION rate.ack_crawl_job(UUID, UUID, JSONB) TO rate_worker; +GRANT EXECUTE ON FUNCTION rate.fail_crawl_job(UUID, UUID, TEXT) TO rate_worker; +GRANT EXECUTE ON FUNCTION rate.release_crawl_job(UUID, UUID, TEXT) TO rate_worker; +GRANT EXECUTE ON FUNCTION rate.purge_completed_crawl_jobs(INTEGER) TO rate_worker; +GRANT EXECUTE ON FUNCTION rate.stamp_crawl_provenance(UUID, UUID) TO rate_worker; + +-- Ingest and aggregates. +GRANT EXECUTE ON FUNCTION rate.record_price_observation(UUID, NUMERIC, NUMERIC, TEXT, TEXT, UUID) TO rate_worker; +GRANT EXECUTE ON FUNCTION rate.refresh_master_market_stats(UUID) TO rate_worker; +GRANT EXECUTE ON FUNCTION rate.refresh_master_product_rating(UUID) TO rate_worker; +GRANT EXECUTE ON FUNCTION rate.match_master_product(TEXT, TEXT, TEXT, NUMERIC, REAL) TO rate_worker; + +-- Auditor aggregates (SECURITY INVOKER: run with the table grants above). +GRANT EXECUTE ON FUNCTION rate.listing_price_context(UUID, INTEGER, INTEGER, UUID[]) TO rate_worker; +GRANT EXECUTE ON FUNCTION rate.merchant_review_counts(UUID[]) TO rate_worker; + +COMMIT; diff --git a/supabase/migrations/20261020230000_rate_listing_availability.sql b/supabase/migrations/20261020230000_rate_listing_availability.sql new file mode 100644 index 000000000..fe61ffe1a --- /dev/null +++ b/supabase/migrations/20261020230000_rate_listing_availability.sql @@ -0,0 +1,378 @@ +-- Rate: listing availability (DOS/Rate-Services#123) +-- +-- Purpose: a retailer page can load fine and state that the item is sold out +-- or discontinued (schema.org OutOfStock / Discontinued, TGDD flight data with +-- no buyable price). The Rate-Services worker completes such crawl jobs as +-- `listing_unavailable` without ingesting anything, so until now the listing +-- kept its last in-stock price and kept setting the master's min_price. +-- +-- 1. rate.products.availability ('in_stock' | 'out_of_stock' | 'discontinued') +-- and availability_checked_at. Existing listings were ingested with a price, +-- so they default to 'in_stock'. +-- 2. rate.mark_listing_unavailable(job, availability): called by the worker for +-- a running job whose page reports the item unavailable. Marks the crawled +-- listing of that job (no-op returning NULL for a discovery job that has no +-- listing yet) and refreshes its master's market stats. +-- 3. rate.stamp_crawl_provenance marks the listing 'in_stock' again: it only +-- runs after a successful ingest with a price. The ingest refreshed the +-- master's stats while the listing was still unavailable, so a restock +-- refreshes them again. +-- 4. rate.refresh_master_market_stats only counts in-stock listings. +-- 5. rate.listing_price_context ignores sold-out peers in its price floors. +-- +-- rate.v_products_with_merchant_trust is left unchanged: appending columns to it +-- would make re-running 20261018153000 fail ("cannot drop columns from view"). +-- Public reads see the new columns on rate.products under its existing policy. +-- +-- Idempotent: ADD COLUMN IF NOT EXISTS, guarded constraint, CREATE OR REPLACE. +-- Touches the `rate` schema only. + +-- 1. Columns ----------------------------------------------------------------- +-- A constant default is a catalog-only change on PG 11+, but ADD COLUMN still +-- takes ACCESS EXCLUSIVE: give up fast instead of queueing behind a long +-- transaction and blocking every read. The CHECK is added NOT VALID and then +-- validated; within the migration's transaction the scan still runs under the +-- ADD COLUMN lock, which is fine for a table this size. + +SET lock_timeout = '5s'; + +ALTER TABLE rate.products ADD COLUMN IF NOT EXISTS availability TEXT NOT NULL DEFAULT 'in_stock'; +ALTER TABLE rate.products ADD COLUMN IF NOT EXISTS availability_checked_at TIMESTAMPTZ; + +DO $$ +BEGIN + IF NOT EXISTS ( + SELECT 1 FROM pg_constraint + WHERE conrelid = 'rate.products'::regclass AND conname = 'products_availability_check' + ) THEN + ALTER TABLE rate.products + ADD CONSTRAINT products_availability_check + CHECK (availability IN ('in_stock', 'out_of_stock', 'discontinued')) NOT VALID; + END IF; +END $$; + +RESET lock_timeout; + +DO $$ +BEGIN + IF EXISTS ( + SELECT 1 FROM pg_constraint + WHERE conrelid = 'rate.products'::regclass + AND conname = 'products_availability_check' + AND NOT convalidated + ) THEN + ALTER TABLE rate.products VALIDATE CONSTRAINT products_availability_check; + END IF; +END $$; + +COMMENT ON COLUMN rate.products.availability IS + 'Stock state the retailer page last reported: in_stock (priced crawl), out_of_stock or discontinued (set by rate.mark_listing_unavailable).'; +COMMENT ON COLUMN rate.products.availability_checked_at IS + 'When availability was last confirmed by a crawl job; NULL for listings not crawled since the column was added.'; + +-- 2. Worker RPC ---------------------------------------------------------------- + +CREATE OR REPLACE FUNCTION rate.mark_listing_unavailable(p_job_id UUID, p_availability TEXT) +RETURNS UUID +LANGUAGE plpgsql +SECURITY DEFINER +SET search_path = '' +AS $$ +DECLARE + v_product_id UUID; + v_cluster_id UUID; +BEGIN + IF p_job_id IS NULL OR p_availability IS NULL OR p_availability NOT IN ('out_of_stock', 'discontinued') THEN + RAISE EXCEPTION 'job id and availability out_of_stock|discontinued are required' USING ERRCODE = '22023'; + END IF; + + -- Only a job that is currently being processed may report availability. + IF NOT EXISTS ( + SELECT 1 FROM rate.crawl_jobs WHERE id = p_job_id AND status = 'running' + ) THEN + RAISE EXCEPTION 'crawl job % is not running', p_job_id USING ERRCODE = 'P0002'; + END IF; + + -- The job's own listing: same platform, and the same item id, or the same + -- URL when the job carries no item id (URL-only discovery jobs). One row: + -- (platform, platform_item_id) is unique, and URL matches prefer the newest. + SELECT p.id, p.cluster_id + INTO v_product_id, v_cluster_id + FROM rate.products p + JOIN rate.crawl_jobs j ON j.id = p_job_id + WHERE p.origin = 'crawl' + AND p.platform = j.platform + AND ( + (j.platform_item_id IS NOT NULL AND p.platform_item_id = j.platform_item_id) + OR (j.platform_item_id IS NULL AND j.target_url IS NOT NULL AND p.url = j.target_url) + ) + ORDER BY p.updated_at DESC NULLS LAST, p.id + LIMIT 1; + + -- A discovery job for a listing that was never ingested has nothing to mark. + IF v_product_id IS NULL THEN + RETURN NULL; + END IF; + + UPDATE rate.products + SET availability = p_availability, + availability_checked_at = now(), + last_crawled_at = now(), + last_crawl_job_id = p_job_id + WHERE id = v_product_id; + + IF v_cluster_id IS NOT NULL THEN + PERFORM rate.refresh_master_market_stats(v_cluster_id); + END IF; + + RETURN v_product_id; +END; +$$; + +REVOKE ALL ON FUNCTION rate.mark_listing_unavailable(UUID, TEXT) FROM PUBLIC, anon, authenticated; +GRANT EXECUTE ON FUNCTION rate.mark_listing_unavailable(UUID, TEXT) TO service_role; + +DO $$ +BEGIN + IF EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'rate_worker') THEN + GRANT EXECUTE ON FUNCTION rate.mark_listing_unavailable(UUID, TEXT) TO rate_worker; + END IF; +END $$; + +-- 3. A priced crawl puts the listing back in stock -------------------------- +-- Body as in 20261018153000, plus the availability columns in the listing update +-- and a stats refresh when that update is a restock. + +CREATE OR REPLACE FUNCTION rate.stamp_crawl_provenance(p_job_id UUID, p_product_id UUID) +RETURNS JSONB +LANGUAGE plpgsql +SECURITY DEFINER +SET search_path = '' +AS $$ +DECLARE + v_prices INTEGER; + v_reviews INTEGER; + v_prev_availability TEXT; + v_cluster_id UUID; +BEGIN + IF p_job_id IS NULL OR p_product_id IS NULL THEN + RAISE EXCEPTION 'job id and product id are required' USING ERRCODE = '22023'; + END IF; + + -- Only a job that is currently being processed may stamp rows. + IF NOT EXISTS ( + SELECT 1 FROM rate.crawl_jobs WHERE id = p_job_id AND status = 'running' + ) THEN + RAISE EXCEPTION 'crawl job % is not running', p_job_id USING ERRCODE = 'P0002'; + END IF; + + -- Locked so a concurrent mark_listing_unavailable cannot slip between this + -- read and the update below and leave the restock refresh skipped. + SELECT p.availability, p.cluster_id + INTO v_prev_availability, v_cluster_id + FROM rate.products p + WHERE p.id = p_product_id + FOR UPDATE; + + -- The job must be for this listing: same platform, and the same item id or + -- URL when the job carries them (URL-only discovery jobs have no item id). + -- The job ingested a price, so the listing is in stock. + UPDATE rate.products p + SET last_crawled_at = now(), + last_crawl_job_id = p_job_id, + availability = 'in_stock', + availability_checked_at = now() + FROM rate.crawl_jobs j + WHERE p.id = p_product_id + AND p.origin = 'crawl' + AND j.id = p_job_id + AND j.platform = p.platform + AND ( + j.platform_item_id = p.platform_item_id + OR j.target_url = p.url + OR j.platform_item_id IS NULL + ); + + IF NOT FOUND THEN + RAISE EXCEPTION 'crawled listing % not found for job %', p_product_id, p_job_id USING ERRCODE = 'P0002'; + END IF; + + -- The ingest refreshed the master's stats before this stamp, while the + -- listing was still out of stock and so not counted. + IF v_prev_availability IS DISTINCT FROM 'in_stock' AND v_cluster_id IS NOT NULL THEN + PERFORM rate.refresh_master_market_stats(v_cluster_id); + END IF; + + -- Rows this job just wrote: the dedupe index keeps one live job per + -- listing, and one job runs for minutes, so the 1h window cannot reach a + -- previous crawl's rows (those are already stamped or predate this column). + UPDATE rate.price_history + SET crawl_job_id = p_job_id + WHERE product_id = p_product_id + AND crawl_job_id IS NULL + AND origin = 'crawl' + AND recorded_at > now() - interval '1 hour'; + GET DIAGNOSTICS v_prices = ROW_COUNT; + + UPDATE rate.reviews + SET first_seen_job_id = p_job_id + WHERE product_id = p_product_id + AND first_seen_job_id IS NULL + AND origin = 'crawl' + AND observed_at > now() - interval '1 hour'; + GET DIAGNOSTICS v_reviews = ROW_COUNT; + + RETURN jsonb_build_object('price_points', v_prices, 'reviews', v_reviews); +END; +$$; + +-- 4. Market stats count in-stock listings only ------------------------------- +-- Body as in 20261018153000, plus the availability filter. + +CREATE OR REPLACE FUNCTION rate.refresh_master_market_stats(p_master_id UUID) +RETURNS void +LANGUAGE sql +SECURITY DEFINER +SET search_path = '' +AS $$ + UPDATE rate.master_products m + SET min_price = s.min_price, + max_price = s.max_price, + merchant_count = COALESCE(s.merchant_count, 0), + updated_at = now() + FROM ( + SELECT + MIN(p.price_current) FILTER (WHERE p.price_current > 0) AS min_price, + MAX(COALESCE(NULLIF(p.price_max, 0), p.price_current)) FILTER (WHERE p.price_current > 0) AS max_price, + COUNT(DISTINCT p.merchant_id) FILTER (WHERE p.price_current > 0)::INTEGER AS merchant_count + FROM rate.products p + WHERE p.cluster_id = p_master_id + AND p.origin = 'crawl' + AND p.availability = 'in_stock' + ) s + WHERE m.id = p_master_id; +$$; + +-- 5. Sold-out peers no longer set the auditors' price floors ---------------- +-- Body as in 20261018160000, plus the availability filter on peers. + +CREATE OR REPLACE FUNCTION rate.listing_price_context( + p_after UUID DEFAULT NULL, + p_limit INTEGER DEFAULT 500, + p_history_days INTEGER DEFAULT 60, + p_merchant_ids UUID[] DEFAULT NULL +) +RETURNS TABLE ( + product_id UUID, + cluster_id UUID, + merchant_id UUID, + merchant_is_official BOOLEAN, + platform TEXT, + title TEXT, + price_current NUMERIC, + price_original NUMERIC, + -- Minimum price among the OTHER priced, in-stock listings of the cluster, + -- official merchants first, any merchant when the cluster has no other + -- official listing (MerchantRiskAuditor.computePeerReferenceMinPrice). + peer_reference_min NUMERIC, + -- Minimum official-merchant price of the cluster's in-stock listings, this + -- listing included while it is in stock (PriceAnomalyAuditor.computeOfficialMinByCluster). + cluster_official_min NUMERIC, + history_count INTEGER, + history_avg NUMERIC, + history_median NUMERIC, + history_min NUMERIC, + history_max NUMERIC +) +LANGUAGE plpgsql +STABLE +SET search_path = '' +AS $$ +DECLARE + -- Index-friendly predicates: no "param IS NULL OR ..." (which forces a + -- scan in a generic plan); the nil uuid sorts before every real id. + v_after UUID := COALESCE(p_after, '00000000-0000-0000-0000-000000000000'::uuid); + v_limit INTEGER := LEAST(GREATEST(COALESCE(p_limit, 500), 1), 1000); + v_since TIMESTAMPTZ := pg_catalog.now() - pg_catalog.make_interval(days => GREATEST(COALESCE(p_history_days, 60), 1)); + v_page UUID[]; +BEGIN + IF p_merchant_ids IS NULL THEN + SELECT pg_catalog.array_agg(x.id ORDER BY x.id) INTO v_page + FROM ( + SELECT p.id + FROM rate.products p + WHERE p.id > v_after + AND p.origin = 'crawl' + AND p.price_current > 0 + ORDER BY p.id + LIMIT v_limit + ) x; + ELSE + SELECT pg_catalog.array_agg(x.id ORDER BY x.id) INTO v_page + FROM ( + SELECT p.id + FROM rate.products p + WHERE p.merchant_id = ANY (p_merchant_ids) + AND p.id > v_after + AND p.origin = 'crawl' + AND p.price_current > 0 + ORDER BY p.id + LIMIT v_limit + ) x; + END IF; + + IF v_page IS NULL THEN + RETURN; + END IF; + + RETURN QUERY + SELECT + pg.id, + pg.cluster_id, + pg.merchant_id, + COALESCE(m.is_official, false), + pg.platform, + pg.title, + pg.price_current, + pg.price_original, + peers.peer_reference_min, + peers.cluster_official_min, + COALESCE(h.n, 0)::INTEGER, + h.avg_price, + h.median_price::NUMERIC, + h.min_price, + h.max_price + FROM rate.products pg + JOIN rate.merchants m ON m.id = pg.merchant_id + LEFT JOIN LATERAL ( + SELECT + COALESCE( + MIN(o.price_current) FILTER (WHERE o.id <> pg.id AND om.is_official), + MIN(o.price_current) FILTER (WHERE o.id <> pg.id) + ) AS peer_reference_min, + MIN(o.price_current) FILTER (WHERE om.is_official) AS cluster_official_min + FROM rate.products o + JOIN rate.merchants om ON om.id = o.merchant_id + WHERE pg.cluster_id IS NOT NULL + AND o.cluster_id = pg.cluster_id + AND o.origin = 'crawl' + AND o.price_current > 0 + AND o.availability = 'in_stock' + ) peers ON true + LEFT JOIN LATERAL ( + SELECT + pg_catalog.count(*) AS n, + pg_catalog.avg(ph.price) AS avg_price, + percentile_cont(0.5) WITHIN GROUP (ORDER BY ph.price) AS median_price, + pg_catalog.min(ph.price) AS min_price, + pg_catalog.max(ph.price) AS max_price + FROM rate.price_history ph + WHERE ph.product_id = pg.id + AND ph.origin = 'crawl' + AND ph.price > 0 + AND ph.recorded_at >= v_since + ) h ON true + WHERE pg.id = ANY (v_page) + ORDER BY pg.id; +END; +$$; diff --git a/supabase/migrations/20261022140000_rate_move_iphone_16e_offer.sql b/supabase/migrations/20261022140000_rate_move_iphone_16e_offer.sql new file mode 100644 index 000000000..48108e3dd --- /dev/null +++ b/supabase/migrations/20261022140000_rate_move_iphone_16e_offer.sql @@ -0,0 +1,174 @@ +-- Rate (DOS/Rate#594): a CellphoneS "iPhone 16e 128GB" offer was clustered +-- into the "Apple iPhone 16 128GB" master product (before the 16e parse fix, +-- DOS/Rate#352). It pulled the iPhone 16 price floor to 13.69M and showed a +-- false -43% deal on rate.vn/deals. JOY approved moving it (2026-10-22). +-- +-- This moves that one offer to an "Apple iPhone 16e 128GB" master product, +-- creating it as the importer would (model_key apple:iphone-16e:128gb), then +-- refreshes price and rating stats of both masters. The offer's crawled +-- reviews, price history and review analysis stay keyed by the product id and +-- move with it. Community reviews stored on it were written for the iPhone 16 +-- master and stay there, on its cheapest other crawled listing. +-- +-- Data only, rate schema only. Idempotent: on a database without the offer +-- (Preview, Beta) it changes nothing; once moved, a re-run only refreshes the +-- stats. Fails closed if the offer or the iPhone 16 master is not what it +-- expects. + +SELECT pg_catalog.set_config('lock_timeout', '5s', true); + +DO $$ +DECLARE + c_offer CONSTANT UUID := 'b6f84fe3-8a9f-4775-abac-5400cf69efef'; + c_iphone_16 CONSTANT UUID := '3afb2a7a-d791-4763-8ef6-842ee01bfd48'; + c_model_key CONSTANT TEXT := 'apple:iphone-16e:128gb'; + c_slug CONSTANT TEXT := 'apple-iphone-16e-128gb'; + v_offer RECORD; + v_slug TEXT := c_slug; + v_target UUID; + v_target_status TEXT; + v_rehome UUID; + v_rehomed INTEGER; +BEGIN + SELECT id, cluster_id, category_id, title, images + INTO v_offer + FROM rate.products + WHERE id = c_offer + FOR UPDATE; + + IF NOT FOUND THEN + RAISE NOTICE 'DOS/Rate#594: offer % not present; nothing to move', c_offer; + RETURN; + END IF; + + IF v_offer.title !~* 'iphone\s*16\s*e([^a-z0-9]|$)' THEN + RAISE EXCEPTION 'DOS/Rate#594: offer % is not an iPhone 16e listing (title %)', + c_offer, v_offer.title; + END IF; + + IF NOT EXISTS ( + SELECT 1 FROM rate.master_products + WHERE id = c_iphone_16 AND model_key = 'apple:iphone-16:128gb' + ) THEN + RAISE EXCEPTION 'DOS/Rate#594: master % is not apple:iphone-16:128gb', c_iphone_16; + END IF; + + -- The importer's slug fallback when the slug is taken by another model_key. + IF EXISTS ( + SELECT 1 FROM rate.master_products + WHERE slug = c_slug AND model_key <> c_model_key + ) THEN + v_slug := c_slug || '-' || left(encode(sha256(convert_to(c_model_key, 'UTF8')), 'hex'), 8); + END IF; + + -- Specs come only from the importer's benchmark registry entry for + -- apple:iphone-16e (apps/importer/src/shopee/product-normalizer.ts), so the + -- master is published as the importer seeds benchmark-backed products. + INSERT INTO rate.master_products ( + category_id, brand, model, variant_name, model_key, name, slug, description, + ram_gb, storage_gb, screen_size_inch, battery_mah, has_5g, + specifications, key_specs, images, thumbnail, colors, status + ) + VALUES ( + v_offer.category_id, + 'Apple', + 'iPhone 16e', + '128GB', + c_model_key, + 'Apple iPhone 16e 128GB', + v_slug, + '', + 8, + 128, + 6.1, + 4005, + true, + jsonb_build_object( + 'category_slug', 'smartphones', + 'availability', jsonb_build_object('announced', 'February 2025'), + 'design', jsonb_build_object( + 'dimensions', '146.7 x 71.5 x 7.8 mm', + 'weight_g', 167, + 'resistance', 'IP68 (6m up to 30 mins)' + ), + 'display', jsonb_build_object( + 'size_inch', 6.1, + 'type', 'Super Retina XDR OLED, HDR10, Dolby Vision, 1200 nits (peak)', + 'resolution', '1170 x 2532 pixels (~460 ppi)', + 'refresh_rate_hz', 60 + ), + 'hardware', jsonb_build_object( + 'chipset', 'Apple A18 (3 nm)', + 'cpu', 'Hexa-core (2x4.04 GHz + 4x2.20 GHz)', + 'gpu', 'Apple GPU (4-core graphics)', + 'ram_gb', 8, + 'storage_gb', 128, + 'os', 'iOS 18.3 (upgradable)' + ), + 'battery', jsonb_build_object('capacity_mah', 4005, 'fast_charging_w', 20), + 'camera', jsonb_build_object( + 'main_camera', '48 MP, f/1.6, 26mm (wide), PDAF, OIS', + 'front_camera', '12 MP, f/1.9, 23mm (wide), PDAF + SL 3D' + ), + 'cellular', jsonb_build_object('has_5g', true) + ), + jsonb_build_object( + 'screen', '6.1" Super Retina XDR OLED', + 'chip', 'Apple A18', + 'camera', '48 MP', + 'battery', '4005 mAh (20W)', + 'storage', '128GB', + 'ram', '8GB' + ), + COALESCE(v_offer.images, '{}'::TEXT[]), + v_offer.images[1], + '{}'::TEXT[], + 'published' + ) + ON CONFLICT (model_key) DO NOTHING; + + -- An existing apple:iphone-16e:128gb master keeps its own identity and status. + SELECT id, status INTO STRICT v_target, v_target_status + FROM rate.master_products + WHERE model_key = c_model_key + FOR UPDATE; + + IF v_offer.cluster_id = v_target THEN + RAISE NOTICE 'DOS/Rate#594: offer % already on master %', c_offer, v_target; + ELSIF v_offer.cluster_id IS DISTINCT FROM c_iphone_16 THEN + RAISE EXCEPTION 'DOS/Rate#594: offer % is on unexpected master %', c_offer, v_offer.cluster_id; + ELSE + -- submit_community_review stores a review of a master on its cheapest + -- crawled listing, which was this offer. Those reviews are about the + -- iPhone 16: keep them there, on the listing the RPC now picks. + IF EXISTS (SELECT 1 FROM rate.reviews WHERE product_id = c_offer AND origin = 'community') THEN + SELECT id INTO v_rehome + FROM rate.products + WHERE cluster_id = c_iphone_16 + AND origin = 'crawl' + AND id <> c_offer + ORDER BY price_current ASC NULLS LAST, created_at ASC + LIMIT 1; + IF v_rehome IS NULL THEN + RAISE EXCEPTION 'DOS/Rate#594: community reviews on offer % have no other iPhone 16 listing', c_offer; + END IF; + UPDATE rate.reviews + SET product_id = v_rehome + WHERE product_id = c_offer AND origin = 'community'; + GET DIAGNOSTICS v_rehomed = ROW_COUNT; + RAISE NOTICE 'DOS/Rate#594: kept % community review(s) on iPhone 16 listing %', v_rehomed, v_rehome; + END IF; + + UPDATE rate.products + SET cluster_id = v_target, + updated_at = now() + WHERE id = c_offer; + RAISE NOTICE 'DOS/Rate#594: moved offer % from % to % (status %)', + c_offer, c_iphone_16, v_target, v_target_status; + END IF; + + PERFORM rate.refresh_master_market_stats(c_iphone_16); + PERFORM rate.refresh_master_market_stats(v_target); + PERFORM rate.refresh_master_product_rating(c_iphone_16); + PERFORM rate.refresh_master_product_rating(v_target); +END $$; diff --git a/supabase/migrations/20261023090000_rate_review_vote_eligibility.sql b/supabase/migrations/20261023090000_rate_review_vote_eligibility.sql new file mode 100644 index 000000000..1a4faff04 --- /dev/null +++ b/supabase/migrations/20261023090000_rate_review_vote_eligibility.sql @@ -0,0 +1,82 @@ +-- DOS/Rate#613: enforce review-vote eligibility in the database. +-- +-- rate.review_votes grants INSERT/UPDATE to `authenticated`, and RLS only +-- checks voter_id = auth.uid(). The `rate` schema is exposed through +-- PostgREST (rate.vn writes votes with the user's JWT), so an account could +-- insert a vote directly and skip the Review Trust Model's voter rules: no +-- anonymous session, a confirmed email or phone, and an account at least 7 +-- days old. The Next.js route (apps/web/src/app/api/reviews/[id]/vote/route.ts, +-- evaluateVoterEligibility) checks a subset of them. +-- +-- The guard trigger now applies these rules to user callers: the `anon` and +-- `authenticated` roles, and SECURITY DEFINER functions they call (detected +-- through the JWT role claim). service_role (importer, admin tooling) and +-- migrations are not affected. DELETE (clearing one's own vote) stays +-- allowed. Idempotent. + +CREATE OR REPLACE FUNCTION rate.current_user_can_vote_reviews() +RETURNS boolean +LANGUAGE sql +STABLE +SECURITY DEFINER +SET search_path = '' +AS $$ + SELECT EXISTS ( + SELECT 1 + FROM auth.users u + WHERE u.id = (SELECT auth.uid()) + AND COALESCE(u.is_anonymous, false) = false + AND (u.email_confirmed_at IS NOT NULL OR u.phone_confirmed_at IS NOT NULL) + AND u.created_at <= now() - interval '7 days' + ); +$$; + +COMMENT ON FUNCTION rate.current_user_can_vote_reviews() IS + 'True when the calling user may vote on or report reviews: not anonymous, confirmed email or phone, account at least 7 days old (DOS/Rate#613). Reads only the caller''s own auth.users row.'; + +REVOKE ALL ON FUNCTION rate.current_user_can_vote_reviews() FROM PUBLIC, anon; +GRANT EXECUTE ON FUNCTION rate.current_user_can_vote_reviews() TO authenticated, service_role; + +CREATE OR REPLACE FUNCTION rate.review_votes_guard() +RETURNS trigger +LANGUAGE plpgsql +SET search_path = '' +AS $$ +DECLARE + v_recent INTEGER; +BEGIN + -- Review Trust Model voter rules (DOS/Rate#613). User callers are checked, + -- including through a SECURITY DEFINER function, where current_user is its + -- owner but the JWT role claim is still the user's. service_role and the + -- migration owner write on users' behalf and are not checked. PostgREST + -- always sets request.jwt.claims to a JSON object; a non-JSON value fails + -- closed with a cast error. + IF (current_user IN ('anon', 'authenticated') + OR COALESCE(NULLIF(current_setting('request.jwt.claims', true), '')::jsonb ->> 'role', '') + IN ('anon', 'authenticated')) + AND NOT rate.current_user_can_vote_reviews() THEN + RAISE EXCEPTION 'review_votes: account is not eligible to vote on reviews' + USING ERRCODE = '42501'; + END IF; + + IF TG_OP = 'UPDATE' THEN + IF NEW.review_id <> OLD.review_id OR NEW.voter_id <> OLD.voter_id THEN + RAISE EXCEPTION 'review_votes: review_id and voter_id are immutable'; + END IF; + NEW.updated_at := now(); + END IF; + + -- Enforce 60 vote/report actions per hour across both INSERT and UPDATE (Audit T3) + SELECT count(*) INTO v_recent + FROM rate.review_votes + WHERE voter_id = NEW.voter_id + AND updated_at > now() - interval '1 hour'; + + IF v_recent >= 60 THEN + RAISE EXCEPTION 'review_votes: rate limit exceeded (60 vote actions per hour)' + USING ERRCODE = '54000'; + END IF; + + RETURN NEW; +END; +$$; diff --git a/supabase/migrations/20261024060000_rate_master_min_price_plausible.sql b/supabase/migrations/20261024060000_rate_master_min_price_plausible.sql new file mode 100644 index 000000000..2b98db5fc --- /dev/null +++ b/supabase/migrations/20261024060000_rate_master_min_price_plausible.sql @@ -0,0 +1,85 @@ +-- Rate: a bait-price listing no longer sets a master's min_price (DOS/Rate#802) +-- +-- Purpose: a listing far below every other store's price for the same model +-- is almost never a real deal: it is a counterfeit, an accessory or a bait +-- listing. rate.vn showed the Samsung Galaxy Buds3 Pro "from 723,269 VND" on +-- catalogue cards, compare and the public API while FPT Shop, TGDD and +-- CellphoneS sold it for 3.03-3.69 M. The product page already ignores such +-- listings (DOS/Rate#797, apps/web/src/lib/offer-plausibility.ts); the stored +-- min_price did not. JOY approved this migration (2026-10-24). +-- +-- 1. rate.refresh_master_market_stats leaves implausibly low listings out of +-- min_price with the web rule: with at least 3 priced listings, a listing +-- below 40% of the lower median of the OTHER listings is implausible. +-- The lower median of the m - 1 others is position L = floor((m - 2) / 2) +-- of the others, which is position L of the sorted list before the listing +-- and L + 1 from it on. max_price and merchant_count still count every +-- priced in-stock listing. +-- The update is skipped when the stats are unchanged, so a refresh that +-- finds the same prices no longer bumps updated_at (the sitemap's lastmod). +-- 2. Backfill: every master's stats are refreshed once; thanks to (1) only +-- masters whose stats change are written. +-- +-- Body as in 20261020230000 otherwise (crawl, in-stock, priced listings). +-- CREATE OR REPLACE keeps the existing grants (service_role, rate_worker). +-- Idempotent. Touches the `rate` schema only. + +-- 1. Market stats without bait prices ------------------------------------------ + +CREATE OR REPLACE FUNCTION rate.refresh_master_market_stats(p_master_id UUID) +RETURNS void +LANGUAGE sql +SECURITY DEFINER +SET search_path = '' +AS $$ + WITH priced AS ( + SELECT + p.price_current AS price, + COALESCE(NULLIF(p.price_max, 0), p.price_current) AS price_top, + p.merchant_id, + (pg_catalog.row_number() OVER (ORDER BY p.price_current, p.id) - 1)::INTEGER AS k, + (pg_catalog.count(*) OVER ())::INTEGER AS m + FROM rate.products p + WHERE p.cluster_id = p_master_id + AND p.origin = 'crawl' + AND p.availability = 'in_stock' + AND p.price_current > 0 + ), + judged AS ( + SELECT + c.price, + c.price_top, + c.merchant_id, + (c.m >= 3 AND c.price < 0.4 * r.price) AS implausible + FROM priced c + LEFT JOIN priced r + ON r.k = CASE WHEN (c.m - 2) / 2 < c.k THEN (c.m - 2) / 2 ELSE (c.m - 2) / 2 + 1 END + ), + s AS ( + SELECT + MIN(j.price) FILTER (WHERE NOT j.implausible) AS min_price, + MAX(j.price_top) AS max_price, + COUNT(DISTINCT j.merchant_id)::INTEGER AS merchant_count + FROM judged j + ) + UPDATE rate.master_products m + SET min_price = s.min_price, + max_price = s.max_price, + merchant_count = s.merchant_count, + updated_at = now() + FROM s + WHERE m.id = p_master_id + AND (m.min_price, m.max_price, m.merchant_count) + IS DISTINCT FROM (s.min_price, s.max_price, s.merchant_count); +$$; + +-- 2. Backfill ------------------------------------------------------------------- + +DO $$ +DECLARE + v_id UUID; +BEGIN + FOR v_id IN SELECT m.id FROM rate.master_products m ORDER BY m.id LOOP + PERFORM rate.refresh_master_market_stats(v_id); + END LOOP; +END $$; From 20809d6f9e1e0448782653f88f0cf4c2001b05d6 Mon Sep 17 00:00:00 2001 From: JOY <5027251+JOY@users.noreply.github.com> Date: Wed, 28 Oct 2026 11:11:50 +0700 Subject: [PATCH 11/15] fix(web,importer): per-category spec templates for earbuds and watches (#1142) (#1163) * fix(web,importer): per-category spec templates for earbuds and watches (#1142) Earbuds rendered with the phone spec template, filled by the AI enricher with a 1 inch screen, 1GB RAM, 64GB ROM and microphones as cameras; a cellular Apple Watch showed 5G. - @repo/shared-data/rules: getCategorySpecTemplate / applyCategorySpecTemplate list the groups, fields, key_specs and flat columns each category has. Earbuds: audio, battery, connectivity, design, availability, regulatory. Smartwatches: no camera, no 5G. Laptops: no 5G. Phones and tablets keep all ten groups. - Product page: groups render in the category's order with renumbered headings and a matching group count; the memory and camera tiles and rows a category lacks are gone. The page, its peers, catalogue cards and home cards all read the product through the template. - Importer: the enricher result and every master insert/update go through the template, so new and re-enriched masters stop storing phone fields for earbuds and 5G for watches. The prompt says so too. - Tests: shared-data per-category templates, web headings and wiring, EntityMatcher writes, and a hermetic E2E with a phone-shaped seeded bud. * Merge remote-tracking branch 'origin/dev' into claude/cranky-williams-fe031c # Conflicts: # apps/web/src/app/[locale]/smartphones/page.tsx * fix(web,importer): review round 1 for category spec templates (#1142) - Watches: hiding 5G is display-only. The importer keeps a stored 5G flag and 5G bands (a few watches carry RedCap 5G) and drops only the camera. The bands row stays on watches as "4G bands". - Earbuds keep the hardware group with the chipset row only, so the audio chip (H2, BES2700) survives writes and the chip tile has a fallback. - Laptops stay on the full template (some ship with 5G modems). - Re-enrichment scopes the write by the stored category only, never by a guess from the title. - Watches keep key_specs.ram; the generic's narrowing is documented. * Merge remote-tracking branch 'origin/dev' into claude/cranky-williams-fe031c # Conflicts: # apps/web/package.json # apps/web/src/app/[locale]/page.tsx * Merge remote-tracking branch 'origin/dev' into claude/cranky-williams-fe031c # Conflicts: # apps/web/package.json # apps/web/src/app/[locale]/smartphones/[slug]/page.tsx # packages/shared-data/src/__tests__/shared-data.test.ts # packages/shared-data/src/rules/index.ts Co-Authored-By: Claude Opus 5.5 --- .../shopee/__tests__/entity-matcher.test.ts | 135 ++ apps/importer/src/shopee/ai-spec-enricher.ts | 26 +- apps/importer/src/shopee/entity-matcher.ts | 132 +- apps/web/e2e/category-spec-template.spec.ts | 61 + apps/web/e2e/seed.sql | 16 + apps/web/locales/cs.json | 2 +- apps/web/locales/en.json | 2 +- apps/web/locales/vi.json | 2 +- apps/web/package.json | 2 +- apps/web/src/app/[locale]/page.tsx | 14 +- .../app/[locale]/smartphones/[slug]/page.tsx | 1197 +++++++++-------- .../web/src/app/[locale]/smartphones/page.tsx | 8 +- .../src/lib/__tests__/spec-template.test.ts | 120 ++ apps/web/src/lib/spec-localizer.ts | 30 + .../src/__tests__/shared-data.test.ts | 145 ++ packages/shared-data/src/rules/index.ts | 1 + .../shared-data/src/rules/spec-template.ts | 245 ++++ 17 files changed, 1509 insertions(+), 629 deletions(-) create mode 100644 apps/web/e2e/category-spec-template.spec.ts create mode 100644 apps/web/src/lib/__tests__/spec-template.test.ts create mode 100644 packages/shared-data/src/rules/spec-template.ts diff --git a/apps/importer/src/shopee/__tests__/entity-matcher.test.ts b/apps/importer/src/shopee/__tests__/entity-matcher.test.ts index 4521e8800..f2c79b54f 100644 --- a/apps/importer/src/shopee/__tests__/entity-matcher.test.ts +++ b/apps/importer/src/shopee/__tests__/entity-matcher.test.ts @@ -675,6 +675,141 @@ async function runEntityMatcherSuite() { assert.equal(ctrlEntry.platform, 'shopee'); assert.equal(ctrlEntry.event, 'evt name'); console.log(' ✅ [9/9] DOS/Rate#876 EntityMatcher & Logger control-char/boolean bounds passed'); + + // 10. DOS/Rate#1142: masters keep only the spec fields their category has. + const enrichByCategory = async ( + row: Record, + aiResult: Record + ): Promise | undefined> => { + let updated: Record | undefined; + const db = { + from() { + return { + select: () => ({ + eq: () => ({ maybeSingle: async () => ({ data: row, error: null }) }), + }), + update(payload: Record) { + updated = payload; + return { eq: async () => ({ error: null }) }; + }, + }; + }, + } as unknown as RateSupabaseClient; + const enricher = { fetchSpecsFromAi: async () => aiResult } as unknown as AiSpecEnricher; + assert.equal( + await new EntityMatcher(db, enricher).enrichMasterProductById(String(row.id)), + true + ); + return updated; + }; + const phoneShapedAi = { + ram_gb: 1, + storage_gb: 64, + screen_size_inch: 1, + battery_mah: 515, + has_5g: true, + specifications: { + display: { size_inch: 1, refresh_rate_hz: 60, ppi: 300 }, + hardware: { ram_gb: 1, storage_gb: 64, chipset: 'BES2700' }, + camera: { main_camera: '3 High-SNR Microphones' }, + cellular: { has_5g: true, bands_5g: 'n78', bands_4g: 'LTE' }, + battery: { capacity_mah: 515 }, + multimedia: { audio_features: 'ANC, LDAC' }, + connectivity: { bluetooth: '5.4', wlan: 'Auto Switch' }, + }, + key_specs: { screen: '1"', camera: 'Mic', ram: '1GB', storage: '64GB', battery: '515 mAh' }, + }; + const budsRow = await enrichByCategory( + { + id: 'buds-1142', + brand: 'Samsung', + model: 'Galaxy Buds3 Pro', + name: 'Samsung Galaxy Buds3 Pro', + ram_gb: 1, + storage_gb: 64, + screen_size_inch: 1, + has_5g: false, + specifications: { category_slug: 'earbuds', display: { size_inch: 1 } }, + key_specs: { ram: '1GB' }, + }, + phoneShapedAi + ); + assert.equal(budsRow?.ram_gb, null, 'earbuds keep no RAM, even one stored before'); + assert.equal(budsRow?.storage_gb, null); + assert.equal(budsRow?.screen_size_inch, null); + assert.equal(budsRow?.has_5g, false); + assert.equal(budsRow?.battery_mah, 515); + const budsSpecs = budsRow?.specifications as Record>; + assert.equal(budsSpecs.display, undefined); + assert.deepEqual(budsSpecs.hardware, { chipset: 'BES2700' }, 'the audio chip stays'); + assert.equal(budsSpecs.camera, undefined); + assert.equal(budsSpecs.cellular, undefined); + assert.equal(budsSpecs.connectivity?.wlan, undefined); + assert.equal(budsSpecs.connectivity?.bluetooth, '5.4'); + assert.equal(budsSpecs.multimedia?.audio_features, 'ANC, LDAC'); + assert.equal(budsSpecs.category_slug, 'earbuds'); + assert.deepEqual(budsRow?.key_specs, { battery: '515 mAh' }); + + const watchRow = await enrichByCategory( + { + id: 'watch-1142', + brand: 'Apple', + model: 'Watch Ultra 2', + name: 'Apple Watch Ultra 2 64GB', + storage_gb: 64, + has_5g: true, + specifications: { category_slug: 'smartwatches' }, + key_specs: {}, + }, + phoneShapedAi + ); + // A watch keeps its stored 5G facts (a few models have RedCap 5G); only the + // page hides them, and the camera it cannot have is dropped. + assert.equal(watchRow?.has_5g, true); + assert.equal(watchRow?.storage_gb, 64); + const watchSpecs = watchRow?.specifications as Record>; + assert.equal(watchSpecs.camera, undefined); + assert.equal(watchSpecs.cellular?.has_5g, true); + assert.equal(watchSpecs.cellular?.bands_5g, 'n78'); + assert.equal(watchSpecs.cellular?.bands_4g, 'LTE'); + assert.equal(watchSpecs.display?.size_inch, 1); + + // A category guessed from the title does not scope the write: a master + // without a stored category keeps its RAM even when its name says "tai nghe". + const guessedRow = await enrichByCategory( + { + id: 'guess-1142', + brand: 'Samsung', + model: 'Galaxy S25', + name: 'Samsung Galaxy S25 tặng tai nghe Galaxy Buds', + ram_gb: 12, + storage_gb: 256, + has_5g: true, + specifications: {}, + key_specs: {}, + }, + phoneShapedAi + ); + assert.equal(guessedRow?.ram_gb, 12); + assert.equal(guessedRow?.storage_gb, 256); + assert.equal(guessedRow?.has_5g, true); + + const budsInsertDb = createMockSupabase(); + await new EntityMatcher(budsInsertDb.client, offlineEnricher).resolveOrCreateMasterProduct({ + ...s24New, + model_key: 'samsung:galaxy-buds3-pro', + category_slug: 'earbuds', + ram_gb: 1, + storage_gb: 64, + screen_size_inch: 1, + has_5g: true, + }); + const budsInsert = budsInsertDb.capturedUpserts[0]?.payload; + assert.equal(budsInsert?.ram_gb, null); + assert.equal(budsInsert?.storage_gb, null); + assert.equal(budsInsert?.screen_size_inch, null); + assert.equal(budsInsert?.has_5g, false); + console.log(' ✅ [10/10] DOS/Rate#1142 category spec templates on master writes passed'); console.log('🎉 All EntityMatcher & Open-Core Audit C6/C8/T15/Low tests passed!'); } diff --git a/apps/importer/src/shopee/ai-spec-enricher.ts b/apps/importer/src/shopee/ai-spec-enricher.ts index ed053cb91..a9a7efd59 100644 --- a/apps/importer/src/shopee/ai-spec-enricher.ts +++ b/apps/importer/src/shopee/ai-spec-enricher.ts @@ -15,6 +15,7 @@ import { type ProductSpecifications, type KeySpecs, } from '@repo/shared-data'; +import { applyCategorySpecTemplate } from '@repo/shared-data/rules'; import type { NormalizedProductCandidate } from './product-normalizer.js'; import { computeRetryDelayMs, createImporterLogger, sanitizeAiGeneratedText } from './logger.js'; @@ -619,6 +620,7 @@ RULES: 3. Boolean fields (has_5g, nfc, volte, vowifi, headphone_jack_35mm) MUST be JSON booleans (true or false). 4. Separate cameras clearly following PhoneArena structure: main_camera, second_camera (ultrawide), third_camera (telephoto/macro), fourth_camera (periscope if present), front_camera. 5. Keep descriptive text concise, accurate, and readable for Vietnamese & international users. +6. Omit groups and fields the device category does not have. Earbuds have no display, RAM, storage, camera or cellular network; describe their drivers, codecs, ANC and battery instead. Smartwatches have no camera, and a cellular watch is LTE unless the model really supports 5G. REQUIRED JSON SCHEMA: { @@ -977,15 +979,21 @@ REQUIRED JSON SCHEMA: const keySpecsParsed = KeySpecsSchema.safeParse(keySpecsCandidate); const keySpecs: KeySpecs = keySpecsParsed.success ? keySpecsParsed.data : {}; - const result: AiEnrichmentResponse = { - ram_gb: ramGb, - storage_gb: storageGb, - screen_size_inch: screenSizeInch, - battery_mah: batteryMah, - has_5g: has5g, - specifications, - key_specs: keySpecs, - }; + // The schema is phone-shaped; drop what the category does not have + // (earbuds: no screen, RAM or camera; watches: no 5G) (DOS/Rate#1142). + const result: AiEnrichmentResponse = applyCategorySpecTemplate( + catKey, + { + ram_gb: ramGb, + storage_gb: storageGb, + screen_size_inch: screenSizeInch, + battery_mah: batteryMah, + has_5g: has5g, + specifications, + key_specs: keySpecs, + }, + { forStorage: true } + ); this.setCacheEntry(cacheKey, result); logger.info( diff --git a/apps/importer/src/shopee/entity-matcher.ts b/apps/importer/src/shopee/entity-matcher.ts index e52887048..b0b6573a8 100644 --- a/apps/importer/src/shopee/entity-matcher.ts +++ b/apps/importer/src/shopee/entity-matcher.ts @@ -4,6 +4,7 @@ import { type CanonicalCategorySlug, type NormalizedProductCandidate, } from './product-normalizer.js'; +import { applyCategorySpecTemplate } from '@repo/shared-data/rules'; import { AiSpecEnricher, mergeProductSpecifications } from './ai-spec-enricher.js'; import { mergeKeySpecs } from './jobs/backfill-specs.js'; import { createImporterLogger } from './logger.js'; @@ -298,54 +299,60 @@ export class EntityMatcher { .replace(/[^a-z0-9-]+/gi, '-') .toLowerCase() .slice(0, 300); - const baseInsertRow = { - category_id: safeCategoryId || null, - brand: - String(candidate.brand ?? '') - .replace(/\p{Cc}+/gu, ' ') - .trim() - .slice(0, 100) || 'Unknown', - model: - String(candidate.model ?? '') - .replace(/\p{Cc}+/gu, ' ') - .trim() - .slice(0, 200) || 'Unknown', - variant_name: candidate.variant_name - ? String(candidate.variant_name) + // Only the spec fields the category has: no screen or RAM on earbuds, no + // 5G on a watch (DOS/Rate#1142). + const baseInsertRow = applyCategorySpecTemplate( + candidate.category_slug, + { + category_id: safeCategoryId || null, + brand: + String(candidate.brand ?? '') + .replace(/\p{Cc}+/gu, ' ') + .trim() + .slice(0, 100) || 'Unknown', + model: + String(candidate.model ?? '') .replace(/\p{Cc}+/gu, ' ') .trim() - .slice(0, 200) || null - : null, - model_key: - String(candidate.model_key ?? '') - .replace(/\p{Cc}+/gu, '') - .trim() - .slice(0, 200) || safeModelKey, - name: - String(candidate.name ?? '') - .replace(/\p{Cc}+/gu, ' ') - .trim() - .slice(0, 300) || safeModelKey, - slug: safeSlug, - description: - typeof candidate.description === 'string' - ? candidate.description + .slice(0, 200) || 'Unknown', + variant_name: candidate.variant_name + ? String(candidate.variant_name) .replace(/\p{Cc}+/gu, ' ') .trim() - .slice(0, 10_000) - : '', - ram_gb: toBoundedPositiveInt(candidate.ram_gb, MAX_RAM_GB), - storage_gb: toBoundedPositiveInt(candidate.storage_gb, MAX_STORAGE_GB), - screen_size_inch: toBoundedPositiveNumber(candidate.screen_size_inch, MAX_SCREEN_SIZE_INCH), - battery_mah: toBoundedPositiveInt(candidate.battery_mah, MAX_BATTERY_MAH), - has_5g: isStrictBoolean(candidate.has_5g), - specifications: candidate.specifications, - key_specs: candidate.key_specs, - images: safeImages, - thumbnail: safeImages[0] || null, - colors: safeColors, - status: seedStatus, - }; + .slice(0, 200) || null + : null, + model_key: + String(candidate.model_key ?? '') + .replace(/\p{Cc}+/gu, '') + .trim() + .slice(0, 200) || safeModelKey, + name: + String(candidate.name ?? '') + .replace(/\p{Cc}+/gu, ' ') + .trim() + .slice(0, 300) || safeModelKey, + slug: safeSlug, + description: + typeof candidate.description === 'string' + ? candidate.description + .replace(/\p{Cc}+/gu, ' ') + .trim() + .slice(0, 10_000) + : '', + ram_gb: toBoundedPositiveInt(candidate.ram_gb, MAX_RAM_GB), + storage_gb: toBoundedPositiveInt(candidate.storage_gb, MAX_STORAGE_GB), + screen_size_inch: toBoundedPositiveNumber(candidate.screen_size_inch, MAX_SCREEN_SIZE_INCH), + battery_mah: toBoundedPositiveInt(candidate.battery_mah, MAX_BATTERY_MAH), + has_5g: isStrictBoolean(candidate.has_5g), + specifications: candidate.specifications, + key_specs: candidate.key_specs, + images: safeImages, + thumbnail: safeImages[0] || null, + colors: safeColors, + status: seedStatus, + }, + { forStorage: true } + ); let { data: createdRows, error: createErr } = await this.supabase .from('master_products') @@ -525,19 +532,30 @@ export class EntityMatcher { const { error: updateErr } = await this.supabase .from('master_products') - .update({ - ram_gb: existingRamGb ?? toBoundedPositiveInt(aiResult.ram_gb, MAX_RAM_GB), - storage_gb: existingStorageGb ?? toBoundedPositiveInt(aiResult.storage_gb, MAX_STORAGE_GB), - screen_size_inch: - existingScreenInch ?? - toBoundedPositiveNumber(aiResult.screen_size_inch, MAX_SCREEN_SIZE_INCH), - battery_mah: - existingBatteryMah ?? toBoundedPositiveInt(aiResult.battery_mah, MAX_BATTERY_MAH), - has_5g: isStrictBoolean(row.has_5g) ? true : isStrictBoolean(aiResult.has_5g ?? row.has_5g), - specifications: mergedSpecifications, - key_specs: mergedKeySpecs, - updated_at: new Date().toISOString(), - }) + .update( + // Only a stored category scopes the write: a guess from the title + // could strip a phone's real RAM. + applyCategorySpecTemplate( + existingCategorySlug, + { + ram_gb: existingRamGb ?? toBoundedPositiveInt(aiResult.ram_gb, MAX_RAM_GB), + storage_gb: + existingStorageGb ?? toBoundedPositiveInt(aiResult.storage_gb, MAX_STORAGE_GB), + screen_size_inch: + existingScreenInch ?? + toBoundedPositiveNumber(aiResult.screen_size_inch, MAX_SCREEN_SIZE_INCH), + battery_mah: + existingBatteryMah ?? toBoundedPositiveInt(aiResult.battery_mah, MAX_BATTERY_MAH), + has_5g: isStrictBoolean(row.has_5g) + ? true + : isStrictBoolean(aiResult.has_5g ?? row.has_5g), + specifications: mergedSpecifications, + key_specs: mergedKeySpecs, + updated_at: new Date().toISOString(), + }, + { forStorage: true } + ) + ) .eq('id', safeMasterId); if (updateErr) { diff --git a/apps/web/e2e/category-spec-template.spec.ts b/apps/web/e2e/category-spec-template.spec.ts new file mode 100644 index 000000000..bf811d4ea --- /dev/null +++ b/apps/web/e2e/category-spec-template.spec.ts @@ -0,0 +1,61 @@ +import { expect, test } from '@playwright/test'; + +// Each category shows its own spec template: an earbud stored with +// phone-shaped specs shows no screen, RAM, ROM or camera, and a watch never +// shows 5G (DOS/Rate#1142). The seeded bud carries every one of those values. +const BUD = '/earbuds/e2e-bud-002'; + +test('earbud page shows audio specs and no phone fields', async ({ page }) => { + await page.setViewportSize({ width: 1280, height: 900 }); + await page.goto(BUD); + const specs = page.locator('#specs-section'); + const headings = specs.locator('h3'); + await expect(headings.first()).toHaveText(/^1\. Âm thanh/); + await expect(headings).toHaveCount(7); + await expect(specs).toContainText('E2E 10.5mm driver'); + await expect(specs).toContainText('E2E ANC'); + for (const text of [ + 'Màn hình', + 'Bộ nhớ RAM', + 'Bộ nhớ trong', + 'Camera', + '60 Hz', + '300 ppi', + 'E2E Mic Array', + 'E2E Audio Engine', + '5G', + ]) { + await expect(specs).not.toContainText(text); + } + const main = page.locator('main'); + await expect(main).not.toContainText('1GB'); + await expect(main).not.toContainText('64GB'); + await expect(main).not.toContainText('1 inch'); + await expect(main).not.toContainText('E2E Mic Array'); +}); + +test('earbud card carries no RAM or storage chip', async ({ page }) => { + await page.goto('/earbuds?q=E2E%20Bud%20002'); + const card = page + .locator('a[href="/earbuds/e2e-bud-002"]') + .first() + .locator('xpath=ancestor::article[1]'); + await expect(card).toBeVisible(); + await expect(card).not.toContainText('GB'); + await expect(card).not.toContainText('5G'); +}); + +test('a watch page never shows 5G', async ({ page }) => { + // The seeded phone is 5G; read through the smartwatch template, the flag + // and the 5G group label are gone while the rest of the page still renders. + await page.goto('/smartwatches/iphone-16-pro-max-256gb'); + const meta = page.locator('.rate-pdv-meta'); + await expect(meta).toContainText('Apple'); + await expect(meta).not.toContainText('5G'); + const specs = page.locator('#specs-section'); + await expect(specs).toContainText('Mạng Di động (Cellular)'); + // The bands row stays, as 4G only. + await expect(specs).toContainText('Băng tần 4G'); + await expect(specs).not.toContainText('5G'); + await expect(specs).not.toContainText('Camera'); +}); diff --git a/apps/web/e2e/seed.sql b/apps/web/e2e/seed.sql index f0f196018..fb51c50ca 100644 --- a/apps/web/e2e/seed.sql +++ b/apps/web/e2e/seed.sql @@ -172,6 +172,22 @@ FROM generate_series(1, 201) AS g; UPDATE rate.master_products SET user_rating_weighted = 4 WHERE slug LIKE 'e2e-bud-%'; +-- One bud stored with phone-shaped specs, as the AI enricher wrote them for +-- real earbuds: a 1 inch screen, 1GB RAM, 64GB ROM, microphones as cameras and +-- a 5G flag. Its page and card must show none of them (DOS/Rate#1142). +UPDATE rate.master_products +SET ram_gb = 1, storage_gb = 64, screen_size_inch = 1, has_5g = true, + specifications = '{"category_slug": "earbuds", + "display": {"size_inch": 1, "refresh_rate_hz": 60, "ppi": 300}, + "hardware": {"ram_gb": 1, "storage_gb": 64, "gpu": "E2E Audio Engine"}, + "camera": {"main_camera": "E2E Mic Array"}, + "cellular": {"has_5g": true}, + "battery": {"capacity_mah": 515}, + "multimedia": {"loudspeaker": "E2E 10.5mm driver", "audio_features": "E2E ANC"}, + "connectivity": {"bluetooth": "5.4"}}', + key_specs = '{"screen": "1 inch", "camera": "E2E Mic Array", "ram": "1GB", "storage": "64GB", "battery": "515 mAh"}' +WHERE slug = 'e2e-bud-002'; + -- A phone whose six 5-star reviews are mostly star-only, one of them a -- sponsored post: the product page shows the star-distribution warning and a -- disclosure badge, which must follow the active locale (DOS/Rate#566). Its diff --git a/apps/web/locales/cs.json b/apps/web/locales/cs.json index bb8250481..2da9e16dc 100644 --- a/apps/web/locales/cs.json +++ b/apps/web/locales/cs.json @@ -995,7 +995,7 @@ "readAndSubmitReviewsBtn": "Číst a psát recenze ({count})", "tenSpecGroupsBtn": "Parametry", "headToHeadCompareBtn": "Přímé porovnání", - "quickSpecDriver": "Měnič / Displej", + "quickSpecDriver": "Měnič", "quickSpecScreen": "Displej", "quickSpecChipset": "Procesor (Čipset)", "quickSpecAudioAnc": "Zvuk / ANC", diff --git a/apps/web/locales/en.json b/apps/web/locales/en.json index b85f6ecb6..6cf633002 100644 --- a/apps/web/locales/en.json +++ b/apps/web/locales/en.json @@ -995,7 +995,7 @@ "readAndSubmitReviewsBtn": "Read and write reviews ({count})", "tenSpecGroupsBtn": "Specifications", "headToHeadCompareBtn": "Compare head to head", - "quickSpecDriver": "Driver / Display", + "quickSpecDriver": "Driver", "quickSpecScreen": "Display", "quickSpecChipset": "Processor (Chipset)", "quickSpecAudioAnc": "Audio / ANC", diff --git a/apps/web/locales/vi.json b/apps/web/locales/vi.json index 3cbc44795..4893124ca 100644 --- a/apps/web/locales/vi.json +++ b/apps/web/locales/vi.json @@ -995,7 +995,7 @@ "readAndSubmitReviewsBtn": "Đọc và viết đánh giá ({count})", "tenSpecGroupsBtn": "Thông số kỹ thuật", "headToHeadCompareBtn": "So sánh trực tiếp", - "quickSpecDriver": "Màng loa / Hiển thị", + "quickSpecDriver": "Màng loa", "quickSpecScreen": "Màn hình", "quickSpecChipset": "Vi xử lý (Chipset)", "quickSpecAudioAnc": "Âm thanh / ANC", diff --git a/apps/web/package.json b/apps/web/package.json index f7612fbab..b0ff8e7c4 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -8,7 +8,7 @@ "lint": "eslint . --max-warnings 0", "preview": "next build && next start", "start": "next start", - "test": "pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/server/rate/__tests__/core-rate-architecture.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/app/api/v1/rate/__tests__/write-paths.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/logger.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/review-display.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/concurrency.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/catalog-listing.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/discount-verdict-copy.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/product-detail-copy.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/product-competitors.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/analyzer-copy.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/sold-count.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/content-lang.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/image-url.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/client-messages.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/seo.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/offer-plausibility.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/product-market-stats.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/sitemap-lastmod.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/leaderboard-badge-copy.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/focus-trap.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/display-truth.test.ts", + "test": "pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/server/rate/__tests__/core-rate-architecture.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/app/api/v1/rate/__tests__/write-paths.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/logger.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/review-display.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/concurrency.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/catalog-listing.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/discount-verdict-copy.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/product-detail-copy.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/product-competitors.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/analyzer-copy.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/sold-count.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/content-lang.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/image-url.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/client-messages.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/seo.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/offer-plausibility.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/product-market-stats.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/sitemap-lastmod.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/leaderboard-badge-copy.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/focus-trap.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/display-truth.test.ts && pnpm --filter @repo/crawlers exec tsx --tsconfig ../web/tsconfig.test.json ../web/src/lib/__tests__/spec-template.test.ts", "typecheck": "tsc --noEmit" }, "browserslist": [ diff --git a/apps/web/src/app/[locale]/page.tsx b/apps/web/src/app/[locale]/page.tsx index 3df3be7e5..26f429d7b 100644 --- a/apps/web/src/app/[locale]/page.tsx +++ b/apps/web/src/app/[locale]/page.tsx @@ -53,7 +53,11 @@ import ContentText from '@/components/elementary/ContentText'; import { contentLang } from '@/lib/content-lang'; import ClientMessages from '@/components/providers/ClientMessages'; import { siteJsonLd } from '@/lib/seo'; -import { productImageUrl } from '@/lib/rate-domain-core'; +import { + getMasterProductCategorySlug, + productImageUrl, +} from '@/lib/rate-domain-core'; +import { applyCategorySpecTemplate } from '@repo/shared-data/rules'; import { merchantRiskTone } from '@/lib/merchant-risk-tone'; // Cached after the first request, refreshed every 5 minutes or when the @@ -466,7 +470,13 @@ export default async function Home({
- {masterProducts.slice(0, 6).map((item) => { + {masterProducts.slice(0, 6).map((storedItem) => { + // An earbud card carries no RAM, storage or screen chip + // (DOS/Rate#1142). + const item = applyCategorySpecTemplate( + getMasterProductCategorySlug(storedItem, catSlugById), + storedItem + ); const thumb = productImageUrl(item); const keySpecs = item.key_specs || {}; const productHref = getMasterProductHref(item, catSlugById); diff --git a/apps/web/src/app/[locale]/smartphones/[slug]/page.tsx b/apps/web/src/app/[locale]/smartphones/[slug]/page.tsx index fa9df8917..e12b4ecb4 100644 --- a/apps/web/src/app/[locale]/smartphones/[slug]/page.tsx +++ b/apps/web/src/app/[locale]/smartphones/[slug]/page.tsx @@ -1,4 +1,5 @@ import type { Metadata } from 'next'; +import { Fragment, type ReactNode } from 'react'; import { getTranslations, setRequestLocale } from 'next-intl/server'; import { Link } from '@/lib/navigation'; import { notFound } from 'next/navigation'; @@ -54,7 +55,12 @@ import PageShell from '../../components/page-shell'; import type { KeySpecs, ProductSpecifications } from '@repo/shared-data'; import { normalizeRateLocale } from '@/lib/rate-i18n'; -import { getSpecUiDictionary, localizeSpecValue } from '@/lib/spec-localizer'; +import { + getSpecUiDictionary, + localizeSpecValue, + specGroupHeading, + specSectionBadge, +} from '@/lib/spec-localizer'; import { contentLang } from '@/lib/content-lang'; import ContentText from '@/components/elementary/ContentText'; import { @@ -67,6 +73,12 @@ import ProductValueCalculator from '@/components/leaderboard/ProductValueCalcula import ProductOffersExplorer from '@/components/leaderboard/ProductOffersExplorer'; import ProductSpecsExportToolbar from '@/components/leaderboard/ProductSpecsExportToolbar'; import ClientMessages from '@/components/providers/ClientMessages'; +import { + applyCategorySpecTemplate, + getCategorySpecTemplate, + specFieldApplies, + type SpecGroupKey, +} from '@repo/shared-data/rules'; import { isOfferUnavailable, productMarketStats, @@ -161,17 +173,21 @@ export async function ProductDetailView({ }) { const { locale, slug } = await params; setRequestLocale(locale); - const [t, tNav, product] = await Promise.all([ + const [t, tNav, storedProduct] = await Promise.all([ getTranslations({ locale, namespace: 'productDetail' }), getTranslations({ locale, namespace: 'rate.nav' }), getCachedMasterProductBySlug(slug), ]); - if (!product) { + if (!storedProduct) { notFound(); } const categorySlug = categoryBasePath.replace(/^\//, '') || 'smartphones'; + // Each category shows only the spec groups and fields it has: earbuds have + // no screen, RAM or camera, watches no 5G (DOS/Rate#1142). + const specTemplate = getCategorySpecTemplate(categorySlug); + const product = applyCategorySpecTemplate(categorySlug, storedProduct); const localizedCategoryLabel = categorySlug === 'smartphones' || categorySlug === 'laptops' || @@ -180,8 +196,8 @@ export async function ProductDetailView({ categorySlug === 'earbuds' ? tNav(categorySlug) : categoryLabel; - const [offers, reviews, categoryPeers, categoryDealRadar] = await Promise.all( - [ + const [offers, reviews, storedCategoryPeers, categoryDealRadar] = + await Promise.all([ getCachedMasterProductOffers(product.id), getCachedMasterProductReviews(product.id), // No fallbacks: this page is cached, so an empty fallback would be @@ -192,7 +208,9 @@ export async function ProductDetailView({ categorySlug: categorySlug as CanonicalCategorySlug, limit: 50, }), - ] + ]); + const categoryPeers = storedCategoryPeers.map((peer) => + applyCategorySpecTemplate(categorySlug, peer) ); const [reviewSummary, priceHistory] = await Promise.all([ getCachedMasterProductReviewSummary(product.id, reviews), @@ -767,46 +785,51 @@ export async function ProductDetailView({
-
-
-
- {categorySlug === 'earbuds' && - !keySpecs?.camera && - !specs?.camera?.main_camera - ? t('quickSpecAudioAnc') - : t('quickSpecMainCamera')} -
-
- + {(specTemplate.groups.includes('camera') || + categorySlug === 'earbuds') && ( +
+
+
+ {categorySlug === 'earbuds' && + !keySpecs?.camera && + !specs?.camera?.main_camera + ? t('quickSpecAudioAnc') + : t('quickSpecMainCamera')} +
+
+ +
-
-
-
-
- {t('quickSpecMemory')} -
-
- {(() => { - const ram = product.ram_gb ?? specs?.hardware?.ram_gb; - const rom = - product.storage_gb ?? specs?.hardware?.storage_gb; - if (ram && rom) return `${ram}GB / ${rom}GB`; - if (ram) return `${ram}GB RAM`; - if (rom) return `${rom}GB`; - return keySpecs?.ram || keySpecs?.storage || '-'; - })()} + )} + {(specTemplate.ram || specTemplate.storage) && ( +
+
+
+ {t('quickSpecMemory')} +
+
+ {(() => { + const ram = product.ram_gb ?? specs?.hardware?.ram_gb; + const rom = + product.storage_gb ?? specs?.hardware?.storage_gb; + if (ram && rom) return `${ram}GB / ${rom}GB`; + if (ram) return `${ram}GB RAM`; + if (rom) return `${rom}GB`; + return keySpecs?.ram || keySpecs?.storage || '-'; + })()} +
-
+ )}
@@ -937,7 +960,7 @@ export async function ProductDetailView({ />
- {/* SECTION #2: 10 Field Groups Specifications (Full 10/10 Canonical Schema per DESIGN.md v3.0) */} + {/* SECTION #2: Spec groups, per category template (DOS/Rate#1142) */} {(() => { const specUi = getSpecUiDictionary(locale); const loc = (v: string | number | boolean | null | undefined) => ( @@ -946,6 +969,577 @@ export async function ProductDetailView({ locale={locale} /> ); + const groupHeading = (group: SpecGroupKey) => + specGroupHeading( + specUi, + group, + specTemplate.groups.indexOf(group) + 1, + specTemplate.has5g + ); + const shows = (group: SpecGroupKey, field: string) => + specFieldApplies(specTemplate, group, field); + const groupNodes: Record = { + display: ( +
+
+

+ {groupHeading('display')} +

+
+
+ {specUi.fields.screenSize} +
+
+ {specs?.display?.size_inch + ? `${specs.display.size_inch} inch` + : product.screen_size_inch + ? `${product.screen_size_inch} inch` + : '-'} +
+
+ {specUi.fields.panelType} +
+
+ {loc(specs?.display?.type || keySpecs?.screen)} +
+
+ {specUi.fields.resolution} +
+
+ {loc(specs?.display?.resolution)} +
+
+ {specUi.fields.refreshRate} +
+
+ {specs?.display?.refresh_rate_hz + ? `${specs.display.refresh_rate_hz} Hz` + : '-'} +
+
{specUi.fields.ppi}
+
+ {specs?.display?.ppi ? `${specs.display.ppi} ppi` : '-'} +
+
+ {specUi.fields.protection} +
+
+ {loc(specs?.display?.protection)} +
+
+ {specUi.fields.displayFeatures} +
+
+ {loc(specs?.display?.features)} +
+
+
+
+ ), + hardware: ( +
+
+

+ {groupHeading('hardware')} +

+
+
+ {specUi.fields.chipset} +
+
+ {loc(specs?.hardware?.chipset || keySpecs?.chip)} +
+ {shows('hardware', 'cpu') && ( + <> +
+ {specUi.fields.cpu} +
+
+ {loc(specs?.hardware?.cpu)} +
+ + )} + {shows('hardware', 'gpu') && ( + <> +
+ {specUi.fields.gpu} +
+
+ {loc(specs?.hardware?.gpu)} +
+ + )} + {shows('hardware', 'ram_gb') && ( + <> +
+ {specUi.fields.ram} +
+
+ {specs?.hardware?.ram_gb + ? `${specs.hardware.ram_gb} GB` + : product.ram_gb + ? `${product.ram_gb} GB` + : '-'} +
+ + )} + {shows('hardware', 'storage_gb') && ( + <> +
+ {specUi.fields.storage} +
+
+ {specs?.hardware?.storage_gb + ? `${specs.hardware.storage_gb} GB` + : product.storage_gb + ? `${product.storage_gb} GB` + : '-'} +
+ + )} + {shows('hardware', 'storage_expansion') && ( + <> +
+ {specUi.fields.storageExpansion} +
+
+ {loc(specs?.hardware?.storage_expansion)} +
+ + )} + {shows('hardware', 'os') && ( + <> +
+ {specUi.fields.os} +
+
+ {loc(specs?.hardware?.os)} +
+ + )} +
+
+
+ ), + camera: ( +
+
+

+ {groupHeading('camera')} +

+
+
+ {specUi.fields.rearSetup} +
+
+ {loc(specs?.camera?.rear_setup)} +
+
+ {specUi.fields.mainCamera} +
+
+ {loc(specs?.camera?.main_camera || keySpecs?.camera)} +
+
+ {specUi.fields.secondCamera} +
+
+ {loc(specs?.camera?.second_camera)} +
+
+ {specUi.fields.thirdCamera} +
+
+ {loc(specs?.camera?.third_camera)} +
+ {specs?.camera?.fourth_camera && ( + <> +
+ {specUi.fields.fourthCamera} +
+
+ {loc(specs.camera.fourth_camera)} +
+ + )} +
+ {specUi.fields.frontCamera} +
+
+ {loc(specs?.camera?.front_camera)} +
+
+ {specUi.fields.videoAndFlash} +
+
+ {loc( + [specs?.camera?.video_recording, specs?.camera?.flash] + .filter(Boolean) + .join(' | ') + )} +
+
+
+
+ ), + battery: ( +
+
+

+ {groupHeading('battery')} +

+
+
+ {specUi.fields.batteryCapacity} +
+
+ {specs?.battery?.capacity_mah + ? `${specs.battery.capacity_mah} mAh` + : product.battery_mah + ? `${product.battery_mah} mAh` + : loc(keySpecs?.battery)} +
+
+ {specUi.fields.batteryType} +
+
+ {loc(specs?.battery?.type)} +
+
+ {specUi.fields.chargingTech} +
+
+ {loc(specs?.battery?.charging)} +
+
+ {specUi.fields.fastCharging} +
+
+ {specs?.battery?.fast_charging_w + ? `${specs.battery.fast_charging_w} W` + : '-'} +
+
+ {specUi.fields.reverseCharging} +
+
+ {typeof specs?.battery?.reverse_charging === 'string' + ? loc(specs.battery.reverse_charging) + : specs?.battery?.reverse_charging === true + ? specUi.supported + : specs?.battery?.reverse_charging === false + ? specUi.no + : '-'} +
+
+
+
+ ), + design: ( +
+
+

+ {groupHeading('design')} +

+
+
+ {specUi.fields.dimensions} +
+
+ {loc(specs?.design?.dimensions)} +
+
+ {specUi.fields.weight} +
+
+ {specs?.design?.weight_g + ? `${specs.design.weight_g} g` + : '-'} +
+
+ {specUi.fields.materialsAndBuild} +
+
+ {loc( + [specs?.design?.materials, specs?.design?.build] + .filter(Boolean) + .join(' | ') + )} +
+
+ {specUi.fields.resistance} +
+
+ {loc(specs?.design?.resistance)} +
+ {shows('design', 'biometrics') && ( + <> +
+ {specUi.fields.biometrics} +
+
+ {loc(specs?.design?.biometrics)} +
+ + )} +
+ {specUi.fields.physicalKeys} +
+
+ {loc(specs?.design?.keys)} +
+
+
+
+ ), + cellular: ( +
+
+

+ {groupHeading('cellular')} +

+
+ {shows('cellular', 'has_5g') && ( + <> +
+ {specUi.fields.support5g} +
+
+ {(specs?.cellular?.has_5g ?? product.has_5g) + ? specUi.has5gYes + : specUi.no} +
+ + )} +
+ {specUi.fields.networkTech} +
+
+ {loc(specs?.cellular?.technology)} +
+
+ {specUi.fields.simType} +
+
+ {loc(specs?.cellular?.sim_type)} +
+
+ {specUi.fields.dataSpeed} +
+
+ {loc(specs?.cellular?.data_speed)} +
+
+ {shows('cellular', 'bands_5g') + ? specUi.fields.bands5g4g + : specUi.fields.bands4g} +
+
+ {loc( + [ + shows('cellular', 'bands_5g') + ? specs?.cellular?.bands_5g + : null, + specs?.cellular?.bands_4g, + ] + .filter(Boolean) + .join(' | ') + )} +
+
+ {specUi.fields.volteVowifi} +
+
+ {specs?.cellular?.volte || specs?.cellular?.vowifi + ? [ + specs?.cellular?.volte ? 'VoLTE' : null, + specs?.cellular?.vowifi ? 'VoWiFi' : null, + ] + .filter(Boolean) + .join(' + ') + : '-'} +
+
+
+
+ ), + connectivity: ( +
+
+

+ {groupHeading('connectivity')} +

+
+ {shows('connectivity', 'wlan') && ( + <> +
+ {specUi.fields.wlan} +
+
+ {loc(specs?.connectivity?.wlan)} +
+ + )} +
+ {specUi.fields.bluetooth} +
+
+ {loc(specs?.connectivity?.bluetooth)} +
+
+ {specUi.fields.usbPort} +
+
+ {loc(specs?.connectivity?.usb)} +
+ {shows('connectivity', 'nfc') && ( + <> +
+ {specUi.fields.nfc} +
+
+ {specs?.connectivity?.nfc === true + ? specUi.yes + : specs?.connectivity?.nfc === false + ? specUi.no + : '-'} +
+ + )} + {shows('connectivity', 'location') && ( + <> +
+ {specUi.fields.locationGps} +
+
+ {loc(specs?.connectivity?.location)} +
+ + )} +
+ {specUi.fields.sensorsAndOther} +
+
+ {loc( + [ + specs?.connectivity?.sensors, + specs?.connectivity?.other, + ] + .filter(Boolean) + .join(' | ') + )} +
+
+
+
+ ), + multimedia: ( +
+
+

+ {groupHeading('multimedia')} +

+
+
+ {specUi.fields.loudspeaker} +
+
+ {loc(specs?.multimedia?.loudspeaker)} +
+ {shows('multimedia', 'headphone_jack_35mm') && ( + <> +
+ {specUi.fields.jack35mm} +
+
+ {specs?.multimedia?.headphone_jack_35mm === true + ? specUi.yes + : specs?.multimedia?.headphone_jack_35mm === false + ? specUi.no + : '-'} +
+ + )} +
+ {specUi.fields.audioFeatures} +
+
+ {loc(specs?.multimedia?.audio_features)} +
+
+
+
+ ), + availability: ( +
+
+

+ {groupHeading('availability')} +

+
+
+ {specUi.fields.announcedDate} +
+
+ {loc(specs?.availability?.announced)} +
+
+ {specUi.fields.commercialStatus} +
+
+ {specs?.availability?.status + ? loc(specs.availability.status) + : specUi.availableStatus} +
+
+ {specUi.fields.msrpPrice} +
+
+ {loc(specs?.availability?.prices_msrp)} +
+
+
+
+ ), + regulatory: ( +
+
+

+ {groupHeading('regulatory')} +

+
+
+ {specUi.fields.certifications} +
+
+ {loc(specs?.regulatory?.certifications)} +
+
+ {specUi.fields.fccApproval} +
+
+ {loc(specs?.regulatory?.fcc_approval)} +
+
+ {specUi.fields.sarLevel} +
+
+ {[ + specs?.regulatory?.sar_head + ? `${specUi.fields.sarHeadPrefix}: ${specs.regulatory.sar_head}` + : null, + specs?.regulatory?.sar_body + ? `${specUi.fields.sarBodyPrefix}: ${specs.regulatory.sar_body}` + : null, + ] + .filter(Boolean) + .join(' | ') || '-'} +
+
+
+
+ ), + }; return (
- {specUi.sectionBadge} + {specSectionBadge(specUi, specTemplate.groups.length)}
@@ -982,518 +1576,9 @@ export async function ProductDetailView({ showLessLabel={t('specsShowLess')} openOnHash="#specs-section" > - {/* 1. Display */} -
-
-

- {specUi.groups.display} -

-
-
- {specUi.fields.screenSize} -
-
- {specs?.display?.size_inch - ? `${specs.display.size_inch} inch` - : product.screen_size_inch - ? `${product.screen_size_inch} inch` - : '-'} -
-
- {specUi.fields.panelType} -
-
- {loc(specs?.display?.type || keySpecs?.screen)} -
-
- {specUi.fields.resolution} -
-
- {loc(specs?.display?.resolution)} -
-
- {specUi.fields.refreshRate} -
-
- {specs?.display?.refresh_rate_hz - ? `${specs.display.refresh_rate_hz} Hz` - : '-'} -
-
- {specUi.fields.ppi} -
-
- {specs?.display?.ppi - ? `${specs.display.ppi} ppi` - : '-'} -
-
- {specUi.fields.protection} -
-
- {loc(specs?.display?.protection)} -
-
- {specUi.fields.displayFeatures} -
-
- {loc(specs?.display?.features)} -
-
-
-
- - {/* 2. Hardware */} -
-
-

- {specUi.groups.hardware} -

-
-
- {specUi.fields.chipset} -
-
- {loc(specs?.hardware?.chipset || keySpecs?.chip)} -
-
- {specUi.fields.cpu} -
-
- {loc(specs?.hardware?.cpu)} -
-
- {specUi.fields.gpu} -
-
- {loc(specs?.hardware?.gpu)} -
-
- {specUi.fields.ram} -
-
- {specs?.hardware?.ram_gb - ? `${specs.hardware.ram_gb} GB` - : product.ram_gb - ? `${product.ram_gb} GB` - : '-'} -
-
- {specUi.fields.storage} -
-
- {specs?.hardware?.storage_gb - ? `${specs.hardware.storage_gb} GB` - : product.storage_gb - ? `${product.storage_gb} GB` - : '-'} -
-
- {specUi.fields.storageExpansion} -
-
- {loc(specs?.hardware?.storage_expansion)} -
-
{specUi.fields.os}
-
- {loc(specs?.hardware?.os)} -
-
-
-
- - {/* 3. Camera (PhoneArena Split Architecture) */} -
-
-

- {specUi.groups.camera} -

-
-
- {specUi.fields.rearSetup} -
-
- {loc(specs?.camera?.rear_setup)} -
-
- {specUi.fields.mainCamera} -
-
- {loc(specs?.camera?.main_camera || keySpecs?.camera)} -
-
- {specUi.fields.secondCamera} -
-
- {loc(specs?.camera?.second_camera)} -
-
- {specUi.fields.thirdCamera} -
-
- {loc(specs?.camera?.third_camera)} -
- {specs?.camera?.fourth_camera && ( - <> -
- {specUi.fields.fourthCamera} -
-
- {loc(specs.camera.fourth_camera)} -
- - )} -
- {specUi.fields.frontCamera} -
-
- {loc(specs?.camera?.front_camera)} -
-
- {specUi.fields.videoAndFlash} -
-
- {loc( - [ - specs?.camera?.video_recording, - specs?.camera?.flash, - ] - .filter(Boolean) - .join(' | ') - )} -
-
-
-
- - {/* 4. Battery */} -
-
-

- {specUi.groups.battery} -

-
-
- {specUi.fields.batteryCapacity} -
-
- {specs?.battery?.capacity_mah - ? `${specs.battery.capacity_mah} mAh` - : product.battery_mah - ? `${product.battery_mah} mAh` - : loc(keySpecs?.battery)} -
-
- {specUi.fields.batteryType} -
-
- {loc(specs?.battery?.type)} -
-
- {specUi.fields.chargingTech} -
-
- {loc(specs?.battery?.charging)} -
-
- {specUi.fields.fastCharging} -
-
- {specs?.battery?.fast_charging_w - ? `${specs.battery.fast_charging_w} W` - : '-'} -
-
- {specUi.fields.reverseCharging} -
-
- {typeof specs?.battery?.reverse_charging === 'string' - ? loc(specs.battery.reverse_charging) - : specs?.battery?.reverse_charging === true - ? specUi.supported - : specs?.battery?.reverse_charging === false - ? specUi.no - : '-'} -
-
-
-
- - {/* 5. Design */} -
-
-

- {specUi.groups.design} -

-
-
- {specUi.fields.dimensions} -
-
- {loc(specs?.design?.dimensions)} -
-
- {specUi.fields.weight} -
-
- {specs?.design?.weight_g - ? `${specs.design.weight_g} g` - : '-'} -
-
- {specUi.fields.materialsAndBuild} -
-
- {loc( - [specs?.design?.materials, specs?.design?.build] - .filter(Boolean) - .join(' | ') - )} -
-
- {specUi.fields.resistance} -
-
- {loc(specs?.design?.resistance)} -
-
- {specUi.fields.biometrics} -
-
- {loc(specs?.design?.biometrics)} -
-
- {specUi.fields.physicalKeys} -
-
- {loc(specs?.design?.keys)} -
-
-
-
- - {/* 6. Cellular */} -
-
-

- {specUi.groups.cellular} -

-
-
- {specUi.fields.support5g} -
-
- {(specs?.cellular?.has_5g ?? product.has_5g) - ? specUi.has5gYes - : specUi.no} -
-
- {specUi.fields.networkTech} -
-
- {loc(specs?.cellular?.technology)} -
-
- {specUi.fields.simType} -
-
- {loc(specs?.cellular?.sim_type)} -
-
- {specUi.fields.dataSpeed} -
-
- {loc(specs?.cellular?.data_speed)} -
-
- {specUi.fields.bands5g4g} -
-
- {loc( - [ - specs?.cellular?.bands_5g, - specs?.cellular?.bands_4g, - ] - .filter(Boolean) - .join(' | ') - )} -
-
- {specUi.fields.volteVowifi} -
-
- {specs?.cellular?.volte || specs?.cellular?.vowifi - ? [ - specs?.cellular?.volte ? 'VoLTE' : null, - specs?.cellular?.vowifi ? 'VoWiFi' : null, - ] - .filter(Boolean) - .join(' + ') - : '-'} -
-
-
-
- - {/* 7. Connectivity */} -
-
-

- {specUi.groups.connectivity} -

-
-
- {specUi.fields.wlan} -
-
- {loc(specs?.connectivity?.wlan)} -
-
- {specUi.fields.bluetooth} -
-
- {loc(specs?.connectivity?.bluetooth)} -
-
- {specUi.fields.usbPort} -
-
- {loc(specs?.connectivity?.usb)} -
-
- {specUi.fields.nfc} -
-
- {specs?.connectivity?.nfc === true - ? specUi.yes - : specs?.connectivity?.nfc === false - ? specUi.no - : '-'} -
-
- {specUi.fields.locationGps} -
-
- {loc(specs?.connectivity?.location)} -
-
- {specUi.fields.sensorsAndOther} -
-
- {loc( - [ - specs?.connectivity?.sensors, - specs?.connectivity?.other, - ] - .filter(Boolean) - .join(' | ') - )} -
-
-
-
- - {/* 8. Multimedia */} -
-
-

- {specUi.groups.multimedia} -

-
-
- {specUi.fields.loudspeaker} -
-
- {loc(specs?.multimedia?.loudspeaker)} -
-
- {specUi.fields.jack35mm} -
-
- {specs?.multimedia?.headphone_jack_35mm === true - ? specUi.yes - : specs?.multimedia?.headphone_jack_35mm === false - ? specUi.no - : '-'} -
-
- {specUi.fields.audioFeatures} -
-
- {loc(specs?.multimedia?.audio_features)} -
-
-
-
- - {/* 9. Availability */} -
-
-

- {specUi.groups.availability} -

-
-
- {specUi.fields.announcedDate} -
-
- {loc(specs?.availability?.announced)} -
-
- {specUi.fields.commercialStatus} -
-
- {specs?.availability?.status - ? loc(specs.availability.status) - : specUi.availableStatus} -
-
- {specUi.fields.msrpPrice} -
-
- {loc(specs?.availability?.prices_msrp)} -
-
-
-
- - {/* 10. Regulatory */} -
-
-

- {specUi.groups.regulatory} -

-
-
- {specUi.fields.certifications} -
-
- {loc(specs?.regulatory?.certifications)} -
-
- {specUi.fields.fccApproval} -
-
- {loc(specs?.regulatory?.fcc_approval)} -
-
- {specUi.fields.sarLevel} -
-
- {[ - specs?.regulatory?.sar_head - ? `${specUi.fields.sarHeadPrefix}: ${specs.regulatory.sar_head}` - : null, - specs?.regulatory?.sar_body - ? `${specUi.fields.sarBodyPrefix}: ${specs.regulatory.sar_body}` - : null, - ] - .filter(Boolean) - .join(' | ') || '-'} -
-
-
-
+ {specTemplate.groups.map((group) => ( + {groupNodes[group]} + ))}
); diff --git a/apps/web/src/app/[locale]/smartphones/page.tsx b/apps/web/src/app/[locale]/smartphones/page.tsx index 8d8e4dfdf..80cd949a6 100644 --- a/apps/web/src/app/[locale]/smartphones/page.tsx +++ b/apps/web/src/app/[locale]/smartphones/page.tsx @@ -41,6 +41,7 @@ import { BsExclamationTriangle, } from 'react-icons/bs'; import type { KeySpecs, ProductSpecifications } from '@repo/shared-data'; +import { applyCategorySpecTemplate } from '@repo/shared-data/rules'; import ClientMessages from '@/components/providers/ClientMessages'; import BootstrapClient from '@/app/BootstrapClient'; import { productImageUrl } from '@/lib/rate-domain-core'; @@ -770,7 +771,12 @@ export async function CategoryCatalogContent({
) : (
- {products.map((item) => { + {products.map((storedItem) => { + // Only the specs the category has (DOS/Rate#1142). + const item = applyCategorySpecTemplate( + categorySlug, + storedItem + ); const keySpecs = (item.key_specs || {}) as KeySpecs; const specs = (item.specifications || {}) as ProductSpecifications; diff --git a/apps/web/src/lib/__tests__/spec-template.test.ts b/apps/web/src/lib/__tests__/spec-template.test.ts new file mode 100644 index 000000000..3bc2a9727 --- /dev/null +++ b/apps/web/src/lib/__tests__/spec-template.test.ts @@ -0,0 +1,120 @@ +import assert from 'node:assert/strict'; +import { readFileSync } from 'node:fs'; +import { + applyCategorySpecTemplate, + getCategorySpecTemplate, + type SpecGroupKey, +} from '@repo/shared-data/rules'; +import { + getSpecUiDictionary, + specGroupHeading, + specSectionBadge, +} from '../spec-localizer'; + +const readSource = (path: string) => + readFileSync(new URL(path, import.meta.url), 'utf8'); + +// The headings a category's spec section shows, in order. +const headings = (category: string, locale: string) => { + const ui = getSpecUiDictionary(locale); + const template = getCategorySpecTemplate(category); + return template.groups.map((group: SpecGroupKey, i: number) => + specGroupHeading(ui, group, i + 1, template.has5g) + ); +}; + +function main() { + console.warn('🧪 Category spec template suite (DOS/Rate#1142)'); + + // Phones keep the ten numbered groups, worded as before. + const phone = headings('smartphones', 'vi'); + assert.equal(phone.length, 10); + assert.equal(phone[0], '1. Màn hình (Display)'); + assert.equal(phone[5], '6. Mạng Di động & 5G (Cellular)'); + assert.equal(phone[9], '10. Pháp lý, Chứng nhận & SAR (Regulatory)'); + assert.deepEqual(headings('tablets', 'en'), headings('smartphones', 'en')); + assert.equal( + specSectionBadge(getSpecUiDictionary('vi'), 10), + '10 nhóm thông số' + ); + + // Earbuds open on audio and never show a screen, hardware, camera or + // cellular group, in any locale. + for (const locale of ['vi', 'en', 'cs']) { + const ui = getSpecUiDictionary(locale); + const buds = headings('earbuds', locale); + assert.equal(buds.length, 7); + assert.ok(buds[0]!.startsWith('1. ')); + assert.ok(buds[0]!.endsWith(ui.groups.multimedia.replace(/^\d+\.\s*/, ''))); + for (const group of ['display', 'camera', 'cellular'] as const) { + const label = ui.groups[group].replace(/^\d+\.\s*/, ''); + assert.ok( + !buds.some((h: string) => h.endsWith(label)), + `earbuds (${locale}) must not show ${group}` + ); + } + assert.equal(specSectionBadge(ui, buds.length).startsWith('7 '), true); + } + assert.deepEqual(headings('earbuds', 'en'), [ + '1. Audio & multimedia', + '2. Battery & charging', + '3. Connectivity & sensors', + '4. Hardware & performance', + '5. Design & durability', + '6. Availability & MSRP', + '7. Regulatory, certifications & SAR', + ]); + + // Smartwatches: no camera group and no "5G" anywhere in the headings. + for (const locale of ['vi', 'en', 'cs']) { + const watch = headings('smartwatches', locale); + assert.equal(watch.length, 9); + assert.ok( + watch.every((h: string) => !h.includes('5G')), + watch.join(' | ') + ); + } + assert.equal(headings('smartwatches', 'vi')[4], '5. Mạng Di động (Cellular)'); + + // The card chips read only what the template leaves: an earbud has no + // "1GB RAM · 64GB" and a cellular watch no "5G". + const buds = applyCategorySpecTemplate('earbuds', { + ram_gb: 1, + storage_gb: 1, + has_5g: false, + key_specs: { screen: '1"', ram: '1GB', chip: 'H2' }, + }); + assert.equal(buds.ram_gb, null); + assert.equal(buds.storage_gb, null); + assert.deepEqual(buds.key_specs, { chip: 'H2' }); + const ultra2 = applyCategorySpecTemplate('smartwatches', { + storage_gb: 64, + has_5g: true, + }); + assert.equal(ultra2.has_5g, false); + assert.equal(ultra2.storage_gb, 64); + + // The detail page, the category cards and the home cards all apply it. + const detail = readSource('../../app/[locale]/smartphones/[slug]/page.tsx'); + assert.match( + detail, + /const product = applyCategorySpecTemplate\(categorySlug, storedProduct\)/ + ); + assert.match(detail, /applyCategorySpecTemplate\(categorySlug, peer\)/); + assert.match(detail, /specTemplate\.groups\.map\(/); + assert.doesNotMatch(detail, /specUi\.groups\.\w+\}/); + const catalog = readSource('../../app/[locale]/smartphones/page.tsx'); + assert.match( + catalog, + /applyCategorySpecTemplate\(\s*categorySlug,\s*storedItem/ + ); + const home = readSource('../../app/[locale]/page.tsx'); + assert.match( + home, + /applyCategorySpecTemplate\(\s*getMasterProductCategorySlug/ + ); + + console.warn(' ✅ Category spec templates passed'); +} + +main(); diff --git a/apps/web/src/lib/spec-localizer.ts b/apps/web/src/lib/spec-localizer.ts index e64b76d71..ed27b2983 100644 --- a/apps/web/src/lib/spec-localizer.ts +++ b/apps/web/src/lib/spec-localizer.ts @@ -1,3 +1,4 @@ +import type { SpecGroupKey } from '@repo/shared-data/rules'; import { type RateLocale, normalizeRateLocale } from './rate-i18n'; export interface SpecUiDictionary { @@ -9,6 +10,8 @@ export interface SpecUiDictionary { supported: string; availableStatus: string; has5gYes: string; + /** The cellular group heading of a category without 5G (smartwatches). */ + cellularNo5gGroup: string; groups: { display: string; hardware: string; @@ -59,6 +62,7 @@ export interface SpecUiDictionary { simType: string; dataSpeed: string; bands5g4g: string; + bands4g: string; volteVowifi: string; wlan: string; bluetooth: string; @@ -90,6 +94,7 @@ const SPEC_UI_DICTS: Record = { supported: 'Có hỗ trợ', availableStatus: 'Đang kinh doanh', has5gYes: 'Có (5G Sub-6 / mmWave)', + cellularNo5gGroup: '6. Mạng Di động (Cellular)', groups: { display: '1. Màn hình (Display)', hardware: '2. Phần cứng & Hiệu năng (Hardware)', @@ -140,6 +145,7 @@ const SPEC_UI_DICTS: Record = { simType: 'Chuẩn SIM', dataSpeed: 'Tốc độ dữ liệu', bands5g4g: 'Băng tần 5G / 4G', + bands4g: 'Băng tần 4G', volteVowifi: 'VoLTE / VoWiFi', wlan: 'Wi-Fi (WLAN)', bluetooth: 'Bluetooth', @@ -169,6 +175,7 @@ const SPEC_UI_DICTS: Record = { supported: 'Supported', availableStatus: 'Available', has5gYes: 'Yes (5G Sub-6 / mmWave)', + cellularNo5gGroup: '6. Cellular network', groups: { display: '1. Display & panel', hardware: '2. Hardware & performance', @@ -219,6 +226,7 @@ const SPEC_UI_DICTS: Record = { simType: 'SIM configuration', dataSpeed: 'Data speed', bands5g4g: '5G / 4G bands', + bands4g: '4G bands', volteVowifi: 'VoLTE / VoWiFi', wlan: 'Wi-Fi (WLAN)', bluetooth: 'Bluetooth', @@ -248,6 +256,7 @@ const SPEC_UI_DICTS: Record = { supported: 'Podporováno', availableStatus: 'V prodeji', has5gYes: 'Ano (5G Sub-6 / mmWave)', + cellularNo5gGroup: '6. Mobilní sítě', groups: { display: '1. Displej a obrazovka', hardware: '2. Hardware a výkon', @@ -298,6 +307,7 @@ const SPEC_UI_DICTS: Record = { simType: 'Typ SIM karty', dataSpeed: 'Rychlost dat', bands5g4g: 'Pásma 5G / 4G', + bands4g: 'Pásma 4G', volteVowifi: 'VoLTE / VoWiFi', wlan: 'Wi-Fi (WLAN)', bluetooth: 'Bluetooth', @@ -324,6 +334,26 @@ export function getSpecUiDictionary(locale?: string): SpecUiDictionary { return SPEC_UI_DICTS[normalizeRateLocale(locale)]; } +/** + * A group heading numbered by its place in the category's template, so an + * earbud page that starts with audio reads "1. Audio" (DOS/Rate#1142). + */ +export function specGroupHeading( + ui: SpecUiDictionary, + group: SpecGroupKey, + position: number, + has5g = true +): string { + const label = + group === 'cellular' && !has5g ? ui.cellularNo5gGroup : ui.groups[group]; + return `${position}. ${label.replace(/^\d+\.\s*/, '')}`; +} + +/** The "10 spec groups" badge with the category's own group count. */ +export function specSectionBadge(ui: SpecUiDictionary, count: number): string { + return ui.sectionBadge.replace(/^\d+/, String(count)); +} + const MONTH_VI_MAP: Record = { january: 'Tháng 01', february: 'Tháng 02', diff --git a/packages/shared-data/src/__tests__/shared-data.test.ts b/packages/shared-data/src/__tests__/shared-data.test.ts index 19a5a29a1..869241bf4 100644 --- a/packages/shared-data/src/__tests__/shared-data.test.ts +++ b/packages/shared-data/src/__tests__/shared-data.test.ts @@ -823,6 +823,149 @@ function testPriceRules(): void { } } +function testCategorySpecTemplates(): void { + const phoneShaped = { + ram_gb: 1, + storage_gb: 64, + screen_size_inch: 1, + has_5g: true, + specifications: { + category_slug: 'x', + display: { size_inch: 1, refresh_rate_hz: 60, ppi: 300 }, + hardware: { ram_gb: 1, storage_gb: 64, gpu: 'g', chipset: 'c' }, + camera: { main_camera: 'mic' }, + cellular: { has_5g: true, bands_5g: 'n78', bands_4g: 'LTE' }, + design: { biometrics: 'b', weight_g: 5 }, + connectivity: { bluetooth: '5.4', wlan: 'w', nfc: false }, + multimedia: { audio_features: 'ANC', headphone_jack_35mm: false }, + battery: { capacity_mah: 500 }, + }, + key_specs: { + screen: 's', + chip: 'c', + camera: 'm', + battery: 'b', + storage: '64GB', + ram: '1GB', + }, + }; + + // Phones and tablets, and any unknown slug, keep everything untouched. + for (const slug of [ + 'smartphones', + 'tablets', + 'laptops', + undefined, + null, + 'nope', + ]) { + assert.equal( + rules.applyCategorySpecTemplate(slug, phoneShaped), + phoneShaped + ); + assert.equal(rules.getCategorySpecTemplate(slug).groups.length, 10); + } + + // Earbuds: audio groups only, no screen, RAM, ROM, camera or cellular. + const buds = rules.applyCategorySpecTemplate(' Earbuds ', phoneShaped); + const budsSpecs = buds.specifications as unknown as Record< + string, + Record + >; + assert.deepEqual(rules.getCategorySpecTemplate('earbuds').groups, [ + 'multimedia', + 'battery', + 'connectivity', + 'hardware', + 'design', + 'availability', + 'regulatory', + ]); + assert.equal(buds.ram_gb, null); + assert.equal(buds.storage_gb, null); + assert.equal(buds.screen_size_inch, null); + assert.equal(buds.has_5g, false); + for (const group of ['display', 'camera', 'cellular']) { + assert.equal(budsSpecs[group], undefined, `earbuds drop ${group}`); + } + assert.equal(budsSpecs.category_slug, 'x', 'non-group keys are kept'); + assert.deepEqual(budsSpecs.connectivity, { bluetooth: '5.4' }); + assert.deepEqual(budsSpecs.multimedia, { audio_features: 'ANC' }); + assert.deepEqual(budsSpecs.design, { weight_g: 5 }); + // The audio chip is the one hardware fact earbuds keep. + assert.deepEqual(budsSpecs.hardware, { chipset: 'c' }); + const budsStored = rules.applyCategorySpecTemplate('earbuds', phoneShaped, { + forStorage: true, + }); + assert.deepEqual(budsStored, buds, 'earbuds store what they show'); + assert.deepEqual(buds.key_specs, { chip: 'c', battery: 'b' }); + + // Smartwatches: the page shows no camera and no 5G; screen, storage and + // LTE stay. + const watch = rules.applyCategorySpecTemplate('smartwatches', phoneShaped); + const watchSpecs = watch.specifications as unknown as Record< + string, + Record + >; + assert.equal(watch.has_5g, false); + assert.equal(watch.storage_gb, 64); + assert.equal(watch.screen_size_inch, 1); + assert.equal(watchSpecs.camera, undefined); + assert.deepEqual(watchSpecs.cellular, { bands_4g: 'LTE' }); + assert.deepEqual(watchSpecs.hardware, { + ram_gb: 1, + storage_gb: 64, + chipset: 'c', + }); + assert.deepEqual(watch.key_specs, { + screen: 's', + chip: 'c', + battery: 'b', + storage: '64GB', + ram: '1GB', + }); + // Stored, a watch keeps its 5G facts: a few models (RedCap) do have 5G. + const watchStored = rules.applyCategorySpecTemplate( + 'smartwatches', + phoneShaped, + { forStorage: true } + ); + const watchStoredSpecs = watchStored.specifications as unknown as Record< + string, + Record + >; + assert.equal(watchStored.has_5g, true); + assert.deepEqual( + watchStoredSpecs.cellular, + phoneShaped.specifications.cellular + ); + assert.equal(watchStoredSpecs.hardware?.gpu, 'g'); + assert.equal(watchStoredSpecs.camera, undefined); + + // Idempotent, never mutates the input, and leaves absent columns absent. + assert.deepEqual(rules.applyCategorySpecTemplate('earbuds', buds), buds); + assert.equal(phoneShaped.ram_gb, 1); + assert.equal(phoneShaped.specifications.display.size_inch, 1); + assert.equal( + 'ram_gb' in rules.applyCategorySpecTemplate('earbuds', { has_5g: true }), + false + ); + + const watchTemplate = rules.getCategorySpecTemplate('smartwatches'); + assert.equal( + rules.specFieldApplies(watchTemplate, 'cellular', 'has_5g'), + false + ); + assert.equal( + rules.specFieldApplies(watchTemplate, 'cellular', 'technology'), + true + ); + assert.equal( + rules.specFieldApplies(watchTemplate, 'camera', 'main_camera'), + false + ); +} + function assertRoundTrip(modelKey: string): void { const parts = sharedDataRoot.splitModelKey(modelKey); assert.ok(parts, `splitModelKey must parse ${modelKey}`); @@ -1076,6 +1219,8 @@ function main(): void { console.log( ' ✅ [8/8] Item / variant schemas and model_key helpers verified' ); + testCategorySpecTemplates(); + console.log(' ✅ [9/9] Category spec templates (DOS/Rate#1142) verified'); console.log('🎉 All @repo/shared-data tests passed!'); } diff --git a/packages/shared-data/src/rules/index.ts b/packages/shared-data/src/rules/index.ts index 8ea5fd486..5c111d6f3 100644 --- a/packages/shared-data/src/rules/index.ts +++ b/packages/shared-data/src/rules/index.ts @@ -8,4 +8,5 @@ export { MAX_VALID_VND_PRICE } from './price-limits.js'; export * from './offer-plausibility.js'; export * from './listing-price-floor.js'; +export * from './spec-template.js'; export * from './model-key.js'; diff --git a/packages/shared-data/src/rules/spec-template.ts b/packages/shared-data/src/rules/spec-template.ts new file mode 100644 index 000000000..9c1b3a76b --- /dev/null +++ b/packages/shared-data/src/rules/spec-template.ts @@ -0,0 +1,245 @@ +/** + * Which spec groups and fields apply to each category (DOS/Rate#1142). + * + * The spec schema is one phone-shaped schema for every device, and the AI + * enricher fills it for earbuds and watches too: earbuds came out with a + * "1 inch" screen, 1GB RAM and microphones as cameras, and a cellular watch + * with 5G. rate.vn renders each category with its own template, and the + * importer drops the fields a category does not have before it writes a + * master. Plain data and functions only, like the rest of `rules`. + */ + +export type SpecGroupKey = + | 'display' + | 'hardware' + | 'camera' + | 'battery' + | 'design' + | 'cellular' + | 'connectivity' + | 'multimedia' + | 'availability' + | 'regulatory'; + +export type KeySpecKey = + 'screen' | 'chip' | 'camera' | 'battery' | 'storage' | 'ram'; + +export interface CategorySpecTemplate { + /** Groups the category has, in display order. */ + groups: readonly SpecGroupKey[]; + /** Fields of a listed group that the category does not have. */ + hiddenFields: Partial>; + /** + * Fields the page does not show although a model may really have them, so + * the importer keeps them: a few watches do carry 5G (RedCap). + */ + displayHiddenFields: Partial>; + /** `key_specs` entries that apply. */ + keySpecs: readonly KeySpecKey[]; + /** Whether the top-level `ram_gb` / `storage_gb` / `screen_size_inch` apply. */ + ram: boolean; + storage: boolean; + screen: boolean; + /** + * Whether the page shows 5G. Watches sell as LTE / GPS + Cellular and the + * enricher flags them 5G wrongly; the stored flag is cleared only for a + * category without a cellular group. + */ + has5g: boolean; +} + +const ALL_GROUPS: readonly SpecGroupKey[] = [ + 'display', + 'hardware', + 'camera', + 'battery', + 'design', + 'cellular', + 'connectivity', + 'multimedia', + 'availability', + 'regulatory', +]; + +const ALL_KEY_SPECS: readonly KeySpecKey[] = [ + 'screen', + 'chip', + 'camera', + 'battery', + 'storage', + 'ram', +]; + +const PHONE_TEMPLATE: CategorySpecTemplate = { + groups: ALL_GROUPS, + hiddenFields: {}, + displayHiddenFields: {}, + keySpecs: ALL_KEY_SPECS, + ram: true, + storage: true, + screen: true, + has5g: true, +}; + +const SPEC_TEMPLATES: Readonly> = { + smartphones: PHONE_TEMPLATE, + tablets: PHONE_TEMPLATE, + // Laptops keep the full template: some ship with 5G modems. + laptops: PHONE_TEMPLATE, + smartwatches: { + groups: [ + 'display', + 'hardware', + 'battery', + 'design', + 'cellular', + 'connectivity', + 'multimedia', + 'availability', + 'regulatory', + ], + hiddenFields: {}, + displayHiddenFields: { + hardware: ['gpu', 'storage_expansion'], + cellular: ['has_5g', 'bands_5g'], + }, + keySpecs: ['screen', 'chip', 'battery', 'storage', 'ram'], + ram: true, + storage: true, + screen: true, + has5g: false, + }, + earbuds: { + groups: [ + 'multimedia', + 'battery', + 'connectivity', + 'hardware', + 'design', + 'availability', + 'regulatory', + ], + hiddenFields: { + // The audio chip (Apple H2, BES2700) is the one hardware fact earbuds have. + hardware: [ + 'cpu', + 'gpu', + 'ram_gb', + 'storage_gb', + 'storage_expansion', + 'os', + ], + design: ['biometrics'], + connectivity: ['wlan', 'location', 'nfc'], + multimedia: ['headphone_jack_35mm'], + }, + displayHiddenFields: {}, + keySpecs: ['chip', 'battery'], + ram: false, + storage: false, + screen: false, + has5g: false, + }, +}; + +const normalizeSlug = (categorySlug: unknown): string => + typeof categorySlug === 'string' ? categorySlug.trim().toLowerCase() : ''; + +/** The template for a category slug; unknown slugs keep the full phone template. */ +export function getCategorySpecTemplate( + categorySlug: string | null | undefined +): CategorySpecTemplate { + return SPEC_TEMPLATES[normalizeSlug(categorySlug)] ?? PHONE_TEMPLATE; +} + +const hiddenIn = ( + template: CategorySpecTemplate, + group: SpecGroupKey, + forStorage: boolean +): readonly string[] => [ + ...(template.hiddenFields[group] ?? []), + ...(forStorage ? [] : (template.displayHiddenFields[group] ?? [])), +]; + +/** Whether the page shows a field of a group for the category. */ +export function specFieldApplies( + template: CategorySpecTemplate, + group: SpecGroupKey, + field: string +): boolean { + return ( + template.groups.includes(group) && + !hiddenIn(template, group, false).includes(field) + ); +} + +export interface CategoryScopedSpecs { + specifications?: unknown; + key_specs?: unknown; + ram_gb?: number | null; + storage_gb?: number | null; + screen_size_inch?: number | null; + has_5g?: boolean | null; +} + +const isRecord = (v: unknown): v is Record => + Boolean(v) && typeof v === 'object' && !Array.isArray(v); + +/** + * A copy of a product with the spec groups, fields and flat columns its + * category does not have removed. Fields outside the ten groups (such as + * `category_slug`) are kept. Values the category has are never changed, so + * applying it twice gives the same result. It only narrows: removed flat + * columns become `null` (`has_5g` becomes `false`) and groups lose keys, so + * callers should type those fields as nullable, as the row types do. + * + * `forStorage` (the importer) removes only what the category cannot have and + * keeps what the page merely hides, such as a watch's real 5G support. + */ +export function applyCategorySpecTemplate( + categorySlug: string | null | undefined, + product: T, + { forStorage = false }: { forStorage?: boolean } = {} +): T { + const template = getCategorySpecTemplate(categorySlug); + if (template === PHONE_TEMPLATE) return product; + const out: T = { ...product }; + + if (isRecord(product.specifications)) { + const specs: Record = {}; + for (const [group, value] of Object.entries(product.specifications)) { + if (!(ALL_GROUPS as readonly string[]).includes(group)) { + specs[group] = value; + continue; + } + if (!template.groups.includes(group as SpecGroupKey)) continue; + const hidden = hiddenIn(template, group as SpecGroupKey, forStorage); + if (hidden.length > 0 && isRecord(value)) { + specs[group] = Object.fromEntries( + Object.entries(value).filter(([field]) => !hidden.includes(field)) + ); + } else { + specs[group] = value; + } + } + out.specifications = specs; + } + + if (isRecord(product.key_specs)) { + out.key_specs = Object.fromEntries( + Object.entries(product.key_specs).filter(([key]) => + (template.keySpecs as readonly string[]).includes(key) + ) + ); + } + + if (!template.ram && 'ram_gb' in product) out.ram_gb = null; + if (!template.storage && 'storage_gb' in product) out.storage_gb = null; + if (!template.screen && 'screen_size_inch' in product) + out.screen_size_inch = null; + const shows5g = forStorage + ? template.groups.includes('cellular') + : template.has5g; + if (!shows5g && 'has_5g' in product) out.has_5g = false; + return out; +} From c1354123909e6bdbef14780168cffffc00c0b176 Mon Sep 17 00:00:00 2001 From: JOY <5027251+JOY@users.noreply.github.com> Date: Wed, 28 Oct 2026 11:23:44 +0700 Subject: [PATCH 12/15] fix(web): batch offers read availability; radar and best offer skip sold-out listings (#1176) * fix(web): batch offers read availability; radar and best offer skip sold-out listings - getMasterProductOffersBatch reads rate.products.availability per chunk and attaches it, like the single-product read (#1170). - The deal radar drops out_of_stock and discontinued offers before the market floor, spread, deals and traps, for every caller (#1170). - selectBestOfferFromListings decides on availability, not stock: crawlers report stock 0 when they read no count (#1171). - The availability read no longer falls back to unknown on a failed read or a missing column; it throws RateDataUnavailableError like the offer reads (#1174). * test(web): restore fetch after the availability block Co-Authored-By: Claude Opus 5.5 --- apps/web/src/lib/rate-api.ts | 87 +++--- .../__tests__/core-rate-architecture.test.ts | 268 +++++++++++++++++- apps/web/src/server/rate/api-handler.ts | 20 +- apps/web/src/server/rate/deals.ts | 5 +- 4 files changed, 319 insertions(+), 61 deletions(-) diff --git a/apps/web/src/lib/rate-api.ts b/apps/web/src/lib/rate-api.ts index 203db13a2..f87ef989a 100644 --- a/apps/web/src/lib/rate-api.ts +++ b/apps/web/src/lib/rate-api.ts @@ -1317,7 +1317,7 @@ export async function getMasterProductOffers( const rows = viewRows as unknown as RawTrustViewRow[]; const [extras, availability] = await Promise.all([ sellerExtrasForTrustViewRows(rows), - getListingAvailabilityForMaster(cleanMasterId), + getListingAvailability([cleanMasterId]), ]); return rows.map((row) => withOfferAvailability( @@ -1342,7 +1342,7 @@ export async function getMasterProductOffers( .order('id') .range(from, to) ), - getListingAvailabilityForMaster(cleanMasterId), + getListingAvailability([cleanMasterId]), ]); return (rows as unknown as RawOfferRow[]).map((row) => withOfferAvailability(mapOfferRowToMerchantOffer(row), availability) @@ -1350,53 +1350,34 @@ export async function getMasterProductOffers( } /** - * Availability of every listing of a master, by listing id. The trust view - * predates the column (DOS-Me 20261020230000), so it is read from - * rate.products. A failed read, or a schema without the column (the E2E - * stack built from this repo's migration copy, until DOS/Rate#1147), leaves - * availability unknown: the offers still render, only without their sold-out - * label, and the page's prices come from the stored stats either way. + * Availability of every listing under the given masters (at most + * IN_FILTER_CHUNK_SIZE), by listing id. The trust view predates the column + * (DOS-Me 20261020230000), so it is read from rate.products. A failed read + * throws like the offer reads it completes (DOS/Rate#1174). */ -async function getListingAvailabilityForMaster( - masterId: string +async function getListingAvailability( + masterIds: readonly string[] ): Promise> { const supabase = getRateClient(); - const byId = new Map(); - const pageSize = 1000; - try { - for (let from = 0, pages = 0; pages < FETCH_ALL_MAX_PAGES; pages++) { - const { data, error } = (await supabase + const rows = await fetchAllRows<{ id: unknown; availability: unknown }>( + 'listing availability', + (from, to) => + supabase .from('products') .select('id, availability') - .eq('cluster_id', masterId) + .in('cluster_id', [...masterIds]) .order('id') - .range(from, from + pageSize - 1)) as unknown as { - data: { id: string; availability: unknown }[] | null; + .range(from, to) as unknown as PromiseLike<{ + data: { id: unknown; availability: unknown }[] | null; error: { message: string } | null; - }; - if (error) { - log.warn('listing availability unavailable', { - masterId, - message: error.message, - }); - return new Map(); - } - const page = data ?? []; - for (const row of page) { - const availability = toOfferAvailability(row?.availability); - if (availability && typeof row?.id === 'string') { - byId.set(row.id, availability); - } - } - if (page.length < pageSize) break; - from += page.length; + }> + ); + const byId = new Map(); + for (const row of rows) { + const availability = toOfferAvailability(row?.availability); + if (availability && typeof row?.id === 'string') { + byId.set(row.id, availability); } - } catch (err) { - log.warn('listing availability unavailable', { - masterId, - message: err instanceof Error ? err.message : String(err), - }); - return new Map(); } return byId; } @@ -1435,9 +1416,8 @@ export async function getMasterProductOffersBatch( const batchIds = uniqueIds.slice(i, i + chunkSize); // Paged per chunk: 150 masters can easily hold more than 1000 offers. - const viewData = await fetchAllRows( - 'v_products_with_merchant_trust', - (from, to) => + const [viewData, availability] = await Promise.all([ + fetchAllRows('v_products_with_merchant_trust', (from, to) => supabase .from('v_products_with_merchant_trust') .select(TRUST_VIEW_SELECT) @@ -1445,7 +1425,9 @@ export async function getMasterProductOffersBatch( .order('price_current', { ascending: true }) .order('id') .range(from, to) - ).catch(() => null); + ).catch(() => null), + getListingAvailability(batchIds), + ]); if (viewData) { const rows = viewData as unknown as RawTrustViewRow[]; @@ -1455,10 +1437,13 @@ export async function getMasterProductOffersBatch( if (!cid) continue; const list = offersByMaster.get(cid) ?? []; list.push( - mapTrustViewRowToMerchantOffer( - row, - extras.followerCounts.get(row.merchant_id), - extras.metadataDosafeRisks.get(row.merchant_id) + withOfferAvailability( + mapTrustViewRowToMerchantOffer( + row, + extras.followerCounts.get(row.merchant_id), + extras.metadataDosafeRisks.get(row.merchant_id) + ), + availability ) ); offersByMaster.set(cid, list); @@ -1480,7 +1465,9 @@ export async function getMasterProductOffersBatch( const cid = item.cluster_id ? String(item.cluster_id) : ''; if (!cid) continue; const list = offersByMaster.get(cid) ?? []; - list.push(mapOfferRowToMerchantOffer(item)); + list.push( + withOfferAvailability(mapOfferRowToMerchantOffer(item), availability) + ); offersByMaster.set(cid, list); } } diff --git a/apps/web/src/server/rate/__tests__/core-rate-architecture.test.ts b/apps/web/src/server/rate/__tests__/core-rate-architecture.test.ts index b19de8590..f01f633e1 100644 --- a/apps/web/src/server/rate/__tests__/core-rate-architecture.test.ts +++ b/apps/web/src/server/rate/__tests__/core-rate-architecture.test.ts @@ -5936,7 +5936,11 @@ async function runCoreArchitectureSuite() { { status: 200, headers: { 'content-type': 'application/json' } } ); } - if (url.includes('/rest/v1/products') && url.includes('id=in.')) { + if ( + url.includes('/rest/v1/products') && + url.includes('id=in.') && + !url.includes('cluster_id=in.') + ) { return new Response( JSON.stringify([ { @@ -13408,6 +13412,268 @@ async function runCoreArchitectureSuite() { ); } + // ------------------------------------------------------------------------- + // 126k. Batch offers read availability; radar and best offer skip sold-out + // listings; stock 0 is not sold out (#1170, #1171, #1174) + // ------------------------------------------------------------------------- + { + const { + RateDataUnavailableError, + getMasterProductOffers, + getMasterProductOffersBatch, + } = await import('@/lib/rate-api'); + const { computeCrossPlatformDealRadarFromData } = + await import('@/server/rate/deals'); + const { selectBestOfferFromListings } = + await import('@/server/rate/api-handler'); + + const origFetch1170 = globalThis.fetch; + const json1170 = (body: unknown, status = 200) => + new Response(JSON.stringify(body), { + status, + headers: { 'content-type': 'application/json' }, + }); + const viewRow1170 = (id: string, clusterId: string, price: number) => ({ + id, + cluster_id: clusterId, + merchant_id: `m-${id}`, + platform: 'shopee', + title: 't', + price_current: price, + stock: 0, + url: 'https://shopee.vn/p', + threat_risk_score: 5, + threat_source: 'dosafe', + dosafe_risk_score: 5, + review_risk_score: 5, + review_risk_breakdown: { total_reviews: 3 }, + }); + const availabilityReads1170: string[] = []; + const mockOffers1170 = (opts: { + viewFails?: boolean; + availabilityFails?: boolean; + }) => { + availabilityReads1170.length = 0; + globalThis.fetch = (async (input: RequestInfo | URL) => { + const url = new URL( + typeof input === 'string' + ? input + : input instanceof URL + ? input.toString() + : input.url + ); + const firstPage = Number(url.searchParams.get('offset') ?? 0) === 0; + if (url.pathname.endsWith('/v_products_with_merchant_trust')) { + if (opts.viewFails) return json1170({ message: 'view down' }, 500); + return json1170( + firstPage + ? [ + viewRow1170('a-sold', 'master-a', 2_694_000), + viewRow1170('a-in', 'master-a', 3_140_000), + viewRow1170('b-new', 'master-b', 5_000_000), + ] + : [] + ); + } + if (url.pathname.endsWith('/products')) { + const select = url.searchParams.get('select') ?? ''; + if (select === 'id,availability') { + if (firstPage) { + availabilityReads1170.push( + url.searchParams.get('cluster_id') ?? '' + ); + } + if (opts.availabilityFails) { + return json1170( + { message: 'column products.availability does not exist' }, + 400 + ); + } + return json1170( + firstPage + ? [ + { id: 'a-sold', availability: 'out_of_stock' }, + { id: 'a-in', availability: 'in_stock' }, + { id: 'b-new', availability: null }, + ] + : [] + ); + } + // The offer fallback when the trust view fails. + return json1170( + firstPage + ? [ + { + id: 'a-sold', + cluster_id: 'master-a', + platform: 'fptshop', + title: 't', + price_current: 2_694_000, + stock: 0, + url: 'https://fptshop.com.vn/p', + merchants: { id: 'm-1', name: 'FPT Shop' }, + }, + ] + : [] + ); + } + return json1170([]); + }) as typeof fetch; + }; + + // The batch read attaches availability per chunk, like the single read. + mockOffers1170({}); + const batch1170 = await getMasterProductOffersBatch([ + 'master-a', + 'master-b', + ]); + assert.deepEqual(availabilityReads1170, ['in.(master-a,master-b)']); + assert.deepEqual( + (batch1170.get('master-a') ?? []).map((o) => [o.id, o.availability]), + [ + ['a-sold', 'out_of_stock'], + ['a-in', 'in_stock'], + ] + ); + assert.deepEqual( + (batch1170.get('master-b') ?? []).map((o) => [o.id, o.availability]), + [['b-new', null]] + ); + mockOffers1170({ viewFails: true }); + const fallback1170 = await getMasterProductOffersBatch(['master-a']); + assert.deepEqual( + (fallback1170.get('master-a') ?? []).map((o) => [o.id, o.availability]), + [['a-sold', 'out_of_stock']] + ); + + // No missing-column fallback: a failed availability read fails the + // offer read, single and batch, with or without the trust view (#1174). + for (const viewFails of [false, true]) { + mockOffers1170({ viewFails, availabilityFails: true }); + await assert.rejects( + () => getMasterProductOffers('master-a'), + (err: unknown) => err instanceof RateDataUnavailableError + ); + await assert.rejects( + () => getMasterProductOffersBatch(['master-a']), + (err: unknown) => err instanceof RateDataUnavailableError + ); + } + + // The radar never cites a sold-out or discontinued listing (#1170). + const radarMaster1170 = { + id: 'master-a', + slug: 'samsung-galaxy-buds3-pro', + name: 'Samsung Galaxy Buds3 Pro', + brand: 'Samsung', + min_price: 3_140_000, + max_price: 3_690_000, + } as unknown as Parameters< + typeof computeCrossPlatformDealRadarFromData + >[0][number]['master']; + const radarOffer1170 = ( + id: string, + platform: string, + price: number, + availability: string | null + ) => + ({ + id, + platform, + title: `Offer ${id}`, + price_current: price, + price_original: 4_490_000, + stock: 0, + url: `https://example.com/${id}`, + availability, + merchant: { + id: `m-${id}`, + name: `Merchant ${id}`, + platform, + is_official: true, + risk_score: 5, + }, + }) as never; + const radar1170 = computeCrossPlatformDealRadarFromData( + [ + { + master: radarMaster1170, + offers: [ + radarOffer1170('fpt-sold', 'fptshop', 2_694_000, 'out_of_stock'), + radarOffer1170('fpt-gone', 'fptshop', 3_032_000, 'discontinued'), + radarOffer1170('tgdd', 'tgdd', 3_140_000, 'in_stock'), + radarOffer1170('cps', 'cellphones', 3_690_000, null), + ], + }, + ], + { categorySlug: 'all', limit: 10 } + ); + const radarText1170 = JSON.stringify(radar1170); + assert.ok(radar1170.priceSpreadLeaders.length > 0, radarText1170); + assert.ok(!radarText1170.includes('fpt-sold'), radarText1170); + assert.ok(!radarText1170.includes('fpt-gone'), radarText1170); + assert.ok(!radarText1170.includes('2694000'), radarText1170); + assert.equal(radar1170.totalOffersAnalyzed, 2); + + // stock 0 means "no count read", not sold out; availability decides (#1171). + const best1171 = selectBestOfferFromListings([ + { + id: 'fpt-sold', + title: 'Buds3 Pro', + price_current: 2_694_000, + stock: 0, + availability: 'out_of_stock', + url: 'https://fptshop.com.vn/p', + platform: 'fptshop', + }, + { + id: 'fpt-gone', + title: 'Buds3 Pro', + price_current: 3_032_000, + availability: 'discontinued', + url: 'https://fptshop.com.vn/q', + platform: 'fptshop', + }, + { + id: 'tgdd', + title: 'Buds3 Pro', + price_current: 3_140_000, + stock: 0, + availability: 'in_stock', + url: 'https://www.thegioididong.com/p', + platform: 'tgdd', + }, + { + id: 'cps', + title: 'Buds3 Pro', + price_current: 3_690_000, + stock: 0, + url: 'https://cellphones.com.vn/p', + platform: 'cellphones', + }, + ] as unknown as Parameters[0]); + assert.equal(best1171.bestOffer?.id, 'tgdd'); + assert.equal(best1171.bestOffer?.price, 3_140_000); + assert.deepEqual(best1171.offerPlatforms, ['tgdd', 'cellphones']); + // An unknown availability with stock 0 is still buyable. + const unknown1171 = selectBestOfferFromListings([ + { + id: 'only', + title: 'Buds3 Pro', + price_current: 3_140_000, + stock: 0, + url: 'https://www.thegioididong.com/p', + platform: 'tgdd', + }, + ] as unknown as Parameters[0]); + assert.equal(unknown1171.bestOffer?.id, 'only'); + globalThis.fetch = origFetch1170; + + console.log( + ' ✅ [126k/135] Batch offer availability, sold-out radar and best offer, stock 0 (#1170, #1171, #1174) passed' + ); + } + // ------------------------------------------------------------------------- // 127. Rate Server Index & Extension Entity, Slug, and Category Bounds (#1029) // ------------------------------------------------------------------------- diff --git a/apps/web/src/server/rate/api-handler.ts b/apps/web/src/server/rate/api-handler.ts index ffce902dd..f28a6e7a3 100644 --- a/apps/web/src/server/rate/api-handler.ts +++ b/apps/web/src/server/rate/api-handler.ts @@ -5,6 +5,10 @@ import { MAX_VALID_VND_PRICE, normalizeOfferOriginalPrice, } from '@/lib/rate-api'; +import { + isOfferUnavailable, + type OfferAvailability, +} from '@/lib/product-market-stats'; export const PUBLIC_API_CORS_HEADERS: Record = { 'Access-Control-Allow-Origin': '*', @@ -243,6 +247,7 @@ export interface WatchlistCandidateOffer { price_current: number; price_original?: unknown; stock?: unknown; + availability?: OfferAvailability | null; url?: unknown; platform?: unknown; merchant?: { @@ -274,19 +279,16 @@ export function withPlausibleMinPrice( export function selectBestOfferFromListings( offers: readonly WatchlistCandidateOffer[] ): { bestOffer: WatchlistBestOffer | null; offerPlatforms: string[] } { - const safeOffers = Array.isArray(offers) ? offers : []; + // A sold-out or discontinued listing is never the best offer. stock is no + // signal: the crawlers report 0 when they read no count (DOS/Rate#1171). + const safeOffers = (Array.isArray(offers) ? offers : []).filter( + (o) => !isOfferUnavailable(o) + ); // A bait-price listing is never the best offer (DOS/Rate#797). const valid = plausibleOffers(safeOffers).filter((o) => { if (!o || typeof o !== 'object') return false; const price = parseFiniteDecimalInput(o.price_current); - const stock = o.stock == null ? 1 : parseFiniteDecimalInput(o.stock); - return ( - Number.isFinite(stock) && - stock > 0 && - Number.isFinite(price) && - price > 0 && - price <= MAX_VALID_VND_PRICE - ); + return Number.isFinite(price) && price > 0 && price <= MAX_VALID_VND_PRICE; }); const normalizeOfferPlatform = (o: WatchlistCandidateOffer): string => String(o.merchant?.platform || o.platform || 'shopee') diff --git a/apps/web/src/server/rate/deals.ts b/apps/web/src/server/rate/deals.ts index 8b6ff6c1e..fcd561ad5 100644 --- a/apps/web/src/server/rate/deals.ts +++ b/apps/web/src/server/rate/deals.ts @@ -18,6 +18,7 @@ import { getRadarSignal, type RadarSignal, } from '../../lib/deal-radar'; +import { isOfferUnavailable } from '../../lib/product-market-stats'; import { plausibleOffers } from '@repo/shared-data/rules'; import { RATE_CACHE_TAGS, @@ -302,12 +303,14 @@ export function computeCrossPlatformDealRadarFromData( const clusterOffers = Array.isArray(offers) ? offers : []; // Bait-price listings (far below every other store) set no market floor, - // spread, deal or trap (DOS/Rate#797). + // spread, deal or trap (DOS/Rate#797), and neither do sold-out or + // discontinued listings, which keep their last price (DOS/Rate#1170). const validOffers = plausibleOffers( clusterOffers .filter( (o): o is MerchantOffer => Boolean(o && typeof o === 'object' && !Array.isArray(o)) && + !isOfferUnavailable(o) && typeof o.price_current === 'number' && Number.isFinite(o.price_current) && o.price_current > 0 && From 09c7a962ea59a08443f97a8f62de819e4b76c5ba Mon Sep 17 00:00:00 2001 From: JOY <5027251+JOY@users.noreply.github.com> Date: Wed, 28 Oct 2026 11:27:00 +0700 Subject: [PATCH 13/15] docs(proposals): extension as a primary data source (#1175) (#1178) * docs(proposals): extension as a primary data source (#1175) Decision document for JOY (Vietnamese, dark HTML) with an English companion. Covers the current extension and ingest quarantine, how Honey, Keepa and BeeCost source data, a minimal observation payload, consent and store review, anti-poisoning, cold start, per-marketplace coverage, legal notes, why the client is public while verification stays in DOS/Rate-Services, options, milestones, metrics and open questions. No product code changes. Co-Authored-By: Claude Opus 5.5 --- .../2026-10-28-extension-data-source.html | 306 ++++++++++++++++++ .../2026-10-28-extension-data-source.md | 96 ++++++ 2 files changed, 402 insertions(+) create mode 100644 Docs/Proposals/2026-10-28-extension-data-source.html create mode 100644 Docs/Proposals/2026-10-28-extension-data-source.md diff --git a/Docs/Proposals/2026-10-28-extension-data-source.html b/Docs/Proposals/2026-10-28-extension-data-source.html new file mode 100644 index 000000000..11f6125a5 --- /dev/null +++ b/Docs/Proposals/2026-10-28-extension-data-source.html @@ -0,0 +1,306 @@ + + + + + + + Extension làm nguồn dữ liệu + + + +
+ Đề xuất, chưa code + Chờ JOY trả lời 7 câu +

Mở rộng extension thành nguồn dữ liệu chính

+

Ngày 28/10/2026 - Issue DOS/Rate#1175 - Bản tóm tắt tiếng Anh: 2026-10-28-extension-data-source.md - Người soạn: session con của Rate Core PO

+ +
+

Tóm tắt một đoạn

+

Crawler đang đụng tường bot (TikTok tạm dừng ở RS#658, Lazada search bị trả về trang chặn (punish page) ở RS#659, Shopee chỉ chạy được qua một runner đã đăng nhập). Trình duyệt thật của người dùng không gặp những tường này vì chính người dùng mở trang. Đề xuất: phương án B, cho extension gửi một quan sát tối thiểu (giá, tồn kho, mã SKU, URL, thời điểm, sàn, không có dữ liệu cá nhân) khi người dùng đã đồng ý, lưu vào vùng cách ly, và chỉ đưa lên giá công khai sau khi Rate Services xác minh chéo với crawler hoặc với người dùng độc lập khác. Crawler vẫn giữ làm nguồn khởi động và đối chứng. Extension vẫn công khai (người dùng tải về thì giải nén ra đọc được), còn luật chống đầu độc và chấm điểm tin cậy nằm ở DOS/Rate-Services private. Extension không bao giờ tự tải trang người dùng không mở, không né bot, không giải captcha.

+
+ +

1. Hiện trạng apps/extension (đọc từ mã, nhánh dev ngày 28/10)

+ +

1.1. Extension đọc gì

+
    +
  • Chạy content script trên 10 sàn và chuỗi bán lẻ: Shopee, Lazada, Tiki, TikTok (*.tiktok.com), CellphoneS, Thế Giới Di Động, FPT Shop, Hoàng Hà, Di Động Việt, Phong Vũ (manifest.json). Quyền khai báo: storage, sidePanel và host của 10 sàn cộng rate.vn.
  • +
  • Chỉ xử lý trang chi tiết sản phẩm có mã sản phẩm trong URL, bỏ trang chủ, danh mục, tìm kiếm (extractProductSignalFromDom).
  • +
  • Lấy: URL đã cắt tham số theo dõi, mã sản phẩm và mã shop từ URL, tiêu đề, phiên bản đang chọn, giá hiện tại, giá gạch ngang, số sao và số lượt đánh giá. Ưu tiên JSON-LD, sau đó mới tới selector DOM. Chưa đọc tồn kho.
  • +
+ +

1.2. Hai luồng gửi lên server

+
Mỗi lần mở trang sản phẩm (luôn chạy, không cần opt-in): + GET /api/v1/rate/extension/lookup?platform&url&title&price&... + -> chỉ đọc, trả giá lịch sử, nơi bán khác, phán định giá ảo. Không ghi DB. + +Chỉ khi người dùng bật "Đóng góp phát hiện sản phẩm mới (Opt-In)" (mặc định TẮT): + POST /api/v1/rate/extension/ingest { platform, externalItemId, externalShopId, + url, title, selectedVariant, price, originalPrice, ratingStar, + ratingCount, userConsentOptIn: true } + -> Zod + giới hạn 15 lần/phút/IP (bộ nhớ trong của từng instance serverless, + không phải giới hạn toàn cục) + chặn phụ kiện + kiểm host khớp sàn + -> RPC rate.enqueue_crowd_verify_signal (không dùng service role) + -> chèn 1 job 'extension_crowd_verify' vào rate.crawl_jobs + (trần 120 job/phút toàn hệ thống, đây là giới hạn toàn cục duy nhất) + -> worker Rate Services nhận job như một yêu cầu CÀO LẠI URL đó
+ +

1.3. "Cách ly" hiện tại nghĩa là gì

+
    +
  • Tín hiệu từ người dùng không bao giờ ghi thẳng vào giá công khai. Giá người dùng thấy chỉ nằm trong payload của job.
  • +
  • Theo đọc mã Rate Services (mô tả chung), worker không có nhánh xử lý riêng cho loại job này: nó cào lại URL như mọi job khác. Tức là giá người dùng thấy không được dùng làm dữ liệu, chỉ là cái cớ để cào. Khi crawler bị chặn ở sàn đó, tín hiệu cộng đồng hiện không giúp được gì. Đây là lý do chính cần đề xuất này.
  • +
+ +
+

1.4. Những điểm lệch phát hiện khi đọc mã (cần sửa dù JOY chọn phương án nào)

+
    +
  1. Nhãn opt-in trong side panel nói "Chỉ gửi URL sản phẩm công khai đã cắt sạch tham số theo dõi", nhưng payload thật gửi mười trường dữ liệu (cộng cờ đồng ý): nền tảng, mã sản phẩm, mã shop, URL, tiêu đề, phiên bản, giá, giá gốc, số sao, số lượt đánh giá. Lời công bố phải khớp dữ liệu gửi đi; Chrome Web Store coi công bố nổi bật trong giao diện là điều kiện để sự đồng ý có giá trị [6].
  2. +
  3. CHROMEWEBSTORE.md giải trình quyền tabs và host localhost:3000 nhưng manifest.json không có hai quyền này; ngược lại manifest có năm host mà tài liệu không giải trình: TikTok, Hoàng Hà, Di Động Việt, Phong Vũ, www.rate.vn. Mục công bố quyền riêng tư của tài liệu này cũng chỉ kể 6 tên miền và nói extension "chỉ chạy trên trang chi tiết sản phẩm", trong khi content script khớp mọi đường dẫn của 10 sàn (việc lọc trang sản phẩm diễn ra trong mã, sau khi script đã chạy).
  4. +
  5. Host https://*.tiktok.com/* cho content script chạy trên toàn bộ TikTok (cả video, tin nhắn), rộng hơn mức cần cho trang sản phẩm. Match pattern hỗ trợ giới hạn theo đường dẫn, nên có thể thu hẹp.
  6. +
  7. Trang /privacy-policy của rate.vn chưa nhắc tới extension.
  8. +
  9. Luồng lookup mặc định, không cần opt-in, đã gửi URL, tiêu đề, giá, mã sản phẩm, mã shop (và IP theo bản chất HTTP) lên rate.vn ở mọi lần mở trang sản phẩm. Chính sách Chrome cho phép gửi hoạt động duyệt web khi phục vụ tính năng người dùng thấy và được công bố nổi bật [6]; giả định của người soạn là luồng này hợp lệ nếu được công bố rõ, nhưng nó cũng là dữ liệu duyệt web theo Luật 91/2025/QH15, nên cần đưa vào câu hỏi cho ý kiến pháp lý (mục 4.7).
  10. +
+

Chưa xác minh extension đã được phát hành trên Chrome Web Store hay chưa.

+
+ +

2. Honey, Keepa, BeeCost lấy dữ liệu thế nào (chỉ từ nguồn công khai)

+
+ + + + + + + + + + +
Sản phẩmĐiều đã công bố hoặc đã được kiểm chứngBài học cho Rate
Honey (PayPal)Trang "Data and privacy" của Honey nói họ thu thập thông tin sản phẩm chung như giá và tình trạng còn hàng để chạy lịch sử giá và Droplist, chỉ trên các trang mua sắm họ hỗ trợ, và dữ liệu sự kiện không chứa thông tin định danh [1]. Tổ chức datarequests.org cho rằng Honey thu thập lịch sử duyệt web nhiều hơn mức chính sách nói và đã khiếu nại lên cơ quan bảo vệ dữ liệu [2].Mô hình gần nhất với đề xuất: extension đọc giá trên trang người dùng xem. Rủi ro uy tín lớn nhất là làm nhiều hơn điều mình công bố.
KeepaTrang Firefox Add-ons của Keepa nói extension gửi mã ASIN của sản phẩm đang xem để vẽ biểu đồ và không lưu gì về người dùng [3]. Nhà nghiên cứu Wladimir Palant (2021) ghi nhận extension giữ kết nối WebSocket với một mã người dùng cố định, gửi số sao và hạng bán, và nhận lệnh từ server để tải nền các trang Amazon người dùng không mở rồi gửi dữ liệu về [4]. Một thảo luận trên nhóm Chromium Extensions cũng nêu việc này [5]. Keepa còn cung cấp dữ liệu lịch sử giá qua API cho bên ngoài [5b].Ví dụ cần tránh: biến máy người dùng thành crawler phân tán. Đó đúng là logic cào dữ liệu, trái tinh thần chính sách store, và không được đặt trong DOS/Rate. Rate chỉ đọc trang người dùng tự mở.
BeeCost (Việt Nam)Có extension cho Chrome và Cốc Cốc, hiện lịch sử giá trên Shopee, Tiki, Lazada, Sendo [7][8]; nhà phát triển nói có hơn 100 triệu sản phẩm để so sánh [9]. Một bài đánh giá nói khả năng lấy dữ liệu tốt nhất trên Shopee, chưa ổn định trên Lazada và FPT Shop [10]. Không tìm thấy tài liệu công khai nào mô tả cách BeeCost thu thập dữ liệu hay chính sách quyền riêng tư của họ.Chứng minh người dùng Việt Nam chấp nhận extension lịch sử giá, và Cốc Cốc là kênh phân phối đáng kể. Không suy đoán thêm về cách họ làm.
+

Các nguồn [2], [4], [5] là bên thứ ba và có thể đã cũ; chúng được dẫn để thấy rủi ro, không phải để kết luận hành vi hiện tại của các sản phẩm đó.

+ +

3. Vì sao trình duyệt thật né được tường bot

+
    +
  • Trang đã được chính người dùng mở, có cookie, phiên đăng nhập, dấu vân tay trình duyệt và IP dân dụng thật. Extension chỉ đọc DOM đã hiện ra, không phát thêm request nào tới sàn, nên sàn không có gì khác thường để chặn.
  • +
  • Lưu lượng tự nhiên phân tán: mỗi người xem vài trang, không có đỉnh truy cập từ một IP.
  • +
  • Đổi lại: Rate không chọn được trang nào được xem. Dữ liệu dồn vào sản phẩm phổ biến, sản phẩm ít người xem có thể không bao giờ được cập nhật. Vì vậy crawler vẫn cần.
  • +
+ +

4. Những gì thay đổi nếu extension là nguồn chính

+ +

4.1. Payload quan sát tối thiểu (đề xuất ExtensionObservation v1)

+
+ + + + + + + + + + + +
TrườngÝ nghĩaGhi chú
schema_versionPhiên bản payloadBắt buộc, để server từ chối bản cũ.
marketplaceSàn (10 giá trị hiện có)Server kiểm lại từ host của URL.
listing_urlURL chuẩn hóa, không queryĐã cắt tham số theo dõi như hiện nay.
external_item_id, external_shop_idMã listing và mã shop của sànMã của gian hàng, không phải của người dùng.
sku_id, variant_labelMã phiên bản (ví dụ model id của Shopee) và nhãn phiên bản đang chọnKhớp với mô hình Item, Variant, Listing (#1129).
price_vnd, list_price_vndGiá bán hiển thị và giá gạch ngangMục tiêu: chỉ lấy giá công khai chính của trang, bỏ giá sau voucher, xu, giá thành viên, vì chúng phụ thuộc tài khoản. Extractor hiện chưa phân biệt được hai loại giá này; đây là việc của M2 và cần kiểm từng sàn.
stock_state, stock_qtyCòn hàng, hết hàng, sắp hết, không rõ; số lượng nếu trang hiệnTrường mới, extractor hiện chưa đọc.
observed_atThời điểm client thấy giáServer ghi thêm received_at và tin received_at hơn observed_at.
extractorNguồn trích xuất (JSON-LD hay DOM) và phiên bản extensionĐể loại bản extractor hỏng.
submitter_idMã theo lượt cài, do server cấp khi người dùng đồng ý; server tự ghi thời điểm cấpCần cho chống đầu độc. Coi là dữ liệu cá nhân đã bút danh hóa (pseudonymous), lưu riêng, không công khai, người dùng yêu cầu xóa được. Kẻ tấn công vẫn xin được mã mới tùy ý, nên mã này chỉ giới hạn được client trung thực; phòng thủ thật nằm ở 4.4.
+

Không bao giờ gửi: cookie, tên tài khoản sàn, giỏ hàng, đơn hàng, địa chỉ, số điện thoại, từ khóa tìm kiếm, referrer, query string, nội dung tab khác, lịch sử duyệt. Bỏ ratingStar, ratingCount khỏi luồng này trừ khi JOY muốn giữ.

+

IP: không lưu IP nguyên. Để kiểm "người gửi độc lập" ở 4.4, phía nhận chỉ giữ một mã băm có muối của dải mạng (ví dụ /24 hoặc ASN) trong thời gian ngắn (vài tuần), không gắn vào giá công khai. Mã băm này vẫn là dữ liệu cá nhân và phải được công bố ở 4.2.

+ +

4.2. Lời đồng ý và chính sách quyền riêng tư

+
    +
  • Giữ opt-in, mặc định tắt. Thêm màn hình chào khi cài lần đầu, nói rõ gửi những trường nào (kể cả mã người gửi và mã băm dải mạng), để làm gì, và nút "Không, cảm ơn" nổi bật ngang nút "Đồng ý". Theo FAQ của Chrome Web Store, sự đồng ý chỉ có giá trị khi đi kèm công bố nổi bật ngay trong giao diện extension; công bố chỉ nằm trong chính sách quyền riêng tư là không đủ [6].
  • +
  • Có nút xem "những gì tôi đã gửi gần đây", tắt bất kỳ lúc nào, và yêu cầu xóa theo submitter_id. Đây cũng là quyền của chủ thể dữ liệu theo Luật Bảo vệ dữ liệu cá nhân 91/2025/QH15, hiệu lực từ 01/01/2026, và Nghị định 356/2025/NĐ-CP [11][12].
  • +
  • Cập nhật /privacy-policy có mục riêng cho extension, kèm công bố "Limited Use": chỉ dùng cho tính năng giá, không quảng cáo, không bán, không chuyển cho bên thứ ba. FAQ yêu cầu công bố này ở trang chủ hoặc cách một cú nhấp (trang chính sách là được), và thêm một bước xác nhận riêng trong developer dashboard khi nộp [6].
  • +
+ +

4.3. Rủi ro duyệt Chrome Web Store và Edge Add-ons

+
    +
  • Mục đích duy nhất: chính sách yêu cầu dữ liệu thu thập phải cần thiết cho mục đích duy nhất đã công bố và ở mức tối thiểu [6]. Đánh giá của người soạn (không phải lời của chính sách): "kiểm tra giá và lịch sử giá" có thể bao gồm việc gửi quan sát giá, miễn là dữ liệu tối thiểu và người dùng thấy lợi ích; người duyệt store có thể nhìn khác.
  • +
  • Hoạt động duyệt web và nội dung trang là dữ liệu người dùng theo định nghĩa của Chrome; đọc nội dung trang người dùng xem được tính là xử lý dữ liệu người dùng [6]. Vì vậy công bố và đồng ý ở 4.2 là bắt buộc, không phải tùy chọn.
  • +
  • Rủi ro bị từ chối hoặc gỡ: lời công bố lệch payload (mục 1.4), quyền host rộng (TikTok), tài liệu store lệch manifest. Sửa hết trước khi nộp.
  • +
  • Edge Add-ons có quy trình duyệt riêng; session này chưa đọc chi tiết chính sách Edge, cần kiểm khi chuẩn bị nộp. Cốc Cốc cài từ Chrome Web Store.
  • +
+ +

4.4. Chống đầu độc dữ liệu

+

Nguyên tắc: mọi bản gửi đều là không tin cậy. Mã extension công khai và chạy trên máy người dùng, ai cũng sửa được hoặc gọi thẳng API. Không có cách nào chứng thực client.

+
+

Lớp công khai (DOS/Rate, ở ingest)

    +
  • Kiểm định dạng, miền giá trị, host khớp sàn, chặn phụ kiện.
  • +
  • Giới hạn tần suất thô theo IP và theo submitter_id (chỉ chặn được client trung thực hoặc lỗi; kẻ tấn công đổi mã được).
  • +
  • Chỉ lưu vào vùng cách ly, không chấm điểm, không quyết định.
  • +
+

Lớp private (DOS/Rate-Services)

    +
  • Điểm tin cậy người gửi (tuổi của mã tính theo thời điểm server cấp, lịch sử khớp, tài khoản rate.vn nếu có). Mã mới bắt đầu ở mức tin cậy thấp, nên đổi mã liên tục không có lợi.
  • +
  • Đối chiếu với crawler và với người gửi độc lập khác (khác mã người gửi, khác mã băm dải mạng, khác thời điểm).
  • +
  • Phát hiện ngoại lai so với giá gần đây, giới hạn biên độ thay đổi.
  • +
  • Ngưỡng cụ thể, danh sách chặn, trọng số: không công bố.
  • +
+
+

Cách ly tới khi được xác nhận: một quan sát chỉ lên giá công khai khi khớp với crawler trong biên sai số, hoặc khớp với đủ số người gửi độc lập có điểm tin cậy. Một kẻ tạo hàng nghìn lượt cài giả vẫn phải vượt qua tính độc lập và lịch sử tin cậy.

+

Lưu ý về trần hiện tại: trần 120 job/phút toàn hệ thống trong RPC hiện nay hợp với "yêu cầu cào lại" nhưng không hợp với nguồn chính: vừa là nút thắt, vừa cho phép một kẻ tấn công làm đầy trần để chặn người dùng thật. Phương án B cần một bảng cách ly riêng có giới hạn theo người gửi thay vì trần toàn cục.

+ +

4.5. Khởi động lạnh (cold start)

+
    +
  • Extension chỉ hữu ích cho người dùng khi đã có lịch sử giá, mà lịch sử giá lại cần người dùng. Crawler phá vòng lặp này: tiếp tục chạy ở các sàn còn cào được để có dữ liệu ban đầu, và làm mốc đối chiếu.
  • +
  • Giả định để ước lượng (chưa có số đo): 1.000 người dùng opt-in, mỗi người xem khoảng 5 trang sản phẩm điện thoại mỗi ngày, cho khoảng 5.000 quan sát/ngày, dồn vào vài trăm mẫu phổ biến. Đủ để làm tươi giá sản phẩm hot, chưa đủ cho đuôi dài. Cần số cài đặt thật để kiểm chứng.
  • +
  • Kênh tăng trưởng: nút cài trên trang sản phẩm rate.vn, giá trị tự thân của extension (phán định giảm giá ảo), Cốc Cốc.
  • +
+ +

4.6. Độ phủ theo sàn

+
+ + + + + + +
SànCrawler hiện nay (theo PO Rate Services)Extension thêm được gìRủi ro riêng
ShopeeChỉ chạy qua một runner đã đăng nhậpGiá trị cao nhất: dữ liệu thật từ nhiều ngườiClass CSS bị làm rối, đổi thường xuyên (selector hiện có như .pqTWkA); giá phụ thuộc tài khoản nhiều
LazadaSearch bị trả về trang chặn (RS#659)Giá trang chi tiết khi người dùng xemExtension không thay được search discovery
TikiChưa có báo cáo bị chặn (chưa xác minh)Chủ yếu để đối chiếuThấp
TikTok ShopTạm dừng (RS#658)Có thể là nguồn duy nhấtPhải thu hẹp quyền host; trang sản phẩm hay mở trong app chứ không trên web, độ phủ có thể thấp
CellphoneS, TGDĐ, FPT Shop, Hoàng Hà, Di Động Việt, Phong VũChưa có báo cáo bị chặn (chưa xác minh)Đối chiếu, làm tươi giá giữa các lượt càoGiá và tồn kho có thể khác theo tỉnh; đề xuất chỉ lấy giá toàn quốc, bỏ tồn kho theo tỉnh để không phải gửi vị trí
+ +

4.7. Pháp lý và điều khoản sàn

+
    +
  • Khác biệt then chốt so với crawler: không có request nào của Rate tới sàn; người dùng tự xem trang, extension đọc những gì đã hiện trên màn hình của họ và chỉ gửi khi họ đồng ý.
  • +
  • Điều khoản của nhiều sàn cấm thu thập dữ liệu tự động. Việc đọc thụ động trang người dùng tự mở có thuộc phạm vi đó hay không là vùng xám; Honey, Keepa, BeeCost đã hoạt động nhiều năm, nhưng đó không phải là kết luận pháp lý. Rủi ro thực tế: sàn đổi DOM để làm hỏng extractor, hoặc gửi thư yêu cầu.
  • +
  • Giá và tồn kho là dữ kiện. Đây là hiểu biết chung, chưa có luật sư xác nhận cho luật Việt Nam. Đề xuất xin ý kiến pháp lý trước khi phát hành rộng (mốc M4).
  • +
  • Dữ liệu cá nhân: payload thiết kế để không có; riêng submitter_id, IP và mã băm dải mạng được xử lý như dữ liệu cá nhân theo Luật 91/2025/QH15 [11].
  • +
  • Câu hỏi cho ý kiến pháp lý: (a) đọc thụ động trang người dùng tự mở có vi phạm điều khoản sàn không; (b) luồng lookup mặc định (gửi URL, tiêu đề, giá của trang đang xem, không cần opt-in) có cần đồng ý riêng theo Luật 91/2025/QH15 không; (c) thời hạn lưu mã người gửi và mã băm dải mạng.
  • +
+ +

5. Câu hỏi của JOY: vì sao extension công khai còn crawler thì private?

+
+

Trả lời ngắn: extension không phải crawler. Nó chỉ đọc trang người dùng đang xem, khi họ đồng ý, và gửi lên rate.vn. Phần nhạy cảm không nằm ở việc đọc trang, mà nằm ở cách server quyết định tin bản gửi nào. Phần đó private.

+
+
    +
  1. Client buộc phải lộ. Extension được phát cho mọi người; tải file .crx về giải nén là đọc được toàn bộ mã. Giấu repo không giấu được client, chỉ làm mất lợi ích của open-core: người dùng và người duyệt store kiểm được extension làm đúng điều nó nói. Với một extension đọc trang mua sắm, sự minh bạch này là điểm bán hàng (ngược với các tranh cãi của Honey và Keepa ở mục 2).
  2. +
  3. Extension không chứa gì thuộc loại crawler. Không tải trang người dùng không mở, không proxy, không giải captcha, không né phát hiện bot, không gọi API nội bộ của sàn. Selector đọc giá trên trang người dùng xem không phải bí mật: ai mở DevTools cũng thấy.
  4. +
  5. Phía nhận mới là chỗ bị tấn công. Kẻ đầu độc không cần sửa extension, họ gọi thẳng API. Nếu họ đọc được ngưỡng, trọng số, cách đối chiếu với crawler, họ sẽ gửi dữ liệu nằm vừa dưới ngưỡng. Vì vậy chấm điểm tin cậy, đối chiếu crawler, ngưỡng và giới hạn chi tiết nằm ở DOS/Rate-Services.
  6. +
  7. Giữ bí mật là lớp phòng thủ thêm, không phải lớp duy nhất. Thiết kế vẫn phải đứng vững nếu luật bị lộ: cách ly mặc định, cần xác nhận độc lập, crawler làm mốc. Bí mật chỉ làm việc lách tốn công hơn.
  8. +
+ +

Bảng phân chia sở hữu

+
+ + + + + + + + + + +
Thành phầnRepoVì sao
Extension (đọc trang, lời đồng ý, side panel)DOS/Rate (public)Phát cho người dùng, đằng nào cũng đọc được; minh bạch giúp qua duyệt store và tạo niềm tin.
Schema payload ExtensionObservationDOS/Rate (packages/shared-data)Là hợp đồng giữa client và server; client cần nó, Rate Services dùng qua submodule.
Ingest API và kiểm tra cơ bản (định dạng, miền giá trị, host, đồng ý, giới hạn thô)DOS/Rate (apps/web)Chỉ là kiểm hợp lệ, không có luật tin cậy. Không chấm điểm ở đây.
Bảng cách ly (lưu quan sát chưa xác minh)Schema: bản tham chiếu ở DOS/Rate; migration chính thức ở DOS-MeCấu trúc bảng không phải bí mật. Anon chỉ ghi qua RPC hẹp, không đọc được.
Xác minh và chấm điểm tin cậy người gửiDOS/Rate-Services (private)Đây là thứ kẻ tấn công muốn đọc.
Đối chiếu với dữ liệu crawlerDOS/Rate-Services (private)Gắn với crawler, vốn đã private.
Ngưỡng, trọng số, danh sách chặn, giới hạn chi tiếtDOS/Rate-Services (private, cấu hình)Lộ ra là bị gửi vừa dưới ngưỡng.
Đưa quan sát đã xác nhận lên giá công khai (price_history)DOS/Rate-Services (job ghi bằng role worker)Chỉ phía private được ghi giá công khai; web chỉ hiển thị kèm nguồn.
Crawler, proxy, captcha, né botDOS/Rate-Services (private)Như hiện nay, quy tắc cứng của AGENTS.md. Không có phần nào vào extension.
+ +

6. Các phương án

+
+ + + + +
Phương ánMô tảĐượcMất
A. Giữ nguyênTín hiệu cộng đồng chỉ là yêu cầu cào lại; chỉ sửa các điểm lệch ở mục 1.4.Rủi ro thấp nhất, tốn ít công (chỉ phần M1).Không giải quyết tường bot: sàn chặn crawler thì tín hiệu vô dụng.
B. Quan sát thụ động, cách ly, xác minh (khuyến nghị)Extension gửi quan sát tối thiểu khi đã đồng ý; Rate Services xác minh chéo rồi mới công khai; crawler làm mốc.Có dữ liệu ở Shopee, Lazada, TikTok mà không cần né bot; minh bạch; ranh giới repo rõ.Phụ thuộc số người cài; đuôi dài thưa; cần bảng mới (migration DOS-Me), việc ở cả hai repo; rủi ro duyệt store.
C. Crawler phân tán trong extensionServer ra lệnh cho extension tải nền trang người dùng không mở (kiểu Keepa bị báo cáo [4]).Phủ rộng, chủ động.Là logic cào dữ liệu, không được ở DOS/Rate; dùng IP và phiên của người dùng; nguy cơ bị gỡ khỏi store và mất uy tín. Không khuyến nghị.
+

Bổ sung độc lập với cả ba: nguồn chính thức (API affiliate hoặc đối tác của sàn) nếu có, do Rate Services đánh giá riêng.

+ +

7. Khuyến nghị

+
+

Chọn phương án B, triển khai theo mốc, có giai đoạn chạy ẩn (shadow) để đo trước khi bất kỳ quan sát nào lên giá công khai. Sửa ngay các điểm lệch ở mục 1.4 vì chúng là rủi ro duyệt store kể cả khi giữ phương án A. Rate Services sở hữu ingestion phía sau, xác minh và đưa lên giá công khai.

+
+ +

8. Các mốc

+
+ + + + + + +
MốcNội dungRepoĐiều kiện qua mốc
M0JOY quyết định về đề xuất này-JOY trả lời mục 10
M1Sửa lời công bố cho khớp payload, mục extension trong /privacy-policy, CHROMEWEBSTORE.md khớp manifest, thu hẹp host TikTok, màn hình chào opt-inDOS/RateReview fresh-context, kiểm bằng tay trên 10 sàn
M2Schema ExtensionObservation v1, extractor đọc tồn kho và SKU, ingest lưu vào bảng cách ly mới (migration qua DOS-Me, JOY duyệt)DOS/Rate, DOS-MeKhông ghi gì vào giá công khai; test ingest đầy đủ
M3Xác minh và chấm điểm ở chế độ shadow: chấm nhưng không công khai, 2 đến 4 tuầnDOS/Rate-ServicesCác chỉ số ở mục 9 đạt ngưỡng đề xuất
M4Đưa quan sát đã xác nhận lên price_history kèm nguồn; web hiện "nguồn: người dùng, đã đối chiếu"; ý kiến pháp lý; xác nhận Limited Use trong developer dashboard; nộp Chrome Web Store và EdgeCả haiJOY duyệt bước production và bước nộp store
+ +

9. Chỉ số quyết định thành công

+
+ + + + + + + + +
Chỉ sốNgưỡng đề xuất (để JOY chỉnh)
Độ khớp với crawler trên listing cả hai cùng có (shadow)Ít nhất 98% quan sát lệch không quá 1%
Độ khớp giữa người gửi độc lập trên listing crawler không vào được (TikTok, Shopee và Lazada bị chặn), cộng một mẫu kiểm tra bằng tay mỗi tuầnÍt nhất 95% cặp quan sát cùng giờ lệch không quá 1%; mẫu tay khớp từ 95%
Tỷ lệ quan sát đã lên công khai mà sau đó bị chứng minh sai (bị crawler hoặc mẫu kiểm tay bác trong vòng 24 giờ, với giá lệch quá 1%)Dưới 0,5%
Tỷ lệ opt-in trên người dùng hoạt độngĐo trước, đặt ngưỡng sau M2
Phần trăm listing Shopee, Lazada, TikTok trong catalog có giá tươi dưới 24 giờTăng rõ so với chỉ crawler (đo mốc trước M3)
Tuổi trung vị của giá đang hiển thịGiảm so với mốc trước M3
Bị từ chối hoặc gỡ trên store; khiếu nại quyền riêng tư0
+ +

10. Câu hỏi mở cho JOY

+
1. Chọn phương án nào? Khuyến nghị B. A nếu muốn chờ thêm; C không khuyến nghị.
+
2. Mặc định đồng ý: giữ tắt và hỏi rõ ở màn hình chào (khuyến nghị), hay chỉ để công tắc trong side panel như hiện nay?
+
3. Danh tính người gửi: chỉ mã ẩn danh theo lượt cài, hay khuyến khích đăng nhập rate.vn để bản gửi có trọng số cao hơn?
+
4. Listing chỉ một người thấy và crawler không vào được: ẩn tới khi có xác nhận (khuyến nghị), hay hiện với nhãn "chưa xác minh"?
+
5. Ý kiến pháp lý trước khi phát hành rộng: có thuê luật sư không, ngân sách bao nhiêu?
+
6. Phát hành store: dưới tài khoản nhà phát triển nào, và có nộp Edge cùng lúc với Chrome không?
+
7. Giữ số sao và lượt đánh giá trong payload, hay bỏ để payload chỉ còn giá, tồn kho, SKU (khuyến nghị bỏ)?
+ +

Nguồn

+
    +
  1. Honey, "Data and privacy": joinhoney.com/data-and-privacy
  2. +
  3. datarequests.org (2020), về việc Honey thu thập dữ liệu: datarequests.org/blog/honey-data-collection
  4. +
  5. Keepa trên Firefox Add-ons: addons.mozilla.org/en-US/firefox/addon/keepa
  6. +
  7. Wladimir Palant, "Data exfiltration in Keepa Price Tracker" (2021): palant.info
  8. +
  9. Chromium Extensions group, "Keepa extension is deceptively scraping Amazon in the background": groups.google.com.
    [5b] Thư viện Python cho Keepa API: pypi.org/project/keepa
  10. +
  11. Chrome Web Store, User Data FAQ: developer.chrome.com
  12. +
  13. mytour.vn, về tính năng BeeCost: mytour.vn
  14. +
  15. uplus, review extension BeeCost: uplus.substack.com
  16. +
  17. BeeCost trên Ameblo: ameblo.jp/beecost
  18. +
  19. GHN, "BeeCost Shopee là gì": ghn.vn
  20. +
  21. Cổng thông tin Hà Tĩnh, Luật Bảo vệ dữ liệu cá nhân có hiệu lực từ 01/01/2026: hatinh.gov.vn
  22. +
  23. Thư viện Pháp luật, Nghị định 356/2025/NĐ-CP (chưa đối chiếu với Công báo; cần luật sư xác nhận ngày ban hành và hiệu lực): thuvienphapluat.vn
  24. +
+

Mã nguồn đã đọc (DOS/Rate): apps/extension/manifest.json, apps/extension/CHROMEWEBSTORE.md, apps/extension/src/background/service-worker.ts, apps/extension/src/extractors/ecommerce-detector.ts, apps/extension/src/sidepanel/sidepanel.html, apps/web/src/app/api/v1/rate/extension/ingest/route.ts, apps/web/src/server/rate/extension.ts, apps/web/src/app/[locale]/privacy-policy/page.tsx, apps/web/locales/*.json, supabase/migrations/20261018120101_rate_crowd_verify_signal_rpc.sql. DOS/Rate-Services chỉ được đọc để hiểu chung, không trích mã.

+
+ + diff --git a/Docs/Proposals/2026-10-28-extension-data-source.md b/Docs/Proposals/2026-10-28-extension-data-source.md new file mode 100644 index 000000000..c9ab698f3 --- /dev/null +++ b/Docs/Proposals/2026-10-28-extension-data-source.md @@ -0,0 +1,96 @@ +# Proposal: the browser extension as a primary data source + +- **Date:** 2026-10-28 +- **Issue:** [DOS/Rate#1175](https://github.com/DOS/Rate/issues/1175) +- **Status:** PROPOSAL, awaiting JOY's decisions. No product code has changed. +- **Full decision document (Vietnamese):** [`2026-10-28-extension-data-source.html`](./2026-10-28-extension-data-source.html) + +## Summary + +The private crawlers hit bot walls. TikTok is paused (DOS/Rate-Services#658), Lazada search returns a punish page (DOS/Rate-Services#659), and Shopee works only through one logged-in runner. A real user's browser does not hit these walls, because the user opened the page. + +The recommendation is **Option B**. With consent, the extension sends a minimal observation: price, stock, SKU, listing URL, timestamp and marketplace, and no personal data. The observation goes into a quarantine table. It becomes a public price only after DOS/Rate-Services corroborates it against the crawler or against independent submitters. The crawler stays as the seed and the cross-check. + +The extension never fetches pages the user did not open, never evades bot detection and never solves captchas. + +## Current state (read from `dev`) + +- **Lookup:** on every product page, with no opt-in, the extension sends `GET /api/v1/rate/extension/lookup` with the URL, title, price, item id and shop id. This path is read-only. +- **Ingest:** with the opt-in on (off by default), the extension sends `POST /api/v1/rate/extension/ingest`. The route checks the payload with Zod and allows 15 requests per minute per IP. That limiter is in memory per serverless instance, not global. It then calls the `rate.enqueue_crowd_verify_signal` RPC, which enqueues an `extension_crowd_verify` job in `rate.crawl_jobs`. The RPC caps all crowd jobs at 120 per minute; this is the only global limit. +- **Quarantine today:** from a read of the Rate-Services code, the worker has no separate handler for this job type and re-crawls the URL like any other job. The price the user saw is not used as data, so the crowd signal does not help when the crawler is blocked. +- **Mismatches to fix under any option:** + - The opt-in label says only the cleaned URL is sent. The payload actually has ten fields: platform, item id, shop id, URL, title, variant, price, original price, rating and rating count. + - `CHROMEWEBSTORE.md` justifies `tabs` and `localhost`, which the manifest does not request. It omits five hosts that the manifest does request: TikTok, Hoang Ha, Di Dong Viet, Phong Vu and `www.rate.vn`. Its privacy section says the extension "only activates" on product pages of 6 domains, while the content script matches every path on 10 sites. + - The default lookup sends browsing data without opt-in. That is probably allowed for a user-facing feature if it is disclosed, but this is an assumption and belongs in the legal review. + - `*.tiktok.com` is broader than product pages need. + - `/privacy-policy` does not mention the extension. + - The extractor does not read stock. + +## Comparable products (public sources only) + +- **Honey:** Honey says it collects general product data such as price and availability, only on supported stores, to power price history and Droplist ([joinhoney.com](https://www.joinhoney.com/data-and-privacy/)). datarequests.org says Honey collects more browsing data than its policy states ([datarequests.org](https://datarequests.org/blog/honey-data-collection)). +- **Keepa:** Keepa says its add-on sends the ASIN of the product the user is viewing ([AMO](https://addons.mozilla.org/en-US/firefox/addon/keepa/)). In 2021, Wladimir Palant reported that the server instructs the extension to load, in the background, Amazon pages the user never opened ([palant.info](https://palant.info/2021/08/02/data-exfiltration-in-keepa-price-tracker/), [Chromium group](https://groups.google.com/a/chromium.org/g/chromium-extensions/c/il9VqQBc8So)). Rate must not do this. +- **BeeCost:** BeeCost has extensions for Chrome and Coc Coc that show price history for Shopee, Tiki, Lazada and Sendo ([mytour.vn](https://mytour.vn/en/blog/bai-viet/top-5-features-of-beecost-the-ultimate-tool-for-finding-the-best-online-shopping-deals-mytour.html)). The developer claims over 100 million products ([ameblo.jp](https://ameblo.jp/beecost/)). No public document describes how it collects data. + +## Anti-poisoning, in short + +- Every submission is untrusted, because the client is open and the API can be called directly. +- The server issues `submitter_id` when the user consents and records the first-seen time itself. A new id starts with low trust, so rotating ids gains nothing. The per-id limit only bounds honest clients. +- The raw IP is not stored. Rate-Services keeps a short-lived, salted hash of the network range (for example /24 or ASN) to test independence. That hash is personal data and is disclosed. +- Observations stay quarantined until they match the crawler or enough independent, trusted submitters. + +## Why the extension is public while crawling is private + +The extension is not a crawler. It ships to every user and can be unpacked, so a private repo would not hide it. Being open lets users and store reviewers check that it does what it says. + +The sensitive part is how the server decides which submissions to trust. An attacker would call the API directly and would want to know the thresholds. That logic lives in DOS/Rate-Services. Secrecy is defense in depth only: the design must still hold if the rules leak, through default quarantine, independent corroboration and the crawler baseline. + +| Piece | Repo | +| :----------------------------------------------------------------------------- | :------------------------------------------------------- | +| Extension: page reading, consent UI, side panel | DOS/Rate (public) | +| Payload schema `ExtensionObservation` | DOS/Rate, `packages/shared-data` | +| Ingest API and basic validation (format, ranges, host, consent, coarse limits) | DOS/Rate, `apps/web` | +| Quarantine table | Reference copy in DOS/Rate; official migration in DOS-Me | +| Verification and submitter trust scoring | DOS/Rate-Services (private) | +| Crawler cross-check | DOS/Rate-Services (private) | +| Thresholds, weights, blocklists, detailed limits | DOS/Rate-Services (private config) | +| Promotion of observations to public `price_history` | DOS/Rate-Services (worker role) | +| Crawlers, proxy, captcha, bot evasion | DOS/Rate-Services (private); never in the extension | + +## Options + +| Option | Description | Verdict | +| :------------------------------------------------------ | :------------------------------------------------------------ | :------------------------------------------------------------------------------------------------ | +| A. Keep as is | Fix the mismatches only. | Safe, but does not solve the bot walls. | +| B. Passive observation with quarantine and verification | Described above. | **Recommended.** | +| C. Distributed crawler in the extension | The server tells extensions to fetch pages in the background. | Rejected. This is scraper logic, it misuses users' IPs and sessions, and it risks store takedown. | + +An official source (a marketplace affiliate or partner API), where one exists, can complement any option. Rate-Services would assess it separately. + +## Milestones + +| Milestone | Work | Repo | +| :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :---------------- | +| M0 | JOY decides. | - | +| M1 | Fix the disclosure copy, the privacy policy, `CHROMEWEBSTORE.md` drift and the TikTok host scope. Add an onboarding opt-in screen. | DOS/Rate | +| M2 | Add the `ExtensionObservation v1` schema. The extractor reads stock and SKU. Ingest writes to a new quarantine table through a DOS-Me migration, with JOY's approval. Nothing is published. | DOS/Rate, DOS-Me | +| M3 | Run verification in shadow mode for 2 to 4 weeks: score observations but publish nothing. | DOS/Rate-Services | +| M4 | Promote corroborated observations with provenance. Get a legal opinion. Certify Limited Use in the developer dashboard. Submit to the Chrome Web Store and Edge Add-ons. | Both | + +**Proposed success thresholds:** + +- On listings both sources cover, at least 98% of shadow observations within 1% of the crawler. +- On listings the crawler cannot reach (TikTok, blocked Shopee and Lazada), at least 95% of same-hour pairs from independent submitters within 1%, plus a weekly manual spot-check sample. +- Under 0.5% of promoted observations later proven wrong, meaning the crawler or a manual check contradicts them by more than 1% within 24 hours. +- Better price freshness on Shopee, Lazada and TikTok than with the crawler alone. +- Zero store rejections and zero privacy complaints. + +## Open questions for JOY + +1. Which option: A, B or C? +2. Should the opt-in stay a side-panel toggle, or also be asked on an onboarding screen? +3. Should submitters stay anonymous per install, or should a rate.vn sign-in add weight? +4. Should a listing seen by one user only, which the crawler cannot reach, stay hidden or show as unverified? +5. Should we get a legal opinion before wide release, and with what budget? +6. Which store developer account should publish, and should Edge ship together with Chrome? +7. Should ratings stay in the payload? From f300bddbd565e5a1f50c4a025a9422ae5ab54503 Mon Sep 17 00:00:00 2001 From: JOY <5027251+JOY@users.noreply.github.com> Date: Wed, 28 Oct 2026 11:32:16 +0700 Subject: [PATCH 14/15] fix(web): extension verdict, cheaper-elsewhere and inspect skip sold-out offers (#1180) * fix(web): extension verdict and cheaper-elsewhere skip sold-out offers - evaluateExtensionPriceVerdict drops out_of_stock and discontinued offers before the market reference, the cheaper-offer count and the implausibly-low check, for the extension lookup and the inspect API. - lookupExtensionProduct's cheaper-elsewhere list and its fallback match use in-stock offers only; a URL-matched listing is still judged. - inspectProductOrShopUrl's fallback match skips sold-out listings too. * fix(web): Deep Inspect fallback match skips sold-out offers; test a sold-out own page Co-Authored-By: Claude Opus 5.5 --- .../inspect/DeepInspectWorkspace.tsx | 8 +- apps/web/src/lib/rate-api.ts | 12 +- .../__tests__/core-rate-architecture.test.ts | 204 ++++++++++++++++++ apps/web/src/server/rate/extension.ts | 24 ++- 4 files changed, 235 insertions(+), 13 deletions(-) diff --git a/apps/web/src/components/inspect/DeepInspectWorkspace.tsx b/apps/web/src/components/inspect/DeepInspectWorkspace.tsx index e6617ff01..6ac6f976a 100644 --- a/apps/web/src/components/inspect/DeepInspectWorkspace.tsx +++ b/apps/web/src/components/inspect/DeepInspectWorkspace.tsx @@ -56,6 +56,7 @@ import { implausiblyLowOfferIds, plausibleOffers, } from '@repo/shared-data/rules'; +import { isOfferUnavailable } from '@/lib/product-market-stats'; import { productImageUrl } from '@/lib/rate-domain-core'; const INSPECT_CONTROL_CHARS_RE = /\p{Cc}+/gu; @@ -184,8 +185,13 @@ export default function DeepInspectWorkspace({ }; const master = result?.masterProduct ?? null; + // A sold-out listing is never the fallback match (DOS/Rate#1177). const matchedOffer = - result?.matchedOffer ?? plausibleOffers(result?.allOffers ?? [])[0] ?? null; + result?.matchedOffer ?? + plausibleOffers( + (result?.allOffers ?? []).filter((o) => !isOfferUnavailable(o)) + )[0] ?? + null; const discount = result?.discountAnalysis ?? null; // Judged as the product page's offers table judges the row (#797). const implausibleOfferIds = implausiblyLowOfferIds(result?.allOffers ?? []); diff --git a/apps/web/src/lib/rate-api.ts b/apps/web/src/lib/rate-api.ts index f87ef989a..308fd2756 100644 --- a/apps/web/src/lib/rate-api.ts +++ b/apps/web/src/lib/rate-api.ts @@ -3914,10 +3914,11 @@ export async function inspectProductOrShopUrl( getMasterProductPriceHistory(masterProduct.id, offers), getMasterProductReviewSummary(masterProduct.id, reviews), ]); - // No bait-price listing as the fallback match (DOS/Rate#797). + // No bait-price or sold-out listing as the fallback match + // (DOS/Rate#797, #1177). const matchedOffer = offers.find((o) => o.id === matchedProd.id) || - plausibleOffers(offers)[0] || + plausibleOffers(offers.filter((o) => !isOfferUnavailable(o)))[0] || null; const discountAnalysis = matchedOffer ? priceHistory.byOffer[matchedOffer.id] || null @@ -4023,8 +4024,11 @@ export async function inspectProductOrShopUrl( ); if (byShopMerchant) return byShopMerchant; } - // The cheapest plausible offer, never a bait-price listing (DOS/Rate#797). - return plausibleOffers(offers)[0] || null; + // The cheapest plausible in-stock offer, never a bait-price or sold-out + // listing (DOS/Rate#797, #1177). + return ( + plausibleOffers(offers.filter((o) => !isOfferUnavailable(o)))[0] || null + ); }; // 3. Internal slug or exact master product slug match (including slugified URL keyword) diff --git a/apps/web/src/server/rate/__tests__/core-rate-architecture.test.ts b/apps/web/src/server/rate/__tests__/core-rate-architecture.test.ts index f01f633e1..1d600c03d 100644 --- a/apps/web/src/server/rate/__tests__/core-rate-architecture.test.ts +++ b/apps/web/src/server/rate/__tests__/core-rate-architecture.test.ts @@ -13674,6 +13674,210 @@ async function runCoreArchitectureSuite() { ); } + // ------------------------------------------------------------------------- + // 126l. Extension verdict, cheaper-elsewhere and fallback match skip + // sold-out listings (#1177) + // ------------------------------------------------------------------------- + { + const { evaluateExtensionPriceVerdict, lookupExtensionProduct } = + await import('@/server/rate/extension'); + + const offer1177 = ( + id: string, + price: number, + availability: string | null + ) => + ({ + id, + platform: 'shopee', + url: `https://shopee.vn/i.1177.${id}`, + price_current: price, + price_original: null, + availability, + merchant: { + id: `m-${id}`, + name: `Shop ${id}`, + risk_score: 5, + is_official: true, + }, + }) as never; + const offers1177 = [ + offer1177('fpt-sold', 2_694_000, 'out_of_stock'), + offer1177('fpt-gone', 3_032_000, 'discontinued'), + offer1177('tgdd', 3_140_000, 'in_stock'), + offer1177('cps', 3_690_000, null), + ]; + const verdict1177 = evaluateExtensionPriceVerdict({ + isAccessory: false, + accessoryReason: null, + isAmbiguousVariant: false, + observedPrice: 3_140_000, + observedOriginalPrice: null, + offers: offers1177, + observedOfferId: 'tgdd', + priceHistory: null, + }); + assert.equal(verdict1177.marketMinPrice, 3_140_000); + assert.equal(verdict1177.marketMaxPrice, 3_690_000); + assert.equal(verdict1177.cheaperOfferCount, 0); + assert.equal(verdict1177.maxSavingsAmount, 0); + // A sold-out listing's own page is judged against the in-stock market. + const ownSold1177 = evaluateExtensionPriceVerdict({ + isAccessory: false, + accessoryReason: null, + isAmbiguousVariant: false, + observedPrice: 3_032_000, + observedOriginalPrice: null, + offers: offers1177, + observedOfferId: 'fpt-gone', + priceHistory: null, + }); + assert.equal(ownSold1177.marketMinPrice, 3_140_000); + assert.equal(ownSold1177.cheaperOfferCount, 0); + assert.notEqual(ownSold1177.badgeLabel, 'Giá thấp bất thường'); + // From the dearest in-stock page, only the in-stock store is cheaper. + const soldPage1177 = evaluateExtensionPriceVerdict({ + isAccessory: false, + accessoryReason: null, + isAmbiguousVariant: false, + observedPrice: 3_690_000, + observedOriginalPrice: null, + offers: offers1177, + observedOfferId: 'cps', + priceHistory: null, + }); + assert.equal(soldPage1177.cheaperOfferCount, 1); + assert.equal(soldPage1177.maxSavingsAmount, 550_000); + + const origFetch1177 = globalThis.fetch; + const itemIds1177: Record = { + 'fpt-sold': 117711, + 'fpt-gone': 117712, + tgdd: 117713, + cps: 117714, + }; + const viewRow1177 = (id: string, price: number) => ({ + id, + cluster_id: 'master-1177', + merchant_id: `m-${id}`, + platform: 'shopee', + title: 'Samsung Galaxy Buds3 Pro', + price_current: price, + stock: 0, + url: `https://shopee.vn/product-i.1177.${itemIds1177[id]}`, + threat_risk_score: 5, + threat_source: 'dosafe', + dosafe_risk_score: 5, + review_risk_score: 5, + review_risk_breakdown: { total_reviews: 3 }, + }); + const json1177 = (body: unknown) => + new Response(JSON.stringify(body), { + status: 200, + headers: { 'content-type': 'application/json' }, + }); + try { + globalThis.fetch = (async (input: RequestInfo | URL) => { + const url = new URL( + typeof input === 'string' + ? input + : input instanceof URL + ? input.toString() + : input.url + ); + const firstPage = Number(url.searchParams.get('offset') ?? 0) === 0; + const select = url.searchParams.get('select') ?? ''; + if ( + url.pathname.endsWith('/products') && + url.searchParams.has('platform_item_id') + ) { + return json1177([ + { cluster_id: 'master-1177', platform_item_id: '1177_117714' }, + ]); + } + if ( + url.pathname.endsWith('/master_products') && + url.searchParams.get('id') === 'eq.master-1177' + ) { + return json1177({ + id: 'master-1177', + slug: 'samsung-galaxy-buds3-pro', + name: 'Samsung Galaxy Buds3 Pro', + brand: 'Samsung', + model: 'Galaxy Buds3 Pro', + images: [], + key_specs: {}, + specifications: {}, + min_price: 3_140_000, + max_price: 3_690_000, + category_id: 'cat-earbuds', + }); + } + if (url.pathname.endsWith('/v_products_with_merchant_trust')) { + return json1177( + firstPage + ? [ + viewRow1177('fpt-sold', 2_694_000), + viewRow1177('fpt-gone', 3_032_000), + viewRow1177('tgdd', 3_140_000), + viewRow1177('cps', 3_690_000), + ] + : [] + ); + } + if ( + url.pathname.endsWith('/products') && + select === 'id,availability' + ) { + return json1177( + firstPage + ? [ + { id: 'fpt-sold', availability: 'out_of_stock' }, + { id: 'fpt-gone', availability: 'discontinued' }, + { id: 'tgdd', availability: 'in_stock' }, + { id: 'cps', availability: 'in_stock' }, + ] + : [] + ); + } + return json1177([]); + }) as typeof fetch; + + // On the CellphoneS listing: the sold-out FPT listings are not cheaper. + const onCps1177 = await lookupExtensionProduct({ + platform: 'shopee', + externalId: '1177_117714', + mode: 'pill', + }); + assert.equal(onCps1177.masterProduct?.id, 'master-1177'); + assert.equal(onCps1177.matchedOffer?.id, 'cps'); + assert.deepEqual( + onCps1177.topCheaperOffers.map((o) => o.id), + ['tgdd'] + ); + assert.equal(onCps1177.priceAssessment.marketMinPrice, 3_140_000); + + // No listing matches: the fallback is the cheapest in-stock offer. + const unmatched1177 = await lookupExtensionProduct({ + platform: 'shopee', + externalId: '1177_117799', + mode: 'pill', + }); + assert.equal(unmatched1177.matchedOffer?.id, 'tgdd'); + assert.ok( + unmatched1177.topCheaperOffers.every( + (o) => o.id !== 'fpt-sold' && o.id !== 'fpt-gone' + ) + ); + } finally { + globalThis.fetch = origFetch1177; + } + + console.log( + ' ✅ [126l/135] Extension verdict, cheaper-elsewhere and fallback match skip sold-out listings (#1177) passed' + ); + } + // ------------------------------------------------------------------------- // 127. Rate Server Index & Extension Entity, Slug, and Category Bounds (#1029) // ------------------------------------------------------------------------- diff --git a/apps/web/src/server/rate/extension.ts b/apps/web/src/server/rate/extension.ts index 5186a6ec7..0d9e0e1ec 100644 --- a/apps/web/src/server/rate/extension.ts +++ b/apps/web/src/server/rate/extension.ts @@ -28,6 +28,7 @@ import { type MerchantSummary, type ReviewAnalysisSummary, } from '../../lib/rate-api'; +import { isOfferUnavailable } from '../../lib/product-market-stats'; import { computeProductStandingInCategory, type ProductLeaderboardBadgeInfo, @@ -606,7 +607,11 @@ export function evaluateExtensionPriceVerdict(params: { observedOfferId, priceHistory, } = safeParams; - const safeOffers = Array.isArray(offers) ? offers : []; + // Sold-out and discontinued listings keep their last price; they set no + // market reference and are no cheaper option (DOS/Rate#1177). + const safeOffers = (Array.isArray(offers) ? offers : []).filter( + (o) => !isOfferUnavailable(o) + ); if (isAccessory) { return { @@ -1223,15 +1228,17 @@ export async function lookupExtensionProduct( // Fetch offers, price history, and reviews for matched master product const offers = await getMasterProductOffers(matchedMaster.id); - // Without a URL match, fall back to the cheapest plausible offer, never a - // bait-price listing (DOS/Rate#797). + // Without a URL match, fall back to the cheapest plausible in-stock offer, + // never a bait-price or sold-out listing (DOS/Rate#797, #1177). + const inStockOffers = offers.filter((o) => !isOfferUnavailable(o)); const urlMatchedOffer = offers.find( (o) => (canonicalUrl && o.url.includes(canonicalUrl)) || doesOfferUrlMatchCandidateIds(o.url, candidateItemIds) ) || null; - const matchedOffer = urlMatchedOffer || plausibleOffers(offers)[0] || null; + const matchedOffer = + urlMatchedOffer || plausibleOffers(inStockOffers)[0] || null; if ( matchedOffer && @@ -1305,10 +1312,11 @@ export async function lookupExtensionProduct( : null; const isAmbiguous = matchStatus === 'ambiguous_variant'; - // The market reference and "cheaper elsewhere" leave bait-price listings - // out; the matched offer above still comes from every offer, so a shopper - // on a bait listing sees it judged against the real market (DOS/Rate#797). - const marketOffers = plausibleOffers(offers); + // The market reference and "cheaper elsewhere" leave bait-price and + // sold-out listings out; the URL-matched offer above still comes from every + // offer, so a shopper on such a listing sees it judged against the real + // market (DOS/Rate#797, #1177). + const marketOffers = plausibleOffers(inStockOffers); const priceAssessment = evaluateExtensionPriceVerdict({ isAccessory: false, accessoryReason: null, From 7d106f248184bf70dea7411e9fe016183c44b976 Mon Sep 17 00:00:00 2001 From: JOY <5027251+JOY@users.noreply.github.com> Date: Wed, 28 Oct 2026 11:39:55 +0700 Subject: [PATCH 15/15] feat(importer): item-first matcher with match_item behind RATE_ITEM_MODEL (#1179) * feat(importer): item-first matcher with match_item behind RATE_ITEM_MODEL (#1151) - Normalizer emits item_key, variant_key, item_name, item_slug, variant_known, variant_source and keyable. A title with no model keys on the `unkeyed` placeholder instead of an empty segment (`samsung::unknown`) and is rejected before any write (UnkeyableProductTitleError). - EntityMatcher.resolveItemAndVariant: Item by itemIdHint, exact item_key, then match_item on Item names; exact (item_id, variant_key); a storage-less title on a multi-size Item gets no variant (#1105). - Pipeline writes item_id and variant_source, nullable cluster_id, itemIdHint, archived masterIdHint mapped to its Item, keeps a manual variant, refreshes Item stats. - Everything new sits behind RATE_ITEM_MODEL=off|item|nullable_variant, default off; mode off keeps today's matching and writes. * fix(importer): keep manual variants in mode item, never reseed archived unknown (#1151) Review fixes on the item-first matcher: - Keep a hand-set variant in both flag modes unless the title states a size. - Refresh the stats of the variant a listing leaves. - An archived unknown variant is never reseeded or adopted: no variant in nullable_variant, an error in item. - A fuzzy Item hit only links to existing variants; a missing variant is seeded under the listing's own key, as Tier 2 only links to existing masters. - A sizeless line keyed unknown reuses a seeded standard variant. * fix(importer): sticky manual and evidence variants, archived variants in nullable mode (#1151) Codex adversarial review fixes: - A hand-set variant always stays; a title/sku/single_size variant stays when a later crawl has no size evidence; legacy links do not. - nullable_variant never links a listing to an archived variant. - An unkeyable title is only rejected without masterIdHint, so refreshes of hinted listings keep working in mode off. Co-Authored-By: Claude Opus 5.5 --- apps/importer/package.json | 2 +- apps/importer/src/index.ts | 1 + .../shopee/__tests__/dist-exports.smoke.mjs | 8 + .../src/shopee/__tests__/item-matcher.test.ts | 774 ++++++++++++++++++ apps/importer/src/shopee/entity-matcher.ts | 400 ++++++++- apps/importer/src/shopee/item-model-flag.ts | 27 + .../importer/src/shopee/product-normalizer.ts | 72 +- .../importer/src/shopee/shopee-to-supabase.ts | 211 ++++- 8 files changed, 1430 insertions(+), 65 deletions(-) create mode 100644 apps/importer/src/shopee/__tests__/item-matcher.test.ts create mode 100644 apps/importer/src/shopee/item-model-flag.ts diff --git a/apps/importer/package.json b/apps/importer/package.json index d57a72214..e5ff54214 100644 --- a/apps/importer/package.json +++ b/apps/importer/package.json @@ -37,7 +37,7 @@ "lint": "eslint . --max-warnings 0", "format": "prettier --write \"src/**/*.ts\"", "backfill:specs": "tsx src/shopee/jobs/backfill-specs.ts", - "test": "tsx src/shopee/__tests__/open-core-intelligence.test.ts && tsx src/shopee/__tests__/entity-matcher.test.ts && tsx src/shopee/__tests__/shopee-to-supabase.test.ts && tsx src/shopee/__tests__/paging.test.ts && tsx src/shopee/__tests__/backfill-review-risk.test.ts && tsx src/shopee/__tests__/item-inventory-report.test.ts && tsx src/shopee/__tests__/arena-audit.test.ts && tsx src/shopee/test-ai-enricher.ts && tsx src/shopee/test-review-analyzer.ts", + "test": "tsx src/shopee/__tests__/open-core-intelligence.test.ts && tsx src/shopee/__tests__/entity-matcher.test.ts && tsx src/shopee/__tests__/item-matcher.test.ts && tsx src/shopee/__tests__/shopee-to-supabase.test.ts && tsx src/shopee/__tests__/paging.test.ts && tsx src/shopee/__tests__/backfill-review-risk.test.ts && tsx src/shopee/__tests__/item-inventory-report.test.ts && tsx src/shopee/__tests__/arena-audit.test.ts && tsx src/shopee/test-ai-enricher.ts && tsx src/shopee/test-review-analyzer.ts", "test:dist": "node src/shopee/__tests__/dist-exports.smoke.mjs", "backfill:review-risk": "tsx src/shopee/jobs/backfill-review-risk.ts" }, diff --git a/apps/importer/src/index.ts b/apps/importer/src/index.ts index a0ddd6300..fb8327674 100644 --- a/apps/importer/src/index.ts +++ b/apps/importer/src/index.ts @@ -12,3 +12,4 @@ export * from './shopee/ai-review-analyzer.js'; export * from './shopee/shopee-to-supabase.js'; export * from './shopee/jobs/backfill-specs.js'; export * from './shopee/paging.js'; +export * from './shopee/item-model-flag.js'; diff --git a/apps/importer/src/shopee/__tests__/dist-exports.smoke.mjs b/apps/importer/src/shopee/__tests__/dist-exports.smoke.mjs index 34f123cdc..a7a985ba2 100644 --- a/apps/importer/src/shopee/__tests__/dist-exports.smoke.mjs +++ b/apps/importer/src/shopee/__tests__/dist-exports.smoke.mjs @@ -25,6 +25,8 @@ for (const name of [ 'createImporterLogger', 'sanitizeAiGeneratedText', 'computeRetryDelayMs', + 'resolveItemModelMode', + 'UnkeyableProductTitleError', ]) { assert.equal( typeof crawlers[name], @@ -32,6 +34,12 @@ for (const name of [ `@repo/crawlers is missing export ${name}` ); } +// Item model rollout flag (DOS/Rate#1151): Rate-Services reads the same env name. +assert.equal(crawlers.ITEM_MODEL_ENV, 'RATE_ITEM_MODEL'); +assert.deepEqual([...crawlers.ITEM_MODEL_MODES], ['off', 'item', 'nullable_variant']); +assert.equal(crawlers.resolveItemModelMode(undefined), 'off'); +assert.equal(typeof crawlers.EntityMatcher.prototype.resolveItemAndVariant, 'function'); +assert.equal(crawlers.UNKEYED_MODEL_SEGMENT, 'unkeyed'); assert.equal( typeof crawlers.MAX_SPEC_CACHE_ENTRIES, 'number', diff --git a/apps/importer/src/shopee/__tests__/item-matcher.test.ts b/apps/importer/src/shopee/__tests__/item-matcher.test.ts new file mode 100644 index 000000000..e9804691c --- /dev/null +++ b/apps/importer/src/shopee/__tests__/item-matcher.test.ts @@ -0,0 +1,774 @@ +/** + * Item-first matching (DOS/Rate#1151, design doc 4.5): + * 1. RATE_ITEM_MODEL parsing (default off, typos read as off) + * 2. Normalizer Item fields: item_key/variant_key/variant_known/variant_source, no empty segment + * 3. Mode off: resolveItemAndVariant is today's master matcher, never touches rate.items + * 4. Modes item / nullable_variant: Item tiers, exact variant, size not stated (#1105), hints + * 5. Pipeline: item_id / variant_source / nullable cluster_id writes, archived masterIdHint, + * a manual variant is kept, unkeyable titles are rejected before any write + */ +import assert from 'node:assert/strict'; +import { composeModelKey, splitModelKey } from '@repo/shared-data'; +import { EntityMatcher } from '../entity-matcher.js'; +import { ITEM_MODEL_ENV, resolveItemModelMode } from '../item-model-flag.js'; +import { ProductNormalizer, UnkeyableProductTitleError } from '../product-normalizer.js'; +import { ShopeeIngestionPipeline } from '../shopee-to-supabase.js'; +import type { AiSpecEnricher } from '../ai-spec-enricher.js'; +import type { RateSupabaseClient, ShopeeProduct } from '../types.js'; + +type Row = Record; +type Result = { data: unknown; error: { message: string; code?: string } | null }; + +interface Call { + table: string; + op: 'select' | 'upsert' | 'insert' | 'update' | 'rpc'; + cols?: string; + payload?: Row; + filters: Array<[string, unknown]>; +} + +/** + * Chainable PostgREST stand-in. Every query resolves through `handler`, which sees the + * table, operation, selected columns, payload and eq filters; unhandled calls resolve empty. + */ +function createDb(handler: (call: Call) => Result | undefined) { + const calls: Call[] = []; + const run = (call: Call): Result => handler(call) ?? { data: null, error: null }; + const builder = (call: Call) => { + const b: Record = {}; + for (const name of ['neq', 'gt', 'gte', 'lte', 'lt', 'in', 'order', 'limit', 'is']) { + b[name] = () => b; + } + b.eq = (col: string, val: unknown) => { + call.filters.push([col, val]); + return b; + }; + b.select = (cols: string) => { + if (call.op === 'select') call.cols = cols; + return b; + }; + b.maybeSingle = () => Promise.resolve(run(call)); + b.single = () => Promise.resolve(run(call)); + b.then = (resolve: (r: Result) => unknown, reject?: (e: unknown) => unknown) => + Promise.resolve(run(call)).then(resolve, reject); + return b; + }; + const client = { + from(table: string) { + const start = (op: Call['op'], extra: Partial = {}) => { + const call: Call = { table, op, filters: [], ...extra }; + calls.push(call); + return builder(call); + }; + return { + select: (cols: string) => start('select', { cols }), + upsert: (payload: Row) => start('upsert', { payload }), + insert: (payload: Row) => start('insert', { payload }), + update: (payload: Row) => start('update', { payload }), + }; + }, + rpc(fn: string, args: Row) { + const call: Call = { table: fn, op: 'rpc', payload: args, filters: [] }; + calls.push(call); + return Promise.resolve(run(call)); + }, + } as unknown as RateSupabaseClient; + return { client, calls }; +} + +const filter = (call: Call, col: string) => call.filters.find(([c]) => c === col)?.[1]; + +/** Enricher stub: Tier 3 never calls an AI provider in these tests. */ +const passthroughEnricher = { + enrichCandidate: async (candidate: T) => candidate, +} as unknown as AiSpecEnricher; + +const normalizer = new ProductNormalizer(); +const candidateFor = (title: string) => normalizer.normalize({ title } as ShopeeProduct); + +interface ItemDb { + items?: Array<{ id: string; item_key: string }>; + variants?: Array<{ id: string; item_id: string; variant_key: string; status?: string }>; + matchItem?: Row[]; + matchItemErr?: { message: string }; + /** item_id the M1 trigger gives a newly seeded master; null = migration missing. */ + seededItemId?: string | null; +} + +/** Answers the matcher's reads and writes from an in-memory Item / variant table. */ +function itemDbAnswer(opts: ItemDb, call: Call): Result | undefined { + if (call.table === 'items' && call.op === 'select') { + const [[col, val] = []] = call.filters; + const row = (opts.items ?? []).find(i => (col === 'id' ? i.id : i.item_key) === val); + return { data: row ?? null, error: null }; + } + if (call.table === 'match_item') { + return { data: opts.matchItem ?? [], error: opts.matchItemErr ?? null }; + } + if (call.table === 'match_master_product') return { data: [], error: null }; + if (call.table === 'master_products' && call.op === 'select') { + const itemId = filter(call, 'item_id'); + if (itemId !== undefined) { + const rows = (opts.variants ?? []) + .filter(v => v.item_id === itemId) + .map(v => ({ id: v.id, variant_key: v.variant_key, status: v.status ?? 'published' })); + return { data: rows, error: null }; + } + if (call.cols === 'item_id') { + return { data: { item_id: opts.seededItemId ?? null }, error: null }; + } + return { data: null, error: null }; // Tier 1 model_key / race winner: not found + } + if (call.table === 'master_products' && call.op === 'upsert') { + return { data: [{ id: 'seeded-master' }], error: null }; + } + return undefined; +} + +const createItemDb = (opts: ItemDb = {}) => createDb(call => itemDbAnswer(opts, call)); + +const ZENBOOK_ITEM = { id: 'item-zenbook', item_key: 'asus:zenbook-s-14' }; +const ZENBOOK_1TB = { + id: 'master-zenbook-1tb', + item_id: 'item-zenbook', + variant_key: '1024gb', +}; + +async function run() { + console.log('🧪 Item-first matcher suite (DOS/Rate#1151)'); + + // 1. Flag parsing + assert.equal(ITEM_MODEL_ENV, 'RATE_ITEM_MODEL'); + assert.equal(resolveItemModelMode(undefined), 'off'); + assert.equal(resolveItemModelMode(''), 'off'); + assert.equal(resolveItemModelMode('item'), 'item'); + assert.equal(resolveItemModelMode(' Nullable-Variant '), 'nullable_variant'); + assert.equal(resolveItemModelMode('nullable'), 'off', 'a typo must never enable writes'); + assert.equal(resolveItemModelMode(true), 'off'); + console.log(' ✅ [1/5] RATE_ITEM_MODEL defaults to off'); + + // 2. Normalizer Item fields + const cases: Array<[string, Row]> = [ + [ + 'Điện thoại Apple iPhone 16 Pro Max 256GB Chính hãng VN/A', + { + model_key: 'apple:iphone-16-pro-max:256gb', + item_key: 'apple:iphone-16-pro-max', + variant_key: '256gb', + item_name: 'Apple iPhone 16 Pro Max', + item_slug: 'apple-iphone-16-pro-max', + variant_known: true, + variant_source: 'title', + keyable: true, + }, + ], + [ + 'Laptop ASUS Zenbook S 14 UX5406AA-SU348W', + { + model_key: 'asus:zenbook-s-14:unknown', + item_key: 'asus:zenbook-s-14', + variant_key: 'unknown', + variant_known: false, + variant_source: null, + keyable: true, + }, + ], + [ + 'Tai nghe Bluetooth Apple AirPods Pro 2 (USB-C) Chính hãng VN/A', + { + model_key: 'apple:airpods-pro-2:unknown', + variant_known: true, + variant_source: 'single_variant', + }, + ], + [ + 'Apple Watch Ultra 2 49mm GPS + Cellular', + { variant_key: '64gb', variant_known: true, variant_source: 'single_size' }, + ], + [ + 'Samsung', + { + model_key: 'samsung:unkeyed:unknown', + item_key: 'samsung:unkeyed', + keyable: false, + needs_review: true, + }, + ], + ['', { model_key: 'khac:unkeyed:unknown', keyable: false, brand: 'Khác', slug: 'khac' }], + ]; + for (const [title, expected] of cases) { + const c = candidateFor(title) as unknown as Row; + for (const [field, value] of Object.entries(expected)) { + assert.deepEqual(c[field], value, `${JSON.stringify(title)}: ${field}`); + } + const parts = splitModelKey(c.model_key as string); + assert.ok(parts, `${JSON.stringify(title)}: model_key has no empty segment`); + assert.equal(parts.itemKey, c.item_key); + assert.equal(parts.variantKey, c.variant_key); + assert.equal(composeModelKey(c.item_key as string, c.variant_key as string), c.model_key); + } + console.log(' ✅ [2/5] Normalizer emits item_key/variant_key and never an empty segment'); + + // 3. Mode off: today's matcher, no rate.items access + { + const db = createItemDb({ items: [ZENBOOK_ITEM], variants: [ZENBOOK_1TB] }); + const matcher = new EntityMatcher(db.client, passthroughEnricher, { itemModel: 'off' }); + const result = await matcher.resolveItemAndVariant( + candidateFor('Laptop ASUS Zenbook S 14 UX5406AA-SU348W'), + 'cat-laptops' + ); + assert.deepEqual(result, { + itemId: null, + masterId: 'seeded-master', + isNew: true, + variantSource: null, + }); + assert.ok(!db.calls.some(c => c.table === 'items' || c.table === 'match_item')); + assert.ok(db.calls.some(c => c.table === 'match_master_product')); + const seeded = db.calls.find(c => c.op === 'upsert'); + assert.equal(seeded?.payload?.model_key, 'asus:zenbook-s-14:unknown'); + assert.ok(!('item_id' in (seeded?.payload ?? {}))); + + const envDefault = process.env[ITEM_MODEL_ENV]; + delete process.env[ITEM_MODEL_ENV]; + assert.equal(new EntityMatcher(db.client, passthroughEnricher).itemModel, 'off'); + if (envDefault !== undefined) process.env[ITEM_MODEL_ENV] = envDefault; + + await assert.rejects( + matcher.resolveOrCreateMasterProduct(candidateFor('Samsung')), + UnkeyableProductTitleError + ); + } + console.log(' ✅ [3/5] Mode off keeps the master matcher and never reads rate.items'); + + // 4. Item modes + { + // Known size, exact variant of an exact Item. + const db = createItemDb({ + items: [{ id: 'item-ip16pm', item_key: 'apple:iphone-16-pro-max' }], + variants: [{ id: 'master-ip16pm-256', item_id: 'item-ip16pm', variant_key: '256gb' }], + }); + const matcher = new EntityMatcher(db.client, passthroughEnricher, { itemModel: 'item' }); + const result = await matcher.resolveItemAndVariant( + candidateFor('Điện thoại Apple iPhone 16 Pro Max 256GB Chính hãng VN/A') + ); + assert.deepEqual(result, { + itemId: 'item-ip16pm', + masterId: 'master-ip16pm-256', + isNew: false, + variantSource: 'title', + }); + assert.ok(!db.calls.some(c => c.table === 'match_master_product' || c.op === 'upsert')); + } + { + // Known size missing on a known Item: the variant is created under the Item's key. + const db = createItemDb({ items: [ZENBOOK_ITEM], variants: [ZENBOOK_1TB] }); + const matcher = new EntityMatcher(db.client, passthroughEnricher, { itemModel: 'item' }); + const result = await matcher.resolveItemAndVariant( + candidateFor('Laptop ASUS Zenbook S 14 UX5406AA 16GB 512GB SSD'), + 'cat-laptops' + ); + assert.equal(result.itemId, 'item-zenbook'); + assert.equal(result.masterId, 'seeded-master'); + assert.equal(result.isNew, true); + assert.equal( + db.calls.find(c => c.op === 'upsert')?.payload?.model_key, + 'asus:zenbook-s-14:512gb' + ); + } + { + // #1105: a storage-less title on a multi-size Item never lands on the sized variant. + const title = 'Laptop ASUS Zenbook S 14 UX5406AA-SU348W'; + const nullable = createItemDb({ items: [ZENBOOK_ITEM], variants: [ZENBOOK_1TB] }); + const nullableResult = await new EntityMatcher(nullable.client, passthroughEnricher, { + itemModel: 'nullable_variant', + }).resolveItemAndVariant(candidateFor(title)); + assert.deepEqual(nullableResult, { + itemId: 'item-zenbook', + masterId: null, + isNew: false, + variantSource: null, + }); + assert.ok(!nullable.calls.some(c => c.op === 'upsert' || c.table === 'match_master_product')); + + const itemMode = createItemDb({ items: [ZENBOOK_ITEM], variants: [ZENBOOK_1TB] }); + const itemResult = await new EntityMatcher(itemMode.client, passthroughEnricher, { + itemModel: 'item', + }).resolveItemAndVariant(candidateFor(title)); + assert.equal(itemResult.itemId, 'item-zenbook'); + assert.notEqual(itemResult.masterId, ZENBOOK_1TB.id); + assert.equal( + itemMode.calls.find(c => c.op === 'upsert')?.payload?.model_key, + 'asus:zenbook-s-14:unknown', + 'mode item keeps a variant: the Item’s unknown one' + ); + + const withUnknown = createItemDb({ + items: [ZENBOOK_ITEM], + variants: [ + ZENBOOK_1TB, + { id: 'master-zenbook-unknown', item_id: 'item-zenbook', variant_key: 'unknown' }, + ], + }); + const reuse = await new EntityMatcher(withUnknown.client, passthroughEnricher, { + itemModel: 'item', + }).resolveItemAndVariant(candidateFor(title)); + assert.equal(reuse.masterId, 'master-zenbook-unknown'); + + // An archived sized variant does not make the Item multi-size. + const archived = createItemDb({ + items: [ZENBOOK_ITEM], + variants: [ + { ...ZENBOOK_1TB, status: 'archived' }, + { id: 'master-zenbook-unknown', item_id: 'item-zenbook', variant_key: 'unknown' }, + ], + }); + const single = await new EntityMatcher(archived.client, passthroughEnricher, { + itemModel: 'nullable_variant', + }).resolveItemAndVariant(candidateFor(title)); + assert.equal(single.masterId, 'master-zenbook-unknown'); + } + { + // Single-variant Item (earbuds): its one variant, even in nullable mode. + const db = createItemDb({ + items: [{ id: 'item-app2', item_key: 'apple:airpods-pro-2' }], + variants: [{ id: 'master-app2', item_id: 'item-app2', variant_key: 'unknown' }], + }); + const result = await new EntityMatcher(db.client, passthroughEnricher, { + itemModel: 'nullable_variant', + }).resolveItemAndVariant(candidateFor('Tai nghe Apple AirPods Pro 2 (USB-C) Chính hãng VN/A')); + assert.deepEqual(result, { + itemId: 'item-app2', + masterId: 'master-app2', + isNew: false, + variantSource: 'single_variant', + }); + } + { + // Item Tier 2: fuzzy on Item names, then the variant under the matched Item's key. + const db = createItemDb({ + items: [{ id: 'item-s24u', item_key: 'samsung:galaxy-s24-ultra' }], + variants: [{ id: 'master-s24u-256', item_id: 'item-s24u', variant_key: '256gb' }], + matchItem: [ + { item_id: 'item-s24u', item_key: 'samsung:galaxy-s24-ultra', name: 'x', similarity: 0.82 }, + ], + }); + const candidate = { ...candidateFor('Samsung Galaxy S24 Ultra 5G 12GB/256GB Chính hãng') }; + candidate.model_key = 'samsung:galaxy-s24-ultra-5g:256gb'; + const result = await new EntityMatcher(db.client, passthroughEnricher, { + itemModel: 'item', + }).resolveItemAndVariant(candidate); + assert.equal(result.itemId, 'item-s24u'); + assert.equal(result.masterId, 'master-s24u-256'); + const rpc = db.calls.find(c => c.table === 'match_item'); + assert.equal(rpc?.payload?.search_title, candidate.item_name); + assert.ok(!/256/.test(String(rpc?.payload?.search_title)), 'Item search has no size'); + assert.equal(rpc?.payload?.p_threshold, 0.65); + } + { + // No Item: seed the master (draft when ambiguous); the M1 trigger gives its item_id. + const db = createItemDb({ + matchItem: [{ item_id: 'item-other', item_key: 'apple:iphone-15', similarity: 0.67 }], + seededItemId: 'item-new', + }); + const result = await new EntityMatcher(db.client, passthroughEnricher, { + itemModel: 'item', + }).resolveItemAndVariant(candidateFor('Apple iPhone 15 Plus 128GB Chính hãng VN/A')); + assert.deepEqual(result, { + itemId: 'item-new', + masterId: 'seeded-master', + isNew: true, + variantSource: 'title', + }); + assert.equal(db.calls.find(c => c.op === 'upsert')?.payload?.status, 'draft'); + + const noMigration = createItemDb({ seededItemId: null }); + await assert.rejects( + new EntityMatcher(noMigration.client, passthroughEnricher, { + itemModel: 'item', + }).resolveItemAndVariant(candidateFor('Apple iPhone 15 Plus 128GB')), + /DOS\/Rate#1150/ + ); + await assert.rejects( + new EntityMatcher( + createItemDb({ matchItemErr: { message: 'boom' } }).client, + passthroughEnricher, + { + itemModel: 'item', + } + ).resolveItemAndVariant(candidateFor('Apple iPhone 15 Plus 128GB')), + /Item Tier 2 fuzzy match failed: boom/ + ); + await assert.rejects( + new EntityMatcher(createItemDb().client, passthroughEnricher, { + itemModel: 'item', + }).resolveItemAndVariant(candidateFor('Samsung')), + UnkeyableProductTitleError + ); + } + { + // itemIdHint wins over the key; the variant still comes from the title. + const db = createItemDb({ + items: [ZENBOOK_ITEM], + variants: [ZENBOOK_1TB], + }); + const result = await new EntityMatcher(db.client, passthroughEnricher, { + itemModel: 'nullable_variant', + }).resolveItemAndVariant(candidateFor('ASUS Zenbook S14 OLED'), undefined, undefined, { + itemIdHint: 'item-zenbook', + }); + assert.deepEqual(result, { + itemId: 'item-zenbook', + masterId: null, + isNew: false, + variantSource: null, + }); + assert.ok(!db.calls.some(c => c.table === 'match_item')); + } + { + // A retired (archived) unknown variant is never seeded again or adopted. + const retired = { + items: [ZENBOOK_ITEM], + variants: [ + ZENBOOK_1TB, + { + id: 'master-zenbook-unknown', + item_id: 'item-zenbook', + variant_key: 'unknown', + status: 'archived', + }, + ], + }; + const title = 'Laptop ASUS Zenbook S 14 UX5406AA-SU348W'; + const itemDb = createItemDb(retired); + await assert.rejects( + new EntityMatcher(itemDb.client, passthroughEnricher, { + itemModel: 'item', + }).resolveItemAndVariant(candidateFor(title)), + /archived/ + ); + assert.ok(!itemDb.calls.some(c => c.op === 'upsert')); + const singleRetired = createItemDb({ + items: [ZENBOOK_ITEM], + variants: [{ ...retired.variants[1]! }], + }); + const none = await new EntityMatcher(singleRetired.client, passthroughEnricher, { + itemModel: 'nullable_variant', + }).resolveItemAndVariant(candidateFor(title)); + assert.equal(none.masterId, null); + assert.ok(!singleRetired.calls.some(c => c.op === 'upsert')); + } + { + // An archived sized variant takes no new listing in nullable mode; mode item keeps Tier 1's rule. + const archived1tb = { + items: [ZENBOOK_ITEM], + variants: [{ ...ZENBOOK_1TB, status: 'archived' }], + }; + const title = 'Laptop ASUS Zenbook S 14 UX5406AA 1TB'; + const nullable = await new EntityMatcher( + createItemDb(archived1tb).client, + passthroughEnricher, + { + itemModel: 'nullable_variant', + } + ).resolveItemAndVariant(candidateFor(title)); + assert.equal(nullable.masterId, null); + const itemMode = await new EntityMatcher( + createItemDb(archived1tb).client, + passthroughEnricher, + { + itemModel: 'item', + } + ).resolveItemAndVariant(candidateFor(title)); + assert.equal(itemMode.masterId, ZENBOOK_1TB.id); + } + { + // A fuzzy Item hit never creates a variant under that Item's key. + const db = createItemDb({ + items: [{ id: 'item-ip15p', item_key: 'apple:iphone-15-pro' }], + variants: [{ id: 'master-ip15p-128', item_id: 'item-ip15p', variant_key: '128gb' }], + matchItem: [ + { item_id: 'item-ip15p', item_key: 'apple:iphone-15-pro', name: 'x', similarity: 0.9 }, + ], + seededItemId: 'item-ip15pm', + }); + const result = await new EntityMatcher(db.client, passthroughEnricher, { + itemModel: 'item', + }).resolveItemAndVariant(candidateFor('Apple iPhone 15 Pro Max 256GB Chính hãng VN/A')); + assert.equal( + db.calls.find(c => c.op === 'upsert')?.payload?.model_key, + 'apple:iphone-15-pro-max:256gb' + ); + assert.equal(result.itemId, 'item-ip15pm'); + } + { + // A sizeless line keyed `unknown` reuses a seeded `standard` variant. + const db = createItemDb({ + items: [{ id: 'item-app2', item_key: 'apple:airpods-pro-2' }], + variants: [{ id: 'master-app2-std', item_id: 'item-app2', variant_key: 'standard' }], + }); + const result = await new EntityMatcher(db.client, passthroughEnricher, { + itemModel: 'item', + }).resolveItemAndVariant(candidateFor('Tai nghe Apple AirPods Pro 2 (USB-C) Chính hãng VN/A')); + assert.equal(result.masterId, 'master-app2-std'); + assert.ok(!db.calls.some(c => c.op === 'upsert')); + } + console.log(' ✅ [4/5] Item tiers, exact variants, size not stated (#1105) and hints'); + + // 5. Pipeline writes + const product = (title: string): ShopeeProduct => ({ + platform: 'shopee', + itemId: 'item-1151', + shopId: 'shop-1151', + title, + priceMin: 25_000_000, + priceMax: 25_000_000, + currency: 'VND', + historicalSold: 1, + ratingStar: 5, + ratingCount: 1, + images: [], + models: [], + attributes: [], + shop: { shopId: 'shop-1151', name: 'Shop', isMall: false, ratingStar: 5, followerCount: 1 }, + reviews: [], + url: 'https://shopee.vn/product/shop-1151/item-1151', + }); + const ingest = async ( + mode: 'off' | 'item' | 'nullable_variant', + title: string, + item: ItemDb, + extra: { hint?: Row | null; stored?: Row | null } = {}, + options: { masterIdHint?: string; itemIdHint?: string } = {} + ) => { + const db = createDb(call => { + if (call.table === 'categories') { + return { data: [{ id: 'cat-laptops', slug: 'laptops' }], error: null }; + } + if (call.table === 'merchants') return { data: { id: 'merchant-1' }, error: null }; + if (call.table === 'products' && call.op === 'upsert') { + return { data: { id: 'product-1' }, error: null }; + } + if (call.table === 'products' && call.op === 'select') { + return { data: extra.stored ?? null, error: null }; + } + if (call.table === 'record_price_observation') return { data: 'inserted', error: null }; + if ( + call.table === 'master_products' && + call.op === 'select' && + filter(call, 'id') !== undefined && + call.cols !== 'item_id' + ) { + return { data: extra.hint ?? null, error: null }; + } + return itemDbAnswer(item, call); + }); + const pipeline = new ShopeeIngestionPipeline({ supabaseClient: db.client, itemModel: mode }); + (pipeline as unknown as { matcher: EntityMatcher }).matcher = new EntityMatcher( + db.client, + passthroughEnricher, + { itemModel: mode } + ); + const result = await pipeline.ingestProduct(product(title), undefined, { + pricesOnly: true, + ...options, + }); + const listing = db.calls.find(c => c.table === 'products' && c.op === 'upsert')?.payload; + const rpcs = db.calls.filter(c => c.op === 'rpc').map(c => c.table); + return { result, listing, rpcs, calls: db.calls }; + }; + + const zenbook = { items: [ZENBOOK_ITEM], variants: [ZENBOOK_1TB] }; + const bareTitle = 'Laptop ASUS Zenbook S 14 UX5406AA-SU348W'; + { + const off = await ingest('off', 'Laptop ASUS Zenbook S 14 UX5406AA 1TB', zenbook); + assert.ok(off.listing && !('item_id' in off.listing) && !('variant_source' in off.listing)); + assert.equal(off.result.itemId, null); + assert.ok(!off.rpcs.includes('refresh_item_stats')); + assert.ok(!off.calls.some(c => c.table === 'items')); + } + { + const nullable = await ingest('nullable_variant', bareTitle, zenbook); + assert.equal(nullable.listing?.cluster_id, null); + assert.equal(nullable.listing?.item_id, 'item-zenbook'); + assert.equal(nullable.listing?.variant_source, null); + assert.deepEqual( + { masterId: nullable.result.masterId, itemId: nullable.result.itemId }, + { masterId: null, itemId: 'item-zenbook' } + ); + assert.ok(!nullable.rpcs.includes('refresh_master_market_stats')); + assert.ok(nullable.rpcs.includes('refresh_item_stats')); + + const sized = await ingest('item', 'Laptop ASUS Zenbook S 14 UX5406AA 1TB', zenbook); + assert.equal(sized.listing?.cluster_id, ZENBOOK_1TB.id); + assert.equal(sized.listing?.item_id, 'item-zenbook'); + assert.equal(sized.listing?.variant_source, 'title'); + assert.ok(sized.rpcs.includes('refresh_master_market_stats')); + } + { + // A variant set by hand survives a crawl that states no size. + const kept = await ingest('nullable_variant', bareTitle, zenbook, { + stored: { cluster_id: ZENBOOK_1TB.id, variant_source: 'manual' }, + }); + assert.equal(kept.listing?.cluster_id, ZENBOOK_1TB.id); + assert.ok(!('variant_source' in (kept.listing ?? {}))); + + // Mode item too: the Item's unknown variant never replaces a hand-set one. + const keptItem = await ingest( + 'item', + bareTitle, + { + ...zenbook, + variants: [ + ZENBOOK_1TB, + { id: 'master-zenbook-unknown', item_id: 'item-zenbook', variant_key: 'unknown' }, + ], + }, + { stored: { cluster_id: ZENBOOK_1TB.id, variant_source: 'manual' } } + ); + assert.equal(keptItem.listing?.cluster_id, ZENBOOK_1TB.id); + assert.ok(!('variant_source' in (keptItem.listing ?? {}))); + + // A hand-set variant wins even over a size stated in the title. + const manualWins = await ingest( + 'nullable_variant', + 'Laptop ASUS Zenbook S 14 UX5406AA 1TB', + zenbook, + { + stored: { cluster_id: 'master-zenbook-512', variant_source: 'manual' }, + } + ); + assert.equal(manualWins.listing?.cluster_id, 'master-zenbook-512'); + assert.ok(!('variant_source' in (manualWins.listing ?? {}))); + + // Title evidence stays when a later crawl has none; a legacy link does not. + const evidenceKept = await ingest('nullable_variant', bareTitle, zenbook, { + stored: { cluster_id: ZENBOOK_1TB.id, variant_source: 'title' }, + }); + assert.equal(evidenceKept.listing?.cluster_id, ZENBOOK_1TB.id); + const legacyDropped = await ingest('nullable_variant', bareTitle, zenbook, { + stored: { cluster_id: ZENBOOK_1TB.id, variant_source: 'legacy' }, + }); + assert.equal(legacyDropped.listing?.cluster_id, null); + + // A newer size stated in the title moves an evidence-based variant. + const moved = await ingest('item', 'Laptop ASUS Zenbook S 14 UX5406AA 1TB', zenbook, { + stored: { cluster_id: 'master-zenbook-512', variant_source: 'title' }, + }); + assert.equal(moved.listing?.cluster_id, ZENBOOK_1TB.id); + assert.equal(moved.listing?.variant_source, 'title'); + // ...and the variant it left is refreshed as well as the new one. + const refreshed = moved.calls + .filter(c => c.op === 'rpc' && c.table === 'refresh_master_market_stats') + .map(c => c.payload?.p_master_id); + assert.deepEqual(refreshed, [ZENBOOK_1TB.id, 'master-zenbook-512']); + + const left = await ingest('nullable_variant', bareTitle, zenbook, { + stored: { cluster_id: 'master-zenbook-unknown', variant_source: null }, + }); + assert.equal(left.listing?.cluster_id, null); + assert.deepEqual( + left.calls + .filter(c => c.op === 'rpc' && c.table === 'refresh_master_market_stats') + .map(c => c.payload?.p_master_id), + ['master-zenbook-unknown'] + ); + } + { + // An archived masterIdHint maps to its Item; a live one is kept. + const archived = await ingest( + 'nullable_variant', + bareTitle, + zenbook, + { + hint: { + id: 'master-zenbook-unknown', + specifications: { display: { size: 'x' } }, + status: 'archived', + item_id: 'item-zenbook', + variant_key: 'unknown', + }, + }, + { masterIdHint: 'master-zenbook-unknown' } + ); + assert.equal(archived.listing?.cluster_id, null); + assert.equal(archived.listing?.item_id, 'item-zenbook'); + + const live = await ingest( + 'item', + 'Laptop ASUS Zenbook S 14 UX5406AA 1TB', + zenbook, + { + hint: { + id: ZENBOOK_1TB.id, + specifications: { display: { size: 'x' } }, + status: 'published', + item_id: 'item-zenbook', + variant_key: '1024gb', + }, + }, + { masterIdHint: ZENBOOK_1TB.id } + ); + assert.equal(live.listing?.cluster_id, ZENBOOK_1TB.id); + assert.equal(live.listing?.variant_source, 'title'); + assert.ok(!live.calls.some(c => c.table === 'items'), 'a live hint skips matching'); + + const offHint = await ingest( + 'off', + bareTitle, + zenbook, + { hint: { id: 'master-zenbook-unknown', specifications: { display: { size: 'x' } } } }, + { masterIdHint: 'master-zenbook-unknown', itemIdHint: 'item-zenbook' } + ); + assert.equal(offHint.listing?.cluster_id, 'master-zenbook-unknown'); + assert.equal( + offHint.calls.find(c => c.table === 'master_products' && filter(c, 'id'))?.cols, + 'id, specifications' + ); + } + { + // itemIdHint for a storage-less page. + const hinted = await ingest( + 'nullable_variant', + 'ASUS Zenbook S14 OLED', + zenbook, + {}, + { + itemIdHint: 'item-zenbook', + } + ); + assert.equal(hinted.listing?.item_id, 'item-zenbook'); + assert.equal(hinted.listing?.cluster_id, null); + } + { + // An unkeyable title is rejected before the merchant write. + const db = createDb(call => + call.table === 'categories' ? { data: [], error: null } : undefined + ); + const pipeline = new ShopeeIngestionPipeline({ supabaseClient: db.client, itemModel: 'off' }); + await assert.rejects( + pipeline.ingestProduct(product('Samsung'), undefined, { pricesOnly: true }), + UnkeyableProductTitleError + ); + assert.ok(!db.calls.some(c => c.table === 'merchants')); + + // With a live masterIdHint the title's key is unused: the refresh still works. + const hintedRefresh = await ingest( + 'off', + 'Samsung', + zenbook, + { hint: { id: 'master-legacy', specifications: { display: { size: 'x' } } } }, + { masterIdHint: 'master-legacy' } + ); + assert.equal(hintedRefresh.listing?.cluster_id, 'master-legacy'); + } + console.log( + ' ✅ [5/5] Pipeline writes item_id, nullable cluster_id and keeps hand-set variants' + ); + console.log('🎉 All item-first matcher tests passed!'); +} + +run().catch(err => { + console.error(err); + process.exit(1); +}); diff --git a/apps/importer/src/shopee/entity-matcher.ts b/apps/importer/src/shopee/entity-matcher.ts index b0b6573a8..6c8628b6c 100644 --- a/apps/importer/src/shopee/entity-matcher.ts +++ b/apps/importer/src/shopee/entity-matcher.ts @@ -1,5 +1,14 @@ import crypto from 'node:crypto'; import { + UNKNOWN_VARIANT_KEY, + composeModelKey, + isItemKey, + isSizedVariantKey, + splitModelKey, + type VariantSource, +} from '@repo/shared-data'; +import { + UnkeyableProductTitleError, detectCategorySlug, type CanonicalCategorySlug, type NormalizedProductCandidate, @@ -8,6 +17,7 @@ import { applyCategorySpecTemplate } from '@repo/shared-data/rules'; import { AiSpecEnricher, mergeProductSpecifications } from './ai-spec-enricher.js'; import { mergeKeySpecs } from './jobs/backfill-specs.js'; import { createImporterLogger } from './logger.js'; +import { resolveItemModelMode, type ItemModelMode } from './item-model-flag.js'; import type { RateSupabaseClient } from './types.js'; const logger = createImporterLogger('EntityMatcher'); @@ -133,14 +143,322 @@ export function toBoundedPositiveNumber(value: unknown, max: number): number | n return Number.isFinite(n) && n > 0 && n <= max ? n : null; } +export interface EntityMatcherOptions { + /** Item model rollout mode; defaults to the `RATE_ITEM_MODEL` env (see item-model-flag.ts). */ + itemModel?: ItemModelMode; +} + +export interface ItemMatchResult { + /** The listing's Item; null only in mode `off`, where Items are not read. */ + itemId: string | null; + /** The listing's variant (`cluster_id`); null = no variant, only in mode `nullable_variant`. */ + masterId: string | null; + isNew: boolean; + /** `products.variant_source`; null when the listing does not tell its variant. */ + variantSource: VariantSource | null; +} + +type MatchedItem = { id: string; itemKey: string }; + export class EntityMatcher { private enricher: AiSpecEnricher; + public readonly itemModel: ItemModelMode; constructor( private supabase: RateSupabaseClient, - enricher?: AiSpecEnricher + enricher?: AiSpecEnricher, + options: EntityMatcherOptions = {} ) { this.enricher = enricher ?? new AiSpecEnricher(); + this.itemModel = options?.itemModel ?? resolveItemModelMode(); + } + + /** + * Item-first matching (DOS/Rate#1151, design doc section 4.5). In mode `off` this is + * exactly `resolveOrCreateMasterProduct`. Otherwise: + * 1. Item by `itemIdHint`, then by exact `item_key`, then fuzzy on Item names + * (`match_item`). Item names carry no storage, so a bare title can no longer + * land on a sized variant (#1105). + * 2. Known size: the variant by exact `(item_id, variant_key)`, created when missing. + * 3. Size not stated: a single-variant Item's one variant. On a multi-size Item, no + * variant in mode `nullable_variant`, the Item's `unknown` variant in mode `item`. + * 4. No Item: seed a master as today; the M1 sync trigger creates its draft Item. + */ + public async resolveItemAndVariant( + candidate: NormalizedProductCandidate, + categoryId?: string, + rawTitle?: string, + options: { itemIdHint?: string | null } = {} + ): Promise { + if (this.itemModel === 'off') { + const { masterId, isNew } = await this.resolveOrCreateMasterProduct( + candidate, + categoryId, + rawTitle + ); + return { itemId: null, masterId, isNew, variantSource: null }; + } + + const input = this.sanitizeCandidateInput(candidate, categoryId, rawTitle); + candidate = input.candidate; + const { safeModelKey, safeCategoryId, safeRawTitle } = input; + const keys = splitModelKey(safeModelKey); + if (!keys) { + throw new Error( + `[EntityMatcher] model_key is not in brand:model:variant shape: ${JSON.stringify(safeModelKey)}` + ); + } + const variantKnown = + typeof candidate.variant_known === 'boolean' + ? candidate.variant_known + : keys.variantKey !== UNKNOWN_VARIANT_KEY || candidate.category_slug === 'earbuds'; + const variantSource: VariantSource | null = variantKnown + ? (candidate.variant_source ?? + (keys.variantKey === UNKNOWN_VARIANT_KEY ? 'single_variant' : 'title')) + : null; + + // 1. Item: caller hint, exact item_key, then fuzzy on Item names. + let item: MatchedItem | null = null; + let ambiguousFuzzy = false; + const safeItemIdHint = sanitizeMatcherEntityId(options?.itemIdHint, 128); + if (safeItemIdHint) { + item = await this.findItem('id', safeItemIdHint); + if (item) { + logger.info('entity_match.item_hint', `Item from caller hint: ${item.itemKey}`, { + itemId: item.id, + }); + } else { + logger.warn('entity_match.item_hint_missing', `itemIdHint ${safeItemIdHint} not found`, { + itemIdHint: safeItemIdHint, + }); + } + } + if (!item) { + item = await this.findItem('item_key', keys.itemKey); + if (item) { + logger.info('entity_match.item_tier1_exact', `Item Tier 1 exact: ${item.itemKey}`, { + itemId: item.id, + }); + } + } + let fuzzyItem = false; + if (!item) { + const fuzzy = await this.fuzzyMatchItem(candidate); + item = fuzzy.item; + fuzzyItem = Boolean(fuzzy.item); + ambiguousFuzzy = fuzzy.ambiguous; + } + + // 4. No Item: seed the master under the candidate's own key. A new Item's one + // variant (sized or `unknown`) is its only variant until a sized one appears. + const seedOwnKey = async (): Promise => { + const seeded = await this.seedMasterProduct( + candidate, + safeModelKey, + safeCategoryId, + safeRawTitle, + ambiguousFuzzy + ); + const itemId = await this.itemIdOfMaster(seeded.masterId); + return { itemId, masterId: seeded.masterId, isNew: seeded.isNew, variantSource }; + }; + if (!item) return seedOwnKey(); + if (!isItemKey(item.itemKey)) { + throw new Error( + `[EntityMatcher] Item ${item.id} has no brand:model key (${JSON.stringify(item.itemKey)}); cannot place a variant under it` + ); + } + + const variants = await this.listItemVariants(item.id); + let targetVariantKey = keys.variantKey; + + if (variantKnown) { + // 2. Known size: exact (item_id, variant_key), as Tier 1 matches an exact model_key. + // A sizeless line keyed `unknown` also takes a live `standard` variant (seed keys). + const exact = + variants.find(v => v.variant_key === keys.variantKey) ?? + (keys.variantKey === UNKNOWN_VARIANT_KEY + ? variants.find(v => v.variant_key === 'standard' && v.status !== 'archived') + : undefined); + // An archived variant takes no new listings once variants may be NULL; mode + // item keeps Tier 1's rule (it links to the existing row). + if (exact?.status === 'archived' && this.itemModel === 'nullable_variant') { + logger.info( + 'entity_match.variant_archived', + `Variant ${exact.variant_key} of ${item.itemKey} is archived: no variant`, + { itemId: item.id, masterId: exact.id } + ); + return { itemId: item.id, masterId: null, isNew: false, variantSource: null }; + } + if (exact) { + logger.info('entity_match.variant_exact', `Variant ${keys.variantKey} of ${item.itemKey}`, { + itemId: item.id, + masterId: exact.id, + }); + return { itemId: item.id, masterId: exact.id, isNew: false, variantSource }; + } + } else { + // 3. Size not stated. Multi-size = a live sized variant (design doc 4.2). + const live = variants.filter(v => v.status !== 'archived'); + const multiSize = live.some(v => isSizedVariantKey(v.variant_key)); + if (multiSize && this.itemModel === 'nullable_variant') { + logger.info( + 'entity_match.variant_unknown', + `Size not stated on multi-size Item ${item.itemKey}: no variant`, + { itemId: item.id } + ); + return { itemId: item.id, masterId: null, isNew: false, variantSource: null }; + } + const unknownVariant = live.find(v => v.variant_key === UNKNOWN_VARIANT_KEY); + const only = multiSize + ? unknownVariant + : (unknownVariant ?? + live.find(v => v.variant_key === 'standard') ?? + (live.length === 1 ? live[0] : undefined)); + if (only) { + logger.info( + 'entity_match.variant_size_not_stated', + `Size not stated: variant ${only.variant_key} of ${item.itemKey}`, + { itemId: item.id, masterId: only.id, multiSize } + ); + return { itemId: item.id, masterId: only.id, isNew: false, variantSource: null }; + } + targetVariantKey = UNKNOWN_VARIANT_KEY; + // A retired `unknown` variant (M3) is never seeded again: the upsert would + // adopt the archived row. + if (variants.some(v => v.variant_key === UNKNOWN_VARIANT_KEY)) { + if (this.itemModel === 'nullable_variant') { + return { itemId: item.id, masterId: null, isNew: false, variantSource: null }; + } + throw new Error( + `[EntityMatcher] ${item.itemKey}:unknown is archived; RATE_ITEM_MODEL=item cannot place a listing with no stated size` + ); + } + } + + // A fuzzy Item hit only links to variants that exist, as Tier 2 only links to + // existing masters: the listing's own name and model may not be the Item's + // ("iPhone 15 Pro Max" ~ "iPhone 15 Pro"), so a new variant gets its own key. + if (fuzzyItem) return seedOwnKey(); + + // Missing variant of a known Item: create it under the Item's own key. + const variantModelKey = composeModelKey(item.itemKey, targetVariantKey); + const seeded = await this.seedMasterProduct( + { ...candidate, model_key: variantModelKey }, + variantModelKey, + safeCategoryId, + safeRawTitle, + ambiguousFuzzy + ); + logger.info( + 'entity_match.variant_created', + `Variant ${targetVariantKey} of ${item.itemKey}: ${seeded.masterId}`, + { itemId: item.id, masterId: seeded.masterId, isNew: seeded.isNew } + ); + return { itemId: item.id, masterId: seeded.masterId, isNew: seeded.isNew, variantSource }; + } + + private async findItem(column: 'id' | 'item_key', value: string): Promise { + const { data, error } = await this.supabase + .from('items') + .select('id, item_key') + .eq(column, value) + .maybeSingle(); + if (error) { + throw new Error(`[EntityMatcher] Item lookup by ${column} failed: ${error.message}`); + } + const row = data as { id?: unknown; item_key?: unknown } | null; + const id = sanitizeMatcherEntityId(row?.id, 128); + return id ? { id, itemKey: typeof row?.item_key === 'string' ? row.item_key : '' } : null; + } + + /** Item Tier 2: pg_trgm on Item names through `rate.match_item` (design doc 4.5). */ + private async fuzzyMatchItem( + candidate: NormalizedProductCandidate + ): Promise<{ item: MatchedItem | null; ambiguous: boolean }> { + const searchTitle = + typeof candidate.item_name === 'string' && candidate.item_name.trim() + ? candidate.item_name + : `${candidate.brand} ${candidate.model}`; + const { data, error } = await this.supabase.rpc('match_item', { + search_title: searchTitle, + p_brand: candidate.brand, + p_model: candidate.model, + p_threshold: ENTITY_MATCH_CANDIDATE_FLOOR, + }); + // As in Tier 2: an RPC failure aborts instead of seeding a duplicate Item. + if (error) { + throw new Error(`[EntityMatcher] Item Tier 2 fuzzy match failed: ${error.message}`); + } + const rows = Array.isArray(data) + ? data.filter(m => { + if (!m || typeof m !== 'object' || Array.isArray(m)) return false; + if (!sanitizeMatcherEntityId(m.item_id, 128)) return false; + const sim = typeof m.similarity === 'boolean' ? Number.NaN : Number(m.similarity); + return Number.isFinite(sim) && sim >= ENTITY_MATCH_CANDIDATE_FLOOR && sim <= 1; + }) + : []; + const top = rows[0]; + if (!top) return { item: null, ambiguous: false }; + const sim = Number(top.similarity); + if (sim < ENTITY_MATCH_ACCEPT_THRESHOLD) { + logger.warn( + 'entity_match.item_tier2_ambiguous', + `Item Tier 2 best similarity ${(sim * 100).toFixed(1)}% < ${(ENTITY_MATCH_ACCEPT_THRESHOLD * 100).toFixed(0)}%: seeding as draft if new.`, + { similarity: sim, modelKey: candidate.model_key } + ); + return { item: null, ambiguous: true }; + } + const item = { + id: sanitizeMatcherEntityId(top.item_id, 128), + itemKey: typeof top.item_key === 'string' ? top.item_key : '', + }; + logger.info( + 'entity_match.item_tier2_fuzzy', + `Item Tier 2: "${searchTitle}" ~= "${top.name}" (similarity: ${(sim * 100).toFixed(1)}%)`, + { itemId: item.id, similarity: sim } + ); + return { item, ambiguous: false }; + } + + private async listItemVariants( + itemId: string + ): Promise> { + const { data, error } = await this.supabase + .from('master_products') + .select('id, variant_key, status') + .eq('item_id', itemId) + .limit(200); + if (error) { + throw new Error(`[EntityMatcher] Variant lookup for Item ${itemId} failed: ${error.message}`); + } + return (Array.isArray(data) ? data : []).flatMap(row => { + const id = sanitizeMatcherEntityId(row?.id, 128); + return id && typeof row.variant_key === 'string' + ? [{ id, variant_key: row.variant_key, status: row.status ?? null }] + : []; + }); + } + + /** The Item the M1 sync trigger linked to a master; fails loudly when M1 is missing. */ + private async itemIdOfMaster(masterId: string): Promise { + const { data, error } = await this.supabase + .from('master_products') + .select('item_id') + .eq('id', masterId) + .maybeSingle(); + if (error) { + throw new Error( + `[EntityMatcher] item_id lookup for master ${masterId} failed: ${error.message}` + ); + } + const itemId = sanitizeMatcherEntityId((data as { item_id?: unknown } | null)?.item_id, 128); + if (!itemId) { + throw new Error( + `[EntityMatcher] master ${masterId} has no item_id: the Item migration (DOS/Rate#1150) is not applied` + ); + } + return itemId; } /** @@ -151,26 +469,9 @@ export class EntityMatcher { categoryId?: string, rawTitle?: string ): Promise<{ masterId: string; isNew: boolean }> { - if (!candidate || typeof candidate !== 'object' || Array.isArray(candidate)) { - throw new Error('[EntityMatcher] candidate must be a non-null object'); - } - const safeModelKey = String(candidate.model_key ?? '') - .replace(/\p{Cc}+/gu, '') - .trim() - .slice(0, 200); - if (!safeModelKey) { - throw new Error('[EntityMatcher] candidate.model_key must be a non-empty string'); - } - const safeCategoryId = sanitizeMatcherEntityId(categoryId, 128) || undefined; - const safeRawTitle = - typeof rawTitle === 'string' - ? rawTitle - .replace(/\p{Cc}+/gu, ' ') - .replace(/\s+/g, ' ') - .trim() - .slice(0, 500) - : undefined; - candidate = { ...candidate, model_key: safeModelKey }; + const input = this.sanitizeCandidateInput(candidate, categoryId, rawTitle); + candidate = input.candidate; + const { safeModelKey, safeCategoryId, safeRawTitle } = input; // Tier 1: Deterministic model_key matching const { data: exactMatch, error: exactErr } = await this.supabase @@ -247,6 +548,63 @@ export class EntityMatcher { ); } + return this.seedMasterProduct( + candidate, + safeModelKey, + safeCategoryId, + safeRawTitle, + ambiguousFuzzy + ); + } + + /** Validates and bounds the matcher input; throws on a missing candidate or key. */ + private sanitizeCandidateInput( + candidate: NormalizedProductCandidate, + categoryId?: string, + rawTitle?: string + ): { + candidate: NormalizedProductCandidate; + safeModelKey: string; + safeCategoryId: string | undefined; + safeRawTitle: string | undefined; + } { + if (!candidate || typeof candidate !== 'object' || Array.isArray(candidate)) { + throw new Error('[EntityMatcher] candidate must be a non-null object'); + } + const safeModelKey = String(candidate.model_key ?? '') + .replace(/\p{Cc}+/gu, '') + .trim() + .slice(0, 200); + if (!safeModelKey) { + throw new Error('[EntityMatcher] candidate.model_key must be a non-empty string'); + } + if (candidate.keyable === false) { + throw new UnkeyableProductTitleError(rawTitle ?? candidate.name); + } + const safeCategoryId = sanitizeMatcherEntityId(categoryId, 128) || undefined; + const safeRawTitle = + typeof rawTitle === 'string' + ? rawTitle + .replace(/\p{Cc}+/gu, ' ') + .replace(/\s+/g, ' ') + .trim() + .slice(0, 500) + : undefined; + candidate = { ...candidate, model_key: safeModelKey }; + return { candidate, safeModelKey, safeCategoryId, safeRawTitle }; + } + + /** + * Tier 3: no existing master matches. Enriches the candidate (AI Spec Enricher, + * unless it is in the local benchmark registry) and seeds a new master. + */ + private async seedMasterProduct( + candidate: NormalizedProductCandidate, + safeModelKey: string, + safeCategoryId: string | undefined, + safeRawTitle: string | undefined, + ambiguousFuzzy: boolean + ): Promise<{ masterId: string; isNew: boolean }> { // Tier 3: No existing master product matches -> Enrich with AI Spec Enricher (if not in local benchmark registry) // and seed a new Master Product. candidate = await this.enricher.enrichCandidate(candidate, safeRawTitle); diff --git a/apps/importer/src/shopee/item-model-flag.ts b/apps/importer/src/shopee/item-model-flag.ts new file mode 100644 index 000000000..373781053 --- /dev/null +++ b/apps/importer/src/shopee/item-model-flag.ts @@ -0,0 +1,27 @@ +/** + * Rollout flag for the Item / variant / listing model (DOS/Rate#1151; design doc + * `Docs/Proposals/2026-10-27-item-variant-listing-model.md`, sections 4.5 and 10). + * + * `RATE_ITEM_MODEL` selects how the importer resolves and writes a listing: + * - `off` (default): today's behaviour. Master-level matching only, nothing + * reads or writes `rate.items`, `item_id` or `variant_source`. Safe on a + * database without the DOS-Me M1+M2 migration (#1150). + * - `item`: item-first matching (`match_item`) and `item_id`/`variant_source` + * writes. Needs M1+M2. Every listing still gets a variant: a listing with + * no stated size on a multi-size Item goes to that Item's `unknown` variant. + * - `nullable_variant`: as `item`, and such a listing is written with + * `cluster_id = NULL`. Turn on only after DOS/Rate-Services#670 part 1 has + * merged, so every consumer treats a NULL variant as "no variant". + * + * Any other value reads as `off`, so a typo never starts writing new columns. + */ +export const ITEM_MODEL_ENV = 'RATE_ITEM_MODEL'; + +export const ITEM_MODEL_MODES = ['off', 'item', 'nullable_variant'] as const; +export type ItemModelMode = (typeof ITEM_MODEL_MODES)[number]; + +export function resolveItemModelMode(raw: unknown = process.env[ITEM_MODEL_ENV]): ItemModelMode { + if (typeof raw !== 'string') return 'off'; + const value = raw.trim().toLowerCase().replace(/-/g, '_'); + return (ITEM_MODEL_MODES as readonly string[]).includes(value) ? (value as ItemModelMode) : 'off'; +} diff --git a/apps/importer/src/shopee/product-normalizer.ts b/apps/importer/src/shopee/product-normalizer.ts index 927ae5b98..a0eb635b2 100644 --- a/apps/importer/src/shopee/product-normalizer.ts +++ b/apps/importer/src/shopee/product-normalizer.ts @@ -1,4 +1,10 @@ -import { MAX_VALID_VND_PRICE, type ProductSpecifications, type KeySpecs } from '@repo/shared-data'; +import { + MAX_VALID_VND_PRICE, + UNKNOWN_VARIANT_KEY, + type ProductSpecifications, + type KeySpecs, + type VariantSource, +} from '@repo/shared-data'; import type { ShopeeProduct } from './types.js'; export const MAX_VALID_RAM_GB = 2048; @@ -59,6 +65,31 @@ export interface NormalizedProductCandidate { model: string; variant_name: string; model_key: string; + /** + * Item fields (DOS/Rate#1151). `normalize()` always sets them; they are optional + * so candidates built elsewhere stay valid, and the matcher derives the keys + * from `model_key` when they are missing. + * `item_key` = `brand:model`, the first two `model_key` segments. + */ + item_key?: string; + /** The literal third `model_key` segment: `256gb`, `1024gb`, `unknown`. */ + variant_key?: string; + /** Item name and slug, never with a storage size. */ + item_name?: string; + item_slug?: string; + /** + * The listing's variant is known: a stated or single-size storage, or a line + * with no storage axis (earbuds). False only for "storage not stated". + */ + variant_known?: boolean; + /** How the variant was found; null when it is not known. */ + variant_source?: Extract | null; + /** + * False when the title gives no model segment. The key then carries the + * `unkeyed` placeholder model instead of an empty segment (`samsung::unknown`), + * and the pipeline and matcher reject the candidate (UnkeyableProductTitleError). + */ + keyable?: boolean; name: string; slug: string; storage_gb: number | null; // null = unparseable from the title; identity carries ':unknown' @@ -83,6 +114,24 @@ export interface NormalizedProductCandidate { }; } +/** Model segment of a title that names no model (`keyable: false`). */ +export const UNKEYED_MODEL_SEGMENT = 'unkeyed'; + +/** + * A title with no model to key on (e.g. it would key as `samsung::unknown`). The + * listing has no identity to match, so it is rejected before anything is written + * (DOS/Rate#1151). `normalize()` itself never throws; it marks `keyable: false`. + */ +export class UnkeyableProductTitleError extends Error { + readonly code = 'UNKEYABLE_PRODUCT_TITLE'; + constructor(title: string) { + super( + `Cannot key product title (no model segment): ${JSON.stringify(String(title ?? '').slice(0, 200))}` + ); + this.name = 'UnkeyableProductTitleError'; + } +} + /** * Detect listing physical condition from product title and optional description (Audit C6). * Strips promotional trade-in phrases ("thu cũ đổi mới") before matching so new retail listings @@ -1632,11 +1681,13 @@ export class ProductNormalizer { let storageGb: number | null = null; let storageConfident = false; + let variantSource: NormalizedProductCandidate['variant_source'] = null; const marker = romExplicit ?? romLoose; if (categorySlug === 'earbuds') { // Earbuds have no storage variant and must key as :unknown with null storage (DOS/Rate#643, #657). storageGb = null; storageConfident = true; + variantSource = 'single_variant'; } else if (marker) { const candidateStorage = toValidStorageGb( parseFloat(marker[1].replace(',', '.')) * (marker[2].toUpperCase() === 'TB' ? 1024 : 1) @@ -1660,8 +1711,10 @@ export class ProductNormalizer { } else if (storageCandidates.length === 0 && benchmark?.only_storage_gb != null) { storageGb = benchmark.only_storage_gb; storageConfident = true; + variantSource = 'single_size'; } const storageKnown = storageGb !== null; + if (storageKnown && variantSource === null) variantSource = 'title'; // 4. Extract Colors from models / variations const colors: string[] = []; @@ -1695,7 +1748,13 @@ export class ProductNormalizer { // 5. Construct keys & slugs. Unknown storage keeps identity space explicit // (':unknown') instead of guessing a default (plan v7 §5.2). - const modelKey = storageKnown ? `${baseKey}:${storageGb}gb` : `${baseKey}:unknown`; + // An empty key segment ("samsung::unknown") is never emitted: a title with no + // model keys on a placeholder and is marked unkeyable (DOS/Rate#1151). + const keyable = Boolean(slugify(brand) && slugify(model)); + const itemKey = keyable ? baseKey : `${slugify(brand) || 'khac'}:${UNKEYED_MODEL_SEGMENT}`; + const variantKey = storageKnown ? `${storageGb}gb` : UNKNOWN_VARIANT_KEY; + const modelKey = `${itemKey}:${variantKey}`; + const itemName = `${brand} ${model}`.trim(); const storageDisplay = categorySlug === 'earbuds' ? 'Standard' @@ -2075,10 +2134,17 @@ export class ProductNormalizer { model, variant_name: storageDisplay, model_key: modelKey, + item_key: itemKey, + variant_key: variantKey, + item_name: itemName, + item_slug: slugify(itemName), + variant_known: storageKnown || categorySlug === 'earbuds', + variant_source: variantSource, + keyable, name: canonicalName, slug, storage_gb: storageKnown ? storageGb : null, - needs_review: !storageConfident || condition !== 'new', + needs_review: !keyable || !storageConfident || condition !== 'new', condition, origin, ram_gb: ramGb, diff --git a/apps/importer/src/shopee/shopee-to-supabase.ts b/apps/importer/src/shopee/shopee-to-supabase.ts index 8f21d0076..85ddf2b7b 100644 --- a/apps/importer/src/shopee/shopee-to-supabase.ts +++ b/apps/importer/src/shopee/shopee-to-supabase.ts @@ -16,8 +16,14 @@ import { type SupportedEcommercePlatform, type ValidatedScrapedProduct, } from './types.js'; -import { ProductNormalizer } from './product-normalizer.js'; -import { EntityMatcher, sanitizeHttpUrl, sanitizeHttpUrlList } from './entity-matcher.js'; +import { ProductNormalizer, UnkeyableProductTitleError } from './product-normalizer.js'; +import { + EntityMatcher, + sanitizeHttpUrl, + sanitizeHttpUrlList, + type ItemMatchResult, +} from './entity-matcher.js'; +import type { ItemModelMode } from './item-model-flag.js'; import { AiSpecEnricher, type AiSpecEnricherConfig } from './ai-spec-enricher.js'; import { AiReviewAnalyzer, type ReviewInputItem } from './ai-review-analyzer.js'; import { createImporterLogger } from './logger.js'; @@ -249,6 +255,8 @@ export interface ShopeeIngestionPipelineConfig extends AiSpecEnricherConfig { * Optional pre-scoped `rate` schema Supabase client for dependency injection / deterministic testing. */ supabaseClient?: RateSupabaseClient; + /** Item model rollout mode; defaults to the `RATE_ITEM_MODEL` env (see item-model-flag.ts). */ + itemModel?: ItemModelMode; } export interface IngestOptions { @@ -257,6 +265,12 @@ export interface IngestOptions { * otherwise the listing goes through entity matching as usual. */ masterIdHint?: string | null; + /** + * Item this listing is known to belong to, for a page that states no size + * (DOS/Rate#1151). Its variant still comes from the title. Ignored while + * `RATE_ITEM_MODEL` is `off`, and when `masterIdHint` resolves. + */ + itemIdHint?: string | null; /** * When true, skips Step 6 review re-analysis so price-only (affiliate) ingests * do not re-score stored reviews without reviewer metadata or pay an extra AI pass. @@ -299,7 +313,9 @@ export class ShopeeIngestionPipeline { this.normalizer = new ProductNormalizer(); this.enricher = new AiSpecEnricher(aiConfig); this.reviewAnalyzer = new AiReviewAnalyzer(aiConfig); - this.matcher = new EntityMatcher(this.supabase, this.enricher); + this.matcher = new EntityMatcher(this.supabase, this.enricher, { + itemModel: aiConfig?.itemModel, + }); } /** @@ -405,7 +421,10 @@ export class ShopeeIngestionPipeline { ): Promise<{ productId: string; merchantId: string; - masterId: string; + /** The listing's variant; null only in `RATE_ITEM_MODEL=nullable_variant` (no variant). */ + masterId: string | null; + /** The listing's Item; null while `RATE_ITEM_MODEL` is `off`. */ + itemId: string | null; platform: SupportedEcommercePlatform; }> { if (!options || typeof options !== 'object' || Array.isArray(options)) options = {}; @@ -431,6 +450,15 @@ export class ShopeeIngestionPipeline { shopId: product.shop.shopId, }); + // Normalize first: a title with no keyable brand or model is rejected + // (UnkeyableProductTitleError) before anything is written. + const candidate = this.normalizer.normalize(product); + // With a masterIdHint the title's key is not used; the matcher still rejects + // the candidate if the hint does not resolve. + if (candidate.keyable === false && !options.masterIdHint) { + throw new UnkeyableProductTitleError(product.title); + } + // 1. Upsert merchant const entityHash = hashEntity(`${platform}:${product.shop.shopId}`); const { data: merchant, error: merchantErr } = await this.supabase @@ -465,8 +493,7 @@ export class ShopeeIngestionPipeline { ); await report?.('merchant'); - // 2. Normalize Specs & Match / Seed Master Product - const candidate = this.normalizer.normalize(product); + // 2. Match / Seed Master Product const resolvedCategoryId = this.categoryIdBySlug.get(candidate.category_slug || 'smartphones') || this.smartphoneCategoryId; @@ -485,22 +512,64 @@ export class ShopeeIngestionPipeline { // A caller that already verified the master (coverage discovery, or a refresh of // a listing that is already clustered) keeps the listing on it instead of // re-matching every crawl, which can split it onto a new draft master. - let hinted: { masterId: string; isNew: boolean } | null = null; + const itemModel = this.matcher.itemModel; + let hinted: ItemMatchResult | null = null; + // undefined = leave the stored variant_source as it is. + let hintedVariantSource: ItemMatchResult['variantSource'] | undefined; + let safeItemIdHint = + typeof options.itemIdHint === 'string' + ? (sanitizeIngestionEntityId(options.itemIdHint, 128) ?? '') + : ''; + if (safeItemIdHint && itemModel === 'off') { + platLogger.warn('ingest.item_hint_ignored', 'itemIdHint ignored: RATE_ITEM_MODEL is off', { + itemIdHint: safeItemIdHint, + }); + safeItemIdHint = ''; + } const safeMasterIdHint = typeof options.masterIdHint === 'string' ? (sanitizeIngestionEntityId(options.masterIdHint, 128) ?? '') : ''; if (safeMasterIdHint) { - const { data: hintRow, error: hintErr } = await this.supabase + const { data: hintData, error: hintErr } = await this.supabase .from('master_products') - .select('id, specifications') + .select( + itemModel === 'off' + ? 'id, specifications' + : 'id, specifications, status, item_id, variant_key' + ) .eq('id', safeMasterIdHint) .maybeSingle(); if (hintErr) { throw new Error(`Failed to verify masterIdHint (${safeMasterIdHint}): ${hintErr.message}`); } - if (hintRow?.id) { - hinted = { masterId: hintRow.id, isNew: false }; + const hintRow = hintData as { + id?: string; + specifications?: Record | null; + } | null; + const hintMeta = hintData as { + status?: unknown; + item_id?: unknown; + variant_key?: unknown; + } | null; + const hintItemId = + itemModel === 'off' ? null : sanitizeIngestionEntityId(hintMeta?.item_id, 128); + if (hintRow?.id && itemModel !== 'off' && hintMeta?.status === 'archived') { + // A retired master (an Item's `unknown` variant after M3) must not take the + // listing back: the hint maps to its Item, and the variant comes from the title. + platLogger.info( + 'ingest.master_hint_archived', + `masterIdHint ${hintRow.id} is archived: matching under its Item ${hintItemId ?? '(none)'}`, + { masterId: hintRow.id, itemId: hintItemId } + ); + if (hintItemId) safeItemIdHint = hintItemId; + } else if (hintRow?.id) { + hinted = { masterId: hintRow.id, itemId: hintItemId, isNew: false, variantSource: null }; + // The title's variant source holds only when it names the hinted variant. + hintedVariantSource = + candidate.variant_known && candidate.variant_key === hintMeta?.variant_key + ? (candidate.variant_source ?? null) + : undefined; const existingSpecs = (hintRow as { specifications?: Record | null }) .specifications; if (existingSpecs !== undefined && !hasPopulatedSpecificationGroups(existingSpecs)) { @@ -517,25 +586,67 @@ export class ShopeeIngestionPipeline { } } } - const { masterId, isNew } = + const resolved = hinted ?? - (await this.matcher.resolveOrCreateMasterProduct( + (await this.matcher.resolveItemAndVariant( candidate, resolvedCategoryId || undefined, - product.title + product.title, + { itemIdHint: safeItemIdHint || null } )); + const { itemId, isNew } = resolved; + let masterId = resolved.masterId; + let variantSourceToWrite = hinted ? hintedVariantSource : resolved.variantSource; + // The variant the listing had before this crawl, so its stats follow a move. + let previousClusterId: string | null = null; + if (itemModel !== 'off' && !hinted) { + // A variant set by hand is evidence, never undone by a later page that just + // does not state the size (design doc 4.4): only listing evidence + // (variant_source set) may move it. + const { data: stored, error: storedErr } = await this.supabase + .from('products') + .select('cluster_id, variant_source') + .eq('platform', platform) + .eq('platform_item_id', product.itemId) + .maybeSingle(); + if (storedErr) { + throw new Error(`Failed to read the stored listing variant: ${storedErr.message}`); + } + const storedClusterId = sanitizeIngestionEntityId(stored?.cluster_id, 128); + previousClusterId = storedClusterId; + // A hand-set variant always stays. A variant backed by listing evidence stays + // when this crawl has none; a `legacy` or NULL-source link (e.g. a #1105 + // fuzzy link) does not. + const storedSource = stored?.variant_source; + const keepStored = + storedSource === 'manual' || + (!resolved.variantSource && + (storedSource === 'title' || storedSource === 'sku' || storedSource === 'single_size')); + if (storedClusterId && keepStored) { + masterId = storedClusterId; + variantSourceToWrite = undefined; + } + } platLogger.info( 'ingest.master_resolved', - `Master Product ${hinted ? 'LINKED (caller hint)' : isNew ? 'CREATED' : 'LINKED'}: ID = ${masterId}`, - { masterId, isNew, hinted: Boolean(hinted) } + `Master Product ${hinted ? 'LINKED (caller hint)' : isNew ? 'CREATED' : 'LINKED'}: ID = ${masterId ?? '(no variant)'}`, + { masterId, itemId, isNew, hinted: Boolean(hinted) } ); await report?.('master'); + // Item columns exist only once the DOS-Me Item migration is applied (DOS/Rate#1150). + const itemColumns: { item_id?: string; variant_source?: string | null } = {}; + if (itemModel !== 'off') { + if (itemId) itemColumns.item_id = itemId; + if (variantSourceToWrite !== undefined) itemColumns.variant_source = variantSourceToWrite; + } + // 3. Upsert product listing into rate.products (linked via cluster_id) const { data: savedProduct, error: productErr } = await this.supabase .from('products') .upsert( { + ...itemColumns, merchant_id: merchantId, cluster_id: masterId, category_id: resolvedCategoryId, @@ -576,15 +687,32 @@ export class ShopeeIngestionPipeline { }); // 3b. Refresh canonical master_products market stats (min_price, max_price, merchant_count) via SQL RPC (Audit C5) - if (typeof this.supabase.rpc === 'function') { + // A variant the listing just left is refreshed too, or it keeps the old price. + const statsMasterIds = [masterId, previousClusterId].filter( + (id, i, all): id is string => Boolean(id) && all.indexOf(id) === i + ); + for (const statsMasterId of typeof this.supabase.rpc === 'function' ? statsMasterIds : []) { const { error: marketStatsErr } = await this.supabase.rpc('refresh_master_market_stats', { - p_master_id: masterId, + p_master_id: statsMasterId, }); if (marketStatsErr) { platLogger.warn( 'ingest.market_stats_rpc_warn', `Could not refresh master market stats via RPC: ${marketStatsErr.message}`, - { masterId } + { masterId: statsMasterId } + ); + } + } + // Then the Item roll-up (DOS-Me M2 `refresh_item_stats`, design doc 4.1). + if (typeof this.supabase.rpc === 'function' && itemModel !== 'off' && itemId) { + const { error: itemStatsErr } = await this.supabase.rpc('refresh_item_stats', { + p_item_id: itemId, + }); + if (itemStatsErr) { + platLogger.warn( + 'ingest.item_stats_rpc_warn', + `Could not refresh Item stats via RPC: ${itemStatsErr.message}`, + { itemId } ); } } @@ -870,26 +998,29 @@ export class ShopeeIngestionPipeline { { productId } ); } else if (analysisInput.length > 0) { - const [{ data: masterRow }, { data: peerRows }] = await Promise.all([ - this.supabase - .from('master_products') - .select('min_price') - .eq('id', masterId) - .maybeSingle(), - (() => { - const q = this.supabase - .from('products') - .select('id, price_current, merchants(is_official)') - .eq('cluster_id', masterId) - .gt('price_current', 0); - const withLte = - typeof (q as unknown as { lte?: (col: string, val: number) => typeof q }).lte === - 'function' - ? q.lte('price_current', MAX_VALID_VND_PRICE) - : q; - return withLte.limit(100); - })(), - ]); + // No variant: no peer floor, since peers and min price are per variant. + const [{ data: masterRow }, { data: peerRows }] = !masterId + ? [{ data: null }, { data: null }] + : await Promise.all([ + this.supabase + .from('master_products') + .select('min_price') + .eq('id', masterId) + .maybeSingle(), + (() => { + const q = this.supabase + .from('products') + .select('id, price_current, merchants(is_official)') + .eq('cluster_id', masterId) + .gt('price_current', 0); + const withLte = + typeof (q as unknown as { lte?: (col: string, val: number) => typeof q }) + .lte === 'function' + ? q.lte('price_current', MAX_VALID_VND_PRICE) + : q; + return withLte.limit(100); + })(), + ]); const rawMasterMinPrice = masterRow?.min_price; const parsedMasterMinPrice = @@ -981,6 +1112,6 @@ export class ShopeeIngestionPipeline { `Product ingestion complete! (Master: ${masterId}, Product: ${productId})`, { masterId, productId, merchantId } ); - return { productId, merchantId, masterId, platform }; + return { productId, merchantId, masterId, itemId, platform }; } }