From 2f3053990740468e5f95374bc68d591a3f7b13f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=98=89=E4=BC=9F?= <202383014@uibe.edu.cn> Date: Mon, 12 Oct 2026 00:45:20 +0800 Subject: [PATCH 01/11] fix(check): bound crossing analysis work --- archify/scripts/check-render-output.mjs | 37 ++++++++++++++++++++----- test/svg-path-checker.test.mjs | 27 +++++++++++++++--- 2 files changed, 53 insertions(+), 11 deletions(-) diff --git a/archify/scripts/check-render-output.mjs b/archify/scripts/check-render-output.mjs index 74d9d68dd..3f1a73c5f 100644 --- a/archify/scripts/check-render-output.mjs +++ b/archify/scripts/check-render-output.mjs @@ -19,6 +19,11 @@ import { } from '../renderers/shared/desktop-readability.mjs'; const input = process.argv[2]; +const DEFAULT_MAX_CROSSING_PAIR_CHECKS = 50_000; +const maxCrossingPairChecks = positiveIntegerEnvironment( + 'ARCHIFY_CHECK_MAX_CROSSING_PAIR_CHECKS', + DEFAULT_MAX_CROSSING_PAIR_CHECKS, +); if (!input || input === '-h' || input === '--help') { console.error('Usage: node scripts/check-render-output.mjs '); @@ -142,7 +147,8 @@ if (svgMatches.length === 1) { diagonal.length === 0, diagonal.map(({ arrow, segmentIndex }) => `${arrow.kind} ${arrow.index} segment ${segmentIndex + 1}: expected an orthogonal segment or an explicitly authored direct straight route; ${arrow.raw}`), ); - const measuredRelationshipCrossings = collectRelationshipCrossings(arrows, workflowV2); + const crossingAnalysis = collectRelationshipCrossings(arrows, workflowV2, maxCrossingPairChecks); + const measuredRelationshipCrossings = crossingAnalysis.crossings; const resolvedCrossovers = measuredRelationshipCrossings.filter((hit) => ( hit.left.crossoverHalo && hit.right.crossoverHalo )); @@ -213,7 +219,8 @@ if (svgMatches.length === 1) { const desktopReadabilityIsError = qualityProfile === 'showcase'; // Certain geometry, but new: surface it as evidence first (CONTRIBUTING.md#product-and-compatibility-contracts). const viewportHeightIsError = false; - const compositionErrors = (qualityGatesEnforced ? containerBorderRuns.length : 0) + const compositionErrors = (crossingAnalysis.exhausted ? 1 : 0) + + (qualityGatesEnforced ? containerBorderRuns.length : 0) + (crossingIsError ? relationshipCrossings.length : 0) + (corridorIsError ? ambiguousCorridors.length + arrowheadCollisions.length : 0) + (labelClearanceIsError ? labelRouteClearance.length : 0) @@ -328,6 +335,13 @@ if (svgMatches.length === 1) { otherRelationship: relationshipRecord(hit.right), point: hit.point.map((value) => Math.round(value * 10) / 10), })), + ...(crossingAnalysis.exhausted ? [{ + severity: 'error', + code: 'composition/crossing-analysis-budget', + attemptedPairs: crossingAnalysis.attemptedPairs, + limit: maxCrossingPairChecks, + detail: `Crossing analysis stopped after ${crossingAnalysis.attemptedPairs} relationship pairs (limit ${maxCrossingPairChecks}); inspection is incomplete. Increase ARCHIFY_CHECK_MAX_CROSSING_PAIR_CHECKS and rerun the check.`, + }] : []), ...ambiguousCorridors.map((hit) => ({ severity: corridorIsError ? 'error' : 'warning', code: 'composition/ambiguous-corridor', @@ -399,10 +413,10 @@ if (svgMatches.length === 1) { ); addCheck( 'relationship_crossings', - !crossingIsError || relationshipCrossings.length === 0, - relationshipCrossings.map((hit) => ( + !crossingAnalysis.exhausted && (!crossingIsError || relationshipCrossings.length === 0), + [...relationshipCrossings.map((hit) => ( `[composition/proper-crossing] ${qualityProfile} ${relationshipName(hit.left)} crosses ${relationshipName(hit.right)} at [${formatPoint(hit.point)}]` - )), + )), ...(crossingAnalysis.exhausted ? [`[composition/crossing-analysis-budget] stopped after ${crossingAnalysis.attemptedPairs} relationship pairs (limit ${maxCrossingPairChecks})`] : [])], ); addCheck( 'relationship_corridors', @@ -734,7 +748,7 @@ function parseRoutePoints(value) { return points.length >= 2 && points.every(isPoint) ? points : null; } -function collectRelationshipCrossings(arrows, includeSharedEndpoints = false) { +function collectRelationshipCrossings(arrows, includeSharedEndpoints = false, limit = DEFAULT_MAX_CROSSING_PAIR_CHECKS) { const relationships = arrows.filter((arrow) => arrow.from && arrow.to && arrow.segments.length).map(arrow => ({ ...arrow, // Readable-v2 routePoints come from the visible path, never its metadata. @@ -742,6 +756,7 @@ function collectRelationshipCrossings(arrows, includeSharedEndpoints = false) { segments: includeSharedEndpoints ? arrow.routeSubpaths.flatMap(forwardCollinearAnalysisSegments) : arrow.segments, })); const crossings = []; + let attemptedPairs = 0; for (let leftIndex = 0; leftIndex < relationships.length; leftIndex += 1) { const left = relationships[leftIndex]; for (let rightIndex = leftIndex + 1; rightIndex < relationships.length; rightIndex += 1) { @@ -752,6 +767,8 @@ function collectRelationshipCrossings(arrows, includeSharedEndpoints = false) { && !includeSharedEndpoints && !(left.independentPorts && right.independentPorts) && !(left.automaticWorkflowRoute && right.automaticWorkflowRoute)) continue; + if (attemptedPairs >= limit) return { crossings, attemptedPairs, exhausted: true }; + attemptedPairs += 1; let point = null; for (const leftSegment of left.segments) { for (const rightSegment of right.segments) { @@ -763,7 +780,13 @@ function collectRelationshipCrossings(arrows, includeSharedEndpoints = false) { if (point) crossings.push({ left, right, point }); } } - return crossings; + return { crossings, attemptedPairs, exhausted: false }; +} + +function positiveIntegerEnvironment(name, fallback) { + const value = process.env[name]; + if (value === undefined || value === '') return fallback; + return /^[1-9]\d*$/.test(value) && Number.isSafeInteger(Number(value)) ? Number(value) : fallback; } function relationshipName(arrow) { diff --git a/test/svg-path-checker.test.mjs b/test/svg-path-checker.test.mjs index c45797f77..6339ceceb 100644 --- a/test/svg-path-checker.test.mjs +++ b/test/svg-path-checker.test.mjs @@ -31,18 +31,18 @@ function killTree(child) { } } -async function check(t, body, { publicCli = false, rootAttrs = '', profile = 'showcase' } = {}) { +async function check(t, body, { publicCli = false, rootAttrs = '', profile = 'showcase', env = {} } = {}) { const file = path.join(scratch, `${sequence++}.html`); fs.writeFileSync(file, `${body}`); const args = publicCli ? [cli, 'check', file, '--json'] : [checker, file]; - return execute(t, args, body); + return execute(t, args, body, deadlineMs, env); } -async function execute(t, args, description, timeoutMs = deadlineMs) { +async function execute(t, args, description, timeoutMs = deadlineMs, env = {}) { const child = spawn(process.execPath, args, { detached: process.platform !== 'win32', stdio: ['ignore', 'pipe', 'pipe'], - env: { ...process.env, ARCHIFY_UPDATE_CHECK_DISABLED: '1' }, + env: { ...process.env, ARCHIFY_UPDATE_CHECK_DISABLED: '1', ...env }, }); let stdout = '', stderr = '', timedOut = false, exited = false, spawnError, cleanupError; child.stdout.on('data', chunk => { stdout += chunk; }); @@ -196,6 +196,25 @@ for (const rootAttrs of ['', 'data-layout-contract="readable-v2"']) { }); } +test('交叉分析预算耗尽时以失败回执结束,不把未完成检查当作通过', async t => { + const body = [ + arrow('M20 20H80', { id: 'one', from: 'a', to: 'b' }), + arrow('M20 60H80', { id: 'two', from: 'c', to: 'd' }), + arrow('M20 100H80', { id: 'three', from: 'e', to: 'f' }), + ].join(''); + const result = await check(t, body, { + env: { ARCHIFY_CHECK_MAX_CROSSING_PAIR_CHECKS: '1' }, + }); + assert.equal(result.code, 1); + const crossingCheck = result.receipt.checks.find(item => item.name === 'relationship_crossings'); + assert.equal(crossingCheck.ok, false); + assert.match(crossingCheck.details.join('\n'), /crossing-analysis-budget.*limit 1/); + assert.equal( + result.receipt.composition.issues.find(item => item.code === 'composition/crossing-analysis-budget')?.attemptedPairs, + 1, + ); +}); + test('Z 回到当前子路径起点,后续相对 m 不沿旧终点移动', async t => { const d = 'M20 20H100V100H20Z m0 120h60'; const other = arrow('M10 180H30', { id: 'other', from: 'c', to: 'd' }); From bca9b0ef2ab9150aa91f3c681d1d4f9b453f995f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=98=89=E4=BC=9F?= <202383014@uibe.edu.cn> Date: Sat, 24 Oct 2026 13:33:04 +0800 Subject: [PATCH 02/11] fix: bound crossing segment comparisons --- archify/scripts/check-render-output.mjs | 53 +++++++++++++++++++++---- test/svg-path-checker.test.mjs | 21 ++++++++++ 2 files changed, 67 insertions(+), 7 deletions(-) diff --git a/archify/scripts/check-render-output.mjs b/archify/scripts/check-render-output.mjs index 3f1a73c5f..63c51558b 100644 --- a/archify/scripts/check-render-output.mjs +++ b/archify/scripts/check-render-output.mjs @@ -20,10 +20,15 @@ import { const input = process.argv[2]; const DEFAULT_MAX_CROSSING_PAIR_CHECKS = 50_000; +const DEFAULT_MAX_CROSSING_SEGMENT_PAIR_CHECKS = 500_000; const maxCrossingPairChecks = positiveIntegerEnvironment( 'ARCHIFY_CHECK_MAX_CROSSING_PAIR_CHECKS', DEFAULT_MAX_CROSSING_PAIR_CHECKS, ); +const maxCrossingSegmentPairChecks = positiveIntegerEnvironment( + 'ARCHIFY_CHECK_MAX_CROSSING_SEGMENT_PAIR_CHECKS', + DEFAULT_MAX_CROSSING_SEGMENT_PAIR_CHECKS, +); if (!input || input === '-h' || input === '--help') { console.error('Usage: node scripts/check-render-output.mjs '); @@ -147,7 +152,12 @@ if (svgMatches.length === 1) { diagonal.length === 0, diagonal.map(({ arrow, segmentIndex }) => `${arrow.kind} ${arrow.index} segment ${segmentIndex + 1}: expected an orthogonal segment or an explicitly authored direct straight route; ${arrow.raw}`), ); - const crossingAnalysis = collectRelationshipCrossings(arrows, workflowV2, maxCrossingPairChecks); + const crossingAnalysis = collectRelationshipCrossings( + arrows, + workflowV2, + maxCrossingPairChecks, + maxCrossingSegmentPairChecks, + ); const measuredRelationshipCrossings = crossingAnalysis.crossings; const resolvedCrossovers = measuredRelationshipCrossings.filter((hit) => ( hit.left.crossoverHalo && hit.right.crossoverHalo @@ -339,8 +349,12 @@ if (svgMatches.length === 1) { severity: 'error', code: 'composition/crossing-analysis-budget', attemptedPairs: crossingAnalysis.attemptedPairs, - limit: maxCrossingPairChecks, - detail: `Crossing analysis stopped after ${crossingAnalysis.attemptedPairs} relationship pairs (limit ${maxCrossingPairChecks}); inspection is incomplete. Increase ARCHIFY_CHECK_MAX_CROSSING_PAIR_CHECKS and rerun the check.`, + attemptedSegmentPairs: crossingAnalysis.attemptedSegmentPairs, + pairLimit: maxCrossingPairChecks, + segmentPairLimit: maxCrossingSegmentPairChecks, + exhaustedBudget: crossingAnalysis.exhaustedBudget, + detail: crossingBudgetDetail(crossingAnalysis), + supportedFixes: crossingBudgetFixes(crossingAnalysis), }] : []), ...ambiguousCorridors.map((hit) => ({ severity: corridorIsError ? 'error' : 'warning', @@ -416,7 +430,7 @@ if (svgMatches.length === 1) { !crossingAnalysis.exhausted && (!crossingIsError || relationshipCrossings.length === 0), [...relationshipCrossings.map((hit) => ( `[composition/proper-crossing] ${qualityProfile} ${relationshipName(hit.left)} crosses ${relationshipName(hit.right)} at [${formatPoint(hit.point)}]` - )), ...(crossingAnalysis.exhausted ? [`[composition/crossing-analysis-budget] stopped after ${crossingAnalysis.attemptedPairs} relationship pairs (limit ${maxCrossingPairChecks})`] : [])], + )), ...(crossingAnalysis.exhausted ? [`[composition/crossing-analysis-budget] ${crossingBudgetDetail(crossingAnalysis)}`] : [])], ); addCheck( 'relationship_corridors', @@ -748,7 +762,12 @@ function parseRoutePoints(value) { return points.length >= 2 && points.every(isPoint) ? points : null; } -function collectRelationshipCrossings(arrows, includeSharedEndpoints = false, limit = DEFAULT_MAX_CROSSING_PAIR_CHECKS) { +function collectRelationshipCrossings( + arrows, + includeSharedEndpoints = false, + pairLimit = DEFAULT_MAX_CROSSING_PAIR_CHECKS, + segmentPairLimit = DEFAULT_MAX_CROSSING_SEGMENT_PAIR_CHECKS, +) { const relationships = arrows.filter((arrow) => arrow.from && arrow.to && arrow.segments.length).map(arrow => ({ ...arrow, // Readable-v2 routePoints come from the visible path, never its metadata. @@ -757,6 +776,7 @@ function collectRelationshipCrossings(arrows, includeSharedEndpoints = false, li })); const crossings = []; let attemptedPairs = 0; + let attemptedSegmentPairs = 0; for (let leftIndex = 0; leftIndex < relationships.length; leftIndex += 1) { const left = relationships[leftIndex]; for (let rightIndex = leftIndex + 1; rightIndex < relationships.length; rightIndex += 1) { @@ -767,11 +787,17 @@ function collectRelationshipCrossings(arrows, includeSharedEndpoints = false, li && !includeSharedEndpoints && !(left.independentPorts && right.independentPorts) && !(left.automaticWorkflowRoute && right.automaticWorkflowRoute)) continue; - if (attemptedPairs >= limit) return { crossings, attemptedPairs, exhausted: true }; + if (attemptedPairs >= pairLimit) { + return { crossings, attemptedPairs, attemptedSegmentPairs, exhausted: true, exhaustedBudget: 'relationship-pairs' }; + } attemptedPairs += 1; let point = null; for (const leftSegment of left.segments) { for (const rightSegment of right.segments) { + if (attemptedSegmentPairs >= segmentPairLimit) { + return { crossings, attemptedPairs, attemptedSegmentPairs, exhausted: true, exhaustedBudget: 'segment-pairs' }; + } + attemptedSegmentPairs += 1; point = properSegmentIntersection(leftSegment.start, leftSegment.end, rightSegment.start, rightSegment.end); if (point) break; } @@ -780,7 +806,20 @@ function collectRelationshipCrossings(arrows, includeSharedEndpoints = false, li if (point) crossings.push({ left, right, point }); } } - return { crossings, attemptedPairs, exhausted: false }; + return { crossings, attemptedPairs, attemptedSegmentPairs, exhausted: false, exhaustedBudget: null }; +} + +function crossingBudgetDetail(analysis) { + const attempted = analysis.exhaustedBudget === 'segment-pairs' + ? `${analysis.attemptedSegmentPairs} segment pairs (limit ${maxCrossingSegmentPairChecks}) after ${analysis.attemptedPairs} relationship pairs` + : `${analysis.attemptedPairs} relationship pairs (limit ${maxCrossingPairChecks}) after ${analysis.attemptedSegmentPairs} segment pairs`; + return `Crossing analysis stopped after ${attempted}; inspection is incomplete.`; +} + +function crossingBudgetFixes(analysis) { + return analysis.exhaustedBudget === 'segment-pairs' + ? ['increase ARCHIFY_CHECK_MAX_CROSSING_SEGMENT_PAIR_CHECKS for this known-large artifact and rerun the check'] + : ['increase ARCHIFY_CHECK_MAX_CROSSING_PAIR_CHECKS for this known-large artifact and rerun the check']; } function positiveIntegerEnvironment(name, fallback) { diff --git a/test/svg-path-checker.test.mjs b/test/svg-path-checker.test.mjs index 6339ceceb..595d2130b 100644 --- a/test/svg-path-checker.test.mjs +++ b/test/svg-path-checker.test.mjs @@ -213,6 +213,27 @@ test('交叉分析预算耗尽时以失败回执结束,不把未完成检查 result.receipt.composition.issues.find(item => item.code === 'composition/crossing-analysis-budget')?.attemptedPairs, 1, ); + assert.match( + result.receipt.composition.issues.find(item => item.code === 'composition/crossing-analysis-budget')?.supportedFixes?.join('\n') || '', + /ARCHIFY_CHECK_MAX_CROSSING_PAIR_CHECKS/, + ); +}); + +test('交叉分析限制每个关系对内的线段乘积,并给出可执行的恢复指引', async t => { + const result = await check(t, [ + arrow('M20 20H100V40H20V60H100', { id: 'many-left', from: 'a', to: 'b' }), + arrow('M200 120H280V140H200V160H280', { id: 'many-right', from: 'c', to: 'd' }), + ].join(''), { + env: { ARCHIFY_CHECK_MAX_CROSSING_SEGMENT_PAIR_CHECKS: '1' }, + publicCli: true, + }); + assert.equal(result.code, 1); + const issue = result.receipt.composition.issues.find(item => item.code === 'composition/crossing-analysis-budget'); + assert.equal(issue?.exhaustedBudget, 'segment-pairs'); + assert.equal(issue?.attemptedPairs, 1); + assert.equal(issue?.attemptedSegmentPairs, 1); + assert.match(issue?.detail || '', /segment pairs \(limit 1\)/); + assert.match(issue?.supportedFixes?.join('\n') || '', /ARCHIFY_CHECK_MAX_CROSSING_SEGMENT_PAIR_CHECKS/); }); test('Z 回到当前子路径起点,后续相对 m 不沿旧终点移动', async t => { From 6edf8cb265a137a635e9b7cfeea14a163c6b51f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=98=89=E4=BC=9F?= <202383014@uibe.edu.cn> Date: Sat, 24 Oct 2026 13:49:43 +0800 Subject: [PATCH 03/11] fix: expose crossing budget recovery --- archify/bin/archify.mjs | 1 + test/svg-path-checker.test.mjs | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/archify/bin/archify.mjs b/archify/bin/archify.mjs index fa9b09efa..14b9adabd 100755 --- a/archify/bin/archify.mjs +++ b/archify/bin/archify.mjs @@ -2711,6 +2711,7 @@ const CHECK_FIXES = { }; const COMPOSITION_FIXES = { + 'composition/crossing-analysis-budget': ['increase the reported ARCHIFY_CHECK_MAX_CROSSING_PAIR_CHECKS or ARCHIFY_CHECK_MAX_CROSSING_SEGMENT_PAIR_CHECKS value for this known-large artifact and rerun the check'], 'composition/proper-crossing': ['if authored via/route/channelX/channelY controls exist and are not required by the user, remove them to let the renderer re-plan; otherwise preserve that intent and adjust route/via or channel coordinates so unrelated relationships use separate corridors'], 'composition/ambiguous-corridor': ['if authored via/route/channelX/channelY controls exist and are not required by the user, remove them to let the renderer re-plan; otherwise preserve that intent and adjust route/via or channel coordinates so unrelated relationships do not visually merge'], 'composition/container-border-run': ['if authored via/route/channelX/channelY controls exist and are not required by the user, remove them to let the renderer re-plan; otherwise preserve that intent and route across the frame perpendicularly through a clear opening'], diff --git a/test/svg-path-checker.test.mjs b/test/svg-path-checker.test.mjs index 595d2130b..d234eea7f 100644 --- a/test/svg-path-checker.test.mjs +++ b/test/svg-path-checker.test.mjs @@ -236,6 +236,23 @@ test('交叉分析限制每个关系对内的线段乘积,并给出可执行 assert.match(issue?.supportedFixes?.join('\n') || '', /ARCHIFY_CHECK_MAX_CROSSING_SEGMENT_PAIR_CHECKS/); }); +test('公共 deliver CLI 将交叉预算恢复指引写入诊断', async t => { + const output = path.join(scratch, `${sequence++}-event-stream.html`); + const result = await execute(t, [ + cli, + 'deliver', + 'dataflow', + path.join(skillRoot, 'examples', 'event-stream.dataflow.json'), + output, + '--json', + ], 'event-stream dataflow with an intentionally exhausted crossing budget', deadlineMs, { + ARCHIFY_CHECK_MAX_CROSSING_PAIR_CHECKS: '1', + }); + assert.equal(result.code, 1); + const diagnostic = result.receipt.diagnostics.find(item => item.code === 'composition/crossing-analysis-budget'); + assert.match(diagnostic?.supportedFixes?.join('\n') || '', /ARCHIFY_CHECK_MAX_CROSSING_PAIR_CHECKS/); +}); + test('Z 回到当前子路径起点,后续相对 m 不沿旧终点移动', async t => { const d = 'M20 20H100V100H20Z m0 120h60'; const other = arrow('M10 180H30', { id: 'other', from: 'c', to: 'd' }); From 3623afbf35a589743da5bdd71791c56d9cd9bb35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=98=89=E4=BC=9F?= <202383014@uibe.edu.cn> Date: Sat, 24 Oct 2026 13:51:56 +0800 Subject: [PATCH 04/11] test: retain crossing budget stress fixture --- test/helpers/crossing-budget-fixture.mjs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 test/helpers/crossing-budget-fixture.mjs diff --git a/test/helpers/crossing-budget-fixture.mjs b/test/helpers/crossing-budget-fixture.mjs new file mode 100644 index 000000000..fd173c038 --- /dev/null +++ b/test/helpers/crossing-budget-fixture.mjs @@ -0,0 +1,18 @@ +import fs from 'node:fs'; +import path from 'node:path'; + +const output = process.argv[2]; +if (!output) throw new Error('Usage: node test/helpers/crossing-budget-fixture.mjs '); + +const arrows = Array.from({ length: 120 }, (_, index) => { + const y = 10 + index * 3; + const points = Array.from({ length: 101 }, (_, step) => [ + 20 + Math.ceil(step / 2) * 20, + y + Math.floor(step / 2) % 2, + ]); + const d = `M${points.map(([x, pointY], step) => step ? `L${x} ${pointY}` : `${x} ${pointY}`).join('')}`; + return ``; +}).join(''); + +fs.mkdirSync(path.dirname(path.resolve(output)), { recursive: true }); +fs.writeFileSync(output, `${arrows}`); From d7b6550b2d8d470f2b8adb1e07306e868f527bb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=98=89=E4=BC=9F?= <202383014@uibe.edu.cn> Date: Sat, 24 Oct 2026 14:06:17 +0800 Subject: [PATCH 05/11] fix(check): preserve budget-specific recovery guidance --- archify/bin/archify.mjs | 2 +- test/svg-path-checker.test.mjs | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/archify/bin/archify.mjs b/archify/bin/archify.mjs index 14b9adabd..dc9ae00db 100755 --- a/archify/bin/archify.mjs +++ b/archify/bin/archify.mjs @@ -2711,7 +2711,6 @@ const CHECK_FIXES = { }; const COMPOSITION_FIXES = { - 'composition/crossing-analysis-budget': ['increase the reported ARCHIFY_CHECK_MAX_CROSSING_PAIR_CHECKS or ARCHIFY_CHECK_MAX_CROSSING_SEGMENT_PAIR_CHECKS value for this known-large artifact and rerun the check'], 'composition/proper-crossing': ['if authored via/route/channelX/channelY controls exist and are not required by the user, remove them to let the renderer re-plan; otherwise preserve that intent and adjust route/via or channel coordinates so unrelated relationships use separate corridors'], 'composition/ambiguous-corridor': ['if authored via/route/channelX/channelY controls exist and are not required by the user, remove them to let the renderer re-plan; otherwise preserve that intent and adjust route/via or channel coordinates so unrelated relationships do not visually merge'], 'composition/container-border-run': ['if authored via/route/channelX/channelY controls exist and are not required by the user, remove them to let the renderer re-plan; otherwise preserve that intent and route across the frame perpendicularly through a clear opening'], @@ -2766,6 +2765,7 @@ function checkerDiagnostics(checker) { function compositionFixes(issue) { if (issue.code === 'composition/viewport-height') return [String(issue.detail || '').replace(/^\[[^\]]+\]\s*/, '')]; + if (issue.code === 'composition/crossing-analysis-budget') return issue.supportedFixes || []; if (issue.code !== 'composition/desktop-readability') return COMPOSITION_FIXES[issue.code] || []; const sourceFontPx = Number(issue.sourceFontPx); const actualBudgetPx = Number(issue.availableDiagramWidth); diff --git a/test/svg-path-checker.test.mjs b/test/svg-path-checker.test.mjs index d234eea7f..faf1e24e3 100644 --- a/test/svg-path-checker.test.mjs +++ b/test/svg-path-checker.test.mjs @@ -253,6 +253,24 @@ test('公共 deliver CLI 将交叉预算恢复指引写入诊断', async t => { assert.match(diagnostic?.supportedFixes?.join('\n') || '', /ARCHIFY_CHECK_MAX_CROSSING_PAIR_CHECKS/); }); +test('公共 deliver CLI 保留线段对预算的特定恢复指引', async t => { + const output = path.join(scratch, `${sequence++}-event-stream-segment-budget.html`); + const result = await execute(t, [ + cli, + 'deliver', + 'dataflow', + path.join(skillRoot, 'examples', 'event-stream.dataflow.json'), + output, + '--json', + ], 'event-stream dataflow with an intentionally exhausted segment-pair budget', deadlineMs, { + ARCHIFY_CHECK_MAX_CROSSING_SEGMENT_PAIR_CHECKS: '1', + }); + assert.equal(result.code, 1); + const diagnostic = result.receipt.diagnostics.find(item => item.code === 'composition/crossing-analysis-budget'); + assert.match(diagnostic?.supportedFixes?.join('\n') || '', /ARCHIFY_CHECK_MAX_CROSSING_SEGMENT_PAIR_CHECKS/); + assert.doesNotMatch(diagnostic?.supportedFixes?.join('\n') || '', /ARCHIFY_CHECK_MAX_CROSSING_PAIR_CHECKS/); +}); + test('Z 回到当前子路径起点,后续相对 m 不沿旧终点移动', async t => { const d = 'M20 20H100V100H20Z m0 120h60'; const other = arrow('M10 180H30', { id: 'other', from: 'c', to: 'd' }); From caa11053f1f07faf3f515948a09b811c0631780c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=98=89=E4=BC=9F?= <202383014@uibe.edu.cn> Date: Sat, 24 Oct 2026 14:43:43 +0800 Subject: [PATCH 06/11] fix(check): retain dense receipt compatibility --- archify/scripts/check-render-output.mjs | 2 +- test/cli.test.mjs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/archify/scripts/check-render-output.mjs b/archify/scripts/check-render-output.mjs index 63c51558b..f48dfd52d 100644 --- a/archify/scripts/check-render-output.mjs +++ b/archify/scripts/check-render-output.mjs @@ -20,7 +20,7 @@ import { const input = process.argv[2]; const DEFAULT_MAX_CROSSING_PAIR_CHECKS = 50_000; -const DEFAULT_MAX_CROSSING_SEGMENT_PAIR_CHECKS = 500_000; +const DEFAULT_MAX_CROSSING_SEGMENT_PAIR_CHECKS = 2_000_000; const maxCrossingPairChecks = positiveIntegerEnvironment( 'ARCHIFY_CHECK_MAX_CROSSING_PAIR_CHECKS', DEFAULT_MAX_CROSSING_PAIR_CHECKS, diff --git a/test/cli.test.mjs b/test/cli.test.mjs index 34aafb1e1..fc8e4d4ec 100644 --- a/test/cli.test.mjs +++ b/test/cli.test.mjs @@ -900,7 +900,7 @@ test('cli: deliver preserves the previous artifact when the final check fails', test('cli: deliver accepts a dense artifact whose checker receipt exceeds the 1 MiB default buffer', { timeout: 60000 }, () => { const input = path.join(tmp, 'dense-receipt.architecture.json'); - fs.writeFileSync(input, JSON.stringify(bipartiteArchitectureSpec(8))); + fs.writeFileSync(input, JSON.stringify(bipartiteArchitectureSpec(10))); const out = path.join(tmp, 'dense-receipt.html'); // Scrub the knob so this test exercises the default limit even when a // developer or CI environment overrides it. From 0277caf018b3ab2a6816afcb04f08ade58320f2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=98=89=E4=BC=9F?= <202383014@uibe.edu.cn> Date: Sat, 24 Oct 2026 14:57:58 +0800 Subject: [PATCH 07/11] fix(check): admit supported near-limit receipts --- archify/scripts/check-render-output.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/archify/scripts/check-render-output.mjs b/archify/scripts/check-render-output.mjs index f48dfd52d..ba920b4af 100644 --- a/archify/scripts/check-render-output.mjs +++ b/archify/scripts/check-render-output.mjs @@ -20,7 +20,7 @@ import { const input = process.argv[2]; const DEFAULT_MAX_CROSSING_PAIR_CHECKS = 50_000; -const DEFAULT_MAX_CROSSING_SEGMENT_PAIR_CHECKS = 2_000_000; +const DEFAULT_MAX_CROSSING_SEGMENT_PAIR_CHECKS = 3_000_000; const maxCrossingPairChecks = positiveIntegerEnvironment( 'ARCHIFY_CHECK_MAX_CROSSING_PAIR_CHECKS', DEFAULT_MAX_CROSSING_PAIR_CHECKS, From 6946f12438b05af788b1043445e13ac157a1893b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=98=89=E4=BC=9F?= <202383014@uibe.edu.cn> Date: Sat, 24 Oct 2026 19:37:19 +0800 Subject: [PATCH 08/11] test(check): cover invalid crossing budget overrides --- test/svg-path-checker.test.mjs | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/test/svg-path-checker.test.mjs b/test/svg-path-checker.test.mjs index faf1e24e3..7c4b20487 100644 --- a/test/svg-path-checker.test.mjs +++ b/test/svg-path-checker.test.mjs @@ -219,6 +219,34 @@ test('交叉分析预算耗尽时以失败回执结束,不把未完成检查 ); }); +test('交叉分析关系对预算只接受安全正整数环境变量', async t => { + // 318 relationships produce 50,403 eligible pairs, so invalid overrides + // must fall back to the production 50,000-pair limit rather than merely + // differing from an explicitly tiny valid override. + const body = Array.from({ length: 318 }, (_, index) => arrow('M20 20H80', { + id: `fallback-${index}`, + from: `source-${index}`, + to: `target-${index}`, + })).join(''); + for (const [value, expectedLimit] of [ + ['', 50_000], + ['not-a-number', 50_000], + ['0', 50_000], + ['1.5', 50_000], + ['9007199254740992', 50_000], + ['1', 1], + ]) { + const result = await check(t, body, { + env: { ARCHIFY_CHECK_MAX_CROSSING_PAIR_CHECKS: value }, + }); + assert.equal(result.code, 1); + const issue = result.receipt.composition.issues.find(item => item.code === 'composition/crossing-analysis-budget'); + assert.equal(issue?.exhaustedBudget, 'relationship-pairs'); + assert.equal(issue?.attemptedPairs, expectedLimit); + assert.match(issue?.detail || '', new RegExp(`relationship pairs \\(limit ${expectedLimit}\\)`)); + } +}); + test('交叉分析限制每个关系对内的线段乘积,并给出可执行的恢复指引', async t => { const result = await check(t, [ arrow('M20 20H100V40H20V60H100', { id: 'many-left', from: 'a', to: 'b' }), From fbf8f8a799828ebdc8d93c7d6b0c75758d3ca0bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=98=89=E4=BC=9F?= <202383014@uibe.edu.cn> Date: Sun, 25 Oct 2026 18:13:51 +0800 Subject: [PATCH 09/11] build: refresh crossing budget archive --- archify.zip | Bin 6987372 -> 6988235 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/archify.zip b/archify.zip index 09bef9ee0aa1c98bffc11c0d2d5c8244aa410492..a48820194f739e2116d37992d3377d9510f315ed 100644 GIT binary patch delta 63363 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%0DAxj07n2P0A~Of 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 delta 62360 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 z zX1nE#2=jlO62@*kuIH|}G6$O2zDrg@i_r!24nOF0riX!> zB>&Yl?O*V_YhPr)tCZir55O#PUo}2IV4W15%!#>O5LDn#u|~!SDp07;yRG#wxG|+6 z-fTh96HORVY5%B<(2|Y0E*l7Xr&hhUt5Vx07D2dtS&iG|K+QB~S@k$o78TE71om38 zPUvRS0wS?v973gx14|wGq|k!X!vJCfUP5lf%VFU${s}aPAS@C$!J1O%-@ zNN33+xSg^JzT=L8(7gNBb$2jz-M0CZ&ED>{oZrfnD&iNR6xtJF%O52Nh=SgDo1q?8 zsD!(Ksrn8Mz-7$Eenw?@Ov&IB*DDY}tDpzfh;`se=*F2(C<{D87|4*z4Crj6)MU4- zdf~TAtlh6h2mW((?Q%{$xtD`w{|-7--&JvYhax>ZJK$Oit0$yyDaCxP8}8^7O@GA1 zT;4wKd_n~fND# z!8-m{5kIPx#jC(arJ#R{ZV(!0CM|cM`nCTl9hi9*tgq@8DLYi;^;Z?8R*5Qb;TAop z$sy9nzYP*g`FqCIrTPvgZM07rY)`v7$t6}esEaG{ET#2&-c@<2UriS=2S!V`1-wxU z4k2}=V>cYR473fS_jY1Rgxj8b=s%;*V?8U%qwq$LC=2%qr@p5my_?<>EPi*ZO^})n z)^y@1NeuQN#DMajYk7n_`D8)EH&R48EtW7+qdv=l< ztBCw1YU|t{B{$_Qic(+ ztLl^KCr{L^$Ay>7EDQG)juj>O?#aSThJd4=#ggL!^j_`aXI^V@&pYJ2OGb`;a-6t8 z8k_Ck=Tkf^77(tYwR&qi_+uvpqt5Myy$=c=Rua*57K!^mp57~}iT7>8g^&;ky@Xyu z@4ZMjp#~5Lp;zf0qyz*6)95u+0Rcl55HKhpB5Fc!YUrq_p{Rfj!7l#(n{ThZ_R*Zo z(X5%Z-g%z;x^513sGvT>@eRDMc9H)Gu9>WCxzQACjt6vOi4VqPF;}Ge`Fa0l0uudr zPJ&nlcTB-2@+@JY13=*)bcC-@bgp?i>QDN}HT|87>&X3Yw|%Rv{O9~G6+UBaE%TZ3 zeZVg)X`~rG>Fs~LD47!+f=!LT>RM#rqxR@vJ$WXZUHx0gSd< z`WW(@vC?Ca!8;}cUCMexY>!mM%+{F2T`di{52~rBvfd3?k6Cp*HwEDmidLR~Hpl!4 z$XeRp@vi-B-L6Qq9dS5;->u0M(eN0X0(OHy0mYCwNfLnml{7_~h-Z8X+}GFn7#BLL zEcGkP-)!S?23P)-&p_pP-KDxu&eT=iUL%)4RonX7WM=kC~n1 zzl2z!xy7&=gt9<#T5XJ-fbvtIL!4h-`=tFMqX%Fx&i7D;>>NQq=-!PnV7z(9@hphG z<1XwkA@}8|Bd?hBA+h>}*#F?AfL_u)*@2Cq+g`X$gYtE7PdDxEkOfo50{?vVxy+XY z#;kUI=mdj!PhfjUJpD6U>IYrrZ!*OXQ9sqIw#=}!ks0>)Oq4Rfi}gn_NBB47TnO|K zDYPSHV^bosGYoW{Zg~?-$O?uQU7hT}?UjplKs!1uHR-nUF@laqoMIIy=R`iKtJcj$ zw2dRVRtXt;4eSmI2Q1Zeh$4r@wi^B?H~eX5(MiAlddu^VoL`@FWt5Z2tlNHb)NP1w08O{@7Z(pc`@n?;RN1)nX5cO{mi#p&wc zmk~W2&kK6`S#FiP#^;9*$6#iN!=HRb53%wSWf6DK`JXyGZm;3rkHthuSctj*Gc&_BhR>ThY6T$Qj&=)r7v}tIpx8^Vycwtg40D!uTWmhlfo)Elmw&yY1=9z143tbI+FkadZ(DmB zZCq~Q*;l)p?(Z#9aC4|+-{<^p+DI33 z#zWPZpyw~;xCt{JuY!Ro4l%A3idol9a(JRIwRR&+gU;(HK{Idgd@KPXquTZ?q$wtQ zw?tssnyb?-+`}t;r1$1UNfN~O<*^Gs!J7zObm)p?|kr7kp+jLn zDg4F7d>?#xJAbzm&V^&~KkD)KOcCf}%V?=EkbjY-!`Vzv%`?I$#9s9{!En|lFwAb5M25*u>Lhb7E{SiC*KPiV@&0dxAT z*DH`uELKCL4oo~rrOFQ#Rx73c7b0*fCr7~>qW~33v^b=8N!l&O+Us>-T!u8Y)MBcrB;#geatb|n0 zdy`n#ntx>v%dIl9MBwuOPHvajYsjxlGChjXMrsG$XwJ#yo8Q(ss;=cZe-~ii7bq46 z6?qpww-4gJ^Hq6f5`W=r@M4q0Ha-LU@ZF(EH^o4oPwvr>dsH&{rnTy@(dsMeLXqnV z>|3(U4nL$H?-+#&3480l7tUoZFSZ%rKbf{6Bb*e9Ph`y*h zcW2Ez^6im4?t3dy%8-~pK~hBo6IbC(1rU21D(78^z1W&U2m@S83eqX4uVxtIN7ltf z?IBroK4lx4Rw&g!(IR<;-;51|m`PLY#7&DvRgYY-_ZM!_AU3dbZtpVIxRuV^Q|$|?NBcpkS}pS~sh z+I9E(VLSSFtW0elT^xdew?efm4_{d?0Mw(SsuLxG*@HjF$i=3i;DqJ0w9f}?y~N?rbPt<5|W`{ z98bUi!SM7OjBxbQlIs8L%;z!d$t&Wbb>2@P^9I;gKrqXkZ!}s&6|wuBbOk}iin6w_ z$aH`o{sZ576!eQ%D$j7wafxvtqW6YSrQ4}Jot&6R!%uWBZ~4=MwRsiTH0U(V(}tiT z`n5iRRiwn5h)^5qz4=u%tsq&JCBmn)|Ak<&MBVUzfe42ti^@-+hYIc?M9`6aLdu_H5US z>b8C0CURAerClw5vySOOythEoEA6s@z>-u^Bg3Z$WK-_&>dcPz{ypGQKPrg0KhyDs}9K3kE)+h*D#8x=HbDX|Nyg>l|4 zK31=ih=N6#-UK|b+-KXw7A(hWko2d9Q-Do6z%C3`k(MR7jwMeeMyd~75oe8!MlKFZ zLp~qLq_Z{wqJ@9c(-_4^9p@Qs{e@=vWn;RWUmDCNP0Wz4!c3RGzyj{UUniSwvBofb z6TFIjs|jw=?CE|i5m!JeNw^~8$VuKr-5=`$-q5f{8pQA^;Kq{O>)C=O$X(ejeJeE6 zT|&;V*yn6P?Bu7LUp*bNL3sMK8Dem(`Rtp3<3`99cIwkF6or z;`@|=#nq6?pYauxa@OQE@aIyk*+Q)H$MWu}>=Qnz_o1KTSn|b=f55UL|G?L;1w9?) z#r|Ll+ZLofNo5Q&KMw(`ekEU#U|azOak=&W{Y-j7z$Vb#km`VY{xV+MxO?vq{Cerx z;eiV6p_OdD!R(`{px;0_^RQh?{NBXC6`mwXp=7TJrpxbXF_(KjWy?}DMdBULhuqW< ztrw0DEjAau(n>F(-g$L{5g3Hw>M}0r$|laTqDJz04`57toH?;yO#U!feEx2H{S-9w zIA3zR3R}?xin>?RvIN1s9iata1F)(^nP$TJyT3X63Zg|%TmqzhO?ba_aHEBH_`BL#6thj z4QbX}^5Xq-coX6Qai+^1%y@!k3~hnBGjh^g39D29#|NKhFwkhhKaMUd1IiLFNtWId zBtJnZ#e_apZV|;bjJJe7s>B;3Ps_Z0sS z7oVuR&N?lsIW5k0ue#m#V8j2BQ1~ey)q3f8*OEJH)|WqhOHOh-z7%8g;(Cf+x z2kHm1#Pm_m@hBw9{K-E&T;DV!uEF=h^@sk9)Zo1MS6lmJw1#a1ALCz5)!hn@>0|53 z=`HW}=(at+)MtQs%U79@{$Kv=KJ{S5ePt1`XxS<5%(8*}a8bW%bt1nnmetv_`vmBJh?9+t zr^znu6ZWp3YbPEjU5_c{mTi!1*EgGuuHawsm$^@~^sEBC{YCbbusIjyCs=s(HzotuGHu*zoPUK6z+MWHw`rKREA5{T)AUBD35E^1*)M7dMBZ>_!_%0^?c>br4$s1r+8RHGwi?u}t$eRdvky z9sha@>)|o?WA2ae7pt9ALYEy*DqGGS&pBS^H)DD>3t``yT^D=arm0wkJ!Dw!dQsZPHhqDgAdrW9SQWbrah$s-E)bePF0 zjR4MsyKT&g7C_%X438ASQGeE)X{;Y(UM&img2d(Ri23Sg`!}+9hD=PG3|_n#^H*>$ ztYWY6!ap=>$7{wcnq`n1hqnj3SD1L}eywOgT`0-FJQK$iC2;;*i~%Td7kvG}K(mWL zb%T3DJhEySRAu;SWnesni}UdNt&mZFd8TR*ZHSNdT>)k@Yb8YSSS0Dl zjzn-04X{1IflO~Y^5hJI-s++4aorO3Xg6?La|!evyB^)-8RR8ipI!tRLrUCVw&dTy z_YLH7J@#(N(HUd$Di-P#DgI2!SNX_R7xHh16GcC;nioB?c{Iyh63!+4XW6{KS+YGf zd1-`&Q^+He)bW*(ny?=TA5~Y8H@L@ia3^Xf3kz88;!v&NvvUvX6pfKQ$Ex)^KFQe6 zN-`};U<($2d`>)+O=Nl@8^by>mkHC6OrxrF*0M+T9!S(GZoQmJ9K7HXt1>YgKs?XxaC%wI1FtF36rKlE^r!X zW7#DOLf%XQB&L5U3hl!)3q&BWag*8I2O{gRy_kVo2eS9TRN5~IUtpVPNm`12drA<; zB?Qh_xdmY%^P6#jy-@Pu)@r3ST~pLaa?;xfy}-vmO>cXHSxrrCd0R2cU26&1(zHHN ztE|pUvX|X=_$Zi4LeL40lCK126~w%;!coO%cZGRM^i2+ydv2_Ok}$=`h;z6Q<$@u= zlZXki7Xv0;rBd{yptba;A1%wueEA!Yvl_6;EumUlUiC6Ys^l0SF!~f`a2Zx3x%~VR zr5P5rDm@4sZ12(+%?ee_Qg;tn85J6;UVNsZtYM#fxrRVCZDM=tvstFRD2wI0lf5`B zmend2HY;p+51^8@x@{oet9hqKlj?S3{9F{x4fJt@vo5qHLtwO6(8@=(bYLMbpv?`1rYC z_}ILVz3Ax{f4d*Z)y@Hyk}Z;wwLi!6{%ftLNQXqfK6}%FRYh(=bci`~mFi5OWzS#P z*(1J+n*scHv|nJ!iqOU@o-fnw|LM z_)Kb{q!ZB;T3&^+U4uD^ju9h^7)yF|n25K|4;^h&P-xc-br&htK(DYt-UMuo07Qvb zK{DUgm1dKAm2WBrOPmxpmeaVGR$c#Jjuo|G9ZRqRV|me%u7;OgUl&fqYhoPlnvcAV z;^_-G@_*ZV`!+9=`AY|8_c5ZZK=m`kifqA31U$AiMIZ%k;2Hywj}w%T0V6u7Ji}{v z(YlI@++rC^__(te0dqaTWcFrP7k_eGMl|2C)Ok8HAGw6hbb_maGq@8Uv0sVEe@|?1 zg<~(fqZ>xohE?c;@7UJXtP*X*Y9n`QKes2(rsFfI%>0DsUkZ?ccw`=pA(K~2(<81*N)~^|r zw@~p#Xj<~4{$-2LtB@42Fh!9b{%W@EIW0XN41;ql_#pIP26ON{<308g4HJxm;4|J?c5_*d9LCf`hlfZ zSiaUalM*x69t!`agY(NrtFatkEa!yc*6~W>6;WMLaIy5JVoie>sLR$Lk3dR44YFJ* z7%Ty0qh#b+;$L0jUj;@zX2BF>MhAxYghX&F8+~7Oo&LIH$(qEj&{?Igy~}bC6|nfA ziLXkqOX)(3yxEms1%`(RT~s(lFeJAkgwL^FS0~~}a7=}B_jrqN=10LnEVewFAh5Tp zFwTl|nWV1r81t~+OQSEz7;#_4M<35EE@;}Cz&Kyj;J)bE^gc#d^oVE#y4IRmhKgh? z$r);p667%mvw2m8^wq-%d7%#6(?QxD0)NIo$|y(et~T|6|1}YKPeA|*XFasMV0~c_ zpYT`>6hF8?lnV@yJFOT-igJG5%H88iM(>X?UA>jRG&r zQ&AyIN=-&dlA@#zeIyvnOmq>^Q{<~tv%!Z=N6O&ekPI*YJ1+%PkIh;twpq1m*DIzy z8Moft2MvzpEdGq`a^H3OL#7FMmy2g&xqop7e)n~nR8=I@mC>+3VHF5XI?SU$-&T-2p46!paR4K#Om1aY|KKitmq z|01guZRe7EGzvN}$^_-cd<(sR63;5|b05(EOYgBm7E9l~dS`=}#!5O@L^CT(QDl5T5xxT}b`A_s?`t!O0 zmu!bE3llfXSOG8Bmvv8ciz^~%)P+9y`yF`1yJEilZ^AY2@M@sm3}~ubgF&rnIa%qt z7go;q21vvh^d_lkQZMOQbKZf4yilh`l0d9{5?(ptFSJoSz3!b2%*=9o5^9#3OW z(joK0?$&A@XY6F_XwIq#%s@zctD<;K0DE8A`L>PueF0b4_?e_EfK|KmCazVK6$1tnZ&C|>OpOAL!M%(S!L|oh5*s+^8ien36Nw;s_2ralZsyNtG zU1X$*>-;1T7cMy(ol_nw`+&U?EWQA-j4mdZV-R7fiNjV$L+2Uq&*6EdfdSY+PgM1d zoXlFO5PJQdBHIfg;l>HjNQ}GF;(!9OgEO{1XMCNb6(fmZ)ZF5Z6TKz3oE%Xy3_51; zeS_;+%d!1WS!lSE7u}tASB52p{7@=chrN>cER^OCX!uIFgQ)sUk>`ODT*PVB#E3G6 zQo#BubyemZENEFi>{d($ z3>4H~=?ZjePjc|Kz7k3J*`iciyZ4@8+lV;}ehcuL(TIvYj8@)TMDmFn>O@8^Ub!EA z<|fIPD(>KZ(T8ogcCnS?V(BgJ>l%m{KbR%YZ-z;A)v}Cm(0B)LhtMzg=%_<>LSd^2 z5mg+bf({k%j|qJyjl5<=XvFPAk6gOda@nz^Q*`fT2U$;P_D7qb+Pk~N-CMNDzV zTp1k@A(w66SIpmqx{FQVEc!;CNw}GW#LpLXC+}pkgha?5X7SA*DbHRAlMbpU-mz&| znKEH1X_s6m;5jIjlxQnbFQ+#Mf)S0q-Hj)ZVsd|sMl!t|M| zw_rje=00|IRGGgo)aAE%1!EQb;cPn~!T)8AG<4Jj4~#0@av~N9j2H;{a2+<7q=@;R|O~E1Rp-X z+1|Koxla;S-!NO}zXE3sYtl>(!RJcOm#7bjV%ZFG@t)0A@sp2|CBJ9NtPaI?O$R-` zETr!U%Y^i?~f*~aZl(0lI=^!!gMY?$l0c+fnBK99otRr<88_5=uwmqu8ZWCl^$m1P^eDhwZ*a+ zs8hbn>GO&5KHSB}!2H3(C-X@2DYjT02M3$dR)GuwgIZo25AbsV{PVM64bn+d!#{x z07>ZgvKSouO5{_vYZSY%JR7Jj z3Db9nWbBD%_6p~rXSYSjPsQ8?lJyMqZclRb@JO&0Y_q4Ag0X#{;0sZ3@eo)9Rs5n@ z&h_#J`b$5(TiRk@wO=wm=~c^!nMsOJQi5IydmBBMf+U|Jd7fGqxf)_ zzA|C>u1al2pGBimYBCfGp?iG}1WCCv_s_u>x!}+LC5>E~Ty&e&a+q6Wso~^3FVnPJ zo@A;xUz$7=HE~)Xw3`?$xZK&4+bp|utyT8M5SM8qr!STz8a^Q+b*y|Bl=F<@gafw# z^w}zWMHzAj@P8>?3cPM-mpZ0eIk*N<&+J8Sa| zsSE&bUsXvgu;lcsRwBesvd=0(SLWG9aJfd8qW8a23=_u>cBy1J&NV6Pv6jNnQVVxs zau_cFyTmqcYy?HT_)Af@iK>Md-UUHvjdyp(&2Y^HRNHzd;;@hmhY?@RHI3eN=00Jj zH7AvN8}ihRsCP0#Jy2MJ9^9A+cDWEd$@{GUtDck}!gWfQ8oc|q;*Vzrd7_dA?g$de zm1n<87pomC9#GDohpq0E_;Ws-?NCp%o5;f+y7yFcZY}KqhuVXm_{5<|Q>GPSsVJwOi(i(`H|{6ID02uwKPr;Msm_556>)zse;sZGn^*=gJe8 zr!g%z{4=5h_vk5?7y$WxQ{YenJtNx1@)G%(>6}~;H===$`KRP7xLZ-Z2W2U6vI1+4 z3~=2KrY{W~JqHwoph}tf0pF($;5+phD&0`XFobm-)ydV~!V}#;0UV;0rtP7@Sth#P z(fZ!@>c`*iXm|?WmZb6@=pd9cw8D?0XjU~ghGY=ZJX7)s7BTXPQpAT5 zgLIh|X5FSVkCp*!i6R(sazX?)DJddwRI|P9%t3iMbZsAyCe8haz#|pnr+~p&(4g36&Pnmj}|y6lb~PlJMHcuJ%QZD)8p0FFuI4fXg9R*OqEqn)?2I6 z<45Fr$G8qi{aFK&M)1;`Wf}>{GSNLg`F$yuZ@6w7kun|I>WipC)NQ-CJ$!lgqLv2p zr_!9;yW?XZ=Dxj|MB(N%gD#87~q)`;S3H*@Sv^c{)~YVPS_7eN29J^qBu(h4b2QD(#KEHRT~d9909#1xlrKE6k3 z{=t?alrdvIjuA+eRmi%}UjV+SD@piga>j6(?%&@$3YikKf+UZb_dY1aRPasj#7{OP z>su{dI>tGs6J!hO^gInx1u4yAzNJ4`?Z;+3EwN<}pUrBy{X4 z9DC~8KN%)m_d>qC#a7Ldi*t1vARC1eciEpN+qY@<4_d}>9Jch|vld&SpyBZ)GzDHn zN%9|okZC^mTl|l0eZk4Y((4LKCQ(0|tr8fB0k-HD;u)XB-yPZ{E+Zri%ITnbIm=}L zAGJdYTA=f9H?M+J@?S^t6U`PN8mKI4p3L+&*UnV7--v6b{XkKyc+ww8 zWA1R`OUR2#Rn}aYX6Wyuai$*s{C(F1^^@AJjjr)6+j)S?FGQn};s>41L%#mpnib&i zEjeM?_G^O5fAPF2U%gdhts{j}4y9iH<6`@MP{`23k!Mu#qa$QFte#sj;_qq8KR-HJ zVKVpYq0!HO?-hlja9#@t(@|s6#>aD{KS_QdNX=pKF2F88 zV?9*&D9{COfdRU57AHk+{?5~8&i)k+EpV0D{Fe@)a2yu|$`ZY6+4ZC!^#R-iWTy=h zl`YR}s|fv_W8dVlrkv>;XYNjNpGnuMUwSYQd4q;RTkqXx9;_0&UNvFQoVn9+JkjIV zE(8r$^Ii^TG+b6nPvyeMgmx(YFi!s^uWlyDSeZkWdUwtQ>sntZC#Kvv^BU=^-L$-` z(|`!_Xdv}M7RbD@p|pBK=45=r86#cCoa{_cY&UWBLT$+F&y_}qhnVtMgVH|bynh+| zF1YCu*d+>nPZd|D=7nXF<}YpKNl{asXZ52PntS)>Vjj)QZ1CJ_a|uv_D+snC&dr=L zy$*#hyg?$u|H^_(>XYi)V3D6*2#l;s77KlQ@XEeU-%c8Z$@PyW8dq5#ABg8X-NXep zyOq4Jl}`|FYc-$&7U%5l9(4kBuzi{^vZ{3Qx44iAnZvNVAZLJOv0$mKg*rp z@nd3C^2AguS-87Vf1qS8(4dhzS)X~+^jsWzE`1vxQ{U5gHzZVTSO+T88^Hi2%OVk)!D zrSD&=2DzXLr_Rcrrv7NBGQMi2o?5tHW|fo#t+bS3Ci#tS3tbZ==7$GC^p~>mRyBl& z1Uz7{qi6@@EyhDA%Vm6nydJ~9v7_s@R#OQo^fyydj|It=3m)){USH-9dCQt@EwaJ`2iEJtV$1<*tQtyXbiPi zlCSAVVDsOs)XgVliYL1p5iY`{0H`?2l|Fcb3V&M}Du_6qzpA@t+-T#1ieW z$uWT;t`U!}L`Og@o+(8NwF`Zia2KfAA+{7jVWZGxgeRjcGAy6BAVjcZq}b>v99N%l zfas3ywjuwgKGMQ@K85@GxnKxlH!ShrC}m`M!3kf=;16XACSI30WQ~3w~INz zhJJ0;l3#>pLoe9>nmiY!3(`F)4UB)+9uqUZ&cEaG)aLhrP50Ck`G@e9Dk#i_8Y*@} z50R}uxH;V?Aydai^0|f=4n};$l^L0ntmrEs05Y0@)G39YB6`nmdDuaNe@R|npepdS9kG^4Oh)5l$PzjV#a4YY>X#%y?6 z#Lb;xVbq@#{8M+Uc&mxG+gCjKEQ1*nETpnvmW%877}+=!M@Fp5H~I0?>SYOR$!-=u zOdM``{0gSmI;%-vPHY zXC%=c%nc8Kj-fq(z8jX8A7UR8S^#BB>=ztYTWpCx8xfLiWp`J2ZY*0qWq3jk-*(%N z7J@+D$L5pJx4&(kM;repN8=~It&Z`(syscF2%vwun5nH2_I8RK&2l7>lbIZn%=(M- zYsh98LF$5#kKGw2EW1iLdwA8$d;G5^$0i#c603w23wvdh^fV0a>taPQWSv!en+~$t zFu8U1OmzxBN&0Q0Lhk73wo#c)R?ENhQrIZJ)M>BIpmu4=HQtD1p;V;_IBcn?+gN4%@Cu& zPV9vBS>4;4D!98?$v?)fB%Sc|?``ldGq(-=qK~RP9GvIggE;j?`P4Gq@EA8}2hIn; zY3ZE1Cc>e>n;xV z-#_FP5!OF&t*+y^W*a!r&hl_es>M))Ynqko4Au?`K5d+w&x-mY(d-^%Hn}hGCrkUR zZpvCbI6AW@fj_;5d#kuRL*=*4pEK2D_n*1nj7s(p7unh7y^yd#&jAy(8c1xUzpkY~ zib7dsHpY$!%f&MsDk$txk|5+E?Rgr$T`YBSS#hruGWiKYqJ^e5oyMt2aNipmGN9u< zjEz>wKkmbCS&&wolbsdiz1I*nM%9J-qpfY+>i|{u6B6hfsgA*$-{Yw6G`DD1xvJsf zG;j0nrYFwJMW#@`wpv~>5_j&+yAa`NO~`-{)+B>f?aEql)d>eWbw$@L1r7UCdDd-& z{#LZGyq3D!66w14j`+;+Opz=g5ET?C+*koqf$A**+gK%&k(D*xR94<56m__5I5LG_ zt%|?u?%Drt*v$|}+1X>{9E)KtTeRa%56kyOA>>c$?P9>p(`>QT?oGupfmV+mndc_h z^Wv+TbI(`}?Db)mvwb2*%WU3`HUefE5Le(2e#-O$+6Qqg#^0c`qI-2Xo!NN^BJ?%*4Qd1}LBDy;mx3c}#M^{8^I z@5IwMGP|DGs=fkOqR{f6p^2wINo8IJL z+eW|8hN--tUy}a+h=5kUeYl$-=9$ z|F|Witb_NvH+48ffmts4x8`vRy+lD*$L|UnU8Q#nY_b_U0+JS3md(yP;II>ANwN;J|u2t1tB^pA<}4=U>ex=cX&aA89)PWY|mo!^v*e2dDqIYFQ2UB)-L$8{6@B176v(H$TaH z!Sp7lv%29X&|%WSL)0O&AQ!tDWH8Jtm-wl~I`#YujM*&H>ZkI3DMVa$PS@1%tBUpJ z@eiP|jkbPyCY~Ny4f+4G3~R|!jc!O+09?<>jQ`m^YKIs?f0t;YZF3NFqH#=zuZuAI zY>GR_u>(4!7Ht^{`$nfm9X38u{Ji znUr-_p^wxBn$hm^bb8`ucaiMnG|$CPc7_~R`fN&;9U9k9DIgsM5kkH#BbMObr^%=| z9|XaQr(M9%L>gGJ3}5fEKQ85gNy8WOdZlyfKUewq6JiDx53hQwd%&`qcqifXx8e8i zpM9U&dInVdZ5DQHF#XU$n`M-+EY>Fq(mebKrSzX#r8_eV>2~$=5PY}-=Q;e&=ll;? zan=a781D0{JgNN`1CFZiEAU?yxEux>aSbd<36-{w1npn|^W9hJ9NMth$+ZfX_VGtL zPuV{yj1LbX0=P~8o9i588^m*kr1qN3ztvsS_F!PU@XwTa?+dfXRU{;YxTfhG z*UHR_as`Fzl!J2aLn16Z|5i*)Y1dMha13o~b~&Uh7WcKU+)fik5XhX*#UKea|uPjSf%XR5Kw7pc4iIUbm!JN4atzLSiqZk{)g_CP3R)f+)9W zMl~Y0@L0Md25~JP=VY@Jsw3uOP^NZCXX6QffNb!^K2GjzC#Nl8Ct8nAyF_lE81e0y zV0`;eVTQ^hvbD4QFfQ#Ub$YY4o0Fpv<6VfxX4xD`9+GNO@&kbmA*O$i9M7ZF}c?VGqkPXr7I9@4}7i-sCnM zw!H;@+i1v|#iosWuR)IFZ!+4bc-kpP(k@_)fAP~v9j7^LBbHidTL%ufCCwp5#AkBH z_I9~Xe1m_k!bK6)-`RZ+i-5!}J>m{oyQ(n^WoUNa|Bdm!+1PO1_=EYH7*Qd{KqK<*zA|KcZpcB$*_f(Q{Ax4zVZAz6v{k&eeVR z;+ppJmfT+BROG`WYbR1eW-4T*~f*cJ!8(mIpb3>si{pvg%_-}bU| z=TDbqH(B+6ecFNjv8*9vgqOQ7PVzjt;4U|5-D3Wm zxXYtatsm>wR#+|>_e^4w!+6qN#KVfYta+2q)hYhi&E)ObeqYe4He+-P@SHVFB`TWp zJOTWVQ)=;nH2G#IH57aYewVClprNE^&a&=g>t9nk8%~N1{67rekvhj^m|9j4ofz%f z%j7#>33vpPxo^#LazVh`Psk2Hv2@`&iY4fX(c7iZcB%JEG1$l)^ImPH+z9OvCy>Ua zAPw$QrT*%7`1J$Ja{9vD1$EYVfGQd%Imz|#J`bi^t@0UlJ{Vjuxif1*UMVVapz2(^ z!G$gojPQr-Gv}fhz)>x*6Ud))5Ns%Nzp0BwYQrftH!udDsp6!+S(qpsT(#(^kzbeZ z#GffjO0n3(>K|9S=eS>WhQzsfdq>3Fce9A{7Ty{riWE8C5&CWoNAc23Q%FIU2@K0d z?hkD>xW7t=ltB*1Cc3;&sXp;iuFxh0m@hc4d~c5Wz=JVAE61n*p2<{{cl0)w&+SgB z_V})r<_cf@*h|T*jS6V8b*sTc*GgUe_|`pX_lrSTdwK2KxkgaO9h<6lUz%Q=EE-noTr*bVZ2Qz$GHkKE^dL zgnJnKYWHxvZipjHljADeS?`;Vz@Ct9PHE<0ft&z64@E1>ef1;vAZ_q^acqUw0(19N zW=yx%Vg_ArKzme7S&mRZbXMWA8 zEv@C@mE34f>VuqLh_Xi@Y2$ByuU|^-s%{d*; zB-Nitna$8)2_O1x0$Oof?0`!rXCr?;z8+MY>x2zWNH>%v@NvPG5+Gay`P1*=p!^fS zmyBzhRV3DBol0-9`<{>`##gl*-gi;e5$b1Emg3}m33HE+Y=<8|P|NMpfM2E^oWAB? z((K%0HRy5*I)_vAa^L`99jcObtBB|o$1`3Hj{j86ZgGX{g(QB_(MUG_lT8J+<2FTq zfNhY)P|JYLtP$@R;2Pr`6QbiBy}w2i8Mc}n_#mr^N&MKdzTt($K`YtGduK91_ujLn z12=Z5CI=M_z{XoTT5xP!NZ$xjNfZ|04dn#~tEJZ}@8N%Zhhv}KP|s7ZW>(@llJ%rN z%9TH|=xTJxZCsta<4*7E>}GJteE$wTcGN`|2R$()WzubX7aLb)f7Qp4bKk?fYW9ew zPg%m(B?g)G&7-#2g}H2>nb%FJCI#WEAj}-YPNy$&YjcxJ1z--~jiL8R$WZli# zwl_+w?1JC;MKM@T#VCr%s1JvSm@G#E;yp26jdp88&=uS=5QT`T+bPqpK4Es{LVW&T zt-R$-!N6u4%VQ5-jsDoBgoax-4IES3vPjgXo7@nC!koOfk8-vgBE?BIT&t?*GUc|F z7UDHI$_ucSjr!MnCfEB&nK-?(+A2$zRmsIInjx86n6MTY&JZd6lbi4f`-dWd-q5|X z48PUqFm-25RVOrZ@s|5p4dy&hq2F_g8HtLdhe^UyvKO?7p=M3vnbU= zVEp&lv*Lj>Ou;Iy(3$mEbqtSA zJhNYaaos9z>s{%;2EOF?nMW7niz017A76i5T?Op*JkaMc@hr~z%hntrg*N4BmlS0>05}~y8W41fp zYa^p}f(quk`Ij9}&}tCst)LXu3O6WC?akMll2MoVR6MAEcggZBnreLi5o(qwlKl4z z>lvoP2vg)hyG*s70dzZX*-CnOW_CBR;}=>6EjHsVNHF>*ayJnuJgHE4z;F=g;c=3{ zrse2g5SbH+oa}LuxMf7S&+!w@4N}h|ercrc50kIhg1eiT%;``}-lcG+k>Npr#sK)I zCg!9VBT!X@@KBBL5?@K)%N3>6467W<>pPGlLrBX;Kg@`|B7cG0KVEhZgsIEl-Y2{m zK-TBLg(f^nO7B$Q051K=08UY+Tvn{|NK}3RIzJ4IW_F1SE^EL#@)s|=IT9TC9npOh zc@A^rf3|Dow@u);fz(*Rv#^yJ>%9CFpscmF@ z9~rYH5*MD}(9;%!f!EXH^5poR=M+3JM1*WmyQpqT3~QMAU;gY7Pk3B5DElnqGqts% z26h&l4En57;PR%W`hVh4^k+kqaGP+(^6gC{#qK@JL&`OMBWOUG!49h&;=g8UB&m=0ki)1E|GopftL^4&? z;qmnRDd|AO?X%_gRbwe?qP)DZOFU{7_<$wc%X8_1VA0dLm<4E{jf7(>`pyx~`LX60 z&0cJG6*g`r*&U2NpUAsj$yI$-OGtg_2M{6bx{7_GxcT(Dp~&E9#Hw!MBA88HV@k#+ z;{Qe1?4jBv>vEg3X9E@P{g);rp0vnH`d5(gfsy~5mRV0($QWuDP8?Hy4dtnx=q7WI z+O{vukY5M+24)7Zg8Z}CwfSeQL4ne`X4{qX{4i$)~3U=M#nLJFWp@U1=A zMJQ`p4Ey<3rkW0>l%wAfr2Hf?D4g*=7V(Hv^dG!EYC1(K^yax>NV78N7H>NCf=$UH zP7OO^Ye^Bfylg!FVX-Nb79mHNMGk6Cc{L28bp|cTxJyjQ*E~1oUd{=waq%;)|AFDR zdsMqS`D$CR@8xKYPpp*ZVLM2_6iCEbylY0g$fsX=}QiB2DwhZc@5XJTk&?Pu2A}U$fBH^%lwP>ZM0Tk+SBcB@@pBL0lcEL zMO}VL>85Rc6U2;_KIM@ooir$D05#=EeV=R_I3u2!9n+CjyvOINZTx(u#TwI;Y3G{?8cY|r>}Z0`!*fs-y5?nY^BWAkJ5M713(*(+0C@5FN4Es#`RIh)VGAQ7hFcP_SFkebXhowi z>6_`f^6Dh9tok8Xx!pFeoXpv?SyzBGldD3nbA;?pHIUwF|IA0t2z1V%p6wc5k~7ih zp&QCR|zPI2MH1tIB$Pb*Sl8Xq(4jaNBrq>59zmvh1$lgO%XL z6bgjKBE`CRmiy4ks(He9M3j&%7C8{0$af@ z8lscm@+?PA4}{0l_s;MOj;B5c+VYEcs_+%C)T>;cohoa}0{T4Pl*6iDXiZjhuVB6A za*$L;na}k7(BwtT(CnIcv8Kj|@eIw~yOQgH5kk3*69M{gDu>5#Y@BteJSd8BMWcPl zuQ@6irKxN=*UNTxpb09_V5d(hNUe0&NS?-~PGc|8QK4+fMv9Z2?9Z)v>qntxuH7hY zBvJ=ML0}z-_Cmo!8_82Imi}aF59j;Iw6tbXCvShgb>k^6AUtQxwfRNf=Ns3SoFo2-0QJ_Ph9O%k8A@J%sQ^uKD_q8Y1?_0(3y!vjkl=3W9E{PDgdbjs|cB74C zoYO_GUz}=xvfC)h&oj0aj+fN8dE2G=gMr;~MkR2ay(nOOgsHxlGT$p9OA?998+B#X zHQeiW0^ko|1>t*wmmg)#-Ek#$uv`7PdLNzsovo)j!(gL{B3cyOW48MUMzWwDt>IZ! z)u+KyX)GV#z*)8GL}-DUXL3wNZzi6Te-pi}aPKcakdnm6b(ey6vBvcl($iu@cpv+P z1sF4uVcu)?-mhr&PNuC$Tpu?Xo$FW_xZr~Q#!vpc@L-(JNKA8! za&B)j*)Ip4sLi}SLeA^(BcT6oiY1=noXygn)I33Pg>Zc4^x*e$1hg{mC zTv?^EA>EQwb}KI0M@DwguOl3~7o|lUgC17Ovke)bl$fJ@nmU(O^qF(8gi0-$Lo!OL z&xzs+h{(Bz*EvR?waJa_ywi%&wy=`VU)_2M%Iix2bhsTt=KT&AO*B3ceS-2u9n4@(cqIu2ew4)ds1~_`($%$`0nw`( zPG2m#t9lE3q9DCc?!@KLe73U8Ig~CV4q$)hiUWH0H)= zSR1{N+PLP$f7f=fx3jX4JAowFYvTmE9$sF{XI^3?+lNIZ7z%DH`1unn*dCa0yHlhx zioLSxg4j0(U4fZI9&NRrW}qwzXoP!2#Zq5kdJXE>jsIW)hcRSbsLt0%U+%cM9mUqU zh(gVLAeZ*(d|rB&r2X_BF&6?ewZAT3Z>W4OqqLei2ujf9I_MQnJQ{mPdt8^fdVQ09 z2UFTzq;Pn^_bLwL(wb@Li{3!>QEI0zh*Av<8>G5K^8~C;dY6nCT_H?1+~|beM~Qjp z{Px+1%~GwrBj#d-j4qi6b7!o`S@77n6l|R$L~wt!!iqn=h*_YcIS`f%@QJED{*xhs z34MfEa=wl30m(;lI;?Qh3ND=2^4nh1I@IBtwjfKZDgSG5ccVM;?Yp`%3YW>h0&#PS z$Hvav94>`lCp9G@=Jk7v}MFBl2Q?@3N(%Pt%_W(*3*Z?6dB&I8QbCfxz~-LuGgp zyGe3>b^Q>ZYfNtW&8^mk)|gJFxEf>+SDZR=SqrMlY)Vyl2)jf<3GI@&L+`#52{QCI z6P|kdZS#06i9^{79QVK;Pu9M4g--$Y&})P162f%7=k&C3_d#HW@0FE%?401_-<)v~ z_Y{Wo4nuP3ZIUA$pi{JbH1_*G<~OHN52Sxj*eCY=2pK$GK-?y?*@0iNXWtCAl}O6n z(Y<(_c9HmxmHBUq&~ulytN&(+fS)GwuXCiZEAX4$xT`NLB?p-F4%SRCQ}d0C(A`C` za@VJsmRSmnZ$GW4eS%A#Z3`uSm#Q!O?izcdi}TZn>|+}nXB7s%iA{;<20I}HDe^9N z*0|Ymexzz?)9?(cq}|2XbN3HZwKD9zO9*vs0gHN7a9>UVYZQx^YD;MuCI4;OXEFOERT`Fz}w zmoGz3bYlkIcF}6NeRN=F^T*Up(|1e{KX0$nEFa^@_FwG_@$=^n=@M(Fl~M_DoINuq zW{UzRQsoCBl>ep-eKgsUUh?#cLe7Bs%=rc|IxU{3ThO6r)sE$gIh>-Rt0IFXWI+!_ zxSvC+)eK!1_|vP1R&~hqxBsYZ^L5F%Lwrv2Ue44Q?U-TKKuA*}V`}*4dxf!JuR^n9 zup{xFggd2)4~?&&*H2&RPv#UB5%9&li%mZ}J0?nb!7iRH`mzIvL%_uet-95_jB)ik ziFk1D57}*7udns%X1d+>4R+?cB!^zt$}&g{oYEN?YnJFOR?|3<=BM87-5m%N97T|C zGjD1+x`3{q?*iS=;j3N5)IgSQINL-1YG`FnWq&;IX*^Y!9SdL!Mah?adjRoEvw z$Y_U>0R*Cx*`OMu-Mt>P$t}!;*jx3v z7Mpp5LuAHV%Gw9{mHN_~XzAW_7PV!Eon#6~DD#v*3HNy7mNnqencB&ppd!@jvCmM` zIIdT;ddNGQe^S%K7)~m(>s0)Ml^*b_DFS9&rdQ%g@4^swfbX}uAx>8BI$!haLH8T{YR^T56z^5_3J;)e0!$=s}* ztt|t+Cr6r6$)!?iF*8O&uofTN)5VG5yz*!_*TMqb67F4~&XLSk)Co=O@NiCx4|Y~g za1_7fT?1%@<*qfBBh3R7r=J8YQhbAGD7=tyxQL+A*#=7jZ3A;Spazxfu9_1fE_SkIJ3&-N3ja_WZze!)E!K+#tHSbr2bUT}dHfoDow zs`9cAkIxSPxBC(w$w(-wAQI~Y_j6RPD4BM)DFwZcEs1XzEJ!umRr+q2b8wjGOZ(7i zW6UkCl+cM>kz8tmzoB?qbh|a^Jf_{eZhQ~`J$m&d(7Ag5?518G!%k@5_o%1zb$2C4E< zsYo?bpSBajYsG;H8DyU$p|6YkZrijwliHnZMo!8CmlgPpt0>_8%8b;V#TQFQu`hq8 zU+m?0>N~-BU&rHenf*}`eO2AZJ_GQCyRjgz-6!kZs)qCK%a4y$;0wCj_`7|@H2UL= zLl-vA(dK@P$dj(_us*=uFDgi9Uvz3S=m)%@sr#6nW5wlD@Khrx&5TRfu2(Ld30lEq zp4y@&g-ZLIw^53Bnd4Mp#R+n7pJa~Wv>Z9J+0m8eEH*O{?%rAx_}+G}FXHnadTl8P0C(zRuv%G&j^$Ds{SD&AU6n#%uS$ge52=nR8JfqdC=;Fuy{wlI5%dIOM z-2aO&azkdnRC9Y0*({VJnoU)2T*h>t7hxjK5sLm9G+qfHAGP&3PtyDFjXj+Yb37z} zZ8n@_P%;yAzT&h>%L+VOMutj(k(a=~yKgN_ZXs9nO1nQ>s2tKTkFB3Fq9n?M917hU zROF(_L}6<|V==fy@*?8GnyUG3fz%<|Au&$q2_;&Hs6__~2p-8?rOo@y)*S@lva7;Qq$cmlvad1H&iiEbYU-0F1RYbFXHC-UFez z{L?)P!G~Q1YMow?-BG9PW_u!{(ue2FALtofPI4Ue?|>8~_)iFP(INe4Akd(9hth0O zRh*p8bI1C@y!h>Pv~CE;gFDYL!byWV(*cWpcgSS;Kbr|qAKf=+>f5#sKD~dx`%dr# z`e64X{0sx?V+&RhDwx$_{gm7YzBn)l_l&)KcxSiJ4I#AR3DZj4;7LTPk8^}d%dxFk zzg+xgkoP18@Eg9lrNHcwn)ic48t zqC8Ok_iqfu-F*Pf>!?$%D4*Vln2g;BY*DQ=j1XX{H3|WK%L5<2677U?q&LGzxpy6V zYBvGT<8A2TudS7MiJR#JK~3FdSIbu9 zs!~uOYP`C_z5Gl-oew2zK~phLFxb&SW8RTfBK8vR${`61T)1ADMPZD(OFuIUuC z4=<+cXV$Zqi#F_)*~1JG6IM=l;A3jvyR8`2ya){UIBh6vlV}n7&!|NPcWw#~1ON)a z2>=7&0)PYj_Z$xZF906^KY#!L0zeQz2mlFy0uTle0T2Zc13&|a14sZ!0!RUz0Kfo9 z1IPf#0>}Z#11JC}0$>4@0F(h#08|0g0Mr3A05k!#0JH&g0CWNL0Q3P201N?)0E_`l z089bQ0L%eS0^k7f02Tn209F9j05$-&00aO#0DAxj07n2P0B3+x07L*609ODv0CxZn z08fC^0A2vz06qY|0Db`e0097J00IGm0D=KR073!60K)I4@I(-&c;DMPw%&CIf#SH? zK#El^ktCtJdryEu2gT2?CK8S=5ZJ3lR~!5KLjJod6A&9$R_efsPO%*6bMp&!PaV{h zA89NT`PG~qPxXOCPQWoYM9Ptt@k8q4JwrcRI^!@)%su8>T~iuLyJ(RO(#6y3$O++B}`c1GdZtNTz7e!QN44!|Nmd>uiUoAv}M+zVf?Kka6WaVD8QJ(yIGP zRDeAjBYeCIJfGl>8myVI{^=D)M}b`@vc>*ktM20&-Rq-;LV5ZAS8*m9yAr_J5je67 zk?bsk)e`}#{9a0;dsyU{#T;>A&E2*^6oJkOH^!<%^1X4Yl<6#EWn<6W4&earpFjVe zxR>%PC1+qV_xR$yUrKAryHj$JYra3_e?2YVX=!c^+i7WCN#1D*+X<_5Cr`@l`JUf< zuVVP_9ja=lm8va1kkR<*;I-&$2FVEGxm@e} zozU<$>TTPTaqUtoysV&)pQVdG!Z_Ek`};Oi$SIB~^7E)Q-@X0yrwr2S8g|kuGbTUZ zru0gFQGPZdYJB%a6xqsT-$uUby^)s=W$cmg)S>|8%#^^XcggQC|855UtNDz6Oa$_5 zF(;-7G!@oIb`(y_ZYeIQ$4ARfDPKN+XwNzyA_k;<88Q3q^IPP94(7|(%nZ$R``zS* zKWeNSx0laTxNP#rvARe~`hof9pnvMsKi@RJ`QT=nG;2{?4Ve9r^)c(g>bdyaQt)O< zJ%%Vpk&Nl>-x2~9wb#mP!NH;F);i~(u#k)bsMdeYCVawKGS}J_>UiV0pFor0!(Oad zw4a?zu(p>|ifc(~XRDrTUApAXp2+Kcscq5Md!Iy3Y<|lBIMn;Qab*s;EaZq^pknOg zD;e|isxx-h+5*wlAp`=g&5cCKQ^6vGTu|pA#j0k+=m})h^GReBaNv|8(`D`4m^S|G z5>B=Idg!G%tqJ@6e*Gk_p7q+=JOaB%8`Jvn&lJpG>FxUNY{1&o&&nV6WLsqaJ$ieO zCka{5Hh@H~sNm8V90*iSph9)0Cio636z*jQ_j1y%zRnY#DccC6s1iAZ3G8>CD6{(V zQ_)@zBvyDJQ@-TzRH)qM2!iA6J-_1*;C$94 zxCr1)2V~N*p(-~)_JD&M$LTn`U>C0VHRRhWxytk>7ylckBO^?IOZ!==0xf{X4y+#U z0rhv|956af$|`Rbek(n}F}-=zIF6*j%VGAjb4qp;H6Y0$XFy(FzE4%ik2>}x4hV(~ ziX=FAb`*hk##gkpw&K{Edw~&Wqdr3;#7k%QQ!|bZDr(LU#aC8&*MN+Nvj1iY zy7OB+k=ySwHu$u8B#6Lp{>;x5W`4?^fRIp!_IU^CEn01v5A=eJ97>_m9RoCXjXVS> zZg@m(ZP_(1*K#hqV)`oAco$#=@G~&nHC$#bL_Xhok0~H4J!kJ#N|;xgpUs+*T6?c~ zGSlKNveQhwj_nT1TjPbOV=ZpZ9&BXRhD2X70+yOI?QUQo+o%t;|L^!qYTaDvGT@x= zx`=^eNn7Gq0XyhEb^L@yZ>kSDo|48l@P_ZRcB5R@khG`JOCL@q2d5{WZkROEQ@TS* zeR`^kW83g%@A7bHtgpV7{Djzw^C~D&4)+I|oXhsoFh~D0OD*y~b@??9FQJOvBTOy+ z&b)qOu2EyTGv=Ydn4cdDac=k30Hwj$2wdubM#!SxyOU!KU*d}V*#az{m7j{*lTkR~=Sp&Kw-qCzkWmWhe|Yz2 zH#K<&4cz=HZw3~I#`NN&0Tqni?MuY8G%hRN@pG|PGunfJn}E~*t86*_{3WfMLhS5Z zvRVR+VpJ2=%t~|5AzNP)mN;dZZk@YQNt{2Cr1PqVzg2p3g z-|*NKP2L&1PC)#( zwe_`Cf;`Ie4T$Rhg3z~av^MaOWtET9-=ctsLs{`ftz36v2ZwS*VQ}8{E@}qVY_0iq z-Q2c2FS}%DiW5YICNYYg>o=1D`Dt$J2I4z2UqdB(ck&d>zp^fKLVQ)VQ#XZ83AY|R zuprp9TewnO(o*8cC15NR74Ifg=uqfdh_ct#E=0ux&G^Dj;IS(z@J%YbW&)mXgsE~@ zmIE5pzslfZOlxLp>{R+XijF_Y9~%QZ53B#Iv#SXs+;B^Scs+toazF00&(6*LPn*Pd z+b0h-fE1q`HJ+sho}X3iu{bp>AhyvvCrBZrSsZ~I-uO#bK$xOK^!Oop-~r=eIfP@rN-H}U95MPsl#?8`3DP&5DgTtp!Iw* z!!@vQD+#amh2yP3wokXEpnE&3^nV?}KDefop~LE^ZaO?Uv}+xn)8`3iq9B_eZ&?7b zQKLn%Wi&Mg+fk#;s|E@Z&#I^2aE&&8PH=2M+M&d_`Lv2py%I)@X@ zme$Bti*lv?J%3mtYBfv=uE-g;&?<&aO5Atpo;Y`1s#%TEP*TEGLYC2xeSC5oBM3<4sFcRBBxuS@V*Wmk+zlS9L{ zEK)}^XF#A8GfubWGZe#IiiFIc3p9d225b?7e5HOPO~1%wA|=4ioO+$3pRH1);klJi zcz`-tIL8?5YK5-@C1&vDa2SfxtY#GjP#dzH zZNl+d!vvs@ojwu{ty0MN)dEP<0B1%t?Jl+mUE0BnTi*X0zhVM2SnaeMt)N;%HKm2qF!1RJcqAq* zCEN~b)p#4kjCWRlq;bm5iR-bWo!VsdT*FgJ^yXxcOzFnvp8P=~3Gbpny5uXel9>~! zr|ZHwb;E4VhiI75l~Z-~P?NK-rZHs6f+q!yL_|+F8d~!DaE0*X$X?0d-csi27UiA6 z)0U=J0uLRfqHzOj_IP&p-+S0}2jf@^YjWYU6O*mERJ?XM*=X z@hh7Y>U^0k!-sr>e}^m3?Gkk}sTe)@z;)=&cL>Ne{sQYo(Ww(AhSw}~yHcg~t41tF z?OC^U4V3x_3(vG<%;%OAS5RhKfi=w%e6J=;v;`jIeqY%tBp^#iG6Utsm^Ie$pKntH zgpdW8nUl<3D`_@UY89PAt9GlqMJ#XU{`5?72S1m2D|?zF(a;U~<%^YAJ?t zA&V(uFVz#qiz~{JEuFxjS@72|uof$YIwS~vbxpv(B?sFnjGG<0%mzEX z3~|y_%sf3B_`#d%kq&p@?R<0X`&ufkTPnYT%GNC3&_&OvzkSeip|yu>?cn>}tCp#G zd3~+cV~uB`-Yor~2URoB7ovc<82wZ98XIHpmDHU-#ZE#W-P>Ao&J&*mummOq4kB?* zyzg;xjykKo2tNO!OvOae^o!|LA9o_uC|dF_XV`D6^H9EkYSPUvk9bxn1$wjPT;>&B zR@Pi;6dc0BhJ<p3*Rw=EwGcrx z+|(GmJ<4-NCi{7A%ulga(OQLQ?kBMdQ3DEdy)oH}tg+r8|GgZOzeanvyg71Bswi~Q zE7uL2WO1&eN`<~6OL0+eU7rA6odKLOow=U-W996l=6!`&PKV)w^*kT_*_6&lNu^x z@yr=O{D;=GCGBIF>QqPd*F-)sOG{7wk4N4a8|>jSvwM4ck+{qesoTfHuu`MWKxwy* zz!su^VQ65N-lc6RiqZ)Z=IZ9?I_UdmktRX*9w`SeBm8U)9UYI*8px4K89cVV*~Bsq zDH)YA&gApSXA_Iea2#RTrzkSAp!)-oUt%?FOf5F(xlt3ESnEv}c7G`z^n|T5!W!Gc zR>`nQl(xU5h!<8KQ_b#*vGD|J_|lLpzu+kDdIQhyTq4C2{$TSDf*$Y8UKpwN& z<#)Dz7Zc!1vjaK&lqaEDqCZQlq@!Dpmsp_FJUH}v<@Sn9x0B&7*#72s^neFvOf~a8 z<}DAgo^slj+_pES_AGnu<(_cG4l~4=?X_d$<}yqtgKDeTg+Z3uYo4(4j#HS%W5fiw zLp%}2Ly$^aK|F)K;*U{2gl49R%@=Lvv=*+*kya9YUh{KM;A;b!SPgD&@Acy~<>hSrKu{$z5`ly1e>qZoF7WUfmvap6+ArWnZf4P+>iLffD7^ zFQ&W0SJEHUaF+>T^!7vzUtzaAe%MLxs52|(knLRfXxa5rmiZGWo9g^V{!T(}xed5j zu)6%HK=(FpX?A?~^xq<3tr0s73@S{zV?KA%2M1}yWgV7y;61XY4!HvPP{Fy&p}O1*DEwFu4! z3uj}561(%ofgH;8(x%j|*3qUMC3wq3p11hM>t!%;!AK8+j^1SZK>1x44B?ICRM+E| z5EdBxEtB2o9vcNRWxrli=S_pvn%mE6Q12FWN<+@2gloB1g>WSZueN|E87pjJkZ?$JE$nM%0Jz~X=l34z(LU*&SS<4!CbZgKBwT}RfGTj zRofKr!Z6sCJkW$FMNUBvx3#)IIwzy(*i(@z2UXXX)x5@znWb}y&bJ2g^jQ<$2iZEC zpkC0i{(^#Y0UM#!6PZ}~mQZRxL9T67*+TS016cnH%megRX4?(%{+@v4Y55w6@ihCX z8c5Gt2;_WeW^5h(RHXnyb~7o)JpM<~OMUJhwK%WeV~;E-Fn(rBvDuBc0%a_ygN_&b z4?>D=f8Ll`kacSRXuLVB6lz-hguSRC#Ue*c+ObadAI%ogH#p$Sm}x!Gm(hY~4{`%9 zUKc-poU+9Jsd{_`{$e`gv_|Mfd5iP^GXo{zUO;X~qsS*8L_#}#1QZl9a`mnY7U~p! zzLwc6U__afKDWR+2Ws~T)qy*(-c(3$%I9XaI%$@_(Va2q%aUulGJI(m;)QAhKTMp@D4uMOyBw3K|gOt$7aJAv_THfCG@z-mFuT-_EtRKIZdx2ePu zTcSXza&xeteuFi^q}F2Y7uN>ncdnRp(N1GIX^qnMsk<_KP4Tgv#!TSO?r6VlQ<&(o zet5}{+m-E&;6>V~AhB8r*7xSh&XQO2S+#zra|6-Rs~5*p9U46E=(Am{O|OGxg|Ukc zjEVA}9UgDuH&G5g@uHK-y1NRCY!lsL^I-V)@H)_ovR+G;VJ;JqpFlvQScDo$w%J|} z5ke{KgP>^VM`EiBjTH)p+4=5&^XL%Z75@pkrSLS}pi(y~1eNfi+b;8a!^)(^+^F{1 zNX}Q&wV>zf)GbL>H1SVGNlj^KZ5z#ds{4&~=NYb((*L)#U%0p@`+Dq%e(Axi+^M`D;>nm8WTaQ)3a+K{b%e zyG^aoe=YFMS1jg8+^d~beJ`q7*{1y)dR(c`bg~m!>v4nWA)TN`isf-A$UG=v6v?Z- z49q-n7;E{ydUb_%&t6c;swrRW91GoCJti-gqx|JqF?sT#mo!3WYzv(OdaGAWndlxa zFd@@Ej7r%~TZ#_M@{J#I#3u+EtfiYFwWi=$*re5=k-#{_(k9qjnM83{tL7-&9u6b8)xd;iFI&e zJtjx*F|^mplFj`kYHYUB%a2mSVQwJ7Un5?up*)}Y4$=8_K~L|vQd2ezI(q(<*BgNs z(TS>v%zq+((m%M;L7WS?u?pNyQ&iAX|8RS97kE50Hvg2X@XUg2-}h!Y*-hnVBV7v9 z7(UfjVr~L15p?tI()8Pt89lPeN4Vc`a_X~E+I3<)=jt++(^u3|HIpLGxvqP9kt&*S z;D;uClG*2ys9of;+_p4-N%!rezq^EUeup!!9Yb3d0$cMhp65?w(V^`%*wnI~==dy> z_4*dRMR@eI3C=jdqNIoSohS0p|3R%+Admi5T{PZeF7Ut|^Li>(kA$(naUE>`!;8^+UYo zipC--YseLoDJkUQgkNls$`v=KE%sza+r9nwD#y*0*z}}PD*68F((>QSg4tgh9T$U! zl&tgVk)Z@V&+=N}D1$_Y|IzIk(AF?&!k*N4h)m!MA=g{r!|~(-DUmOBosa1unK38< z&K{W?T9oY6ZLa9QoB0^?pQ?F$G`Kf-I5!xXmjr}c${`X;g|Nu(=>h81FIpfGCHlHGJ5W9dHYS}gn`_9s(?NV(zG9^oi)#y3 zTB9D>h)=A)uh{;3yQ)ptNKv?rjMFi~CT2GCQdl9P1xuSxj_I7rt?g6$_#aUsnO9#g zuW&q@u1TSdrC^4nlhT(Zy*d<1pY_GygNkFFfloQeYAUtb<+7dr0vPNOpP|QP3fmNg zamDX4a_h}xFqpTBWYGRd*D}YCZ!}&Nkh~l*m^)j_J)f-GI|nR=7q1p7t-3BfQ(>b> zcGlH<(er5*uD5b`Cu_0!wOZmYlysNXd{S+8yGL|c)D!Ea zbS(c%+Lr_U#c|fkXO7Q&a8mfS?JiBuHLl2zhDuttwh4ANC+}M&X5N=F3+*yq!`(*? zE92YFS~$+nE;vk_Qyvcycp8>(jUF1JYl%Aju5FZlr$Ln&;^__J*x}NBPrufqQz)I= z9$B?|6oC!&j={7XCO)l6nV^L<;quA)AF6WI=GTQh2exy18+#{K!4qDz?l*+TfvT zpWKPtdgeVqyrUPtOMiobDeiCkk+fS()*^Il#-s|#tD+~7K=GxFn5e)MV$_=CB! zayDvhQ@)%2WCf?llYzF&2X@?p`6)nC2hOA)La(08D3(&5Rej9yL6I7*ixY)98K%OE z>GM~OnB6-RbCRrUKz>?$q>DEh{+fU%B~&VgSGHL2i94#=JyNj(;^ zLVG`i`fx$*GdFi==Nx;IdT%B<76i0Mb?O^Wao$iJR)TZ|VxEZQP4Hl+Zh8mZ`b2Z% z`LbnXSl+}b9Pfw`V=Lq*-XKaUQCLQ@pFZTuDIMm6hBmi27p2oS$4cS>0}YmJ65N{p z=Cm|twemROZ816J&KOc}pB8RH!Y4?~ufQAnumj-P}>oDsozk9H6CL zHFh_8IYWQ*p-WQ-P4JR5=kmP*q+ETs{6KT|?6FWYbvfT=)-JbO7ch;25++CFf~d4_ zgn zcX#fZ{?+&I+s4Xw?^_@KrSo^>`+h}}O4Bp<|CxFG^HkE&1JbL%gO~OrHZInGQ@gyX zwKY?m6LDVTLABBQ=flEzlT*A-hdZ1v)0&G_R(R<^L#Z+FYPz9Uxu}ea)|IDL>-YFQ zU}xD!oF%NpnQrO7#3-E#XhdLl4na+Xe^^+Jx!jZXr!di>{^0u8 z;6Lk%CMGvNeN2AUDAg~tnZ3|8oMv1=Aq44zjC-VjK*EO0QKA3UuW!lnF_e%zkzH{RyT zdv(gEVt)>Ki00rG=MW6Zmn%QEfxy@YP%w4#1pshX^7B{RtqJDZ1ZNvr>0L0Ct6Q1PCy<=Dr#x8cuBrO zxN$l`Gm}Qsc{p;h19!_|2+%x%D&mH-gqzxNU9b%23N?Z!vjL~6eK6m_a1`Nr@g=Hf zcz|~>AH~qxL-sE%=zFycvdc74_^}nA9$U16Zjoj7$n$_RXILhBeIPweoE8yGwqUh6 zv7DjTBWg>%>*{V)adNSMWSV#)2^HF^kZFAB*DrY5qAw4Al$k#xCSWv;Ck^I5XA*3Q ztk#>_UtP7!01H5QRfb6!?Cg5RAO1&QCQ|b#ja+XA2-_+g0vr0hZ?G;G6ZQ1qG~TbY z3c-oPxU-D&m_1SbUS3|UE9wSEYktX&>2CVVuT0lU`WICs@rb++X|@clTGAMnrt$?h z;Usmesj&u6&Pp+6JkB4XpwV zy%E2lOw%<`2bbpAR~(X-d1-;tE3U~M+~y}h#{O2UN`f11&`YQ*1@ak}Rtqk$UGfbR z^#&U$N%IwB9*YTBMm2=fZ*+prJ*1#osE?Ia7P0E{PuaLLgwo<7Z&LN`si3Q-4fV=h z9f8eEb~6x9e7`n%2I$B#X+9;uQZQ6%=%cr^4!`St`5hcLIx0JKkvX*a1s34`Hj^xa zyzs`feN@;uxIJUb(gY%_yYR+n7Ca_uO8&5!W>c`Wd$3|J2{}BQ=S8%l{GHk1Xhym; zcEuXa!QS!(cxqZTEiO6SE+;4TY;g8atAgD944x|<-Pxk~38RqGW|T}0&FaGk=~Vj7 z4F1v#@!MW8^K-IOt8=D}G1jhayn5n&6Fk5cKhdj@yF9bqMH}I+(m8_J@e1y3@Z?or zJ2=^IlGzg;M?jqB9u%j@2*qn~E(^<y< zF5+U!S)Jp%nHYmdn`*+o1F83cQ{(WL!m)oBUCM~mEYOoI(A=ue_6lMx(a-OBt%ll( zOtQK*lp1q|tu)!rTz?6;Su(k}XoJcXWcM~p8!kZs6%t4oez z>Hh$}FUE@}s**9M4$Y3|v3Lr4_@3$`}0BEiE z-Du1B%6j7~dd(Aa*=l9k9nmV{Qy`Pny*6^iIxli`USl%y0iXRKT*cw@IhDyLbQ}*> zwqV?6?XB%%De=@P{vGw{Z~5rj!!Hz2L`vSj%aHL}z1?hXg5)2GwfnrH?8}>Wf(I%y zM={GTw|+tR$ARIOur|-t(AJgo_$vwtPW;4clqp`%2C0A8n&4)J2=rt(4`6@`t~*SXwF&Vtkr3f zN_=eR7T8uX`YFcHQ|lQomGTr<*($B{EGL#&+1BuCq~bOIx_og$uB73klAG>0^R3hT z#;%coEO2FS>U+iQSnc>5$jrCqI{2QGPJAgR?f0Lm4%MjM@))~|kJ^isg=Q<5u zk>%XVI+fY-G~@PQO$s5xe@st0Uoe9EHuUIDK$QrXBuTjw9C+E^8hb)N5wzh7`oKOS z45Fg;P?;Yg&xm(Db6Ziw3#Wu`%jn#JDRi(`WV=7Eoz@8^oj$RyEShl|jI)yVNDbFo ztD&FYqgVRkH>~L1g()gZ-?$CapFTs7_$wf|R460x(693QqhyG}ZCh;jJX z!A-u*pqFMf?49N^B#t|$vQytF6nFPdrEbYbBMsCZGE945w>@}P5;Gj@!iC3916}Zj zZ1KUZJO2FsH*33xc2JWV%4%>4uUfTImgVe%#_E&D}?vjwDutKm!eS z#wAx1KFq1C^ia-{O*`}28Bnbd_(xoh)sV+<|Pj|**#K_@6_ z$7aVzcFkj-@I{DD#aCme?%D2>I+#k>;8O*p0>XoA!H%>qH?NHE=HLuS86l9KNbVRA zBxOzSB(Gq=F8BS#UOG=d)rLG$Jlblvu&e&AT zAhpK7s9I^KOH|Nl?&Y=BMMnP=`cinmOl!JJ1xVmtguw|0mo46X+IoW}g-pbDkz!Cs zPGgIs5706GHv+=pN0rYwdgDA6rByZM`|RQ9Saqz~Gv$na&{($pm#7L|>83(Y5)`pq z3G%fS%u0=eCPVJkgGo5fmn7f-YNSWUS>4pb<m+ zj&BL%6iG^-9^2f}`jw|Oy*07RUNL1)NvcsQNqreK&9|IhdH^LlY#@ArAma-Z{@=Uy}CJWrnXwcfX)-Pdiy6f(X@H;DI?h|XwSrZIC? z@jCa@Pc`K3%XRCnR!9!Bc93hO2tCHQ%sH`a_$41X0Upv+MCpR%Vtlw~JI|@Bg%@zw z3u;BQ$_C_97=kh%={Kc6_03ER4?enCDAF!@b3u|JtItWv%j_C^SCF}n+%5b@s^RPE zw9a?7{z*O|S6T$I)(_GNR*j7!LTQA%00vFx4k2SCqO_G*%8dtn1`1d^dNRL0fd2UpX_x z4Z^xRIHG&{Ju#1N4W)>C{~|OAN}QJ78|;Z=NDIq7-JfrEHA=&;vHGcHXE5b*EIN)X zXUv0IL8`uIOt6Ph-=rRWAlE&IKh|U3h<4(JRft{cf-E9}rMLWlOnzv(ps3Qs0(}S4O!I)XxmRzRnvi8%a>crA(oZ?lPEzJXS zRL(aQED4pNlFp}bRr3taRGLqgh}dNdhfy&TqrA%Rv=cjTcn0CFBd6R`#mFpCZA>zx zQw_;uJarGYoE~^Y=#)#6R`ri%x=5?)Eh?;P?nR-wH!xvcX?Zj^)2stRnw#OA=+&dD zTUfI(lF1U49Nj(nRHwckRi#UcovINSc|9k6dgv>hIW|3z*SFEUwg`UR?MjGkVfpJa zbhl8Me=Dgb#t0b8+_|@yv4=g5ev{eIWRT(|{5I+`^E{t+WLWFgI9xYa>gytKo-mVcC7qv#%ZW=QmTDgE8<5ti;o6H}J_cV6u$4_sZz zZxqvKD(amn`F7rrvlaDzHuwTU9VvIWU1s5<*4j%Jr#}w(@bMe>ayQ9lkZ3@O8P8z^X|K^ z+IHUr-R6fZwo1w8DL+f4Uf>y1D4ja#j#zo*z1Ra0WB9%$YKrfqs>uvvr?osC`b3+* zprrz-B^;}|qBLypT}t>?fC+CF5hgEYU!*$t-=~Z?chCO}uJRrw)NSwZl4z#4hjl%f zHjU$Pp+)g`dg->-_;CHWbSYXb^}CMOvRuQ0MZw!baESVS;LQkOR?zbwV;;5LS!31S z^;p>+yG0#J24@Sd^|;7}NKb`vIfRl-Fz=xk-d)~Yr?x!BO|5lR5#E)@1gZ^g6@Kh1 z2ojX>_V8>gXsMm7@rJ+DMjeC}qr9-KCH1aeG|n4-`K!~JPVPd>Hn9p_j_IB^@o*4t zyiSTIP$F-+fB_vg8j2q~qJz+T1`*Q|11@ z9S7=zeORiz*a%M)um7qvt0dL(o+crq*B)|#a1*{UDqPL7VrDgyuie$~k!PdJQ;Iq5 zs$EzD%0leQFOuwxyAC?5rO>>vKW8{jXM#z_KrO=84)&f8pvG9ekZ-$+6QV4B&z+c; zNPn-J6EC>ik}#>{!iab)e7O^IQ3D^|PCk`(?;Nu{OZjLjPW<}$4D94D`_a<=kjtE? z!sT&gAyvTiP_fIjnxEI=M`cb3(B3=>kw@P0rypM7cN z#Cv)S*Tf%(6j7z0*nx`Z+nn{8&@_h}lDJ`H%zuh$F93fn{LbO@W?2oC74{9SxRP`V$Q+evrU65&2Z+6M4jnnMvijls=TkkIgAod{kEDblb+We501WmbSaTmY&Nf zLzTo`<pG){oZwG_kTX9_hbMSrbHpzFXUi62cu&r+4InukYl#Abd8f9|>`}QNF56S}h`PGI%h=S7Ahjj28@!^5kSSN@AK zZh!Mv%0=la#iIja1CK~{)NO&h>W_K) zS4PlnFYEO0#kLiaaTQ+(mXxia-BvMQ*F-s)c8 zNuo8UWP3$Z_*SzdLe!RBWR3IoU5S)V^wS@Ur{DZ>5FbYq|9%6xm=>gaCu|jpu4?W- zFC`JsP>19Xzk}Y6m?=K#GBeXIrsy+qqtx>=Ze*)=m6~l=z1nzkV{yIMB{VL3yHvY% ze?yl%eNKLUWq%?!STsy0&{yR2u#{KUwTIJC=!|Y+{jY+-qVB96$L;+5~(UNrrR-M~-=@wYF`a zbJS_K)j@w;B8{_W8(Hth{VALI7X#Bf%S1Ky43sZ0KXx)-*|SrLK`Ea_?^|Jnf>>~r zV3We!@LX&wso3UnxOY`;AadhVM3p4jo#jiV(nno&{WU#!cjJxU2q${HC9p)u^rK&R z6#ATQ73zL>L6r5XJnP1-2*tB3r9a#4xwb88KJ|v?HsOdO^!7ts`;m%}#;(8J!8TE< z98$6rl)zWn^fDJuAR!UM-XLZ*PVwo-)xFux!3r$iVu7ooR7skk1lP`Xm?%NT`YTR| z6F1GOs;MXF#Hzo3-6m!KLBjssHCLq7J%x=4#zj?+P+Uy#Yv zCEZu%H#5tpuF%r=ktho2RZmjW(?WBH;r!F@gq|FqPf%+3GBzHQY8Jp%5luG!a8O^< zNDxvW|13I-Q5frO-~^cKZivBKM_x9Jl^kp_DL5_hNHP?5XRF5KL;KB3hOF9LZf`NZ zc5C=fEGuyKAIU6%7CXvTbIXzSpWo2#$& zQ*YUQA9yK7HK*Nsq-EfutLfy9FzfZEjNvxK3tYOanDad?zRs?J>F%6LiLO(a6%6FE zL9MieY@p?+3Y`hs+GhojUGCbYGLNoyQ+wKMwb&NS}UtdZ1)_x#}Hq5u;v@@IJ3jh zPAvZnqjD2hx!hs|t#5r$FFpD=3j?CW3Yk!%>*@*Yn1oZTDveVFak zKj!+y*z z`!QS;J@Mutr!y;FjCzc3wdij2aQ(w+ot*kUAH!^h(_T1*sN?iM8p*wKO&8)4PDC=P z_h>QubRt!a#>db;RWHziN^+qQWIhSv?Vy4D0y}s=`c@awCZB?IZQFPIJr|7=lcc3$ z71I~6>5r+(9X|X)!zZV)hvd;;6{BwdL+a&gRYo2&uB(7Uy(?Do9NQqgF-$B+JuAN3 zPB~rvx(gzmH&gq*@eF*V(oLzY%)e*=$y2 zw?wgwegDS%{EWR?_nS=8?Ff@%1^T!ymN3=6+MIrGvT&ZBp1{7bDEd=y`5A5E9r~CF z-)ZvVU5}WOIqNh&I>6kDTE7x;M#6)(AX1_epUmu<4dw%euF`LOdY<44DjZj#yDN$dvcPqNZ*0A@FRK z7Z+t_*6O3}CFCGhxa|vlPPT@{wb)HA-|EbpaGQ5;&Cl=Lq&~`1gJsvH7l-wUWtq!r zhi^@<{Ik$i$DgGbAO%S*Po~f^bba<0)uYBwsE{wKpi_28SI$@Ywj0TAathHhnvG1V zCjmtrExO0#R$Z^wp8W9LWmOucNg2~}GXp=jP1Kl}-li{;b39KR=XeWkt@wh&4onMZ zvF%O~##c~BQ?aE2U1an57F5a&o^2v%(8-qZvRynWMd_-uZbAtvex?=d_=NmxC(nmu z<<9dynzuYW(3?+~nKx1dX`f&aa5ThqQ)2wFn0hlbhKb5i`Cj zVPZZ1{s+7hM`eb;#s@MiCaaq4_*P0zO0ZAJDAcf&>;D#2egPkC`A&R9LN^Mh-$v)W zGNYbCo9aAVAZn}x$ClITpFcsAHO=QmU+b=-XPZdu_q)uFEx*V>rk=Eo-EFZ%!D74K zp+18pk zT{3Rp>fdVE*rXLZ}q!cvylW(+E*vZ(S@|#2Qb1o|c%6iygls@|j)(#bX ztmR9hgh=rDv9^ti-)u>k72Y`0r83SM?5cAX!f}3>#s(0xHHN4fL`l{)yf#0Cr!VPg zN~cTgGacJH=9q=7zDB%xfpj#P@xEx!^5>%Imi`trS>xjISFdUCJ11lEVKH}}`C%nr zpNB`}w*B_2%p((x!gbDPks2)SrP0c0A@}_2VqK}7qNGpz^`rLZ-tGL3TRM-pRDF|c3PSe8wjq{E_S*&LhC8RkOO9CW zoew|lXUH`%v1@mo-Wyx9U7?AN@VKN+9dP&O+F9UF$~)c;#_yuM=Ak6qv$w};Ig&0& z(h#n0pK$Lh2SWwqCKzrf`{0wR)%^vr6sZ60ruySWva+o-m3TF7p*m@>A<+L=jAVf$ zYX3@g*J&kL-T8{bbdF=VF;z)A$5F$nUf%(~0Hp|>5Pq5%64e@c!V~cs?Pft$wY4x& zQ`7JZ6K{8*NGU+p zdDh2$d>*vd563lC>C#TU*oEjA&+RUE-0rbH#`2XrlE2U>JpzSW z5iF7Gbj2t^?TchSrgQMBZZW*Gx90t1afwx zY*u0vOvx_OhJ_Q?_;4>wb{NXcj}V{s3+A+Z|MuD|q+o4fr=w&nR!Ui#z7-!hcgOx?KYi;e zzl-~>lbT%5$6e=2P81hwJ@Unr4KfN$dnCzBBhFEXSS%~)?iryXE&(l;b{gH~;d%dR zXF;d3>sRhW5 zhoh2COwTO5dnrA;Ag1);&5W$l?85wvti;E6AEm@*=jD;M4dq?3HiaV>n+OSDR*IL@ zZZ4GU^U&}ru`tWjbcIZy^xv<xG7?_+hmGV8s>l>-J+Wqn4 z=$%p4`}YpX&UQznD~mIUHHc;ANaQ>Y#m-nX+7(*3G@yT)_n+FTD&+tv5+KqnMh_qUesSYzK)%YAWsd%7J5*3m&~J>H218mksE6 z<-ZI?tS>12j7D|5cCw2R+vtRnllR43@K!K3sspuHt7M_Gl|o`i4-Ikaj&0QZyzqMV zwG^wpis@pD1VQY-46gP4B(xnz86?anw3Y;l_3XN*iEBu4U&~q#rZLsmZNWjM*Am(=kqG3)o{-%^HW_g$$`F7IhCqQI2{{} zTpIP7po7QR3AwVxZ&AAMovqO*{p(Q+HCS=q&iaB@g;_Yr@RR&oR?{l4w~3NsM5Ki7 z@#;M-usBNEMY2C&>he}PhHc^ry+cgns;^0A=Czk8))O#n2@hR zJ6kS?XKT%$Jy$tCUNwC>y{N~w^)>#T!i*A)r_^1_!|^N8F~U=@FpH>AkNa}aC)#Lr zpLZ60g7w&7?)Ym)=FGyiybMa;t^qBj@dF;6X7UKgilJ=r~&vYG6n_pB=4ex#}bN#0zTi`*egZ6|Y_u-< zZM3761!-r}5~D*2UUd<^g0?Reqp?45+vXK$T|R=MpSKK4q3lkbaLh2ik7mppf8o{# z>D1u3zHDJj5)_RMkUzR1D~}bnqkOx-e4cZcV8P0~^G20!%^{(lg9GrLh3N@g_I2f9^gO4GFl|Y?GNnALC?8iV zS+{LEQl;XwZigjBaZ5K->OI#U-Q8^2>I)w!juvi;M5!g(xKPY2z2EShm>{W>x1MHh ze@bt=KghQCy*b3WwddVML$#<$vJAGzt>3Df$Jw@0^G8YhTI_IDwaAS<1U{P5Cm}d- z@6fnpItd@244j6fF9m&@@!<3E&jz3 z*gFI^MDf(7SQwl6bp;rXpYiNcj#kD*R}+?|kR!GMmImgCZ6Xi6oE~{OQ4~+Ox~1`% z&67(x$dV-=mjkYmxC#xu%Fr$yyN#aeRzsp;qQk}t`3@4Bw@yfsKGFhQ^)&B}BK}HB zu4zvy?y)_^b15I;TboFHmW6D)*&iVFWMJi*{&BA^FK&JbBO%k2v#axMv}WGh%^ONE zQ2mzZ$}_^662t@cDKBOv92M9gcw$i2S6zOK6X=_6k^E;#Zf#SuRHq}LV0Zp27f<1@7I z8MolSo*7-uu%BwLsLA`VwP=&)k3&b0!JG4D!xen*WT6lz;(MM5cC<OPUrZULG~X7!b*^`s04qoHA{Ee%CNB?bP5B?$grZ6{dMN9qH@w^z7gZB)=3xp@u5$iUMkC_)}l#loR|-}kQ{Z@ zR7wGZniR)t2W$Kd3`xr0WG(9NF$TmY+k(i zP%-;SRrKOrfkjRY;j|DZU(5=Q4akm95~i(QiuCm6%|BKd(Qr)6>2PI2xNNJEcN_0t z%SUPgigR`ad23UDqNv5_z$ooGLj2VqHck6k5G? zJTYXE6#VWfcBl7F(w?8wm>j&No#NgAk>q=7vDRADaZL6AZ}JfdD8EHuXPNU4N1azK_5Mw)Nb=- ztvuFNqXx(5M)GXn`M(+}*VEe-5( zCqI#ImyVZ>&2;h@5Y0?yz%ghpD!dc4ouAYk-usZ_$5#6WC%cVg4G0{9gK1aHl@h%g zBTvzjYC{Ha@4l}Z(mX&`fKot2Kw$ddOBqpXr^AycB&WNP-N>8OSn4XgN9d-UN95b( z6-mw#ZgUEHdgm^m&*a*A3@c&xMnk!_5mef)%l#izH`iVL zJgPG`?1Vn0z=BY6NGQ98(fP}me7PANou|VYR6a+~CNgAIN;17bd zk=?9y<|m6!9{f#(@E|=1l0{x9S)=8EU@4z0$c%^Sk#at~0MDPFCI$yA20_8d+g0n; zBZDCqfDeJfk(Zi*Xb9Zn+Ym?;$h7bg05=kDtuF-bWMA9AWnRcb zC)dHNlYELGB@`Z-S=Tz#6$*JEhO5J%VARZIVIUd~caahXIU&DZ0r+r865I=eHX$G& z5)MTmD#4C$CdHI^?zd4D8CDeYYobS_6v%#Yx3Ht#!G)FnJCBtApyLi zplDR?S><)P9Z?V#JdJ|%5d#1h4bLqRL`6gJA?8ck!0@uR;o5EE!H;N27NG#7VxUk| z#gH}_8PYadpP6$pkSr=~R2zIUFc1e-Z4l+WWH~5W6U|$?8`OD)^*@LyRk?ntw!VUur(2R!# zj#V0fiAnX=7sSH@t^)P(P$;4T{1XoaB0toDU-7VJ(i5PK$h4Lf2#`{V@AO#czj9P-z~2(5daPLQ41j zL4R+Dj8RsH{~-GvkSVIK?GGwjL-$VoL2_MzB4BO@yvXkW(GT%r=^~y3Mk?ftdfNM&lms)WaEH$? z{6^wHHw`jFRZIkdPZ_}y;Q2(5060_&HygVc^xx^*u=ra-3EWGAj1ZduVkhK_(*OFK zR0p{`;YQSd{XtVOLY{>eX*#3r7cM%y?wM%>2VOh6IjeL54`&<2678WyF9&Hr)K%|1nsQmJJyp!Q{Hk$H`#vwZ^oO{!iB!2_U@(R?Z~Y zx(C{VkOv3%zz#nJOs-vMKq&`uKwS?F0Y5`Sq(N>DY!dfDTMoQ{$PsZA*zAQb zav*On>_p4J_+E&D{4ffnav^6#Ac)F^^|7h}`g7r#;@K4nj5I?Pff)^+Dc{OaP@xbi z0T?vc?%kXIATABsh`<98I^>UfqZPI;l0%0msIS(4&^R5kf&H*31M)#_aQ#E>VZcjc zJ}3;3g2Obyw|rPzpBS)FT7>_mh=3g)h69#N*fKE@f2hcaFez|kjY@3!L%m_b%J2qC zENClgH(xj)u^<_6n=c#>4#EHaBk|tAFdtF?Gc3pi`6PZF=qH3r0{lU^$DllTeok@M zY2LALDbSV&*GimTXRb_#i-F_iu%JZ#Z+~Hs54)FV3vf5VVd8+34_Tmwuo3?vUhpX& zUbFs$|5COEu)5yS|4^j`@bcVR_y^e(LOAfb0A8b)4*rjFLe4dMP$cfz~p{-MMx_DUq%4fmqX^ro7(@O zWp(02*Q`Su>Fu^oFR~$cy2>Fd3FeLe@5`Mb7&`!4ga$CEg1iuM zfKdgngGkSKfQU*^16Mrb1=rS-HtL;U!aC*RpFjXlOW~G^4#Lwh9Qm8K0?%P7gfhTZ z!@esBcvi#qCAB{Rc65L~Mj+&ctW$o-$d+5i6; z4_})Y#{j7o@HD7Y+JiNO9NL9LtBtj zI|1Jj$R2q%1GpZ6Eyq3^>^}lIqU!fhfdY-H1il`D6~k_#0>M_Q46r>4w^iE#5|6^~ ztHEag;}}E$Z_iSN!Q-_O?eptQUmsNnsMo=a^XR`a0$^tyq=y&=UUiT(xKIZ_C3Zep zFGU`M?IZQ|I&eP*KV$lq)_@~&;@jF)68v=x(nqZbB!X0tL@A)bft${82R Date: Sun, 25 Oct 2026 18:30:31 +0800 Subject: [PATCH 10/11] fix(check): skip empty readable route pairs --- archify/scripts/check-render-output.mjs | 4 ++-- test/svg-path-checker.test.mjs | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/archify/scripts/check-render-output.mjs b/archify/scripts/check-render-output.mjs index ba920b4af..7d1bf913b 100644 --- a/archify/scripts/check-render-output.mjs +++ b/archify/scripts/check-render-output.mjs @@ -768,12 +768,12 @@ function collectRelationshipCrossings( pairLimit = DEFAULT_MAX_CROSSING_PAIR_CHECKS, segmentPairLimit = DEFAULT_MAX_CROSSING_SEGMENT_PAIR_CHECKS, ) { - const relationships = arrows.filter((arrow) => arrow.from && arrow.to && arrow.segments.length).map(arrow => ({ + const relationships = arrows.filter((arrow) => arrow.from && arrow.to).map(arrow => ({ ...arrow, // Readable-v2 routePoints come from the visible path, never its metadata. // A straight-through via is not a visual endpoint; preserve real bends. segments: includeSharedEndpoints ? arrow.routeSubpaths.flatMap(forwardCollinearAnalysisSegments) : arrow.segments, - })); + })).filter((arrow) => arrow.segments.length); const crossings = []; let attemptedPairs = 0; let attemptedSegmentPairs = 0; diff --git a/test/svg-path-checker.test.mjs b/test/svg-path-checker.test.mjs index 7c4b20487..cbaf9b0cc 100644 --- a/test/svg-path-checker.test.mjs +++ b/test/svg-path-checker.test.mjs @@ -143,6 +143,20 @@ test('正常二次曲线继续受检,不能为拒绝其他曲线而禁止已 assertPass(await check(t, arrow('m20 20l60 0q20 0 20 20v80'))); }); +test('readable-v2 的纯 Q 路线不消耗交叉关系对预算', async t => { + const body = [ + arrow('M20 20Q40 40 60 20', { id: 'one', from: 'a', to: 'b' }), + arrow('M20 60Q40 80 60 60', { id: 'two', from: 'c', to: 'd' }), + arrow('M20 100Q40 120 60 100', { id: 'three', from: 'e', to: 'f' }), + ].join(''); + const result = await check(t, body, { + rootAttrs: 'data-layout-contract="readable-v2"', + env: { ARCHIFY_CHECK_MAX_CROSSING_PAIR_CHECKS: '1' }, + }); + assertPass(result); + assert.equal(result.receipt.composition.metrics.properCrossings, 0); +}); + test('readable-v2 的圆角前后直线不生成虚假跨越,采样点不成为微线段', async t => { const rounded = arrow('M20 20L80 20Q100 20 100 40L100 120'); const other = arrow('M50 70H96', { id: 'other', from: 'c', to: 'd', extra: 'data-edge-key="1"' }); From 5ba198fd8d4a74b5abb3a5fd29f9925cb426f5f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=98=89=E4=BC=9F?= <202383014@uibe.edu.cn> Date: Sun, 25 Oct 2026 18:30:49 +0800 Subject: [PATCH 11/11] build: refresh crossing budget archive --- archify.zip | Bin 6988235 -> 6988244 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/archify.zip b/archify.zip index a48820194f739e2116d37992d3377d9510f315ed..e9f735395b58a52dba195bc42b7b05874104c8f3 100644 GIT binary patch delta 11200 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 BZ@vHk delta 11228 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 ZqLK4A@H0Mi$%>IiIu5qxPyf5f{{d3Wjw1j7