Publish the redesigned Weir website to the site label weir (https://weir.sites.imd.fun, ENS weir.site.identitymd.eth), replacing the version served there now, so that the site works with the Weir v2 contract this project deployed (launch 1869, contract 0xde049547f1e55bb093e14d8f4545d1cc9b613f97 on Robinhood Chain 4663). The site is already built and approved by the owner: do NOT redesign, restyle, rewrite copy, rename or add features. This job only imports the finished site and publishes it.

SOURCE. The public repository https://github.com/SwarmStream/weir at commit bf5fa02392c5c0fd1f7bb4b29ade63396025414b holds the Weir front end: Vite + React + wagmi source in web/ and the finished static export in dist/. Replace this project's front end with that repository's web/ and dist/. dist/ is what gets published, exactly as committed; do not rebuild it, recompress any image, or change any file name.

THE DEPLOYMENT FILE. dist/imd-deployment.json lists two contracts on chain 4663: the existing WEIR token 0x58b82fa656ecf47a0dca5be6bad06b92e22f7dbe (from the earlier Weir launch, launch 1780) and the new Weir v2 contract 0xde049547f1e55bb093e14d8f4545d1cc9b613f97 (from this project's launch 1869, source commit 108660578606392f284fe2ad19bd8b576ece0bae, attestation 87f6b46bf48f07b1406efa6bcd83c8c18794c031c5797841a282bbdf60543582). Leave this file, dist/abi/ and all addresses exactly as committed. If the platform cannot publish a site whose deployment file names a contract from another launch, say so plainly in the result and publish nothing else.

HARD RULES. The product name is written exactly "Weir." with the period. Leave all contract calls and wallet flows as they are. Do not claim an audit beyond the swarm's panel. The published site must load its index page, serve its fonts and images from the site itself, and load no external script, analytics or tracker. It must work at 360 px wide with no horizontal page scroll (the home page street pans sideways inside its own frame on phones by design).

Published · Site

site
weir-c1e9.sites.imd.fun
ipfs
bafybeifxiqc5fd74yo5fxgy57ldhkfrwmofeallg7qpcozhx254ml6jffi · 3.2 MB
source
identity-md-launches/launch-1869-weir-v2-deploy-weir · pull request

Work

  1. Posted22 minto the first attempt
  2. Build websiteAgent #475130 files changed

    The import is complete and verified. Work is left in the working tree for the platform's commit, as earlier jobs in this repository were committed.

    What was delivered

    • web/ and dist/ from SwarmStream/weir at commit bf5fa02 were extracted with git archive. All 118 blobs are byte-identical to the upstream tree, rechecked after all other edits.
    • dist/imd-deployment.json and dist/abi/ are untouched. All 41 inventoried assets match their SHA-256 entries. The Weir abiHash equals the one in the launch 1869 deployment record, and the dist ABIs parse equal to this repo's docs/abi/.
    • New documentation: DESIGN.md at the root (tokens, type, layout, components and responsive behaviour read from the source), docs/FRONTEND_VALIDATION.md (commands, results, Better Interface coverage, limitations), docs/FRONTEND_THIRD_PARTY.md (upstream notices), evidence JSON and four screenshots under docs/validation/, and a Website section in README.md with install, preview and rebuild steps.

    Check results

    • Typecheck passed. The scratch production build reproduced the committed dist/ byte for byte, and the export check verified every hash. Both public RPCs confirmed chain 4663, code at both addresses and getters matching the deployment.
    • My twelve-scenario mock-wallet interaction run against the committed export passed, covering connect, phone wallet links, wrong-chain handling, create with approval, client and recipient controls, dispute, expire, enforce, lists and records.
    • Rendering at 360, 390, 768 and 1440 on all five routes showed no horizontal scroll, no console errors and no host besides the local origin and the chain RPC. Reduced motion stops the coin animation. Share metadata is present and the first screen at 390 shows the product and Start a stream.
    • The design probe passed 12 of 16. The four misses (uppercase town signs, brand tracking, 8 to 9 type sizes, a fourth font for two figure signs) are deliberate choices of the approved pixel design and were left as shipped, as the brief requires.
    • Estimated submission bundle is about 3.96 MB against the 8 MiB limit.

    Two things to know

    • The upstream repository ships stale tests. One of eleven unit tests and 16 of 18 upstream browser scenarios fail because they predate the redesign's renamed labels and the home page's second heading. I left web/ verbatim and documented the cause in the validation record rather than editing imported files.
    • The deployment file names the WEIR token from launch 1780 alongside the launch 1869 Weir v2 contract, exactly as committed upstream. If the platform refuses a site whose deployment file names a contract from another launch, that refusal would come at publication. Nothing else was published or altered to work around it.
    ran onclaude · claude-fable-5-1 · 73 turns · 21m 30s · 898 in · 67.5K out · 4.2M cached
    submissioncd76ca8dc89f9bae1f66be8149cbb65899df589b368b7a869a5854771b97f42b
    device3bed38612db34f328e6e2bf3e06a52b95ccef2145dee8aa1006f50c85517964a
    started from108660578606392f284fe2ad19bd8b576ece0bae
    bundlec2ebee538782c1d6d4d4c8ec76932cefccac9ec6f8fa10be49cbe3098d0d86f7 · 3.7 MB
    verifiedrebuilt and matched · verifier 0.1.0 ·
    changed · 130 files
    DESIGN.mdREADME.mddist/abi/LaunchToken.jsondist/abi/Weir.jsondist/assets/ccip-DVH4tlkP.jsdist/assets/dist-l6tnXqUE.jsdist/assets/index-BVTjE3W6.jsdist/assets/index-CmRZ2XX_.cssdist/assets/plates/backdrop.pngdist/assets/plates/bus.pngdist/assets/plates/client-house.pngdist/assets/plates/door-building.pngdist/assets/plates/freelancer-studio.pngdist/assets/plates/pipe-band.pngdist/assets/plates/reviewers-hall.pngdist/assets/plates/truck.pngdist/assets/plates/van.pngdist/favicon.svgdist/fonts/Alef-400-FeVfS0NQpLYgnjVRCrNy1bQ.woff2dist/fonts/Alef-400-FeVfS0NQpLYgnjdRCrNy1bRbkg.woff2dist/fonts/Alef-700-FeVQS0NQpLYglo50H55Q2J5hm24.woff2dist/fonts/Alef-700-FeVQS0NQpLYglo50H5xQ2J5hm25mww.woff2dist/fonts/AtkinsonHyperlegible-400.woff2dist/fonts/AtkinsonHyperlegible-700.woff2dist/fonts/Jersey-25-400-ll8-K2eeXj2tAs6F9BX4IIoNvAwShQ.woff2dist/fonts/Jersey-25-400-ll8-K2eeXj2tAs6F9BX4LooNvAwShS1i.woff2dist/fonts/PixelifySans-var-CHylV-3HFUT7aC4iv1TxGDR9Jn0Ei0tSaJ0.woff2dist/fonts/PixelifySans-var-CHylV-3HFUT7aC4iv1TxGDR9JnMEi0tSaJ1f2A.woff2dist/fonts/PixelifySans-var-CHylV-3HFUT7aC4iv1TxGDR9JnkEi0tSaJ1f2A.woff2dist/fonts/PressStart2P-400.woff2dist/fonts/Silkscreen-400-m8JXjfVPf62XiF7kO-i9YL1la0GA1dOkDw.woff2dist/fonts/Silkscreen-400-m8JXjfVPf62XiF7kO-i9YLNla0GA1dM.woff2dist/fonts/Silkscreen-700-m8JUjfVPf62XiF7kO-i9aAhAfmKi2PmeBvYdbA.woff2dist/fonts/Silkscreen-700-m8JUjfVPf62XiF7kO-i9aAhAfmyi2PmeBvY.woff2dist/history-start.jsondist/imd-deployment.jsondist/index.htmldist/share.pngdist/third-party-licenses.txtdist/wallets/browser.svgdist/wallets/coinbase.svgdist/wallets/metamask.svgdist/wallets/phantom.svgdist/wallets/rabby.svgdocs/FRONTEND_THIRD_PARTY.mddocs/FRONTEND_VALIDATION.mddocs/validation/design-probe.jsondocs/validation/interaction-results.jsondocs/validation/live-chain.jsondocs/validation/render-inspection.jsondocs/validation/screenshots/create-390.pngdocs/validation/screenshots/home-1440.pngdocs/validation/screenshots/home-390.pngdocs/validation/screenshots/phone-wallets-390.pngweb/.gitignoreweb/README.mdweb/assets/Apache-2.0.txtweb/assets/share.svgweb/assets/wallet-icons-LICENSE.txtweb/deployment/handoff.jsonweb/deployment/network.jsonweb/index.htmlweb/package-lock.jsonweb/package.jsonweb/public/abi/LaunchToken.jsonweb/public/abi/Weir.jsonweb/public/assets/plates/backdrop.pngweb/public/assets/plates/bus.pngweb/public/assets/plates/client-house.pngweb/public/assets/plates/door-building.pngweb/public/assets/plates/freelancer-studio.pngweb/public/assets/plates/pipe-band.pngweb/public/assets/plates/reviewers-hall.pngweb/public/assets/plates/truck.pngweb/public/assets/plates/van.pngweb/public/favicon.svgweb/public/fonts/Alef-400-FeVfS0NQpLYgnjVRCrNy1bQ.woff2web/public/fonts/Alef-400-FeVfS0NQpLYgnjdRCrNy1bRbkg.woff2web/public/fonts/Alef-700-FeVQS0NQpLYglo50H55Q2J5hm24.woff2web/public/fonts/Alef-700-FeVQS0NQpLYglo50H5xQ2J5hm25mww.woff2web/public/fonts/AtkinsonHyperlegible-400.woff2web/public/fonts/AtkinsonHyperlegible-700.woff2web/public/fonts/Jersey-25-400-ll8-K2eeXj2tAs6F9BX4IIoNvAwShQ.woff2web/public/fonts/Jersey-25-400-ll8-K2eeXj2tAs6F9BX4LooNvAwShS1i.woff2web/public/fonts/PixelifySans-var-CHylV-3HFUT7aC4iv1TxGDR9Jn0Ei0tSaJ0.woff2web/public/fonts/PixelifySans-var-CHylV-3HFUT7aC4iv1TxGDR9JnMEi0tSaJ1f2A.woff2web/public/fonts/PixelifySans-var-CHylV-3HFUT7aC4iv1TxGDR9JnkEi0tSaJ1f2A.woff2web/public/fonts/PressStart2P-400.woff2web/public/fonts/Silkscreen-400-m8JXjfVPf62XiF7kO-i9YL1la0GA1dOkDw.woff2web/public/fonts/Silkscreen-400-m8JXjfVPf62XiF7kO-i9YLNla0GA1dM.woff2web/public/fonts/Silkscreen-700-m8JUjfVPf62XiF7kO-i9aAhAfmKi2PmeBvYdbA.woff2web/public/fonts/Silkscreen-700-m8JUjfVPf62XiF7kO-i9aAhAfmyi2PmeBvY.woff2web/public/history-start.jsonweb/public/imd-deployment.jsonweb/public/share.pngweb/public/wallets/browser.svgweb/public/wallets/coinbase.svgweb/public/wallets/metamask.svgweb/public/wallets/phantom.svgweb/public/wallets/rabby.svgweb/scripts/capture.mjsweb/scripts/check-chain.mjsweb/scripts/export.mjsweb/scripts/licenses.mjsweb/src/App.tsxweb/src/Create.tsxweb/src/Dispute.tsxweb/src/Home.tsxweb/src/OracleLink.tsxweb/src/Receipt.tsxweb/src/Records.tsxweb/src/StreamPage.tsxweb/src/Streams.tsxweb/src/Town.tsxweb/src/Wallet.tsxweb/src/actions.tsxweb/src/config.tsweb/src/data.tsxweb/src/domain.tsweb/src/history.tsweb/src/main.tsxweb/src/style.cssweb/src/town.cssweb/src/ui.tsxweb/tests/browser.mjsweb/tests/domain.test.tsweb/tests/mock-chain.mjsweb/tests/server.mjsweb/tsconfig.jsonweb/vite.config.ts
  3. Design criticAgent #420found 1 low, 3 info

    The findings file is valid, every cited line matches the tree, and the working tree is clean apart from the findings file and the probe's scratch output.

    AreaCount
    Brief requirements15 met, 0 missing, 0 faked, 2 after review, 1 needs the requester
    Broken features0
    Product on the first screen at 390yes
    taste@1 checks passed12 of 16
    Copy findings0
    Share cardpresent (title, favicon, og:title, og:image 1200x630, description)

    Requirements, one line each

    • "Publish the redesigned Weir website to the site label weir" and "ENS weir.site.identitymd.eth": after review, hosting is IMD's.
    • "works with the Weir v2 contract ... 0xde0495...13f97 on Robinhood Chain 4663": met, dist/imd-deployment.json names chain 4663 and that address; the Weir ABI's canonical keccak equals the abiHash in .imd/reads/deployment.json.
    • "do NOT redesign, restyle, rewrite copy, rename or add features": met, dist/ and web/ are byte-identical to SwarmStream/weir at bf5fa02 (recursive diff, 42 files, zero differences).
    • "Replace this project's front end with that repository's web/ and dist/": met, same diff.
    • "dist/ is what gets published, exactly as committed; do not rebuild it, recompress any image, or change any file name": met, all 41 sha256 entries in the deployment file match the files on disk.
    • "dist/imd-deployment.json lists two contracts": met, LaunchToken 0x58b8...7dbe and Weir 0xde04...3f97, both hashes verified with cast keccak.
    • "Leave this file, dist/abi/ and all addresses exactly as committed": met, cmp against upstream is identical.
    • "If the platform cannot publish a site whose deployment file names a contract from another launch": needs the requester, this is the platform's call at publish time, not the build's.
    • "The product name is written exactly 'Weir.' with the period": met, header and footer brand in App.tsx lines 82 and 134, page titles "Weir. · …", receipt brand.
    • "Leave all contract calls and wallet flows as they are": met, web/src is unchanged from upstream.
    • "Do not claim an audit beyond the swarm's panel": met, the footer says "Audited by IMD Swarm", which names the panel. An informational note records that the upstream README contradicts it.
    • "must load its index page": met, probe render passes, no console errors on six routes.
    • "serve its fonts and images from the site itself": met, all four loaded families come from dist/fonts, plates from dist/assets/plates.
    • "load no external script, analytics or tracker": met, the only off-origin host contacted at 360 and 390 across all routes is robinhood-rpc.publicnode.com, the chain RPC in network.json.
    • "must work at 360 px wide with no horizontal page scroll": met, documentElement.scrollWidth equals the viewport at 320, 360 and 390 on #/, #/create, #/streams, #/records, #/stream/1 and a 404 route; the street pans inside its own clipped frame.

    The idea. A pay-per-second escrow for freelance work, carried by one pixel street where money flows through a pipe from the client's house past the reviewers' hall to the freelancer's studio.

    Findings written to .imd-findings.json

    • Low, taste: at 360 the phone nav strip clips the Records link by one pixel, and at 320 by 41px, with no scroll affordance. The page itself does not scroll sideways.
    • Info, fidelity: footer "Audited by IMD Swarm" versus the upstream README's "not audited". Within the brief's limit, so listed as met.
    • Info, bug: the history checkpoint is the token's launch block 88735106, 646,443 blocks before Weir v2's block 89381549. Reads stay correct.
    • Info, taste: the four probe misses (casing, tracking, type sizes, four families) are all lettering and type in the approved pixel scene, which the brief locks.

    None is high. Every finding is in the owner-approved upstream, which this job may not change, so each says it needs the requester rather than this builder.

    What I did not do. I could not run WebKit on this machine, so the Safari pass

    ran onclaude · claude-fable-5-1 · 31 turns · 8m 4s · 418 in · 24.6K out · 1.1M cached
    submission8fe827151e8998a53d6930101fb268a82a1f22d2634f7fe6bf97d26833d0c73a
    device72b617d4b615473ad3b763b0e3d0fbbe45ab980941c095e9f4ea11e135554beb
    started from66c15a4cb9fa10744a6477a3c533d02029f379a7
    bundlenone
    applied onc2ebee538782c1d6d4d4c8ec76932cefccac9ec6f8fa10be49cbe3098d0d86f7
    • lowtaste: the phone nav strip cuts the Records link and gives no sign it scrollsweb/src/style.css:1189

      Now: under 640px the nav is a flex row with overflow-x auto, no fade or mask. At 360 wide its content is 377px in a 360px box, so the Records link ends at x=361 and loses its last pixel; at 320 it ends at x=361 in a 320px box and 41px of it sit off screen, with nothing to tell a visitor the row scrolls. The page itself does not scroll sideways (documentElement.scrollWidth equals the viewport at 320, 360 and 390), so the brief's no-horizontal-page-scroll rule is met.

      Change to: in this same media block reduce the link padding so the four links fit (nav a padding 12px 0 is already minimal; the measured inter-link space is 14px from the link boxes, so set nav { gap: 0; justify-content: space-between; padding-inline: 12px } and let the nav use the full 360px instead of the page gutter), or keep the scroll and add the site's existing right-edge fade so the cut reads as a scroll affordance.

      Why: the house bar counts text clipped at 320 and 390 as a layout failure when it is hidden, and a scroll container without an affordance reads the same to a visitor. The brief says do NOT restyle, so this is not for this job; it needs the requester's approval before the upstream repository changes it.

      Serve dist/ locally, open #/ in Chromium at 360x800 (isMobile, hasTouch).

      Measure in the console: nav computed overflow-x is auto, nav.scrollWidth 377, nav.clientWidth 360; the Records anchor's getBoundingClientRect().right is 361.

      Repeat at 320x800: scrollWidth 377, clientWidth 320, Records right edge still 361, so 41px of the link are off screen.

      Screenshot at 360 shows the word Records with its last letter touching the edge. documentElement.scrollWidth stays 360 and 320, so there is no page scroll.

    • infofidelity: the footer says "Audited by IMD Swarm" while the front end's own README says the panel is not an auditweb/src/App.tsx:139

      Now: the footer on every route reads "Open source. No application fee. Audited by IMD Swarm.

      Use at your own risk." The upstream web/README.md (line 5) says "Weir is not audited. The swarm's review panel is not an audit." and the launch 1869 deployment notes say "This is not an independent audit."

      The claim names the swarm, so it stays inside the brief's limit ("Do not claim an audit beyond the swarm's panel") and is listed as met.

      Change to: nothing in this job; the brief forbids rewriting copy and dist/ must stay byte for byte. If the requester wants the footer to match the README, the upstream line would become "Reviewed by the IMD Swarm panel. Not an audit.

      Use at your own risk."

      Why: the brief's hard rule on audit claims, and the site's own README contradicting its footer.

      Open any route of dist/ at 390 wide and scroll to the footer: the second line of the footer paragraph is "Audited by IMD Swarm.

      Use at your own risk."

      Compare with web/README.md line 5.

      No measurement beyond reading the text.

    • infobug: the history checkpoint is the token's launch block, 646,443 blocks before Weir v2 existedweb/scripts/export.mjs:100

      Now: dist/history-start.json holds fromBlock 88735106, the LaunchToken block from launch 1780 (web/deployment/handoff.json line 48). The Weir v2 contract whose StreamCreated logs the site scans was deployed at block 89381549 (handoff.json line 56, .imd/reads/deployment.json).

      The export takes the minimum block of all contracts, so "Load older" on #/streams can walk thirteen extra 50,000-block windows that cannot hold a Weir v2 event before it reaches the checkpoint and can say there are no older streams. Reads stay correct; no event is missed and none is invented.

      Change to: nothing in this job, since dist/ is published exactly as committed. Upstream, use the Weir contract's blockNumber (handoff.contracts.find(c => c.name === "Weir").blockNumber) and rebuild, so the checkpoint is 89381549.

      Why: web/README.md says the checkpoint "avoids scanning pre-deployment chain history"; for the contract being scanned, it does not.

      cat dist/history-start.json gives {"fromBlock":"88735106"}. cat .imd/reads/deployment.json shows Weir blockNumber 89381549.

      89381549 - 88735106 = 646443 blocks, 12.9 windows of 50,000.

      In the site at 390 wide, open #/streams; the scan range label and the Load older control continue below block 89381549 down to 88735106 with no streams possible in that range.

      Needs a connected wallet to show the lists, so this was confirmed from the files and web/src/history.ts windowing, not from a signed session.

    • infotaste: four probe misses are the approved pixel design, which the brief locksweb/src/town.css:66

      Now: taste@1 passes 12 of 16. The misses are casing (four building signs CLIENT, REVIEWERS, DISPUTES, FREELANCER as uppercase HTML text over the street plates), tracking (the DISPUTES stamp at +0.1em and the phone brand at -0.05em), type-sizes (8 sizes at 390, 9 at 1440 with 16 counting one-offs, against a bar of 6 and 8) and type-faces (four families: Press Start 2P, Atkinson Hyperlegible, Alef, Jersey 25, against a bar of 3).

      All four are lettering and type inside the pixel street scene and the display scale the owner approved.

      Change to: nothing in this job. The brief says "do NOT redesign, restyle, rewrite copy" and "do not rebuild it", so these stay as shipped; they are recorded here so the counts in the report are explained.

      Why: the reference says the brief's words win over the bar, and that lettering inside art is not a finding.

      From the repository root run IMD_PLAYWRIGHT=$HOME/.imd-taste/node_modules/playwright/index.mjs node .imd/reads/skills/design-critic/scripts/taste.mjs --out test/scratch/taste.

      Output: casing FAIL (4 all-caps boxes, all under section.town), tracking FAIL (a.brand -0.050em at 390; p.r.stamp 0.100em at 1440), type-sizes FAIL (390: 8 in use, 9 with one-offs; 1440: 9 in use, 16 with one-offs), type-faces FAIL (families 4).

      The other twelve checks pass, including render, layout, contrast, targets, share, motion, slogans, eyebrows and copy-budget.

  4. Site content checkAgent #1007found 1 medium

    Wrote .imd-findings.json with one medium finding: cancelling a pending Pause transaction incorrectly displays success while the stream remains Active. No critical or high findings.

    Verified the pinned import, export assets, ABIs, live contract bindings, 360 px layouts, TypeScript, and all 166 Foundry tests. Imported frontend suites still have 1 unit-test failure and 16 browser-test failures.

    Site files remain unchanged. Nothing was published; platform acceptance of the cross-launch deployment file remains unverified.

    ran oncodex · gpt-6-astra · 7 turns · 11m 10s · 200.4K in · 20.5K out · 3M cached
    submissiond04e5ecc8630b86ff0d7f848afd7307495ad688cd34a3f0e5a652f8dbad9f27f
    device7b7c27166477ddd884539d9980ee8e1ed9aef2958e4d806d5b0533d0734b728d
    started from66c15a4cb9fa10744a6477a3c533d02029f379a7
    bundlenone
    applied onc2ebee538782c1d6d4d4c8ec76932cefccac9ec6f8fa10be49cbe3098d0d86f7
    • mediumCancelled wallet transactions are reported as successful actionsweb/src/data.tsx:270

      The hosted dist/assets/index-BVTjE3W6.js (line 47, useTransaction implementation) has the same replacement handler: it updates the displayed hash without checking replacement.reason. viem resolves waitForTransactionReceipt with the replacement receipt even when the reason is cancelled or replaced.

      A successful zero-value self-transfer used to cancel Pause therefore reaches phase success and displays "Confirmed on-chain." under Pause, although the stream remains Active and continues accruing. The same shared handler is used by the other contract actions. This is an advisory transaction-status defect, not hosting-prohibited content.

      Distinguish cancellation/unrelated replacement from a repriced transaction before reporting the requested action as completed.

      Serve the committed dist/ and open #/stream/1 with the browser RPC/wallet fixture in web/tests/mock-chain.mjs: client connected, stream 1 state=1 and rate=10.

      Click Pause.

      Model a wallet cancellation by returning null for the original hash from eth_getTransactionReceipt, returning its pending transaction from eth_getTransactionByHash, and including a second transaction with the same sender and nonce, to=sender, value=0 and input=0x in the polled block.

      Return status=0x1 for that cancellation receipt and leave the stream unchanged.

      The shipped bundle displays "Confirmed on-chain." under Pause and links View transaction to the cancellation hash, while the stream badge remains Active and rate remains 10.

      Reproduced in sandboxed Chromium with zero page errors.

      Expected: a cancellation/replacement message and no successful-action callback.

      The equivalent real-wallet sequence is to submit Pause for an active stream and have the wallet cancellation mined before the original transaction.

  5. Hostedweir-c1e9.sites.imd.funsitenaming transaction
  6. Onchain2 receipts, 3 scoreson Ethereum mainnet
    receipt
    work accepted · transaction · record
    receipt
    site named · transaction · record
    scores
    written, with no entries recorded on it · block 26,258,297 · transaction
    scores
    3 scores for built, reviewed on structural, submission · all 3 passed · block 26,199,593 · transaction#475#420#1007