Origin log reading, 19 September 2026 to 3 October 2026

The AI crawlers hitting one site, and which of them were real

This is one origin's own nginx log, read over 15 days and 200,515 requests. 18 crawler names appear in it, and 16 of them asked for files this site has never had, 10 of them for most of their requests. One of those names cannot exist at all. Every figure below comes from that one reading or from a vendor's own documentation, both dated. Nothing here is a live number, and nothing here is an estimate.

Window
19 September 2026 to 3 October 2026
Requests read
200,515
Crawler names
18
Requests for files never here
18,485

The name that cannot exist

Google-Extended has no user agent, so every request carrying it was forged

Google-Extended is a robots.txt control token. It is not a crawler, and Google says so on its own crawler page.

“Google-Extended doesn't have a separate HTTP request user agent string. Crawling is done with existing Google user agent strings; the robots.txt user-agent token is used in a control capacity.”

Google, Google common crawlers, read 3 October 2026: developers.google.com/crawling/docs/crawlers-fetchers/google-common-crawlers

The same page carries one more line worth keeping in view: “Caution: The HTTP user agent string can be spoofed.”

So all 1,100 requests in this window whose user agent said Google-Extended were forged by Google's own description of the token. 4 of them asked for a URL this site once had, so the path classifier files them as dead URLs of ours rather than as probes, which is why the catalogue's forged column for this row reads 1,096. By Google's own description of the token they are forged too. That is what makes the name useful here. Its paths are a set of requests already known to be forged, with no argument needed, so every other name's paths can be compared against a known answer instead of against a hunch. That comparison is the forged column in the catalogue below.

What the forged traffic looked like

Three things at once, not one suspicious number

Across the window, 18,485 requests under 16 different crawler names asked for files this site has never had. Three properties of that traffic stand together.

  1. The same paths. 478 distinct paths in total, led by /.env at 557 requests. Each name shares 83% to 89.2% of its probed-path repertoire with Google-Extended's.
  2. Near-identical volume per name. Each of the 16 names sent between 1,096 and 1,219 such requests.16 independent crawlers do not arrive at nearly the same count.
  3. The same minutes. 217 of the 233 minutes that held one of these requests held 5 or more different crawler names inside the same minute.

Read the overlap figure carefully. On its own it proves nothing: any two unrelated credential scanners both ask for /.env, so a shared path list is what you would expect from scanners that never met. The evidence here is the three together, the same repertoire and a near-identical volume per name and the same minutes, and a reader is better placed than we are to decide what that adds up to on their own origin. Google-Extended's own overlap reads 100% because its paths are the reference set, which is circular and is not offered as a finding.

Two names in the catalogue sent none of this traffic at all: bingbot and meta-externalads. They are the honest controls. A method that finds forgery everywhere it looks has not found anything, so a reading like this needs names it does not suspect, and these two are they. Four other names never fetched a single page that exists on this site: Claude-SearchBot, Perplexity-User, Google-Extended and CCBot.

Why the string is not the answer

The user agent string cannot settle identity, in either direction

A common piece of advice is to match the vendor's documented user agent string and treat a mismatch as a forgery. This reading says that does not work. Under the name GPTBot alone, 8 distinct user agent strings arrived in the window.

  1. The variant that matches OpenAI's documentation character for character sent 1,166 requests, and 99.9% of them were for files that have never existed here. Matching the documented string is therefore not evidence that a request is what it claims to be.
  2. It is also the only one of the 8 strings that asked for such a file at all. The other 7 asked for none, the largest of them 327 requests that do not match the documentation at all. Copying the vendor's published string is the forger's default, so failing to match it is not evidence either.

Keep that second point narrow. All that was measured about those strings is that they asked for nothing that has never existed here. It is not a finding that they came from OpenAI, and this page does not claim they did. The claim is only about what the string proves, which is nothing in either direction.

So punctuation, parenthesis placement and version numbers do not identify a forgery. Identity is settled by the source IP address, checked against the vendor's own published prefix file, and by nothing else a site owner has.

OpenAI's documented strings, read from developers.openai.com on 3 October 2026

Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbotMozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36; compatible; OAI-SearchBot/1.4; +https://openai.com/searchbotMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/botMozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36; compatible; OAI-SearchBot/1.4; robots.txt; +https://openai.com/searchbot

The parentheses are OpenAI's, including the one GPTBot's string closes early, and the versions are as published: 1.4 for GPTBot and OAI-SearchBot, 1.0 for ChatGPT-User. The fourth string is the one OpenAI documents for fetching robots.txt itself. Copying them exactly matters if you are writing a pattern, and it still will not tell you who sent the request.

The trap most origins are in

Behind a CDN, the IP check cannot run at all

Verification by address only works if your log holds the real client address. This origin sits behind Cloudflare, so nginx's $remote_addr is the Cloudflare edge, 104.22.x.x, and not the client. Checked against every vendor's published prefix file on 3 October 2026, that marks 100% of every family in this catalogue unverified, Googlebot included: 25,479 requests whose user agent said Googlebot, and 0 of them inside Google's 317 published prefixes.

That is not a finding about Google. It is a finding about the log. Until the real client address is restored, an origin behind a CDN cannot answer the identity question by address at all, whatever its prefix lists say. The fix is to read the forwarded address and write that one: Cloudflare's CF-Connecting-IP header, nginx's real_ip module, Apache's mod_remoteip. Do that before trusting any crawler verification you run on your own log, because an unverified result here means the log, not the crawler.

One number needs its own note. That 25,479 counts every request in the window whose user agent said Googlebot, and it includes this site's own audit sweeps, which wear a Googlebot user agent on purpose. The catalogue's Googlebot row reads 2,426 instead, because the reading excludes our own readbacks before it counts anything. The two figures measure different sets and both are stated here so neither reads as a correction of the other.

The catalogue

18 crawler names, what each one is for, and how a stranger checks it

One entry per crawler family, in the order the reading counts them. The figures in each entry are that name's rows in this one window: requests is served plus dead URLs of ours plus requests for files that have never existed here. The vendor fields are that vendor's own documentation, read on 3 October 2026. Where a vendor publishes nothing, the entry says not documented and the gap is left open rather than filled from somewhere else.

GPTBot

Requests
1,561
Served
342
Page requests served
260
Distinct URLs
232
Dead URLs of ours
54
Files never here
1,165
Share of its requests
74.6%
Path overlap with Google-Extended
85.5%
Measured here
1,165 of 1,561 requests (74.6%) were for files that have never existed here. The rest reads as a crawler doing its job: 260 page requests served across 232 distinct URLs.
What it is for
“used to crawl content that may be used in training our generative AI foundation models”
Robots token
GPTBot
User agent string
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbot
How a stranger verifies it
Check the source IP against openai.com/gptbot.json, 18 prefixes when it was read on 3 October 2026, published 22 September 2026.
Vendor documentation
developers.openai.com/api/docs/bots

OAI-SearchBot

Requests
1,579
Served
455
Page requests served
148
Distinct URLs
100
Dead URLs of ours
24
Files never here
1,100
Share of its requests
69.7%
Path overlap with Google-Extended
83.4%
Measured here
1,100 of 1,579 requests (69.7%) were for files that have never existed here. The rest reads as a crawler doing its job: 148 page requests served across 100 distinct URLs.
What it is for
“used to surface websites in search results in ChatGPT's search features”
Robots token
OAI-SearchBot
User agent string
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36; compatible; OAI-SearchBot/1.4; +https://openai.com/searchbot
How a stranger verifies it
Check the source IP against openai.com/searchbot.json, 39 prefixes when it was read on 3 October 2026, published 2 January 2026.
Vendor documentation
developers.openai.com/api/docs/bots

ChatGPT-User

Requests
1,323
Served
149
Page requests served
146
Distinct URLs
18
Dead URLs of ours
0
Files never here
1,174
Share of its requests
88.7%
Path overlap with Google-Extended
87.2%
Measured here
1,174 of 1,323 requests (88.7%) were for files that have never existed here. The rest reads as a crawler doing its job: 146 page requests served across 18 distinct URLs.
What it is for
“for certain user actions in ChatGPT and CustomGPTs”
Robots token
OpenAI says robots.txt rules for this fetcher “may not apply”, because a person asked for the fetch.
User agent string
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot
How a stranger verifies it
Check the source IP against openai.com/chatgpt-user.json, 230 prefixes when it was read on 3 October 2026, published 25 September 2026.
Vendor documentation
developers.openai.com/api/docs/bots

Claude-SearchBot

Requests
1,156
Served
0
Page requests served
0
Distinct URLs
0
Dead URLs of ours
5
Files never here
1,151
Share of its requests
99.6%
Path overlap with Google-Extended
84.8%
Measured here
1,151 of 1,156 requests (99.6%) were for files that have never existed here, and this name never once fetched a page that does exist.
What it is for
“navigates the web to improve search result quality for users”
Robots token
Named as a bot on Anthropic's page, with no robots.txt example given for it.
User agent string
Not documented. The vendor names this bot and publishes no user agent string for it.
How a stranger verifies it
Check the source IP against claude.com/crawling/bots.json, 28 prefixes when it was read on 3 October 2026, published 2 October 2026. The file says: “If a crawler has a source IP address on this list, it indicates that the crawler is coming from Anthropic.” Anthropic's own article warns that blocking by IP “may not work correctly or persistently guarantee an opt-out”. anthropic.com/claudebot.json is not the file: it answers 404.
Vendor documentation
support.claude.com, article 8896518

Claude-User

Requests
1,209
Served
26
Page requests served
17
Distinct URLs
10
Dead URLs of ours
6
Files never here
1,177
Share of its requests
97.4%
Path overlap with Google-Extended
86.9%
Measured here
1,177 of 1,209 requests (97.4%) were for files that have never existed here. The rest reads as a crawler doing its job: 17 page requests served across 10 distinct URLs.
What it is for
“supports Claude AI users... may access websites using a Claude-User agent”
Robots token
Named as a bot on Anthropic's page, with no robots.txt example given for it.
User agent string
Not documented. The vendor names this bot and publishes no user agent string for it.
How a stranger verifies it
Check the source IP against claude.com/crawling/bots.json, the same 28 prefixes Anthropic publishes for all three of its bots, published 2 October 2026.
Vendor documentation
support.claude.com, article 8896518

ClaudeBot

Requests
2,855
Served
1,645
Page requests served
942
Distinct URLs
885
Dead URLs of ours
34
Files never here
1,176
Share of its requests
41.2%
Path overlap with Google-Extended
85.8%
Measured here
1,176 of 2,855 requests (41.2%) were for files that have never existed here. The rest reads as a crawler doing its job: 942 page requests served across 885 distinct URLs.
What it is for
“collecting web content that could potentially contribute to their training”
Robots token
ClaudeBot
User agent string
Not documented. The vendor names this bot and publishes no user agent string for it.
How a stranger verifies it
Check the source IP against claude.com/crawling/bots.json, the same 28 prefixes Anthropic publishes for all three of its bots, published 2 October 2026.
Vendor documentation
support.claude.com, article 8896518

Perplexity-User

Requests
1,223
Served
0
Page requests served
0
Distinct URLs
0
Dead URLs of ours
4
Files never here
1,219
Share of its requests
99.7%
Path overlap with Google-Extended
85.2%
Measured here
1,219 of 1,223 requests (99.7%) were for files that have never existed here, and this name never once fetched a page that does exist.
What it is for
“supports user actions within Perplexity”
Robots token
Perplexity says this fetcher “generally ignores robots.txt rules”, because a person asked for the fetch.
User agent string
Documented by the vendor, and not reproduced here. Read it from the vendor page above: of the pages behind this catalogue, only OpenAI's and Google's were read string by string for this reading.
How a stranger verifies it
Check the source IP against perplexity.com/perplexity-user.json.
Vendor documentation
docs.perplexity.ai/guides/bots

PerplexityBot

Requests
2,494
Served
1,334
Page requests served
1,315
Distinct URLs
774
Dead URLs of ours
16
Files never here
1,144
Share of its requests
45.9%
Path overlap with Google-Extended
89.2%
Measured here
1,144 of 2,494 requests (45.9%) were for files that have never existed here. The rest reads as a crawler doing its job: 1,315 page requests served across 774 distinct URLs.
What it is for
“designed to surface and link websites in search results on Perplexity. It is not used to crawl content for AI foundation models.”
Robots token
PerplexityBot
User agent string
Documented by the vendor, and not reproduced here. Read it from the vendor page above: of the pages behind this catalogue, only OpenAI's and Google's were read string by string for this reading.
How a stranger verifies it
Check the source IP against perplexity.com/perplexitybot.json, 8 prefixes when it was read on 3 October 2026, published 7 February 2025.
Vendor documentation
docs.perplexity.ai/guides/bots

Google-Extended

Reference point
Requests
1,100
Served
0
Page requests served
0
Distinct URLs
0
Dead URLs of ours
4
Files never here
1,096
Share of its requests
99.6%
Path overlap with Google-Extended
100%
Measured here
Every one of the 1,096 requests carrying this name was forged, because Google documents no user agent for it. Those requests are the reference set the other names are compared against, which is why this row's own overlap of 100% is circular and is not a finding.
What it is for
“a standalone product token that web publishers can use to manage whether content Google crawls from their sites may be used for training future generations of Gemini models”
Robots token
Google-Extended
User agent string
Google documents that this token has no user agent string of its own, so no request can honestly carry it.
How a stranger verifies it
There is nothing to verify by address: the token has no requests of its own. Google crawls with its existing user agents, so the ranges that apply are Google's crawler ranges.
Vendor documentation
developers.google.com, Google common crawlers

Googlebot

Requests
2,426
Served
1,195
Page requests served
377
Distinct URLs
171
Dead URLs of ours
45
Files never here
1,186
Share of its requests
48.9%
Path overlap with Google-Extended
83%
Measured here
1,186 of 2,426 requests (48.9%) were for files that have never existed here. The rest reads as a crawler doing its job: 377 page requests served across 171 distinct URLs.
What it is for
Finds information for building Google's search indexes.
Robots token
Googlebot
User agent string
Documented by the vendor, and not reproduced here. Read it from the vendor page above: of the pages behind this catalogue, only OpenAI's and Google's were read string by string for this reading.
How a stranger verifies it
Check the source IP against developers.google.com/static/crawling/ipranges/common-crawlers.json, 317 prefixes when it was read on 3 October 2026, published 2 October 2026. Google also supports a reverse DNS check: the name resolves as crawl-***-***-***-***.googlebot.com and has to forward-resolve back to the same address.
Vendor documentation
developers.google.com, Google common crawlers

bingbot

Honest control
Requests
2,504
Served
2,089
Page requests served
1,576
Distinct URLs
425
Dead URLs of ours
415
Files never here
0
Share of its requests
0%
Path overlap with Google-Extended
No probes, so no repertoire to compare
Measured here
Asked for no file that has never existed here. Its 415 requests for paths that no longer exist are stale URLs and stale asset bundles, the shape a real crawler produces as a site changes.
Why it is a control
Honest control. This reading needs names it is not suspicious of, or the method cannot be told apart from a method that suspects everything.
What it is for
Microsoft's search crawler.
Robots token
bingbot
User agent string
Documented by the vendor, and not reproduced here. Read it from the vendor page above: of the pages behind this catalogue, only OpenAI's and Google's were read string by string for this reading.
How a stranger verifies it
Check the source IP against bing.com/toolbox/bingbot.json, 28 prefixes when it was read on 3 October 2026, published 3 January 2024.
Vendor documentation
bing.com/toolbox/bingbot.json, the range file itself

Applebot

Requests
1,895
Served
761
Page requests served
170
Distinct URLs
93
Dead URLs of ours
6
Files never here
1,128
Share of its requests
59.5%
Path overlap with Google-Extended
86.4%
Measured here
1,128 of 1,895 requests (59.5%) were for files that have never existed here. The rest reads as a crawler doing its job: 170 page requests served across 93 distinct URLs.
What it is for
“power the search technology integrated into many user experiences in Apple's ecosystem including Spotlight, Siri, and Safari”
Robots token
Applebot. Applebot-Extended is a separate token, and it is the opt-out from training Apple foundation models rather than a crawler.
User agent string
Documented by the vendor, and not reproduced here. Read it from the vendor page above: of the pages behind this catalogue, only OpenAI's and Google's were read string by string for this reading.
How a stranger verifies it
Check the source IP against search.developer.apple.com/applebot.json, 24 prefixes when it was read on 3 October 2026, published 15 September 2026. Apple also supports a reverse DNS check against *.applebot.apple.com.
Vendor documentation
support.apple.com/en-us/119829

meta-externalads

Honest control
Requests
2,591
Served
2,588
Page requests served
1,518
Distinct URLs
1,286
Dead URLs of ours
3
Files never here
0
Share of its requests
0%
Path overlap with Google-Extended
No probes, so no repertoire to compare
Measured here
Asked for no file that has never existed here. Its 3 requests for paths that no longer exist are stale URLs and stale asset bundles, the shape a real crawler produces as a site changes.
Why it is a control
Honest control. This reading needs names it is not suspicious of, or the method cannot be told apart from a method that suspects everything.
What it is for
“crawls the web for use cases such as improving advertising and other business-related products and services”
Robots token
Not documented.
User agent string
Documented by the vendor, and not reproduced here. Read it from the vendor page above: of the pages behind this catalogue, only OpenAI's and Google's were read string by string for this reading.
How a stranger verifies it
Not documented. Meta publishes no IP range file for its crawlers, so there is no address list to check a request against.
Vendor documentation
developers.facebook.com, web crawlers

meta-externalagent

Requests
6,946
Served
5,725
Page requests served
4,985
Distinct URLs
739
Dead URLs of ours
101
Files never here
1,120
Share of its requests
16.1%
Path overlap with Google-Extended
87.2%
Measured here
1,120 of 6,946 requests (16.1%) were for files that have never existed here. The rest reads as a crawler doing its job: 4,985 page requests served across 739 distinct URLs.
What it is for
“crawls the web for use cases such as training foundation AI models or improving products by indexing content directly”
Robots token
meta-externalagent
User agent string
Documented by the vendor, and not reproduced here. Read it from the vendor page above: of the pages behind this catalogue, only OpenAI's and Google's were read string by string for this reading.
How a stranger verifies it
Not documented. Meta publishes no IP range file for its crawlers, so there is no address list to check a request against. Meta's documented user agent ends with a relative link, +/documentation/sharing/webmasters/web-crawlers, not an absolute URL, which is worth knowing before you write a pattern that expects one.
Vendor documentation
developers.facebook.com, web crawlers

Bytespider

Requests
3,610
Served
2,402
Page requests served
501
Distinct URLs
167
Dead URLs of ours
10
Files never here
1,198
Share of its requests
33.2%
Path overlap with Google-Extended
85.5%
Measured here
1,198 of 3,610 requests (33.2%) were for files that have never existed here. The rest reads as a crawler doing its job: 501 page requests served across 167 distinct URLs.
What it is for
Not documented.
Robots token
Not documented.
User agent string
Not documented. The vendor names this bot and publishes no user agent string for it.
How a stranger verifies it
Not documented. No vendor document for this crawler could be retrieved on 3 October 2026, so there is no published token, string or address list to check anything against.
Vendor documentation
No vendor document retrievable on 3 October 2026.

Amazonbot

Requests
2,476
Served
1,260
Page requests served
1,229
Distinct URLs
692
Dead URLs of ours
65
Files never here
1,151
Share of its requests
46.5%
Path overlap with Google-Extended
85.4%
Measured here
1,151 of 2,476 requests (46.5%) were for files that have never existed here. The rest reads as a crawler doing its job: 1,229 page requests served across 692 distinct URLs.
What it is for
“used to improve our products and services... may be used to train Amazon AI models”
Robots token
Amazon's page names no token. It says robots.txt is honoured per user agent.
User agent string
Documented by the vendor, and not reproduced here. Read it from the vendor page above: of the pages behind this catalogue, only OpenAI's and Google's were read string by string for this reading.
How a stranger verifies it
Check the source IP against the list at developer.amazon.com/amazonbot/ip-addresses/.
Vendor documentation
developer.amazon.com/amazonbot

YouBot

Requests
1,262
Served
66
Page requests served
10
Distinct URLs
10
Dead URLs of ours
3
Files never here
1,193
Share of its requests
94.5%
Path overlap with Google-Extended
84.6%
Measured here
1,193 of 1,262 requests (94.5%) were for files that have never existed here. The rest reads as a crawler doing its job: 10 page requests served across 10 distinct URLs.
What it is for
“the web crawler that powers the You.com search engine”
Robots token
YouBot
User agent string
Documented by the vendor, and not reproduced here. Read it from the vendor page above: of the pages behind this catalogue, only OpenAI's and Google's were read string by string for this reading.
How a stranger verifies it
There is no JSON range file. The vendor page states one range in prose, 68.67.112.0/24, and supports a reverse DNS check against youbot-{octets}.search.you.com.
Vendor documentation
you.com/docs/youbot

CCBot

Requests
1,114
Served
0
Page requests served
0
Distinct URLs
0
Dead URLs of ours
7
Files never here
1,107
Share of its requests
99.4%
Path overlap with Google-Extended
85.7%
Measured here
1,107 of 1,114 requests (99.4%) were for files that have never existed here, and this name never once fetched a page that does exist.
What it is for
Common Crawl is a non-profit “producing and maintaining an open repository of web crawl data”. CCBot is the crawler that fills it.
Robots token
CCBot
User agent string
Documented by the vendor, and not reproduced here. Read it from the vendor page above: of the pages behind this catalogue, only OpenAI's and Google's were read string by string for this reading.
How a stranger verifies it
Check the source IP against index.commoncrawl.org/ccbot.json, and there is also a reverse DNS check against *.crawl.commoncrawl.org.
Vendor documentation
commoncrawl.org/ccbot

llms.txt

No vendor documents a crawler that reads your llms.txt

This is the question readers ask most often about AI crawlers, so here is the state of the primary sources rather than an opinion.

  • Google's own AI optimization guide, last updated 10 July 2026, says: “You don't need to create new machine readable files, AI text files, markup, or Markdown to appear in Google Search (including its generative AI capabilities), as Google Search itself doesn't use them.” developers.google.com/search/docs/fundamentals/ai-optimization-guide
  • No primary statement exists from OpenAI, Anthropic, Google, Perplexity or Microsoft that their crawler reads another site's llms.txt. Their crawler documentation lists what each bot does and never mentions fetching it. That is an absence of evidence rather than a vendor denial, and it is stated as exactly that.
  • Several AI labs do publish an llms.txt for their own developer documentation. Publishing a file for your own docs is not the same as reading other people's.
  • The proposal itself: “The /llms.txt file”, author Jeremy Howard, published 3 September 2024, modified 10 August 2026. llmstxt.org
  • This site publishes an llms.txt. We have not measured a benefit from it and make no claim that there is one.

Method and limits

What this reading is, and the questions it cannot answer

  • One origin's nginx access log, 19 September 2026 to 3 October 2026, 15 days and 200,515 request rows. A row is attributed to the name its own user agent claims, with this site's own readbacks excluded first.
  • A request counts as being for a file that has never existed here when it is a credential path, or carries a self-referring referrer, or asks for a path that 4 or more different vendor names also asked for and this site has never served. A minute counts as crowded when 5 or more different names appear in it. A 404 that is simply an old URL of ours is counted separately, as dead URLs of ours.
  • Identity by address is not tested here, and cannot be at this origin: it sits behind a CDN, so the log holds the edge address. That is the trap described above, not a result.
  • Nothing here measures robots.txt compliance. This site's robots.txt allows everything, so there was no rule for a crawler to break and compliance was never testable on it. A compliance claim would need a site that disallows something.
  • The figures are a dated reading of one origin, not a benchmark. Another site behind another CDN, with another robots.txt and another set of old URLs, will read differently. The useful part is the method and the vendor fields, both of which transfer.
  • Read at 2026-10-03T09:01:09+00:00. The reading is kept as data in the repository that builds this page, and the page renders it rather than restating it, so the two cannot drift apart.

© 2026 Bles Software, Yehud-Monoson, Israel. All Rights Reserved.